Software Maintenance Hiren Variava SE682 4/26/04.

Slides:



Advertisements
Similar presentations
Testing Relational Database
Advertisements

Ch 3: Unified Process CSCI 4320: Software Engineering.
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
Introduction to Software Evolution and Maintenance
March 30, Exploratory Testing Testing Approaches Analytical Information-driven Intuitive Exploratory Design the tests and test concurrently Learn.
1 IS371 WEEK 8 Last and Final Assignment Application Development Alternatives to Application Development Instructor Online Evaluations.
CS189A/172 - Winter 2008 Lecture 15: Software Maintenance.
7.2 System Development Life Cycle (SDLC)
Software Process and Product Metrics
Design, Implementation and Maintenance
CS 577b Software Engineering II -- Introduction
Software Life Cycle Model
Chapter 9 – Software Evolution and Maintenance
1.Database plan 2.Information systems plan 3.Technology plan 4.Business strategy plan 5.Enterprise analysis Which of the following serves as a road map.
Introduction to Systems Analysis and Design Trisha Cummings.
Lecture # 22 Software Evolution
CSI315 Web Applications and Technology Overview of Systems Development (342)
Chapter 2 The process Process, Methods, and Tools
Software evolution. Objectives l To explain why change is inevitable if software systems are to remain useful l To discuss software maintenance and maintenance.
TOPIC R Software Maintenance, Evolution, Program Comprehension, and Reverse Engineering SEG4110 Advanced Software Design and Reengineering.
©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.
Computing and SE II Chapter 13: Software Maintenance
Chapter 3: Software Maintenance Process Omar Meqdadi SE 3860 Lecture 3 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
 System Development Life Cycle System Development Life Cycle  SDLC Phases SDLC Phases Phase 1: Preliminary Investigation Phase 2: Feasibility Study.
Historical Aspects Origin of software engineering –NATO study group coined the term in 1967 Software crisis –Low quality, schedule delay, and cost overrun.
Software Maintenance Hiren Variava SE682 4/26/04.
Manag ing Software Change CIS 376 Bruce R. Maxim UM-Dearborn.
Software Maintenance Speaker: Jerry Gao Ph.D. San Jose State University URL: Sept., 2001.
Dr. DEVENDRA TAYAL– THE SCOPE OF SOFTWARE ENGINEERING.
Chapter 9 – Software Evolution 1Chapter 9 Software evolution.
System Maintenance Modifications or corrections made to an information system after it has been released to its customers Changing an information system.
CS451 Software Maintenance Yugi Lee STB #555 (816) Note: This lecture was designed based on Stephen Schach’s.
©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.
INTRODUCTION Mehmet Sait Andaç Web: Office: 431.
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,
MANAGEMENT INFORMATION SYSTEM
Chapter 25 – Configuration Management 1Chapter 25 Configuration management.
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 Engineering — Software Life Cycle Processes — Maintenance
Software reliabilty Aim of Software quality assurance (SQA) is to build quality s/w products in a repeatable manner A Repeatable S/w Development organization:
Software Configuration Management
Overview Software Maintenance and Evolution Definitions
Environment Assessment
Principles of Information Systems Eighth Edition
BANKING INFORMATION SYSTEMS
Object-Oriented Software Engineering Using UML, Patterns, and Java,
Software Life Cycle “What happens in the ‘life’ of software”
Introduction to Software Evolution and Maintenance
Managing the System PPT SOURCE : Shari L. Pfleeger Joann M. Atlee.
Life Cycle Models PPT By :Dr. R. Mall.
Life Cycle Models PPT By :Dr. R. Mall.
Chapter 4 Systems Planning and Selection
Software Engineering (CSI 321)
CS 425/625 Software Engineering Software Evolution
Tools of Software Development
Chapter 2 – Software Processes
Software Testing and Maintenance Maintenance and Evolution Overview
Chapter 9 – Software Evolution and Maintenance
Software Maintenance Main issues: why maintenance is such an issue
Software Maintenance Main issues: why maintenance is such an issue
Chapter 27 Software Change.
Chapter 8 Software Evolution.
Software Maintenance Part1 Introduction. Outlines What Is Software Maintenance Purposes of Maintenance Why We Need It Maintenance Difficilties Some Tips.
System Analysis and Design:
Presentation transcript:

Software Maintenance Hiren Variava SE682 4/26/04

Discussion Items Introduction: What is Software Maintenance? SM – Root Problem SM – Evolution Problems of SM Organizational Aspect of SM IEEE Draft Standard for SM Technical Aspects of SM Legacy Systems Reverse Engineering Conclusion

What is Software Maintenance? IEEE91 Definition: the process of modifying the software system or component after delivery to correct faults, improve performance or other attributes, or adapt to a change in the environment. SM is concerned with modifying software once it is delivered to a customer Major economic importance: 40 – 90% of the total lifecycle costs

What is Software Maintenance? Four categories: Perfective maintenance: changes required as a result of user requests (a.k.a. evolutive maintenance) Adaptive maintenance: changes needed as a consequence of operated system, hardware, or DBMS changes Corrective maintenance: the identification and removal of faults in the software Preventative maintenance: changes made to software to make it more maintainable The majority of SM is concerned with evolution deriving from user requested changes.

What is Software Maintenance? What is meant by SM for organization: a major economic importance a substantial applications backlog Starting for late 1960s, SM started to be recognized as a significant activity

Software Maintenance: The Root Problem The root problem is complexity. Sometimes complexity arises because a system is migrated from hardware to software in order to gain the additional functionality found in software. The combination of scale and application complexity mean that it is infeasible for one person alone to understand the complete software system.

Software Maintenance: Evolution The important requirement of software maintenance for the client is that changes are accomplished quickly & cost effectively. Reliability should not degrade. Maintainability should not degrade. Maintenance that becomes increasingly more expensive and difficult becomes known as a legacy system. The legacy system may still be of essential importance to the organization.

Problems of SM Alignment with organizational objectives. SM is resources consuming and it has no clear quantifiable benefit for the organization. Process issues SM requires a number of additional activities not found in initial development. Impact analysis and regression tests on the software changes are crucial issues. Technical issues How to construct software that it is easy to comprehend is a major issue and the technology to do this is still not available.

Problems of SM Domino Effect (a.k.a Ripple Effect) When a change is made to the code, there may be substantial consequential changes, not only in the code itself, but within documentation, design, and test suites. SM usually has a lower status compared with software development. Management has trouble assessing a software product to determine how easy it is to change: This leaves little incentive for initial development projects to construct software that is easy to evolve.

Organizational Aspect of SM SM is much closer to a service and be related to quality As opposed to initial software development which is product-oriented. SM requires financial investment SM is a prime candidate for funding reduction and even elimination. SM needs to be expressed in terms of ROI. The trend for SM to be outsourced Work has been undertaken in applying predictive cost modeling to software maintenance Based on the COCOMO techniques.

IEEE Draft Standard for SM [IEEE94] Represents many elements of good practice in SM: Accepting a stream of change requests & error reports Implementing the changes Testing Forming new software releases IEEE draft model comprises four key stages: Help desk: the problem is received, a preliminary analysis undertaken, and if the problem is sensible, it is accepted. Analysis: a managerial and technical analysis of the problem is undertaken to investigate and cost alternative solutions. Implementation: the chosen solution is implemented and tested. Release: the change (along with others) is released to the customer.

IEEE Draft Standard for SM [IEEE94] Analysis phase Feasibility analysis Assesses the impact of the modification, investigates alternative solutions, assesses short and long term costs, and computes the benefit value of making the change. Detailed analysis Determines firm requirements of the modification, identifies the software involved, and requires a test strategy and an implementation plan to be produced. The standard requires that: All infected components shall be identified and brought in to the scope of the change; Unit test, integration test, user-oriented functional acceptance tests and regression test strategy be provided.

Technical Aspects of SM Impact Analysis – helps to determine the cost of making a change Translate the problem into software terms to decide if it is viable or be rejected Determine the origin of the change and suggest solutions All solutions be investigated to determine they are applied to all software components. Make a decision on the best implementation route or to make no change.

Technical Aspects of SM The Ripple Effect problem: Ripple Effect propagation is a phenomenon by which changes made to a software component along the software life cycle have a tendency to be felt in other components. (Yau) Ripple effects cannot determine statically, and dynamic analysis must be used. Impact Analysis is needed: To ensure that the change has been correctly and consistently bounded; to identify all objects impacted by changes in the primary sector.

Technical Aspects of SM Traceability A degree to which a relationship can be established between two or more products of the development process, especially products having a predecessor successor or master subordinate relationship to one another. (IEEE91) Traceability provides semantic links for impact analysis. Some types of traceability links are very hard to determine.

Legacy Systems Legacy problems – a legacy system is typically: very old and large has been heavily modified based on the old technology documentation not be available none of the original members of the software development team may still be around often support very large quantities of live data the software is often at the core of the business and replacing it would be a huge expense. Dealing with legacy system is very hard and there are some solutions.

Legacy Systems Solutions for the legacy system: Carry on as now, possibly subcontracting the maintenance Replace software with a package Re-implement from scratch Discard software and discontinue Freeze maintenance and phase in new system Encapsulate the old system and call as a sever to the new Reverse Engineer the legacy system and develop a new software suite.  the most fruitful solution!

Legacy Systems – Reverse Engineering Definition: Reversing Engineering The process of analyzing a subject system to identify the system’s components and their inter-relationships, and to create representations of the system in another form or at higher levels of abstraction.( by Chikofsky & Cross) Two types of Reverse Engineering: Redocumentation: the creation or revision of a semantically equivalent representation within the same relative abstraction layer; Design Recovery: involves identifying meaningful higher level abstractions beyond those obtained directly by examining the system itself. The main motivation is to provide help in program comprehension

Legacy Systems – Reverse Engineering Two approaches: Slicing: A static analysis technique in which only those source code statements which can affect a nominated variable are displayed. Hypertext form of documentation: The maintainer attaches and manage notes to the source code for the “hot spots” (Foster and Munro)

Legacy Systems – Reverse Engineering Reasons to use Reverse Engineering: 26 decision criteria in three categories for reverse engineering: (by Bennett) Management criteria Quality criteria Technical criteria Two Important Points: Many legacy systems represent years of accumulated experience, and this experience may now no longer be represented anywhere else. It is not obvious that a legacy system does actually have a high level, coherent representation.

Conclusion Research Questions: Promising trends and challenges How do we change software quickly, reliably, and safely? How easily can new software be changed? Management and technical solutions are needed to address the problems of legacy systems. There are 3 level approach to considering SM – in terms of the impact on the organization the process technology

Conclusion To well improve the best and average practice in the SM, we should adopt a standard maintenance process model, along with formal process assessment and improvement. Coping with legacy system could be a headache, but there are still several practical techniques for addressing such system. There are still major research issues of strategic industrial importance to be solved. There are no “Silver Bullets” to solve the problems in SM, and the progressive and incremental improvement of practices is likely to be more successful.

Sources Bennett, Keith H., “Software Maintenance: A Tutorial.” Software Engineering, M. Dorfman and R.H. Thayer, eds., IEEE Computer Society Press, Los Alamitos, Calif., 1997

Questions?