HNDIT23082 Lecture 06:Software Maintenance. Reasons for changes Errors in the existing system Changes in requirements Technological advances Legislation.

Slides:



Advertisements
Similar presentations
Software Re-engineering
Advertisements

Chapter 27 Software Change.
Configuration management
Configuration management
Chapter 11 Software Evolution
SWE 316: Software Design and Architecture Objectives Lecture # 23 Software Reengineering SWE 316: Software Design and Architecture  To describe the activities.
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.
PVK-HT061 Contents Introduction Requirements Engineering Project Management Software Design Detailed Design and Coding Quality Assurance Software Maintenance.
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 21 Slide 1 Software evolution.
Software evolution.
Software evolution.
Driss Kettani Sommerville, 6th edition Software Engineering II Software re-engineering l Reorganising and modifying existing software systems to make them.
Software maintenance Managing the processes of system change.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 27Slide 1 Chapter 27 Software Change.
Software Reengineering 2003 년 12 월 2 일 최창익, 고광 원.
Software Re-engineering
Chapter 9 – Software Evolution and Maintenance
This chapter is extracted from Sommerville’s slides. Text book chapter
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 CS3003 Lecture 3 Software maintenance and evolution.
 To explain the importance of software configuration management (CM)  To describe key CM activities namely CM planning, change management, version management.
Configuration Management (CM)
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 29 Slide 1 Configuration management.
Creator: ACSession No: 16 Slide No: 1Reviewer: SS CSE300Advanced Software EngineeringFebruary 2006 (Software Quality) Configuration Management CSE300 Advanced.
©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.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28Slide 1 CO7206 System Reengineering 4.2 Software Reengineering Most slides are Slides.
Chapter 5: Software Re-Engineering Omar Meqdadi SE 3860 Lecture 5 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Software Maintenance Speaker: Jerry Gao Ph.D. San Jose State University URL: Sept., 2001.
Configuration Management CSCI 5801: Software Engineering.
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.
1 Chapter 12 Configuration management This chapter is extracted from Sommerville’s slides. Text book chapter 29 1.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 21 Slide 1 Software evolution.
Chapter 9 – Software Evolution 1Chapter 9 Software evolution.
©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.
© 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,
CS223: Software Engineering Lecture 33: Software Maintenance.
CS223: Software Engineering Lecture 34: Software Maintenance.
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.
Chapter 18 Maintaining Information Systems
Introduction to Software Evolution and Maintenance
Software Maintenance.
Software Maintenance PPT By :Dr. R. Mall.
Software Engineering (CSI 321)
CS 425/625 Software Engineering Software Evolution
Chapter 9 – Software Evolution and Maintenance
IS301 – Software Engineering V:
Chapter 27 Software Change.
Chapter 8 Software Evolution.
Lecture 06:Software Maintenance
Configuration management
Re- engineeniering.
Introduction Software maintenance:
Software Re-engineering and Reverse Engineering
Presentation transcript:

HNDIT23082 Lecture 06:Software Maintenance

Reasons for changes Errors in the existing system Changes in requirements Technological advances Legislation and other changes

Reasons for high Maintenance cost Program age and structure - The design and the programming practices used in developing old systems may not be flexible, hence modifying existing systems may be difficult. Team Stability - After a system has been delivered, it is normal for the development team to be broken up and people work on new projects. The new team responsible for the maintenance of the system may not understand the design decisions and hence lot of effort during the maintenance process is taken up with understanding the existing system. Contractual responsibility – The maintenance contract may be given to a difference company rather than the original system developer. This factor along with the lack of team stability, means that there is no incentive for a development team to write the software so that it is not easy to change. Staff skills - Maintenance is seen as a less skilled process than system development and is often allocated to junior staff members. Programming languages and techniques used in old systems may be obsolete, hence new staff members may not like to learn these languages and techniques.

Types of maintenance Corrective Maintenance – to repair software faults(fixing bugs in the code) Adaptive Maintenance (adapting the software to new environments) – Maintenance to add to or modify the system’s functionality – Modifying the system to satisfy new requirements – Modifying the system to suit new operation environment Perfective Maintenance – Improving programs performance, structure, reliability etc. Making changes to avoid future problems or prepare for future changes

An overview of the maintenance process Change request Impact analysis Release planning Change implementation System release Fault repair Platform adaptation System enhancement

Software Re-engineering What? - Re-structuring or re-writing part or all of an existing system without changing its functionality When? – When some but not all sub-systems of a larger system require frequent maintenance – When hardware or software support becomes obsolete(out of date) How? – The system may be re-structured and re-documented to make it easier to maintain Why? – Reduced risk New software development carries high risk. – Reduced cost The cost of re-engineering is often significantly less than the costs of developing new software

Forward engineering and re-engineering Automated program conversion Automated program restructuring Manual Program and Data Restructuring Restructuring plus Architectural Changes cost

Re-engineering activities Source code translation- The program is converted from an old programming language to a more modern version of the same language or to different language. Reverse engineering - The program is analyzed and information extracted from it which help to document its organization and functionality. Program structure improvement – The control structure of the program is analyzed and modified to make it easier to read and understand. Program modularization – Related parts of the program are grouped together and, where appropriate, redundancy is removed. In some cases this stage may involve architectural transformation. Data re-engineering – The data processed by the program is changed to reflect program changes.

Reverse engineering Analysing software to gain an understanding of its design and specification May be part of a re-engineering process or to re-specify a system for re-implementation Builds a program data base and generates information from this Program understanding tools (browsers, CASE tools, cross-reference generators, etc.) may be used in this process Why? – Original code may have been written under limitations which no longer apply e.g. memory needs, performance etc – Maintenance tends to corrupt the structure of a program. It becomes harder and harder to understand – The program may be automatically restructured to remove unconditional branches or complex conditional statements

The reverse engineering process System to be Re-engineered Automated analysis Manual annotation System Information Store Document generation Program Structure diagram Data structure diagrams Traceability matrices

Configuration management(CM) CM is the development and application of standards and procedures for managing an evolving software product. You need to manage evolving systems because, as they evolve, many different versions of the software are created. These versions incorporate proposals for change, corrections of faults and adaptations for different hardware and operating systems. There may be several versions under development and in use at the same time. You need to keep track of these changes that have been implemented and how these changes have been included in the software.

 All products of the software process may have to be managed Specifications Designs Programs Test data User manuals  Thousands of separate documents are generated for a large software system  CM Plan A CM plan described the standards and procedures which should be used for configuration management. The starting point for developing the plan should be a set of general, company-wide CM standards and these should be adapted as necessary for each specific project Configuration Management

Versions/variants/releases Version An instance of a system which is functionally distinct in some way from other system instances Variant An instance of a system which is functionally identical but non-functionally distinct from other instances of a system Release An instance of a system which is distributed to users outside of the development team Version Numbering – Simple naming scheme uses a linear derivation e.g. V1, V1.1, V1.2, V2.1, V2.2 etc.