软件开发如何选择合适的生命周期模式?
作者:网络转载 发布时间:[ 2011/12/1 16:55:38 ] 推荐标签:
②演化模式:它主要是针对事先不能完整定义需求的软件开发。它的方法是用户先给出待开发系统的核心需求,并且在核心需求实现后,再提出反馈以支持系统的终设计和实现。也是说:开发人员首先会根据用户的需求开发核心系统,然后提供给用户试用;用户试用后再提出增强系统能力的需求;后开发人员再根据用户的反馈,实施迭代开发。实际上,这个模式可看作是重复执行的多个瀑布模式。演化模式要求开发人员把项目的产品需求分解为不同组,以便分批循环开发。但这种分组并不是随意性的,而是要根据功能的重要性及对总体设计的基础结构的影响而作出判断。
③螺旋模式:它是瀑布模式与演化模式相结合,并加入两者所忽略的风险分析所建立的一种软件开发模式。螺旋模式基本的做法是在瀑布模式的每一个开发阶段之前,引入非常严格的风险识别、风险分析和风险控制。直到采取了消除风险的措施之后,才开始计划下一阶段的开发工作。否则,项目很可能被暂停。另外,如果有充足的把握判断遗留的风险已降低到一定的程度,项目管理人员还可作出决定让余下的开发工作采用另外的生命周期模式,如演化模式,瀑布模式或自定的混合模式。
④过程开发模式:它又叫混合模式或元模式,是指把几种不同模式组合成一种混合模式,它允许一个项目能沿着有效的路径发展。因为上述的模式中都有自己独特的思想,现在的软件开发团队中很少说标准的采用那一种模式的,因为模式和实际应用还是有很大的区别的。实际上,许多软件开发团队都是在使用几种不同的开发方法组成他们自己的混合模式。
后,我们来总结一下。螺旋模式是典型的迭代式生命周期模式,而RUP则是近代迭代式生命周期的代表。与螺旋模式相比,RUP将风险管理放在更重要的地位。新的迭代式生命周期模式的代表是模式驱动架构(MDA)和敏捷(Agile)软件开发。MDA模式是基于可执行规格说明的思想,是现代转换模式的代表,其核心技术是组件技术。而敏捷开发生命周期的典型代表是XP编程,是把传统的系统设计和实现由敏捷软件开发过程中的验收测试、重构和测试驱动所取代;把传统的集成和部署由敏捷软件开发中的持续集成和短周期所取代。
其实上,无论是瀑布开发模式还是螺旋开发模式,软件生命周期模式的发展实际上是体现了软件工程理论的发展。在早的时候,软件的生命周期处于无序、混乱的情况。一些人为了能够管理和控制软件的开发过程,把软件开发严格的区分为多个不同的阶段,并在阶段间加上严格的审查,这是软件开发模式产生的起因。它们体现了人们对软件过程的一个希望:严格控制、确保质量。
如何选择合适的生命周期模式?
众所周知,在软件开发过程中如果缺乏适当的管理,终开发出来的软件产品质量是难以保证的。那么,在软件开发管理过程中,应该如何选择合适的软件开发生命模式工具呢?建议可参考以下几个步骤:
(1)评估软件开发范围和需求
当软件所有参与人员都能理解软件开发的范围和需求时,能为软件开发可能遇到的突发事情和未来变化建立一个技术基线。这个技术基线、基础规则和假设应该包含识别和评估软件的功能性。一般来说,在前期需求明确的情况下可尽量采用瀑布模式或改进型的瀑布模式。而在不确定性因素很多时或很多需求无法计划的情况下,应该尽量采用增量迭代模式或螺旋模式。
(2)确定软件开发规模和阶段划分
确定软件的开发规模是决定开发管理工具的重要一步,也是为关键的步骤。因为确定开发规模和阶段划分是明确软件开发生命周期的驱动动力,它可用来约束在开发过程中所采用的行动和资源,以及限制可以提供的选项。例如,对于规模小的建议采用瀑布模式;而在资金和成本无法一次到位情况下可以采用增量模式;而对于完全多个独立功能的开发可以在需求阶段分功能并行,但每个功能内可以遵循瀑布模式原则;而其他项目一般可采用迭代模式。
(3)选择合适的软件生命周期模式
一个定义良好的软件生命周期模式,可以很好的指导我们的开发工作,使漫长的开发工作易于控制。事实上,我们也可以任意定义自己喜欢的软件生命周期模式。但是,如果生命周期模式定义不合理,却会制约我们的开发过程。因此,选择一个软件开发模式不应当将其作为一次性的活动来考虑。因为随着开发项目的进展,未知内容会逐渐变为已知内容,并且新的和意料之外的问题和风险都会随之出现。所以,选择开发模式应该要根据实际情况来进行,然后在此基础上再加以裁减以作出适当的修改和改良。
(4)跟踪和度量开发模式的效率
在软件开发模式选定后,应该要定时跟踪和度量开发模式的效率。例如,记录那些相关的信息和得到的经验教训。通过这样做的目的是为了记录一个"佳开发模式"的选择过程,以获得选择开发模式的经验性。因此,跟踪信息应当被不断的收集起来,并且同原始模式和基线进行比较。如果执行情况出现效率低下或者明显的不同,那么校正开发模式应当被考虑进来并加以实施,从而将项目开发拉回到正确的轨道上来。
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11