lecture slides

102 downloads 66205 Views 660KB Size Report
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