8.1 Processes
8.1 Processes
• Conclusion
• Role of RE and Comparison
• SEMAT
• 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
• 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
6
Rational Unified Process Agile Methods Overview Extreme Programming Practices XP Process Conclusion
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
12
Rational Unified Process Agile Methods Overview Extreme Programming Practices XP Process Conclusion
13
Rational Unified Process Agile Methods Overview Extreme Programming Practices XP Process Conclusion
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
16
Rational Unified Process Agile Methods Overview Extreme Programming Practices XP Process Conclusion
17
Rational Unified Process Agile Methods Overview Extreme Programming Practices XP Process Conclusion
18
Rational Unified Process Agile Methods Overview Extreme Programming Practices XP Process Conclusion
19
Rational Unified Process Agile Methods Overview Extreme Programming Practices XP Process Conclusion
20
Rational Unified Process Agile Methods Overview Extreme Programming Practices XP Process Conclusion
21
Rational Unified Process Agile Methods Overview Extreme Programming Practices XP Process Conclusion
23
Rational Unified Process Agile Methods Overview Extreme Programming Practices XP Process Conclusion
24
Rational Unified Process Agile Methods Overview Extreme Programming Practices XP Process Conclusion
• 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
27
Rational Unified Process Agile Methods Overview Extreme Programming Practices XP Process Conclusion
28
Rational Unified Process Agile Methods Overview Extreme Programming Practices XP Process Conclusion
29
Rational Unified Process Agile Methods Overview Extreme Programming Practices XP Process Conclusion
33
Rational Unified Process Agile Methods Overview Extreme Programming Practices XP Process Conclusion
34
Rational Unified Process Agile Methods Overview Extreme Programming Practices XP Process Conclusion
On Agility…
Muhammad Ali
www.youtube.com/watch?v=HXzQqqn-rVc
Rational Unified Process Agile Methods Overview Extreme Programming Practices XP Process Conclusion
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
40
Rational Unified Process Agile Methods Overview Extreme Programming Practices XP Process Conclusion
41
Rational Unified Process Agile Methods Overview Extreme Programming Practices XP Process Conclusion
43
Rational Unified Process Agile Methods Overview Extreme Programming Practices XP Process Conclusion
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
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
51
Rational Unified Process Agile Methods Overview Extreme Programming Practices XP Process Conclusion
52
Rational Unified Process Agile Methods Overview Extreme Programming Practices XP Process Conclusion
53
Rational Unified Process Agile Methods Overview Extreme Programming Practices XP Process Conclusion
• 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
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
57
Rational Unified Process Agile Methods Overview Extreme Programming Practices XP Process Conclusion
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
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
XP Process – Overview
Source: http://www.extremeprogramming.org/
61
Rational Unified Process Agile Methods Overview Extreme Programming Practices XP Process Conclusion
Source: http://www.extremeprogramming.org/
62
Rational Unified Process Agile Methods Overview Extreme Programming Practices XP Process Conclusion
Source: http://www.extremeprogramming.org/
63
Rational Unified Process Agile Methods Overview Extreme Programming Practices XP Process Conclusion
Source: http://www.extremeprogramming.org/
64
Rational Unified Process Agile Methods Overview Extreme Programming Practices XP Process Conclusion
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
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
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
• Implementation requirement
• in Sprint backlog
• Requirements acceptance
• in Potentially reusable product increment
71
Rational Unified Process Agile Methods Overview Extreme Programming Practices XP Process Conclusion
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
74
Rational Unified Process Agile Methods Overview Extreme Programming Practices XP Process Conclusion
75
Rational Unified Process Agile Methods Overview Extreme Programming Practices XP Process Conclusion
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
78
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
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
83
Rational Unified Process Agile Methods Overview Extreme Programming Practices XP Process Conclusion
84
Rational Unified Process Agile Methods Overview Extreme Programming Practices XP Process Conclusion
85
Rational Unified Process Agile Methods Overview Extreme Programming Practices XP Process Conclusion
86
Rational Unified Process Agile Methods Overview Extreme Programming Practices XP Process Conclusion
87
Rational Unified Process Agile Methods Overview Extreme Programming Practices XP Process Conclusion
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