件开发系统研发涉及的内容比较复杂,可以包括生命周期模型、形式化流程、配置管理、各种运筹学工具(PERT、GERT等)以及各种风险评估技术等,但其核心思想却很简单,引用亚历山大的名言就是分而治之(divideandconquer), 即先把系统分解为适当的模块并分别进行开发或采购,再把各个模块集成起来,从而完成整个系统的开发。
以下简单介绍一下系统工程的结构化生命周期模型,作为我们后面讨论软件工程结构化生命周期模型的基础。结构化生命周期模型也称为瀑布模型(waterfallmodel) ,它从提出需求直到系统报废为止,刻画了一个工程系统工程从起始到完成的整个周期,是系统工程中最常用的生命周期模型。本书采用的瀑布模型包括需求分析、系统设计、子系统开发、系统集成、系统安装、系统演化和系统退役共七个阶段,如图1所示。
图1系统工程生命周期模型的瀑布模型
1)需求分析(requirementsanalysis) 阶段。需求分析也称为需求定义。需求定义的内容包括对功能需求和非功能需求的定义,后者包括前面介绍软件质量属性时谈到的有效性、可靠性、鲁棒性、可伸缩性、可维护性等。需求定义也可以采用“减法’形式,即给出不符合需求的系统特征以及不可接受的系统行为。
2)系统设计(systemdcsign) 阶段。如上所述,系统工程的核心思想是分而治之,系统设计阶段完成的主要任务就是系统的分解。这- -阶段的任务还包括子系统及其接口的定义以及系统的总体需求在各子系统中的分配。
3) 子系统开发(sub-systemdevelopment) 阶段。子系统开发阶段可包括多个并行的子系统开发项目,一般需要引入关键活动路径识别等方法对各子系统的开发时序进行规划,从而实现对整个系统开发进度的控制。在很多情况下,通过COTS (CommercialOff-The-Shelf, 现货软件)采购有利于加快开发进度,节省开发经费。
4)系统集成(systemintegration)阶段。在这个阶段中,要根据系统的设计方案,把由上
一阶段获得的子系统合并,组成一个完整的系统,并进行联调与测试。系统集成阶段有时也称为系统的场外联试阶段。
5) 系统安装(systemintallation) 阶段。许多系统经过集成联调和测试后,需要拆分运到现场,并在现场(即系统真正发挥效用的环境中)重新安装就位。这个过程就是系统安装阶段,有时称为系统的现场联试阶段。在这个阶段中,往往会暴露—些未预见或不可预见的问题,包括物理不相容性问题、界面协调性问题以及数据转换问题等。这些问题一般是由于设计阶段对系统运行环境所作的假设不正确而引起,多数可以采取弥补措施加以解决。不过,若在这个阶段出现无法解决的问题,则有可能导致前功尽弃,即整个系统开发完全失败或部分失败。这是结构化生命周期模型的-个重要弱点。
6)系统演化(systermevolution) 阶段。引入系统演化阶段的目的是延长系统的生命周期,提高系统的效益。大型系统往往需要巨额投资,-般都具有较长的预期生命周期。但随着需求的变化和其他新系统的引入,系统与其运行环境之间的耦合可能出现一些无法预测的问题,因而需要进行必要的修改,这就是系统演化。系统演化过程是有限的。-方面,演化代价将随着系统寿命期的延长和原始设计资料的流失而迅速上升;另-方面,系统经过反复修改之后,其基本结构逐渐被破坏,继续保留其残余部分将失去意义。
7)系统退役(systemdecomissioning) 阶段。系统退役阶段指一-个系统停止服务,并从
其工作环境中被去除的过程。系统退役阶段也有许多重要的工作需要完成,例如:处理系统中可能污染环境的材料,回收系统中可以循环利用的部件甚至模块,销毁敏感数据等。