一、软件工程的生命周期:
1.立项
2.需求分析
3.概要设计
4.编码实现
5.软件测试
6.软件发布与实施
7.软件维护
8.版本更新或退役
二、开发模型:软件开发模型虽然多种多样,但是本质上可以归纳为两大类:瀑布类型和迭代类型。
1.瀑布模型,又称为流水式过程模型,他可以形象地用阶梯瀑布描述,水由上向下一个阶梯接着一个阶梯地倾泻下来,最后进入一个风平浪静的大湖。它认为项目经历或者管理人员,只需要控制好每级台阶的高度和宽度,在每个台阶处设立里程碑或基线,并组织好对基线的评审与审计,就可以控制好项目的开发成本、进度、质量。
瀑布模型很适用于结构化方法,优点是:开发阶段清晰,便于评审、审计、跟踪、管理和控制。缺点是:过程逆转性很差或者说不可逆转。
2.增量模型:遵循递增方式来进行软件开发。软件产品被作为一组增量构建(模块),每次设计、实现、集成、测试和交付一块构件,直到所有构件全部实现为止。
开发一个大的系统,先开发其中一个核心模块,然后在开发其他模型,这样一个个模块增加上去,就像搭积木一样,直至整个系统开发完毕。
优点:将一个大系统分解为多个小系统,这就等于将一个大风险分解为多个风险,从而降低了开发难度。缺点:如果软件的组装和拆卸性不强,或者开发人员全部把握水平不高,或者客户不同意分阶段提交产品,或者开发人员过剩,则不宜采用这种模型。
3.RUP(迭代模型的代表):迭代或迭代循环驱动,每一次迭代或迭代循环,均要走完初始(确定系统的业务用况)、精华(分析问题域,细化产品定义)、构建(反复开发,以完善产品)、移交(交付给用户)4个阶段。
4.原型模型:在初步需求分析之后,马上向客户展示一个软件产品原型,对客户进行培训,让客户试用,在试用中收集意见,改进。
优点:开发速度快,用户意见反馈实时,有利于开发商在短时间内推广并实施多个客户。
快速原型法:采用面向数据为主的方法,在需求分析的基础上,利用ER Win或PD等数据库分析和设计工具,快速建立信息系统的概念数据模型(CDM)和物理数据模型(PDM);然后利用面向对象的变成工具,在企业软件强大的类库,构建库的支撑下,快速地实现需求分析中确认的流程、功能、性能和接口。之后交付给用户试用。