SEG 3101 Fall 2018 Integrating Requirements Engineering into

  • Slides: 71
Download presentation
SEG 3101 (Fall 2018) Integrating Requirements Engineering into Software Development Processes Daniel Amyot, University

SEG 3101 (Fall 2018) Integrating Requirements Engineering into Software Development Processes Daniel Amyot, University of Ottawa Based on Powerpoint slides by Gunter Mussbacher (2009) and material from S. Somé 2008, D. Amyot 2008 -2017, XP, EPF, SPEM, RUP, SEMAT, ISO

Table of Contents • Software Process Engineering and Frameworks • SPEM, EPF, RUP •

Table of Contents • Software Process Engineering and Frameworks • SPEM, EPF, RUP • Agile Methods • Overview • Extreme Programming (XP), Practices, and Process • Lean Software Development • Scrum • Dev. Ops • Conclusions • Role of RE and Comparison • Standards • Perfection is attained not when there is no longer anything to add, but when there is no longer anything to take away. 1 [1] Antoine de Saint-Exupéry (1900 - 1944), “Wind, Sand Stars” SEG 3101. Integrating Requirements Engineering into Software Engineering Processes. 2

Software Process Engineering & Frameworks

Software Process Engineering & Frameworks

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion Software Process

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion Software Process Engineering • Software process engineering consists in developing software development processes suitable for a given environment (organization, nature of projects/software, social and financial constraints, etc. ) • Such processes include (requirements engineering) activities, roles, and artefacts (or work products, i. e. : documents, models, code…) Activity • Metamodel: Role Artefact SEG 3101. Integrating Requirements Engineering into Software Engineering Processes. 4

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion Basic concepts

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion Basic concepts • Artefact • Data element produced during the development • e. g. : document, diagram, report, source code, model, etc. • Role • Set of skills and responsibilities • e. g. : project manager, analyst, developer, etc. • Activity • Small, definable, reusable task that can be allocated to a single role • e. g. : developing detailed use cases SEG 3101. Integrating Requirements Engineering into Software Engineering Processes. 5

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion Tools/Standards for

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion Tools/Standards for Process Engineering • Customizable software process engineering frameworks • Predefined and extensible development roles, activities, and artifacts • OMG standard: Software & Systems Process Engineering Metamodel specification (SPEM), Version 2. 0, April 2008 • http: //www. omg. org/spec/SPEM/2. 0/ • Successor of IBM’s Rational Unified Process (RUP), a commercial framework • Eclipse Process Framework (EPF) – an Eclipse Project • Predefined and extensible roles, tasks, and development styles • http: //www. eclipse. org/epf/ • Sample process specified with SPEM/EPF: Open. UP (interactive Wiki) • Free EPF Composer tool • Sample commercial tool: Rational Method Composer (RMC) • A tool for defining and monitoring your own development process • http: //www-03. ibm. com/software/products/en/rmc SEG 3101. Integrating Requirements Engineering into Software Engineering Processes. 6

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion RMC Sample

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion RMC Sample Snapshots SEG 3101. Integrating Requirements Engineering into Software Engineering Processes. 7

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion Rational Unified

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion Rational Unified Process (RUP) • One commercial implementation of the Unified Process • Developed by Jacobson, Booch, Rumbaugh (1996 -2003) • An IBM product. Old but still influential… • Open. UP is a more recent and simpler version, less versatile though • Vocabulary and concepts • Artefacts, roles, disciplines, activities • Use case-driven, architecture-centered, iterative, incremental, risk Use Case-Driven Process management-oriented • RUP is a process framework • not a process on its own • Intended to be customized to project needs SEG 3101. Integrating Requirements Engineering into Software Engineering Processes. 8

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion Business Modeling

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion Business Modeling Discipline – Artefacts SEG 3101. Integrating Requirements Engineering into Software Engineering Processes. 9

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion Business Modeling

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion Business Modeling Discipline – Roles & Activities SEG 3101. Integrating Requirements Engineering into Software Engineering Processes. 10

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion Requirements Discipline

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion Requirements Discipline – Artefacts SEG 3101. Integrating Requirements Engineering into Software Engineering Processes. 11

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion Requirements Discipline

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion Requirements Discipline – Roles & Activities SEG 3101. Integrating Requirements Engineering into Software Engineering Processes. 12

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion Careful! •

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion Careful! • SPM, EPF and RUP are not processes! • They are framework that allow creating your own process • SPEM offers best practices • Guidelines for creating good documents, models, designs. . . • Characteristics of RUP • Use case-driven • Iterative, incremental, and oriented towards risk management • Architecture-centered (NFRs and models, with UML) • Focus on having the right process (neither too heavy nor insufficient) • Unfortunately, it is difficult to know where to be minimal and easy to make a process too heavy by being too cautious. . . SEG 3101. Integrating Requirements Engineering into Software Engineering Processes. 13

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion SPEM and

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion SPEM and Agility? • A definition of agile processes can lead to a cumbersome process… • A definition of rich processes can lead to an agile process… • There is no contradiction between SPEM/RUP and agility! • Actually… • In 2006, IBM created Open. UP, a subset of RUP tailored for the delivery of Agile projects released as an open source method specified with SPEM • http: //www 1. osu. cz/~zacek/Open. UP/ • http: //en. wikipedia. org/wiki/Open. UP • Artifacts for RE: glossary, vision, requirements, use case models, and use cases SEG 3101. Integrating Requirements Engineering into Software Engineering Processes. 14

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion In Addition…

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion In Addition… “The idea of specifying requirements independently of designing and building a system is solidified by management pressure to outsource, conceptualize development as independent phases and make enforceable contracts. ” The Dangerous Dogmas of Software Engineering P. Ralph, B. Oates (2018) https: //arxiv. org/ftp/arxiv/papers/1802. 06321. pdf SEG 3101. Integrating Requirements Engineering into Software Engineering Processes. 15

Agile Methods

Agile Methods

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion Agile Manifesto

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion Agile Manifesto (http: //agilemanifesto. org) SEG 3101. Integrating Requirements Engineering into Software Engineering Processes. 17

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion Values of

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion Values of Agile Methods (1) • Individuals and Interactions vs. Process and Tools • Individuals create value, therefore focus on them • Without a skilled craftsman, the best tools are useless • Working Software vs. Comprehensive Documentation • A heavy process generates exhaustive documentation with all its drawbacks: ambiguity of language, cost of preparation, cost of maintenance to keep it up-to-date… • These documents are an illusion of progress • In agile methods, a single criterion measures the progress of a project: working software! • Documentation is a concrete support that helps produce software SEG 3101. Integrating Requirements Engineering into Software Engineering Processes. 18

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion Values of

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion Values of Agile Methods (2) • Customer Collaboration vs. Contract Negotiation • If negotiation protects you more or less from financial risk, it can cause project failure and result in endless trials where everybody loses eventually • We must abandon the war with the customer / supplier and think as one team with a common goal: a successful project • Responding to Change vs. Following a Plan • A predefined plan tends to make us unresponsive to events that occur during the project • Agile methods are designed to accommodate change, ensuring an accurate and adaptive strategic plan SEG 3101. Integrating Requirements Engineering into Software Engineering Processes. 19

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion Principles of

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion Principles of the Agile Manifesto (1) • Our highest priority is to satisfy the customer through early and continuous delivery of valuable software • Welcome changing requirements, even late in development – agile processes harness change for the customer's competitive advantage • Deliver working software frequently, from a couple of weeks to a couple of months, with a preference for the shorter period • Business people and developers must work together daily throughout the project • Build projects around motivated individuals – give them the environment and support they need, and trust them to get the job done • The most efficient and effective method of conveying information to and within a development team is face-to-face conversation SEG 3101. Integrating Requirements Engineering into Software Engineering Processes. 20

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion Principles of

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion Principles of the Agile Manifesto (2) • Working software is the primary measure of project progress • Agile processes promote a sustainable pace of development – the sponsors, developers, and users should be able to maintain a constant pace indefinitely • Continuous attention to technical excellence and good design enhances agility • Simplicity – the art of maximizing the amount of work not done – is essential • The best architectures, requirements, and designs emerge from self-organizing teams • At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly SEG 3101. Integrating Requirements Engineering into Software Engineering Processes. 21

SEG 3101. Integrating Requirements Engineering into Software Engineering Processes. 22

SEG 3101. Integrating Requirements Engineering into Software Engineering Processes. 22

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion Examples of

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion Examples of Agile Approaches • Extreme Programming (XP) • Lean software development • Scrum • Open Unified Process (Open. UP) • Kanban (development) • Adaptive Software Development (ASD) • Crystal Clear • DSDM • Feature Driven Development • Agile documentation • Agile ICONIX • Microsoft Solutions Framework (MSF) • Agile Data • Agile Modeling • Essential Unified Process (Ess. UP) • Getting Real • Scrum of scrums • Scaled Agile Framework • Dev. Ops • … SEG 3101. Integrating Requirements Engineering into Software Engineering Processes. 23

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion When to

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion When to Use Agile Methods in General? • The culture of the organization is supportive of collaboration • Team members are trusted (competence & confidence) • The organization is willing to live with the decisions developers make • Fewer but competent team members • Ideally less than 10 co-located team members • Environment that facilitates rapid communication between team members • Agile approaches are appropriate when requirements are difficult to predict, or change often • Situation where prototyping is required SEG 3101. Integrating Requirements Engineering into Software Engineering Processes. 24

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion When Is

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion When Is Using Agile Difficult? • Agile approaches are not appropriate for every project • Hard to use for • Large projects (>20 developers) • Scalable Agile Framework, Scrum of Scrums and others aim to address this issue • Distributed teams • Working environments not adapted to communication/collaboration • Critical applications (business-critical, safety-critical…) • Projects where a substantial specification is required prior to coding • When structure is rigid, e. g. , military “Command-control” type projects SEG 3101. Integrating Requirements Engineering into Software Engineering Processes. 25

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion Does Agility

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion Does Agility Work? Float like a butterfly, Sting like a bee SEG 3101. Integrating Requirements Engineering into Software Engineering Processes.

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion Extreme Programming

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion Extreme Programming (XP) (1) • Software is Listening, Testing, Coding, Designing. That’s all there is to software. Anyone who tells you different is selling something. 1 • Listen to customers while gathering requirements, develop test cases (functional tests and unit tests), code the objects, design (refactor) as more objects are added to the system • Listen – Test Design – Code – Test Design Test • XP is a software development approach introduced by Kent Beck, Ward Cunningham, Ron Jeffries (~2000) • Lightweight process model for OO software development • Quick product delivery while retaining flexibility and maintaining quality • Indented for small to medium size projects with a well integrated team • Small teams (up to 10 -15 programmers) [1] Kent Beck, author of Extreme Programming Explained SEG 3101. Integrating Requirements Engineering into Software Engineering Processes. 27

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion Extreme Programming

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion Extreme Programming (XP) (2) • Why extreme? • XP is based on the extreme application of 13 practices (guidelines or rules) that support each other • There is no real new practice (most existed under RUP), but the combination of practices and their extreme application is new • Code is at the centre of the process • All non-production related tasks are superfluous • Technical documentation = commented source code • Other documentation is a waste of time (e. g. , UML diagrams) • Elements of success • Common workplace and working hours • All tests must be automated and executed in short time • On-site customer • Developer and client must commit 100% to XP practices SEG 3101. Integrating Requirements Engineering into Software Engineering Processes. 28

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion 13 XP

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion 13 XP Practices Source: http: //www. xprogramming. com/ SEG 3101. Integrating Requirements Engineering into Software Engineering Processes. 29

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion Elements of

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion Elements of Extreme Programming • Roles • Clients (and tester), developer, sponsors • Artefacts • Activities (cont’d) • Frequent Releases • Spike Solutions • Pair Programming • Metaphors • Simple Design • User stories (prioritized) • Writing and Running Tests • Tasks, unit tests, functional tests, code • Refactoring • Activities • Writing User Stories • On-site Customer • Planning Game • Backlog • Collective Code Ownership • Continuous Integration • 40 Hour Week • Coding Standards • Stand Up Meeting • System Metaphor SEG 3101. Integrating Requirements Engineering into Software Engineering Processes. 30

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion User Stories

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion User Stories • A short description of the behavior of the system from the point of view of the customer/user • Use the customer/user’s terminology without technical jargon • Ideally written by the customers/users at first • Card, Conversation, Confirmation • Are used to create time estimates for release planning • Replace a large requirements document SEG 3101. Integrating Requirements Engineering into Software Engineering Processes. 31

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion On-site Customer

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion On-site Customer • The customer must always be available to: • Resolve ambiguities • Set priorities • Provide test cases • User stories are not detailed, so there always questions to ask the customer • Customer is considered part of the team SEG 3101. Integrating Requirements Engineering into Software Engineering Processes. 32

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion Planning Game

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion Planning Game (1) • Pieces • User Stories • Players • Customer & Developer • Moves • User story writing • Requirements are written by the customer on small index cards (simple, effective… and disposable) • User stories are written in business language and describe things that the system needs to do • Each user story is assigned a business value • For a few months-long project, there may be 50 -100 user stories SEG 3101. Integrating Requirements Engineering into Software Engineering Processes. 33

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion Planning Game

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion Planning Game (2) • Moves (cont’d) • Story estimation • Each user story is assigned a cost by the developer • Cost is measured in ideal development weeks (1 -3 person weeks) • No interruptions, know exactly what to do • A story is split by the customer if it takes longer than 3 weeks to implement • Estimate risk (high, medium, low) • Commitment • Customer and developer decide which user stories constitute the next release • Value and risk first • Developer orders the user stories of the next release so that more valuable or riskier stories are moved earlier in the schedule SEG 3101. Integrating Requirements Engineering into Software Engineering Processes. 34

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion Backlog •

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion Backlog • To keep track of what needs to be done • Prioritized – value and risk • May contain user stories • Requirements Stand up meeting Iteration Backlog Release Product SEG 3101. Integrating Requirements Engineering into Software Engineering Processes. 35

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion System Metaphor

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion System Metaphor • Overall theme to which developers and clients can relate • The system is built around one (or more) metaphors • If the metaphor is well chosen, it leads to design approaches, class names, better communication. . . • The computer is like an office desk. • Selecting items is like filling a shopping cart SEG 3101. Integrating Requirements Engineering into Software Engineering Processes. 36

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion Frequent Releases

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion Frequent Releases • Highly iterative development process – release cycle of up to 3 months – iterations of up to 3 weeks • Short cycles during which the four phases take place in parallel • Functional system delivered at the end of each cycle • Frequent feedback from the customer • In each iteration the selected user stories are implemented • Each user story is split into programming tasks of 1 -3 days SEG 3101. Integrating Requirements Engineering into Software Engineering Processes. 37

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion Spike Solution

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion Spike Solution • Need a mutual understanding of architecture • XP does not do a Big. Design. Up. Front • No architecture phase • Architectural Spike • Very simple program to test out solutions for tough technical or design problems – a throwaway prototype SEG 3101. Integrating Requirements Engineering into Software Engineering Processes. 38

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion Pair Programming

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion Pair Programming (1) • Pairs change continuously (few times during a day) • Every programmer knows all aspects of the system • A programmer can be easily replaced in the middle of the project SEG 3101. Integrating Requirements Engineering into Software Engineering Processes. 39

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion Pair Programming

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion Pair Programming (2) • May cost 10 -15% more than standalone programming • Code is simpler (fewer lines of code) with fewer defects (15%) • Ensures continuous code inspection SEG 3101. Integrating Requirements Engineering into Software Engineering Processes. 40

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion Other Practices

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion Other Practices (FYI) • Simple Design: Do the simplest thing that could possibly work • Tests: Automated tests developed prior to implementation: acceptance (from users) and unit (from developers) • Refactoring: to make the code and architecture simpler • Collective Code Ownership: Any programmer can (actually should) change any of the code at any time in order to make it simpler/better • Continuous Integration: Daily integration at least, at each commit if possible. A working, tested system is always available • 40 Hour Week: Overtime is defined as time in the office when you do not want to be there. Schedule wisely. Keep people happy and balanced • Coding Standards: Make pair programming and collective code ownership easier (naming, formatting…) • Stand Up Meeting: At the beginning of the day, 15 min long, standing up. Commitments in front of your peers, not about problem solving SEG 3101. Integrating Requirements Engineering into Software Engineering Processes. 41

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion XP Practices

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion XP Practices Revisited • XP practices are not new • They are supposed to be used all together to get the full value of the approach • The practices work together to create synergy • The full value of XP will not come until all the practices are in place. Many of the practices can be adopted piecemeal, but their effects will be multiplied when they are in place together. 1 [1] Ken Beck SEG 3101. Integrating Requirements Engineering into Software Engineering Processes. 42

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion XP Process

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion XP Process – Overview Sources: http: //www. extremeprogramming. org/ https: //eternalsunshineoftheismind. wordpress. com/2013/03/04/extreme-programming-xp-method-of-developing-i-s/ SEG 3101. Integrating Requirements Engineering into Software Engineering Processes. 43

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion XP Process

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion XP Process – Details of one “Iteration” Source: http: //www. extremeprogramming. org/ SEG 3101. Integrating Requirements Engineering into Software Engineering Processes. 44

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion XP Process

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion XP Process – Details of one “Development” Source: http: //www. extremeprogramming. org/ SEG 3101. Integrating Requirements Engineering into Software Engineering Processes. 45

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion XP Process

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion XP Process – Details of one “Collective Code Ownership” Conclusion: an "agile" process does not mean that it is simple, or that it does not include roles / artifacts / activities!!! Source: http: //www. extremeprogramming. org/ SEG 3101. Integrating Requirements Engineering into Software Engineering Processes. 46

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion Lean Software

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion Lean Software Development • Another agile approach, adapted from the Toyota Production System • Several principles • Eliminate waste (what does not generate value) • E. g. , unnecessary code or documents, bad requirements, avoidable repetitions, bureaucracy … • Optimize/See the whole (not just parts, and not just software) • Build quality/integrity in (work as intended, catch defects early) • Learn constantly (from customer feedback and from team) • Deliver fast (and steadily) • Respect people (and empower them) • Defer commitment (decide as late as possible, to gather knowledge) • Improve continuously (so, measure yourselves!) • Most are related to RE principles too! SEG 3101. Integrating Requirements Engineering into Software Engineering Processes. 47

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion Scrum •

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion Scrum • Scrum is an iterative, incremental framework for project management often seen in agile software development, a type of software engineering. http: //en. wikipedia. org/wiki/Scrum_(development) • Scrum is a process skeleton that contains sets of practices and predefined roles (in addition to users/stakeholders): • Scrum. Master: maintains the processes (~ project manager) • Product Owner: represents the stakeholders and the business • Team: does the analysis, design, implementation, testing, etc. SEG 3101. Integrating Requirements Engineering into Software Engineering Processes. 48

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion Scrum Process:

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion Scrum Process: Roles, Activities, Artefacts SEG 3101. Integrating Requirements Engineering into Software Engineering Processes. 49

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion Scrum Product

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion Scrum Product Owner • Responsible for: • Product backlog (voice of the customer) • Clarification of backlog items • Stakeholder analysis • Return on investment (value) • Prioritization of backlog (makes decisions) • Inspection of product increments (gathers feedback) • Capabilities • Project management • Communication • Business domain knowledge • Requirements engineering • Demanding! Certification available. [Susanne Muehlbauer, HOOD Group , RE 2011] SEG 3101. Integrating Requirements Engineering into Software Engineering Processes. 50

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion Principles of

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion Principles of RE in Scrum • Time boxing • Reduce work scope to a sprint (2 -4 weeks) • Face-to-face communication • Deferred decisions • Evolutionarily develop the requirements as late as possible • Embrace change SEG 3101. Integrating Requirements Engineering into Software Engineering Processes. 51

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion Where is

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion Where is RE Found in Scrum? • Product vision, Business/System requirements • in Product backlog • Implementation requirements • in Sprint backlog • Communicate, reduce risk, and focus on value, early! SEG 3101. Integrating Requirements Engineering into Software Engineering Processes. 52

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion Do Agile

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion Do Agile Practices Scale and Bring Benefits? • C. T. Schmidt, S. Gv and J. Heymann: Empirical Insights into the Perceived Benefits of Agile Software Engineering Practices: A Case Study from SAP. ICSE 2014, IEEE CS. • SAP has taught more than 4000 developers in agile software engineering practices. • Survey of 190 people, 74 teams, 5 countries + case studies • Focus on SCRUM teams (of ~10 people), pair programming and test-driven development • The studied practices lead to better software quality. • Deviating from existing assumptions, however, developers do not report a significant drop in their development speed. • Moreover, high adopters are more proud of their own contributions to the team, report a better team learning and feel more motivated and less stressed. • “Pair programming develops code and people” SEG 3101. Integrating Requirements Engineering into Software Engineering Processes. 53

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion Results from

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion Results from the Same Paper High adopters: >74% of their development time in pairs, >75% code coverage Low adopters: <16% of their development time in pairs, <33% code coverage SEG 3101. Integrating Requirements Engineering into Software Engineering Processes. 54

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion XP, Scrum

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion XP, Scrum and NFRs / Quality Requirements • User stories are often functional in nature • Business rules? • Qualities? • Measurable satisfaction criteria? • Rationales? • And their management? • Still need goals and quality requirements (NFRs) • Some NFRs might be system wide (e. g. , performance, availability), not just for one story in particular • Some NFRs might be conflicting (e. g. , security and usability) SEG 3101. Integrating Requirements Engineering into Software Engineering Processes. 55

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion And What

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion And What About Dev. Ops? Dev. Ops (a clipped compound of "development" and "operations") is a software engineering practice that aims at unifying software development (Dev) and software operation (Ops). The main characteristic of the Dev. Ops movement is to strongly advocate automation and monitoring at all steps of software construction, from integration, testing, releasing to deployment and infrastructure management. Dev. Ops aims at shorter development cycles, increased deployment frequency, more dependable releases, in close alignment with business objectives. [Wikipedia] SEG 3101. Integrating Requirements Engineering into Software Engineering Processes. 56

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion Dev. Ops

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion Dev. Ops Implies Extreme Automation! Goals, requirements, tests… Scrum, Lean, … https: //www. srijan. net/processes/devops-process-srijan Continuous deployment Management of organizational change Empirical (data-driven) requirements SEG 3101. Integrating Requirements Engineering into Software Engineering Processes. 57

Conclusions 58

Conclusions 58

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion Comparison –

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion Comparison – Requirements • Requirements in RUP-like processes • Use cases • Requirements documents (including non-functional requirements) • Requirements in XP-like processes • User stories on cards • On-site customers with strong involvement SEG 3101. Integrating Requirements Engineering into Software Engineering Processes. 59

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion Comparison –

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion Comparison – Risks and their Management (1) General risks: Wrong/bad requirements, changing requirements, schedule and costs overruns • RUP: Risks • Do the use cases adequately describe all requirements ? • “Best” practices actually depend on the context • RUP: Risk management • Iterations, architecture for known risks, prioritization of use cases • XP: Risks • Difficulty in having an on-site customer with a complete view of the client side and the ability to write stories & tests • NFRs not well covered • Traceability? • XP: Risk management • Iterations (very short), extreme simplicity, user stories selected by customer, estimates by developer • Stories that are difficult to estimate are considered higher risk SEG 3101. Integrating Requirements Engineering into Software Engineering Processes. 60

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion Comparison –

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion Comparison – Risks (2) • Risk: later iterations may require more sophisticated design than the earlier iterations • RUP is predictive: elaboration phase considers all use cases and focuses on the ones with the highest impact on the architecture • Time wasted if some use cases end up being dropped • First delivery delayed • XP is adaptive: keep design simple and refactor when needed (extreme refactoring) • Can end up being very difficult if later iterations introduce major changes • Risk: developers leave and new developers join • RUP: documentation of the architecture and key scenarios • XP: use of pair programming to teach new developers and to ensure knowledge of the system is well distributed SEG 3101. Integrating Requirements Engineering into Software Engineering Processes. 61

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion To Watch

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion To Watch and Read • Agile Requirements Management - When User Stories Are Not Enough • https: //www. youtube. com/watch? v=v. HNr-am. ZDs. U • International Requirements Engineering Board (2014): Requirements Engineering and Agile Development: collaborative, just enough, just in time, sustainable. SEG 3101. Integrating Requirements Engineering into Software Engineering Processes. 62

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion Sample Changes

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion Sample Changes to Plain XP to Improve its RE Part • e. Xtreme Requirements (XR), from Leite et al. • Notion of scenario and process • Non-functional requirements (constraints) • Traceability (lexicon) • Derivation of situations from scenarios • Formal expression of scenarios • XR improved, from Leite and Leonardi • Business rule concept • Interviews, workshops • XP modified, from Nawrocki et al. • Written requirements documentation • Several customer representatives • Requirements engineering phase SEG 3101. Integrating Requirements Engineering into Software Engineering Processes. 63

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion Is Agile

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion Is Agile Better? The Debate Is Still On! • After seeing heavyweight and agile processes, the decision is not always binary • Maybe this is the wrong question to ask… • It really depends on your context and your project • What are your needs? • What are the appropriate artifacts (documents, models…)? • What are the tasks and roles? • What are the appropriate tools? • What process elements are adequate and how to assemble them? • Based on an analysis of your context and project, you should be able to make the appropriate decisions • Learn to tailor processes based on roles, artefacts, and activities! • See also supplementary material by Alan M. Davies posted on the course website SEG 3101. Integrating Requirements Engineering into Software Engineering Processes. 64

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion And Standards?

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion And Standards? • In addition to IEEE-830, ISO/IEC/IEEE 29148: 2011, & SPEM: • ISO/IEC 24744: 2014: Software engineering — Metamodel for development methodologies (SEMDM) • CENELEC Internal Regulations Part 3: Rules for the structure and drafting of CEN/CENELEC Publications (ISO/IEC Directives – Part 2, modified), June 2015. http: //boss. cen. eu/ref/IR 3_E. pdf SEG 3101. Integrating Requirements Engineering into Software Engineering Processes. 65

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion ISO/IEC 29110

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion ISO/IEC 29110 -1: 2016 Standard • Systems and software engineering -- Lifecycle profiles for Very Small Entities (VSEs) • Families of standards that target very small entities (VSEs) that develop or maintain systems that include hardware or software. • A VSE is a company, an organization, a department or a project of twenty-five people or less. • Covers requirements, traceability, processes, and much more. • Standards and articles available on the private part of the course website. • Small and beneficial enough to be used in your capstone project! SEG 3101. Integrating Requirements Engineering into Software Engineering Processes. 66

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion Another Recent

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion Another Recent Standard: SEMAT (semat. org) • Software Engineering Method and Theory (I. Jacobson and others) • Software engineering is “gravely hampered today by immature practices” Need to re-found software engineering based on a solid theory, proven principles and best practices that: • • Include a kernel of widely-agreed elements Addresses both technology and people issues Are supported by industry, academia, researchers and users Support extension in the face of changing requirements and technology • Similar to SPEM and RUP, but acknowledging agile practices • OMG standard (July 2018): http: //www. omg. org/spec/Essence/1. 2/ • Ivar Jacobson: The Essence of Software Engineering: the SEMAT Approach. Google Zürich Tech Talk, July 17, 2014 https: //www. youtube. com/watch? v=WNl. ERr. Vx. Yjs SEG 3101. Integrating Requirements Engineering into Software Engineering Processes. 67

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion SEMAT: Checklist

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion SEMAT: Checklist for Requirement Items SEG 3101. Integrating Requirements Engineering into Software Engineering Processes. 68

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion Quiz! •

SW Process Engineering Agile Methods Overview Extreme Programming Practices XP Process Conclusion Quiz! • Are RUP, EPF, and SPEM development processes? • What are the main three concepts used in process engineering? • Name three XP activities related to requirements engineering. • Which XP activity supports prioritization? • What Scrum role is most related to a requirements engineer? • What are some weaknesses of XP in terms of requirements? • Is XP more predictive than a RUP-based process? • What elements would you use as part of a requirements engineering process for: • A capstone project a Web application that involves 5 people (part-time), a client, and an 8 -month duration? • An open source project, small (e. g. , j. UCMNav) or large (e. g. , Apache)? • A complex video game (League of Legends)? SEG 3101. Integrating Requirements Engineering into Software Engineering Processes. 69

SEG 3101. Integrating Requirements Engineering into Software Engineering Processes. 70

SEG 3101. Integrating Requirements Engineering into Software Engineering Processes. 70

References • http: //www. dilbert. com/ • http: //www-306. ibm. com/software/awdtools/rup/ • http: //www.

References • http: //www. dilbert. com/ • http: //www-306. ibm. com/software/awdtools/rup/ • http: //www. agilemanifesto. org/ • http: //www. xprogramming. com/ • http: //www. extremeprogramming. org/ • http: //semat. org SEG 3101. Integrating Requirements Engineering into Software Engineering Processes. 71