Even after the software product being delivered, if required and desired, changes and updating are done for the software product. This is known as software maintenance. Once the software product is delivered, it needs to be changed for different reasons. Some of them are as follows:
Depending on the nature of the software product, the maintenance system adopted may change or vary. It can be either a routine maintenance or may be maintenance for a specific purpose. Some of the different types of software maintenance are as follows -
It is studied by the research that, the cost of the maintenance of the software is almost 67% of the cost of the development of the software product.
If estimated the cost of maintenance, phase-wise, it is noted that for all phases of SDLC, the average cost of software maintenance at all stages is more than 50% of the cost of software product.
The increase in the software maintenance cost is may be due to some of the following factors.
All the different activities of the software maintenance are structured within a framework issued by IEEE. The framework is made flexible such that some of the customized items can be added.
The different activities of the software maintenance are as follows -
A hard copy of the user manual is provided along with training as desired.
Without changing the core functions of the software product, the software system is updated to go along with the present outside environment, which is known as software re-engineering. By software re-engineering, the design and the programs of the software are changed.
It is not possible to update the legacy software. The updation of the software is associated with the hardware becoming obsolete. The functionality of the software does not change, even if the software turns to be old.
For instance, Unix language was initially developed in assembly language. Later as the C language was developed, considering the problems associated working in assembly language, UNIX was re-engineered into C.
In some instances, only some parts of the software calls for more maintenance than other parts.
The process of Re-Engineering works as follows -
The different and important terminology used in software re-engineering is as follows -
The existing system is understood in detail and then it is analyzed, which is known as reverse engineering. It means that the lower abstraction levels are analyzed first and then the higher level is analyzed.
For the software system that is in existence, the code is examined and analyzed and then the design is obtained by the process of re-engineering. By abstraction the design, the specification can be drawn, thus moving from the code to design and from design to specifications.
The source code of the existing software is re-arranged from one programming language to other language or also can be re-arranged in without changing the language, and thus the existing program is re-structured and re-constructed which is known as program restructuring. Source code re-structuring and data re–structuring both together constitute program restructuring.
The software is enabled to more reliable by re-structuring the program. The functionality of the software program is not affected by the process of program restructuring. Program restructuring facilitates in altering the error causing program components.
Restructuring enables to eradicate the software dependency on the hardware.
The concept of reverse engineering helps in identifying the specifications for the existing system by the codes. By using these specifications, the desired software is developed in accordance with the current technological changes, which is known as forward engineering. Forward engineering is based on the concept that the software engineering was already incorporated for the existing product.
Both software engineering and forward engineering are similar, except that that forward engineering is performed after incorporating reverse engineering.
A module or sub-module of a software product is known as a component which is used for the task execution.
For instance, the components are the login credentials for a web browser and the software component is software print.
The components are basically independent in nature. Without depending on other modules, tasks are performed by the components individually.
The objects that are designed by Object Oriented Programming are only specific to that particle program and hence they are least used in other software programs.
The modules or the objects designed by modular programming are intended for specific task performance, but they can be used by other software programs as well.
At various levels of the software product development, the activity of re-use can be incorporated.
The process of reusing can be done in two different ways. The first method is to adjust the component s by maintaining the same requirements and the second method is to adjust the requirement by maintaining the same component.
Software Engineering Related Interview Questions
|Java Script Interview Questions||ASP.NET Interview Questions|
|MySQL Interview Questions||Manual Testing Interview Questions|
|Artificial Intelligence Interview Questions||Java Interview Questions|
|Software testing Interview Questions||Test Cases Interview Questions|
|Software Development Lifecycle (SDLC) Interview Questions||Software Process Engineer Interview Questions|
|Software Architecture and Design Interview Questions|
Software Engineering Tutorial
All rights reserved © 2018 Wisdom IT Services India Pvt. Ltd
Wisdomjobs.com is one of the best job search sites in India.