2 software life span models stages through which software goes, from conception to death stages may...

20
2 Software life span models • Stages through which software goes, from conception to death • Stages may be very different • Software = product – stages are similar to the stages in the life span of other products © 2012 Václav Rajlich Software Engineering: The Current Practice Ch. 2 1

Upload: britney-fulks

Post on 14-Dec-2015

220 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: 2 Software life span models Stages through which software goes, from conception to death Stages may be very different Software = product –stages are similar

2 Software life span models

• Stages through which software goes, from conception to death

• Stages may be very different

• Software = product– stages are similar to the stages in the life

span of other products

© 2012 Václav Rajlich Software Engineering: The Current Practice Ch. 2 1

Page 2: 2 Software life span models Stages through which software goes, from conception to death Stages may be very different Software = product –stages are similar

Product lifespan

© 2012 Václav Rajlich Software Engineering: The Current Practice Ch. 2 2

Page 3: 2 Software life span models Stages through which software goes, from conception to death Stages may be very different Software = product –stages are similar

Software lifespan

• Software is a product– sales go through the same lifespan

• Unique proprietary software– value follows the same curve

• Names of stages are different

© 2012 Václav Rajlich Software Engineering: The Current Practice Ch. 2 3

Page 4: 2 Software life span models Stages through which software goes, from conception to death Stages may be very different Software = product –stages are similar

Staged model

© 2012 Václav Rajlich Software Engineering: The Current Practice Ch. 2 4

Initial development

Evolution

first versionevolution changes

Servicing or Maintenance

evolution stops

servicing patches

Close-down

Phase-out

servicing discontinued

switch-off

Page 5: 2 Software life span models Stages through which software goes, from conception to death Stages may be very different Software = product –stages are similar

Initial development

• Requirements• Design• Implementation

– similar to waterfall, but of limited duration

• Fundamental decisions– technology

• programming language, coding conventions, libraries,…– architecture

• components, interactions– program domain knowledge

• the knowledge is required for evolution

© 2012 Václav Rajlich Software Engineering: The Current Practice Ch. 2 5

Page 6: 2 Software life span models Stages through which software goes, from conception to death Stages may be very different Software = product –stages are similar

Evolution

• Adapts the application to the ever-changing user and operating environment

• Adds new features• Corrects mistakes and misunderstandings• Responds to both developer and user learning• Responds to changes in technology• Program usually grows during evolution• Both software architecture and software team

knowledge make evolution possible

© 2012 Václav Rajlich Software Engineering: The Current Practice Ch. 2 6

Page 7: 2 Software life span models Stages through which software goes, from conception to death Stages may be very different Software = product –stages are similar

Evolution stops

• Managerial decision– business reasons to stop evolution

• Software stabilization– problem is solved– no reason to continue evolution

• Code decay

© 2012 Václav Rajlich Software Engineering: The Current Practice Ch. 2 7

Page 8: 2 Software life span models Stages through which software goes, from conception to death Stages may be very different Software = product –stages are similar

Code decay

• Loss of software coherence

• Loss of the software knowledge– less coherent seftware requires more

extensive knowledge– if the knowledge is lost, the changes will lead

to a faster deterioration

• Loss of key personnel = loss of knowledge

• Challenge: eliminate or slow code decay

© 2012 Václav Rajlich Software Engineering: The Current Practice Ch. 2 8

Page 9: 2 Software life span models Stages through which software goes, from conception to death Stages may be very different Software = product –stages are similar

Servicing = Maintenance • No additions of new functionality• Changes are limited to patches and

wrappers– less costly, but they cause further

deterioration • Process is very different from evolution

– no need for senior engineers– the process is predictable

• well suited to process measurement and management

© 2012 Václav Rajlich Software Engineering: The Current Practice Ch. 2 9

Page 10: 2 Software life span models Stages through which software goes, from conception to death Stages may be very different Software = product –stages are similar

Reversal from servicing to evolution

• Expensive, rare

• Not simply a technical problem– the knowledge of the software team must also

be recovered

© 2012 Václav Rajlich Software Engineering: The Current Practice Ch. 2 10

Page 11: 2 Software life span models Stages through which software goes, from conception to death Stages may be very different Software = product –stages are similar

Reengineering

© 2012 Václav Rajlich Software Engineering: The Current Practice Ch. 2 11

Initial development

Evolution

first running version software changes

Servicing

code decay servicing patches

Close-down

Phase-out

servicing discontinued

switch-off

reengineering

Page 12: 2 Software life span models Stages through which software goes, from conception to death Stages may be very different Software = product –stages are similar

Phase-out

• No more servicing is being undertaken– but the system still may be in production

• Users must work around known deficiencies

© 2012 Václav Rajlich Software Engineering: The Current Practice Ch. 2 12

Page 13: 2 Software life span models Stages through which software goes, from conception to death Stages may be very different Software = product –stages are similar

Close-down

• Software use is disconnected – current life of successful software:– about 10 to 20 years

• Users are directed towards a replacement• An ‘exit strategy’ is needed.

– changing to another system requires retraining

– what to do with long-lived data?

© 2012 Václav Rajlich Software Engineering: The Current Practice Ch. 2 13

Page 14: 2 Software life span models Stages through which software goes, from conception to death Stages may be very different Software = product –stages are similar

Versioned staged model

• Used by software with many users

• Evolution is the backbone of the process– evolution produces versions– versions are serviced, phased-out, closed

down

© 2012 Václav Rajlich Software Engineering: The Current Practice Ch. 2 14

Page 15: 2 Software life span models Stages through which software goes, from conception to death Stages may be very different Software = product –stages are similar

Versioned staged model

© 2012 Václav Rajlich Software Engineering: The Current Practice Ch. 2 15

Close-down Version 1

Initial development

Close-down Version 2

Phase-out Version 2

Phase-out Version 1

Servicing Version 1

Evolution Version 1

evolution changes

Evolution Version . . .

Evolution Version 2

evolution of new version

evolution of new version

evolution changes

servicing patches

Servicing Version 2

servicing patches

first running version

Page 16: 2 Software life span models Stages through which software goes, from conception to death Stages may be very different Software = product –stages are similar

Mozilla Firefox releases

2.0 3.0 3.5 version # Date x 2.0.0.12/ 2/7/2008 x 3.0b3/ 2/13/2008 x 3.0b4/ 3/11/2008 x 2.0.0.13/ 3/25/2008 x 3.0b5/ 4/9/2008 x 2.0.0.14/ 4/15/2008 x 3.0rc1/ 5/15/2008 x 3.0rc2/ 6/4/2008 x 3.0rc3/ 6/11/2008 x 3.0/ 6/19/2008 x 2.0.0.15/ 6/23/2008 x 2.0.0.16/ 7/11/2008 x 3.0.1/ 7/16/2008 x 2.0.0.17/ 9/17/2008 x 3.0.2/ 9/22/2008 x 3.0.3/ 10/7/2008 x 2.0.0.18/ 11/11/2008 x 3.0.4/ 11/11/2008 x 2.0.0.19/ 12/15/2008 x 3.0.5/ 12/15/2008 x 2.0.0.20/ 12/18/2008 x 3.0.6/ 2/2/2009 x 3.0.7/ 3/3/2009 x 3.0.8/ 3/27/2009 x 3.0.9/ 4/9/2009 x 3.5b4/ 4/24/2009 x 3.0.10/ 4/27/2009 x 3.5b99/ 6/7/2009 x 3.0.11/ 6/10/2009 x 3.5rc1/ 6/16/2009 x 3.5rc2/ 6/17/2009 x 3.5rc3/ 6/24/2009 x 3.5/ 7/1/2009 x 3.5.1/ 7/17/2009 x 3.0.12/ 7/20/2009 x 3.5.2/ 7/30/2009 x 3.0.13/ 7/31/2009 x 3.5.3/ 8/24/2009 x 3.0.14/ 9/8/2009 x 3.5.4/ 10/19/2009 x 3.0.15/ 10/26/2009

© 2012 Václav Rajlich Software Engineering: The Current Practice Ch. 2 16

• 2008 – 2009 • Versions 2.0 and 3.0

– serviced in parallel

• Version 3.5 introduced 4/2009– while version 3.0 still serviced– while version 2.0 in

phase-out

Page 17: 2 Software life span models Stages through which software goes, from conception to death Stages may be very different Software = product –stages are similar

Incomplete lifespans

• Discontinued projects– stopped during initial development

• Stable domain– no need for evolution

• Development starts with evolution– a related old software is evolved into new one

© 2012 Václav Rajlich Software Engineering: The Current Practice Ch. 2 17

Page 18: 2 Software life span models Stages through which software goes, from conception to death Stages may be very different Software = product –stages are similar

Lifecycle vs. lifespan model

• Lifecycle– common terminology– incorrect: There is no cycle

• some software discontinued without a replacement

• Lifespan model– better terminology– less commonly used

© 2012 Václav Rajlich Software Engineering: The Current Practice Ch. 2 18

Page 19: 2 Software life span models Stages through which software goes, from conception to death Stages may be very different Software = product –stages are similar

V-Model

© 2012 Václav Rajlich Software Engineering: The Current Practice Ch. 2 19

maintenance

functional testing

system testing

unit testing

implementation

unit design

system design

requirements

Page 20: 2 Software life span models Stages through which software goes, from conception to death Stages may be very different Software = product –stages are similar

Prototyping model

© 2012 Václav Rajlich Software Engineering: The Current Practice Ch. 2 20

prototype

design

corrected requirements

requirements

implementation

maintenance