CS 425/625 Software Engineering Software Evolution

Slides:



Advertisements
Similar presentations
Chapter 27 Software Change.
Advertisements

Chapter 26 Legacy Systems.
Chapter 27 Software Change.
CIS 376 Bruce R. Maxim UM-Dearborn
Chapter 11 Software Evolution
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 Configuration Management
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.
CSEM01 SE Evolution & Management Anne Comer Helen Edwards
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 21 Slide 1 Software evolution.
Software evolution.
Software evolution.
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
Lecture # 22 Software Evolution
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.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 27Slide 1 Software change l Managing the processes of software system change.
Software Engineering Lecture 20 Software Maintenance.
Chapter 9 – Software Evolution 1Chapter 9 Software evolution CS 425 November 12, 2013 Ian Sommerville, Software Engineering, 9 th Edition Pearson Education,
Chapter 3: Software Maintenance Process Omar Meqdadi SE 3860 Lecture 3 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
CS 425/625 Software Engineering Legacy Systems
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 27Slide 1 Software change l Managing the processes of software system change.
©Ian Sommerville 2004 Software Engineering. Chapter 21Slide 1 Chapter 21 Software Evolution.
Manag ing Software Change CIS 376 Bruce R. Maxim UM-Dearborn.
Lecture 14 Maintaining the System and Managing Software Change SFDV Principles of Information Systems.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 21 Slide 1 Software evolution 1.
Software Evolution Program evolution dynamics Software maintenance Complexity and Process metrics Evolution processes 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 2: Software Maintenance Omar Meqdadi SE 3860 Lecture 2 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
1 Software Maintenance The process of changing the system after it has been delivered and in operation Software change is inevitable –New requirements.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 21 Slide 1 Software evolution 2.
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.
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.
Software change Software change is inevitable –New requirements emerge when the software is used –The business environment changes –Errors must be repaired.
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.
Laurea Triennale in Informatica – Corso di Ingegneria del Software I – A.A. 2006/2007 Andrea Polini XVI. Software Evolution.
Tutorial 4 IT323.  Q1. As a software project manager in a company that specializes in the development of software for the offshore oil industry, you.
Software Configuration Management
Overview Software Maintenance and Evolution Definitions
Chapter 9 – Software Evolution
Chapter 18 Maintaining Information Systems
Introduction to Software Evolution and Maintenance
Chapter 9 – Software Evolution
Software Engineering (CSI 321)
Chapter 9 – Software Evolution
Software Testing and Maintenance Maintenance and Evolution Overview
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.
Lecture 06:Software Maintenance
Software Engineering I Session 8
Chapter 9 – Software Evolution
Legacy system components
Chapter 9 – Software Evolution
Presentation transcript:

CS 425/625 Software Engineering Software Evolution Based on Chapter 21 of the textbook [SE-8] Ian Sommerville, Software Engineering, 8th Ed., Addison-Wesley, 2006 and on the “Ch21” PowerPoint presentation available at the book’s web-site November 12, 2008

Outline Introduction Program Evolution Dynamics Software Maintenance Overview Prediction Evolution Processes Legacy Systems

Introduction Software evolves continuously due to demands for changes: . Software evolves continuously due to demands for changes: New requirements surface Existing requirements need be modified Errors found need be fixed In some cases 90% of software costs are evolution costs When the transition from development to evolution is not smooth, changing software after delivery is called software maintenance

.Introduction A spiral model of development and evolution [Fig. 21.1, SE-8]

Program evolution dynamics

Software Maintenance: Overview…. Software maintenance = the activities of changing the system after it has been delivered Types of software maintenance: Corrective maintenance: repair of software faults Adaptive maintenance: modification of software due to changes in the operating environment (hardware, supporting software) Perfective maintenance: additions to and/or modifications of system functionality due to organizational or business changes

Software Maintenance: .Overview... Distribution of maintenance effort [Fig. 21.3, SE-8]

Software Maintenance: ..Overview.. Software maintenance is a natural continuation of the development process (specification, design, implementation, testing). Hence the term evolution (applied especially when the transition from development is seamless) Development and maintenance costs vary from application to application Investing in development leads to reduction of both maintenance costs and overall project costs [slide 9]

Software Maintenance: …Overview. Costs of development and maintenance [Fig. 21.4, SE-8]

Software Maintenance: ….Overview Why maintenance costs are higher than development costs? Factors: Team stability: development teams break up after delivery Contractual responsibility: different teams or organizations have the responsibility for maintenance Staff skills: more experienced software engineers tend to avoid maintenance Program age and structure: not structured in the first place, the program copes poorly with changes and its structure degrades

Software Maintenance: Prediction. Maintenance prediction [Fig. 21.5, SE-8]

Software Maintenance: .Prediction Generally, more complex the software, more expensive its maintenance The relationship between a system and its environment is also important. This relationship is characterized by: Number and complexity of interfaces Number of inherently volatile requirements The business process in which the system is used Factors used to assess maintainability: Number of requests for corrective maintenance Average time required for impact analysis Average time taken to implement a change Number of outstanding change requests

Evolution Processes.. The evolution process: overview [Fig. 21.7, SE-8]

.Evolution Processes. Change implementation [Fig. 21.8, SE-8]

..Evolution Processes Emergency repair [Fig. 21.9, SE-8]. Prompted by: System faults Business changes Environmental changes all requiring urgent treatment The dangers of emergency repair: Software becomes inconsistent Changes are not reflected in documentation Software ageing is accelerated by workaround solutions

Legacy Systems: Introduction.. Legacy systems: old computer-based systems still in use by organizations Many of them still business critical Incorporate many changes made over the years Many people have been involved in these changes Replacing legacy systems with new systems is risky, yet keeping them means new changes become more and more expensive

Legacy Systems: .Introduction. Risks of replacing a legacy system: Specification is difficult because existing documentation is typically incomplete Changing business processes (now adjusted to the system) may entail high costs Undocumented, yet important business rules may be embedded in the system; a new system may break these rules The new system may be delivered late, may cost more than expected, and may not function properly

Legacy Systems: ..Introduction Factors that make changes to legacy systems expensive: In large systems, different parts were implemented by different teams, without consistent programming style It is difficult to find personnel who knows the obsolete programming languages used in old systems In may cases the only documentation is provided by the source code; even this may be missing It is difficult to understand the system given its ad hoc updating over the years Data used by the system is difficult to understand and manipulate; it can also be obsolete and/or redundant

Legacy system assessment….. Strategic approaches for dealing with legacy systems: Scrap the system completely When business practices have changed and no longer depend significantly on the system (they may be supported by new COTS) Continue to maintain the system The system works well, is fairly stable, and users do not request many changes Transform the system to improve maintainability When system quality was affected negatively by changes, yet changes are still required Replace the system with a new one When obsolete hardware precludes further operation or the new system can be built at reasonable cost

.Legacy system assessment…. Assessing legacy systems example [Fig. 21.13 SE-8]

..Legacy system assessment… Assessment of legacy systems includes: Business value assessment Viewpoints: End-users: look at system’s functionality and performance Customers: look at the quality of services provided Business managers: assess the usefulness of the system in terms of business support IT managers: are concerned with the availability of technical support for the system Senior managers: interested in system’s contribution to the business goals Major criteria: system usage, business processes supported, dependability, system outputs

…Legacy system assessment.. (2) System quality assessment. Look at all components of the system. Hence: Environment assessment. Support software & hardware platform (maintenance costs, faults, etc. – slide 23) Application software assessment. Factors considered as in slide 24 and quantitative data such as: Number of system change requests Number of different user interfaces Volume of data used by the system

….Legacy system assessment. Factors in environment assessment [Fig. 21.14 SE-8]

…..Legacy system assessment Factors in application software assessment [Fig. 21.15 SE-8]