第十章传统的软件开发方法课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《第十章传统的软件开发方法课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第十 传统 软件 开发 方法 课件
- 资源描述:
-
1、第第 1 页页第十章第十章 传统的软件开发方法传统的软件开发方法 10.1 结构化开发方法概述结构化开发方法概述 10.2 系统分析与定义系统分析与定义 10.3 系统设计系统设计 10.4 系统编程系统编程 10.5 系统测试系统测试 10.6 系统维护系统维护第第 2 页页10.1 结构化开发方法结构化开发方法l基本思想:把一个复杂问题的求解过程基本思想:把一个复杂问题的求解过程分阶段进行,每个阶段处理的问题都控分阶段进行,每个阶段处理的问题都控制在人们容易理解和处理的范围内。制在人们容易理解和处理的范围内。l基本要点:基本要点: 自顶向下自顶向下 逐步求精逐步求精 模块化设计模块化设计
2、结构化编码结构化编码 主程序员组织主程序员组织 结构化设计结构化设计SD第第 3 页页“自顶向下自顶向下”l是将复杂的大问题,分解为小问题,找是将复杂的大问题,分解为小问题,找出问题的关键、重点所在,同时找出技出问题的关键、重点所在,同时找出技术难点来。然后用精确的思维定性、定术难点来。然后用精确的思维定性、定量地描述问题。量地描述问题。第第 4 页页“逐步求精逐步求精”l将现实世界的问题经抽象转化为逻辑空间或求将现实世界的问题经抽象转化为逻辑空间或求解空间的问题。复杂问题经抽象化处理变为相解空间的问题。复杂问题经抽象化处理变为相对较简单的问题。经几次抽象(精化)处理,对较简单的问题。经几次抽
3、象(精化)处理,最后到求解域中只是非常简单的编程问题。求最后到求解域中只是非常简单的编程问题。求解(抽象)过程可以划分为若干个阶段,在不解(抽象)过程可以划分为若干个阶段,在不同阶段用不同工具来描述。实现细则在前期阶同阶段用不同工具来描述。实现细则在前期阶段可以不去管它。在每个阶段有不同的规划和段可以不去管它。在每个阶段有不同的规划和标准,产生出不同阶段的文档资料。标准,产生出不同阶段的文档资料。l求解问题不是一下子就用计算机语言却描述问求解问题不是一下子就用计算机语言却描述问题,而是分阶段;先用自然语言、题,而是分阶段;先用自然语言、DFD(数据(数据流程图)等工具一步步地去抽象、描述,最后
4、流程图)等工具一步步地去抽象、描述,最后用计算机语言却实现。用计算机语言却实现。第第 5 页页模块化处理模块化处理l把程序划分为若干个模块,而每个模块把程序划分为若干个模块,而每个模块完成一个子功能,把这些模块汇总起来完成一个子功能,把这些模块汇总起来构成一个有机整体,完成指定的功能。构成一个有机整体,完成指定的功能。l模块化的目的是为了降低软件复杂度,模块化的目的是为了降低软件复杂度,使软件设计,调试和维护等操作变得简使软件设计,调试和维护等操作变得简易。易。第第 6 页页结构化编码结构化编码lSP编码的方法强调清晰简洁,它是一种编码的方法强调清晰简洁,它是一种构造程序的技术,有利于提高软件
5、生产构造程序的技术,有利于提高软件生产率及降低软件维护代价。率及降低软件维护代价。l1966年年Bohm和和Jacopin就证明了只要用就证明了只要用三中基本结构,就足以表示所有形式的三中基本结构,就足以表示所有形式的程序控制结构。程序控制结构。l1978年年Kernihan和和Plauger对一些编码对一些编码风格进行归纳,提出了风格进行归纳,提出了16种具体方法。种具体方法。第第 7 页页主程序员组织主程序员组织l主程序员主程序员 组织负责人组织负责人,全权负责全权负责,包括解决技术包括解决技术难题难题,有时一些关键性技术问题有时一些关键性技术问题,主程序员应亲主程序员应亲自动手遍程去解决
6、;他必须是技术高手,是程自动手遍程去解决;他必须是技术高手,是程序生产过程中的总体设计师。序生产过程中的总体设计师。l程序员程序员 按任务书要求编程;是程序生产线上按任务书要求编程;是程序生产线上的的“工人工人”。l测试工程师测试工程师 具有较高遍程水准和经验,负责具有较高遍程水准和经验,负责系统测试;是程序生产过程中的检验员。系统测试;是程序生产过程中的检验员。l文档人员文档人员 自始至终参加程序生产活动,负责自始至终参加程序生产活动,负责编写一切有关文档资料。编写一切有关文档资料。第第 8 页页结构化方法的体系结构结构化方法的体系结构l结构化方法的体系结构是结构化方法的体系结构是: 结构化
7、分析(结构化分析(SAStructure Analysis) 结构化设计(结构化设计(SDStructure Design) 结构化程序设计(结构化程序设计(SPStructure Programing)第第 9 页页结构化分析结构化分析SAlSA方法是建立在自顶向下、逐步求精思方法是建立在自顶向下、逐步求精思想基础上的分析方法,它的要点是分解想基础上的分析方法,它的要点是分解和抽象:和抽象: 把复杂问题自顶向下逐层分解,再从分解出把复杂问题自顶向下逐层分解,再从分解出的对象中抽象出相对简单的子问题。的对象中抽象出相对简单的子问题。 经过一系列分解和抽象,到最底层的问题已经过一系列分解和抽象,
8、到最底层的问题已经是很容易求解的了。经是很容易求解的了。第第 10 页页结构化设计结构化设计SDlSD方法是由方法是由IBM公司的公司的Constentine等等人花了十几年时间研究出来的一种程序人花了十几年时间研究出来的一种程序设计方法,发表于设计方法,发表于1974年。年。lSD是一种用于概要设计的方法,与是一种用于概要设计的方法,与SA方方法配合使用。法配合使用。l其目标:建立一个结构良好的软件系统。其目标:建立一个结构良好的软件系统。lSD方法的基础是数据流程图,因此也称方法的基础是数据流程图,因此也称为面向数据流的设计方法。为面向数据流的设计方法。第第 11 页页结构化程序设计结构化
9、程序设计SPlSP的思想最早是由著名计算机科学家的思想最早是由著名计算机科学家E.W.Dijkstra提出的。提出的。l1966年年Bohm和和Jacopin证明了只用三种基本证明了只用三种基本结构就能实现任何一个入口,一个出口的程序;结构就能实现任何一个入口,一个出口的程序;l1977年年IBM公司的公司的Mills又进一步提出:又进一步提出:“程序程序应该只有一个入口和一个出口。应该只有一个入口和一个出口。l在长期程序设计的实践中,在长期程序设计的实践中,SP方法不断得以完方法不断得以完善,使之成为开发传统应用领域应用系统的主善,使之成为开发传统应用领域应用系统的主要方法之一。要方法之一。
10、l 第第 12 页页10.2 软件需求定义软件需求定义l软件需求分析软件需求分析 就是明确软件系统将来达到的目标。就是明确软件系统将来达到的目标。l目标目标 规定项目必须满足的总目标;规定项目必须满足的总目标; 确定项目的可行性;确定项目的可行性; 拟定完成项目各个目标的策略,制定项目拟定完成项目各个目标的策略,制定项目资源成本和进度。资源成本和进度。第第 13 页页1、软件需求定义的任务、软件需求定义的任务l理解和表达用户要求,制定软件开发计理解和表达用户要求,制定软件开发计划,编写要求说明书。划,编写要求说明书。l收集、理解、明确用户的要求,明确系收集、理解、明确用户的要求,明确系统做什么
11、?建立系统的逻辑模型,写出统做什么?建立系统的逻辑模型,写出开发计划和需求分析报告。开发计划和需求分析报告。第第 14 页页软件需求定义的工作流程软件需求定义的工作流程l 系统定义系统定义用户要求用户要求软件功能软件功能 范围范围功能说功能说明书明书软件计划软件计划软件定义软件定义软件功能软件功能费用、资源进度费用、资源进度第第 15 页页2、需求分析过程、需求分析过程l基本过程示意图基本过程示意图l沿数据流回溯沿数据流回溯l用户复查用户复查l细化数据流图细化数据流图l修改开发计划修改开发计划l书写文档资料书写文档资料l审查和复审审查和复审第第 16 页页需求分析的基本过程需求分析的基本过程l
12、 用户用户分析员分析员程序员程序员软件开发计划软件开发计划软件需求说明书软件需求说明书分析追踪分析追踪数据流图数据流图用户复查用户复查细化数据细化数据流图流图无补充无补充修改修改需要分解需要分解不要分解不要分解有补充修改有补充修改交换意见交换意见作出贡献作出贡献第第 17 页页沿数据流回溯沿数据流回溯l通常从数据流图的输出端着手分析,要搞清楚:通常从数据流图的输出端着手分析,要搞清楚: 数据元素从哪儿来?数据元素从哪儿来? 每个输出数据元素又是从哪儿来的?每个输出数据元素又是从哪儿来的?l 有时对用户具体的数据元素还搞不清楚,则有时对用户具体的数据元素还搞不清楚,则需要和用户探讨、商量解决。需
13、要和用户探讨、商量解决。l通常把分析过程中得到的有关部门数据元素信通常把分析过程中得到的有关部门数据元素信息记录到数据字典息记录到数据字典DD中。把对算法的简明描述中。把对算法的简明描述记录在记录在IPO(输入(输入|处理处理|输出图)图中。输出图)图中。l通过分析而补充的数据流、数据存储和处理,通过分析而补充的数据流、数据存储和处理,应该添加到应该添加到DFD的适当位置上。的适当位置上。第第 18 页页用户复查用户复查l经分析将在数据流图回溯过程中找出的经分析将在数据流图回溯过程中找出的数据元素,并由此定义的数据元素,并由此定义的DD和算法是否和算法是否正确?这只能由最有发言权的用户来复正确
14、?这只能由最有发言权的用户来复查。查。l在复查过程中反映出新的问题,应及时在复查过程中反映出新的问题,应及时修改、补充修改、补充DFD、DD和和IPO图,并将对图,并将对系统的新认识及时记录下来。实际上,系统的新认识及时记录下来。实际上,追踪追踪DFD和复查系统的逻辑模型这两个和复查系统的逻辑模型这两个步骤是交替进行的循环过程。步骤是交替进行的循环过程。第第 19 页页细化数据流图细化数据流图l在反复循环的分析过程中,不断细化在反复循环的分析过程中,不断细化DFD(即把数据流图扩展到更低的层(即把数据流图扩展到更低的层次)。通过功能分解可以完成次)。通过功能分解可以完成DFD的细的细化,即将一
15、些处理比较复杂的功能再划化,即将一些处理比较复杂的功能再划分为若干个子功能。分为若干个子功能。第第 20 页页修改开发计划修改开发计划l在分析过程中可能会不断地修改原拟定在分析过程中可能会不断地修改原拟定的开发计划,这是正常的。的开发计划,这是正常的。第第 21 页页书写文档资料书写文档资料l在软件生命周期的各个阶段,作为阶段成果的在软件生命周期的各个阶段,作为阶段成果的组成部分组成部分文档资料,其作用如何强调都不文档资料,其作用如何强调都不过份。本阶段应完成过份。本阶段应完成4份文档资料:份文档资料: 系统规格说明系统规格说明 描述目标系统的概貌、功能要求、描述目标系统的概貌、功能要求、性能
16、、运行及将来可能提出的要求。性能、运行及将来可能提出的要求。 用户系统描述用户系统描述 从用户角度描述系统,类似一份用从用户角度描述系统,类似一份用户手册初稿。户手册初稿。 数据要求数据要求 包括包括DD、数据结构的层次框图等。、数据结构的层次框图等。 修改的开发计划修改的开发计划 包括成本估计、进度计划表、资包括成本估计、进度计划表、资源使用计划等。源使用计划等。第第 22 页页说明说明l需求说明书主要内容:需求说明书主要内容: 概述概述 开发系统的意义、目的、背景及技术术语;开发系统的意义、目的、背景及技术术语; 现性系统的概况现性系统的概况 业务流程、范围、存在的问题等;业务流程、范围、
17、存在的问题等; 需求说明需求说明 功能描述功能描述 信息描述:信息描述:DFD、DD、DS、IPO、接口等、接口等 性能描述性能描述 运行环境运行环境 系统限制系统限制l用户系统描述用户系统描述 系统功能和性能的描述系统功能和性能的描述 使用系统的主要步骤和方法使用系统的主要步骤和方法 系统用户的责任等系统用户的责任等第第 23 页页审查和复审审查和复审l分析阶段最后一步是按结束标准对该阶分析阶段最后一步是按结束标准对该阶段的工作成果进行正式的技术审查和管段的工作成果进行正式的技术审查和管理审查。理审查。第第 24 页页3、需求分析的原则、需求分析的原则l1能够表达和理解问题的信息域能够表达和
18、理解问题的信息域 l2要建立描述系统信息、功能和行为的要建立描述系统信息、功能和行为的模型模型l3能够对所建模型按一定形式进行分解能够对所建模型按一定形式进行分解 l4分清系统的逻辑视图和物理视图分清系统的逻辑视图和物理视图 第第 25 页页4、需求分析的图形工具、需求分析的图形工具l常用的描述工具常用的描述工具 数据流程图(数据流程图(DFD) 数据字典(数据字典(DD) 结构化语言结构化语言 判定表和判定树判定表和判定树第第 26 页页数据流图数据流图DFDl数据流图以图形的方式表达数据处理系数据流图以图形的方式表达数据处理系统中信息的变换和传递过程。它有四种统中信息的变换和传递过程。它有
19、四种基本符号:基本符号:SPX X数据源及数据终点数据源及数据终点加工加工 对数据进行的加工或变换,指向加工的数据流对数据进行的加工或变换,指向加工的数据流是输入数据;离开的是输出数据。是输入数据;离开的是输出数据。数据流数据流 具有名字且有流向的数据具有名字且有流向的数据文件文件 存放数据的场所存放数据的场所第第 27 页页数据流图的结构数据流图的结构l一个实际问题的数据加工流程是非常复一个实际问题的数据加工流程是非常复杂的。如果绘制在一个平面图上就显的杂的。如果绘制在一个平面图上就显的太乱了。因此,通常采用分层次结构。太乱了。因此,通常采用分层次结构。把一个复杂的问题,分解为一些相互独把一
20、个复杂的问题,分解为一些相互独立的子问题,再绘出分层立的子问题,再绘出分层DFD。第第 28 页页数据字典数据字典DD(Data Directory)lDD对数据流程图中出现的所有元素给出逻辑定对数据流程图中出现的所有元素给出逻辑定义。义。l内容内容 l 1) 数据流:编号、名称、简述、别名、构成、数据流:编号、名称、简述、别名、构成、来源、去向、流量来源、去向、流量l 2) 数据项目:编号、名称、简述、别名、类数据项目:编号、名称、简述、别名、类型、长度、位数型、长度、位数l 3) 数据文件:编号、名称、简述、别名、构数据文件:编号、名称、简述、别名、构成、关键字、存取要求成、关键字、存取要
21、求l 4) 处理处理 编号、名称、简述、别名、处理条编号、名称、简述、别名、处理条件、件、I/O内容、处理逻辑内容、处理逻辑第第 29 页页结构化语言结构化语言l例如例如:l DO CASE l CASE 时间时间12 AND 时间时间18l R-rent=rent;第第 30 页页判定表判定表l判定表把加工逻辑表示的更加清楚。表判定表把加工逻辑表示的更加清楚。表中纵向各列给出的不同的条件,横向各中纵向各列给出的不同的条件,横向各行则表示在任何条件下相应的处理。行则表示在任何条件下相应的处理。条件条件 结结 帐帐 时时 间间 12点前点前 1218点点 18点后点后处理处理不收费不收费收半费收
22、半费收全费收全费 第第 31 页页判定树判定树l判定树用来描述具有多个条件的数据加判定树用来描述具有多个条件的数据加工更容易被用户接受。树状的分枝表示工更容易被用户接受。树状的分枝表示多种不同的条件。多种不同的条件。结帐时间结帐时间=?1212点前点前 12181218点间点间 1818点后点后不收费不收费 收半费收半费 收全费收全费下一页第第 32 页页5、用于需求分析的软件工具、用于需求分析的软件工具l为保证软件需求的正确性和需求的一致为保证软件需求的正确性和需求的一致性,需要采用适当的软件工具支持需求性,需要采用适当的软件工具支持需求分析工作。软件工具应满足下列要求:分析工作。软件工具应
23、满足下列要求: 必须有形式化的语法(可让计算机自动处理)必须有形式化的语法(可让计算机自动处理) 能够导出详细的文档能够导出详细的文档 必须提供分析(测试)规格说明书的不一致必须提供分析(测试)规格说明书的不一致性和冗余性的手段,并能产生指明对完整性性和冗余性的手段,并能产生指明对完整性分析结果的报告。分析结果的报告。 能够改进通信状况能够改进通信状况第第 33 页页6、结构分析方法、结构分析方法(SA方法方法)l结构化分析方法的背景结构化分析方法的背景(形成形成) 早期无系统分析方法早期无系统分析方法(凭经验凭经验) 60年代美国的科学家提出一种理论年代美国的科学家提出一种理论: SP SD
24、 SA 目前研究的新热点是目前研究的新热点是: OOP OOD OOA 即面向对象的程序设计技术即面向对象的程序设计技术(OO-Object Oriented )第第 34 页页SA的一般步骤的一般步骤l1建立当前系统的物理模型建立当前系统的物理模型l2建立当前系统的逻辑模型建立当前系统的逻辑模型 l3、建立目标系统的逻辑模型、建立目标系统的逻辑模型第第 35 页页三、系统设计(软件的设计)三、系统设计(软件的设计)l系统设计概述目标和任务设计方法和步骤文档设计复审 第第 36 页页软件设计流程图软件设计流程图 概要设计概要设计复审复审要求说明书要求说明书软件软件结构结构可接收可接收详细设计详
25、细设计模块模块描述描述设计设计说明书说明书复审复审修改修改修改修改第第 37 页页1、软件设计概述、软件设计概述l目标和任务目标和任务 任务任务 依据分析结果,明确系统依据分析结果,明确系统“如何如何做?做?”, 建立实现方案。建立实现方案。 目标目标 提高软件系统的:提高软件系统的: 可维护性可维护性 可扩充、可修改可扩充、可修改 可理解性可理解性 对软件人员要易读易理解;对用户要对软件人员要易读易理解;对用户要易使用、易维护易使用、易维护 可靠性可靠性 包括正确性和健壮性包括正确性和健壮性第第 38 页页2、设计方法和步骤、设计方法和步骤l概要设计概要设计 定义系统的逻辑结构,包括:系统的
展开阅读全文