第二章-软件过程(共13页).doc





《第二章-软件过程(共13页).doc》由会员分享,可在线阅读,更多相关《第二章-软件过程(共13页).doc(13页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上第二章 软件过程一、软件生命周期软件生命周期(Life Cycle),也称生存周期,指软件产品从提出、产生、发展到成熟,直至衰亡的整个时间段。软件生命周期的组成阶段:(1) 软件定义阶段:做什么?问题定义可行性研究需求分析(2) 软件开发阶段:如何做?总体设计详细设计编码和单元测试综合测试(3) 运行维护阶段:纠错、适应性修改、增强性修改、预防性修改二、软件过程的定义 当开发产品或构建系统时,遵循一系列可预测的步骤(路线图)是非常重要的,它有助于及时交付高质量的产品。(1)所遵循的路线图就称为“软件过程”。(2)软件过程贯穿软件开发的各阶段,并建立阶段里程碑(Mile
2、stones);(3)管理者在软件工程过程中需要对软件开发的质量、进度、成本进行评估、管理和控制;(4)技术人员在软件过程中需采用相应的方法和工具生成软件工程产品,如模型、文档、数据、报告、表格等。三、软件过程的作用 软件开发过程的作用是:(1)成为开发组活动顺序的向导。(2)详细说明需要开发哪些制品,何时开发。(3)指导每一个成员及整个开发组的工作。(4)提供监控、度量产品和活动所依据的准则。 软件过程是软件项目管理控制的基础,它为项目提供稳定性、可控性和有组织性,能有效避免混乱。 若没有一个良好定义的过程,开发组将各行其是,成功与否完全依赖个别优秀的人才,这不是能够长久的。四、软件过程的组
3、成要素 (活动、动作、任务)软件过程是工作产品构建时所执行的一系列活动、动作和任务的集合。(1)活动(activity):实现宽泛的大目标。(2)动作(action):阶段目标。(3)任务(task):关注小而明确的目标,产生实际产品。 软件过程由活动组成,活动由动作组成,动作由任务组成。五、基本框架活动和典型的普适性活动 软件过程框架(process framework)定义了若干个框架活动,及一些适用于整个软件过程的普适性活动1.基本框架活动一个通用的软件工程过程框架通常会包含以下5个基本的框架活动:(1) 沟通:在技术工作开始前,先和利益相关者进行沟通与协作,以理解项目目标,并收集需求。
4、(2) 策划:制定项目计划,包括需要执行的技术任务、可能的风险、资源需求、工作产品、工作进度计划等。(3)建模:构思软件的体系结构、构件如何结合等。(4)构建:包括编码和测试。(5)部署:交付全部软件或部分增量,由用户使用并反馈意见。2.典型的普适性活动 在软件过程中,还需要补充一些贯穿始终的普适性活动,可帮助团队管理和控制进度、质量、变更和风险。(1)软件项目跟踪与控制:根据计划评估当前进度,并采取必要的措施保证项目按进度计划进行。(2)风险管理:对可能影响项目成果或质量的风险进行评估。(3)软件质量保证(4)技术评审:评估软件工程的产品,尽量在错误传播到下一个活动之前发现并清除错误。(5)
5、 测量:定义和收集过程、项目和产品的度量。(6) 软件配置管理:管理变更所带来的影响。(7)可复用管理:定义产品复用标准,建立构件复用机制。(8)工作产品的准备和生产六、过程流过程流(process flow):描述了在执行顺序和执行时间上,如何组织框架中的活动、动作和任务。有以下4类:七、通用过程模型 软件过程常使用“过程模型”来表述。 一个通用的软件过程模型,包括以下工作:(1)选择一种过程流。(2)定义框架活动:针对给定的问题、开发人员和利益相关者,制定每个框架活动中需要完成哪些动作。( 例如在沟通活动中,可能包括启动、需求获取、需求系统、谈判、规格说明、确认等动作。)(3) 明确任务集
6、:为每个动作制定所需要的任务集。 任务集由工作任务、相关工作产品、质量保证点和项目里程碑等部分组成。 对于不同的软件项目,即便是相同的动作,确定的任务集也可能不一样。(4)编写或查找过程模式。八、过程模式 1.过程模式的定义 开发团队在软件过程里会遇到很多问题,如果团队能得到已有的经过验证的解决方案,将有助于快速地分析和解决问题。因此在软件过程中,最好能将遇到的过程问题、问题环境、解决方案等记录下来,形成过程模式(process pattern)。 过程模式提供了一个模板,一种在软件过程的背景下,统一描述问题解决方案的方法。 可以在不同抽象层次上定义模式,比如针对整个过程的、针对框架活动的、针
7、对动作的、针对任务的等。例子: 模式名称:需求不清 目的:该模式描述了一种构建模型(或原型系统)的方法可以反复评估,以便识别和确定软件需求。 类型:阶段模式。 启动条件:确定利益相关者;已经建立起利益相关者和间的沟通方式;利益相关者确定了需要解决的主要问题基本业务需求和项目约束条件有了初步了解。 问题:需求模糊或者不存在,但都清楚地认识到项目存在要通过软件解决。利益相关者不确认他们想要什么;即他件需求。 解决办法:描述了原型开发过程。 结束条件:开发了软件原型,识别了基本的需求(例如,征、处理功能等),并获得了利益相关者的认可。随后,原型系统可以通过一系列的增量开发,演化成为软件产统被抛弃,采
8、用其他过程模式建立产品软件。 相关的模式:客户沟通、迭代设计、迭代开发、客户评价九、过程模型1.通用过程模型 软件过程常使用“过程模型”来表述。 一个通用的软件过程模型,包括以下工作:(1)选择一种过程流。(2) 定义框架活动:针对给定的问题、开发人员和利益相关者,制定每个框架活动中需要完成哪些动作。(例如在沟通活动中,可能包括启动、需求获取、需求系统、谈判、规格说明、确认等动作。)(3)明确任务集:为每个动作制定所需要的任务集。 任务集由工作任务、相关工作产品、质量保证点和项目里程碑等部分组成。 对于不同的软件项目,即便是相同的动作,确定的任务集也可能不一样。(4)编写或查找过程模式。2.
9、过程模型的选择要点(1)无论要开发软件的大小,都应选择一个合适的软件过程模型。(2)选择何种软件过程模型,依赖于项目的性质、所构造软件的特点、采用的方法、需要的控制,以及项目团队,不同类型的软件或系统可能需要采用完全不同的软件过程。(3) 软件过程不是教条,它不是对如何构建软件的严格规定,而应是一种可适应性调整的方法,要让软件过程适合于项目团队和要开发的产品。十、惯用过程模型(传统过程模型)1.惯用过程模型的含义 软件工程发展到现在,已经出现了很多不同的过程模型,其中有一些可归属为“传统过程模型”。 传统过程模型以秩序和一致性作为主要问题,规定了一整套的过程元素,包括:过程流、框架活动、软件工
10、程动作、任务、工作产品、质量保证、变更控制机制等。 常见的几种传统过程模型:瀑布模型、V模型、增量过程模型、原型开发模型、螺旋模型、协同模型。2. 瀑布模型 (1)概念: 瀑布模型(waterfall model)是软件工程最早的范例,也称经典生命周期,它提出了一个系统的、顺序的软件开发方法,从用户需求规格说明开始,通过计划、建模、构建和部署的过程,最终提供一个完整的软件并提供持续的技术支持。(2)特点 在瀑布模型中,相邻二阶段之间存在因果关系,上一阶段的结果是下一阶段的输入。 瀑布模型推迟了软件实现,强调在软件实现前必须进行分析和设计工作。 瀑布模型非常规范:1. 强迫开发人员采用规范的技术
11、方法;2. 严格规定每个阶段必须提交的文档(这些文档往往成为该阶段的里程碑)“由文档驱动”3. 每个阶段结束前必须进行正式的、严格的技术审查和管理复审。 在实际应用时,往往会添加上“反馈”机制。(3)V模型:V模型是瀑布模型的一个变体,它的过程流和瀑布模型一致,但V模型描述了质量保证动作同沟通、建模相关动作以及早期构建相关的动作之间的关系。(4)W模型(5)评价 适用条件:需求明确而稳定,如 对已有系统仅做适应性调整或增强性工作。 需求明确的新系统。 优点: 具有系统性、可控性,克服了软件开发的随意性。 以阶段评审和文档控制为手段,能及时发现并纠正缺陷。问题: 实际项目很少按照该模型给出的顺序
12、进行。 客户常常难以清楚地给出需求,模型缺乏灵活性。 客户须要有耐心,只有在项目接近尾声时才能得到可执行程序。 若在可执行程序评审之前没有发现系统中存在的重大缺陷,将可能造成惨重损失。 线性流程,开发人员常需要等待,造成“阻塞状态”。 若每个阶段规定了过多的文档,会极大地增加工作量。 若管理人员以文档的完成情况来评估项目完成进度,往往会产生错误的结论。3. 增量模型(1)该模型先对系统最核心或最清晰的需求进行分析、设计、实现、测试,再按优先级逐步对后续需求进行上述工作,并集成到系统中,逐步形成一个完整系统。(2)增量模型的特点 增量过程模型综合了线性、并行、演化三种过程流的特征。 对于每个增量
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第二 软件 过程 13

限制150内