首页 > 编程知识 正文

迭代流程图,迭代增量开发模型

时间:2023-05-05 09:25:03 阅读:143212 作者:2372

为什么我在这里主要讨论迭代软件开发? 在此,我们希望大家抛开千篇一律的理论,在多年实践的基础上,总结出一套比较实用、便于操作的方法,在有限的资源下,软件的质量有较大的保证。 全家的意见、纠纷的地方请多加指出。

迭代软件开发模型的简单流程如下。

在上图的绿色大框中,我们称之为迭代周期。 每次迭代可以形成可交付小版本。 事实上,对于编码和测试,也可以在每个迭代周期重复多次。 通过快速发布测试构建方式,验证开发完成的新功能,通过测试发现问题,推动开发人员修改完善软件,循环往复。 即根据开发情况有针对性地组织测试,根据测试结果使开发者改善软件质量。 通过这一小步快跑,经过几个测试构建后,软件质量能在较短的时间内达到稳定状态。

质量保证需要系统的方法。 那么,在迭代开发的各个阶段,需要采取什么样的措施呢?

1)需求

这个阶段的主要工作是制定和审查需求。 这个阶段的工作分为三个步骤。 收集原始需求-制定产品需求-产品需求评审。 具体来说,首先通过各种渠道收集原始需求。 大部分原始需求在概念上是模糊的,不能直接用于指导开发工作,所以需要进行分类、筛选,并集成到产品需求中。 基本原则是结合目前开发产品的特性,以最小的变更和最大的扩展性制定产品需求。 在降低风险的同时,提高灵活性。 经验表明,在没有充分考虑需求的情况下,如果不顺利地开始并实现设计,可能会耗费大量人力和精力。 产品需求制定后,需要进行审查。 请不要浪费时间进行审查。 磨刀人不要不小心砍柴。

2) 设计

此阶段的主要工作是将产品需求转化为设计需求,指导后续编码工作。 软件业有句老话:软件的质量是经过设计的,迭代开发也是如此。 设计的好坏直接决定着软件质量的高低。 设计需求一般阐述了产品需求的详细设计方案,包括页面布局、数据结构、算法以及易用性、安全性、可扩展性、健壮性和性能等多个方面的设计思路。 即使让不同的开发者根据设计需求进行编码,所开发的功能也相差无几。 这样,设计的需求非常必要。 这意味着,在正式编码之前,必须根据要求创建相应的设计文档,以指导后续的编码工作。 这样做有两大好处。 一是在编码前能充分预见未来可能遇到的问题,提前规避风险。 二是完善开发工作框架,降低开发过程中因开发者差异导致的不确定性,避免“千人心中有千人需求的理解”。

3) 编码

此阶段的主要工作是严格按照设计需求完成编码并组织代码审查。 所有的代码都是软件大楼的瓷砖,拒绝豆腐渣工程,所以很重视所有的代码。 进行代码审核可以有效地保证代码的质量,利用一些IT管理工具可以方便地进行代码审核和代码管理。 笔者曾使用青铜器RDM软件进行代码审核(CodeReview ),非常方便。 代码审查的重点不仅仅是表面,而是审查程序的结构,发现深刻的软件错误。 此外,在进行代码审查时,最好按代码的“提交”单位进行审查。 这假定每个“提交”都包含相对完整的功能。 对于迭代开发,每次编码-测试迭代都要尽量保证完成相对独立、可测试性强的功能点。

4) 测试

测试实质上是一项鉴定性的工作,是对软件质量的鉴定和最后的核查。 本阶段的主要工作是在各项测试构建中,覆盖尽可能多的需求点,根据轻重缓急合理安排测试优先级,尽快暴露出影响较大的缺陷。 测试的优先顺序请遵循以下原则。

a .测试更改后的部分,然后测试未更改的部分

b、先测试程序的核心功能,再测试一般功能

c、先测试逻辑功能,再测试业务功能

d、先测试正常情况,再测试异常情况

e、先测试功能,再测试性能

按照上述原则进行测试可以更快地发现更多软件的严重错误。 这是尽快稳定软件的重要因素之一。 另外,在每个迭代循环结束之前进行系统测试。

反复的编码-测试可以保证每个测试构建的新功能都没有问题,但整个软件系统的质量并没有得到充分的验证,系统测试就是为此应运而生的。 在释放前的最后冲刺阶段,“车轮战”是非常有效的手段之一。 也就是说,召集测试人员、开发人员等全面参与测试,将这些人员分成几个小组,每组分别测试系统。 通过多人测试每个测试模块,可以有效降低缺陷的漏诊率。 但是,开发者需要注意不要对自己开发的功能进行测试,也就是交叉测试。

软件质量保证的本质是使用几个过程、方法来管理软件开发过程,从而最大限度地保证最终交付的软件产品的质量。 同时,您会发现在整个产品开发过程中会生成很多数据,包括需求、设计文档、代码、测试用例和缺陷。 IT管理工具可有效提高工作效率,青铜器RDM提供完整的代码修订测试管理功能组合,用于管理需求、测试用例、缺陷和代码审核等。 在小规模的队伍中,已经

足够用了。


版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。