 CS 5380 Software Engineering Chapter 9 Software Evolution.

Slides:



Advertisements
Similar presentations
Chapter 11 Software Evolution
Advertisements

SOFTWARE MAINTENANCE 24 March 2013 William W. McMillan.
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
March 30, Exploratory Testing Testing Approaches Analytical Information-driven Intuitive Exploratory Design the tests and test concurrently Learn.
Dr Kettani, Spring 2002 Software Engineering IIFrom Sommerville, 6th edition Software change l Managing the processes of software system change.
SWE Introduction to Software Engineering
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 21 Slide 1 Software evolution.
1 Chapter 1 Software and Software Engineering Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman.
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 21 Slide 1 Software evolution.
Software evolution.
Software evolution.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Software maintenance Managing the processes of system change.
 2004 by SEC Chapter 9 Software Maintenance. 2  2004 by SEC 9.1 Software Evolution.
Chapter 9 – Software Evolution Lecture 1 1Chapter 9 Software evolution.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 27Slide 1 Chapter 27 Software Change.
Chapter 9 – Software Evolution and Maintenance
1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 1 Software and Software Engineering Software Engineering: A Practitioner’s Approach, 6/e.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
CPSC 871 John D. McGregor MMS1 Maintenance & a new trend.
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.
TOPIC R Software Maintenance, Evolution, Program Comprehension, and Reverse Engineering SEG4110 Advanced Software Design and Reengineering.
Chapter 1 Software and Software Engineering. A Quick Quiz 1. What percentage of large projects have excess schedule pressure? 25% 50% 75% 100% 2. What.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 27Slide 1 Software change l Managing the processes of software system change.
Chapter 9 – Software Evolution 1Chapter 9 Software evolution CS 425 November 12, 2013 Ian Sommerville, Software Engineering, 9 th Edition Pearson Education,
Software Engineering CS3003 Lecture 3 Software maintenance and evolution.
Software – Acquisition & Testing. ICT5 How to acquire software There are several options: The software may be written by the end-user; A specialist department.
Chapter 9 Software Evolution.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 27Slide 1 Software change l Managing the processes of software system change.
Chapter 11 Maintaining the System System evolution Legacy systems Software rejuvenation.
©Ian Sommerville 2004 Software Engineering. Chapter 21Slide 1 Chapter 21 Software Evolution.
Manag ing Software Change CIS 376 Bruce R. Maxim UM-Dearborn.
Lecture 1 Chapter 9 Software evolution1. Topics covered Evolution processes Change processes for software systems Program evolution dynamics Understanding.
Figures – Chapter 9. Figure 9.1 A spiral model of development and evolution.
Lecture 14 Maintaining the System and Managing Software Change SFDV Principles of Information Systems.
SWE311_Ch01 (071) Software & Software Engineering Slide 1 Chapter 1 Software and Software Engineering Chapter 1 Software and Software Engineering.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 21 Slide 1 Software evolution 1.
Software Maintenance Speaker: Jerry Gao Ph.D. San Jose State University URL: Sept., 2001.
Chapter 9 – Software Evolution Chapter 9 Software Evolution1.
HNDIT23082 Lecture 06:Software Maintenance. Reasons for changes Errors in the existing system Changes in requirements Technological advances Legislation.
Chapter 9 – Software Evolution 1Chapter 9 Software evolution.
Chapter 9 – Software Evolution 1Chapter 9 Software evolution.
Chapter 9 – Software Evolution Lecture 1 Chapter 9 Software evolution1.
Chapter 9 – Software Evolution Chapter 9 Software Evolution130/10/2014.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 21 Slide 1 Software evolution.
Chapter 9 – Software Evolution 1Chapter 9 Software evolution.
CS223: Software Engineering Lecture 2: Introduction to Software Engineering.
Chapter 9 – Software Evolution 1Chapter 9 Software evolution CS 425 November 12, 2012 Ian Sommerville, Software Engineering, 9 th Edition Pearson Education,
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 21 Slide 1 Software evolution.
CS223: Software Engineering Lecture 32: Software Maintenance.
1 / 14 CS 425/625 Software Engineering Software Change Based on Chapter 27 of the textbook [SE-6] Ian Sommerville, Software Engineering, 6 th Ed., Addison-Wesley,
Software Development Module Code: CST 240 Chapter 6: Software Maintenance Al Khawarizmi International College, AL AIN, U.A.E Lecturer: Karamath Ateeq.
Overview Software Maintenance and Evolution Definitions
Chapter 9 – Software Evolution
Chapter 18 Maintaining Information Systems
Chapter 9 – Software Evolution
Chapter 9 – Software Evolution
CS 425/625 Software Engineering Software Evolution
Chapter 9 – Software Evolution and Maintenance
Chapter 9 Software Maintenance
IS301 – Software Engineering V:
Chapter 27 Software Change.
Chapter 9 – Software Evolution
Chapter 8 Software Evolution.
Chapter 9 – Software Evolution
Chapter 9 – Software Evolution
Presentation transcript:

 CS 5380 Software Engineering Chapter 9 Software Evolution

Cost  Author: 80-90% of cost of organizational software is evolution Chapter 7 - Design and Implementation2

Software Lifetime  Large – military, government, infrastructure  years  Air traffic control  SCADA – pipeline, process control  GIS  Why?  Product  years  What happens after this?  Embedded  Life of the physical product (5-10)  Printer, Car, Insulin Pump Chapter 7 - Design and Implementation3

(Software Lifetime)  Enterprise solutions (Custom)  years  Y2K Chapter 7 - Design and Implementation4

Why Is Software Modified?  Defect fixes  Changing Environment  Hardware  Operating Systems  External interfaces  Software Product - New Versions  New Features  Competitive Pressures  New Market  Sell upgrades  Dedicated Application  Changing business model  Changing environment Chapter 7 - Design and Implementation5

Types of Change  Evolution – ongoing feature change  Repetitive cycles of requirements, design, development, test, delivery  Very common with products  Maintenance – more related to bug fixing, environment change  Sommerville: consequence of no transition from development to subsequent phases Chapter 7 - Design and Implementation6

Cycle  Change requests  Evaluation, prioritization, release plan  Implementation  Release Chapter 7 - Design and Implementation7

Starting Point  Evolution team same as original development team  Can proceed directly to evolution process  Evolution team not involved in original development team  Understand architecture, design, from docs if plan-based development  Understand architecture, design from code, users if not documented Chapter 7 - Design and Implementation8

Starting point challenges  Evolution team is separate, but development team was agile.  Documentation, understanding  Evolution team is agile, but development team was plan based.  Structure for refactoring, regression testing may be weak/missing Chapter 7 - Design and Implementation9

Product Challenges  Downsizing of ongoing development team  Need to retain core knowledge  Temptation may be to remove highest paid people with the most experience  Company takeover  Continuation of development team is important Chapter 7 - Design and Implementation10

Custom Software  Original Development  Contract with finite duration  Challenges  Original developers not available  Documentation not available  Based on old technology (hardware, languages, databases, GUIs)  Result  Modifications made by those who don’t know  Application  Architecture  Technologies  Potential of introduced bugs Chapter 7 - Design and Implementation11

Program Evolution Dynamics  Study of system change  Lehman and others  Lehman’s laws  Apply to large, organizational systems Chapter 7 - Design and Implementation12

Lehman’s Laws Chapter 7 - Design and Implementation13 LawDescription Continuing changeA program that is used in a real-world environment must necessarily change, or else become progressively less useful in that environment. Increasing complexity As an evolving program changes, its structure tends to become more complex. Extra resources must be devoted to preserving and simplifying the structure. Large program evolution Program evolution is a self-regulating process. System attributes such as size, time between releases, and the number of reported errors is approximately invariant for each system release. Organizational stability Over a program’s lifetime, its rate of development is approximately constant and independent of the resources devoted to system development.

(Lehman’s Laws) Chapter 7 - Design and Implementation14 LawDescription Conservation of familiarityOver the lifetime of a system, the incremental change in each release is approximately constant. Continuing growthThe functionality offered by systems has to continually increase to maintain user satisfaction. Declining qualityThe quality of systems will decline unless they are modified to reflect changes in their operational environment. Feedback systemEvolution processes incorporate multiagent, multiloop feedback systems and you have to treat them as feedback systems to achieve significant product improvement.

Software Maintenance  3 types:  Fault repair  Environmental adaption  Functionality addition Chapter 7 - Design and Implementation15

Features Added Later, by Second Team  Author:  Team stability (knowledge)  Poor development practice (if contracted out)  Staff skills (old technologies, languages)  Program age and structure Chapter 7 - Design and Implementation16

Software Reengineering  Why  Reduce risk/cost  Rearchitect for future  Figure 9.11 in text  Steps (some combination used)  Source code translation  Reverse engineer  Program structure improvement  Program modularization  Data reengineering Chapter 7 - Design and Implementation17

Refactoring  Fowler – code smell  Duplicate code (standardize)  Long methods (break apart)  Switch statements (duplication)  Data clumping (encapsulate in objects)  “Speculative” generality (eventually not needed) Chapter 7 - Design and Implementation18

Legacy Systems  Options  Scrap the system (if not contributing)  Leave in place  Reengineer system  Replace with new system Chapter 7 - Design and Implementation19

Examples  Desktop Applications  Microsoft Word  Autodesk  Visio  Web Applications  Google Docs  Facebook  Large System, Custom  Air traffic Control System  Custom Medical Records System Chapter 7 - Design and Implementation20