目录
概念:软件开发中所遵循的路线图就称为“软件过程”。
为建造高质量软件所需要完成的活动、动作和任务的框架。
软件过程定义了软件工程化中采用的方法
2.1通用过程模型
通用过程框架定义了五种框架活动:沟通、策划、建模、构建以及部署
过程流
过程流描述了在执行顺序和执行时间上,如何阻止框架中的活动、动作和任务。
线性过程流
从沟通到部署顺序执行五个框架活动
迭代过程流
在执行下一个活动前重复执行之前的一个或多个活动
演化过程流
采用循环的方式执行各个活动
并行过程流
将一个或是多个活动与其他活动并行执行
一、定义框架活动
二、明确任务集
任务集:任务集定义了为达到一个软件工程动作的目标所需完成的工作。
key Point : 不同项目需要不同的任务集,软件团队根据问题和项目的特点,选择任务集。
三、过程模式
过程模式:描述软件工程工作遇到的过程相关问题,对该问题有许多解决方案。(模板/复用)
如何描述模板?模式名称、驱动力、类型、启动条件、问题、解决办法、结束条件、相关模式、已知应用实例。
模式的类型分为三种:1.步骤模式、2.任务模式、3.阶段模式
2.2过程评估与改进
软件过程无法保证软件的按期交付,以及满足客户需求。因此需要对过程进行评估。
软件过程评估和改进方法:
1、 用于过程改进的CMMI标准评估方法
2、用于阻止内部过程改进的CMM评估
3、SPICE
4、软件ISO 9001:2000
2.3惯用过程模型
提出该模型是为了让软件开发有序
一、瀑布模型
就像瀑布一样顺流而下,顺序执行。
这是软件工程最早的范例,又称为 经典生命周期
系统的、顺序的软件开发,通过计划、建模、构建和部署的过程,最终提供一个完整的软件并提供持续的技术支持。(系统、可控)
瀑布模型变种:V模型。本质上一样。增加了一系列测试,保证质量。
问题:
1.项目经常不按顺序发展
2.客户难以直接描述清楚全部的需求,且客户没耐心
3.项目任务互相依赖,因为某个任务停滞导致团队容易阻塞
适合:需求确定的项目
二、增量过程模型
通俗讲:你确定了需求,但不一定适用瀑布模型。因为你急需开发一个功能有限的简单产品先满足客户需求,在后面的开发中在去扩展和细化功能。
适用:早期开发人员不够
优点:规避技术风险
三、演化过程模型
是一个迭代的过程模型,适应不断演变的产品模型
两种演化模型:
1.原型开发
需要沟通、定目标、明确需求。快速开发出一个临时界面,再去不断调整。
适用:需求很模糊时,可帮助开发人员理解需求
缺点:这个临时的软件并没有考虑周全,而客户又执意要你拿这个软件顶上。最终上线的产品效果差。
2.螺旋模型:
结合了原型的迭代性质和瀑布模型的系统性可控性特点。
产品交付后并没有结束,而是应用于软件整个生命周期。
适用:开发大型系统软件
缺点:依赖大量的风险评估专家
四、协同模型
也叫协同工程。
可以不同的开发团队协同开发
适用:所有类型软件开发
五、演化模型的最终评述
市场急需该软件,及时投入市场。
为了解决该问题,则出现 演化模型
演化模型初衷是为了采用迭代和增量的方式开发高质量软件,但也需要可扩展和灵活性以及高效率。需要作出平衡。
2.4专用过程模型
应用面狭窄
一、基于构件开发模型
有螺旋模型的特点,本质是演化模型。
需要迭代开发构建软件。但它可采用预先打包的软件构件开发
优点:能够使软件复用(构件复用)
二、形式化方法模型
生成计算机软件形式化的数学规格说明
意义:提供无缺陷的软件
三、面向方面的软件开发
2.5统一过程(UP)
与客户沟通、从用户角度去描述系统
强调软件体系结构的重要作用
结合各种分析设计方法的最好的特点。开发出了UML - 统一建模语言
阶段
1.UP起始阶段
2.细化阶段
3.UP的构建阶段
4.UP的转换阶段
5.UP的生成阶段
2.6 个人过程模型和团队过程模型
个人过程模型
团队过程模型