The Software Maintenance of Large Software Systems: Management, Methods and Tools

  • K. H. Bennett

Abstract

Software Maintenance is the general name given to the set of activities undertaken on a software system following its release for operational use. Surveys have shown that for many projects, software maintenance consumes the majority of the overall software lifecycle costs, and there are indications that the proportion is increasing. Our inability to cope with software maintenance can also result in a backlog of application modifications. Sustaining the viability of a large software system over many years at an acceptable quality level is a major challenge. This paper discusses the management of the software maintenance process addressing both the organisational context and the implementation of the management plan in terms of the methods available and the tool support for those methods.

Keywords

Source Code Program Comprehension Maintenance Programmer Software Maintenance Configuration Management 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Arnold, R.S., Schneidewind, N.F. and Zvegintzov, N., A Software Maintenance Workshop, Commun. ACM, 27, (11), 1983Google Scholar
  2. Arnold R.S., Tutorial: Software Restructuring, IEEEComputer Society Press, April 1986Google Scholar
  3. Arango, G., Baxter, I., Freeman, P. and Pidgeon, C., TMM : Software Maintenance by Transformation, IEEE Software, 3, (3), 1986 pp 27–39CrossRefGoogle Scholar
  4. Bazelmans R., Software Configuration Management, ACM Software Engineering Notes, 10, (5), 1985 pp 37–46CrossRefGoogle Scholar
  5. Babich W.A., Evolution of Configuration Management, Addison Wesley, 1986Google Scholar
  6. Belady, L.A. and Lehman, M.M.,.4 Model of Large Program Development, IBM Systems Journal, 15, (3), 1976 pp 225–252MATHCrossRefGoogle Scholar
  7. Bennett K.H., Cornelius B.J., Munro M. & Robson D.J., Software Maintenance: a New Area for Research, University Computing, 10, (4), 1988 pp 184–188Google Scholar
  8. Birsoff E.H., Henderson V.D. and Seigel S.G., Software Configuration Management, Prentice Hall, 1980Google Scholar
  9. Boehm, B.W., Brown, J.R., Kaspar, II Lipow, M., MacLeod, G.J. and Merritt, M.J., Characteristics of Software Quality, North-Holland Publishing Company, 1978Google Scholar
  10. Boehm, B., The economics of software maintenance, Proc. Software Maintenance Workshop, IEEE, 1983Google Scholar
  11. Britcher, R.N. and Craig, J.J., Using Modern Design Practices to Upgrade Aging Software, IEEE Software, 3, (3), 1986 pp 16–24CrossRefGoogle Scholar
  12. Brooks F.P., The mythical man -month, Addison Wesley, 1975Google Scholar
  13. Brooks, R., Towards a Theory of the Comprehension of Computer Programs, Int. Journal of Man-Machine Studies, 18, 1983 pp 543–554MathSciNetCrossRefGoogle Scholar
  14. Buckle, J.K., Software Configuration Management, MacMillan, 1982Google Scholar
  15. Bush, E., The Automatic FicsiriKduring of COBOL, Proc. Conf. Software Maintenance, IEEE, 1985 pp 35-41Google Scholar
  16. Calliss F.W. & Cornelius B.J., Software Maintenance : A Different View, Proc. 21st. Annual Hawaii Int. Conf. on System Sciences, 1988 Vol. 2, pp 518–523Google Scholar
  17. Chapin, N., Software Maintenance : A Different View, AFIPS Conf. Proc. 54, National Computer Conference, 1985 pp 509-513Google Scholar
  18. Constantine, L.L., Stevens, W.P. and Myers, G.J., Structured Design, IBM Systems Journal 2, 1974 pp 115–139Google Scholar
  19. Curtis, B.and Sheppard, S.B., Identification and Validation of Quantitative Measures of the Psychology Complexity of Software, Software Management Research, 1979Google Scholar
  20. Ditri, A.E., Shaw, J.C. and Atkins, W., Managing the EDP function, McGraw Hill, 1971Google Scholar
  21. Dunsmore, H.E., Software Metrics: An Overview of an Evolving Methodology, Information Processing k Management, 1984 pp 183-192Google Scholar
  22. Fairley, R., Static Analysis and Dynamic Testing of Computer Software, IEEE Computer, 11, (4), 1978 pp 14–23Google Scholar
  23. Feldman, S.I., Make - A program for maintaining computer programs, Software Practice and Experience, 9, 1979Google Scholar
  24. Foster, J.R. and Munro, M., A Documentation Method. Based on Cross Referencing, Proc. Conf. on Software Maintenance, IEEE, 1987 pp 203-210Google Scholar
  25. Gladden, GR., Stop the Life Cycle, I Want to Get Off, ACM Software Engineering Notes, 7, (2), 1982 pp 35–39CrossRefGoogle Scholar
  26. Glass, R.L., Noiseux, R.A., Software Maintenance Guidebook, Prentice-Hall, 1981 Halstead M. II., Elements of Software Science, Elsevier North-Holland, 1977Google Scholar
  27. Harrison, W., Magel, K., Klucznv, R., & DeKock, A., Applying Software Complexity Mterics to Program Maintenance, IEEE Computer, Vol. 15 September, 1982 pp 65–79Google Scholar
  28. Harrison, W. and Magel, K.I., A Complexity Measure Based on Nesting Level, ACM SIGPLAN Notices, Vol. 16, no. 3 March 1981 pp 63–74CrossRefGoogle Scholar
  29. Hartmann, J. & Robson, D.J., Approaches to Regression Testing, Centre for Software Maintenance Report 88/7, University of Durham 1988Google Scholar
  30. Hoskyns Ltd., Implications of using modular programming, Hoskyns Systems Research, 1973Google Scholar
  31. IEEE, Special issue on Software Reuse, IEEE Trans, on Software Engineering, Vol. SE-10, no. 5 1984Google Scholar
  32. Leblang, D. and Chase, R., Configuration Management for Large Scale Software Development Efforts, Workshop on Software Engineering Environments for Programming in the Large, Harwhichport, Massachussets, 1985Google Scholar
  33. Lehman, M.M., Programs, Life Cycles, and Laws of Software evolution, Proc. IEEE, vol 68 (9) 1980 pp 1060–1076CrossRefGoogle Scholar
  34. Lehman, M.M, Program Evolution. Inform. Processing Management, 20, (1-2), 1984 pp 19–36CrossRefGoogle Scholar
  35. Lientz, B., and Swanson, E.B., Software Maintenance Management, Addison-Wesley, 1980Google Scholar
  36. Lientz, B.P., Swanson, E.B. and Tomkins, G.E., Characteristics of Application Software Maintenance, CACM, Vol 21, (6), 1978 pp 466–471Google Scholar
  37. Letovsky, S., Cognitive Processes in Program Comprehension, Proc. Conf. Empirical Studies of Programmers, pub. Ablex, Norword, New Jersey, 1986Google Scholar
  38. Letovsky, S. and Soloway, E., Delocalised Plans and Program Comprehension, IEEE Software, 3, (3), 1986 pp 41–49CrossRefGoogle Scholar
  39. McCabe, T.J., A complexity measure, IEEE TYans. Soft. Eng., SE-2, 1976Google Scholar
  40. McCall, J.A., Herdon, M.A., and Osborne, W.M., Software Maintenance Management, Nat. Bureau Standards, NBS Special Pnbl. 500-129, 1985Google Scholar
  41. McClure, C.L., Managing Soft-ware Development and Maintenance, New York : Van Nostrand, 1981Google Scholar
  42. McCracken, D.D. and Jackson, M.A., Life Cycle Concepts Considered Harmful, ACM Software Engineering Notes, 7, (2), 1982 pp 29–32CrossRefGoogle Scholar
  43. Martin, J. and McClure, C., Software Maintenance : The Problems and its Solutions, Prentice-Hall, 1983Google Scholar
  44. Martin, R.J. and Osborne, W.M., Guidance of Software Maintenance, Nat. Bureau Standards, NBS Special Publ. 500-106, 1983Google Scholar
  45. Miller J.C., Structured Retrofit: in IEEE Tutorial on Software Maintenance, Computer Soc. Press, 1983 pp 235-236Google Scholar
  46. Munro, M. and Calliss, F.W., Notes of the First Software Maintenance Workshop, Centre for Software Maintenance, Durham, England, 1987Google Scholar
  47. Munro, M. and Robson, D.J., An Interactive Cross Reference Tool for use in Software Maintenance, Proc. 20th Hawaii Int. Conf. on System Sciences, 1987 pp 64-70Google Scholar
  48. Parikh, G., Techniques of Program and System Maintenance, Winthrop Publishers, 1982Google Scholar
  49. Parikh, G. and Zvegintzov, N., Tutorial on Software Maintenance, IEEE Computer Society, 1983Google Scholar
  50. Parikh, G., Handbook of Software Maintenance, Van Nostrand Reinhold, 1986Google Scholar
  51. Perry W., A plan of action for software maintenance, Data Management, 23 (3), 1985Google Scholar
  52. Robson D.J., Bennett K.H., Cornelius B.J & Munro M., Program Comprehension, Centre for Software Maintenance Report 88/8, University of Durham, UK, 1988Google Scholar
  53. Rochkind M.J., The Source Code Control System, IEEE Trans. Software Engineering, December 1975Google Scholar
  54. Ryder, B.G., Constructing the Call Graph of a Program, IEEE Trans, on Software Engineering, 5, (3), 1979 pp 216–225MathSciNetCrossRefGoogle Scholar
  55. Ryder, B.G., An Application of Static Program Analysis to Software Maintenance, Proc. 20th Hawaii Int. Conf. on System Sciences, 1987 pp 82-91Google Scholar
  56. Schneidewind, N.F., The State of Software Maintenance, IEEE Transactions on Soft ware Engineering, 13, (3), 1987 pp 303–310CrossRefGoogle Scholar
  57. Shneiderman, B. and Mayer, R., Syntactic/Semantic Interactions in Programming Behaviour, Int. Journal of Computer and Information Science, 8, (3), 1979 pp 219–238MATHCrossRefGoogle Scholar
  58. Schneiderman, B., Designing the user interface: strategies for effective human computer interaction, Addison Wesley, 1987Google Scholar
  59. Sneed, H., Software Renewal: A Case Study, IEEE Software, 1, (3), 1984 pp 56–63CrossRefGoogle Scholar
  60. Sneed, H. and Jandrasics, J., Software Recycling, Proc. Conf. on Software Maintenance, IEEE, 1987 pp 82-90Google Scholar
  61. Swanson, E.B., The Dimension of Maintenance, Proc. of Conference of Software Engineering, IEE, 1976 pp 492-197Google Scholar
  62. Tichy, W.F., RCS - a system for version control, Software-Practice and Experience, 15(7) 1985 pp 637–654CrossRefGoogle Scholar
  63. Ward M., Transforming a Program into a Specification, Centre for Software Maintenance Report 88/1, University of Durham 1988Google Scholar
  64. Yau S.S. & Collofello J.S., Design Stability Measures for Software Maintenance, IEEE Trans. Software Eng. SE-11, September 1985Google Scholar
  65. Yau, S.S., and Collofello, J.S., Some Stability Measures for Software Maintenance, IEEE Transactions on Software Engineering, 6, (6), 1979 pp 545–552CrossRefGoogle Scholar
  66. Zvegintzov, N., Nanolrends, Datamation, 1983 pp 106-116Google Scholar
  67. Zvegintzov N. (Ed,), GSA Launches the PWB, Software Maintenance News, Sept. 86 and others 1986Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1990

Authors and Affiliations

  • K. H. Bennett
    • 1
  1. 1.Centre for Software MaintenanceUniversity of DurhamDurhamEngland

Personalised recommendations