Transcript

9.10.2003 Dr Andy Brooks 1

Software Quality Assurance

Lecture 7Project Life Cycle

9.10.2003 Dr Andy Brooks 2

Traditional Life Cycle (TLC)waterfall life cycle model

which part software/hardware/human ?

parallel run old and new systems ?

corrective/perfective/adaptive maintenance

software architecture/major componentslevel of detail?

unit /sub-system/system test reports

9.10.2003 Dr Andy Brooks 3

Major criticisms of TLC

• Real projects rarely follow a sequential life cycle• Iterations are inevitable as inadequacies become

evident• A great deal of time can elapse between

requirements gathering and installation– installed system may already be out of date

• Unresponsive to changing business needs or technological innovations

But at least there are phases/project milestones.“…mother of all models and it describes simple projects well” L B S Raccoon

9.10.2003 4

Table 1: Fifty Years of Progress in Software Engineering (Approximate)

NaiveTide

FunctionTide

StructuredProgramming

Tide

ModuleTide

ObjectTide

PatternedProgramming

Tide

1945—1955 1956—1966 1967—1977 1978—1988 1989—1999? 2000?—2010?

HardwareEconomics

ResearchMainframes

CommercialMainframes

CommercialMini-Computers

Personal Computers Internet

Organization Statements Functions Modules Objects

Optimizers Statement Loop, Basic Block Function Inter-Function

ProgrammingEnvironments

Editors and Compilers General-Purpose Tools

Domain-Specific Tools

Concepts Algorithms Abstract Data Types Patterns

Program Ideals Useful Documented Correct Usable

Models Waterfall Model Spiral Model Chaos Model

Life Cycles WaterfallLife Cycle

SashimiLife Cycle

ChaosLife Cycle

ProcessStructures

Unified Process Macro- andMicro-Process

ComplexityGap

Strategies StepwiseRefinement Strategy

ModuleDecomposition

Object-OrientedDesign Strategy

Chaos Strategy

UserParticipation

None Once Periodic Ongoing

Reproduced by permission of L B S Raccoon, “Fifty Years in Software Engineering”, ACM SIGSOFTSoftware Engineering Notes Volume 22 No 1 January 1997 Page 88-104.

9.10.2003 Dr Andy Brooks 5

Waterfall life cycle with iteration

9.10.2003 Dr Andy Brooks 6

Prototyping as requirements capture

• Built quickly• Lacks full

functionality• Less resilient• Not final system

Now know what is required.Using a rapid development environment.

9.10.2003 Dr Andy Brooks 7

Prototyping advantages

• Early demonstrations help clarify misunderstandings between developer and client (supplier and customer)

• Missing requirements are identified• Difficulties with user-interface can be

identified• Feasibility and usefulness of system can

be assessed

9.10.2003 Dr Andy Brooks 8

Prototyping problems

• Client might think the prototype is part of the final system

• Prototype might devote too much client attention to the user-interface

• Requires a lot of user involvement

9.10.2003 Dr Andy Brooks 9

Spiral model and incremental development

Figure 3.6 from the textbook.

9.10.2003 Dr Andy Brooks 10

Reproduced by permission of L B S Raccoon, “Fifty Years in Software Engineering”, ACM SIGSOFTSoftware Engineering Notes Volume 22 No 1 January 1997 Page 88-104.

L B S Raccoon

9.10.2003 Dr Andy Brooks 11

Spiral model according to Raccoon

Spiral Model 1989-1999

– iterate prototypes– each prototype according to Waterfall model– accommodates more complex, ambiguous,

and misunderstood problems– first iteration may just be paper model

In this view, the prototype does eventually become the product.

9.10.2003 Dr Andy Brooks 12

Chaos model according to Raccoon

Chaos model 2000?-2010?

– loop with ‘fractals’– software development can be very unpredictable– bridging the gap between one line of code and

the entire project

A fractal is a fragmented geometric shape thatcan be subdivided in parts, each of which is a smaller copy of the whole.

9.10.2003 Dr Andy Brooks 13

Life cycles according to Raccoon• Describes the sequence of events in a

projectWaterfall Life Cycle 1967-1988

– not distinct from Waterfall model

Sashimi Life Cycle 1989-1999

– phases can overlap

Chaos Life Cycle 2000?-2010?

– all activities occur throughout the process– gradual shift from requirements to

maintenance

9.10.2003 14Reproduced by permission of L B S Raccoon, “Fifty Years in Software Engineering”, ACM SIGSOFTSoftware Engineering Notes Volume 22 No 1 January 1997 Page 88-104.

9.10.2003 Dr Andy Brooks 15

Unified Software Development Process

InceptionDetermines the scope and purpose of project.

ElaborationFocusses on requirements capture and the structure of the system.

ConstructionBuilding the system.

TransitionProduct installation.

9.10.2003 16Figure 3.7 from the textbook

Increments need not be additive.- could be reworked version.

9.10.2003 Dr Andy Brooks 17

Current emphasis is on iterativeand incremental life cycles.

9.10.2003 Dr Andy Brooks 18

Improving the software process

• If code is not inspected, does introducing inspections reduce bugs found in testing and bugs found after release ?

• You need to make measurements to decide if code inspections really are cost-effective.


Recommended