Outline. 6 Phases Classical Life-Cycle Model. Software Development in Theory Principle of Software Development

1106 205 Principle of Software Development Outline • • • • Evolution-Tree Life-Cycle Model Waterfall Life-Cycle Model Iterative and Incremental Life...
Author: Delphia Baker
49 downloads 0 Views 3MB Size
1106 205 Principle of Software Development

Outline • • • •

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

Software Life-Cycle Models

Worayoot Wongnin Dep. Information Technology, Ubon Ratchathani University (Mukdahan Campus) 1

2

6 Phases Classical Life-Cycle Model

Software Development in Theory

• • • • • •

• Idealized Software Development

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

3

4

Winburg Mini Case Study

Winburg Mini Case Study

• Reading

• The Evolution-Tree Life-Cycle Model

5

6

Winburg Mini Case Study

Winburg Mini Case Study

• The Waterfall Life-Cycle Model

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)

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

7

8

Winburg Mini Case Study

The Software Process

Review (changes) Two new versions because of the faults One new version because of a change made by the client (the need for increased accuracy)

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.

9

10

Teal Tractors Mini Case Study

Teal Tractors Mini Case Study

• Reading

• 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

11

12

Iterative & Incremental Life-Cycle Model

Iterative & Incremental Life-Cycle Model

(Jacobson, Booch & Rumbaugh, 1999)

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

13

Iterative & Incremental Life-Cycle Model

 Planning and documentation activities are performed throughout the life cycle

14

Iterative & Incremental Life-Cycle Model  Evolution-tree model superimposed on the iterative model

 Iterations during Increment B

15

16

Code and Fix Life-Cycle Model

The Full Waterfall Life-Cycle Model

 Infamous model  No requirement, specifications or design

(Royce, 1970)  Complete Documentation and Approved by SQA group (Software Quality Assurance)

17

Another Software Life-Cycle Models     

18

Rapid-Prototyping Life-Cycle Model  Rapid prototype is a subset of the product.  Build a prototype, and let the client interact and experiment with it.  Once satisfied, draw the spec doc.  Product meets the client’s real needs.

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

19

20

Open-Source Life-Cycle Model

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

 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

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)

     

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

25

Synchronize and Stabilize Life-Cycle Model     

26

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

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

o Get early insights into the operation of the product

27

28

Spiral Life-Cycle Model

Spiral Life-Cycle Model  Simplified version Rapid prototyping model Plus risk analysis preceding Each phase

 A key point of the Spiral Model if all risks cannot be mitigated, the project is immediately terminated.

30

29

Spiral Life-Cycle Model

Spiral Life-Cycle Model

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

 Weaknesses o For large-scale software only o For internal (in-house) software only

31

32

Comparison of Life-Cycle Models

Comparison of Life-Cycle Models

 Different life-cycle models have been presented o Each with its own strengths and weaknesses

 Criteria for deciding on a model include: o The organization o Its management o The skills of the employees o The nature of the product

 Best suggesting o “Mix and match” life-cycle model

33

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

35

34