总体设计SystemDesig.ppt_第1页
总体设计SystemDesig.ppt_第2页
总体设计SystemDesig.ppt_第3页
总体设计SystemDesig.ppt_第4页
总体设计SystemDesig.ppt_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

第四章 总体设计 (System Design),开始考虑“How”,但仍属高层设计(确定黑盒关系) 1. 过程 1、确定最佳方案: 从DFD出发进行任务分解,不同的划分方法即对应不同的方案。每个合理的方案应配备下列4份资料: 系统流程图 组成系统的物理元素清单 成本/效益分析 进度计划 选择最佳方案并制定详细的实现计划(主要技术详见第十三章),1. 过程,2、结构设计 模块化思想: 将DFD细化,至每个子功能都明白易懂;每个模块完成一个子功能;每层模块合成一个高一级的功能。 主要工具有 System Design Hierarchy及HIPO图等。,3、数据库设计 (略),5、文档、审查,4、测试计划 (详见第七章),2.模块化原理(Modularization),1、原理: 经验1:E(P1+P2)E(P1)+E(P2) 经验2:P.58 图4.1,2.模块化原理,2、抽象(Abstraction): 忽略细节,分层理解问题,自顶向下层层加细。,例:开发一个CAD软件,实现一个二维绘图系统的全部功能,供低级计算机辅助设计使用。, 抽象层次I:用问题所处环境的术语来描述这个软件。 该软件包括一个计算机绘图界面,向绘图员显示图形,以及一个数字化仪界面,用以代替绘图板和丁字尺。所有直线、折线、矩形、圆及曲线的描画、所有的几何计算、所有的剖面图和辅助视图都可以用这个CAD软件实现。,2.模块化原理, 抽象层次II:任务需求的描述。列出“What”而不是“How”。 CAD SOFTWARE TASKS: user interaction task; 2-D drawing creation task; graphics display task; drawing file management task; END,2.模块化原理, 抽象层次III:程序过程表示。以2-D绘图生成任务为例: PROCEDURE 2-D drawing creation REPEAT UNTILE (drawing creation task terminates) DO WHILE (digitizer interaction occurs) Digitizer interface task; DETERMINE drawing request CASE Line: line drawing task; Rectangle: rectangle drawing task; Circle: circle drawing task; END; DO WHILE (keyboard interaction occurs) keyboard interaction task; PROCESS analysis/computation CASE View: auxiliary view task; Section: cross sectioning task; END; END REPETITION; END PROCEDURE.,2.模块化原理,3、信息隐蔽(Information hiding) The clients of a module know about its services only through its interface; the implementation is hidden from them (hence may change without affecting the clients). 4、模块独立性(Module independence) 好设计的关键:每个模块完成一个相对独立的子功能,并且与其它模块间的接口简单。,在这个抽象层次上,给出了初步的过程表示,所用的术语都已面向软件,而且模块化的工作已经开始显露。,2.模块化原理, 耦合(Coupling),独立性的度量:耦合(Coupling)&内聚(Cohesion) (Yourdon & Constantine,1978),2.模块化原理,例1:A访问C的内部数据或不通过正常入口而转入C的内部。,独立性由弱到强排列为: 内容耦合(Content Coupling): One module modifies another.,2.模块化原理,例2:部分代码重叠(常出现在汇编程序中),例3:一个模块有多个入口(功能), The least desirable,2.模块化原理, 公共耦合 (Common coupling):Data are accessible from a common data store.,问题: 公共部分的改动将影响所有调用它的模块; 公共部分的数据存取无法控制; 复杂程度随耦合模块的个数增加而增加。,2.模块化原理,控制耦合(Control coupling):One module passes parameters to control the activity of another module.,接口单一,但仍然影响被控模块的内部逻辑。, 数据耦合(Data coupling): Only data are passed. It is easy to trace data and make changes., The most desirable.,原则:尽量使用数据耦合,少用控制耦合,限制公共耦合的范围,完全不用内容耦合。,2.模块化原理, 低内聚: 巧合内聚(Coincidental cohesion):Unrelated functions, processes, or data are found in the same module (for convenience)., 逻辑内聚(Logical cohesion):Logically related functions or data are placed in the same module. 例如:, 内聚 (Cohesion): The elements of a module are directed to perform the same task. Goal: as cohesive as possible.,2.模块化原理, 时间内聚(Temporal cohesion):The functions are related only by the timing involved. 例如:系统的初始化 问题:不同功能混在一个模块中,有时共用部分编码,使局部功能的修改牵动全局。, 中内聚: 过程内聚(Procedural cohesion):Functions are grouped together in a module to ensure a certain order of performance. 例如:,2.模块化原理, 通信内聚(Communicational cohesion):All the functions in a module operate on or produce the same data set. 例如:从同一磁带上读取不相干的数据 可能破坏独立性。, 高内聚: 顺序内聚(Sequential cohesion):The output from one part of a module is the input to the next part. 功能内聚(Functional cohesion):Every processing element is essential to the performance of a single function.,3.启发式规划,2. 模块规模适中: 过大不易理解;太小则接口开销过大。注意分解后不应降低模块的独立性。 3. 适当控制 深度 = 分层的层数。过大表示分工过细。 宽度 = 同一层上模块数的最大值。过大表示系统复杂度大。,1. 争取低耦合、高内聚(增加内聚 减少耦合),3.启发式规划, 扇出 = 一个模块直接调用控制的模块数。 3 fan-out 9, 扇入 = 直接调用该模块的模块数 在不破坏独立性的前提下,fan-in 大的比较好。,3.启发式规划,4、作用域在控制域内 控制域,M的控制域为 M,A,B,C, 作用域:M中的一个判定所影响的模块。 例如:,上例中A的作用超出了控制域。改进方法之一,可以把A中的 if 移到M中;方法之二,可以把C移到A下面。,3.启发式规划,5、降低接口的复杂程度:接口复杂可能表明模块的独立性差。 6、单出单入,避免内容耦合。 7、模块功能可预测 相同输入必产生相同输出。反例:模块中使用全局变量或静态变量,则可能导致不可预测。 作业:你自己负责设计的HDIS界面中可能遇到哪些类型的耦合和内聚?对列出的每种类型试举一例。,4.图形工具,1、Hierarchy和HIPO 例:P.65 图4.4 例:,4.图形工具,注意: 这里的hierarchy表现软件的结构,而非数据结构; 每个矩形框代表一个模块,连线表示“调用”而非“组成”; 所谓HIPO,即对每个模块附一张IPO图。每个IPO图中应明确标出对应模块的编号。,2、结构图(Structured Diagram) 符号:,4.图形工具,例:,注:此图一般不入文档,仅用于检查设计的正确性和模块独立性。,须检查; 每个传递的数据是否必须? 完成模块功能所必须的数据是否都传递了? 传输的数据是否只与单一的功能有关?是否目的明确?,5.面向数据流的设计方法 (又称为SD:Structural Design),基本思想: DFD System Hierarchy 1、Data Flow 的分类 变换流(Transform Flow):,事实上所有信息流都可归结为变换流,5.面向数据流的设计方法, 事务流(Transaction Flow),T = Call one of the several subroutines depending on the type of the incoming transaction request. 当信息流具有明显的“发射中心”时,可归结为事务流。,5.面向数据流的设计方法,2、分析设计 变换分析,例:P.68 - 69 汽车数字仪表板的设计,功能: 通过模 - 数转换实现传感器和微处理机接口; 在发光二极管面板上显示数据; 指示每小时英里数(mph),行驶的里程,每加仑油行驶的英里数(mpg)等等; 指示加速或减速; 如果车速超过55mph ,则发出警告铃声。,5.面向数据流的设计方法,第一步:DFD的分界,先分出I、P、O三块,5.面向数据流的设计方法,一般问题的一级分解方法:,5.面向数据流的设计方法,第二步:映射,5.面向数据流的设计方法,例: (与P.70 图4.12 对照),5.面向数据流的设计方法,第三步:修改 本着高内聚、低耦合的原则。 例:P.73 图4.19精化后的数字仪表板系统的软件结构。,注:每个模块应附一简要说明描述 进出该模块的信息(接口描述); 模块内部的信息; 过程陈述,包括主要判定点及任务等; 对约束和特殊特点的简短讨论。,5.面向

温馨提示

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

最新文档

评论

0/150

提交评论