Code-and-Fix Model (Figure 2.8) Full Waterfall Model (Figure 2.9) Open-Source Life-Cycle Model (2) Open-Source Life-Cycle Model

CS 390 – Lecture 4 Other Software Life Cycle Models        Code-and-Fix Model (Figure 2.8) Code-and-fix life-cycle model Waterfall life-cycl...
Author: Colleen Lane
13 downloads 0 Views 1MB Size
CS 390 – Lecture 4 Other Software Life Cycle Models      



Code-and-Fix Model (Figure 2.8)

Code-and-fix life-cycle model Waterfall life-cycle model Rapid prototyping life-cycle model Open-source life-cycle model Agile processes Synchronize-and-stabilize life-cycle model Spiral life-cycle model

September 3, 2008

Lecture 4

 





1





September 3, 2008

Feedback loops Documentationdriven



Documentation Maintenance is easier



Analysis after prototype

“Rapid”

Specification document

Lecture 4

3

 

In the second informal phase, report and correct defects



Add additional functionality



Port the program to a new environment



This phase consists solely of postdelivery maintenance





The initial version is widely downloaded Users become co-developers The product is extended



Key point: Individuals generally work voluntarily on an open-source project mostly in their spare time

September 3, 2008

Lecture 4

Lecture 4



Made available via the Internet (e.g., SourceForge.net)

Then, if there is sufficient interest in the project 

September 3, 2008

4

Open-Source Life-Cycle Model (2)

Two informal phases. First, one individual builds an initial version 



Linear model 

Open-Source Life-Cycle Model



2

Disadvantages 



Lecture 4

Rapid Prototyping Model (Figure 2.10)

Advantages 



September 3, 2008

Characterized by 



Maintenance nightmare The easiest way to develop software The most expensive way 

Full Waterfall Model (Figure 2.9) 

No design No specifications



5

September 3, 2008

Corrective maintenance Perfective maintenance Adaptive maintenance

The word “co-developers” on the previous slide really should be “co-maintainers” Lecture 4

6

Compare Open-Source Life-Cycle with Closed-Source Software

Open-Source Life-Cycle Model (3) 

Could be called the postdelivery maintenance life-cycle model (Figure 2.11)



Closed-source software is maintained and tested by employees 



Open-source software is generally maintained by unpaid volunteers 

September 3, 2008

Lecture 4

7

Compare Open-Source Life-Cycle with Closed-Source Software (2) 







September 3, 2008

Small number of dedicated maintainers with the inclination, the time, and the necessary skills to submit fault reports (“fixes”) They take responsibility for managing the project They have the authority to install fixes



The core group releases a new version of an open-source product as soon as it is ready



  



Lecture 4

9

Open-Source Life-Cycle Model (4) 

 





The rapid-prototyping model; The code-and-fix model; and The open-source life-cycle model



Then: 



September 3, 2008

Rapid-prototyping model  The initial version is discarded Code-and-fix model and open-source life-cycle model  The initial version becomes the target product

Lecture 4

September 3, 2008

After careful testing by the SQA group

Perhaps a month or even a day after the previous version was released The core group performs minimal testing Extensive testing is performed by the members of the peripheral group in the course of utilizing the software “Release early and often” Lecture 4

10

Open-Source Life-Cycle Model (5)

An initial working version is produced when using 

8

New versions of closed-source software are typically released roughly once a year

Users who choose to submit defect reports from time to time

September 3, 2008

Lecture 4



Peripheral group 

Users are strongly encouraged to submit defect reports, both failure reports and fault reports

Compare Open-Source Life-Cycle with Closed-Source Software (3)

Two types of maintainers. Core group 

Users can submit failure reports but never fault reports (the source code is not available)

11

Consequently, in an open-source project, there are generally no specifications and no design How have some open-source projects been so successful without specifications or designs?

September 3, 2008

Lecture 4

12

Open-Source Life-Cycle Model (6) 

Open-source software production has attracted some of the world’s finest software experts 



Open-Source Life-Cycle Model (7) 



They can function effectively without specifications or designs

The open-source life-cycle model is restricted in its applicability It can be extremely successful for infrastructure projects, such as 

However, eventually a point will be reached when the open-source product is no longer maintainable

   

September 3, 2008

Lecture 4

13

Open-Source Life-Cycle Model (8) 







Members of both the core group and the periphery are invariably users of the software being developed



The open-source life-cycle model is inapplicable unless the target product is viewed by a wide range of users as useful to them

September 3, 2008

Lecture 4

15

Extreme Programming (XP)  

  

 

Estimate duration and cost of each story Client selects stories for next build Each build is divided into tasks Test cases for a task are drawn up first

September 3, 2008





 

Lecture 4

About half of the open-source projects on the Web have not attracted a team to work on the project Even where work has started, the overwhelming preponderance will never be completed But when the open-source model has worked, it has sometimes been incredibly successful 



Pair programming Continuous integration of tasks

September 3, 2008

14

The open-source products previously listed have been utilized on a regular basis by millions of users

Lecture 4

16

Unusual Features of XP

Somewhat controversial new approach Stories (features client wants) 

Lecture 4

Open-Source Life-Cycle Model (9)

There cannot be open-source development of a software product to be used in just one commercial organization 

September 3, 2008

Operating systems (Linux, OpenBSD, Mach, Darwin) Web browsers (Firefox, Netscape) Compilers (gcc) Web servers (Apache) Database management systems (MySQL)

17

The computers are put in the center of a large room lined with cubicles A client representative is always present Software professionals cannot work overtime for 2 successive weeks No specialization Refactoring (design modification)

September 3, 2008

Lecture 4

18

Agile Processes  



Agile Processes (2)

XP is one of a number of new paradigms collectively referred to as agile processes Seventeen software developers (later dubbed the “Agile Alliance”) met at a Utah ski resort for two days in February 2001 and produced the Manifesto for Agile Software Development The Agile Alliance did not prescribe a specific life-cycle model 

September 3, 2008

Lecture 4

19



One way of achieving this is to use timeboxing



A specific amount of time is set aside for a task  

September 3, 2008





Used for many years as a time-management technique

Typically 3 weeks for each iteration The team members then do the best job they can during that time

Lecture 4



September 3, 2008

Lecture 4

20

21

Without client interference of any kind

If it is impossible to complete the entire task in the timebox, the work may be reduced (“descoped”) 

September 3, 2008

Agile processes demand fixed time, not fixed features

Lecture 4

22

Agile Processes (6) 

At a stand-up meeting, each team member in turn answers five questions: 

Short meetings held at a regular time each day Attendance is required

 

 

They do not sit around a table To ensure the meeting lasts no more than 15 minutes Lecture 4

Less emphasis on analysis and design Earlier implementation (working software is considered more important than documentation) Responsiveness to change Close collaboration with the client

It gives the client confidence to know that a new version with additional functionality will arrive every 3 weeks The developers know that they will have 3 weeks (but no more) to deliver a new iteration 



Participants stand in a circle 

September 3, 2008



Another common feature of agile processes is stand-up meetings 





Agile Processes (5) 



Deliver working software frequently Ideally every 2 or 3 weeks







Agile Processes (4)

A principle in the Manifesto is 

Agile processes are a collection of new paradigms characterized by 

Instead, they laid out a group of underlying principles

Agile Processes (3) 



23

September 3, 2008

What have I done since yesterday’s meeting? What am I working on today? What problems are preventing me from achieving this? What have we forgotten? What did I learn that I would like to share with the team?

Lecture 4

24

Agile Processes (7) 



The aim of a stand-up meeting is  



Agile Processes (8)

To raise problems Not solve them

Stand-up meetings and timeboxing are both  

Solutions are found at follow-up meetings, preferably held directly after the stand-up meeting



Both techniques are instances of two basic principles that underlie all agile methods:  

September 3, 2008

Lecture 4

25

Evaluating Agile Processes 



However, medium- and large-scale software development could be very different

 

September 3, 2008

Refactoring is an essential component of agile processes Refactoring continues during maintenance Will refactoring increase the cost of postdelivery maintenance, as indicated by preliminary research? Lecture 4



  

Lecture 4

26

27

There are not enough data yet

Even if agile processes prove to be disappointing 

September 3, 2008

Some features (such as pair programming) may be adopted as mainstream software engineering practices

Lecture 4

28

Synchronize-and-Stabilize Model (2)

Microsoft’s life-cycle model 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

September 3, 2008

Lecture 4

Agile processes are good when requirements are vague or changing It is too soon to evaluate agile processes 



Synchronize-and-Stabilize Model 





The key decider: the impact of agile processes on postdelivery maintenance 

September 3, 2008

Communication; and Satisfying the client’s needs as quickly as possible

Evaluating Agile Processes (2)

Agile processes have had some successes with small-scale software development 

Successful management techniques Now utilized within the context of agile processes







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



29

Get early insights into the operation of the product

However, read WSJ article for Friday’s class (link on course webpage)

September 3, 2008

Lecture 4

30

Spiral Model 

Simplified form (Figure 2.12) 



Full Spiral Model 





Lecture 4



 

31

Full Spiral Model (Figure 2.13)

Alternatives Risk analysis

Follow each phase by 

Key point: If all risks cannot be mitigated, the project is immediately terminated

September 3, 2008

Precede each phase by 

Rapid prototyping model plus risk analysis preceding each phase

Evaluation Planning of the next phase

Radial dimension: cumulative cost to date Angular dimension: progress through the spiral

September 3, 2008

Lecture 4

Analysis of the Spiral Model 

Strengths  



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

Weaknesses 

For large-scale software only



For internal (in-house) software only





September 3, 2008

Lecture 4

33

Comparison of Life-Cycle Models 



Each model has its own strengths and weaknesses Criteria for deciding on a model include:    



The organization Its management The skills of the employees The nature of the product

Best suggestion 

September 3, 2008

“Mix-and-match” life-cycle model

Lecture 4

32

35

September 3, 2008

Risk analysis can be expensive Cannot arbitrarily decide to terminate project Lecture 4

34

CS 390 – Lecture 4 Other Software Life Cycle Models      



September 3, 2008

Code-and-fix life-cycle model Waterfall life-cycle model Rapid prototyping life-cycle model Open-source life-cycle model Agile processes Synchronize-and-stabilize life-cycle model Spiral life-cycle model

Lecture 4

1

Code-and-Fix Model (Figure 2.8)  

No design No specifications Maintenance nightmare The easiest way to develop software The most expensive way 





September 3, 2008

Lecture 4

2

Full Waterfall Model (Figure 2.9) 

Characterized by  



Advantages  



Feedback loops Documentationdriven Documentation Maintenance is easier

Disadvantages 

September 3, 2008

Specification document

Lecture 4

3

Rapid Prototyping Model (Figure 2.10)



Linear model 



Analysis after prototype

“Rapid”

September 3, 2008

Lecture 4

4

Open-Source Life-Cycle Model 

Two informal phases. First, one individual builds an initial version 



Then, if there is sufficient interest in the project   



Made available via the Internet (e.g., SourceForge.net)

The initial version is widely downloaded Users become co-developers The product is extended

Key point: Individuals generally work voluntarily on an open-source project mostly in their spare time

September 3, 2008

Lecture 4

5

Open-Source Life-Cycle Model (2) 

In the second informal phase, report and correct defects 



Add additional functionality 



Perfective maintenance

Port the program to a new environment 



Corrective maintenance

Adaptive maintenance

This phase consists solely of postdelivery maintenance 

September 3, 2008

The word “co-developers” on the previous slide really should be “co-maintainers” Lecture 4

6

Open-Source Life-Cycle Model (3) 

Could be called the postdelivery maintenance life-cycle model (Figure 2.11)

September 3, 2008

Lecture 4

7

Compare Open-Source Life-Cycle with Closed-Source Software 

Closed-source software is maintained and tested by employees 



Users can submit failure reports but never fault reports (the source code is not available)

Open-source software is generally maintained by unpaid volunteers 

September 3, 2008

Users are strongly encouraged to submit defect reports, both failure reports and fault reports

Lecture 4

8

Compare Open-Source Life-Cycle with Closed-Source Software (2) 

Two types of maintainers. Core group 







Small number of dedicated maintainers with the inclination, the time, and the necessary skills to submit fault reports (“fixes”) They take responsibility for managing the project They have the authority to install fixes

Peripheral group 

September 3, 2008

Users who choose to submit defect reports from time to time

Lecture 4

9

Compare Open-Source Life-Cycle with Closed-Source Software (3) 

New versions of closed-source software are typically released roughly once a year 



After careful testing by the SQA group

The core group releases a new version of an open-source product as soon as it is ready   



September 3, 2008

Perhaps a month or even a day after the previous version was released The core group performs minimal testing Extensive testing is performed by the members of the peripheral group in the course of utilizing the software “Release early and often” Lecture 4

10

Open-Source Life-Cycle Model (4) 

An initial working version is produced when using   



The rapid-prototyping model; The code-and-fix model; and The open-source life-cycle model

Then: 



September 3, 2008

Rapid-prototyping model  The initial version is discarded Code-and-fix model and open-source life-cycle model  The initial version becomes the target product

Lecture 4

11

Open-Source Life-Cycle Model (5) 



Consequently, in an open-source project, there are generally no specifications and no design How have some open-source projects been so successful without specifications or designs?

September 3, 2008

Lecture 4

12

Open-Source Life-Cycle Model (6) 

Open-source software production has attracted some of the world’s finest software experts 



They can function effectively without specifications or designs

However, eventually a point will be reached when the open-source product is no longer maintainable

September 3, 2008

Lecture 4

13

Open-Source Life-Cycle Model (7) 



The open-source life-cycle model is restricted in its applicability It can be extremely successful for infrastructure projects, such as 

   

September 3, 2008

Operating systems (Linux, OpenBSD, Mach, Darwin) Web browsers (Firefox, Netscape) Compilers (gcc) Web servers (Apache) Database management systems (MySQL)

Lecture 4

14

Open-Source Life-Cycle Model (8) 

There cannot be open-source development of a software product to be used in just one commercial organization 



Members of both the core group and the periphery are invariably users of the software being developed

The open-source life-cycle model is inapplicable unless the target product is viewed by a wide range of users as useful to them

September 3, 2008

Lecture 4

15

Open-Source Life-Cycle Model (9) 





About half of the open-source projects on the Web have not attracted a team to work on the project Even where work has started, the overwhelming preponderance will never be completed But when the open-source model has worked, it has sometimes been incredibly successful 

September 3, 2008

The open-source products previously listed have been utilized on a regular basis by millions of users

Lecture 4

16

Extreme Programming (XP)  

Somewhat controversial new approach Stories (features client wants)    

 

Estimate duration and cost of each story Client selects stories for next build Each build is divided into tasks Test cases for a task are drawn up first

Pair programming Continuous integration of tasks

September 3, 2008

Lecture 4

17

Unusual Features of XP 





 

The computers are put in the center of a large room lined with cubicles A client representative is always present Software professionals cannot work overtime for 2 successive weeks No specialization Refactoring (design modification)

September 3, 2008

Lecture 4

18

Agile Processes  



XP is one of a number of new paradigms collectively referred to as agile processes Seventeen software developers (later dubbed the “Agile Alliance”) met at a Utah ski resort for two days in February 2001 and produced the Manifesto for Agile Software Development The Agile Alliance did not prescribe a specific life-cycle model 

September 3, 2008

Instead, they laid out a group of underlying principles

Lecture 4

19

Agile Processes (2) 

Agile processes are a collection of new paradigms characterized by  

 

September 3, 2008

Less emphasis on analysis and design Earlier implementation (working software is considered more important than documentation) Responsiveness to change Close collaboration with the client

Lecture 4

20

Agile Processes (3) 

A principle in the Manifesto is  



One way of achieving this is to use timeboxing 



Deliver working software frequently Ideally every 2 or 3 weeks

Used for many years as a time-management technique

A specific amount of time is set aside for a task  

September 3, 2008

Typically 3 weeks for each iteration The team members then do the best job they can during that time

Lecture 4

21

Agile Processes (4) 



It gives the client confidence to know that a new version with additional functionality will arrive every 3 weeks The developers know that they will have 3 weeks (but no more) to deliver a new iteration 



Without client interference of any kind

If it is impossible to complete the entire task in the timebox, the work may be reduced (“descoped”) 

September 3, 2008

Agile processes demand fixed time, not fixed features

Lecture 4

22

Agile Processes (5) 

Another common feature of agile processes is stand-up meetings 





Short meetings held at a regular time each day Attendance is required

Participants stand in a circle  

September 3, 2008

They do not sit around a table To ensure the meeting lasts no more than 15 minutes Lecture 4

23

Agile Processes (6) 

At a stand-up meeting, each team member in turn answers five questions:   

 

September 3, 2008

What have I done since yesterday’s meeting? What am I working on today? What problems are preventing me from achieving this? What have we forgotten? What did I learn that I would like to share with the team?

Lecture 4

24

Agile Processes (7) 

The aim of a stand-up meeting is  



To raise problems Not solve them

Solutions are found at follow-up meetings, preferably held directly after the stand-up meeting

September 3, 2008

Lecture 4

25

Agile Processes (8) 

Stand-up meetings and timeboxing are both  



Successful management techniques Now utilized within the context of agile processes

Both techniques are instances of two basic principles that underlie all agile methods:  

September 3, 2008

Communication; and Satisfying the client’s needs as quickly as possible

Lecture 4

26

Evaluating Agile Processes 

Agile processes have had some successes with small-scale software development 



However, medium- and large-scale software development could be very different

The key decider: the impact of agile processes on postdelivery maintenance   

September 3, 2008

Refactoring is an essential component of agile processes Refactoring continues during maintenance Will refactoring increase the cost of postdelivery maintenance, as indicated by preliminary research? Lecture 4

27

Evaluating Agile Processes (2) 



Agile processes are good when requirements are vague or changing It is too soon to evaluate agile processes 



There are not enough data yet

Even if agile processes prove to be disappointing 

September 3, 2008

Some features (such as pair programming) may be adopted as mainstream software engineering practices

Lecture 4

28

Synchronize-and-Stabilize Model  

  

Microsoft’s life-cycle model 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

September 3, 2008

Lecture 4

29

Synchronize-and-Stabilize Model (2) 





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



Get early insights into the operation of the product

However, read WSJ article for Friday’s class (link on course webpage)

September 3, 2008

Lecture 4

30

Spiral Model 

Simplified form (Figure 2.12) 



Rapid prototyping model plus risk analysis preceding each phase

Key point: If all risks cannot be mitigated, the project is immediately terminated

September 3, 2008

Lecture 4

31

Full Spiral Model 

Precede each phase by  



Follow each phase by  

 

Alternatives Risk analysis Evaluation Planning of the next phase

Radial dimension: cumulative cost to date Angular dimension: progress through the spiral

September 3, 2008

Lecture 4

32

Full Spiral Model (Figure 2.13)

September 3, 2008

Lecture 4

33

Analysis of the Spiral Model 

Strengths  



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

Weaknesses 

For large-scale software only 



For internal (in-house) software only 

September 3, 2008

Risk analysis can be expensive Cannot arbitrarily decide to terminate project Lecture 4

34

Comparison of Life-Cycle Models 



Each model has its own strengths and weaknesses Criteria for deciding on a model include:    



The organization Its management The skills of the employees The nature of the product

Best suggestion 

September 3, 2008

“Mix-and-match” life-cycle model

Lecture 4

35