- 开发模型
- 瀑布模型
- 螺旋模型
- 增量、迭代
- 敏捷开发模型
- 测试模型
- V模型
- W模型
开发模型
瀑布模型
瀑布模型的每一个阶段都只执行一次,是线性顺序进行的软件开发模式。
优点:每个阶段做什么;产生什么非常清晰;
缺点:风险往往在后期的测试阶段才显露;容易失去及早纠正的机会(在测试阶段才能发现问题;然后需要一层一层往前找问题;如果发现需求有问题;那不是白忙活了吗)
适用:比较适合用于小型项目
螺旋模型
内圈到外圈;每一个阶段都会继续风险分析;反复测试;反复分析
优点: 每个阶段都会进行风险分析,避免一些线上问题发生
缺点: 风险分析可能分析错,需要人力财力的投入
适用: 适用于比较大的项目,风险比较多
增量、迭代
增量开发能显著降低项目风险,结合软件持续构建机制,构成了当今流行的软件工程最佳实践之一。增量开发模型,鼓励用户反馈,在每个迭代过程中,促使开发小组以一种循环的、可预测的方式驱动产品的开发。因此,在这种开发模式下,每一次的迭代都意味着可能有需求的更改、构建出新的可执行软件版本,意味着测试需要频繁进行,测试人员需要与开发人员更加紧密地协作。
增量通常和迭代混为一谈,但是其实两者是有区别的。增量是逐块建造的概念,例如画一幅人物画,我们可以先画人的头部,再画身体,再画手脚……而迭代是反复求精的概念,同样是画人物画,我们可以采用先画整体轮廓,再勾勒出基本雏形,再细化、着色。
敏捷开发模型
敏捷宣言:
敏捷开发有很多种方式,其中scrum是比较流行的一种:
scrum由product owner(产品经理)、scrum master(项目经理)和team(研发团队;前端、后端、ui设计师)组成。
product owner负责整理user story(用户故事),定义其商业价值,对其进行排序,制定发布计划,对产品负责。
scrum master负责召开各种会议,协调项目,为研发团队服务。
研发团队则由不同技能的成员组成,通过紧密协同,完成每一次迭代的目标,交付产品。
scrum基本流程
测试模型
V模型
特点;左边开发、右边测试;类似瀑布模型;测试人员在编码后介入;
优点: 测试被划分成许多类型
缺点 : 测试人员介入太晚,发现问题时机太晚
W模型
特点: 开发一个V测试一个V
优点:测试人员尽早介入了需求
缺点:测试人员和开发人员一定程度上还是串行的;后面的都依赖于前面的。比如验收出现问题;就得一步一步往前回溯。不能很好的变化;不适用敏捷;W模型对于项目需求或技术变化的适应性不如敏捷开发方法;万一用户还有其它的需求;很难做到优化软件。v和w都不支持变化;需求文档一开始就确定了