9
1106 205 Principle of Software Development Software Life-Cycle Models Worayoot Wongnin Dep. Information Technology, Ubon Ratchathani University (Mukdahan Campus) 1 Outline Evolution-Tree Life-Cycle Model Waterfall Life-Cycle Model Iterative and Incremental Life-Cycle Model Code and Fix Life-Cycle Model 2 6 Phases Classical Life-Cycle Model Requirements phase Analysis (specification) phase Design phase Implementation phase Postdelivery maintenance Retirement 3 Software Development in Theory Idealized Software Development 4

1106 205 Outline Principle of Software Development · 11/10/2012 · Winburg Mini Case Study • Reading 5 Winburg Mini Case Study • The Evolution-Tree Life-Cycle Model 6 Winburg

  • Upload
    lehanh

  • View
    213

  • Download
    0

Embed Size (px)

Citation preview

1106 205 Principle of Software Development

Software Life-Cycle Models Worayoot WongninDep. Information Technology,

Ubon Ratchathani University (Mukdahan Campus)1

Outline

• Evolution-Tree Life-Cycle Model• Waterfall Life-Cycle Model• Iterative and Incremental Life-Cycle Model• Code and Fix Life-Cycle Model

2

6 Phases Classical Life-Cycle Model

• Requirements phase• Analysis (specification) phase• Design phase• Implementation phase • Postdelivery maintenance• Retirement

3

Software Development in Theory

• Idealized Software Development

4

Winburg Mini Case Study

• Reading

5

Winburg Mini Case Study

• The Evolution-Tree Life-Cycle Model

6

Winburg Mini Case Study

• The Waterfall Life-Cycle Model

*Unlike the evolution-tree model,It cannot show the order of events.

7

Winburg Mini Case Study

Review (causes)A poor implementation strategy (the unnecessary use of

double-precision numbers)The decision to use an algorithm that was too slow (could

not meet the response time requirement)

8

Winburg Mini Case Study

Review (changes)Two new versions because of the faultsOne new version because of a change made by the client

(the need for increased accuracy)

9

The Software Process

Why are so many changes to a software product needed?Software professionals are human, and therefore make

mistake.A software product is a model of the real world, and the

real world is continually changing.

10

Teal Tractors Mini Case Study

• Reading

11

Teal Tractors Mini Case Study

• The moving-target problem• A software product must be designed as a set of

components that are as independent as possible• Regression fault-change one part induce a fault in

unrelated part of the code

12

Iterative & Incremental Life-Cycle Model

(Jacobson, Booch & Rumbaugh, 1999)

13

Iterative & Incremental Life-Cycle Model

5 core workflow (activities) are performed over the entire life cycle :o Requirement workflowo Analysis workflowo Design workflowo Implementation workflowo Test workflow

Planning and documentation activities are performed throughout the life cycle

14

Iterative & Incremental Life-Cycle Model

Iterations during Increment B

15

Iterative & Incremental Life-Cycle Model

Evolution-tree model superimposed on the iterative model

16

Code and Fix Life-Cycle Model

Infamous model No requirement, specifications or design

17

The Full Waterfall Life-Cycle Model

(Royce, 1970) CompleteDocumentation andApproved by SQA group(Software Quality Assurance)

18

Another Software Life-Cycle Models

Rapid-Prototyping Life-Cycle Model Open-Source Life-Cycle Model Agile Processes Synchronize and Stabilize Life-Cycle Model Spiral Life-Cycle Model

19

Rapid-Prototyping Life-Cycle Model

Rapid prototype is a subset of the product. Build a prototype, andlet the client interact andexperiment with it. Once satisfied, draw the spec doc. Product meets the client’s real needs.

20

Open-Source Life-Cycle Model

Open-source software idea: builds an initial version, free of charge Users become co-developers Users report defects, some suggest ways of fixing Users forward ideas for extending program, others implement

those ideas 21

Open-Source Life-Cycle Model

Look closely at 3 activities Reporting & correcting defects is corrective maintenance Adding additional functionality is perfective maintenance Porting the program to a new environment is adaptive

maintenance

Users become co-maintainers.

22

Open-Source Life-Cycle Model

Closed-source & Open-source software Tested by teams of organization -> failure reports (observed

incorrect behavior) Cannot submit fault reports (source code)

23

Open-Source Life-Cycle Model

Common feature with Code and Fix, Rapid-Prototyping No specification or design Used for certain infrastructure software projects e.g., web

browser (Firefox, Netscape), compilers (gcc), Web servers (Apache), Os (Linux, OpenBSD), DBMS (MySQL) 100,000 open-source project at SourgeForge.net &

FreshMeat.net, about half of them never attracted

24

Agile Processes

Extreme programming – based on Iterative and Incremental model Clients tell the features of software The teams informs the client – how long to implement & how much The development is divided into TASKs – draws up Test Case

(Test-Driven Development: TDD) 2 programmers work together on 1 computer (Pair

Programming), implementing TASKs, ensuring all Test Cased work correctly (Parallel)

25

Agile Processes

Implementing & integrating a task no more than a few hours Timeboxing (3-4 hours blocks of time) Computers set up in the center of a large room Clients works with the XP team No individual can work overtime for 2 successive weeks All members of team work on requirements, analysis, design,

code & testing Design is modified while the product is being built

26

Synchronize and Stabilize Life-Cycle Model

Microsoft, Inc. Requirements analysis – interview potential customers Draw up specifications Divide project into 3 or 4 builds Each build is carried out by small teams working in parallel

27

Synchronize and Stabilize Life-Cycle Model

At the end of the day – synchronize (test and debug) At the end of the build – stabilize (freeze the build) Components always work together

o Get early insights into the operation of the product

28

Spiral Life-Cycle Model

Simplified versionRapid prototyping modelPlus risk analysis precedingEach phase

29

Spiral Life-Cycle Model

A key point of the Spiral Modelif all risks cannot be mitigated, the project is immediately

terminated.

30

Spiral Life-Cycle Model

Strengthso It is easy to judge how much to test o No distinction is made between development and maintenance

Weaknesseso For large-scale software onlyo For internal (in-house) software only

31

Spiral Life-Cycle Model

32

Comparison of Life-Cycle Models

Different life-cycle models have been presentedo Each with its own strengths and weaknesses

Criteria for deciding on a model include:o The organizationo Its managemento The skills of the employeeso The nature of the product

Best suggestingo “Mix and match” life-cycle model 33

Comparison of Life-Cycle Models

34

Homework

Work in groupo เขียนชื่อ-สกุล เลขประจําตัวนักศึกษาo เขียนแต่ละโมเดลo เขียนข้อดี และ ข้อด้อยo เปรียบเทียบกับโมเดลอื่นๆ แล้วเป็นอย่างไร

35