先上一张图,软件工程第一章的导图
运作方式 :
1>在这个模型中,开发人员首先根据项目编写程序,调试生成第一版;
2>然后提供给用户使用,用户提出新的要求,开发人员重新修改代码,直到用户满意。
优点:
这种方法类似于作坊式的开发,适合于小程序开发。
缺点:
1>缺少规划和设计环节;
2>忽略需求环节,给软件带来很大风险;
3>忽略测试和软件的可维护性,也没有任何文档,软件维护困难。
特点:
1>阶段间具有顺序行和依赖性,前一阶段完成才能开始后一阶段,
2>每一阶段都有文档,可以在一定程度保证质量
缺点:
1>各阶段划分固定,阶段间产生大量文档,极大的增加了工作量
2>用户只有在整个项目完成才能见到产品,增大了风险。
3>早期的错误可能要等到后期测试才能发现,可能带来严重后果。
运用方式:
1>建造一个快速原型,用户评价,进一步细化开发需求
2>第二步是在第一步的基础上开发用户满意的软件产品
优点:
克服瀑布模型的缺点,减少由于软件需求不明确带来的开发风险。
缺点:
所选用的开发技术和工具不一定符合主流的发展;快速建立起来的系统结构加上连续的修改可能会导致产品质量低下。
原型类型:
探索型原型:目的是要型清用户的需求,确定所期望的特性,并探索各种方案的可行性。它主要针对开发目标模糊,
实验型原型:主要用于设计阶段,考核;实现方案是否合适,能否实陋
演化型原型:主要用于及早向用户提交一个原型系统,该原型系统或者包含系统的框架,或者包含系统的主要功能,在得到用户的认可后,将原型系统不断扩充演变为最终的软件系统
步骤:
1>第一个增量往往是实现基本需求的核心产品
2>第二个增量发布更加完善的编辑和文档生成功能
3>第三个增量实现拼写和文法检查功能
4>第四个增量完成高级的页面布局功能
优点:
1>短时间内向用户提供可完成部分工作的产品
2>逐步增加产品功能可以使用户有时间了解和适应新产品
3>开放结构的软件拥有的维护性明显好于封闭结构的软件
缺陷:
1>容易退化为边做边改模型,从而使软件过程的控制失去整体性
2>如果增量包之间存在相交的情况且未很好处理,则必须做全盘系统分析
四象限锁代表的活动:
1>制定计划:确定软件目标,选定实施方案,弄清项目开发的限制条件
2>风险分析:分析评估苏所选方案,考虑如何识别和消除风险
3>实施工程:实施软件开发和验证
4>客户评估:评价开发工作,提出修正建议,指定下一步计划
优点:
将瀑布模型和快速还原模型结合起来,强调了其他模型所忽视的风险分析,特别适合于大型复杂的软件
缺点:
1>强调风险分析,要求客户接受和相信这种风险,这是很难的,因此,适合于内部的大规模开发
2>执行风险分析大大影响利润,只适合大规模软件项目开发
优点:
1>喷泉模型不像瀑布模型那样,需要分析活动结束后才开始设计活动,设计活动结束后才开始编码活动.该模型的各个阶段没有明显的界限,开发人员可以同步进行开发.其优点是可以
2>提高软件项目开发效率,节省开发时间,适应于面向对象的软件开发过程.
缺点:
由于喷泉模型在各个开发阶段是重叠的,因此在开发过程中需要大量的开发人员,因此不利于项目的管理.此外这种模型要求严格管理文档,使得审核的难度加大,尤其是面对可能随时加入各种信息、需求与资料的情况.
智能模型拥有一组工具(如数据查询,报表生成,数据处理,屏幕定义,代码生成等)每个工具都能使开发人员在高层次上定义软件某些特性,并把开发人员定义的这些软件自动生成源代码。但这种方法需要第四代语言(4GL)支持。
把几种不同模型组合成一种混合模型,它允许项目沿着最有效的路径发展,一些软件开发单位都是使用几种不同的开发方法组成他们自己的开发模型。
面向过程与面向对象举例比较