软件工程过程模型
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第2章 软件工程过程模型
2.2 软件工程过程
如前所述,软件工程过程是开发或维护软件及其相关产品 的一系列活动。
软件工程过程是过去十年中人们关注的焦点。软件工程和 软件工程过程之间是强相关的。软件工程过程通常包括四种基 本的过程活动:
(1) 软件规格说明:规定软件的功能、性能及其运行限制。
(2) 软件开发:产生满足规格说明的软件,包括设计与编码 等工作。
工具层 方法层 过程层 质量焦点
图2.1 软件工程过程层次图
第2章 软件工程过程模型 正如其他工程方法一样,软件工程必须以有组织的软件质 量保证为基础。因此说,对质量的关注构成了软件工程的根基。
软件工程过程是将技术层(包括工程技术与管理技术)结合 在一起的凝聚力。 过程层是软件工程的基层。软件工程过程定 义了一组关键过程域(KPAs),这对于软件工程技术的有效应用 是必需的。这些关键过程区域是对软件工程项目进行管理与控 制的基础,并且确定了上、下各区域之间的关系。其中,对于 技术方法的采用、阶段产品的产生、工程里程碑的建立、质量 监控与保证、变更控制等方面都进行了规定。
工具层对过程和方法提供支持,使得工程活动、管理活动 得以自动、半自动的进行。例如,目前广为使用的数据库建模 工具Erwin、面向对象的建模工具Rationnal Rose、配置管理工 具等等。如果把一系列的工具集成起来使用,使得一个工具产 生的信息可以被另一个工具使用时,就形成了一个支持软件开 发的系统。这种集成了软件、硬件和一个软件工程数据库的软 件工程环境,称为计算机辅助软件工程(CASE)。
第2章 软件工程过程模型
从宏观上来看,所有的软件开发过程都可以看成是一个循 环解决问题的过程。其中包括四个截然不同的阶段:状态描述、 问题定义、技术开发和方案综述,如图2.3所示。状态描述表 示了事物的当前状态;问题定义标识了要解决的特定问题;技 术开发通过应用某些技术来解决问题;方案综述提交解决结果 (如文档、程序、数据、新的商业功能、新产品)给那些从一开 始就需要方案的人。前面定义的软件工程的一般阶段和步骤很 容易映射到这些阶段上。
(3) 可支持性 :容易得到CASE工具的支持。 (4) 可接受性:比较容易被软件工程师接受和使用。
(5) 可靠性:不会出现过程错误,或者出现的过程错误能够 在产品出错之前被发现。
(6) 健壮性:不受意外发生问题的干扰。 (7) 可维护性:过程可以根据开发组织的需求的改变而改进。
(8) 高效率:从给出软件规格说明起,就能够较快地完成开 发而交付使用。
第2章 软件工程过程模型
第2章 软件工程过程模型
2.1 软件工程的技术基础 2.2 软件工程过程 2.3 软件过程模型 2.4 线性顺序模型 2.5 原型模型 2.6 快速应用开发模型 2.7 演化软件过程模型 2.8 软件过程技术 2.9 软件重用技术 2.10 小结
第2章 软件工程过程模型
2.1 软件工程的技术基础
除各个开发组织可以定义自己的软件工程过程之外,目前 流行比较广泛的软件工程过程包括有RUP过程、极限(XP)过程、 敏捷软件过程(Agile S.P)等等。
第2章 软件工程过程模型
软件工程方法涵盖了需求分析、设计、编程、测试、维护 等各个环节,它给出了完成这些任务在技术上应当“如何做” 的方法。它依赖于一组基本原则,这些原则控制了每一个技术 区域,涉及到建模活动和其他描述技术。
第2章 软件工程过程模型
一个软件过程可以表示成如图2.2所示的形式。其中,公共 过程框架是通过定义若干适合于所有软件项目的框架活动而建 立的;若干任务集合中,每一个集合都由软件工程工作任务、 软件项目里程碑、软件工作产品和交付物以及质量保证点组成; 保护性活动独立于任何一个框架,贯穿于整个过程。
第2章 软件工程过程模型
在具体的工程过程中,可以根据实际需要,采用不同的过 程模型来实现上述的基本活动和保护活动。事实上,软件工程 过程是一个软件开发组织针对某一类软件产品为自己规定的工 作步骤,它应当是科学的、合理的,否则必将影响到软件产品 的质量。一个良好的软件工程过程应当具备如下特点:
第2章 软件工程过程模型 (1) 易理解性。 (2) 可见性:每个过程活动都以得到明确的结果而告终,保 证过程的进展对外可见。
Leabharlann Baidu
第2章 软件工程过程模型
问题定义
状态描述
技术开发
方案综述
图2.3 问题循环解决的各个阶段
第2章 软件工程过程模型
上述的问题循环解决过程可以应用于软件工程的多个不同 开发级别(阶段)上,包括考虑整个系统开发的宏观阶段,开发 程序构件的中间阶段,甚至是代码编制阶段,因此可以采用分 级集合表示。可以定义一个模式,然后在连续的、更小的规模 上递归地应用它,这样来提供一个关于过程的理想化的视图。 问题循环解决过程的每一个阶段又包含一个相同的问题循环解 决过程,如图2.4所示。可以认为,软件开发是从用户到开发者 再到技术的一个连续的过程。随着向一个完整系统的逐步进展, 上述的阶段递归地应用于用户的需求和开发者的软件技术说明 中。
(3) 软件确认:确认软件能够满足客户提出的要求,对应于 软件测试。
(4) 软件演进:为满足客户的变更要求,软件必须在使用的 过程中演进,以求尽量延长软件的生命周期。
第2章 软件工程过程模型
在一个良好的软件过程中,还应当包括一些“保护性”的 活动,包括软件项目的跟踪监控、正式的技术审核、软件配置 管理活动、软件质量保证活动、文档的准备和产生、软件测试、 风险管理等等。这些保护性活动贯穿于整个工程过程之中。
公共过程框架 框架活动 任务集合 工作任务 里程碑、交付物 SQA(软 件 质 量 保 证 )点
保护性辅助活动
图2.2 软件工程过程
第2章 软件工程过程模型
2.3 软件过程模型
在一个具体的实际工程活动中,软件工程师必须设计、提 炼出一个工程开发策略,用以覆盖软件过程中的基本阶段,确 定所涉及的过程、方法、工具。这种策略常被称为“软件工程 过程模型”。这一模型的选择应当是根据组织定义的标准软件 过程,参考具体工程项目的特点和资源状况进行裁剪来进行的。