软件工程过程学习笔记

软件工程过程是为了提高软件质量而需要完成的一系列任务框架,它规定了完成各项任务的工作步骤。

 

软件生命周期的划分:

 

·问题定义:“要解决的问题是什么”

·可行性分析:“是否值得去做”,考虑用最少的成本完成

·需求分析:“做什么”,产生需求说明(或叫需求规格说明)

·概要设计:“怎样做”,并且要设计程序的体系结构

·详细设计:“具体怎么做”,包括必要的细节,程序员据此可以写出程序

·编码与单元测试:选择一种语言进行编码

·综合测试:分为集成测试和验收测试(或者叫做组装测试和确认测试)

·软件维护:分为改正性维护,适应性维护,完善性维护和预防性维护,每一项维护活动应该以文档的形式准确记录下来

 

通过对软件测试结果的分析可以预测软件的可靠性;反之,根据对软件可靠性的要求,可以决定测试和调试过程什么时候结束。

 

在实际从事软件开发工作时,软件规模、种类、开发环境以及开发时使用的技术方案都会影响阶段的划分。一个科学、有效的软件过程应该定义一组适用于所承担的项目特点的任务集合。一个任务集合通常包括一组软件工程工作任务、里程碑和应该交付的产品(软件配置成分)

 

生命周期模型规定了把生命周期划分为哪些阶段以及各个阶段的执行顺序,因此也叫做过程模型。

 

瀑布模型和快速原型模型的主要区别是获取用户需求的方法不同。

 

1、瀑布模型

       特点:

              ·阶段间具有顺序性和依赖性——后一个阶段的开始必须等前一个阶段结束,前一个阶段的输出文档作为下一个阶段的输入文档

              ·推迟实现的观点——不要过早编码

              ·它是文档驱动的

              ·质量保证的观点——每个阶段都必须交出一份合格的文档

       不足:

              ·过于理想化——实际工作中不可能不犯错误,实际的瀑布模型是带反馈环的

              ·文档驱动使得用户只能通过文档来了解产品的样貌,最终开发出来的产品可能无法满足用户的真实需求

       长处:

              ·强迫开发人员采用规范化的方法

              ·严格规定每个阶段必须提交文档

              ·要求每个阶段交出所有的产品都必须进过质量保证小组的仔细验证

 

 

2、快速原型模型

       概述:

快速建立一个可以在计算机上运行的程序,它的功能往往是目标系统的功能子集。开发人员通过让用户试用该原型,并让用户提出修改的意见,从而快速掌握用户的真实需求。

       特点:

开发过程基本是线性的,理由是

1、             原型系统已经通过与用户的交互得到验证,据此产生的规格文档正确地描述了用户的需求。

2、             开发人员已经知道系统该做什么,不该做什么

注:

快速原型模型的本质是快速。开发人员应该尽可能快的构造出一个原型系统,以加速软件开发的过程,节约成本。原型的用途是获取用户的真正需求,一旦需求确定了,原型将被抛弃。因此,原型系统的内部结构不重要,重要的是必须迅速构建原型,然后根据用户的意见进行修改。当快速原型的部分模块是利用软件工具自动产生的时候,可以把这部分用到最终的产品中。

 

 

3、增量模型

       概述:

              使用增量模型开发软件的时候,把软件产品作为一系列的增量构件来设计,编码和测试。每个构件由多个相互作用的模块构成,并且能够完成特定的功能。使用增量模型时,第一个增量往往实现软件的基本需求,提供最核心的功能。

       将一个软件分解成若干个构件时,必须遵守如下的准则:当把新构件集成到现有软件中时,所形成的产品必须是可测试的。

       优点:

              能在较短的时间内向用户提交可完成一些有用的工作产品

      

缺点:

       必须把软件设计得非常灵活,开发,使得容易修改,方便维护和测试,也就是必须满足“开-闭”原则。

 

事实上,使用增量模型开发的软件和扩充软件功能(完善性维护)并没有本质的区别,都是向现有产品中加入新的构件

 

 

4、螺旋模型

       产生缘由:软件风险是任何软件开发项目中都普遍存在的实际问题。软件风险可能在不同程度上损害软件开发过程和软件产品质量。因此在开发过程中必须及时识别和分析风险,并且采取适当的措施减少和消除风险。

       基本思想:使用原型和其他方法来尽量降低风险,并在每个阶段之前都增加了风险分析

优点:

       ·对可选方案和约束条件的强调有利于已有软件的重用

       ·有助于把软件质量作为软件开发的一个重要目标

       ·减少了过多的测试(浪费资金)或测试不足(产品故障多)带来的风险

       ·在螺旋模型中,维护只是模型的另一个周期,在维护和开发之间没有本质区别

       ·风险驱动

       缺点:

              ·风险驱动——当无法识别风险时

适用范围:

       内部大型项目

 

5、喷泉模型

       各阶段之间是迭代的。

 

转载于:https://my.oschina.net/aiguozhe/blog/39124

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值