Professional Documents
Culture Documents
WINSEM2020-21 CSE1005 ETH VL2020210504073 Reference Material I 04-Feb-2021 Software Process Models Meg
WINSEM2020-21 CSE1005 ETH VL2020210504073 Reference Material I 04-Feb-2021 Software Process Models Meg
Topic – 2
Module -I
Software Processes
Feasibility and
Planning Requirements There are many
ways to combine the
processes
Design
Operation and
Implementation Maintenance
Sequence of Processes
Every software project will include these basic processes, in some
shape or form, but:
• They may be formal or informal
• They may be carried out in various sequences
Examples:
• A feasibility study cannot create a proposed budget and
schedule without a preliminary study of the requirements and a
tentative design.
• Detailed design or implementation usually reveals gaps in the
requirements specification.
Prescriptive Process Models
2.Evolutionary development
• Specification, development and testing are interleaved
Requirements analysis
Design
System design
Implementation
Program design
Coding
Testing
Acceptance
• Disadvantages:
– Each stage in the process reveals new understanding
of the previous stages, that requires the earlier stages
to be revised.
What is wrong with waterfall?
Requirements
Analysis
Maintenance System
Design
Installation Object
Design
Testing Coding
System design
Program design
Coding
Testing
Acceptance
System System
Design Testing
Object Unit
Design Testing
more detail
Coding
increment # n
Co m m u n i c a t i o n
Pla nning
M ode ling
analy s is Co n s t ru c t i o n
des ign
c ode De p l o y m e n t
t es t d e l i v e ry
fe e dba c k
deliv ery of
nt h increment
increment # 2
Co m m u n i c a t i o n
Pla nning
M ode ling
analy s is Co n s t ru c t i o n
des ign c ode De p l o y m e n t
t es t d e l i v e ry
fe e dba c k
deliv ery of
increment # 1 2nd increment
Co m m u n ic a t io n
Pla nning
M ode ling
analy s is Co n s t ru c t i o n
des ign c ode De p lo y m e n t
t es t d e l i v e ry deliv ery of
fe e dba c k
1st increment
Team #1
Modeling
Communication
Construction
Planning
Deployment
Team #N
Modeling
Construction
Disadvantages:
• An unstable/badly implemented prototype often becomes the final product.
• Requires extensive customer collaboration
– Costs customers money
– Needs committed customers
– Difficult to finish if customer withdraws
– May be too customer specific, no broad market
• Difficult to know how long project will last
• Easy to fall back into code-and-fix without proper requirements analysis,
design, customer evaluation and feedback.
Evolutionary Process Models
• Software evolves over time (web pages are a prime
example)
Initial
Version
Requirements
Outline Intermediate
Description Design
Versions
Implementation Final
Version
Prototyping
Communication
Construct
Prototype
Prototyping
Prototypes Operational
Review & Start P1 P2 P3 Prototype
commitment RequirementsConcept Design, Detailed design
plan Of Operation Validation
Development & Verification
plan Requirements
validation Coding
Integration &
Test plan Unit & Integration
Testing
End Acceptance Develop & verify
Plan next phase
Testing next-level product
Advantages
1. Realism: the model accurately reflects the
iterative nature of software development on
projects with unclear requirements
2. Flexible: incoporates the advantages of the
waterfal and rapid prototyping methods
3. Comprehensive model decreases risk
4. Good project visibility.
Disadvantages
• Needs technical expertise in risk analysis to
really work
• Model is poorly understood by non-technical
management, hence not so widely used
• Complicated model, needs competent
professional management. High administrative
overhead.
Concurrent Development Model
under revision
baselined
done
Evolutionary development
• Problems
Lack of process visibility
Systems are often poorly structured
Special skills (e.g. in languages for rapid
prototyping) may be required
• Applicability
For small or medium-size interactive systems
For parts of large systems (e.g. the user
interface)
For short-lifetime systems
Life Cycle Model Selection
Deployment Planning
transition elaboration
Construction Modeling
construction
• Incremental, iterative
• “Unified” same originators as UML
• Also called Rational Unified Process (RUP)
• Based on spiral model, developed at Rational Software, a division of IBM since 2003
Unified process work products
• There are claims that agile methods are probably best suited to
small/medium-sized business systems or PC products.
Agile principles
• Agile Manifesto (2001) values
– individuals and interactions over processes and tools
– working software over comprehensive documentation
– customer collaboration over contract negotiation
– responding to change over following a plan
• Agile principles:
– satisfy customer (highest priority)
– early and frequent S/W delivery
– welcome changing requirements
– work daily with business people and developers
– build projects around motivated individuals
– simplicity: maximize the amount of work NOT done
– self-organizing teams
– regular reflection to adjust behavior to improve effectiveness
Summary of Principles of Agile methods
Principle Description
Customer involvement The customer should be closely involved throughout the
deve lopment process. Their role is provide and prioritise new
system requirements and to evaluate the iterations of t he system.
Incremental d elivery The software is developed in increments w ith t he customer
specifying the requireme nts to be included in each i ncrement.
People not process The skills of t he development tea m should be recognised and
exploited. The team should be left to develop their own ways of
working w ithout prescriptive processes.
Embrace change Expect the sys tem requirements to change and design the sys tem
so that it can acc ommodate th ese changes.
Maintain sim plicity Focus on sim plicity in both the software be ing d eve loped and in
the development process used. Wherever possible, actively w ork
to eliminate complexity from the system.
The Agile attitude focuses on:
planning coding
refactoring
test
unit test
acceptance test
continuous integration
S/W increment
XP principles
1. Test-driven development
2. The planning game
3. On-site customer
4. Pair programming
5. Continuous integration
6. Refactoring
7. Small releases
8. Simple design
9. System metaphor
10. Collective code ownership
11. Coding standards
12. 40-hour work week
Advantages
• Lightweight methods suit small-medium size
projects
• Produces good team cohesion
• Emphasises final product
• Iterative
• Test based approach to requirements and
quality assurance
Disadvantages
• Difficult to scale up to large projects where
documentation is essential
• Needs experience and skill if not to degenerate
into code-and-fix
• Programming pairs is costly
• Test case construction is a difficult and
specialised skill.
Adaptive S/W development (ASD)
• ASD focuses on human collaboration and team
self-organization
collaboration
speculation learning
S/W increment
[Highsmith 2000]
Scrum
• Backlog – prioritized list of project requirements or features
• Sprints – work units required to achieve a requirement
– deliver within fixed time (30 days)
– no changes to requirement allowed during that time