Slide 4. Generic software process models λ. The waterfall model. •. Separate and
distinct phases of specification and development λ. Evolutionary development.
Software Processes CSC 221 – Introduction to Software Engineering
software processes
λ
extract from Sommerville’s chapter 3 slides
Alan Dix
Coherent sets of activities for specifying, designing, implementing and testing software systems
www.hcibook.com/alan/teaching/CSC221/
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 3 (extract)
Slide 1
The software process λ
λ
Specification Design Validation Evolution
λ
The waterfall model
λ
Evolutionary development
λ
Formal systems development
•
•
•
A software process model is an abstract representation of a process. It presents a description of a process from some particular perspective
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 3 (extract)
λ
Slide 2
Slide 3
Separate and distinct phases of specification and development
Specification and development are interleaved
A mathematical system model is formally transformed to an implementation
Reuse-based development •
Waterfall model
The system is assembled from existing components
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 3 (extract)
Slide 4
Waterfall model phases
Requirements definition
λ λ
System and software design
λ λ
Implementation and unit testing
λ λ
Integration and system testing Operation and maintenance
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 3 (extract)
Generic software process models
A structured set of activities required to develop a software system • • • •
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 3 (extract)
Slide 5
Requirements analysis and definition System and software design Implementation and unit testing Integration and system testing Operation and maintenance The drawback of the waterfall model is the difficulty of accommodating change after the process is underway
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 3 (extract)
Slide 6
Waterfall model problems λ
λ
λ
Evolutionary development
Inflexible partitioning of the project into distinct stages This makes it difficult to respond to changing customer requirements Therefore, this model is only appropriate when the requirements are well-understood
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 3 (extract)
Slide 7
Evolutionary development
•
λ
Objective is to work with customers and to evolve a final system from an initial outline specification. Should start with well-understood requirements
Throw-away prototyping •
Objective is to understand the system requirements. Should start with poorly understood requirements
©Ian Sommerville 2000
λ
Specification
Initial version
Development
Intermediate versions
Validation
©Ian Sommerville 2000
Exploratory development
Software Engineering, 6th edition. Chapter 3 (extract)
Slide 8
Evolutionary development
Concurrent activities
Outline description
λ
• • • λ
Slide 9
Formal systems development
Lack of process visibility Systems are often poorly structured Special skills (e.g. in languages for rapid prototyping) may be required
Applicability • • •
Final version
Software Engineering, 6th edition. Chapter 3 (extract)
Problems
For small or medium-size interactive systems For parts of large systems (e.g. the user interface) For short-lifetime systems
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 3 (extract)
Slide 10
Formal systems development
Based on the transformation of a mathematical specification through different representations to an executable program λ Transformations are ‘correctness-preserving’ so it is straightforward to show that the program conforms to its specification λ Embodied in the ‘Cleanroom’ approach to N.B. really about replacing/ augmenting/supporting software development the design and implementation phase of λ
Requirements definition
Formal specification
Formal transformation
Integration and system testing
software development
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 3 (extract)
Slide 11
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 3 (extract)
Slide 12
Formal transformations
R1
P1
λ
Formal transformations T2 T3
T1
Formal specification
Formal systems development
R2
P2
• • λ
Executable program
R3
P3
Problems
T4
Need for specialised skills and training to apply the technique Difficult to formally specify some aspects of the system such as the user interface
Applicability •
Critical systems especially those where a safety or security case must be made before the system is put into operation
P4
Proofs of transformation correctness
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 3 (extract)
Slide 13
Reuse-oriented development λ
λ
λ
λ
Component analysis
Requirements modification
Slide 14
System design with reuse
Development and integration
System validation
This approach is becoming more important but still limited experience with it Software Engineering, 6th edition. Chapter 3 (extract)
Slide 15
Process iteration
λ
Requirements specification
Component analysis Requirements modification System design with reuse Development and integration
©Ian Sommerville 2000
λ
Software Engineering, 6th edition. Chapter 3 (extract)
Reuse-oriented development
Based on systematic reuse where systems are integrated from existing components or COTS (Commercial-off-the-shelf) systems Process stages • • • •
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 3 (extract)
λ
λ
λ
Incremental development Spiral development
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 3 (extract)
Slide 16
Incremental development
System requirements ALWAYS evolve in the course of a project so process iteration where earlier stages are reworked is always part of the process for large systems Iteration can be applied to any of the generic process models Two (related) approaches • •
©Ian Sommerville 2000
Slide 17
Rather than deliver the system as a single delivery, the development and delivery is broken down into increments with each increment delivering part of the required functionality User requirements are prioritised and the highest priority requirements are included in early increments Once the development of an increment is started, the requirements are frozen though requirements for later increments can continue to evolve
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 3 (extract)
Slide 18
Incremental development
Incremental development advantages λ
Define outline requirements
Design system architecture
Assign requirements to increments
λ
Develop system increment
Integrate increment
Validate increment
Validate system Final system
System incomplete
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 3 (extract)
Slide 19
Extreme programming λ
λ
λ λ
©Ian Sommerville 2000
λ
λ
λ
λ
Software Engineering, 6th edition. Chapter 3 (extract)
Slide 21
Spiral model of the software process Determine objectives alternatives and constraints
Evaluate alternatives identify, resolve risks
Requirements plan Life-cycle plan
Plan next phase
©Ian Sommerville 2000
Prototype 3
Prototype 2 Risk analysis Prototype 1
λ
Objective setting
λ
Risk assessment and reduction
Operational protoype
• λ
Simulations, models, benchmarks Concept of Operation
S/W requirements
Development plan
Requirement validation
Integration and test plan
Design V&V
Product design
• λ
Code Unit test
Software Engineering, 6th edition. Chapter 3 (extract)
Specific objectives for the phase are identified
Risks are assessed and activities put in place to reduce the key risks
A development model for the system is chosen which can be any of the generic models
Planning •
Slide 23
Slide 22
Development and validation
Detailed design
Integration test Acceptance test Develop, verify Service next-level product
Software Engineering, 6th edition. Chapter 3 (extract)
Spiral model sectors •
Risk analysis
REVIEW
Slide 20
Process is represented as a spiral rather than as a sequence of activities with backtracking Each loop in the spiral represents a phase in the process. No fixed phases such as specification or design loops in the spiral are chosen depending on what is required Risks are explicitly assessed and resolved throughout the process
©Ian Sommerville 2000
Risk analysis
Risk analysis
Software Engineering, 6th edition. Chapter 3 (extract)
Spiral development
New approach to development based on the development and delivery of very small increments of functionality Relies on constant code improvement, user involvement in the development team and pairwise programming
©Ian Sommerville 2000
Customer value can be delivered with each increment so system functionality is available earlier Early increments act as a prototype to help elicit requirements for later increments Lower risk of overall project failure The highest priority system services tend to receive the most testing
The project is reviewed and the next phase of the spiral is planned
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 3 (extract)
Slide 24
λ
summary
summary
normative process models
similar activities
waterfall model
λ λ
λ
evolutionary development
λ
formal development
λ
reuse-oriented development
©Ian Sommerville 2000
requirements and specification design and implementation •
mainly effect design and implementation
Software Engineering, 6th edition. Chapter 3 (extract)
Slide 25
λ λ
architectural design, detailed and sub-system design, integration of components, deployment
testing, verification and validation evolution •
deployment, maintenance, changing requirements
©Ian Sommerville 2000
summary
Software Engineering, 6th edition. Chapter 3 (extract)
Slide 26
common theme
... but different timings λ
waterfall model • •
R&S
D&I
V&V
E
each activity in sequence whole system within each activity
documents and activities (software quality) more than
λ
incremental development • •
λ
each ‘slice’ of system in sequence all activities for each part
stages and phases (management)
spiral development •
when it seems right!
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 3 (extract)
Slide 27
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 3 (extract)
Slide 28