软件维护及可维护性的基本概念

软件维护是指:
Software maintenance in software engineering is the modification of a software product after delivery to correct faults, to improve performance or other attributes.

软件维护是一种evolution的过程: Lehman demonstrated that systems continue to evolve over time. As they evolve, they grow more complex unless some action such as code refactoring is taken to reduce the complexity.  Lehman还提出了软件evlution的Lehman’s Laws.

As it evolves, the complexity of the system will grow unless there is a better solution available to solve these issues.
The main objectives of software evolution are ensuring the reliability and flexibility of the system.

软件维护的重要性:So software maintenance is important because it consumes a large part of the overall lifecycle costs and also the inability to change software quickly and reliably means that business opportunities are lost.

软件的维护活动可以分为四大类,互联网及企业应用的开发者最关注第2项:

     Adaptive – dealing with changes and adapting in the software environment

    
Perfective – accommodating with new or changed user requirements which concern functional enhancements to the software

     Corrective – dealing with errors found and fixing it

     Preventive – concerns activities aiming on increasing software maintainability and prevent problems in the future

“可维护性”即维护的难易程度(the ease with which a product can be maintained).保证可维护性具体可体现为 help reduce or reverse a system’s tendency toward "code entropy" or degraded integrity

所谓的entropy是指:

The tendency for software, over time, to become difficult and costly to maintain. A software system that undergoes continuous change, such as having new functionality added to its original design, will
eventually become more complex and can become disorganized as it grows, losing its original design structure. In theory, it may be better to redesign the software in order to support the changes rather than building on the existing program, but redesigning the software is more work because redesigning the existing software will introduce new bugs and problems.

出处:

  1. 维基百科

  2. 
http://www.webopedia.com/TERM/S/software_entropy.html

Leave a Comment

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.