Skip To Content

Athabasca University

Section 1

Section Goals

  • To explain the scope, main concepts, key issues, and process of software maintenance.
  • To describe the types of software maintenance and evolution.
  • To describe the Software Maintenance Maturity Model.

Learning Objectives

Learning Objective 1

  • Define software maintenance.
  • Outline the main concepts related to software maintenance.
  • Describe the types of software maintenance.

Objective Leading Questions

  • What is software maintenance?
  • Explain the importance of software maintenance.
  • What are the major costs of maintenance?
  • What are the main types of software maintenance?
  • Describe situations under which different types of maintenance would be used.
  • What are the main challenges of software maintenance?
  • How would you describe the current state of software maintenance?

Objective Readings

Required Readings

Chapter 5: "Introduction" and "Section 1: Software Maintenance Fundamentals" of SWEBOK [Bourque and Fairley 2014].

Chapin, N., J.E. Hale, K.M. Khan, J.F. Ramil and W.-G. Tan (2001), "Types of Software Evolution and Software Maintenance," Journal of Software Maintenance and Evolution: Research and Practice 13, 1, 3-30. https://doi.org/10.1002/smr.220

Supplemental Readings

Glass, R.L. (1998), "Maintenance: Less is Not More," IEEE Software 15, 4, 67-68. https://doi.org/10.1109/52.687948

Lehman, M.M. and J.F. Ramil (2003), "Software Evolution - Background, Theory, Practice," Information Processing Letters 88, 1-2, 33-44. https://doi.org/10.1016/S0020-0190(03)00382-X

"ISO/IEC International Standard 17464: Software Engineering -Software Life-Cycle Processes - Maintenance (ISO/IEC Std 14764-2006(E)) (IEEE Std 14764-2006), Second Edition" (2006, September), ISO/IEEE, Los Alamitos, CA. Retrieved November 5, 2007, from https://doi.org/10.1109/IEEESTD.2006.235774

Gallagher, K.B. and J.R. Lyle (1991), "Using Program Slicing in Software Maintenance," IEEE Transactions on Software Engineering 17, 8, 751-761. https://doi.org/10.1109/32.83912

Vehvilainen, R. (2000), "What is Preventive Software Maintenance?" In Proceedings of the International Conference on Software Maintenance, Institute of Electrical and Electronic Engineers, Los Alamitos, CA, pp. 18-19. https://doi.org/10.1109/ICSM.2000.882971

Bennett, K.H. and V.T. Rajlich (2000), "Software Maintenance and Evolution: A Roadmap," In Proceedings of the Conference on The Future of Software Engineering, Association for Computing Machinery, New York, pp. 73-87. https://doi.org/10.1145/336512.336534

Learning Objective 2

  • Describe the key issues in software maintenance.

Objective Leading Questions

  • Describe the key issues in software maintenance, including, technical issues, management issues, maintenance cost estimation, and software maintenance measurement.
Supplemental Discussion Questions
  • What are the main types of software change?
  • How would you describe the impact of each type of software change?
  • How does software change affect software maintenance?
  • What are the main challenges in managing changes to software maintenance? What technologies/approaches seem most promising to you?

Objective Readings

Required Readings

Chapter 5: "Section 2: Key Issues of Software Maintenance" of SWEBOK [Bourque and Fairley 2014].

Supplemental Readings

Buckley, J., T. Mens, M. Zenger, A. Rashid and G. Kniesel (2005), "Towards a Taxonomy of Software Change," Journal of Software Maintenance and Evolution: Research and Practice 17, 5, 309-332. https://doi.org/10.1002/smr.319

Singer, J. (1998), "Practices of Software Maintenance," In Proceedings of the International Conference on Software Maintenance, Institute of Electrical and Electronic Engineers, Los Alamitos, CA, pp. 139-145. https://doi.org/10.1109/ICSM.1998.738502

Learning Objective 3

  • Describe the maintenance process.
  • Explain the Software Maintenance Maturity Model (SMmm).

Objective Leading Questions

  • Describe the software maintenance process.
  • What are maintenance processes and maintenance activities?
  • What is the Software Maintenance Maturity Model (SMmm)? What kind of maintenance needs best fit this model? What the main advantages and disadvantages of this model? What type of software development process best fits this model? What are the costs of this model?

Objective Readings

Required Readings

Chapter 5: "Section 3: Maintenance Process" of SWEBOK [Bourque and Fairley 2014].

April, A., J. Huffman Hayes, A. Abran and R. Dumke (2005), "Software Maintenance Maturity Model (SMmm): The Software Maintenance Process Model," Journal of Software Maintenance and Evolution: Research and Practice 17, 3, 197-223. https://doi.org/10.1002/smr.311

Supplemental Readings

Carnegie Mellon University, Software Engineering Institute (2007a), "CMMI® Web Site," Carnegie Mellon University, Pittsburgh. Retrieved November 20, 2007.

Collier ,B., T. DeMarco and P. Fearey (1996), "A Defined Process for Project Postmortem Review," IEEE Software 13, 4, 65-72. https://doi.org/10.1109/52.526833

Carnegie Mellon University, Software Engineering Institute (2002, March), "Capability Maturity Model Integration (CMMISM), (Version 1.1), (CMU/SEI-2002-TR-011), (ESC-TR-2002-011)," Carnegie Mellon University, Pittsburgh. Retrieved November 5, 2007, from http://www.sei.cmu.edu/pub/documents/02.reports/pdf/02tr011.pdf

Yau, S.S., R.A. Nicholl, J.J.-P. Tsai and S.-S. Liu (1988), "An Integrated Life-Cycle Model for Software Maintenance," IEEE Transactions on Software Engineering 14, 8, 1128-1144. https://doi.org/10.1109/32.7624

Kung, H.-J. and C. Hsu (1998), "Software Maintenance Life Cycle Model," In Proceedings of the International Conference on Software Maintenance, Institute of Electrical and Electronic Engineers, Los Alamitos, CA, pp. 113-121. https://doi.org/10.1109/ICSM.1998.738499

Tomer, A. and S.R. Schach (2000), "The Evolution Tree: A Maintenance-Oriented Software Development Model," In Proceedings of the Fourth European Conference on Software Maintenance and Reengineering, J. Ebert and C. Verhoef, Eds., Institute of Electrical and Electronic Engineers, Los Alamitos, CA, pp. 209-214. https://doi.org/10.1109/CSMR.2000.827329

Huffman Hayes, J., N. Mohamed and T.H. Gao (2003), "Observe-Mine-Adopt (OMA): An Agile Way to Enhance Software Maintainability," Journal of Software Maintenance and Evolution: Research and Practice 15, 5, 297-323. https://doi.org/10.1002/smr.287

Poole, C. and J.W. Huisman (2001), "Using Extreme Programming in a Maintenance Environment," IEEE Software 18, 6, 42-50. https://doi.org/10.1109/52.965801

Grisham, P.S. and D.E. Perry (2005), "Customer Relationships and Extreme Programming," In Proceedings of the 2005 Workshop on Human and Social Factors of Software Engineering, Association for Computing Machinery, New York, pp. 1-6. https://doi.org/10.1145/1083106.1083113

Updated March 16 2022 by FST Course Production Staff