首页 文章 软件测试——1.1.2 软件开发模型

软件测试——1.1.2 软件开发模型

2024-11-20 11:12  浏览数:46  来源:小键人14848346    

软件测试工作与软件开发模型息息相关,在不同的软件开发模型中,测试的任务和作用也不相同,因此测试人员要充分了解软
件开发模型,以便找准自己在其中的定位与任务。软件开发模型规定了软件开发应遵循的步骤,是软件开发的导航图,它能够
清晰、直观地表达软件开发的全过程,以及每个阶段要进行的活动和要完成的任务。开发人员在选择开发模型时,要根据软件
的特点、开发人员的参与方式选择稳定可靠的开发模型。自有软件以来,软件开发模型也从最初的“边做边改”发展出了多个
模型,下面以软件开发模型发展历史为顺序,介绍几个典型的开发模型。
1.瀑布模型
瀑布模型是W.W.罗伊斯(W.W.Royce)于1970年提出的软件开发模型,
由模型名称可知该模型遵循从上至下一次性完成整个软件产品的开发方式。
瀑布模型将软件开发过程分为6个阶段:计划→需求分析→软件设计→编码→测试→运行维护。在瀑布模型中,软件开发的各
项活动严格按照这条线进行,只有当一个阶段任务完成之后才能开始下一个阶段。软件开发的每一个阶段都要有结果产出,结
果经过审核验证之后作为下一个阶段的输入,下一个阶段才可以顺利进行。如果结果审核验证不通过,则需要返回修改。瀑布
模型为整个项目划分了清晰的检查点,当一个阶段完成之后,只需要把全部精力放在后面的开发上即可,它有利于大型软件开
发人员的组织管理及工具的使用和研究,可以提高开发的效率。但是瀑布模型是严格按照线性方式进行的,无法适应用户需求
变更,用户只能等到最后才能开到开发结果,增加了开发风险。如果开发人员与客户对需求理解有偏差,到最后开发完成后,
最终成果与客户需求可能会差之千里。使用瀑布模型开发软件时,如果早期犯的错误在项目完成后才发现,此时再修改原来的
错误需要付出巨大的代价。瀑布模型要求每一个阶段必须有结果产出,这就势必增加了文档的数量,使软件开发的工作量变大
。除此之外,对于现代软件来说,软件开发各阶段之间的关系大部分不会是线性的,很难使用瀑布模型开发软件,因此瀑布模
型不再适合现代软件开发,已经被逐渐废弃。
2.快速原型模型
快速原型模型与瀑布模型正好相反,它在最初确定用户需求时快速构造出一个可以运行的软件模型,
这个软件模型向用户展示待开发软件的全部或部分功能和性能,客户对该原型进行审核评价,然后给出更具体的需求意见,
这样逐步丰富细化需求,最后开发人员和客户达成最终共识,确定客户的真正需求。
确定客户的真正需求之后,开始真正的软件开发。
快速原型模型类似于建造房子,确定客户对房子的需求之后快速地搭建一个房子模型,由客户对房子模型进行评价,
房子的样式、功能、布局等是否满足需求,哪里需要改进等,一旦最后确定了客户对房子的要求,就开始真正地建造房子。
与瀑布模型相比,快速原型模型克服了需求不明确带来的风险,适用于不能预先确定需求的软件项目。
但快速原型模型关键在于快速构建软件原型,准确地设计出软件原型存在一定的难度。
此外,这种开发模型也不利于开发人员对产品进行扩展。
3.迭代模型
迭代模型由称为增量模型或演化模型,它将一个完整的软件拆分成不同的组件,然后逐个组件地开发测试,
每完成一个组件就展现给客户,让客户确认这一部件功能和性能是否达到客户需求,
最终确定无误,将组件集成到软件体系结构中。整个开发工作被组织为一系列短期、简单的小项目,称为一些列迭代,
每一个迭代都需要经过需求分析→软件设计→编码→测试的过程。在迭代模型中,
第一个迭代往往是软件基本需求的核心部分,第一个组件完成之后,经过客户审核评价形成下一个组件的开发计划,
包括对核心产品的修改和新功能的发布,这样重复迭代步骤直到实现最终完善的产品。
迭代模型可以很好地适应客户需求变更,它逐个组件地交付产品,客户可以经常看到产品,如果某个组件没有满足客户需求,
则只需要更改这一个组件,降低了软件开发的成本和风险,因此要求软件必须有开放式的体系结构。
此外,迭代模型逐个组件地开发修改,很容易退化为“边做边改”的开发形式,从而失去对软件开发过程的整体控制。
4.螺旋模型
螺旋模型由巴利·玻姆(Berry Boehm)于1988年提出,该模型融合了瀑布模型、快速原型模型,、
它最大的特点是引入了其他模型所忽略的风险分析,如果项目不能排除重大风险,就停止项目从而减小损失。
这种模型比较适合开发复杂的大型软件。
螺旋模型将整个项目开发过程划分为几个不同的阶段,每个阶段按部就班地执行,这种划分方式采用了瀑布模型。
每个阶段在开始之前都要进行风险评估,如果能消除重大风险则可以开始该阶段任务。
在每个阶段,首先构建软件原型,根据快速原型模型完成这个迭代过程,产出最终完善的产品,然后进入下一阶段。
同样下一阶段开始之前也要进行风险评估,这样循环往复直到完成所有阶段的任务。
螺旋模型的若干个阶段是沿着螺线方式进行的。螺线经过四个象限:制定计划、风险分析、实施工程、客户评估,
各象限含义如下:
(1)制定计划:确定软件目标,制定实施方案,并且列出项目开发的限制条件;
(2)风险分析:评价所制定的实施方案,识别风险并消除风险;
(3)实施工程:开发产品并进行验证;
(4)客户评估:客户对产品进行审核评估,提出修改建议,制定下一步计划。
在螺旋模型中,每一个迭代都需要经过这4个步骤,直到最后得到完善的产品进行提交。
螺旋模型强调了风险分析,这意味着对可选方案和限制条件进行了评估,有助于将软件质量作为特殊目标融入产品开发中。
它以小分段构建大型软件,是成本计算变得简单,而且客户始终参与每个阶段的开发,保证了项目可控不偏离正确方向。



声明:以上文章均为用户自行添加,仅供打字交流使用,不代表本站观点,本站不承担任何法律责任,特此声明!如果有侵犯到您的权利,请及时联系我们删除。

字符:    改为:
去打字就可以设置个性皮肤啦!(O ^ ~ ^ O)