原文:http://kns.cnki.net/KCMS/detail/detail.aspx?dbcode=CMFD&dbname=CMFDTEMP&filename=1018113724.nh&uid=WEEvREdxOWJmbC9oM1NjYkZCbDdrdW1OMHFOWjU2SkVEL3BoNTBMRUVEN2k=$R1yZ0H6jyaa0en3RxVUd8df-oHi7XMMDo7mtKT6mSmEvTuk11l2gFA!!&v=MDY3NDIxTHV4WVM3RGgxVDNxVHJXTTFGckNVUkxPZlkrWnNGeURuVWIzTlZGMjZGcks1SGRiT3E1RWJQSVI4ZVg=
软件演化是一个软件系统不断调节变化从而满足开发需求的过程,演化的过程在整个软件生命周期中都会出现。软件演化在软件工程领域是一个非常重要的概念。一般情况下,软件演化表示在软件系统的生命周期中为了完成新的目标以及需求而对软件进行更新和维护的动态的过程。软件需求的变更、算法的使用、运行环境的改变、功能的加强或删除等都会造成软件系统的不断变化,这些变化就需要软件系统具有较强的演化特性,随之而来的便是对软件演化的描述和理解变得越来越困难和复杂。因此,软件演化的分析研究在软件工程领域具有重要意义。
自20世纪70年代以来,软件工程的研究者对于软件演化的分析方法,从很多方面进行分析。目前已经出现了很多软件演化的分析方法,总体主要分两个角度来对软件演化进行分析,一种是从软件设计层面即开发文档对演化进行分析,另一种是在软件代码层面对演化进行分析。从设计层面角度看,更多的是关于软件较高层次的设计,考虑整个软件体系结构的正确性和框架方面质量的演化过程。从代码层面角度看,通过对代码质量的分析能够直接的发现代码中存在的问题,利于开发人员对软件的理解。传统的软件分析是基于单个版本的软件分析,而软件演化分析则是通过观察软件的多个版本来发掘和分析程序的变化模式。
目前,对于软件演化的理论和技术,国内外已经展开了普遍的研究。其中,比较有代表性的主要包括以下几个方面:
- 使用图模型对软件演化进行研究。
- 使用软件体系结构对软件演化进行研究。
- 使用代码历史版本库对软件演化进行研究。
- 软件许可证