第1章软件开发过程与方法_第1页
第1章软件开发过程与方法_第2页
第1章软件开发过程与方法_第3页
第1章软件开发过程与方法_第4页
第1章软件开发过程与方法_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、北华航天工业学院计算机系 制作vc+vc+程序设计项目实践程序设计项目实践贾振华贾振华北华航天工业学院计算机系 制作单击此处编辑母版标题样式单击此处编辑母版标题样式第第1 1章章 软件开发过程与方法软件开发过程与方法学习目标:学习目标:了解软件的开发过程了解软件的开发过程了解软件的开发方法了解软件的开发方法理解编码实现的规则理解编码实现的规则熟悉测试方法熟悉测试方法北华航天工业学院计算机系 制作单击此处编辑母版标题样式单击此处编辑母版标题样式1.11.1软件开发过程软件开发过程软件开发过程是按照软件工业化的标准定义的在软件开发过程是按照软件工业化的标准定义的在软件开发中必须具有的一系列过程规范

2、。软件开发中必须具有的一系列过程规范。软件开发过程是定义软件中的软件需求、软件设软件开发过程是定义软件中的软件需求、软件设计,软件编码、软件测试、软件部署的实现目标计,软件编码、软件测试、软件部署的实现目标和规范化的管理方法论。和规范化的管理方法论。软件开发过程是保证软件高质量完成的一系列任软件开发过程是保证软件高质量完成的一系列任务的框架,它规定了完成各项任务的工作步骤。务的框架,它规定了完成各项任务的工作步骤。北华航天工业学院计算机系 制作单击此处编辑母版标题样式单击此处编辑母版标题样式1.11.1软件开发过程软件开发过程1.1.11.1.1需求分析需求分析需求分析阶段研究的对象是软件项目

3、的用户要求。需求分析阶段研究的对象是软件项目的用户要求。一方面,必须全面理解用户的各项要求,但又不一方面,必须全面理解用户的各项要求,但又不能全盘接受所有的要求,因为并非所有的用户要能全盘接受所有的要求,因为并非所有的用户要求都是合理的,对其中模糊的要求还需要澄清,求都是合理的,对其中模糊的要求还需要澄清,然后才能决定是否可以采纳。对于那些无法实现然后才能决定是否可以采纳。对于那些无法实现的要求,应向用户做充分的解释,以求得谅解。的要求,应向用户做充分的解释,以求得谅解。另一方面,要准确地表达已经接受的用户要求。另一方面,要准确地表达已经接受的用户要求。只有经过确切描述的软件需求才能成为软件设

4、计只有经过确切描述的软件需求才能成为软件设计的基础。的基础。北华航天工业学院计算机系 制作单击此处编辑母版标题样式单击此处编辑母版标题样式1.11.1软件开发过程软件开发过程1.1.11.1.1需求分析需求分析软件需求分析的目标是准确理解用户的要求,进软件需求分析的目标是准确理解用户的要求,进行细致的调查分析,将用户的非形式的要求转化行细致的调查分析,将用户的非形式的要求转化为完整的需求定义,再将需求定义转换为相应的为完整的需求定义,再将需求定义转换为相应的形式的规格说明。形式的规格说明。北华航天工业学院计算机系 制作单击此处编辑母版标题样式单击此处编辑母版标题样式1.11.1软件开发过程软件

5、开发过程1.1.11.1.1需求分析需求分析制定软件的需求规格说明不仅仅是软件开发人员制定软件的需求规格说明不仅仅是软件开发人员的事,用户也起着至关重要的作用。用户必须对的事,用户也起着至关重要的作用。用户必须对软件功能和性能提出初步要求,并澄清一些模糊软件功能和性能提出初步要求,并澄清一些模糊概念。而软件分析人员则要认真了解用户的要求,概念。而软件分析人员则要认真了解用户的要求,细致地进行调查分析,把用户细致地进行调查分析,把用户“做什么做什么”的要求最的要求最终转换成一个完全的、精细的软件逻辑模型并写终转换成一个完全的、精细的软件逻辑模型并写出软件的需求规格说明,准确地表达用户的要求。出软

6、件的需求规格说明,准确地表达用户的要求。包括的内容有:包括的内容有:北华航天工业学院计算机系 制作单击此处编辑母版标题样式单击此处编辑母版标题样式1.11.1软件开发过程软件开发过程1.1.11.1.1需求分析需求分析1 1)功能需求)功能需求 2 2)性能需求)性能需求 3 3)可靠性和可用性需求)可靠性和可用性需求4 4)出错性处理需求)出错性处理需求5 5)接口需求)接口需求6 6)界面需求)界面需求7 7)其他需求)其他需求北华航天工业学院计算机系 制作单击此处编辑母版标题样式单击此处编辑母版标题样式1.11.1软件开发过程软件开发过程1.1.21.1.2系统分析与设计系统分析与设计系

7、统分析与设计可以分为总体设计和详细设计。系统分析与设计可以分为总体设计和详细设计。总体设计的基本目的是:从整体角度上来说,系总体设计的基本目的是:从整体角度上来说,系统该如何实现;总体设计称为概要设计或初步设统该如何实现;总体设计称为概要设计或初步设计。这个阶段工作将划分出系统的组成:程序、计。这个阶段工作将划分出系统的组成:程序、文件、数据库、人工过程和文档等,另外就是设文件、数据库、人工过程和文档等,另外就是设计软件的结构,即确定系统由哪些功能模块组成,计软件的结构,即确定系统由哪些功能模块组成,以及相互之间的关系。以及相互之间的关系。详细设计的根本目标是确定怎样具体实现所要求详细设计的根

8、本目标是确定怎样具体实现所要求的系统,即能够对系统进行精确描述,为编码打的系统,即能够对系统进行精确描述,为编码打下基础。详细设计还没有编写具体代码,只是设下基础。详细设计还没有编写具体代码,只是设计出计出“程序蓝图程序蓝图”,程序员根据这个蓝图编写出实,程序员根据这个蓝图编写出实际的程序代码。详细设计的结果决定了程序代码际的程序代码。详细设计的结果决定了程序代码的质量。的质量。北华航天工业学院计算机系 制作单击此处编辑母版标题样式单击此处编辑母版标题样式1.11.1软件开发过程软件开发过程1.1.31.1.3编码实现编码实现编码实现是把系统分析与设计结果转换成某种程编码实现是把系统分析与设计

9、结果转换成某种程序设计语言代码的过程。程序的质量主要取决于序设计语言代码的过程。程序的质量主要取决于软件的设计质量。但是,所选用的程序设计语言软件的设计质量。但是,所选用的程序设计语言的特点及编程风格也对程序的可靠性、可读性、的特点及编程风格也对程序的可靠性、可读性、可测试性和可维护性产生深远的影响。可测试性和可维护性产生深远的影响。在编写代码过程中,注意编码风格,要求源代码在编写代码过程中,注意编码风格,要求源代码的逻辑简明清晰、易读易懂,为达到这个目的,的逻辑简明清晰、易读易懂,为达到这个目的,应该遵循下述规则:应该遵循下述规则:北华航天工业学院计算机系 制作单击此处编辑母版标题样式单击此

10、处编辑母版标题样式1.11.1软件开发过程软件开发过程1.1.31.1.3编码实现编码实现1 1)程序内部文档)程序内部文档程序内部文档包括恰当的标识符、适当的注释和程序内部文档包括恰当的标识符、适当的注释和程序的组织风格等。程序的组织风格等。选取含义鲜明的标识符,能够正确提示程序对象选取含义鲜明的标识符,能够正确提示程序对象所代表的实体,有助于对程序的理解。如果使用所代表的实体,有助于对程序的理解。如果使用缩写,缩写规则应该一致,并给每个标志符加上缩写,缩写规则应该一致,并给每个标志符加上注释。注释。北华航天工业学院计算机系 制作单击此处编辑母版标题样式单击此处编辑母版标题样式1.11.1软

11、件开发过程软件开发过程1.1.31.1.3编码实现编码实现1 1)程序内部文档(续)程序内部文档(续)注释是阅读和理解程序的重要手段,通常在每个注释是阅读和理解程序的重要手段,通常在每个模块的开始有一段序言性注释,简要说明模块的模块的开始有一段序言性注释,简要说明模块的功能、主要算法、接口情况、重要数据说明以及功能、主要算法、接口情况、重要数据说明以及开发人员、时间、版本等内容。注释的内容一定开发人员、时间、版本等内容。注释的内容一定要正确,错误的注释不仅不对理解程序起帮助,要正确,错误的注释不仅不对理解程序起帮助,反而错误的引导对程序的理解。反而错误的引导对程序的理解。程序源代码的组织对于程

12、序的可读性影响很大,程序源代码的组织对于程序的可读性影响很大,利用适当的空白改善程序的视觉反应,使程序的利用适当的空白改善程序的视觉反应,使程序的层次结构清晰明显。层次结构清晰明显。北华航天工业学院计算机系 制作单击此处编辑母版标题样式单击此处编辑母版标题样式1.11.1软件开发过程软件开发过程1.1.31.1.3编码实现编码实现2 2)数据说明)数据说明数据说明的次序标准化,可按照数据结构或数据数据说明的次序标准化,可按照数据结构或数据类型确定的次序。当多个变量名在一个说明语句类型确定的次序。当多个变量名在一个说明语句中,应按照字母顺序排列这些变量。在说明一个中,应按照字母顺序排列这些变量。

13、在说明一个复杂的数据结构时,应加注释说明方法和特点。复杂的数据结构时,应加注释说明方法和特点。不同数据类型应按存储空间的大小顺序说明。不同数据类型应按存储空间的大小顺序说明。北华航天工业学院计算机系 制作单击此处编辑母版标题样式单击此处编辑母版标题样式1.11.1软件开发过程软件开发过程1.1.31.1.3编码实现编码实现3 3)语句构造)语句构造在构造语句时,应遵循的原则是简单而直接,不在构造语句时,应遵循的原则是简单而直接,不能为了提高效率而使程序变得过分复杂。具体规能为了提高效率而使程序变得过分复杂。具体规则如下:则如下:在一行内只写一条语句,并采取适当的缩进格式,在一行内只写一条语句,

14、并采取适当的缩进格式,使程序的逻辑和功能变得更加明确;使程序的逻辑和功能变得更加明确;北华航天工业学院计算机系 制作单击此处编辑母版标题样式单击此处编辑母版标题样式1.11.1软件开发过程软件开发过程1.1.31.1.3编码实现编码实现3 3)语句构造(续)语句构造(续)尽量避免复杂的条件;尽量避免复杂的条件;尽量减少非操作的条件语句;尽量减少非操作的条件语句;避免大量使用循环嵌套或条件嵌套;避免大量使用循环嵌套或条件嵌套;使用括号来表达逻辑表达式或算术表达式的运算使用括号来表达逻辑表达式或算术表达式的运算顺序。顺序。北华航天工业学院计算机系 制作单击此处编辑母版标题样式单击此处编辑母版标题样

15、式1.11.1软件开发过程软件开发过程1.1.31.1.3编码实现编码实现4 4)输入输出)输入输出在设计和编写程序时应考虑如下规则:在设计和编写程序时应考虑如下规则:对所有输入的数据都进行验证,从而识别错误的对所有输入的数据都进行验证,从而识别错误的输入,以保证每个数据的有效性;输入,以保证每个数据的有效性;对所有输入数据进行输入提示,详细说明可用的对所有输入数据进行输入提示,详细说明可用的选择或边界值;选择或边界值;北华航天工业学院计算机系 制作单击此处编辑母版标题样式单击此处编辑母版标题样式1.11.1软件开发过程软件开发过程1.1.31.1.3编码实现编码实现4 4)输入输出(续)输入

16、输出(续)检查输入项重要组合的合法性,必要时报告输入检查输入项重要组合的合法性,必要时报告输入状态信息;状态信息;使得输入的步骤和操作尽可能简单,并保持简单使得输入的步骤和操作尽可能简单,并保持简单的输入格式;的输入格式;输入一批数据时,最好使用数据结束标志,而不输入一批数据时,最好使用数据结束标志,而不要由用户指定输入数据数目;要由用户指定输入数据数目;输入数据时,应允许使用自由格式输入,应允许输入数据时,应允许使用自由格式输入,应允许有缺省值;有缺省值;北华航天工业学院计算机系 制作单击此处编辑母版标题样式单击此处编辑母版标题样式1.11.1软件开发过程软件开发过程1.1.31.1.3编码

17、实现编码实现4 4)输入输出(续)输入输出(续)在以交互式输入在以交互式输入/ /输出方式进行输入时,要在屏幕输出方式进行输入时,要在屏幕上使用提示符明确提示交互输入的请求,指明可上使用提示符明确提示交互输入的请求,指明可使用选择项的种类和取值范围。同时,在数据输使用选择项的种类和取值范围。同时,在数据输入的过程中和输入结束时,也要在屏幕上给出状入的过程中和输入结束时,也要在屏幕上给出状态信息;态信息;当程序语言对输入格式有严格要求时,应保持输当程序语言对输入格式有严格要求时,应保持输入格式与输入语句要求的一致性;入格式与输入语句要求的一致性;给所有的输出加注解,并设计输出报表格式。给所有的输

18、出加注解,并设计输出报表格式。北华航天工业学院计算机系 制作单击此处编辑母版标题样式单击此处编辑母版标题样式1.11.1软件开发过程软件开发过程1.1.31.1.3编码实现编码实现5 5)效率)效率(1 1)有关程序效率的几条准则)有关程序效率的几条准则效率是一个性能要求,目标值应当在需求分析阶效率是一个性能要求,目标值应当在需求分析阶段给出。软件效率以需求为准,不应以人力所及段给出。软件效率以需求为准,不应以人力所及为准。为准。好的设计可以提高效率。好的设计可以提高效率。程序的效率与程序的简单性相关,不要牺牲程序程序的效率与程序的简单性相关,不要牺牲程序的清晰性和可读性来不必要地提高效率。的

19、清晰性和可读性来不必要地提高效率。北华航天工业学院计算机系 制作单击此处编辑母版标题样式单击此处编辑母版标题样式1.11.1软件开发过程软件开发过程1.1.31.1.3编码实现编码实现5 5)效率(续)效率(续)(2 2)算法对效率的影响)算法对效率的影响在编程序前,尽可能化简有关的算术表达式和逻在编程序前,尽可能化简有关的算术表达式和逻辑表达式;辑表达式;仔细检查算法中的嵌套的循环,尽可能将某些语仔细检查算法中的嵌套的循环,尽可能将某些语句或表达式移到循环外面;句或表达式移到循环外面;尽量避免使用多维数组;尽量避免使用多维数组;尽量避免使用指针和复杂的表达式;尽量避免使用指针和复杂的表达式;

20、采用快速的算术运算;采用快速的算术运算;不要混淆数据类型,避免在表达式中出现类型混不要混淆数据类型,避免在表达式中出现类型混杂;杂;尽量采用整数算术表达式和布尔表达式;尽量采用整数算术表达式和布尔表达式;选用等效的高效率算法。选用等效的高效率算法。北华航天工业学院计算机系 制作单击此处编辑母版标题样式单击此处编辑母版标题样式1.11.1软件开发过程软件开发过程1.1.31.1.3编码实现编码实现5 5)效率(续)效率(续)(3 3)影响存储器效率的因素)影响存储器效率的因素在大型计算机中必须考虑操作系统页式调度的特在大型计算机中必须考虑操作系统页式调度的特点,一般来说,使用能保持功能的结构化控

21、制结点,一般来说,使用能保持功能的结构化控制结构,是提高效率的有效方法。构,是提高效率的有效方法。在微处理器中如果要求使用最少的存储单元,则在微处理器中如果要求使用最少的存储单元,则应选用紧缩存储器特性的编译程序,在非常必要应选用紧缩存储器特性的编译程序,在非常必要时可以使用汇编语言。时可以使用汇编语言。提高执行效率的技术通常也能提高存储器效率。提高执行效率的技术通常也能提高存储器效率。提高存储器的关键是简单。提高存储器的关键是简单。北华航天工业学院计算机系 制作单击此处编辑母版标题样式单击此处编辑母版标题样式1.11.1软件开发过程软件开发过程1.1.31.1.3编码实现编码实现5 5)效率

22、(续)效率(续)(4 4)影响输入)影响输入/ /输出的因素输出的因素对所有的输入对所有的输入/ /输出操作,安排适当的缓冲区,以输出操作,安排适当的缓冲区,以减少频繁的信息交换。减少频繁的信息交换。对辅助存储(例如磁盘),选择尽可能简单的,对辅助存储(例如磁盘),选择尽可能简单的,可接受的存取方法;可接受的存取方法;对辅助存储的输入对辅助存储的输入/ /输出,应当成块传送;输出,应当成块传送;对终端或打印机的输入对终端或打印机的输入/ /输出,应考虑设备特性,输出,应考虑设备特性,改善输入改善输入/ /输出的质量和速度;输出的质量和速度;任何不易理解的,对改善输入任何不易理解的,对改善输入/

23、 /输出效果关系不大输出效果关系不大的措施都是不可取的;的措施都是不可取的;不应该为追求所谓超高效的输入不应该为追求所谓超高效的输入/ /输出,进而损害输出,进而损害程序的可理解性;程序的可理解性;良好的输入良好的输入/ /输出程序设计风格对提高输入输出程序设计风格对提高输入/ /输出输出效率会有明显的效果。效率会有明显的效果。北华航天工业学院计算机系 制作单击此处编辑母版标题样式单击此处编辑母版标题样式1.11.1软件开发过程软件开发过程1.1.41.1.4测试测试软件测试按阶段划分为两种,一种是在编写出每软件测试按阶段划分为两种,一种是在编写出每个模块之后就进行的测试,称为单元测试。一种个

24、模块之后就进行的测试,称为单元测试。一种是编码阶段结束后的系统测试。是编码阶段结束后的系统测试。1 1)首先了解软件测试的目的,)首先了解软件测试的目的,g.j.myersg.j.myers对软件测对软件测试的目的提出的观点:试的目的提出的观点:软件测试是为了发现错误而执行程序的过程。软件测试是为了发现错误而执行程序的过程。一个好的测试用例能够发现至今尚未发现的错误。一个好的测试用例能够发现至今尚未发现的错误。一个成功的测试是发现了至今尚未发现的错误的一个成功的测试是发现了至今尚未发现的错误的测试。测试。北华航天工业学院计算机系 制作单击此处编辑母版标题样式单击此处编辑母版标题样式1.11.1

25、软件开发过程软件开发过程1.1.41.1.4测试测试2 2)软件测试的一些指导原则:)软件测试的一些指导原则:测试用例应由输入数据和预期的输出数据两部分测试用例应由输入数据和预期的输出数据两部分组成。组成。测试用例不仅选用合理的输入数据,还要选择不测试用例不仅选用合理的输入数据,还要选择不合理的输入数据。合理的输入数据。除了检查程序是否做了它应该做的事,还应该检除了检查程序是否做了它应该做的事,还应该检查程序是否做了它不应该做的事。查程序是否做了它不应该做的事。应制定测试计划并严格执行,排除随意性。应制定测试计划并严格执行,排除随意性。长期保留测试用例。长期保留测试用例。对发现错误较多的程序段

26、,应进行更深入的测试。对发现错误较多的程序段,应进行更深入的测试。程序员避免测试自己的程序。程序员避免测试自己的程序。北华航天工业学院计算机系 制作单击此处编辑母版标题样式单击此处编辑母版标题样式1.11.1软件开发过程软件开发过程1.1.41.1.4测试测试3 3)测试方法一般分为两大类:动态测试方法和静态)测试方法一般分为两大类:动态测试方法和静态测试方法,而动态测试方法又分为测试方法,而动态测试方法又分为: : 黑盒测试黑盒测试 白盒测试白盒测试北华航天工业学院计算机系 制作单击此处编辑母版标题样式单击此处编辑母版标题样式1.11.1软件开发过程软件开发过程1.1.41.1.4测试测试(

27、1 1)黑盒测试)黑盒测试黑盒测试又称为功能测试或数据驱动测试。该方黑盒测试又称为功能测试或数据驱动测试。该方法把被测试对象看成一个黑盒子,测试人员完全法把被测试对象看成一个黑盒子,测试人员完全不考虑程序的内部结构和处理过程,只在软件的不考虑程序的内部结构和处理过程,只在软件的接口处进行测试,检查程序是否满足功能要求。接口处进行测试,检查程序是否满足功能要求。黑盒测试主要发现以下错误:黑盒测试主要发现以下错误:是否有不正确或遗漏了的功能。是否有不正确或遗漏了的功能。在接口上,能否正确地接受输入数据,能否产生在接口上,能否正确地接受输入数据,能否产生正确的输出信息。正确的输出信息。访问外部信息是

28、否有错。访问外部信息是否有错。性能上是否满足要求等。性能上是否满足要求等。注意:穷举地输入测试数据进行黑盒测试是不可注意:穷举地输入测试数据进行黑盒测试是不可能的。能的。北华航天工业学院计算机系 制作单击此处编辑母版标题样式单击此处编辑母版标题样式1.11.1软件开发过程软件开发过程1.1.41.1.4测试测试(2 2)白盒测试)白盒测试 此方法把测试对象看作一个打开的盒子,测试人员须了解此方法把测试对象看作一个打开的盒子,测试人员须了解程序的内部结构和处理过程,以检查处理过程的细节为基程序的内部结构和处理过程,以检查处理过程的细节为基础,对程序中尽可能多的逻辑路径进行测试,检验内部控础,对程

29、序中尽可能多的逻辑路径进行测试,检验内部控制结构和数据结构是否有错,实际的运行状态与预期的状制结构和数据结构是否有错,实际的运行状态与预期的状态是否一致。态是否一致。 一般情况下,系统测试应测试以下几个部分:一般情况下,系统测试应测试以下几个部分: 系统是否实现了需求分析阶段要求实现的所有功能;系统是否实现了需求分析阶段要求实现的所有功能; 在正常条件下,系统运行是否正常;在正常条件下,系统运行是否正常; 在非正常条件下,系统运行是否正常;在非正常条件下,系统运行是否正常;北华航天工业学院计算机系 制作单击此处编辑母版标题样式单击此处编辑母版标题样式1.11.1软件开发过程软件开发过程1.1.

30、51.1.5部署部署简单地讲,部署就是安装,就是把软件放置到相简单地讲,部署就是安装,就是把软件放置到相应的地方,并且进行相应的配置(一般称作部署应的地方,并且进行相应的配置(一般称作部署描述),让软件能够正常运行起来。描述),让软件能够正常运行起来。部署阶段中的任务和活动包括通知用户部署情况、部署阶段中的任务和活动包括通知用户部署情况、执行培训计划、执行数据输入或转换、安装系统、执行培训计划、执行数据输入或转换、安装系统、运行部署后评审、修订先前的文档。运行部署后评审、修订先前的文档。北华航天工业学院计算机系 制作单击此处编辑母版标题样式单击此处编辑母版标题样式1.11.1软件开发过程软件开

31、发过程1.1.61.1.6维护维护软件维护是在软件已经交付使用之后,为了改正软件维护是在软件已经交付使用之后,为了改正错误或满足新的要求而对软件进行修改的过程。错误或满足新的要求而对软件进行修改的过程。软件维护通常包括软件维护通常包括4 4类活动:为纠正错误而进行的类活动:为纠正错误而进行的改正性维护;为适应外部环境变化而进行的适应改正性维护;为适应外部环境变化而进行的适应性维护;为改进原有软件而进行的完善性维护;性维护;为改进原有软件而进行的完善性维护;为改进将来的可维护性和可靠性而进行的预防性为改进将来的可维护性和可靠性而进行的预防性维护。维护。决定软件的可维护性的因素有:软件的可理解性、

32、决定软件的可维护性的因素有:软件的可理解性、可测试性、可修改性、可移植性和可重用性。软可测试性、可修改性、可移植性和可重用性。软件重用技术是从根本上提高软件可维护性的重要件重用技术是从根本上提高软件可维护性的重要技术。技术。北华航天工业学院计算机系 制作单击此处编辑母版标题样式单击此处编辑母版标题样式1.21.2软件开发方法软件开发方法在在2020世纪世纪6060年代中期,计算机软件的开发和维护年代中期,计算机软件的开发和维护遇到了一系列严重的问题,即软件危机,这些严遇到了一系列严重的问题,即软件危机,这些严重的问题不仅与软件本身的特点有关,还和软件重的问题不仅与软件本身的特点有关,还和软件开

33、发与维护的方法不正确有关。为解决软件危机,开发与维护的方法不正确有关。为解决软件危机,19681968年在第一届年在第一届natonato会议上提出了软件工程的思会议上提出了软件工程的思想,并不断地得到发展和完善。同时,也在不断想,并不断地得到发展和完善。同时,也在不断地探索新的软件开发设计方法,提出许多开发方地探索新的软件开发设计方法,提出许多开发方法,包括面向数据流的开发设计方法、结构化软法,包括面向数据流的开发设计方法、结构化软件开发方法、面向数据结构的软件开发方法、面件开发方法、面向数据结构的软件开发方法、面向问题的分析方法、面向对象的软件开发方法、向问题的分析方法、面向对象的软件开发

34、方法、原型化方法等。原型化方法等。下面对这些软件开发方法做以简单介绍。下面对这些软件开发方法做以简单介绍。北华航天工业学院计算机系 制作单击此处编辑母版标题样式单击此处编辑母版标题样式1.21.2软件开发方法软件开发方法1.2.11.2.1面向数据流的开发设计方法面向数据流的开发设计方法 面向数据流的设计方法的目标是给出设计软件结构的一个面向数据流的设计方法的目标是给出设计软件结构的一个系统化途径。在软件开发的需求分析阶段,重点考虑信息系统化途径。在软件开发的需求分析阶段,重点考虑信息流,通常用数据流图描述信息在系统中的加工和流动情况。流,通常用数据流图描述信息在系统中的加工和流动情况。面向数

35、据流的设计方法定义了一些不同的面向数据流的设计方法定义了一些不同的“映射映射”,利用这,利用这些映射可以把数据流变换成软件结构。数据流有两种类型:些映射可以把数据流变换成软件结构。数据流有两种类型:一是交换流,一些数据信息沿输入路径进入系统,通过变一是交换流,一些数据信息沿输入路径进入系统,通过变换中心,加工处理后沿输出路径输出,离开系统。另一种换中心,加工处理后沿输出路径输出,离开系统。另一种是事务流,这种数据流以事务为中心,数据沿输入路径到是事务流,这种数据流以事务为中心,数据沿输入路径到达一个处理,这个处理根据数据的类型在若干个动作序列达一个处理,这个处理根据数据的类型在若干个动作序列中

36、选出一个来执行。中选出一个来执行。 变换分析是一系列设计步骤的总称,经过这些步骤把具有变换分析是一系列设计步骤的总称,经过这些步骤把具有变换流特点的数据流图按预先确定的模式映射成软件结构。变换流特点的数据流图按预先确定的模式映射成软件结构。北华航天工业学院计算机系 制作单击此处编辑母版标题样式单击此处编辑母版标题样式1.21.2软件开发方法软件开发方法1.2.11.2.1面向数据流的开发设计方法面向数据流的开发设计方法这种方法的设计步骤有:这种方法的设计步骤有:第一步:复查基本系统模型,确保系统的输入数第一步:复查基本系统模型,确保系统的输入数据和输出数据符合实际需要。据和输出数据符合实际需要

37、。第二步:复查和精化数据流图,确保数据流图给第二步:复查和精化数据流图,确保数据流图给出的目标系统是正确的逻辑模型,而且应该使数出的目标系统是正确的逻辑模型,而且应该使数据流图中每个处理都代表一个规模适中相对独立据流图中每个处理都代表一个规模适中相对独立的子功能。的子功能。第三步:确定数据流图具有变换特性还是事务特第三步:确定数据流图具有变换特性还是事务特性。性。第四步:确定输入和输出流的边界,从而孤立出第四步:确定输入和输出流的边界,从而孤立出变换中心。变换中心。北华航天工业学院计算机系 制作单击此处编辑母版标题样式单击此处编辑母版标题样式1.21.2软件开发方法软件开发方法1.2.11.2

38、.1面向数据流的开发设计方法面向数据流的开发设计方法第五步:完成第五步:完成“第一级分解第一级分解”,所谓分解就是分配,所谓分解就是分配控制的过程,软件结构代表对控制的自顶向下的控制的过程,软件结构代表对控制的自顶向下的分配。分配。第六步:完成第六步:完成“第二级分解第二级分解”,所谓第二级分解就,所谓第二级分解就是把数据流图中的每个处理映射成软件结构中一是把数据流图中的每个处理映射成软件结构中一个适当的模块。应根据实际情况和标准规则,进个适当的模块。应根据实际情况和标准规则,进行第二级分解。行第二级分解。第七步:使用设计度量和启发式规则对第一次分第七步:使用设计度量和启发式规则对第一次分割得

39、到的软件结构进行精化。割得到的软件结构进行精化。经过上述的步骤,开发出软件的整体表示。经过上述的步骤,开发出软件的整体表示。北华航天工业学院计算机系 制作单击此处编辑母版标题样式单击此处编辑母版标题样式1.21.2软件开发方法软件开发方法1.2.21.2.2结构化软件开发方法结构化软件开发方法 结构化开发方法是由结构化开发方法是由e.yourdon e.yourdon 和和 l.l.constantine l.l.constantine 共共同提出的,即所谓的同提出的,即所谓的sasd sasd 方方 法,法, 也可称为面向功能的也可称为面向功能的软件开发方法或面向数据流的软件开发方法。软件开

40、发方法或面向数据流的软件开发方法。 yourdonyourdon方法是方法是8080年代使用最广泛的软件开发方法。它首年代使用最广泛的软件开发方法。它首先用结构化分析(先用结构化分析(sasa)对软件进行需求分析,然后用结构)对软件进行需求分析,然后用结构化设计(化设计(sdsd)方法进行总体设计,最后是结构化编程)方法进行总体设计,最后是结构化编程(spsp)。它给出了两类典型的软件结构(变换型和事务型)。它给出了两类典型的软件结构(变换型和事务型)使软件开发的成功率大大提高。使软件开发的成功率大大提高。 结构化分析方法结构化分析方法(structured method(structured

41、 method,结构化方法,结构化方法) )是强是强调开发方法的结构合理性以及所开发软件的结构合理性的调开发方法的结构合理性以及所开发软件的结构合理性的软件开发方法。结构是指系统内各个组成要素之间的相互软件开发方法。结构是指系统内各个组成要素之间的相互联系、相互作用的框架。结构化开发方法提出了一组提高联系、相互作用的框架。结构化开发方法提出了一组提高软件结构合理性的准则,如分解与抽象、模块独立性、信软件结构合理性的准则,如分解与抽象、模块独立性、信息隐蔽等。针对软件生存周期各个不同的阶段,它有结构息隐蔽等。针对软件生存周期各个不同的阶段,它有结构化分析化分析 (sa)(sa)、结构化设计、结构

42、化设计(sd)(sd)和结构化程序设计和结构化程序设计(sp)(sp)等等方法。方法。北华航天工业学院计算机系 制作单击此处编辑母版标题样式单击此处编辑母版标题样式1.21.2软件开发方法软件开发方法1.2.31.2.3面向数据结构的软件开发方法面向数据结构的软件开发方法 jacksonjackson方法是最典型的面向数据结构的软件开发方法方法是最典型的面向数据结构的软件开发方法(简称(简称jsdjsd方法),方法),jacksonjackson方法把问题分解为可由三种基方法把问题分解为可由三种基本结构形式表示的各部分的层次结构。三种基本结构就是本结构形式表示的各部分的层次结构。三种基本结构就

43、是顺序、选择和重复。三种基本结构可以进行组合,形成复顺序、选择和重复。三种基本结构可以进行组合,形成复杂的结构体系。这一方法从目标系统的输入、输出数据结杂的结构体系。这一方法从目标系统的输入、输出数据结构入手,导出程序框架结构,再补充其它细节,就可得到构入手,导出程序框架结构,再补充其它细节,就可得到完整的程序结构图。这一方法对输入、输出数据结构明确完整的程序结构图。这一方法对输入、输出数据结构明确的中小型系统非常有效,如商业应用中的文件表格处理。的中小型系统非常有效,如商业应用中的文件表格处理。该方法也可与其它方法结合,用于模块的具体设计。该方法也可与其它方法结合,用于模块的具体设计。 ja

44、cksonjackson系统开发方法把分析的重点放在构造与系统相关系统开发方法把分析的重点放在构造与系统相关联的现实世界,并建立现实世界的信息域的模型上。它实联的现实世界,并建立现实世界的信息域的模型上。它实际上是支持软件分析与设计的一组连续的技术步骤。而且,际上是支持软件分析与设计的一组连续的技术步骤。而且,jsdjsd方法的最终目标是生成软件的过程性描述,没有特别方法的最终目标是生成软件的过程性描述,没有特别考虑程序模块化结构,模块只是作为过程的副产品而出现,考虑程序模块化结构,模块只是作为过程的副产品而出现,没有特别强调模块独立性。没有特别强调模块独立性。北华航天工业学院计算机系 制作单

45、击此处编辑母版标题样式单击此处编辑母版标题样式1.21.2软件开发方法软件开发方法1.2.31.2.3面向数据结构的软件开发方法面向数据结构的软件开发方法 使用使用jsdjsd方法的步骤如下:方法的步骤如下:(1 1)实体动作分析)实体动作分析(2 2)实体结构分析)实体结构分析(3 3)定义初始模型)定义初始模型(4 4)功能描述)功能描述(5 5)决定系统时间特性)决定系统时间特性(6 6)实现)实现北华航天工业学院计算机系 制作单击此处编辑母版标题样式单击此处编辑母版标题样式1.21.2软件开发方法软件开发方法1.2.41.2.4面向问题的分析方法面向问题的分析方法 面向问题的分析方法面

46、向问题的分析方法pampam(problem analysis methodproblem analysis method),),是是8080年代末由日立公司提出的一种软件开发方法。年代末由日立公司提出的一种软件开发方法。 它的基本思想是考虑输入、输出数据结构,指导系统的它的基本思想是考虑输入、输出数据结构,指导系统的分解,在系统分析指导下逐步综合。这一方法的具体步骤分解,在系统分析指导下逐步综合。这一方法的具体步骤是:从输入、输出数据结构导出基本处理框;分析这些处是:从输入、输出数据结构导出基本处理框;分析这些处理框之间的先后关系;按先后关系逐步综合处理框,直到理框之间的先后关系;按先后关系

47、逐步综合处理框,直到画出整个系统的画出整个系统的padpad图(问题分析图)。图(问题分析图)。 这一方法本质上是综合的自底向上的方法,但在逐步综合这一方法本质上是综合的自底向上的方法,但在逐步综合之前已进行了有目的的分解,这个目的就是充分考虑系统之前已进行了有目的的分解,这个目的就是充分考虑系统的输入、输出数据结构。的输入、输出数据结构。pampam方法的另一个优点是使用方法的另一个优点是使用padpad图。这是一种二维树形结构图,是到目前为止最好的具体图。这是一种二维树形结构图,是到目前为止最好的具体设计表示方法之一。当然由于在输入、输出数据结构与整设计表示方法之一。当然由于在输入、输出数

48、据结构与整个系统之间同样存在着鸿沟,这一方法仍只适用于解决中个系统之间同样存在着鸿沟,这一方法仍只适用于解决中小型问题。小型问题。北华航天工业学院计算机系 制作单击此处编辑母版标题样式单击此处编辑母版标题样式1.21.2软件开发方法软件开发方法1.2.51.2.5面向对象的软件开发方法面向对象的软件开发方法 随着随着oopoop(面向对象编程)向(面向对象编程)向oodood(面向对象设计)和(面向对象设计)和ooaooa(面向对象分析)的发展,最终形成面向对象的软件开发(面向对象分析)的发展,最终形成面向对象的软件开发方法方法omt (object modeling techniqueomt (object modeling technique)。这是一种自底)。这是一种自底向上和自顶向下相结合的方法,而且它以对象建模为基础,向上和自顶向下相结合的方法,而且它以对象建模为基础,从而不仅考虑了输入、输出数据结构,实际上也包含了所从而不仅考虑了输入、输出数据结构,实际上也包含了所

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论