《【教学课件】第四章总体设计(SystemDesign).ppt》由会员分享,可在线阅读,更多相关《【教学课件】第四章总体设计(SystemDesign).ppt(34页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第四章第四章 总体体设计(System Design)开始考开始考虑“How”,但仍属高,但仍属高层设计(确定黑盒关系)(确定黑盒关系)1.过程程1、确定最佳方案:、确定最佳方案:从从DFD出出发进行任行任务分解,不同的划分方法即分解,不同的划分方法即对应不同的方案。每个合理的方案不同的方案。每个合理的方案应配配备下列下列4份份资料:料:系系统流程流程图组成系成系统的物理元素清的物理元素清单成本成本/效益分析效益分析进度度计划划 选择最佳方案并制定最佳方案并制定详细的的实现计划(主要技划(主要技术详见第十三章)第十三章)1.过程程2、结构构设计 模模块化思想:化思想:将将DFD细化,至每个子功
2、能都明白易懂;每个化,至每个子功能都明白易懂;每个模模块完成一个子功能;每完成一个子功能;每层模模块合成一个高一合成一个高一级的功能。的功能。主要工具有主要工具有 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、抽象、抽象(Abst
3、raction):忽略忽略细节,分,分层理解理解问题,自,自顶向下向下层层加加细。例:例:开开发一个一个CAD软件,件,实现一个二一个二维绘图系系统的全的全部功能,供低部功能,供低级计算机算机辅助助设计使用。使用。抽象抽象层次次I I:用:用问题所所处环境的境的术语来描述来描述这个个软件。件。该软件包括一个件包括一个计算机算机绘图界面,向界面,向绘图员显示示图形,以及一个数字化形,以及一个数字化仪界面,用界面,用以代替以代替绘图板和丁字尺。所有直板和丁字尺。所有直线、折、折线、矩形、矩形、圆及曲及曲线的描画、所有的几何的描画、所有的几何计算、算、所有的剖面所有的剖面图和和辅助助视图都可以用都可
4、以用这个个CADCAD软件件实现。2.模模块化原理化原理 抽象抽象层次次IIII:任:任务需求的描述。列出需求的描述。列出“What”而而不是不是“How”。CAD SOFTWARE TASKS:user interaction task;2-D drawing creation task;graphics display task;drawing file management task;END2.模模块化原理化原理 抽抽象象层次次IIIIII:程程序序过程程表表示示。以以2-D2-D绘图生生成成任任务为例例:PROCEDURE 2-D drawing creation REPEAT UNT
5、ILE(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/co
6、mputation 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 cli
7、ents).4、模、模块独立性独立性(Module independence)好好设计的的关关键:每每个个模模块完完成成一一个个相相对独独立立的的子功能,并且与其它模子功能,并且与其它模块间的接口的接口简单。在在这个抽象个抽象层次上,次上,给出了初步的出了初步的过程表示,程表示,所用的所用的术语都已面向都已面向软件,而且模件,而且模块化的工作已化的工作已经开始开始显露。露。2.模模块化原理化原理 耦合耦合(Coupling)Great deal of dependenceIndependent Highly coupledLoosely coupledUncoupled 独立性的度量:独立性的
8、度量:耦合耦合(Coupling)&内聚内聚(Cohesion)(Yourdon&Constantine,1978)2.模模块化原理化原理例例1:A访问C的内部的内部数据或不通数据或不通过正正常入口而常入口而转入入C的内部。的内部。ABCDA:goto C1C:C1:独立性由弱到独立性由弱到强排列排列为:内容耦合内容耦合(Content Coupling):One module modifies another.2.模模块化原理化原理例例2:部分代:部分代码重叠重叠(常出(常出现在在汇编程程序中)序中)B A例例3:一个模:一个模块有有多个入口(功能)多个入口(功能)A:entry 1:ent
9、ry 2:The least desirable2.模模块化原理化原理 公共耦合公共耦合(Common coupling):Data are accessible from a common data store.Global:V1 V2A:A1=V1+V2B:V1=B1Global:V1 V2A:V1+B:V2=B1+V1问题:公共部分的改公共部分的改动将影响所有将影响所有调用它的模用它的模块;公共部分的数据存取无法控制;公共部分的数据存取无法控制;复复杂程度随耦合模程度随耦合模块的个数增加而增加。的个数增加而增加。2.模模块化原理化原理 控制耦合控制耦合(Control coupling)
10、:One module passes parameters to control the activity of another module.ABFlagF2F1FnFlag接口接口单一,一,但仍然影响但仍然影响被控模被控模块的的内部内部逻辑。数据耦合数据耦合(Data coupling):Only data are passed.It is easy to trace data and make changes.The most desirable.原原则:尽量使用数据耦合,少用控制耦合,限尽量使用数据耦合,少用控制耦合,限制公共耦合的范制公共耦合的范围,完全不用内容耦合。,完全不用内容耦
11、合。2.模模块化原理化原理 低内聚:低内聚:巧巧 合合 内内 聚聚(Coincidental cohesion):Unrelated functions,processes,or data are found in the same module(for convenience).A:Read inputsfrom diskfrom tapefrom 逻辑内聚内聚(Logical cohesion):):Logically related functions or data are placed in the same module.例如:例如:内聚内聚(Cohesion):The eleme
12、nts 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):Fun
13、ctions are grouped together in a module to ensure a certain order of performance.例如:例如:enter datacheck datamanipulate data2.模模块化原理化原理 通通信信内内聚聚(Communicational cohesion):All the functions in a module operate on or produce the same data set.例例如如:从从同同一一磁磁带上上读取取不不相相干干的的数数据据 可可能能破破坏坏独立性。独立性。高内聚:高内聚:顺序内聚序
14、内聚(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.适当控制适当控制 深度
15、深度=分分层的的层数。数。过大表示分工大表示分工过细。宽度度=同一同一层上模上模块数的最大数的最大值。过大表示系大表示系统复复杂度大。度大。1.争取低耦合、高内聚(增加内聚争取低耦合、高内聚(增加内聚 减少耦合)减少耦合)3.启启发式式规划划 扇出扇出=一个模一个模块直接直接调用用控制的模控制的模块数。数。3 fan-out 9AA的扇出的扇出AA的扇入的扇入 扇入扇入=直接直接调用用该模模块的模的模块数数在不破坏独立性的前提在不破坏独立性的前提下,下,fan-in 大的比大的比较好。好。3.启启发式式规划划4、作用域在控制域内、作用域在控制域内 控制域控制域MACBM的控制域的控制域为 M,
16、A,B,C 作用域:作用域:M中的一个判定所影响的模中的一个判定所影响的模块。例如:例如:A:if then goto B1 B:B1:作用域在控制域内作用域在控制域内A:if then goto M1 M:M1:goto C1 作用域超出了控制域作用域超出了控制域上例中上例中A的作用超出了控制域。改的作用超出了控制域。改进方法之一,可以方法之一,可以把把A中的中的 if 移到移到M中;方法之二,可以把中;方法之二,可以把C移到移到A下面。下面。3.启启发式式规划划5、降低接口的复、降低接口的复杂程度:接口复程度:接口复杂可能表明模可能表明模块的独立性差。的独立性差。6、单出出单入,避免内容耦
17、合。入,避免内容耦合。7、模、模块功能可功能可预测 相同相同输入必入必产生相同生相同输出。出。反例:模反例:模块中使用全局中使用全局变量或静量或静态变量,量,则可可能能导致不可致不可预测。作作业:你自己:你自己负责设计的的HDIS界面中可界面中可能遇到哪些能遇到哪些类型的耦合和内聚?型的耦合和内聚?对列列出的每种出的每种类型型试举一例。一例。4.图形工具形工具1、Hierarchy和和HIPO例:例:P.65 图4.4例:例:Users InterfaceFind a Room2.0Delete a Room3.0Enter a New Room1.0Establish a House4.0B
18、y Type of Floor2.3By Square Footage2.2By Room ID2.1Add a Room4.1Find a Room4.2Delete a Room4.3View House4.4By Room ID4.2.14.图形工具形工具注意:注意:这里的里的hierarchy表表现软件的件的结构,而非数据构,而非数据结构;构;每个矩形框代表一个模每个矩形框代表一个模块,连线表示表示“调用用”而而非非“组成成”;所所谓HIPO,即,即对每个模每个模块附一附一张IPO图。每个。每个IPO图中中应明确明确标出出对应模模块的的编号。号。2、结构构图(Structured Di
19、agram)符号:符号:数据数据传递;控制信息;控制信息;或;或;循循环.4.图形工具形工具例:例:BAMM1M2M3CD注:此注:此图一般一般不入文档,不入文档,仅用于用于检查设计的正确性和模的正确性和模块独立性。独立性。须检查;每个每个传递的数据是否的数据是否必必须?完成模完成模块功能所必功能所必须的数据是否的数据是否都都传递了了?传输的数据是否只与的数据是否只与单一一的功能有关?是的功能有关?是否目的明确?否目的明确?5.面向数据流的面向数据流的设计方法方法(又称又称为SD:Structural Design)基本思想:基本思想:DFD System Hierarchy1、Data Fl
20、ow 的分的分类 变换流流(Transform Flow):Internal representationInformationTransform flowOutgoingflowIncomingflowExternal representationTime事事实上所上所有信息流有信息流都可都可归结为变换流流5.面向数据流的面向数据流的设计方法方法 事事务流流(Transaction Flow)TTransactionrequest Action paths T=Call one of the several subroutines depending on the type of the i
21、ncoming transaction request.当当信信息息流流具具有有明明显的的“发射射中中心心”时,可可归结为事事务流。流。5.面向数据流的面向数据流的设计方法方法2、分析、分析设计 变换分析分析例:例:P.68-69 汽汽车数字数字仪表板的表板的设计功能:功能:通通过模模-数数转换实现传感器和微感器和微处理机接口;理机接口;在在发光二极管面板上光二极管面板上显示数据;示数据;指示每小指示每小时英里数英里数(mph),行行驶的里程,每加的里程,每加仑油行油行驶的英里数的英里数(mpg)等等;等等;指示加速或减速;指示加速或减速;如果如果车速超速超过55mph,则发出警告出警告铃声。
22、声。5.面向数据流的面向数据流的设计方法方法第一步:第一步:DFD的分界,先分出的分界,先分出I、P、O三三块燃料流燃料流 传感器信号感器信号SPS旋旋转信号信号读旋旋转信号信号收集收集和求和求平均平均确定确定加加/减减速速转换成成转/分分计算算里程里程计算算mph,超超速速值产生生加加/减减速速显示示计算算燃料燃料消耗消耗计算算gph读和和校核校核产生生mpg显示示产生生mph显示示发出出铃声声产生生里程里程显示示SPS SPS箭箭头指示指示燃燃烧流流上箭上箭头水平水平线下箭下箭头rpmrpmgphmphmpgmph超速超速值英里英里显示示铃声声mph显示示mpg显示示5.面向数据流的面向数
23、据流的设计方法方法一般一般问题的的一一级分解方分解方法:法:数字数字仪表板表板控制控制数据数据转换控制控制驱动仪表板表板接收接收传感器感器信号信号MPIO5.面向数据流的面向数据流的设计方法方法第二步:映射第二步:映射ADCBMICBDA:每个:每个处理直接理直接对应一个下一个下层模模块。P:由:由边界向回溯,将界向回溯,将每个遇到的每个遇到的处理器映理器映成相成相应的的层模模块。I:由:由边界向外推,方界向外推,方法与法与 类似似OI5.面向数据流的面向数据流的设计方法方法例:例:(与(与P.70 图4.12 对照)照)数字数字仪表板表板控制控制数据数据转换控制控制驱动仪表板表板接收接收传感
24、器感器信号信号计算算gph读燃料流燃料流转换成成rpm收集收集sps读旋旋转信号信号确定确定加加/减速减速计算算mph计算算mpg计算算里程里程加加/减速减速显示示显示示mpg显示示mph显示示里程里程发出出铃声声发光二极管光二极管显示示5.面向数据流的面向数据流的设计方法方法第三步:修改第三步:修改 本着高内聚、低耦合的原本着高内聚、低耦合的原则。例:例:P.73 图4.19精化后的数字精化后的数字仪表板系表板系统的的软件件结构。构。注:每个模注:每个模块应附一附一简要要说明描述明描述 进出出该模模块的信息(接口描述);的信息(接口描述);模模块内部的信息;内部的信息;过程程陈述,包括主要判
25、定点及任述,包括主要判定点及任务等;等;对约束和特殊特点的束和特殊特点的简短短讨论。5.面向数据流的面向数据流的设计方法方法 事事务分析分析MIIISABCIIISBAC5.面向数据流的面向数据流的设计方法方法3、SD的的总体体过程:程:“变换”“事物事物”精化数据流精化数据流图流流类型型区分事物中心和区分事物中心和数据接收通路数据接收通路区分区分输入和入和输出分支出分支映射成事映射成事务结构构映射成映射成变换结构构用启用启发式式设计规则精化精化软件件结构构导出接口描述和出接口描述和全程数据全程数据结构构复复 查详细设计变换分析分析事物分析事物分析优化的前化的前题是是:“Get it to work,then make it fast.”Project Part “总体体设计报告告”分分组演演讲 演演讲内容:内容:分分组任任务简介;介;精化的精化的DFD讲解;解;System Hierarchy 讲解;解;选择有代表性的有代表性的3个模个模块,给出出HIPO图并并讲解。解。演演讲时间:下一次:下一次课时,每,每组10分分钟演演讲+2分分钟听众提听众提问。演演讲顺序:抽序:抽签决定。决定。评分方法:与第一次演分方法:与第一次演讲相同。相同。评 分分 标 准准
限制150内