Software Maintenance


Software Engineering is an engineering discipline which is concerned with all aspect of software production. It also concerned with all aspects of computer-based systems development including hardware, software, and process engineering.


Software development efforts result in the delivery of a software product that satisfies user requirements. Accordingly, the software product must change or evolve. Once in operation, defects are uncovered, operating environments change, and new user requirements surface. The maintenance phase of the life cycle begins following a warranty period or post implementation support delivery, but maintenance activities occur much earlier.
Software maintenance is an integral part of a software life cycle. However, it has not received the same degree of attention that the other phases have. Historically, software development has had a much higher profile than software maintenance in most organizations. This is now changing, as organizations strive to squeeze the most out of their software development investment by keeping software operating as long as possible. The open source paradigm has brought further attention to the issue of maintaining software artefactsdeveloped by others.
Software maintenance is defined as the totality of activities required to provide cost-effective support to software. Activities are performed during the pre-delivery stage as well as during the post-delivery stage. Pre-delivery activities include planning for post-delivery operations, maintainability, and logistics determination for transition activities. Post-delivery activities include software modification, training, and operating or interfacing to a help desk.

Software Maintenance Fundamentals

Definitions and Terminology
The purpose of software maintenance is defined in the international standard for software maintenance: ISO/IEC/IEEE In the context of software engineering, software maintenance is...