【教学课件】第十章传统的软件开发方法.ppt
《【教学课件】第十章传统的软件开发方法.ppt》由会员分享,可在线阅读,更多相关《【教学课件】第十章传统的软件开发方法.ppt(112页珍藏版)》请在三一办公上搜索。
1、第 1 页,第十章 传统的软件开发方法,10.1 结构化开发方法概述10.2 系统分析与定义10.3 系统设计10.4 系统编程10.5 系统测试10.6 系统维护,第 2 页,10.1 结构化开发方法,基本思想:把一个复杂问题的求解过程分阶段进行,每个阶段处理的问题都控制在人们容易理解和处理的范围内。基本要点:自顶向下逐步求精模块化设计结构化编码主程序员组织结构化设计SD,第 3 页,“自顶向下”,是将复杂的大问题,分解为小问题,找出问题的关键、重点所在,同时找出技术难点来。然后用精确的思维定性、定量地描述问题。,第 4 页,“逐步求精”,将现实世界的问题经抽象转化为逻辑空间或求解空间的问题
2、。复杂问题经抽象化处理变为相对较简单的问题。经几次抽象(精化)处理,最后到求解域中只是非常简单的编程问题。求解(抽象)过程可以划分为若干个阶段,在不同阶段用不同工具来描述。实现细则在前期阶段可以不去管它。在每个阶段有不同的规划和标准,产生出不同阶段的文档资料。求解问题不是一下子就用计算机语言却描述问题,而是分阶段;先用自然语言、DFD(数据流程图)等工具一步步地去抽象、描述,最后用计算机语言却实现。,第 5 页,模块化处理,把程序划分为若干个模块,而每个模块完成一个子功能,把这些模块汇总起来构成一个有机整体,完成指定的功能。模块化的目的是为了降低软件复杂度,使软件设计,调试和维护等操作变得简易
3、。,第 6 页,结构化编码,SP编码的方法强调清晰简洁,它是一种构造程序的技术,有利于提高软件生产率及降低软件维护代价。1966年Bohm和Jacopin就证明了只要用三中基本结构,就足以表示所有形式的程序控制结构。1978年Kernihan和Plauger对一些编码风格进行归纳,提出了16种具体方法。,第 7 页,主程序员组织,主程序员 组织负责人,全权负责,包括解决技术难题,有时一些关键性技术问题,主程序员应亲自动手遍程去解决;他必须是技术高手,是程序生产过程中的总体设计师。程序员 按任务书要求编程;是程序生产线上的“工人”。测试工程师 具有较高遍程水准和经验,负责系统测试;是程序生产过程
4、中的检验员。文档人员 自始至终参加程序生产活动,负责编写一切有关文档资料。,第 8 页,结构化方法的体系结构,结构化方法的体系结构是:结构化分析(SAStructure Analysis)结构化设计(SDStructure Design)结构化程序设计(SPStructure Programing),第 9 页,结构化分析SA,SA方法是建立在自顶向下、逐步求精思想基础上的分析方法,它的要点是分解和抽象:把复杂问题自顶向下逐层分解,再从分解出的对象中抽象出相对简单的子问题。经过一系列分解和抽象,到最底层的问题已经是很容易求解的了。,第 10 页,结构化设计SD,SD方法是由IBM公司的Cons
5、tentine等人花了十几年时间研究出来的一种程序设计方法,发表于1974年。SD是一种用于概要设计的方法,与SA方法配合使用。其目标:建立一个结构良好的软件系统。SD方法的基础是数据流程图,因此也称为面向数据流的设计方法。,第 11 页,结构化程序设计SP,SP的思想最早是由著名计算机科学家E.W.Dijkstra提出的。1966年Bohm和Jacopin证明了只用三种基本结构就能实现任何一个入口,一个出口的程序;1977年IBM公司的Mills又进一步提出:“程序应该只有一个入口和一个出口。在长期程序设计的实践中,SP方法不断得以完善,使之成为开发传统应用领域应用系统的主要方法之一。,第
6、12 页,10.2 软件需求定义,软件需求分析 就是明确软件系统将来达到的目标。目标 规定项目必须满足的总目标;确定项目的可行性;拟定完成项目各个目标的策略,制定项目资源成本和进度。,第 13 页,1、软件需求定义的任务,理解和表达用户要求,制定软件开发计划,编写要求说明书。收集、理解、明确用户的要求,明确系统做什么?建立系统的逻辑模型,写出开发计划和需求分析报告。,第 14 页,软件需求定义的工作流程,系统定义,用户要求,软件功能,范围,功能说明书,软件计划,软件定义,软件功能,费用、资源进度,第 15 页,2、需求分析过程,基本过程示意图沿数据流回溯用户复查细化数据流图修改开发计划书写文档
7、资料审查和复审,第 16 页,需求分析的基本过程,用户,分析员,程序员,软件开发计划,软件需求说明书,分析追踪数据流图,用户复查,细化数据流图,无补充修改,需要分解,不要分解,有补充修改,交换意见作出贡献,第 17 页,沿数据流回溯,通常从数据流图的输出端着手分析,要搞清楚:数据元素从哪儿来?每个输出数据元素又是从哪儿来的?有时对用户具体的数据元素还搞不清楚,则需要和用户探讨、商量解决。通常把分析过程中得到的有关部门数据元素信息记录到数据字典DD中。把对算法的简明描述记录在IPO(输入|处理|输出图)图中。通过分析而补充的数据流、数据存储和处理,应该添加到DFD的适当位置上。,第 18 页,用
8、户复查,经分析将在数据流图回溯过程中找出的数据元素,并由此定义的DD和算法是否正确?这只能由最有发言权的用户来复查。在复查过程中反映出新的问题,应及时修改、补充DFD、DD和IPO图,并将对系统的新认识及时记录下来。实际上,追踪DFD和复查系统的逻辑模型这两个步骤是交替进行的循环过程。,第 19 页,细化数据流图,在反复循环的分析过程中,不断细化DFD(即把数据流图扩展到更低的层次)。通过功能分解可以完成DFD的细化,即将一些处理比较复杂的功能再划分为若干个子功能。,第 20 页,修改开发计划,在分析过程中可能会不断地修改原拟定的开发计划,这是正常的。,第 21 页,书写文档资料,在软件生命周
9、期的各个阶段,作为阶段成果的组成部分文档资料,其作用如何强调都不过份。本阶段应完成4份文档资料:系统规格说明 描述目标系统的概貌、功能要求、性能、运行及将来可能提出的要求。用户系统描述 从用户角度描述系统,类似一份用户手册初稿。数据要求 包括DD、数据结构的层次框图等。修改的开发计划 包括成本估计、进度计划表、资源使用计划等。,第 22 页,说明,需求说明书主要内容:概述 开发系统的意义、目的、背景及技术术语;现性系统的概况 业务流程、范围、存在的问题等;需求说明 功能描述信息描述:DFD、DD、DS、IPO、接口等性能描述运行环境系统限制用户系统描述系统功能和性能的描述使用系统的主要步骤和方
10、法系统用户的责任等,第 23 页,审查和复审,分析阶段最后一步是按结束标准对该阶段的工作成果进行正式的技术审查和管理审查。,第 24 页,3、需求分析的原则,1能够表达和理解问题的信息域 2要建立描述系统信息、功能和行为的模型3能够对所建模型按一定形式进行分解 4分清系统的逻辑视图和物理视图,第 25 页,4、需求分析的图形工具,常用的描述工具数据流程图(DFD)数据字典(DD)结构化语言判定表和判定树,第 26 页,数据流图DFD,数据流图以图形的方式表达数据处理系统中信息的变换和传递过程。它有四种基本符号:,S,P,X,数据源及数据终点,加工 对数据进行的加工或变换,指向加工的数据流是输入
11、数据;离开的是输出数据。,数据流 具有名字且有流向的数据,文件 存放数据的场所,第 27 页,数据流图的结构,一个实际问题的数据加工流程是非常复杂的。如果绘制在一个平面图上就显的太乱了。因此,通常采用分层次结构。把一个复杂的问题,分解为一些相互独立的子问题,再绘出分层DFD。,第 28 页,数据字典DD(Data Directory),DD对数据流程图中出现的所有元素给出逻辑定义。内容 1)数据流:编号、名称、简述、别名、构成、来源、去向、流量 2)数据项目:编号、名称、简述、别名、类型、长度、位数 3)数据文件:编号、名称、简述、别名、构成、关键字、存取要求 4)处理 编号、名称、简述、别名
12、、处理条件、I/O内容、处理逻辑,第 29 页,结构化语言,例如:DO CASE CASE 时间12 AND 时间18 R-rent=rent;,第 30 页,判定表,判定表把加工逻辑表示的更加清楚。表中纵向各列给出的不同的条件,横向各行则表示在任何条件下相应的处理。,条件 结 帐 时 间 12点前 1218点 18点后,处理,不收费,收半费,收全费,第 31 页,判定树,判定树用来描述具有多个条件的数据加工更容易被用户接受。树状的分枝表示多种不同的条件。,结帐时间=?,12点前 1218点间 18点后,不收费 收半费 收全费,下一页,第 32 页,5、用于需求分析的软件工具,为保证软件需求的
13、正确性和需求的一致性,需要采用适当的软件工具支持需求分析工作。软件工具应满足下列要求:必须有形式化的语法(可让计算机自动处理)能够导出详细的文档必须提供分析(测试)规格说明书的不一致性和冗余性的手段,并能产生指明对完整性分析结果的报告。能够改进通信状况,第 33 页,6、结构分析方法(SA方法),结构化分析方法的背景(形成)早期无系统分析方法(凭经验)60年代美国的科学家提出一种理论:SP SD SA目前研究的新热点是:OOP OOD OOA 即面向对象的程序设计技术(OO-Object Oriented),第 34 页,SA的一般步骤,1建立当前系统的物理模型2建立当前系统的逻辑模型 3、建
14、立目标系统的逻辑模型,第 35 页,三、系统设计(软件的设计),系统设计概述目标和任务设计方法和步骤文档设计复审,第 36 页,软件设计流程图,概要设计,复审,要求说明书,软件结构,可接收,详细设计,模块描述,设计说明书,复审,修改,修改,第 37 页,1、软件设计概述,目标和任务任务 依据分析结果,明确系统“如何做?”,建立实现方案。目标 提高软件系统的:可维护性 可扩充、可修改可理解性 对软件人员要易读易理解;对用户要易使用、易维护可靠性 包括正确性和健壮性,第 38 页,2、设计方法和步骤,概要设计 定义系统的逻辑结构,包括:系统的模块划分、建立模块的层次结构、逻辑关系、设计全局DS及D
15、B;详细设计 根据每个模块的功能描述,设计模块内部的实现算法、模块所需要的局部数据结构。,第 39 页,设计方法和步骤设计方法:,概要设计方法 早期:模块化方法、功能分解法;典型:面向数据流、面向数据结构(SP)的 设计方法 近期:面向对象(OO)的设计方法详细设计方法 主要是结构化程序设计方法详细设计的表示工具图形工具和语言工具;图形工具 程序流程图、程序分析图(PAD)和NS图语言工具 伪吗和程序设计语言(PDL),第 40 页,文档资料,设计阶段要交付的文档是设计说明书。它可对编程和测试提供指南服务,还可在系统交付使用后,为维护人员提供帮助。,第 41 页,3、软件设计原则,要有分层的组
16、织结构,便于对软件各个构件进行控制;应形成具有独立功能特征的模块(模块化)应有性质不同、可区分的数据和过程描述(表达式)应使模块间和与外部环境间接口的复杂性尽量地减小应利用软件需求分析中得到的信息和可重复的方法。,第 42 页,4、软件设计准则,软件结构准则模块化准则模块独立性准则模块的耦合性模块的内聚性,第 43 页,软件结构准则,结构形态准则 即顶部宽度最小,中间宽度最大,底部宽度小于中间的宽度。换句话说,在顶部有较高的扇出数(一个模块直接下属的子模块数),在底部有较高的扇入数(模块的直接上属模块的个数)。判断的影响范围应该是控制范围的一个子集 影响范围 指在一个模块中有一个判别条件,所有
17、受该判别条件影响的模块的集合称为影响范围;控制范围 指一个模块本身及所有下属模块构成的集合。,第 44 页,结构形态准则示意图,深度,宽度,扇出,扇入,第 45 页,模块化准则,软件分解为若个模块后,总的工作量减少,但并不是说,模块分解的越多,工作量就一定越少。因为分解到一定程度后,模块之间的接口工作量就上升,从而使总的代价上升。,第 46 页,5、模块独立性准则,模块独立性是指开发具有功能专一、模块之间无过多相互作用的模块。具有独立性的模块,开发容易、能减少错误的传播,使模块重组、分解方便,容易调试和维护。度量模块的独立性标准:内聚性 模块内部各部分之间联系紧密程度的度量;藕合性 模块之间联
18、系紧密程度的度量。显然,独立性强的模块,藕合性越小越好,内聚性越大越好。,第 47 页,关于藕合的讨论,设计时应:尽量使用数据藕合,少用控制藕合,限制公用藕合的范围,完全不用内容藕合。,第 48 页,内聚性问题,一个程序主要由两部分组成:数据和对数据的加工处理。内聚性是指一个模块内部各种数据和各种处理之间联系的紧密程度。它是模块执行任务的整体统一性的度量,是模块相对功能强弱的度量。在理想的系统中,每个模块执行一个明确、单一的任务。但现实情况是一个模块往往执行若干个结合在一起的任务,这些任务组合方式不同就构成不同的内聚性。,第 49 页,内聚性问题的讨论,从使用角度分析,能否用一个短句完整地描述
19、该模块做什么;若这个短句是复合句,或有若干个动词,则该模块是非功能性模块。在设计时,尽量采用功能性模块。,第 50 页,6、概要设计,概要设计是为软件系统定义一个逻辑上一致的结构:进行模块划分,建立模块层次结构、调用关系,设计全局数据结构及数据库,设计系统接口及人机界面等。概要设计的方法有许多种:在早期有模块化方法、功能分解方法,这都是人们一般常用的方法;在60年代后期提出了面向数据流的设计方法、面向数据结构的设计方法;近年来又提出面向对象的设计方法等。,第 51 页,概要设计主要步骤,1)精细化数据流程图,确定数据流程图的类型;2)指出各种信息流的流界;3)将数据流程图映射为软件结构;4)精
20、细化软件结构;5)开发接口描述和全程数据描述。,第 52 页,数据流程图分类,变换流,加工中心,输入加工,输出加工,输入,输出,内部结果,内部数据,输入流,输出流,变换流,加工结果,第 53 页,事物流,事物中心 T,数据流,事物中心,t1,t2,t3,t4,事物路径,事物流,一个数据流经过某个加工后,有若干个平行的数据流流出,将这种变换称为事物流。,当事物流中的事物流到事物中心后,事物中心分析每个事物,确定其类型;并根据事物类型选择一个事物路径继续进行处理。,第 54 页,变换分析技术,变换分析技术是从典型的变换型数据流程图(DFD)中推导出相应的结构图。变换分析是一组设计步骤,可把DFD映
21、射为一种标准结构。有了标准结构,再根据软件结构度量、模块化度量、模块独立性度量来精细改善结构图,从而得到良好的软件结构。,第 55 页,变换分析的步骤,确定DFD及其类型确定输入流、中心加工、输出流的流界;第一级分解;设计上层模块;第二级分解,设计中、下层模块;进一步精细化。,第 56 页,事务分析技术,事务分析技术也是将相应的数据流程图(DFD)映射为对应的的软件结构图。事务分析的组设计步骤同变换分析:确定数据流图的类型确定流界第1级分解第2级分解设计后处理,第 57 页,7、详细设计方法,详细设计是根据每个模块的功能设计其逻辑描述、实现其法以及实现这些算法的逻辑控制流程,并设计这些模块所需
22、的局部数据结构。详细设计的方法主要是用结构程序设计SP方法,详细设计的表示工具有图形工具和语言工具。图形工具有程序流程图、PAD图、NS图,语言工具有伪码和 PDL等。,第 58 页,SP中的基本结构,顺序结构选择结构IF THEN ELSE 结构IF THEN 结构IF OR IF ELSE 结构CASE 结构重复结构当型结构直到型结构出口结构,第 59 页,SP中的优点,自顶向下,逐步求精方法符合人们解决复杂问题的普遍规律。用先全局后局部,先整体后细节,先抽象后具体的逐步求精过程开发的程序有清晰的层次结构,容易理解和阅读。不使用GOTO语句,使程序静态结构和程序动态执行情况一致,容易理解和
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 教学课件 教学 课件 第十 传统 软件 开发 方法

链接地址:https://www.31ppt.com/p-5664568.html