Ch7: Software Production Process. 1 Waterfall models Invented in the late 1950s for large air...

25
Ch7: Software Production Process

Transcript of Ch7: Software Production Process. 1 Waterfall models Invented in the late 1950s for large air...

Page 1: Ch7: Software Production Process. 1 Waterfall models  Invented in the late 1950s for large air defense systems, popularized in the 1970s  Main characteristics:

Ch7: Software Production Process

Page 2: Ch7: Software Production Process. 1 Waterfall models  Invented in the late 1950s for large air defense systems, popularized in the 1970s  Main characteristics:

2

Waterfall models

Invented in the late 1950s for large air defense systems, popularized in the 1970s

Main characteristics:

Page 3: Ch7: Software Production Process. 1 Waterfall models  Invented in the late 1950s for large air defense systems, popularized in the 1970s  Main characteristics:

3

Waterfall models (contd..)

Feasibility study

Requirements

Design

Coding and module testing

Integration and system testing

Delivery, deployment, and maintenance

Page 4: Ch7: Software Production Process. 1 Waterfall models  Invented in the late 1950s for large air defense systems, popularized in the 1970s  Main characteristics:

4

Waterfall models (contd..)

Organizations adopting waterfall models:

Example: Military Standard (MIL-STD-2167)

Page 5: Ch7: Software Production Process. 1 Waterfall models  Invented in the late 1950s for large air defense systems, popularized in the 1970s  Main characteristics:

5

Evaluation of the waterfall model

Contributions to the understanding of software process:

Characteristics of a strict waterfall model:.

Page 6: Ch7: Software Production Process. 1 Waterfall models  Invented in the late 1950s for large air defense systems, popularized in the 1970s  Main characteristics:

6

Evaluation of the waterfall model (contd..)

Problems with the waterfall model:

Page 7: Ch7: Software Production Process. 1 Waterfall models  Invented in the late 1950s for large air defense systems, popularized in the 1970s  Main characteristics:

7

Evaluation of the waterfall model (contd..)

Characteristics of the waterfall model potentially lead to high maintenance costs:

In summary, software evolution is not anticipated or planned.

Page 8: Ch7: Software Production Process. 1 Waterfall models  Invented in the late 1950s for large air defense systems, popularized in the 1970s  Main characteristics:

8

Waterfall model with feedback

Feasibility study

Requirements

Design

Coding and module testing

Integration and system testing

Delivery, deployment, and maintenance

Page 9: Ch7: Software Production Process. 1 Waterfall models  Invented in the late 1950s for large air defense systems, popularized in the 1970s  Main characteristics:

9

Evolutionary models

Brooks advocates building a product twice:

Evolutionary or incremental approach:

Evolutionary model has several different versions

Page 10: Ch7: Software Production Process. 1 Waterfall models  Invented in the late 1950s for large air defense systems, popularized in the 1970s  Main characteristics:

10

Evolutionary models (contd..)

Evolutionary process model (Boehm):

Delivered increment:

Development strategy (Glib, 1988):

Must use waterfall process discipline.

Page 11: Ch7: Software Production Process. 1 Waterfall models  Invented in the late 1950s for large air defense systems, popularized in the 1970s  Main characteristics:

11

Evolutionary models (contd..)

Incremental implementation model: Waterfall model used until the implementation phase.

Page 12: Ch7: Software Production Process. 1 Waterfall models  Invented in the late 1950s for large air defense systems, popularized in the 1970s  Main characteristics:

12

Evolutionary models (contd..)

Incremental development and delivery model: Incremental approach expanded to all stages of life cycle. Achieves finer granularity in the process. Waterfall model is followed for different portions. Increments developed after feedback received from the

user. Allows users to understand what they actually need

leading to changes in requirements.

Page 13: Ch7: Software Production Process. 1 Waterfall models  Invented in the late 1950s for large air defense systems, popularized in the 1970s  Main characteristics:

13

Evolutionary models (contd..)

Evolutionary prototype:

Evolutionary models and maintenance:

Page 14: Ch7: Software Production Process. 1 Waterfall models  Invented in the late 1950s for large air defense systems, popularized in the 1970s  Main characteristics:

14

Evaluation of evolutionary models

Problems with evolutionary models:

Advantages to evolutionary models:

Page 15: Ch7: Software Production Process. 1 Waterfall models  Invented in the late 1950s for large air defense systems, popularized in the 1970s  Main characteristics:

15

Transformation model

Transformation model has roots in formal specifications. Views software development as a sequence of steps

that transform a specification into an implementation:

Transformation may be done manually or by a software engineer.

Still a theoretical reference model.

Page 16: Ch7: Software Production Process. 1 Waterfall models  Invented in the late 1950s for large air defense systems, popularized in the 1970s  Main characteristics:

16

Transformation model (contd..)

Page 17: Ch7: Software Production Process. 1 Waterfall models  Invented in the late 1950s for large air defense systems, popularized in the 1970s  Main characteristics:

17

Transformation model (contd..)

Two main stages: Requirements analysis:

Optimization:

Transformation controlled by software engineering

Before transformation, specifications are verified against user expectations.

Transformation model supported by software development environment. Tools for:

Page 18: Ch7: Software Production Process. 1 Waterfall models  Invented in the late 1950s for large air defense systems, popularized in the 1970s  Main characteristics:

18

Transformation model (contd..)

Major advantage over waterfall model:

Problems:

Transformation model has been studied for small programs as a way of proving correctness.

Page 19: Ch7: Software Production Process. 1 Waterfall models  Invented in the late 1950s for large air defense systems, popularized in the 1970s  Main characteristics:

19

Spiral model

Purpose:

Metamodel:

Guiding principles:

Risk:

Risk management (Boehm):

Page 20: Ch7: Software Production Process. 1 Waterfall models  Invented in the late 1950s for large air defense systems, popularized in the 1970s  Main characteristics:

20

Spiral model (contd..)

Focuses on identifying and eliminating high-risk problems by careful process design.

Cyclic model with four stages:

Allows unstated requirements to become part of next specification cycle:

Page 21: Ch7: Software Production Process. 1 Waterfall models  Invented in the late 1950s for large air defense systems, popularized in the 1970s  Main characteristics:

Spiral model (contd..)

Page 22: Ch7: Software Production Process. 1 Waterfall models  Invented in the late 1950s for large air defense systems, popularized in the 1970s  Main characteristics:

22

Assessment of process models

Historical evolution:

Waterfall:

Evolutionary:

Transformation:

Spiral:

Page 23: Ch7: Software Production Process. 1 Waterfall models  Invented in the late 1950s for large air defense systems, popularized in the 1970s  Main characteristics:

23

Assessment of process models (contd..)

No detailed comparison of models. Initial comparison of waterfall vs. evolutionary shows:

Flexibility needed to reduce risks

Waterfall may be useful as a reference structure for documentation

Page 24: Ch7: Software Production Process. 1 Waterfall models  Invented in the late 1950s for large air defense systems, popularized in the 1970s  Main characteristics:

24

Assessment of process models (contd..)

In general, waterfall model is too rigid and should be replaced by a model that adopts some features of evolutionary approach.

Factors influencing evolution of software production process

Page 25: Ch7: Software Production Process. 1 Waterfall models  Invented in the late 1950s for large air defense systems, popularized in the 1970s  Main characteristics:

25

Software evolution: Legacy software

Existing software must evolve because requirements change

Re-engineering

Reverse engineering