Manag ing Software Change CIS 376 Bruce R. Maxim UM-Dearborn.

Slides:



Advertisements
Similar presentations
Chapter 27 Software Change.
Advertisements

Chapter 27 Software Change.
1 Note content copyright © 2004 Ian Sommerville. NU-specific content copyright © 2004 M. E. Kabay. All rights reserved. Software Evolution IS301 – Software.
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.
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.
 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
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.
Software – Acquisition & Testing. ICT5 How to acquire software There are several options: The software may be written by the end-user; A specialist department.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 27Slide 1 Software change l Managing the processes of software system change.
 CS 5380 Software Engineering Chapter 9 Software Evolution.
©Ian Sommerville 2004 Software Engineering. Chapter 21Slide 1 Chapter 21 Software Evolution.
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.
©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.
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 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.
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.
Software change Software change is inevitable –New requirements emerge when the software is used –The business environment changes –Errors must be repaired.
CS223: Software Engineering Lecture 32: Software Maintenance.
© SERG Reverse Engineering (Software Maintenance & Reengineering) Software Maintenance Managing the processes of system change.
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.
Software Configuration Management
Overview Software Maintenance and Evolution Definitions
Chapter 9 – Software Evolution
Chapter 18 Maintaining Information Systems
Chapter 9 – Software Evolution
Software Engineering (CSI 321)
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:

Manag ing Software Change CIS 376 Bruce R. Maxim UM-Dearborn

Software Change Software change is inevitable –New requirements emerge as software is used –Business environment may change –Errors need to be repaired –New equipment needs to be accommodated –May need to improve performance or reliability A key problem for companies is implementing and managing change to their legacy systems

Software Change Strategies Software Maintenance –Changes are made in response to changed requirements but the functional software structure is sound Architectural Transformation –System may be modified from mainframe to distributed architecture Software Re-engineering –Software restructured to facilitate future changes, no new functionality is added

Program Evolution Dynamics – part 1 The study of the processes of system change Lehman and Bundy proposed several observations after studying changes made to large systems Continuing Change –A program used in the real-world must change or become progressively less useful in that environment. Increasing Complexity –As an evolving program changes, its structure becomes more complex and extra resources must be devoted to preserving and simplifying the structure.

Program Evolution Dynamics – part 2 Large Program Evolution –Program evolution is a self-regulating process. Some attributes (e.g. size, time between releases, # reported errors) are 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. Conservation of Familiarity –Over the lifetime of a system, the incremental change in each release is approximately constant.

Applicability of Lehman’s Laws They seem to apply to large custom made systems developed by large organizations It is not clear how they need to be modified for –Shrink-wrapped software products –Systems containing several COTS components –Small organizations –Medium sized systems

Maintenance is Inevitable System requirements are likely to change while the system is being developed because their environment is changing Systems are tightly coupled to their environment When a system is installed it changes the environment and that can change the system requirements The delivered system may not meet its requirements Systems must be maintained to remain useful in their environment

Types of Maintenance Corrective Maintenance (21%) –making changes to repair defects Adaptive Maintenance (25%) –making changes to adapt software to a different environment (hardware, business rules, OS, etc.) Perfective Maintenance (50%) –modifying system to meet new client requirements Preventative Maintenance (4%) –eliminating potential problems before they appear

Spiral Maintenance Model

Maintenance Costs Usually greater than the development costs (2 to 10 times as much in some cases) Affected by both technical and non-technical factors Increase as software is maintained and system corruption is introduced Aging software can have high support costs (e.g. old languages, compilers, etc.)

Maintenance Cost Factors Staff turnover –no turnover usually means lower maintenance costs Contractual responsibility –developers may have no contractual obligation to maintain the delivered system and no incentive to design for future change Staff skills –maintenance staff are often inexperienced and have limited domain knowledge Program age and structure –as programs age their structure deteriorates, they become harder to understand and change

Maintenance Process

Change Requests Requests can come from users, customers, or management Change requests should be carefully analyzed as part of the maintenance process before they are implemented Some changes requests must be implemented urgently due to their nature –fault repair –system environment changes –urgently required business changes

Maintenance Prediction Concerned with determining which parts of the system may cause problems and have high maintenance costs Change acceptance depends on the maintainability of the components affected by the change Implementing changes degrade system and reduces its maintainability Maintenance costs depends on number of changes Costs of change depend on maintainability

Maintenance Prediction

Change Prediction Predicting the number of changes requires understanding the relationships between a system and its environment Tightly coupled systems require changes whenever the environment changes Factors influencing the system/environment relationship –number and complexity of system interfaces –number and volatility of system requirements –business processes where the system is used

Maintenance Complexity Metrics Predictions of maintainability can be made by assessing component complexities Most maintenance efforts only affect a small number of system components Maintenance complexity depends on –complexity of control structures –complexity of data structures –module size

Maintenance Process Metrics Maintainability measurements –number of requests for corrective maintenance –average time required for impact analysis –average time to implement a change request –number of outstanding change requests If any if these increases it may signal a decline in maintainability

Architectural Evolution Concerned with the need to covert legacy mainframe systems to client-server architectures Change drivers –hardware costs (servers are cheaper than main frames) –user interface expectations (users expect GUI’s) –distributed system access (users want to use the system from geographically separated computers)

Factors Influencing System Distribution Decisions Business importance –if distribution provides more efficient support for stable business processes then it is more likely to be cost-effective System age –the older the system the harder it will be to modify its architecture due to degradation introduced by previous changes System structure –the more modular the system the easier it will be to change the architecture Hardware procurement policies –distribution may be necessary if mainframes are not replaced

Layered Distribution Model Presentation Layer –concerned with display and organization of end-user screens Data Validation Layer –concerned with validity of data input by user and output to user Interaction Layer –concerned with managing sequence of end-user operations and sequence of screens presented to end-user Application Services Layer –concerned with basic computations provide by the aplication Database layer

Legacy System Distribution

Distribution Options The more that is distributed from server to the client the higher the cost of evolution The simplest distribution model is UI distribution where only the user interface is implemented on the client machine The most complex distribution option is where the server simply provides data management and application services are implemented on the client

Distribution Option Spectrum

UI Distribution Takes advantage of the local processing power found on the user’s workstation The legacy system can be modified to distribute the user interface only when there is a clear separation between the user interface and application If the separation is not clear, then screen management middleware can be used to translate text interfaces to GUI’s

User Interface Distribution

UI Migration Strategies - part 1 Implementation using the workstation window management system –advantage have unrestricted access to all UI functions –disadvantage platform dependent may be harder to achieve interface consistency

UI Migration Strategies - part 2 Implementation using a web browser –advantage platform independent lower training costs easier to achieve interface consistency –disadvantage potentially poorer UI performance interface design is constrained by browser capabilities