04 Software Processes
04 Software Processes
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
Software Processes
●
SPs are “activities involved in producing a software system”
●
SP models are “abstract representations of these processes”
(Definitions from [Sommerville2011])
●
There is no ideal process.
●
One size does not fit all.
Requirements
Feasibility
elicitation and
study
analysis
Requirements
specification
Feasibility Requirements
report validation
System
models
User and system
requirements
Requirements
document
●
User requirements example (“feature wishes”)
– The patient management system shall generate monthly management reports showing the cost of
drugs prescribed by each clinic during that month.
●
System requirements example (“testable”)
– On the last working day of each month, a summary of the drugs prescribed, their cost, and the
prescribing clinics shall be generated. The system shall automatically generate the report for printing
after 17:30 on the last working day of the month.
– A report shall be created for each clinic and shall list the individual drug names, the total number of
prescriptions, the number of doses prescribed, and the total cost of the prescribed drugs. If drugs are
available in different dose units (e.g., 10 mg, 20 mg) separate reports shall be created for each dose
unit.
– Access to all cost reports shall be restricted to authorized users listed on a management access
control list.
Requirements
specification
Design activities
Design products
System Sub-system
Acceptance Module and
integration integration
test plan unit tests
test plan test plan
●
Beware of “not-invented-here” (NIH) syndrome
New
system
Existing
systems
System and
software design
Implementation
and unit testing
Integration/
System testing
Operation/
maintenance
●
Rational Unified Process (RUP) [Krutchen03]
●
Derived from work on UML
●
Focus on business perspective
●
Focus on iteration
●
Spiral Model [Boehm88]
●
4 sectors for each cycle
●
Focus on risk assessment
●
V Model [Boehm79], based on Waterfall
●
Often used by German government
●
Current variant: “V-Modell XT”
●
Focus on reuse/adaptation of existing components
●
Needs requirement compromises
●
Often used in Web context (e.g. LAMP stack)
●
Order functionality by importance
●
Deliver most important functions to the end user first
●
Either plan-driven (increments defined in advance) or agile (inc.
defined on-the-fly)
System incomplete