软件开发过程PPT课件
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
由于瀑布模型与快速原型模型的主要区别是获取用户需求的方 法不同,因此,下面在介绍生命周期模型时把“规格说明”作 为一个阶段独立出来。
此外,问题定义和可行性研究的主要任务都是概括地了解用户 的需求,为了简洁地描述软件过程,把它们都归并到需求分析 中去了。
同样,为了简洁起见,把总体设计和详细设计合并在一起称为 “设计”。
.
13
(1) 每个阶段都必须完成规定的文档,没有交出合格的文档就是没 有完成该阶段的任务。完整、准确的合格文档不仅是软件开发时期各 类人员之间相互通信的媒介,也是运行时期对软件进行维护的重要依 据。
(2) 每个阶段结束前都要对所完成的文档进行评审,以便尽早发现 问题,改正错误。事实上,越是早期阶段犯下的错误,暴露出来的时 间就越晚,排除故障改正错误所需付出的代价也越高。因此,及时审 查,是保证软件质量,降低软件成本的重要措施。
过程定义了运用方法的顺序、应该交付的文档资 料、为保证软件质量和协调变化所需要采取的管 理措施,以及标志软件开发各个阶段任务完成的 里程碑。
.
4
软件过程模型及理论基础
通常使用生命周期模型简洁地描述软件过程。 建立软件开发过程模型的理论基础是软件生命周期理论和相关的软 件工程原则,因此,软件过程模型又称软件生命周期模型 (Software Life Cycle Model) 其核心思想主张把软件过程划分成若干个阶段,每个阶段所包含的 活动内容和性质具有“高内聚,低藕合”的特征,这样有助于简化 问题、有助于验证阶段性的工作成果、有助于对软件工程的施工与 管理。 生命周期模型规定了把生命周期划分成哪些阶段及各个阶段的执行 顺序,因此,也称为过程模型。 软件过程模型是对软件开发活动进行有效地组织、协调、管理与控 制的一种策略 过程模型化是为了便于理解和操作。
软件过程的概念 软件过程模型的理论基础
.
3
软件过程的概念
软件过程是为了获得高质量软件所需要完成的一系 列任务的框架,它规定了完成各项任务的工作步骤。
在完成开发任务时必须进行一系列开发活动,并且 使用适当的资源,在过程结束时将把输入转化为输 出。
因此,ISO 9000把过程定义为“使用资源将输入转 化为输出的活动所构成的系统。”
.
5
Software Life Cycle Model
.
6
2.1.2 软件过程讨论的主要内容
软件过程讨论的主要内容包括软件过程模型、项目软件过程 定义、软件过程裁剪、软件过程改进及软件能力成熟度的评 价等内容。
软件过程模型给出了适合不同软件项目的软件过程活动组织 的参考框架。对不同的软件组织来讲,典型软件过程模型仅 仅是理论参考框架。为了不断提高软件能力,软件组织(企 业与团队)应该不断积累经验,针对不同的软件项目和软件 组织自身的特点,在软件过程定义、软件过程裁剪、软件过 程改进等方面不断努力和提高。
软件能力成熟度模型(CMM)是对一个软件组织的软件能力 成熟度进行评价的框架模型,它同时对软件组织不断提高软 件能力具有的一定的促进作用。
.
7
2.2 常见的软件过程模型
软件过程包括软件开发过程和软件维护过程。
实践中,人们基于软件工程方法论和软件项目特点总结出了 不同的软件过程模型。
好的过程模型吸收了成功的软件工程经验和有效的软件 工程原则,因此参考软件过程模型框架组织软件项目有 利于提高工作效率、把握开发质量,总体上可以提高软 件项目的成功率。
.
9
1.4.1 瀑布模型
在20世纪80年代之前,瀑布模型一直是惟一被广泛采用的生命周期模 型,现在它仍然是软件工程中应用得最广泛的过程模型。传统软件工 程方法学的软件过程,基本上可以用瀑布模型来描述。
图1.2所示为传统的瀑布模型。按照传统的瀑布模型开发软件,有下 述的几个特点。
.Байду номын сангаас
10
图1.2 传统的瀑布模型
.
11
1. 阶段间具有顺序性和依赖性
这个特点有两重含义: ①必须等前一阶段的工作完成之后,才能开始 后一阶段的工作; ②前一阶段的输出文档就是后一阶段的输入文档, 因此,只有前一阶段的输出文档正确,后一阶段的工作才能获得正确 的结果。
2. 推迟实现的观点
对于规模较大的软件项目来说,往往编码开始得越早最终完成开发工 作所需要的时间反而越长。这是因为,前面阶段的工作没做或做得不 扎实,过早地考虑进行程序实现,往往导致大量返工,有时甚至发生 无法弥补的问题,带来灾难性后果。
为获得高质量的软件产品,软件过程必须科学、有效。 没有一个适用于所有软件项目的任务集合。因此,科学、 有效的软件过程应该定义一组适合于所承担的项目特点 的任务集合。
通常,一个任务集合包括一组软件工程任务、里程碑和 应该交付的产品。
.
8
典型的过程模型
实际的软件开发活动中,应该项目的特点来划分阶段,但是, 下面讲述典型的软件过程模型时并不是针对某个特定项目讲的, 因此只能使用“通用的”阶段划分方法。
.
12
瀑布模型在编码之前设置了系统分析与系统设计的各个阶段,分析与 设计阶段的基本任务规定,在这两个阶段主要考虑目标系统的逻辑模 型,不涉及软件的物理实现。
清楚地区分逻辑设计与物理设计,尽可能推迟程序的物理实现,是按 照瀑布模型开发软件的一条重要的指导思想。
3. 质量保证的观点
软件工程的基本目标是优质、高产。为了保证所开发的软件的质量, 在瀑布模型的每个阶段都应坚持两个重要做法:
第2章 软件开发过程
2.1 软件过程 2.2 常见的软件过程模型 2.3 软件过程的新发展
.
1
第2章 软件开发过程
2.1 软件过程 2.1.1 软件过程的概念与理论基础 2.1.2 软件过程讨论的主要内容
2.2 常见的软件过程模型 2.3 软件过程的新发展
.
2
2.1.1 软件过程的概念与理论基础
.
14
传统的瀑布模型过于理想化了,事实上,人在工作过程中不可能不犯 错误。在设计阶段可能发现规格说明文档中的错误,而设计上的缺陷 或错误可能在实现过程中显现出来,在综合测试阶段将发现需求分析、 设计或编码阶段的许多错误。因此,实际的瀑布模型是带“反馈环” 的,如图1.3所示(图中实线箭头表示开发过程,虚线箭头表示维护 过程)。当在后面阶段发现前面阶段的错误时,需要沿图中左侧的反 馈线返回前面的阶段,修正前面阶段的产品之后再回来继续完成后面 阶段的任务。
此外,问题定义和可行性研究的主要任务都是概括地了解用户 的需求,为了简洁地描述软件过程,把它们都归并到需求分析 中去了。
同样,为了简洁起见,把总体设计和详细设计合并在一起称为 “设计”。
.
13
(1) 每个阶段都必须完成规定的文档,没有交出合格的文档就是没 有完成该阶段的任务。完整、准确的合格文档不仅是软件开发时期各 类人员之间相互通信的媒介,也是运行时期对软件进行维护的重要依 据。
(2) 每个阶段结束前都要对所完成的文档进行评审,以便尽早发现 问题,改正错误。事实上,越是早期阶段犯下的错误,暴露出来的时 间就越晚,排除故障改正错误所需付出的代价也越高。因此,及时审 查,是保证软件质量,降低软件成本的重要措施。
过程定义了运用方法的顺序、应该交付的文档资 料、为保证软件质量和协调变化所需要采取的管 理措施,以及标志软件开发各个阶段任务完成的 里程碑。
.
4
软件过程模型及理论基础
通常使用生命周期模型简洁地描述软件过程。 建立软件开发过程模型的理论基础是软件生命周期理论和相关的软 件工程原则,因此,软件过程模型又称软件生命周期模型 (Software Life Cycle Model) 其核心思想主张把软件过程划分成若干个阶段,每个阶段所包含的 活动内容和性质具有“高内聚,低藕合”的特征,这样有助于简化 问题、有助于验证阶段性的工作成果、有助于对软件工程的施工与 管理。 生命周期模型规定了把生命周期划分成哪些阶段及各个阶段的执行 顺序,因此,也称为过程模型。 软件过程模型是对软件开发活动进行有效地组织、协调、管理与控 制的一种策略 过程模型化是为了便于理解和操作。
软件过程的概念 软件过程模型的理论基础
.
3
软件过程的概念
软件过程是为了获得高质量软件所需要完成的一系 列任务的框架,它规定了完成各项任务的工作步骤。
在完成开发任务时必须进行一系列开发活动,并且 使用适当的资源,在过程结束时将把输入转化为输 出。
因此,ISO 9000把过程定义为“使用资源将输入转 化为输出的活动所构成的系统。”
.
5
Software Life Cycle Model
.
6
2.1.2 软件过程讨论的主要内容
软件过程讨论的主要内容包括软件过程模型、项目软件过程 定义、软件过程裁剪、软件过程改进及软件能力成熟度的评 价等内容。
软件过程模型给出了适合不同软件项目的软件过程活动组织 的参考框架。对不同的软件组织来讲,典型软件过程模型仅 仅是理论参考框架。为了不断提高软件能力,软件组织(企 业与团队)应该不断积累经验,针对不同的软件项目和软件 组织自身的特点,在软件过程定义、软件过程裁剪、软件过 程改进等方面不断努力和提高。
软件能力成熟度模型(CMM)是对一个软件组织的软件能力 成熟度进行评价的框架模型,它同时对软件组织不断提高软 件能力具有的一定的促进作用。
.
7
2.2 常见的软件过程模型
软件过程包括软件开发过程和软件维护过程。
实践中,人们基于软件工程方法论和软件项目特点总结出了 不同的软件过程模型。
好的过程模型吸收了成功的软件工程经验和有效的软件 工程原则,因此参考软件过程模型框架组织软件项目有 利于提高工作效率、把握开发质量,总体上可以提高软 件项目的成功率。
.
9
1.4.1 瀑布模型
在20世纪80年代之前,瀑布模型一直是惟一被广泛采用的生命周期模 型,现在它仍然是软件工程中应用得最广泛的过程模型。传统软件工 程方法学的软件过程,基本上可以用瀑布模型来描述。
图1.2所示为传统的瀑布模型。按照传统的瀑布模型开发软件,有下 述的几个特点。
.Байду номын сангаас
10
图1.2 传统的瀑布模型
.
11
1. 阶段间具有顺序性和依赖性
这个特点有两重含义: ①必须等前一阶段的工作完成之后,才能开始 后一阶段的工作; ②前一阶段的输出文档就是后一阶段的输入文档, 因此,只有前一阶段的输出文档正确,后一阶段的工作才能获得正确 的结果。
2. 推迟实现的观点
对于规模较大的软件项目来说,往往编码开始得越早最终完成开发工 作所需要的时间反而越长。这是因为,前面阶段的工作没做或做得不 扎实,过早地考虑进行程序实现,往往导致大量返工,有时甚至发生 无法弥补的问题,带来灾难性后果。
为获得高质量的软件产品,软件过程必须科学、有效。 没有一个适用于所有软件项目的任务集合。因此,科学、 有效的软件过程应该定义一组适合于所承担的项目特点 的任务集合。
通常,一个任务集合包括一组软件工程任务、里程碑和 应该交付的产品。
.
8
典型的过程模型
实际的软件开发活动中,应该项目的特点来划分阶段,但是, 下面讲述典型的软件过程模型时并不是针对某个特定项目讲的, 因此只能使用“通用的”阶段划分方法。
.
12
瀑布模型在编码之前设置了系统分析与系统设计的各个阶段,分析与 设计阶段的基本任务规定,在这两个阶段主要考虑目标系统的逻辑模 型,不涉及软件的物理实现。
清楚地区分逻辑设计与物理设计,尽可能推迟程序的物理实现,是按 照瀑布模型开发软件的一条重要的指导思想。
3. 质量保证的观点
软件工程的基本目标是优质、高产。为了保证所开发的软件的质量, 在瀑布模型的每个阶段都应坚持两个重要做法:
第2章 软件开发过程
2.1 软件过程 2.2 常见的软件过程模型 2.3 软件过程的新发展
.
1
第2章 软件开发过程
2.1 软件过程 2.1.1 软件过程的概念与理论基础 2.1.2 软件过程讨论的主要内容
2.2 常见的软件过程模型 2.3 软件过程的新发展
.
2
2.1.1 软件过程的概念与理论基础
.
14
传统的瀑布模型过于理想化了,事实上,人在工作过程中不可能不犯 错误。在设计阶段可能发现规格说明文档中的错误,而设计上的缺陷 或错误可能在实现过程中显现出来,在综合测试阶段将发现需求分析、 设计或编码阶段的许多错误。因此,实际的瀑布模型是带“反馈环” 的,如图1.3所示(图中实线箭头表示开发过程,虚线箭头表示维护 过程)。当在后面阶段发现前面阶段的错误时,需要沿图中左侧的反 馈线返回前面的阶段,修正前面阶段的产品之后再回来继续完成后面 阶段的任务。