Chapter 4
RECOMMENDED PROCESS MODEL
Software Engineering: A Practitioner’s Approach, 9/e
by Roger S. Pressman and Bruce R. Maxim
1
Suggestions for a modern
software development project
Linear process model risky without
ample feedback
No big up-front requirements
gathering
Appropriate project management
Evolving Documents
Early stakeholders involvement
Testers involvement prior to software
construction.
2
Agile
Not suitable for large high-risk or mission
critical projects.
Minimal rules and minimal documentation
Continuous involvement of testers
Easy to accommodate product changes
Depends heavily on stakeholder interaction
Easy to manage
Early delivery of partial solutions
Informal risk management
Built-in continuous process improvement
3
Spiral
1. Not suitable for small, low-risk projects
2. Several steps required, along with documentation done up
front
3. Early involvement of testers (might be done by outside
team)
4. Hard to accommodate product changes until prototype
completed
5. Continuous stakeholder involvement in planning and risk
assessment
6. Requires formal project management and coordination
7. Project end not always obvious
8. Good risk management
9. Process improvement handled at end of project
4
Incremental model for
prototype development
5
Spiral model for
prototype development
6
REQUIREMENTS DEFINITION
• Gather user stories from all stakeholders.
• Have stakeholders describe acceptance
criteria user stories.
• Use simple models (e.g., Post-it notes,
fast sketches, user stories)
• Use a breadth-first approach > big
picture of the project
• prioritized list, and implement the most
important user stories first.
7
PRELIMINARY ARCHITECTURAL DESIGN
Make use of paper prototypes and models.
Assess alternatives using nonfunctional
requirements.
Document architecture design decisions.
8
RESOURCE ESTIMATION
Use historic data > estimate time to
complete each user story.
Organize the user stories into sprints.
Determine the number of sprints needed to
complete the product.
Revise the time estimates as use stories
are added or deleted.
9
FIRST PROTOTYPE CONSTRUCTION
Select subset of user stories most important
to stakeholders.
Create paper prototype as part of the design
process.
Design a user interface prototype with
inputs and outputs.
Engineer the algorithms needed for first
prototypes.
Prototype with deployment in mind.
10
PROTOTYPE EVALUATION
Create test cases while prototype is being
designed.
Test prototype using appropriate users.
Capture stakeholder feedback for use in revision
process.
11
GO, NO-GO DECISION
Determine the quality of the current prototype.
Revisetime and cost estimates for completing
development.
Determine the risk of failing to meet stakeholder
expectations.
Get commitment to continue development.
12
Evolve system
Define new prototype scope.
Construct new prototype.
Evaluate new prototype and include regression
testing.
Assess risks associated with continuing
evolution.
13
Recommended software process
model
14
Release prototype
Perform acceptance testing.
Document defects identified.
Share quality risks with management
15
Maintain software
Understand code before making changes.
Test software after making changes.
Document changes.
Communicate known defects and risks to all
stakeholders.
16
Maintain software
17
Key Points:
Incremental prototyping process
Maintain agile philosophy
Minimal useful documents and models
Early paper prototypes
Risk assessment and acceptance testing
18