软件系统在交付之后仍然在不断的演化,即进入软件的运行维护阶段,以保证软件长期处于可用状态,并能够适应实际业务的不断变化。软件在更改过程中的演化特征:1.软件维护是一个必然的过程2.软件的不断修改会导致软件的退化3.软件系统的演化特性是在早期的开发阶段建立起来的4.软件开发的效率与投入的资源无关5.在软件系统中添加新的功能不可避免的会产生新的缺陷。对于软件变更引起的各种问题,可采用软件维护和软件再工程进行处理。软件维护是指在软件运行或维护阶段对软件产品所进行的修改,软件维护可以分成三种类型:改正性维护;适应性维护;完善性维护。软件维护的特点:1.软件维护受开发过程影响大2.软件维护困难多3.软件维护成本高。软件维护工作包括建立维护组织、报告与评估维护申请、实施维护流程等步骤。软件再工程以系统理解为基础,结合逆向工程、重构和正向工程等方法,将现有系统重新构造成为新的形式。典型的软件再工程过程模型主要包括对象选择、反向工程、文档重构、代码重构、数据重构和正向工程等活动。