软件开发过程模型

来源:互联网 发布:深夜前的五分钟 知乎 编辑:程序博客网 时间:2024/06/05 10:03

软件开发过程以系统需求作为输入,以要交付的产品作为输出,涉及活动、约束和资源使用的一系列工具和技术。瀑布模型、快速原型化模型、增量模型、螺旋模型等都是典型的软件开发过程模型。

瀑布模型将开发阶段描述为从一个阶段瀑布般地转换到另一个阶段的过程。瀑布模型将软件生存周期各个活动规定为线性顺序连接的若干阶段的模型,规定了由前至后,相互衔接的固定次序,如同瀑布流水,逐级下落。这种方法是一种理想的开发模式,缺乏灵活性,特别是无法解决软件需求不明确或不准确的问题。要求需求被清晰定义是瀑布模型的一个典型特点。

原型模型中,开发人员快速地构造整个系统或者系统的一部分以理解或澄清问题,不适宜大规模软件的开发。原型模型从初始的原型逐步演化成最终软件产品,特别适用于对软件需求缺乏准确认识的情况。

螺旋模型将开发活动和风险管理结合起来,以减小风险。螺旋将瀑布模型与快速原型模型结合起来,并且加入两种模型均忽略了的风险分析,适用于复杂的大型软件。风险评估是螺旋模型的特点。

喷泉模型开发过程模型以用户需求为动力,以对象为驱动,适合于面向对象的开发方法。

增量模型是Mills等于1980年提出來的。在使用该模型开发软件时,把软件产品作为一系列的增量构件来设计、编码、集成和测试,可以在增量开发过程中逐步理解需求。每个构件由多个相互作用的模块构成,并能够完成特定的功能。其优点包括能在较短时间内向用户提交可完成一些有用的工作产品;用户有充裕的时间来学习和适应不断增加的产品功能;项目失败风险较低;优先级最高的服务首先交付,然后再逐步增加新的构件,这样最重要的构件被测试得最充分。在当今市场竞争激烈的条件下,用增量模型可以快速的交付一部分产品,是适于商业产品的开发的。

极限编程XP是激发开发人员创造性、使得管理负担最小的一组技术.。
水晶法Crystal认为每—个不同的项目都需要一套不同的策略、约定和方法论。
并列争球法(Scram)使用迭代的方法,其中把每30天一次的迭代称为个冲刺, 并按需求的优先级来实现产品多个自组织和自治小组并行地递增实现产品,协调是通过简短的日常情况会议进行。

自适应软件开发(ASD)有六个基本的原则:
①在自适应软件开发中,有一个使命作为指导,它设立了项目的目标,但不描述如何达到这个目标;
②特征被视为客户键值的关键,因此,项目是围绕着构造的构件来组织并实现特征;
③过程中的迭代是很重要的,因此重做与做同样重要,变化也包含其中;
④变化不视为是一种更正,而是对软件开发实际情况的调整;
⑤确定的交付时间迫使开发人员认真考虑每一个生产版本的关键需求;
⑥风险也包含其中,它使开发人员首先跟踪最艰难的问题。

原创粉丝点击