1985年Lehman和Belady在专门研究了许多大型软件系统的发展和演化的基础上总结了软件在变更过程中的演化动态特征,具体包括:
(1)软件维护和演化是一个必然的过程。
现实世界在不断变化和发展,当系统的环境发生改变时,新的需求就会浮现。因此为了适应变化的环境需要,继续发挥其应有的作用,软件系统也必须根据需要不断地进行维护和演化。当修改后的系统重新投入使用,又会促使环境的改变,于是演化过程进入循环。
(2)软件的不断修改会导致软件的退化。
随着系统的改变,其结构在衰退。因此,为了能够防止退化的发生。必须增加额外的成本以改善软件的结构和质量。这样,在实现必要的系统变更成本上又会增加额外的支出。
(3)软件系统的动态特性是在开发过程的早期建立起来的。
软件的规模限制着自身发生的变更,由于较大的变更会引入更多的缺陷,因而限制了新版本的演化有效程度。这也决定了系统维护过程的总趋势以及系统变更可能次数的极限——系统一旦超过某个最小规模就会变得难以变更。
(4)资源和人员的变化对系统长期演化的影响是不易察觉的。
在大型软件项目开发中,团队成员数量的增加不一定就能提高软件的开发效率。
(5)在软件系统中添加新的功能不可避免地会产生新的缺陷。