0% found this document useful (0 votes)
58 views90 pages

8.1 Processes

The document discusses integrating requirements engineering into software development processes. It provides an overview of the Rational Unified Process (RUP) framework, including its phases, activities, artifacts, roles and disciplines. Specifically, it describes the business modeling and requirements disciplines within RUP, outlining their objectives, artifacts, roles and tasks.

Uploaded by

Unique Unicorn
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
58 views90 pages

8.1 Processes

The document discusses integrating requirements engineering into software development processes. It provides an overview of the Rational Unified Process (RUP) framework, including its phases, activities, artifacts, roles and disciplines. Specifically, it describes the business modeling and requirements disciplines within RUP, outlining their objectives, artifacts, roles and tasks.

Uploaded by

Unique Unicorn
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 90

Integrating Requirements

Engineering into Software


Development Processes

Based on Powerpoint slides by Miguel Garzón, Gunter Mussbacher


and material from
S. Somé 2008, D. Amyot 2008, 2012, and Semat.org
Table of Contents
• Rational Unified Process (RUP)
• Agile Methods
• Overview
• Extreme Programming (XP)
• Practices
• XP Process
• Lean Software Development
• Scrum

• Conclusion
• Role of RE and Comparison
• SEMAT

• 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 and Stars”
2
Rational Unified Process
Rational Unified Process 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)
• Evolved from Objectory (1992) and an earlier Ericsson approach
• Now an IBM product1. Old but still around…
• Vocabulary and concepts
• Artefacts, roles, disciplines, activities
• Use case-driven, architecture-centered, iterative, incremental, risk
management-oriented Use Case-Driven Process

• RUP is a process
framework (not a
process on its own)
• Intended to be
customized to
project needs
[1] http://www.ibm.com/developerworks/downloads/r/rup/
4
Rational Unified Process Agile Methods Overview Extreme Programming Practices XP Process Conclusion

RUP Vocabulary (1)


• Artefact
• Data element produced during the development (document, diagram,
report, source code, model…)

• Role
• Set of skills and responsibilities
• RUP defines ~30 roles to be assigned (not all need to be fulfilled,
depends on the project)
• 4 role categories: analysts, developers, testers, and managers

• Activity
• Small, definable, reusable task that can be allocated to a single role

5
Rational Unified Process Agile Methods Overview Extreme Programming Practices XP Process Conclusion

RUP Vocabulary (2)


• Discipline
• Set of activities resulting in a given set of artefacts
• RUP includes 9 disciplines: engineering (business modeling,
requirements, analysis and design, implementation, test, deployment)
and support (configuration and change management, project
management, environment)
• Guidance for a discipline is provided as workflows: sequence of
activities that produces a result of observable value

6
Rational Unified Process Agile Methods Overview Extreme Programming Practices XP Process Conclusion

Disciplines, Phases, and Iterations


Identify most of the Identify and detail
Detail the use cases Track and capture
use cases to define
(80% of the requirements) remaining use cases requirements changes
scope, detail critical
use cases (10%)

7
Rational Unified Process Agile Methods Overview Extreme Programming Practices XP Process Conclusion

Inception Phase
• Overriding goal is obtaining buy-in from all interested parties
• Initial requirements capture
• Cost-benefit analysis
• Initial risk analysis
• Project scope definition
• Defining a candidate architecture
• Development of a disposable prototype
• Initial use case model (10%-20% complete)
• First pass at a domain model

8
Rational Unified Process Agile Methods Overview Extreme Programming Practices XP Process Conclusion

Elaboration Phase
• Requirements Analysis and Capture
• Use Case Analysis
• Use Cases (80% written and reviewed by end of phase)
• Use Case Model (80% done)
• Scenarios
• Sequence and Collaboration Diagrams
• Class, Activity, Component, State Diagrams
• Glossary (so users and developers can speak common vocabulary)
• Domain Model
• To understand the problem: the system’s requirements as they exist within
the context of the problem domain
• Risk Assessment Plan revised
• Architecture Document

9
Rational Unified Process Agile Methods Overview Extreme Programming Practices XP Process Conclusion

Construction Phase
• Focus is on implementation of the design
• Cumulative increase in functionality
• Greater depth of implementation (stubs fleshed out)
• Greater stability begins to appear
• Implement all details, not only those of central architectural value
• Analysis continues, but design and coding predominate

10
Rational Unified Process Agile Methods Overview Extreme Programming Practices XP Process Conclusion

Transition Phase
• The transition phase consists of the transfer of the system to
the user community
• Includes manufacturing, shipping, installation, training, technical
support, and maintenance
• Development team begins to shrink
• Control is moved to maintenance team
• Alpha, Beta, and final releases
• Software updates
• Integration with existing systems (legacy, existing versions…)

11
Rational Unified Process Agile Methods Overview Extreme Programming Practices XP Process Conclusion

Business Modeling Discipline


• Objectives
• Understand the structure and the dynamics of the organization in
which a system is to be deployed (the target organization)
• Understand current problems in the target organization and identify
improvement potential
• Ensure that customers, end users, and developers have a common
understanding of the target organization
• Derive the system requirements needed to support the target
organization
• Explains how to describe a vision of the organization in which
the system will be deployed and how to then use this vision
as a basis to outline the process, roles, and responsibilities

12
Rational Unified Process Agile Methods Overview Extreme Programming Practices XP Process Conclusion

Business Modeling Discipline – Artefacts

13
Rational Unified Process Agile Methods Overview Extreme Programming Practices XP Process Conclusion

Business Modeling Discipline – Roles & Activities

14
Rational Unified Process Agile Methods Overview Extreme Programming Practices XP Process Conclusion

Requirements Discipline
• Establish and maintain agreement with the customers and
other stakeholders on what the system should do
• Provide system developers with a better understanding of the
system requirements
• Define the boundaries of the system
• Provide a basis for planning the technical contents of
iterations
• Provide a basis for estimating the cost and time to develop
the system

15
Rational Unified Process Agile Methods Overview Extreme Programming Practices XP Process Conclusion

Requirements Discipline – Artefacts

16
Rational Unified Process Agile Methods Overview Extreme Programming Practices XP Process Conclusion

Requirements Discipline – Roles & Activities

17
Rational Unified Process Agile Methods Overview Extreme Programming Practices XP Process Conclusion

Requirements Discipline – Tasks


• Includes the following tasks
• List candidate requirements
• Candidate features that could become requirements
• Understand system context
• Based on business model, domain model or simple glossary
• Capture functional requirements
• Develop use cases and user interface support of use cases
• Capture non-functional requirements
• Tied to use cases or domain concepts
• Defined as supplementary requirements
• Validate requirements

18
Rational Unified Process Agile Methods Overview Extreme Programming Practices XP Process Conclusion

Other Disciplines (FYI) – Engineering (1)


• Analysis and Design Discipline
• Transform the requirements into a design of the system-to-be
• Evolve a robust architecture for the system
• Adapt the design to match the implementation environment
• Implementation Discipline
• Define the organization of the implementation
• Implement the design elements
• Unit test the implementation
• Integrate the results produced by individual implementers (or teams),
resulting in an executable system

19
Rational Unified Process Agile Methods Overview Extreme Programming Practices XP Process Conclusion

Other Disciplines (FYI) – Engineering (2)


• Test Discipline
• Find and document defects in software quality
• Provide general advice about perceived software quality
• Prove the validity of the assumptions made in design and requirement
specifications through concrete demonstration
• Validate that the software product functions as designed
• Validate that the software product functions as required (that is, the
requirements have been implemented appropriately)
• Deployment Discipline
• Ensure that the software product is available for its end users

20
Rational Unified Process Agile Methods Overview Extreme Programming Practices XP Process Conclusion

Supporting Disciplines (FYI)


• Configuration & Change Management Discipline
• Identify configuration items
• Restrict changes to those items
• Audit changes made to those items
• Define and manage configurations of those items
• Project Management Discipline
• Manage a software-intensive project; manage risk
• Plan, staff, execute, and monitor a project
• Environment Discipline
• Provide the software development organization with the software
development environment – both processes and tools – that will
support the development team
• This includes configuring the process for a particular project, as well
as developing guidelines in support of the project

21
Rational Unified Process Agile Methods Overview Extreme Programming Practices XP Process Conclusion

RUP Best Practices


• RUP is a set of best practices, not a forced process
• Guidelines for creating good documents, models...
• Focus on having the right process (neither too heavy nor insufficient)
• Iterative development
• Each iteration considers the 9 disciplines to some degree
• Requirements management to establish an understanding of
customer / project
• With use cases, requirements management tools and processes
• Component based architecture
• Promotes reusability, unit testing
• Visual modeling (using UML)
• Continuous verification of quality (reviews, metrics,
indicators…)
• Change management (baselines, change requests…) 22
Rational Unified Process Agile Methods Overview Extreme Programming Practices XP Process Conclusion

Other Tools/Standards for Process Engineering


• Customizable software process engineering frameworks
• OMG standard: Software & Systems Process Engineering Metamodel
specification (SPEM), Version 2.0, April 2008
• http://www.omg.org/spec/SPEM/2.0/

• Eclipse Process Framework (EPF) – an Eclipse Project


• Predefined and extensible roles, tasks, and development styles
• http://www.eclipse.org/epf/
• Free EPF Composer tool

• Rational Method Composer (RMC)


• A tool for defining and monitoring your own development process
• http://www-03.ibm.com/software/products/en/rmc

23
Rational Unified Process Agile Methods Overview Extreme Programming Practices XP Process Conclusion

RMC Sample Snapshots

24
Rational Unified Process Agile Methods Overview Extreme Programming Practices XP Process Conclusion

RUP and Agility?


• There is no contradiction between these two terms
• A definition of agile processes can lead to a cumbersome process…
• A definition of rich processes can lead to an agile process…

• Actually…
• In 2006, IBM created a subset of RUP tailored for the delivery of Agile
projects released as an open source method called OpenUp
• For Eclipse EPF: http://epf.eclipse.org/wikis/openup/
• http://en.wikipedia.org/wiki/OpenUP

25
Agile Methods
Rational Unified Process Agile Methods Overview Extreme Programming Practices XP Process Conclusion

Agile Manifesto (http://agilemanifesto.org)

27
Rational Unified Process 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

28
Rational Unified Process 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

29
Rational Unified Process 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 30
Rational Unified Process 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
31
Rational Unified Process Agile Methods Overview Extreme Programming Practices XP Process Conclusion

Examples of Agile Approaches


• Agile
Extreme
documentation
Programming
• (XP)
Agile ICONIX
• Scrum
Microsoft Solutions Framework (MSF)
• Lean software
Agile Data
• development
Agile Modeling
•• Open UnifiedProcess
Agile Unified Process(AUP)
(OpenUP)
• Essential Unified Process (EssUP)
• Kanban (development)
• Getting Real
• Adaptive Software
•…Development (ASD)
• Crystal Clear
• DSDM
• Feature Driven
Development 32
Rational Unified Process 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

33
Rational Unified Process Agile Methods Overview Extreme Programming Practices XP Process Conclusion

When Is Usage Difficult?


• Agile approaches are not appropriate for every project
• Hard to use for
• Large projects (>20 developers)
• Distributed teams
• Working environments not adapted to close 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-and-control” type
projects

34
Rational Unified Process Agile Methods Overview Extreme Programming Practices XP Process Conclusion

On Agility…

Float like a butterfly,

Sting like a bee

Muhammad Ali

www.youtube.com/watch?v=HXzQqqn-rVc
Rational Unified Process Agile Methods Overview Extreme Programming Practices XP Process Conclusion

Does Agility Work?


Rational Unified Process 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
• 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
37
Rational Unified Process Agile Methods Overview Extreme Programming Practices XP Process Conclusion

Extreme Programming (XP) (2)


• Why extreme?
• XP is based on the extreme application of 12 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

38
Rational Unified Process Agile Methods Overview Extreme Programming Practices XP Process Conclusion

13 XP Practices

Source: http://www.xprogramming.com/
39
Rational Unified Process Agile Methods Overview Extreme Programming Practices XP Process Conclusion

Elements of Extreme Programming


• Roles
Activities (cont’d)
• Clients
Spike Solutions
(and tester), developer, sponsors
• Artefacts
• Simple Design
•• Writing and Running Tests
Metaphors
•• Refactoring
User stories (prioritized)
•• Pair Programming
Tasks, unit tests, functional tests, code
• Collective Code Ownership
• Activities
•• Continuous Integration
Writing User Stories
•• 40 Hour Week
Planning Game
•• On-site Customer
Frequent Releases
•• Coding Standards
System Metaphor
• Stand Up Meeting
• Backlog

40
Rational Unified Process Agile Methods Overview Extreme Programming Practices XP Process Conclusion

User Stories (1)


• 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
• One for each major feature in the system
• Must be written by the customers/users
• Are used to create time estimates for release planning
• Replace a large requirements document

41
Rational Unified Process Agile Methods Overview Extreme Programming Practices XP Process Conclusion

User Stories (2)


• Drive the creation of the acceptance tests
• One or more tests to verify that a story has been properly
implemented
• Different from requirements
• Should only provide enough detail to make a reasonably low risk
estimate of how long the story will take to implement
• Different from use cases
• Written by customer, not programmers
• User stories have 3 crucial aspects
• Card (= enough information to identify
the story)
• Conversation
• Customer and programmers discuss the story to elaborate on the details
• Verbal when possible, but documented when required
• Confirmation (= acceptance tests)
42
Rational Unified Process 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

43
Rational Unified Process 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
• If less than one week, it is too detailed and needs to be combined
• 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

44
Rational Unified Process 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

45
Rational Unified Process Agile Methods Overview Extreme Programming Practices XP Process Conclusion

System Metaphor
• System metaphor provides a broad view of the project’s goal
• Overall theme to which developers and clients can relate
• The system is built around one (or more) system metaphors
• If the metaphor is well chosen, it leads to design approaches,
class names, better communication...
• The computer is like an office desk.
• The payroll system is like an assembly line
• Selecting items is like filling a shopping cart
• Developing software is like building a tree swing

46
Rational Unified Process Agile Methods Overview Extreme Programming Practices XP Process Conclusion

Spike Solution
• Need a mutual understanding of architecture
• XP does not do a BigDesignUpFront
• No architecture phase

• Architectural Spike
• Very simple program to test out solutions for tough technical or design
problems – a throwaway prototype
• May lead to a system metaphor

47
Rational Unified Process Agile Methods Overview Extreme Programming Practices XP Process Conclusion

Simple Design (FYI)


• Do the simplest thing that could possibly work
• Create the best (simplest) design you can
• Do not spend time implementing potential future functionality
(requirements will change)

• Put in what you need when you need it

• A simple design ensures that there is less


• to communicate
• to test
• to refactor

48
Rational Unified Process Agile Methods Overview Extreme Programming Practices XP Process Conclusion

Tests (FYI)
• Tests play the most important and central role in XP
• Tests are written before the code is developed
• Forces concentration on the interface; accelerates development;
safety net for coding and refactoring
• All tests are automated (test suites, testing framework)
• If user stories are considered the requirements, then tests
may be considered as the specification of the system
• Two kinds of test
• Acceptance tests (functional tests)
• Clients provide test cases for their stories
• Developers transform these into automatic tests
• Unit tests
• Developers write tests for their classes (before implementing the classes)
• All unit tests must run 100% successfully all the time
49
Rational Unified Process Agile Methods Overview Extreme Programming Practices XP Process Conclusion

Refactoring (FYI)
• Refactoring is the process of changing a software system in
such a way that it does not alter the external behavior of the
code yet improves its internal structure.1

• The aim of refactoring is to


• Make the design simpler
• Make the code more understandable
• Improve the tolerance of code to change
• Useful names should be used (system metaphor)
• Refactoring is continuous design
• Remove duplicate code
• Tests guarantee that refactoring did not break anything that
worked!
[1] Martin Fowler
50
Rational Unified Process 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

51
Rational Unified Process Agile Methods Overview Extreme Programming Practices XP Process Conclusion

Pair Programming (2)


• May cost 10-15% more than standalone programming
• Code is simpler (fewer LOC) with less defects (15%)
• Ensures continuous code inspection

52
Rational Unified Process Agile Methods Overview Extreme Programming Practices XP Process Conclusion

Collective Code Ownership (FYI)


• The code does not belong to any programmer but to the team
• Any programmer can (actually should) change any of the
code at any time in order to
• Make it simpler
• Make it better
• Encourages the entire team to work more closely together
• Everybody tries to produce a high-quality system
• Code gets cleaner
• System gets better all the time
• Everybody is familiar with most of the system

53
Rational Unified Process Agile Methods Overview Extreme Programming Practices XP Process Conclusion

Continuous Integration (FYI)


• Daily integration at least
• The whole system is built (integrated) every couple of hours
• A working, tested system is always available

• XP feedback cycle
• Develop unit test
• Code
• Integrate
• Run all units tests (100%)
• Release

54
Rational Unified Process Agile Methods Overview Extreme Programming Practices XP Process Conclusion

40 Hour Week (FYI)


• Overtime is defined as time in the office when you do not
want to be there.1

• If there is overtime one week, the next week should not


include more overtime
• If more is needed then something is wrong with the schedule

• Keep people happy and balanced


• Rested programmers are more likely to refactor effectively,
think of valuable tests, and handle the strong team interaction

[1] Ron Jeffries


55
Rational Unified Process 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 are always questions
to ask the customer
• Customer is considered part of the team

56
Rational Unified Process Agile Methods Overview Extreme Programming Practices XP Process Conclusion

Coding Standards (FYI)


• Coding standards make pair programming and collective
code ownership easier

• Common scheme for choosing names


• Common code formatting

57
Rational Unified Process Agile Methods Overview Extreme Programming Practices XP Process Conclusion

Stand Up Meeting (FYI)


• Daily at the beginning of the day, 15min long, standing up

• Not for problem solving


• Anyone may attend but only team members/sponsor/manager talk
• Helps avoid other unproductive meetings

• Make commitments in front of your peers


• What did you do yesterday?
• What will you do today?
• What, if anything, is in your way?

58
Rational Unified Process Agile Methods Overview Extreme Programming Practices XP Process Conclusion

Backlog (FYI)
• Keep track of what needs to be done
• Prioritized – value and risk
• May contain user stories

• Requirements

Stand up meeting

Iteration

Backlog Release Product

59
Rational Unified Process Agile Methods Overview Extreme Programming Practices XP Process Conclusion

13 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


60
Rational Unified Process Agile Methods Overview Extreme Programming Practices XP Process Conclusion

XP Process – Overview

Source: http://www.extremeprogramming.org/
61
Rational Unified Process Agile Methods Overview Extreme Programming Practices XP Process Conclusion

XP Process – Details of one “Iteration”

Source: http://www.extremeprogramming.org/
62
Rational Unified Process Agile Methods Overview Extreme Programming Practices XP Process Conclusion

XP Process – Details of one “Development”

Source: http://www.extremeprogramming.org/
63
Rational Unified Process Agile Methods Overview Extreme Programming Practices XP Process Conclusion

XP Process – Details of one “Collective Code Ownership”

Source: http://www.extremeprogramming.org/
64
Rational Unified Process 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 En
gineering 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. 65
Rational Unified Process 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

66
Rational Unified Process 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!
67
Rational Unified Process 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:
• ScrumMaster: maintains the processes (~ project manager)
• Product Owner: represents the stakeholders and the business
• Team: does the analysis, design, implementation, testing, etc.

68
Rational Unified Process Agile Methods Overview Extreme Programming Practices XP Process Conclusion

Scrum Product Owner


• Responsible for:
• Product backlog
• Clarification of backlog items
• Stakeholder analysis
• Return on investment (value)
• Prioritization of backlog
• Inspection of product increments
• Capabilities
• Project management
• Communication
• Business domain knowledge
• Requirements engineering
• Mr. & Mrs. Incredible!
[Susanne Muehlbauer, HOOD Group , RE 2011]
69
Rational Unified Process 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

70
Rational Unified Process Agile Methods Overview Extreme Programming Practices XP Process Conclusion

Where is RE Found in Scrum?


• Product vision, Business/System requirement
• in Product backlog

• Implementation requirement
• in Sprint backlog

• Requirements acceptance
• in Potentially reusable product increment

• Reduce risk, focus on value, early!

71
Rational Unified Process 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?
• Management?

• Still need goals, goal models, and quality requirements


• Some NFRs might be system wide, not just for one story
• Some NFRs might be conflicting

72
Rational Unified Process Agile Methods Overview Extreme Programming Practices XP Process Conclusion

Comparison – Requirements
• Requirements in RUP
• Use cases
• Requirements documents (including non-functional requirements)

• Requirements in XP
• User stories on cards
• On-site customers with strong involvement

73
Rational Unified Process Agile Methods Overview Extreme Programming Practices XP Process Conclusion

Comparison – Risks (1)


General risks: Wrong/bad requirements, changing
requirements, schedule and costs overruns
• RUP: Risks
• Do the use cases adequately describe all requirements ?
• 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 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

74
Rational Unified Process 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

75
Rational Unified Process 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=vHNr-amZDsU

• International Requirements Engineering Board (2014):


Requirements Engineering and Agile Development: collaborative
, just enough, just in time, sustainable.

76
Rational Unified Process Agile Methods Overview Extreme Programming Practices XP Process Conclusion

Suggested Improvements to XP
• eXtreme Requirements (Leite)
• http://www-di.inf.puc-rio.br/~julio/Slct-pub/XR.pdf
• eXtreme Requirements improved (Leite and Leonardi)
• http://www.mm.di.uoa.gr/~rouvas/ssi/caise2002/23480420.pdf
• XP modified (Nawrocki et al.)
• http://www.cs.put.poznan.pl/jnawrocki/publica/re02-essen.doc
• EasyWinWin (Grünbacher and Hofer)
• http://www.agilealliance.com/show/909
•…

77
Rational Unified Process Agile Methods Overview Extreme Programming Practices XP Process Conclusion

Sample Changes to Plain XP


• eXtreme Requirements (XR)
• Notion of scenario and process
• Non-functional requirements (constraints)
• Traceability (lexicon)
• Derivation of situations from scenarios
• Formal expression of scenarios
• XR improved
• Business rule concept
• Interviews, workshops
• XP modified
• Written requirements documentation
• Several customer representatives
• Requirements engineering phase

78
Rational Unified Process Agile Methods Overview Extreme Programming Practices XP Process Conclusion

Is Agile Better? The Debate Is Still On!


• After seeing heavy and light 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 mandatory supplementary material by Alan M.
Davies posted on the course website
79
Rational Unified Process Agile Methods Overview Extreme Programming Practices XP Process Conclusion

And Standards?
• ISO/IEC/IEEE 29148:2011
Systems and software engineering — Life cycle processes —
Requirements engineering
• CENELEC Internal Regulations Part 3: Rules for the structure
and drafting of CEN/CENELEC Publications (ISO/IEC
Directives – Part 2, modified), 2009-08
• See also
http://www.iec.ch/members_experts/refdocs/iec/isoiec-dir2%7Bed6.0
%7Den.pdf
for the 2011 version in English

80
Rational Unified Process Agile Methods Overview Extreme Programming Practices XP Process Conclusion

Recent Effort: SEMAT (semat.org)


• Software Engineering Method and Theory
• Led by I. Jacobson and others.
• Software engineering is “gravely hampered today by immature
practices”. Specific problems include:
• The prevalence of fads more typical of fashion industry than
of an engineering discipline.
• The lack of a sound, widely accepted theoretical basis.
• The huge number of methods and method variants, with
differences little understood and artificially magnified.
• The lack of credible experimental evaluation and validation.
• The split between industry practice and academic research.
• Ivar Jacobson: The Essence of Software Engineering: the SEMAT
Approach. Google Zürich Tech Talk, July 17, 2014
https://www.youtube.com/watch?v=WNlERrVxYjs
81
Rational Unified Process Agile Methods Overview Extreme Programming Practices XP Process Conclusion

SEMAT
• “We support a process to re-found software engineering
based on a solid theory, proven principles and best practices
that:
• Include a kernel of widely-agreed elements, extensible for
specific uses
• Addresses both technology and people issues
• Are supported by industry, academia, researchers and users
• Support extension in the face of changing requirements and
technology”
• Ivar Jacobson, Ian Spence and Pan-Wei Ng: Agile and
SEMAT — Perfect Partners. CACM, Vol. 56, No. 11, pages
53-59, Nov. 2013 (download it here).
• Work towards an OMG standard (May 2014):
• http://www.omg.org/spec/Essence/1.0/Beta2/
82
Rational Unified Process Agile Methods Overview Extreme Programming Practices XP Process Conclusion

SEMAT: Processes and Statuses

83
Rational Unified Process Agile Methods Overview Extreme Programming Practices XP Process Conclusion

SEMAT “Essence” and Requirements

84
Rational Unified Process Agile Methods Overview Extreme Programming Practices XP Process Conclusion

SEMAT: States of Requirements

85
Rational Unified Process Agile Methods Overview Extreme Programming Practices XP Process Conclusion

SEMAT: States of Requirement Elements

86
Rational Unified Process Agile Methods Overview Extreme Programming Practices XP Process Conclusion

SEMAT: Checklist for Requirement Items

87
Rational Unified Process Agile Methods Overview Extreme Programming Practices XP Process Conclusion

Observations About SEMAT


• SEMAT shares many similarities with RUP and EPF in its
form
• Framework for roles, activities, artefacts
• Looks for reusable practices
• … While acknowledging the best practices observed in agile
processes
• … And acknowledging the need to monitor the statuses of
many things.
• To measure progress and health

• However, whether this will be picked up or not has yet to be


seen!

88
Rational Unified Process Agile Methods Overview Extreme Programming Practices XP Process Conclusion

Exercise
• What elements would you use as part of a requirement
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., jUCMNav) or large (e.g.,
Apache)?
• A complex video game (Call of Duty 15)?

89
90

You might also like