软件工程 – 开发模型
为了指导软件开发,可以用不同的方式将软件生命周期中的所有开发活动组织组织起来从而形成不同的开发模型。
瀑布模式
瀑布模型严格遵守软件生命周期各阶段的固定顺序:计划、分析、设计、编程、测试和维护,上一阶段完成才能进入到下一阶段,整个模型像一个飞流直下的瀑布一下,如图所示
快速原型模型
优缺点:
- 优点: 克服瀑布模型的缺点,减少由于软件需求不明确带来的开发风险。
- 缺点: 所选用的开发技术和工具不一定符合主流的发展;快速建立起来的系统结构加上连续的修改可能会导致产品质量低下。
原型类型:
- 探索型原型: 目的是要型清用户的需求,确定所期望的特性,并探索各种方案的可行性。它主要针对开发目标模糊,
- 实验型原型: 主要用于设计阶段,考核;实现方案是否合适,能否实陋
- 演化型原型: 主要用于及早向用户提交一个原型系统,该原型系统或者包含系统的框架,或者包含系统的主要功能,在得到用户的认可后,将原型系统不断扩充演变为最终的软件系统
原型的运用方式:
- 抛弃策略是将原型用于开发过程的某个阶段,促使该阶段的开发结果更加完整、准确、一致、可靠,该阶段结束后,原型随之作废。探索型和实验型就是采用此策略的。
- 附加策略是将原型用于开发的全过程,原型由最基本的核心开始,逐步增加新的功能和新的需求,反复修改反复扩充,最后发展为用户满意的最终系统,演化型快速原型就是采用此策略
模型:
喷泉模型
优点:
- 喷泉模型不像瀑布模型那样,需要分析活动结束后才开始设计活动,设计活动结束后才开始编码活动.该模型的各个阶段没有明显的界限,开发人员可以同步进行开发.其优点是可以提高软件项目开发效率,节省开发时间,适应于面向对象的软件开发过程.
缺点:
模型:

演化模型
思想:
- 演化模型主要针对事先不能完整定义需求的软件开发.用户可以给出待开发系统的核心需求,并且当看到核心需求实现后,能够有效地提出反馈,以支持系统的最终设计和实现
开发顺序:
- 根据用户的核心需求,设计,编码,测试,后提交用户
- 精化:根据以能满足用户核心需求的核心系统上,增加用户反馈的其他全部功能
优点:
- 任何功能一经开发就能进入测试以便验证是否符合产品需求
- 开发中的经验教训能反馈应用于本产品的下一个循环过程,大大提高质量与效率
- 大大有助于早期建立产品开发的配置管理
缺点:
- 主要需求开始并不完全弄清楚的话,会给总体设计带来困难及削弱产品设计的完整性,并因而影响产品性能的优化及产品的可维护性
- 缺乏严格过程管理的话,这生命周期模型很可能退化为“试-错-改”模式
- 不加控制地让用户接触开发中尚未测试稳定的功能,可能对开发人员及用户都产生负面的影响
提供几个习题来测试
1、某公司计划开发一种产品,技术含量很高,与客户相关的风险也很多,则最适于采用( )开发过程模型。
A.瀑布
B.原型
C.增量
D.螺旋
2、某公司要开发一个软件产品,产品的某些需求是明确的,而某些需求则需要进一步细化。由于市场竞争的压力,产品需要尽快上市,则开发该软件产品最不适合采用( )模型。
A.瀑布
B.原型
C.增量
D.螺旋
3、( )开发过程模型最不适用开发初期对软件需求缺乏准确全面认识的情况。
A.瀑布
B.演化
C.螺旋
D.增量
习题答案
1.、D 所给出的这些模型中仅有螺旋模型考虑风险因素。
2、 A 瀑布模型(Waterfall Model) 是一个项目开发架构,开发过程是通过设计一系列阶段顺序展开的,从系统需求分析开始直到产品发布和维护,每个阶段都会产生循环反馈,因此,如果有信息未被覆盖或者发现了问题,那么最好 “返回”上一个阶段并进行适当的修改,项目开发进程从一个阶段“流动”到下一个阶段,这也是瀑布模型名称的由来。包括软件工程开发、企业项目开发、产品生产以及市场销售等构造瀑布模型。
3、A 瀑布模型是一种经典的开发模型,开发过程是通过设计一系列阶段顺序展开的,从系统需求分析开始直到产品发布和维护,每个阶段都会产生循环反馈,因此,如果有信息未被覆盖或者发现了问题,那么最好 “返回”上一个阶段并进行适当的修改,项目开发进程从一个阶段“流动”到下一个阶段,这也是瀑布模型名称的由来。
瀑布模型的突出缺点是不适应用户需求的变化。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!