软件开发模型
软件开发模型大致可以分为三个种类,第一种就是软件需求完全确定的情况下采用瀑布模型,另外一种就是软件开发初始阶段只能提供基本需求时采用的迭代式或者渐进式开发模型(喷泉模型、螺旋模型、统一开发过车和敏捷方法),最后一种就是形式化开发方法为基础的交换模型。
瀑布模型主要分为如下几个步骤:软件计划、需求分析、软件设计、程序编码、软件测试和运行维护。具体的关系如下:
瀑布模型
瀑布模型是一个线性顺序模型,没有考虑到软件需求的变化。所以导致了项目风险的控制能力比较弱。
主要的优点是强调开发的阶段性、早期计划及需求调查和产品测试。
演化模型主要是针对事先不能完整定义的软件开发,是在快速开发一个原型的基础上,根据用户在调用原型的过程中提出反馈意见和建议,然后进行原型的修改,重复这个过程,直到演化成最终的产品。
演化模型的优点就是一经开发就可以进入测试,以便验证是否符合产品需求,可以帮助产品提高质量。其缺点就是不控制好用户的需求的话,会导致功能无限制的叠加,导致开发成本越来越大。
螺旋模型就是每次迭代制订计划、风险分析、实施过程和客户评价4个方面的工作。螺旋模型主要是强调风险分析,使得开发人员和用户对每个演化过程中的风险都有所了解从而制订计划。所以螺旋模型适合庞大、复杂并具有高风险的系统。具体流程如下:
螺旋模型
喷泉模型就是以用户需求为动力,以对象为驱动的模型,主要用于描述面向对象的软件过程。该模型主要采用自下而上并相处重叠和多次反复执行的过程,就像喷泉一样。此模型主要是引入了对象的概念,所以只能用类和关系来表达分析、设计和实现等活动,从而可以较容易的实现活动的迭代和无间隙,提高软件的开发效率和时间。具体流程如下图:
喷泉模型
交换模型是基于形式化规格说明预约和程序变换的软件开发模型,它对形式化的软件规格说明进行一些列自动化或者半自动化的程序变化,最后映射为计算机能够接受的软件系统。交换模型的优点就是解决代码结构经多次修改而变坏的问题,减少了许多中间步骤。
智能模型也称为基于知识的软件开发模型,综合了上述若干模型,并把专家模型结合在一起。由于智能模型基于规则的系统,采用规约和推理机制,所以需要建立知识库,将模型本身、软件过程知识与特定领域知识分别存入知识库。
V模型是快速应用开发模型基础上演变而来,V模型的过程是从左到右,描述了基本开发过程和测试行为,其价值在于它非常明确的标明了测试过程中存在的不同级别,并且清楚描述了这些测试阶段和开发阶段的各个关系。
V模型