1 / 24

Software Maintenance

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

kguerra
Télécharger la présentation

Software Maintenance

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Software Maintenance Hiren Variava SE682 4/26/04

  2. 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

  3. 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

  4. 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.

  5. 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

  6. 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.

  7. 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.

  8. 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.

  9. 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.

  10. 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.

  11. 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.

  12. 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.

  13. 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.

  14. 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.

  15. 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.

  16. 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.

  17. 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!

  18. 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

  19. 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)

  20. 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.

  21. 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

  22. 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.

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

  24. Questions?

More Related