Once a software application is deployed and begins its life in the hands of users, its journey is far from over. The maintenance stage, often overlooked by novices, plays a pivotal role in the Software Development Life Cycle (SDLC).
This phase ensures that software remains robust, relevant, and valuable throughout its lifecycle1.
Software maintenance encompasses all activities post-deployment that are not categorized as software evolution2. It’s about refining, enhancing, and optimizing software, as well as fixing errors that surface over time.
While creating software is challenging, maintaining it is often even more demanding. With changing user needs, technology advancements, and the inevitable emergence of bugs, ongoing maintenance is essential for software’s continued relevance and efficiency1.
It’s often quoted in software engineering literature that maintenance costs can account for over 60% of all SDLC costs9. Hence, budgeting, resource allocation, and cost optimization become integral parts of the maintenance stage.
Maintenance is not merely an afterthought; it’s the pulse that keeps software alive and relevant in an ever-changing digital landscape. By understanding and embracing the nuances of this SDLC stage, software engineers can ensure the longevity and success of their creations1.
Sommerville, I., 2010. Software Engineering. 9th ed. Pearson. ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎
Pressman, R.S., 2010. Software Engineering: A Practitioner’s Approach. 7th ed. McGraw-Hill. ↩︎ ↩︎
Tanenbaum, A.S., 2014. Modern Operating Systems. 4th ed. Prentice Hall. ↩︎
Parnas, D.L., 1994. Software Ageing. Proceedings of the 16th international conference on Software engineering. IEEE. ↩︎
Lehman, M.M., 1980. Programs, life cycles, and laws of software evolution. Proceedings of the IEEE, 68(9), pp.1060-1076. ↩︎
Bowman, I.T., Holt, R.C., and Brewster, N.V., 1999. Linux as a case study: Its extracted software architecture. Proceedings of the 21st international conference on Software engineering. ACM. ↩︎
Lethbridge, T.C., Singer, J., and Forward, A., 2003. How software engineers use documentation: The state of the practice. IEEE Software, 20(6), pp.35-39. ↩︎
Boehm, B.W., and Basili, V.R., 2001. Software defect reduction top 10 list. Computer, 34(1), pp.135-137. ↩︎
Erlikh, L., 2000. Leveraging legacy system dollars for e-business. IT professional, 2(3), pp.17-23. ↩︎