《结构化设计》PPT课件.ppt

上传人:牧羊曲112 文档编号:5568171 上传时间:2023-07-28 格式:PPT 页数:73 大小:6.19MB
返回 下载 相关 举报
《结构化设计》PPT课件.ppt_第1页
第1页 / 共73页
《结构化设计》PPT课件.ppt_第2页
第2页 / 共73页
《结构化设计》PPT课件.ppt_第3页
第3页 / 共73页
《结构化设计》PPT课件.ppt_第4页
第4页 / 共73页
《结构化设计》PPT课件.ppt_第5页
第5页 / 共73页
点击查看更多>>
资源描述

《《结构化设计》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《结构化设计》PPT课件.ppt(73页珍藏版)》请在三一办公上搜索。

1、第3章 结构化设计,系统设计包括概要设计和详细设计。概要设计方案选择、结构设计、数据库设计和制定测试计划。详细设计是要完成所有设计的细节,包括过程设计、系统接口以及数据设计。,3.1.1 概要设计步骤,1确定设计方案1)设想供选择的方案 方法:需求分析阶段得出的数据流图是总体设计的出发点,数据流图的处理进行归并分组2)推荐最佳方案 考虑:系统流程、组成系统的物理元素清单、成本/效益、进度计划,例如:假设一家工厂的采购部每天需要一张定货报表,报表按零件编号排序,表中列出所有需要再次定货的零件。对于每个需要再次定货的零件应该列出下述数据:零件编号、零件名称、定货数量、目前价格、主要供应者和次要供应

2、者。零件入库或出库称为事务,通过放在仓库中的CRT终端把事务报告给定货系统。当某种零件的库存数量少于库存量临界值时就应该再次定货。,3.1.1 概要设计步骤,3.1.1 概要设计步骤,方案1:,采购员,定货报表,事务,1接收事务,4产生报表,仓库管理员,D2 定货信息,D1 库存清单,2更新库存清单,3处理定货,库存信息,事务,3.1.1 概要设计步骤,方案2,采购员,定货报表,事务,1接收事务,4产生报表,仓库管理员,D2 定货信息,D1 库存清单,2更新库存清单,3处理定货,库存信息,事务,2软件结构设计1)功能分解2)设计软件结构3数据文件设计:数据库设计,数据代码设计4测试方案设计,3

3、.1.1 概要设计步骤,堆排序的算法:void HeapSort(SeqIAst R)BuildHeap(R);for(i=n;i1;i-)R0=R1;R1=Ri;Ri=R0;Heapify(R,1,i-1);,主控模块,HeapSort,BuildHeap,Heapify,3.1.1 概要设计步骤,5.编写总体设计文档总体设计说明书(包括系统实现方案和软件模块结构);测试计划(包括测试策略、测试方案、预测的测试结果、测试进度计划等);用户手册(根据总体设计阶段的结果,修改初步的用户操作手册);详细的工程计划;数据库设计结果。6审查和复审,3.1.2 详细设计的基本任务,1、数据结构设计和数据

4、库设计2、接口设计3、过程设计4、代码设计5、输入输出设计6、网络设计:拓扑结构7、评审:对处理过程的算法和数据库的物理结构都要评审。,1)功能分解2)设计软件结构,3.2 软件结构设计,1.模块:能独立完成一定功能的单元,基本属性:名称(计算平均成绩)、功能、接口、逻辑、状态基本属性:名称(计算平均成绩)、功能、接口、逻辑、状态,根据调用关系把分割好的合理模块组织起来,1.减少复杂性,例如:A1000行,B2000行,B是A的2倍,同时B中的前1000和后1000之间的关系处理又会产生附加的时间开销。因此C(p1)C(p2),E(p1)E(p2),E(p1+p2)E(p1)+E(p2),3.

5、2.2 模块化,2提高软件的可靠性 模块调试及测试,接口测试3提高可维护性 修改或者增加以模块为单位4有助于软件开发工程的组织管理5有助于实现信息隐藏和局部化,3.2 软件结构设计,3.2.1 软件结构设计的基本原理:1.模块:能独立完成一定功能的单元,如Delphi的“BeginEnd”,C,C+和Java,过程,函数,宏,面向对象的对象,对象内的方法基本属性:名称(计算平均成绩)、功能、接口、逻辑、状态2.抽象和逐步求精:3.信息隐藏和局部化:模块的实现细节和局部数据结构,对其他模块不需要的信息进行隐藏,1、模块的大小:,3.2.3 模块独立性,2、模块之间的联系程度(耦合性):是模块之间

6、依赖程度的度量。3、模块内元素联系程度(内聚性):内聚(Cohesion)是一个模块内部各成分之间相关联程度的度量。4、模块信息的隐蔽程度,3.2.3 模块独立性,耦合:耦合的强度取决于接口的复杂程度,即:调用方式;指针、普通、结构体,数组等 传递信息的类型和数量;耦合的类型:数据耦合 控制耦合 特征耦合公共耦合 内容耦合,3.2.3 模块独立性,数据耦合:模块间通过参数传递基本类型的数据,3.2.3 模块独立性,控制耦合:传递的是控制信息,形式上还是数据,模块B是打印会计收支帐目统计表,可以是日报表、月报表、年报表,公共耦合:两个模块都能够存取同一公共数据环境,包括变量、公共内存缓冲区、物理

7、设备,慎用公共数据区和全程变量!,3.2.3 模块独立性,特征耦合:被调用模块可以使用数据多于实际需要的数据,可能导致数据访问失控,内容耦合:一个模块与另一模块的内容直接发生联系。,3.2.3 模块独立性,如 参数调式时指针传递、引用传递,耦合性的设计原则:尽量使用数据,少用特征和控制耦合调用方式:控制公共环境,不采用地址引用(内容耦合)调用的参数传递13个,内聚(cohesion):一个模块内各个元素彼此结合的紧密程度。按照内聚强度从低到高有以下几种类型偶然内聚(concidental cohesion)逻辑内聚(logical cohesion):时间内聚(temporal cohesio

8、n)过程内聚(procedural cohesion)通信内聚(communicational cohesion)顺序内聚(sequential cohesion)功能内聚(functional cohesion),3.2.3 模块独立性,偶然内聚:一个模块完成多个完全不相关的功能。,3.2.3 模块独立性,逻辑内聚(logical cohesion):一个模块完成的任务在逻辑上属于相同或相似的一类任务。,3.2.3 模块独立性,时间内聚(temporal cohesion):一个模块完成的任务必须在同一段时间内完成。,3.2.3 模块独立性,四季度结算、年终结算、下季度支出为0,顺序内聚(s

9、equential cohesion):各成分顺序执行,前一个成分的输出是后一个成分的输入。,3.2.3 模块独立性,顺序内聚是数据流从一个处理元到另外处理元;过程是控制流从一个动作到另外动作,过程内聚:处理元素是相关,必须以特定次序执行,导入学生报名信息考场安排,通信内聚:一个模块内包含需多个功能,并且这些功能的完成都依赖于相同的公用数据,即同一数据文件。各个成分合用同一个数据,或者产生同一个输出数据。,3.2.3 模块独立性,功能内聚(functional cohesion):所有成分共同完成一个单一的功能。容易维护。,3.2.3 模块独立性,3.2.4 模块设计启发规则,1、尽力提高模块

10、独立性:高内聚、低耦合2、注意模块的可靠性、通用性、可维护性、简单性3、模块的大小应适中规模4、模块的深度、宽度、扇出和扇入应适当,深度:指软件结构中模块的层数。宽度:指软件结构内同一层次的模块数的最大值。扇出:指一个模块所调用的模块数。扇入:指有多少上级模块调用它,3.2.4 模块设计启发规则,通常设计得较好的软件结构,顶层扇出高,中间扇出较少,下层调用公用模块。5、接口简单、清晰,3.3 软件结构设计的图形工具,3.3.1 层次图和HPIO图 3.3.2 结构图(Structured Chart,SC),3.3.1 层次图或HPIO图(1),IBM公司发明的HIPO图:与文件编制技术,最初

11、只用于文档编写的格式要求层次图+输入/处理/输出图(H图)+(IPO图)(Hierachy Input Process Output),3.3.2 结构图(SC)(1),SD方法在概要设计中的主要表达工具,约定,编辑学生记录,读学生记录,学生数据,无此学生,学号,不加区分的数据,数据信息,控制信息,3.3.2 结构图(SC)(2),SC中的简单调用,B,A,C,x,y,z,z,3.3.2 结构图(SC)(3),SC中的选择调用,A,C,B,D,A根据内部判断决定是否调用B,A按另一判定结果选择调用C或D,3.3.2 结构图(SC)(4),SC中的循环调用,A,B,C,A根据内在的循环重复调用B

12、、C等模块,3.3.2 结构图(SC)(5),出卷系统,出卷系统总控模块,读出用户命令,出卷,试题管理,试卷管理,系统维护,设置要求,手动出卷,自动出卷,添加试题,修改试题,删除试题,打印试卷,修改试卷,删除试卷,课程维护,样式管理,自动出卷,读出试卷要求,出卷,显示试卷,抽取试题,评价,写入试卷,3.4 面向数据流的设计方法,面向数据流的设计要解决的任务:,1、数据流图的分类 变换型数据流图:事务型数据流图。,3.4 面向数据流的设计方法,一系列的加工处理,根据事务类型选择一条通路,混合型:以事务为中心,在分支通路上变换型的数据流以变换为中心,在变换中是以拥有多条通路的事务流,3.4 面向数

13、据流的设计方法,2、面向数据流设计方法的设计步骤1)复查基本系统模型,并精化系统数据流图,要确保数据流图的每个处理都表示一个规模适中、相对独立的子功能。2)分析数据流图类型,确定数据流具有变换流特征还是事务流特征3)如果是变换流特征,确定输入流和输出流边界,其间为变换中心。如果是事务流特征,则可确定事务控制模块、接 受模块、处理模块5)根据模块独立性原理进行优化,得到具有尽可能高的内聚性,尽可能松散的耦合。4)采用自顶向下、逐步求精模块分解,并给出简要说明,包括接口信息、模型内部信息、过程陈述、约束,3)判断数据流类型映射成软件结构图,3.4.1 变换型,具体的设计步骤如下:1、确定输入流和输

14、出流的边界,从而孤立出变换中心,并在数据流图上划分出他们的边界线。,例子:统计文件单词数目的数据流图,输入流边界:输入流开始,经过多个处理以后,发现数据流的性质发生变化,则该输入流前一个数据流处就是输入流边界;输出流边界:从输出端向前回溯,当发现输出流的性质发生改变时,可确定该数据流向后一个数据流处为输出流边界,读文件名,验证文件名,统计单词,格式化单词数,显示单词数,读文件名,验证文件名,统计单词,格式化单词数,显示单词数,读文件名,验证文件名,格式化单词数,显示单词数,通信内聚性,通信内聚性,3.4.2 事务型,1、在数据流上确定事务中心、接受部分和全部处理路径。2、画出结构框架,把数据流

15、上的三部分分别映射为事务控制模块、接受模块和处理模块。3、分解细化接受分支和处理分支,完成初始SC,ATM机数据流图,例子:汽车数字仪表板的设计,通过模数转换,实现传感器和微处理机间的接口在发光二极管面板上显示数据指示每小时英里数(mile/h),行驰的里程,每加仑油行驰的英里数(mile/Gal)等;超速警告:如果车速超过55mile/h,则发出超速警告铃声指示加速或减速,补充作业1:招干考试系统的DFD导出初始SC,1登记考生情况,2考前处理,考生,4计算考生成绩总分,6各专业考生按总分排序,7录用,8输出录用通知单,5输出考生成绩单,3输入考生成绩,考生,考生,考生情况文件,9考后考生情

16、况统计,考生,补充作业2、设计一个公司的销售管理系统,其数据流图如下,在销售管理系统中,从键盘读入数据后,就要进入事务中心进行判断。在系统中有三个主要的功能选择:订货处理、进货处理和销售统计。,补充作业3:将以下的数据流图转换为软件结构,3.5 过程设计工具,3.5.1 程序流程图 3.5.2 盒图(N-S图)3.5.3 PAD图(Problem Analysis Diagram)3.5.4 判定表 3.5.5 判定树3.5.6 PDL(过程设计语言),3.5.1 流程图,国家标准GB1526-1989程序流程图中常用的符号,顺序,选择,循环,仅有顺序、选择、循环三种基本结构组成。,3.5.1

17、 流程图,3.5.1 程序流程图,例子,a,b,X1,X2,X7,X6,X4,X3,X5,h,i,g,f,e,d,c,j,F,T,F,F,F,T,T,T,多分支选择结构,先判定型循环结构,选择结构,后判定型循环结构,流程图,3.5.1 程序流程图,缺点:它本身并不是逐步求精的好工具。程序流程图中用箭头代表控制流,这样使得程序员不受任何约束,可以完全不顾结构程序设计的精神,随意转移控制;,3.5.2 盒图(N-S图),N-S图有而且仅有顺序、选择、循环三种基本结构组成。基本图例如下:,NS图,3.5.2 盒图(N-S图),N-S图举例,3.5.2 盒图(N-S图),N-S图有以下一些特点:功能域

18、有明确的规定,并且可以很直观地从N-S图上看出来;它的控制转移不能任意规定,必须遵守结构化程序设计的要求;很容易确定局部数据和全局数据的作用域;很容易表现嵌套关系,也可以表示模块的层次结构。,3.5.3 PAD图,其基本控制结构如下:,3.5.3 PAD图,例1:对数组X进行排序。“自顶而下,逐步求精”,1、循环一次,排好一个XH,2、细化,(a),(b),(b),(a),3、连接各图,构成完整的PAD图,例2,BEGIN FIRST:=K1;SECOND:=0;,FIRST=KISECOND=0,KI SECOND,KIFIRST,SECOND=FIRSTFIRST=KI,SECOND=KI

19、,ELSE SECOND:=KI END END END.,FOR I:=2 TO N DO,BEGIN IF K1SECOND THEN,BEGIN IF KIFIRST THEN,BEGIN SECOND:=FIRST;FIRST:=KI END,3.5.4 判定表,一张判定表由四部分组成:,列出所有条件,所有可能做的动作,各种可能组合条件,对应的应做的工作,3.5.4 判定表,例:某校制定了教师的讲课课时津贴标准。对于各种性质的讲座,无论教师是什么职称,每课时津贴费一律是50元;而对于一般的授课,则根据教师的职称来决定每课时津贴费:教授30元,副教授25元,讲师20元,助教15元。,3.

20、5.5 判定树,判定树和判定表都可以清晰地表示复杂条件所对应的处理,3.5.6 PDL(过程设计语言),PDL语言具有下述特点:(1)PDL虽然不是程序设计语言,但是它与高级程序设计语言非常类似,只要对PDL描述稍加变换就可变成源程序代码。因此,它是详细设计阶段很受欢迎的表达工具。(2)用PDL写出的程序,既可以很抽象,又可以很具体。因此,容易实现自顶向下逐步求精的设计原则。(3)PDL描述同自然语言很接近,易于理解。(4)PDL描述可以直接作为注释插在源程序中,成为程序的内部文档。这对提高程序的可读性是非常有益的。(5)PDL描述与程序结构相似,因此自动产生程序比较容易。PDL的缺点是不如图

21、形描述形象直观,因此人们常常将PDL描述与一种图形描述结合起来使用。,补充作业:1.请将下面的PDL程序代码分别转换成流程图、盒图、PAD图Start if p then while q do f end doElse g nEndif stop,2、某公司为本科以上学历的人重新分配工作,分配原则如下:1)如果年龄不满18岁,学历是本科,男性要求报考研究生,女性则担任行政工作;2)如果年龄满18岁不满50岁,学历本科,不分男女,任中层领导职务,学历是硕士不分男女,课题组组长;3)如果年龄满50岁,学历本科,男性任科研人员,女性则担任资料员,学历是硕士不分男女,任课题组组长要求:画出判定表和判定树,3.研究下面的伪码程序Loop:Set I to(START+FINISH)/2 IF TABLE(I)=ITEM GOTO FOUNT IF TABLE(I)ITEM SET START TO(I-1)IF(FINISH-START)1 GOTO LOOP IF TABLE(START)=ITEM GOTO FOUND IF TABLE(FINISH)=ITEM GOTO FOUNDSET FLAG TO 0GOTO DONEFOUND:SET FLAG TO 1DONE:EXIT(1)画出程序流程图(2)该程序是结构化嘛?若不是,请设计一个等价的结构化程序并且画出程序流程图.,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号