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

Slides:



Advertisements
Similar presentations
Chapter 27 Software Change.
Advertisements

Chapter 11 Software Evolution
ICT Class System Life Cycle.  Large systems development projects may involve dozens of people working over several months or even years, so they cannot.
Ch 3: Unified Process CSCI 4320: Software Engineering.
1 History of software engineering Software is everywhere –buying bread, driving car, washing clothes –synonyms: programs, applications People, who develop.
SDLC Software Development Life Cycle. SDLC Acronym for system development life cycle. Acronym for system development life cycle. Is the process of developing.
What is Software Design?. Systems Development Life- Cycle Planning Analysis Design Implementation Design.
Chapter 16: Analysis and Design (a short introduction) ● As engineers in other desciplines do, it necessary for real projects to “analyse” and “design”
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
© 2012 Václav Rajlich Software Engineering: The Current Practice Ch Initial development First stage in software lifespan Makes the fundamental.
1 / 24 CS 425/625 Software Engineering Software Evolution Based on Chapter 21 of the textbook [SE-8] Ian Sommerville, Software Engineering, 8 th Ed., Addison-Wesley,
Software Evolution Managing the processes of software system change
Dr Kettani, Spring 2002 Software Engineering IIFrom Sommerville, 6th edition Software change l Managing the processes of software system change.
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 21 Slide 1 Software evolution.
1 Software Engineering II Presentation Software Maintenance.
The Waterfall Model A Case Study
1 Software Testing and Quality Assurance Lecture 14 - Planning for Testing (Chapter 3, A Practical Guide to Testing Object- Oriented Software)
5 Introduction to software change Software change (SC) is the process of adding new functionality to existing code Foundation of software evolution, servicing.
Software evolution.
SDLC. Information Systems Development Terms SDLC - the development method used by most organizations today for large, complex systems Systems Analysts.
Software maintenance Managing the processes of system change.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 27Slide 1 Chapter 27 Software Change.
Chapter 9 – Software Evolution and Maintenance
SEG Software Maintenance1 Software Maintenance “The modification of a software product after delivery to correct faults, to improve performance or.
Lecture # 22 Software Evolution
Laudon & Laudon: Canadian Edition
Module CC3002 Post Implementation Issues Lecture for Week 6 AY 2013 Spring.
Software evolution. Objectives l To explain why change is inevitable if software systems are to remain useful l To discuss software maintenance and maintenance.
Software change  Managing the processes of software system change.
Software Engineering Lecture 20 Software Maintenance.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
1 ISA&D7‏/8‏/ ISA&D7‏/8‏/2013 Systems Development Life Cycle Phases and Activities in the SDLC Variations of the SDLC models.
Software Engineering CS3003 Lecture 3 Software maintenance and evolution.
Computing and SE II Chapter 13: Software Maintenance
Teaching material for a course in Software Project Management & Software Engineering – part II.
OHTO -99 SOFTWARE ENGINEERING “SOFTWARE PRODUCT QUALITY” Today: - Software quality - Quality Components - ”Good” software properties.
CS CS 5150 Software Engineering Lecture 3 Software Processes 2.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 27Slide 1 Software change l Managing the processes of software system change.
CSE 308 Software Engineering Software Engineering Strategies.
Systems Life Cycle A2 Module Heathcote Ch.38.
Manag ing Software Change CIS 376 Bruce R. Maxim UM-Dearborn.
Object Oriented Reverse Engineering JATAN PATEL. What is Reverse Engineering? It is the process of analyzing a subject system to identify the system’s.
Lecture 14 Maintaining the System and Managing Software Change SFDV Principles of Information Systems.
1 CS 501 Spring 2004 CS 501: Software Engineering Lecture 2 Software Processes.
Software Evolution Program evolution dynamics Software maintenance Complexity and Process metrics Evolution processes 1.
CS5103 Software Engineering Lecture 02 More on Software Process Models.
1 Lecture 21 Final Exam Preparation CS 4310: Software Engineering.
Software Engineering Jon Walker. What is Software Engineering? Why do we call it Software Engineering? Why not just call it programming or software development?
Chapter 2: Software Maintenance Omar Meqdadi SE 3860 Lecture 2 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Software Development Life Cycle (SDLC)
Ch7: Software Production Process. 1 Waterfall models  Invented in the late 1950s for large air defense systems, popularized in the 1970s  Main characteristics:
System Maintenance Modifications or corrections made to an information system after it has been released to its customers Changing an information system.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 21 Slide 1 Software evolution.
© 2012 Václav Rajlich Software Engineering: The Current Practice Ch Conclusion of software change The last phase of software change The activities.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 21 Slide 1 Software evolution.
Software change Software change is inevitable –New requirements emerge when the software is used –The business environment changes –Errors must be repaired.
1 Requirements Engineering for Agile Methods Lecture # 41.
CS223: Software Engineering Lecture 32: Software Maintenance.
Chapter 8: Maintenance and Software Evolution Ronald J. Leach Copyright Ronald J. Leach, 1997, 2009, 2014,
© SERG Reverse Engineering (Software Maintenance & Reengineering) Software Maintenance Managing the processes of system change.
Software Development Module Code: CST 240 Chapter 6: Software Maintenance Al Khawarizmi International College, AL AIN, U.A.E Lecturer: Karamath Ateeq.
Laurea Triennale in Informatica – Corso di Ingegneria del Software I – A.A. 2006/2007 Andrea Polini XVI. Software Evolution.
Chapter 18 Maintaining Information Systems
Software Engineering (CSI 321)
CS 425/625 Software Engineering Software Evolution
Chapter 9 – Software Evolution and Maintenance
Chapter 8 Software Evolution.
Legacy system components
Re- engineeniering.
Presentation transcript:

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. 21

Product lifespan © 2012 Václav Rajlich Software Engineering: The Current Practice Ch. 22

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. 23

Staged model © 2012 Václav Rajlich Software Engineering: The Current Practice Ch. 24 Initial development Evolution first version evolution changes Servicing or Maintenance evolution stops servicing patches Close-down Phase-out servicing discontinued switch-off

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. 25

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. 26

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. 27

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. 28

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. 29

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. 210

Reengineering © 2012 Václav Rajlich Software Engineering: The Current Practice Ch. 211 Initial development Evolution first running version software changes Servicing code decay servicing patches Close-down Phase-out servicing discontinued switch-off reengineering

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. 212

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. 213

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. 214

Versioned staged model © 2012 Václav Rajlich Software Engineering: The Current Practice Ch. 215 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 changes servicing patches Servicing Version 2 servicing patches first running version

Mozilla Firefox releases © 2012 Václav Rajlich Software Engineering: The Current Practice Ch – 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

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. 217

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. 218

V-Model © 2012 Václav Rajlich Software Engineering: The Current Practice Ch. 219

Prototyping model © 2012 Václav Rajlich Software Engineering: The Current Practice Ch. 220