最近在学软件工程,总结了对几种软件过程模型的理解,欢迎指正。
1、软件工程:
建立和使用一套合理的工程原则,从而经济地获得可靠的、可以在实际机器上高效运行的软件。(Fritz Bauer)
将系统化的、规范的、可量化的方法应用于软件的开发、运行和维护,即将工程化的方法应用于软件,以及对犯法的研究。(IEEE93)
软件产生的过程。(笔者)
2、过程框架:
定义若干小的框架活动,为完成软件开发过程建立了基础。这些框架活动可广泛应用于所有软件开发项目,无论这些小木的规模和复杂性如何。此外还包含一些适用于各个软件过程的普适性活动。
通用过程框架:沟通、策划、建模、构建、部署。
3、过程模式:
定义了一系列的软件开发中所需要的活动、动作、工作任务、工作产品及相关的行为,如原型开发,软件工程可定义为一系列模式的组合。
4、瀑布模型:
一个系统的、顺序的软件开发方法,从用户需求规格说明开始,通过策划、建模、构建和部署的过程,最终提供一个完整的软件并提供持续的技术支持。
5、增量过程模型:
以迭代的方式运用瀑布模型,在瀑布模型的每个阶段运用线性序列,每个序列产生一个软件的可交付增量,每个序列中的过程可以交叉。
RAD模型:
增量过程模型的改进版,只是沟通、策划只执行一次,每个线性序列只包含建模、构建、部署三个过程。
6、演进过程模型:
原型开发模型:沟通—策划—建模—原型构建—部署—沟通,不断循环。
螺旋模型:以原型开发为基础,只是把软件开发作为一系列演进版本,每一循环标记为里程碑。螺旋模型会贯穿整个软件生命周期。
协同开发模型:为每个开发活动定义状态,一个活动状态的变更将引起其他活动状态的改变,可用于其他过程模型中,反映整个项目的状态。
7、专用过程模型:
只是用于某些特定的软件工程方法。
基于构件的开发模型:具有螺旋模型的许多特点,本质上是演化模型,需要以迭代的方式构建软件,不同之处是采用预先打包的软件构建开发程序。
形式化方法模型:主要活动是生成计算机软件形式化的数学规格说明,软件工程师用严格的数学符号来说明、开发和验证基于计算机的系统。
面向方面的软件开发模型:对纵向分解的软件构件进行横向切片,称为“方面”,以表示构件功能及非功能的横切属性。面向方面是对横切关注点局部表示的一种机制,超越了子程序和继承的方法。如果某个关注点(客户需要的属性或者技术兴趣点)涉及系统多个方面的功能、特性和信息,这些关注点成为横切关注点。
8、统一过程模型:
用例驱动,以架构为核心,迭代并且增量。和通用过程框架活动不同,统一过程分为五个阶段,起始(产生用例)——细化(产生五种视图,用例模型、分析模型、设计模型、实现模型和部署模型)——构建(代码)——转换(部署、beta测试、反馈)——生产,在构建、转换和生产的同时,下一个软件增量可能已经开始。