已阅读5页,还剩68页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第3章 结构化设计,系统设计包括概要设计和详细设计。 概要设计方案选择、结构设计、数据库设计和制定测试计划。 详细设计是要完成所有设计的细节,包括过程设计、系统接口以及数据设计。,3.1.1 概要设计步骤,1确定设计方案 1)设想供选择的方案 方法:需求分析阶段得出的数据流图是总体设计的出发点,数据流图的处理进行归并分组 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.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、数据结构设计和数据库设计 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.2.2 模块化,2提高软件的可靠性 模块调试及测试,接口测试 3提高可维护性 修改或者增加以模块为单位 4有助于软件开发工程的组织管理 5有助于实现信息隐藏和局部化,3.2 软件结构设计,3.2.1 软件结构设计的基本原理: 1.模块: 能独立完成一定功能的单元,如Delphi的“BeginEnd”,C,C+和Java,过程,函数,宏,面向对象的对象,对象内的方法 基本属性:名称(计算平均成绩)、功能、接口、逻辑、状态 2.抽象和逐步求精: 3.信息隐藏和局部化: 模块的实现细节和局部数据结构,对其他模块不需要的信息进行隐藏,1、模块的大小:,3.2.3 模块独立性,2、模块之间的联系程度(耦合性):是模块之间依赖程度的度量。 3、模块内元素联系程度(内聚性):内聚(Cohesion)是一个模块内部各成分之间相关联程度的度量。 4、模块信息的隐蔽程度,3.2.3 模块独立性,耦合:耦合的强度取决于接口的复杂程度,即: 调用方式;指针、普通、结构体,数组等 传递信息的类型和数量; 耦合的类型: 数据耦合 控制耦合 特征耦合 公共耦合 内容耦合,3.2.3 模块独立性,数据耦合:模块间通过参数 传递基本类型的数据,3.2.3 模块独立性,控制耦合:传递的是控制信息, 形式上还是数据,模块B是 打印会计 收支帐目 统计表, 可以是日 报表、 月报表、 年报表,公共耦合:两个模块都能够存取同一公共数据环境,包括变量、公共内存缓冲区、物理设备,慎用公共数据区和全程变量!,3.2.3 模块独立性,特征耦合:被调用模块可以使用数据多于实际需要的数据,可能导致数据访问失控,内容耦合:一个模块与另一模块的内容直接发生联系。,3.2.3 模块独立性,如 参数调式时指针传递 、引用传递,耦合性的设计原则: 尽量使用数据,少用特征和控制耦合 调用方式:控制公共环境,不采用地址引用(内容耦合) 调用的参数传递13个,内聚(cohesion):一个模块内各个元素彼此结合的紧密程度。按照内聚强度从低到高有以下几种类型 偶然内聚(concidental cohesion) 逻辑内聚( logical cohesion): 时间内聚(temporal cohesion) 过程内聚(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,顺序内聚(sequential cohesion):各成分顺序执行,前一个成分的输出是后一个成分的输入。,3.2.3 模块独立性,顺序内聚是数据流从一个处理元到另外处理元;过程是控制流从一个动作到另外动作,过程内聚:处理元素是相关,必须以特定次序执行,导入学生报名信息考场安排,通信内聚:一个模块内包含需多个功能,并且这些功能的完成都依赖于相同的公用数据,即同一数据文件。各个成分合用同一个数据,或者产生同一个输出数据。,3.2.3 模块独立性,功能内聚(functional cohesion):所有成分共同完成一个单一的功能。容易维护。,3.2.3 模块独立性,3.2.4 模块设计启发规则,1、尽力提高模块独立性:高内聚、低耦合 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图:与文件编制技术,最初只用于文档编写的格式要求 层次图 + 输入 / 处理 /输出图 (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、C等模块,3.3.2 结构图(SC)(5),出卷系统,出卷系统总控模块,读出用户命令,出卷,试题管理,试卷管理,系统维护,设 置 要 求,手 动 出 卷,自 动 出 卷,添 加 试 题,修 改 试 题,删 除 试 题,打 印 试 卷,修 改 试 卷,删 除 试 卷,课 程 维 护,样 式 管 理,自动出卷,读出试卷要求,出卷,显示试卷,抽取试题,评价,写入试卷,3.4 面向数据流的设计方法,面向数据流的设计要解决的任务:,1、数据流图的分类 变换型数据流图: 事务型数据流图。,3.4 面向数据流的设计方法,一系列的加工处理,根据事务类型选择一条通路,混合型: 以事务为中心,在分支通路上变换型的数据流 以变换为中心,在变换中是以拥有多条通路的事务流,3.4 面向数据流的设计方法,2、面向数据流设计方法的设计步骤 1)复查基本系统模型,并精化系统数据流图,要确保数据流图的每个处理都表示一个规模适中、相对独立的子功能。 2)分析数据流图类型,确定数据流具有变换流特征还是事务流特征 3)如果是变换流特征,确定输入流和输出流边界,其间为变换中心。 如果是事务流特征,则可确定事务控制模块、接 受模块、处理模块 5)根据模块独立性原理进行优化,得到具有尽可能高的内聚性,尽可能松散的耦合。 4)采用自顶向下、逐步求精模块分解,并给出简要说明,包括接口信息、模型内部信息、过程陈述、约束,3)判断数据流类型映射成软件结构图,3.4.1 变换型,具体的设计步骤如下: 1、确定输入流和输出流的边界,从而孤立出变换中心,并在数据流图上划分出他们的边界线。,例子:统计文件单词数目的数据流图,输入流边界:输入流开始,经过多个处理以后,发现数据流的性质发生变化,则该输入流前一个数据流处就是输入流边界; 输出流边界:从输出端向前回溯,当发现输出流的性质发生改变时,可确定该数据流向后一个数据流处为输出流边界,读文 件名,验证 文件名,统计 单词,格式化 单词数,显示 单词数,读文 件名,验证 文件名,统计 单词,格式化 单词数,显示 单词数,读文件名,验证文件名,格式化单词数,显示单词数,通信内聚性,通信内聚性,3.4.2 事务型,1、在数据流上确定事务中心、接受部分和全部处理路径。 2、画出结构框架,把数据流上的三部分分别映射为事务控制模块、接受模块和处理模块。 3、分解细化接受分支和处理分支,完成初始SC,ATM机数据流图,例子:汽车数字仪表板的设计,通过模数转换,实现传感器和微处理机间的接口 在发光二极管面板上显示数据 指示每小时英里数(mile/h),行驰的里程,每加仑油行驰的英里数(mile/Gal)等; 超速警告:如果车速超过55mile/h,则发出超速警告铃声 指示加速或减速,补充作业1:招干考试系统的DFD导出初始SC,1 登记考生情况,2 考前处理,考生,4 计算考生成绩总分,6 各专业考生按总分排序,7 录用,8 输出录用通知单,5 输出考生成绩单,3 输入考生成绩,考生,考生,考生情况文件,9 考后考生情况统计,考生,补充作业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 流程图,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图有以下一些特点: 功能域有明确的规定,并且可以很直观地从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=KI SECOND=0,KI SECOND,KIFIRST,SECOND =FIRST FIRST=KI,SECOND =KI,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.5.5 判定树,判定树和判定表都可以清晰地表示复杂条件所对应的处理,3.5.6 PDL(过程设计语言),PDL语言具有下述特点: (1)PDL虽然不是程序设计语言,但是它与高级程序设计语言非常类似,只要对PDL描述稍加变换就可变成源程序代码。因此,它是详细设计阶段很受欢迎的表达工具。 (2)用PDL写出的程序,既可以很抽象,又可以很具体。因此,容易实现自顶向下逐步求精的设计原则。 (3)PDL描述同自然语言很接近,易于理解。 (4)PDL描述可以直接作为注释插在源程序中,成为程序的内
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026中国输液泵市场智能化升级与物联网技术融合趋势报告
- 2026中国自动驾驶高精地图采集制作标准与商业模式探索报告
- 2026中国精神健康数字疗法产品开发与市场准入策略报告
- 2025年护理行为学题目及答案
- 2025年二级口译考试题目及答案
- 滁州风管施工方案
- 落实教研管理制度情况
- 电缆光缆施工方案
- 2025年长春市广告发布合同协议
- 2025年自考《中药制药原理》全真模拟考试题库及答案(重点掌握)
- 成都七中万达学校高一上化学半期考试试卷
- 2025医疗机构志愿者服务体系管理与社会责任履行报告
- 江西省九校2025-2026学年高三上学期11月期中考试英语试卷(含答案)
- 【2025年】办公室文员测试题库及参考答案
- 2025年6月江苏扬州经济技术开发区区属国有企业招聘素质测试(初试)笔试考试备考试题及答案解析
- 2025年广东省普通高中学业水平合格性考试英语试题(原卷版)
- 运营管理职业规划
- 学堂在线 研究生学术与职业素养讲座 章节测试答案
- 英国FBA超重标签
- TSG11-2020 锅炉安全技术规程
- 肩手综合征康复
评论
0/150
提交评论