《软件工程基础》第2章-软件开发过程.ppt
《《软件工程基础》第2章-软件开发过程.ppt》由会员分享,可在线阅读,更多相关《《软件工程基础》第2章-软件开发过程.ppt(37页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1/38第2章 软件开发过程2.1 软件过程2.2 常见的软件过程模型2.3 软件过程的新发展2/38第2章 软件开发过程n2.1 软件过程软件过程q2.1.1 软件过程的概念与理论基础软件过程的概念与理论基础q2.1.2 软件过程讨论的主要内容软件过程讨论的主要内容n2.2 常见的软件过程模型常见的软件过程模型n2.3 软件过程的新发展软件过程的新发展3/382.1.1 软件过程的概念与理论基础n软件过程的概念软件过程的概念n软件过程模型的理论基础软件过程模型的理论基础4/38软件过程的概念n软件过程是为了获得高质量软件所需要完成的一系软件过程是为了获得高质量软件所需要完成的一系列任务的框架
2、,它规定了完成各项任务的工作步骤。列任务的框架,它规定了完成各项任务的工作步骤。n在完成开发任务时必须进行一系列开发活动,并且在完成开发任务时必须进行一系列开发活动,并且使用适当的资源,在过程结束时将把输入转化为输使用适当的资源,在过程结束时将把输入转化为输出。出。n因此,因此,ISO 9000把过程定义为把过程定义为“使用资源将输入转使用资源将输入转化为输出的活动所构成的系统。化为输出的活动所构成的系统。”q过程定义了运用方法的顺序、应该交付的文档资过程定义了运用方法的顺序、应该交付的文档资料、为保证软件质量和协调变化所需要采取的管料、为保证软件质量和协调变化所需要采取的管理措施,以及标志软
3、件开发各个阶段任务完成的理措施,以及标志软件开发各个阶段任务完成的里程碑。里程碑。5/38软件过程模型及理论基础n通常使用生命周期模型简洁地描述软件过程。通常使用生命周期模型简洁地描述软件过程。q建立软件开发过程模型的理论基础是软件生命周期理论和相关的软建立软件开发过程模型的理论基础是软件生命周期理论和相关的软件工程原则,因此,软件过程模型又称软件生命周期模型件工程原则,因此,软件过程模型又称软件生命周期模型(Software Life Cycle Model)q其核心思想主张把软件过程划分成若干个阶段,每个阶段所包含的其核心思想主张把软件过程划分成若干个阶段,每个阶段所包含的活动内容和性质具
4、有活动内容和性质具有“高内聚,低藕合高内聚,低藕合”的特征,这样有助于简化的特征,这样有助于简化问题、有助于验证阶段性的工作成果、有助于对软件工程的施工与问题、有助于验证阶段性的工作成果、有助于对软件工程的施工与管理。管理。q生命周期模型规定了把生命周期划分成哪些阶段及各个阶段的执行生命周期模型规定了把生命周期划分成哪些阶段及各个阶段的执行顺序,因此,也称为过程模型。顺序,因此,也称为过程模型。q软件过程模型是对软件开发活动进行有效地组织、协调、管理与控软件过程模型是对软件开发活动进行有效地组织、协调、管理与控制的一种策略制的一种策略q过程模型化是为了便于理解和操作。过程模型化是为了便于理解和
5、操作。6/38Software Life Cycle Model7/382.1.2 软件过程讨论的主要内容n软件过程讨论的主要内容包括软件过程模型、项目软件过程软件过程讨论的主要内容包括软件过程模型、项目软件过程定义、软件过程裁剪、软件过程改进及软件能力成熟度的评定义、软件过程裁剪、软件过程改进及软件能力成熟度的评价等内容。价等内容。n软件过程模型给出了适合不同软件项目的软件过程活动组织软件过程模型给出了适合不同软件项目的软件过程活动组织的参考框架。对不同的软件组织来讲,典型软件过程模型仅的参考框架。对不同的软件组织来讲,典型软件过程模型仅仅是理论参考框架。为了不断提高软件能力,软件组织(企仅
6、是理论参考框架。为了不断提高软件能力,软件组织(企业与团队)应该不断积累经验,针对不同的软件项目和软件业与团队)应该不断积累经验,针对不同的软件项目和软件组织自身的特点,在软件过程定义、软件过程裁剪、软件过组织自身的特点,在软件过程定义、软件过程裁剪、软件过程改进等方面不断努力和提高。程改进等方面不断努力和提高。n软件能力成熟度模型(软件能力成熟度模型(CMM)是对一个软件组织的软件能力)是对一个软件组织的软件能力成熟度进行评价的框架模型,它同时对软件组织不断提高软成熟度进行评价的框架模型,它同时对软件组织不断提高软件能力具有的一定的促进作用。件能力具有的一定的促进作用。8/382.2 常见的
7、软件过程模型n软件过程包括软件开发过程和软件维护过程。软件过程包括软件开发过程和软件维护过程。n实践中,人们基于软件工程方法论和软件项目特点总结出了实践中,人们基于软件工程方法论和软件项目特点总结出了不同的软件过程模型。不同的软件过程模型。q好的过程模型吸收了成功的软件工程经验和有效的软件好的过程模型吸收了成功的软件工程经验和有效的软件工程原则,因此参考软件过程模型框架组织软件项目有工程原则,因此参考软件过程模型框架组织软件项目有利于提高工作效率、把握开发质量,总体上可以提高软利于提高工作效率、把握开发质量,总体上可以提高软件项目的成功率。件项目的成功率。q为获得高质量的软件产品,软件过程必须
8、科学、有效。为获得高质量的软件产品,软件过程必须科学、有效。没有一个适用于所有软件项目的任务集合。因此,科学、没有一个适用于所有软件项目的任务集合。因此,科学、有效的软件过程应该定义一组适合于所承担的项目特点有效的软件过程应该定义一组适合于所承担的项目特点的任务集合。的任务集合。q通常,一个任务集合包括一组软件工程任务、里程碑和通常,一个任务集合包括一组软件工程任务、里程碑和应该交付的产品。应该交付的产品。9/38典型的过程模型n实际的软件开发活动中,应该项目的特点来划分阶段,但是,实际的软件开发活动中,应该项目的特点来划分阶段,但是,下面讲述典型的软件过程模型时并不是针对某个特定项目讲的,下
9、面讲述典型的软件过程模型时并不是针对某个特定项目讲的,因此只能使用因此只能使用“通用的通用的”阶段划分方法。阶段划分方法。n由于瀑布模型与快速原型模型的主要区别是获取用户需求的方由于瀑布模型与快速原型模型的主要区别是获取用户需求的方法不同,因此,下面在介绍生命周期模型时把法不同,因此,下面在介绍生命周期模型时把“规格说明规格说明”作作为一个阶段独立出来。为一个阶段独立出来。n此外,问题定义和可行性研究的主要任务都是概括地了解用户此外,问题定义和可行性研究的主要任务都是概括地了解用户的需求,为了简洁地描述软件过程,把它们都归并到需求分析的需求,为了简洁地描述软件过程,把它们都归并到需求分析中去了
10、。中去了。n同样,为了简洁起见,把总体设计和详细设计合并在一起称为同样,为了简洁起见,把总体设计和详细设计合并在一起称为“设计设计”。10/381.4.1 瀑布模型n在在20世纪世纪80年代之前,瀑布模型一直是惟一被广泛采用的生命周期模年代之前,瀑布模型一直是惟一被广泛采用的生命周期模型,现在它仍然是软件工程中应用得最广泛的过程模型。传统软件工型,现在它仍然是软件工程中应用得最广泛的过程模型。传统软件工程方法学的软件过程,基本上可以用瀑布模型来描述。程方法学的软件过程,基本上可以用瀑布模型来描述。n图图1.2所示为传统的瀑布模型。按照传统的瀑布模型开发软件,有下所示为传统的瀑布模型。按照传统的
11、瀑布模型开发软件,有下述的几个特点。述的几个特点。11/38图1.2 传统的瀑布模型12/38n1.阶段间具有顺序性和依赖性阶段间具有顺序性和依赖性n这个特点有两重含义:这个特点有两重含义:必须等前一阶段的工作完成之后,才能开必须等前一阶段的工作完成之后,才能开始后一阶段的工作;始后一阶段的工作;前一阶段的输出文档就是后一阶段的输入文前一阶段的输出文档就是后一阶段的输入文档,因此,只有前一阶段的输出文档正确,后一阶段的工作才能获得档,因此,只有前一阶段的输出文档正确,后一阶段的工作才能获得正确的结果。正确的结果。n2.推迟实现的观点推迟实现的观点n对于规模较大的软件项目来说,往往编码开始得越早
12、最终完成开发工对于规模较大的软件项目来说,往往编码开始得越早最终完成开发工作所需要的时间反而越长。这是因为,前面阶段的工作没做或做得不作所需要的时间反而越长。这是因为,前面阶段的工作没做或做得不扎实,过早地考虑进行程序实现,往往导致大量返工,有时甚至发生扎实,过早地考虑进行程序实现,往往导致大量返工,有时甚至发生无法弥补的问题,带来灾难性后果。无法弥补的问题,带来灾难性后果。13/38n瀑布模型在编码之前设置了系统分析与系统设计的各个阶段,分析与瀑布模型在编码之前设置了系统分析与系统设计的各个阶段,分析与设计阶段的基本任务规定,在这两个阶段主要考虑目标系统的逻辑模设计阶段的基本任务规定,在这两
13、个阶段主要考虑目标系统的逻辑模型,不涉及软件的物理实现。型,不涉及软件的物理实现。n清楚地区分逻辑设计与物理设计,尽可能推迟程序的物理实现,是按清楚地区分逻辑设计与物理设计,尽可能推迟程序的物理实现,是按照瀑布模型开发软件的一条重要的指导思想。照瀑布模型开发软件的一条重要的指导思想。n3.质量保证的观点质量保证的观点n软件工程的基本目标是优质、高产。为了保证所开发的软件的质量,软件工程的基本目标是优质、高产。为了保证所开发的软件的质量,在瀑布模型的每个阶段都应坚持两个重要做法:在瀑布模型的每个阶段都应坚持两个重要做法:14/38n(1)每个阶段都必须完成规定的文档,没有交出合格的文档就是没每个
14、阶段都必须完成规定的文档,没有交出合格的文档就是没有完成该阶段的任务。完整、准确的合格文档不仅是软件开发时期各有完成该阶段的任务。完整、准确的合格文档不仅是软件开发时期各类人员之间相互通信的媒介,也是运行时期对软件进行维护的重要依类人员之间相互通信的媒介,也是运行时期对软件进行维护的重要依据。据。n(2)每个阶段结束前都要对所完成的文档进行评审,以便尽早发现每个阶段结束前都要对所完成的文档进行评审,以便尽早发现问题,改正错误。事实上,越是早期阶段犯下的错误,暴露出来的时问题,改正错误。事实上,越是早期阶段犯下的错误,暴露出来的时间就越晚,排除故障改正错误所需付出的代价也越高。因此,及时审间就越
15、晚,排除故障改正错误所需付出的代价也越高。因此,及时审查,是保证软件质量,降低软件成本的重要措施。查,是保证软件质量,降低软件成本的重要措施。15/38n传统的瀑布模型过于理想化了,事实上,人在工作过程中不可能不犯传统的瀑布模型过于理想化了,事实上,人在工作过程中不可能不犯错误。在设计阶段可能发现规格说明文档中的错误,而设计上的缺陷错误。在设计阶段可能发现规格说明文档中的错误,而设计上的缺陷或错误可能在实现过程中显现出来,在综合测试阶段将发现需求分析、或错误可能在实现过程中显现出来,在综合测试阶段将发现需求分析、设计或编码阶段的许多错误。因此,实际的瀑布模型是带设计或编码阶段的许多错误。因此,
16、实际的瀑布模型是带“反馈环反馈环”的,如图的,如图1.3所示(图中实线箭头表示开发过程,虚线箭头表示维护所示(图中实线箭头表示开发过程,虚线箭头表示维护过程)。当在后面阶段发现前面阶段的错误时,需要沿图中左侧的反过程)。当在后面阶段发现前面阶段的错误时,需要沿图中左侧的反馈线返回前面的阶段,修正前面阶段的产品之后再回来继续完成后面馈线返回前面的阶段,修正前面阶段的产品之后再回来继续完成后面阶段的任务。阶段的任务。16/38图1.3 实际的瀑布模型17/38n瀑布模型有许多优点:可强迫开发人员采用规范的方法(例如,结构瀑布模型有许多优点:可强迫开发人员采用规范的方法(例如,结构化技术);化技术)
17、;严格地规定了每个阶段必须提交的文档;要求每个阶段交严格地规定了每个阶段必须提交的文档;要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证。出的所有产品都必须经过质量保证小组的仔细验证。n各个阶段产生的文档是维护软件产品时必不可少的,没有文档的软件各个阶段产生的文档是维护软件产品时必不可少的,没有文档的软件几乎是不可能维护的。遵守瀑布模型的文档约束,将使软件维护变得几乎是不可能维护的。遵守瀑布模型的文档约束,将使软件维护变得比较容易一些。由于绝大部分软件预算都花费在软件维护上,因此,比较容易一些。由于绝大部分软件预算都花费在软件维护上,因此,使软件变得比较容易维护就能显著降低软件预算。
18、可以说,瀑布模型使软件变得比较容易维护就能显著降低软件预算。可以说,瀑布模型的成功在很大程度上是由于它基本上是一种文档驱动的模型。的成功在很大程度上是由于它基本上是一种文档驱动的模型。18/38n但是,但是,“瀑布模型是由文档驱动的瀑布模型是由文档驱动的”这个事实也是它的一个主要缺点。这个事实也是它的一个主要缺点。在可运行的软件产品交付给用户之前,用户只能通过文档来了解产品在可运行的软件产品交付给用户之前,用户只能通过文档来了解产品是什么样的。但是,仅仅通过写在纸上的静态的规格说明,很难全面是什么样的。但是,仅仅通过写在纸上的静态的规格说明,很难全面正确地认识动态的软件产品。而且事实证明,一旦
19、一个用户开始使用正确地认识动态的软件产品。而且事实证明,一旦一个用户开始使用一个软件,在他的头脑中关于该软件应该做什么的想法就会或多或少一个软件,在他的头脑中关于该软件应该做什么的想法就会或多或少地发生变化,这就使得最初提出的需求变得不完全适用了。事实上,地发生变化,这就使得最初提出的需求变得不完全适用了。事实上,要求用户不经过实践就提出完整准确的需求,在许多情况下都是不切要求用户不经过实践就提出完整准确的需求,在许多情况下都是不切实际的。总之,由于瀑布模型几乎完全依赖于书面的规格说明,很可实际的。总之,由于瀑布模型几乎完全依赖于书面的规格说明,很可能导致最终开发出的软件产品不能真正满足用户的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程基础 软件工程 基础 软件 开发 过程
限制150内