The institute of electrical and electronic engineers (IEEE), is the regulatory and standards setting body for electrical and electronics engineering profession worldwide. IEEE document 1219-1998 describes fully the process of software maintenance. Software maintenance is concerned with changes for the better made to software usually after delivery. Software maintenance is an integral part of the software development life cycle.
Software Maintenance Definition
The IEEE 1219-1998 software standards document defines software maintenance as "the modification of a software product after delivery to correct faults, to improve performance or other attributes, or to adapt the product to a modified environment." Software maintenance is the concluding part of the software development process or "life cycle."
Software Development Life Cycle
The software development life cycle consists of six phases: requirements phase, specification phase, design phase, implementation phase and the maintenance phase. The maintenance phase takes up over half the cost of software development.
Types of Maintenance
There are four types of software maintenance defined in IEEE 1219-1998: corrective, adaptive, perfective and emergency maintenance. Corrective maintenance fixes the bugs discovered after delivery while adaptive maintenance keeps the software program usable in a changed or changing environment. Changes to software to improve performance and maintainability are classified as perfective maintenance. Emergency maintenance is usually unscheduled maintenance to keep the system working properly at any time.
Process Model for Software Maintenance
As defined by IEEE 1219-1998, software maintenance has seven phases, with each phase having input, process, control and output. The phases are problem identification, analysis, design, implementation, system test, acceptance test and delivery. Modification request (MR) constitutes the input to problem identification while validated MR is the final output of this first phase. The last phase of maintenance is delivery. Physical configuration Audit (PCA) plays an important part to make sure that the validated MR is fully achieved in the prior phases. Finally installation, training of users and version description document (VDD) is produced.
Process Model Metrics
Metrics involves time, money and numbers. Process model metrics for software maintenance encourages keeping records of time spent on problem validation, document error rates, number of lines of corrective code added, error rates by priority and type (generated and corrected) and document changes. Document changes include VDDs, training manuals and operation guidelines.
Supporting Maintenance Technology
The maintenance process requires supporting technology. These include software re-engineering, reverse engineering, holistic reusing and software tools. IEEE 1219-1998 defines re-engineering as "a system changing activity that results in creating a new system that either retains or does not retain the individuality of the initial system." Reverse engineering comes in to re-document and update the system that has outgrown its initial base system. Holistic reuse is when a new system is created from an old one and both run concurrently. Software maintenance tools include performance monitors for system/acceptance testing and code generator for the implementation stage.
Maintenance Plan Guidelines
IEEE 1219-1998 details guidelines for a software maintenance plan in eight steps which improve administration and communication. The first four steps are introduction, references, definitions and software maintenance overview. The next four are software maintenance process, software maintenance reporting requirements, software maintenance administrative requirements and software maintenance documentation requirements.
- Photo Credit software box image by Dmitri MIkitenko from Fotolia.com
Types of Software Maintenance
Types of Software Maintenance. Computer software programmers and engineers perform various software maintenance functions to keep software running with as few problems...
Types of Software Applications Used by Engineers
Types of Software Applications Used by Engineers. Engineers use many types of software to create and test designs. The exact type of...
Definition of Nominal Bore
The bore is the hollow center of any pipe. Nominal is used in the sense of "in name only" or "putative"-- approximate....
Definition of Smart Appliances
Smart appliances utilize modern computer and communications technology to make functions faster, cheaper and more energy-efficient. The appliances can take advantage ...