Sinse we have discussed different topics about software we haven´t had the chance to discuss about Software Maintenance.
We mention this in SDLC, did you remember this?
Maintenance is an important part of the Software process. This refers to keep tracking all the upgrades, updates and changes a code or software experiments and keep developing on them. We have also mentioned how Open Source Software makes life of some developers easier. And maintenance is agood example of and advantage of Open Source as we comented before.
But, this maintenance has a cost, the most elevated of the SDLC process.
The maintenance can be done due to the need of upgrade, the chance to make more reliable or efficient the product or for bugs appeared.
IEEE provides a framework for sequential maintenance process activities. It can be used in iterative manner and can be extended so that customized items and processes can be included.
- Identification – identification of requirement of modification or maintenance.
- Analysis – The modification is analyzed for its impact on the system including safety and security implications.
- Design – New modules, which need to be replaced or modified, are designed against requirement specifications set in the previous stage.
- Implementation – The new modules are coded with the help of structured design created in the design step.Every programmer is expected to do unit testing in parallel.
- System Testing – Integration testing is done among newly created modules. Integration testing is also carried out between new modules and the system. Finally the system is tested as a whole, following regressive testing procedures.
- Acceptance Testing – After testing the system internally, it is tested for acceptance with the help of users.
- Delivery – After acceptance test, the system is deployed all over the organization either by small update package or fresh installation of the system. The final testing takes place at client end after the software is delivered.
- Maintenance management – Configuration management is an essential part of system maintenance. It is aided with version control tools to control versions, semi-version or patch management.
This info have been retrieved from: https://www.tutorialspoint.com/software_engineering/software_maintenance_overview.htm
Is a really really good page to found info about Software Maintenance and other topics!