版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第四章第四章 总体设计总体设计(System architecture Design) 总体设计过程总体设计过程 软件设计的概念和原理软件设计的概念和原理 启发式规则启发式规则 图形工具图形工具 面向数据流的设计方法面向数据流的设计方法软件设计过程软件设计过程编码编码测试测试设计设计信息描述功能描述行为描述其他需求总体结构设计数据设计过程设计 程序模块集成并确认的软件- 软件开发阶段的信息流1、确定最佳方案:、确定最佳方案: 从从DFD出发进行任务分解,不同的划分方法即对出发进行任务分解,不同的划分方法即对应不同的方案。每个合理的方案应配备下列应不同的方案。每个合理的方案应配备下列4份份资料:
2、资料:系统流程图系统流程图组成系统的物理元素清单组成系统的物理元素清单成本成本/效益分析效益分析进度计划进度计划 选择最佳方案并制定详细的实现计划(主要技选择最佳方案并制定详细的实现计划(主要技术详见第十三章)术详见第十三章)1. 过程过程1. 过程过程2、结构设计、结构设计 模块化思想:模块化思想: 将将DFD细化,至每个子功能都明白易懂;每个模细化,至每个子功能都明白易懂;每个模块完成一个子功能;每层模块合成一个高一级的功块完成一个子功能;每层模块合成一个高一级的功能。能。 主要工具有主要工具有 System Design Hierarchy及及HIPO图等。图等。3、数据库设计、数据库设
3、计 (略)(略)5、文档、审查、文档、审查4、测试计划、测试计划 (详见第七章)(详见第七章)2.模块化原理模块化原理(Modularization)1、原理:、原理:经验经验1:E(P1+P2)E(P1)+E(P2)经验经验2:成本模块关系:成本模块关系成本成本成本成本 / / 模块模块最小成本区最小成本区接口成本接口成本软件总成本软件总成本模块数目模块数目分解(decomposition) E(P1+P2)E(P1)+E(P2)设: C(x) 为复杂程度函数 E(x) 为决定解决问题x x所需的工作量(时间)函数 C(P1)C(P2) E(P1)E(P2)C(P1+P2)C(P1)+C(P
4、2) Magical Number Seven,Plus or Minus Two,Some Limits on Our Capacity for Processing Information The Psychological Review,1956 G.A. Miller奇妙的数字 7+2,人类信息处理能力的限度2.模块化原理模块化原理2、抽象、抽象(Abstraction): 忽略细节,分层理解问题,自顶向下层层加细。忽略细节,分层理解问题,自顶向下层层加细。例:例:开发一个开发一个CAD软件,实现一个二维绘图系统的全软件,实现一个二维绘图系统的全部功能,供低级计算机辅助设计使用。部功能
5、,供低级计算机辅助设计使用。 抽象层次抽象层次I I:用问题所处环境的术语来描述这个软件。:用问题所处环境的术语来描述这个软件。该软件包括一个计算机绘图界面,向绘图该软件包括一个计算机绘图界面,向绘图员显示图形,以及一个数字化仪界面,用员显示图形,以及一个数字化仪界面,用以代替绘图板和丁字尺。所有直线、折线、以代替绘图板和丁字尺。所有直线、折线、矩形、圆及曲线的描画、所有的几何计算、矩形、圆及曲线的描画、所有的几何计算、所有的剖面图和辅助视图都可以用这个所有的剖面图和辅助视图都可以用这个CADCAD软件实现软件实现。2.模块化原理模块化原理 抽象层次抽象层次IIII:任务需求的描述。列出:任务
6、需求的描述。列出“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 UNTILE (drawing creation task terminates
7、) 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: a
8、uxiliary 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、模
9、块独立性、模块独立性(Module independence) 好设计的关键:每个模块完成一个相对独立的子功好设计的关键:每个模块完成一个相对独立的子功能,并且与其它模块间的接口简单。能,并且与其它模块间的接口简单。 在这个抽象层次上,给出了初步的过程表示,在这个抽象层次上,给出了初步的过程表示,所用的术语都已面向软件,而且模块化的工作已所用的术语都已面向软件,而且模块化的工作已经开始显露。经开始显露。 每个模块的实现细节对于其他模块来说是隐藏的。 也就是说,模块中所包含的信息是不允许其他不需要 这些信息的模块使用的。 信息隐藏(information hiding)栈stack置空栈 mak
10、enull进栈 push退栈 pop模块的独立性(module independence) 模块的独立性是指软件系统中每个模块只模块的独立性是指软件系统中每个模块只涉及软件要求的具体的子功能,而和软件系统涉及软件要求的具体的子功能,而和软件系统中其他模块的接口是简单的。中其他模块的接口是简单的。独立性的度量:独立性的度量:耦合耦合(Coupling)&内聚内聚(Cohesion) (Yourdon & Constantine,1978)(1)、内聚(Cohesion)低功能内聚信息内聚通信内聚过程内聚时间内聚逻辑内聚巧合性内聚 高强弱 内聚性模块独立性 偶然性内聚偶然性内聚 M
11、 STORE RECN() TO N READ MASTRE FILE ADD 1 TO X 。 。 ABC 当模块内各部之间没有联系,或者即使有联系,这种联系也很松散。则称这种模块为巧合内聚模块。 逻辑性内聚逻辑性内聚 这种模块是把几种功能组合在一起,每次调用时,则由传递给模块的判定参数来确定该模块应执行哪一种功能。 调用模块判定读一个记录写一个记录被调用模块SXYZWABCDSXYZW ABCD 信息性内聚信息性内聚 这种模块能完成多个功能,各个功能都在同一数据结构上操作,每一项功能有一个唯一的入口点。 符符 号号 表表 查找登录删除修改 功能性内聚功能性内聚 如果一个模块内所有成分都完成
12、一个功能则称这样的模块为功能模块。 主控模块录入查询打印低功能内聚信息内聚通信内聚过程内聚时间内聚逻辑内聚巧合性内聚 高强弱 内聚性模块独立性(2)、耦合 耦合性是程序结构中各个模块之间相互关联的度量它取决于各个模块之间接口的复杂程度、调用模块的方式以及那些信息通过接口。低非直接非直接耦合耦合数据数据耦合耦合标记标记耦合耦合控制耦合外部耦合公共耦合内容耦合 高弱 强耦合性模块独立性 公共耦合公共耦合 允许一组模块访问同一全局性的数据结构。全局全局数据区数据区ABCDEFB、C、E 为公共耦合 控制耦合控制耦合 如果一个模块通过传送开关、标志、名字 等控制信息,明显地控制选择另一模块的功能 就是
13、控制耦合。A 模块flagf1Bf2fn 以上给出了 7种耦合类型,这只是从耦合 的机制上所做的分类,按耦合的强弱程度的排 列只是相对的关系。但它给设计人员在设计程 序结构时提供了一决策准则。实际上,开始时 两个模块之间的耦合不只是一种类型,而是多 种类型的混合。这就要求设计人员按照实际情 况进行分析、比较和分析,逐步加以改进,以 提高模块的独立性。3.启发式规划启发式规划2. 模块规模适中:模块规模适中: 过大不易理解;太小则接口开销过大。注意分解过大不易理解;太小则接口开销过大。注意分解后不应降低模块的独立性。后不应降低模块的独立性。3. 适当控制适当控制 深度深度 = 分层的层数。过大表
14、示分工过细。分层的层数。过大表示分工过细。 宽度宽度 = 同一层上模块数的最大值。过大表示系统同一层上模块数的最大值。过大表示系统复杂度大。复杂度大。1. 争取低耦合、高内聚(增加内聚争取低耦合、高内聚(增加内聚 减少耦合)减少耦合)3.启发式规划启发式规划 扇出扇出 = 一个模块直接调一个模块直接调用用控制的模块数。控制的模块数。 3 fan-out 9AA的扇出的扇出AA的扇入的扇入 扇入扇入 = 直接调用该模直接调用该模块的模块数块的模块数在不破坏独立性的前提在不破坏独立性的前提下,下,fan-in 大的比较好。大的比较好。3.启发式规划启发式规划4、作用域在控制域内、作用域在控制域内
15、控制域控制域MACBM的控制域为的控制域为 M,A,B,C 作用域:作用域:M中的一个判定所影响的模块。中的一个判定所影响的模块。例如:例如:A: if then goto B1 B: B1: 作用域在控制域内作用域在控制域内A: if then goto M1 M: M1: goto C1 作用域超出了控制域作用域超出了控制域上例中上例中A的作用超出了控制域。改进方法之一,可以的作用超出了控制域。改进方法之一,可以把把A中的中的 if 移到移到M中。中。3.启发式规划启发式规划5、降低接口的复杂程度:接口复杂可能表明模块的独、降低接口的复杂程度:接口复杂可能表明模块的独立性差。立性差。6、单
16、出单入,避免内容耦合。、单出单入,避免内容耦合。7、模块功能可预测、模块功能可预测 相同输入必产生相同输出。相同输入必产生相同输出。反例:模块中使用全局变量或静态变量,则可能导反例:模块中使用全局变量或静态变量,则可能导致不可预测。致不可预测。作业:你自己负责设计的系统界面中可能作业:你自己负责设计的系统界面中可能遇到哪些类型的耦合和内聚?对列出遇到哪些类型的耦合和内聚?对列出的每种类型试举一例。的每种类型试举一例。4.图形工具图形工具1、Hierarchy和和HIPO例:例:Users InterfaceFind a Room2.0Delete a Room3.0Enter a New Ro
17、om1.0Establish a House4.0By 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图。每个图。每个
18、IPO图中图中应明确标出对应模块的编号。应明确标出对应模块的编号。2、结构图、结构图(Structured Diagram)符号:符号:数据传递;数据传递;控制信息;控制信息;或;或;循环循环. .4.图形工具图形工具例:例:BAMM1M2M3CD注:此图一般注:此图一般不入文档,仅不入文档,仅用于检查设计用于检查设计的正确性和模的正确性和模块独立性。块独立性。须检查;须检查; 每个传递的数据是否每个传递的数据是否必须必须? 完成模块功能所必须的数据是否完成模块功能所必须的数据是否都传递了都传递了? 传输的数据是否只与传输的数据是否只与单一单一的功能有关?是的功能有关?是否目的明确?否目的明确
19、?5.面向数据流的设计方法面向数据流的设计方法(又称为又称为SD:Structural Design)基本思想:基本思想: DFD System Hierarchy1、Data Flow 的分类的分类 变换流变换流(Transform Flow):Internal representationInformationTransform flowOutgoingflowIncomingflowExternal representationTime事实上所事实上所有信息流有信息流都可归结都可归结为变换流为变换流5.面向数据流的设计方法面向数据流的设计方法 事务流事务流(Transaction Flo
20、w) TTransactionrequest Action paths T = Call one of the several subroutines depending on the type of the incoming transaction request.当信息流具有明显当信息流具有明显的的“发射中心发射中心”时,时,可归结为事务流。可归结为事务流。5.面向数据流的设计方法面向数据流的设计方法2、分析设计、分析设计 变换分析变换分析汽车数字仪表板的设计汽车数字仪表板的设计功能:功能: 通过模通过模 - 数转换实现传感器和微处理机接口;数转换实现传感器和微处理机接口; 在发光二极管面
21、板上显示数据;在发光二极管面板上显示数据; 指示每小时英里数指示每小时英里数(mph),行驶的里程,每加仑行驶的里程,每加仑油行驶的英里数油行驶的英里数(mpg)等等;等等; 指示加速或减速;指示加速或减速; 如果车速超过如果车速超过55mph ,则发出警告铃声。则发出警告铃声。5.面向数据流的设计方法面向数据流的设计方法第一步:第一步:DFD的分界,先分出的分界,先分出I、P、O三块三块燃料流燃料流 传感器信号传感器信号SPS旋转信号旋转信号读读旋转旋转信号信号收集收集和求和求平均平均确定确定加加/ /减减速速转换转换成成转转/ /分分计算计算里程里程计算计算mph,超超速值速值产生产生加加
22、/ /减减速显示速显示计算计算燃料燃料消耗消耗计算计算gph读和读和校核校核产生产生mpg显示显示产生产生mph显示显示发出发出铃声铃声产生产生里程里程显示显示SPS SPS箭头指示箭头指示燃烧流燃烧流上箭头上箭头水平线水平线下箭头下箭头rpmrpmgphmphmpgmph超速值超速值英里英里显示显示铃声铃声mph显示显示mpg显示显示5.面向数据流的设计方法面向数据流的设计方法一般问题的一般问题的一级分解方一级分解方法:法:数字仪表板数字仪表板控制控制数据转换数据转换控制控制驱动仪表板驱动仪表板接收传感器接收传感器信号信号MPIO5.面向数据流的设计方法面向数据流的设计方法第二步:映射第二步
23、:映射ADCBMICBDA:每个处理直接对应:每个处理直接对应一个下层模块。一个下层模块。P:由边界向回溯,将:由边界向回溯,将每个遇到的处理器映每个遇到的处理器映成相应的层模块。成相应的层模块。I:由边界向外推,方:由边界向外推,方法与法与 类似类似OI5.面向数据流的设计方法面向数据流的设计方法例:例: (与前面(与前面 对照)对照) 数字仪表板数字仪表板控制控制数据转换数据转换控制控制驱动仪表板驱动仪表板接收传感器接收传感器信号信号计算计算gph读燃料流读燃料流转换成转换成rpm收集收集sps读旋转信号读旋转信号确定确定加加/ /减速减速计算计算mph计算计算mpg计算计算里程里程加加/ /减速减速显示显示显示显示mpg显示显示mph显示显示里程里程发出发出铃声铃声发光二极管显示发光二极管显示5.面向数据流的设计方法面向数据流的设计方法第三步:修改第三步:修改 本着高内聚、低耦合
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 瘢痕子宫孕妇阴道分娩围产期管理全流程循证总结2026
- 2025年建筑行业数字化转型组织文化建设
- 2026届达州市高三第二次调研历史试卷含解析
- 2025-2026学年驻马店市高考历史二模试卷含解析
- 基于认知冲突的初中数学课堂问题解决能力培养策略教学研究课题报告
- 循证康复实践中的康复-应用创新
- 2026年智能纤维创新应用报告
- 影像组学特征与肿瘤血管生成的相关性及疗效预测
- 生成式AI在教育内容创作中的知识产权保护与利益平衡教学研究课题报告
- 2026年自动驾驶交通管理创新报告及未来五至十年基础设施报告
- 贵州红星山海生物科技有限责任公司招聘笔试题库2026
- 高考听力播放应急预案(3篇)
- 区域经济研究报告:西安经济产业现状及发展建议
- 展览设计专业考试试题及答案
- 2026年政务服务知识培训课件
- 六年同窗 不负韶华-小学毕业成长纪念册
- 病理学 课件 第十四章 消化系统疾病
- 2025年管道系统安装及试验测试卷附答案
- 2026年4月自考02324离散数学试题及答案含评分参考
- 2026中考语文文言文九大主题对比整合梳理(附真题)
- 中医门诊绩效考核制度
评论
0/150
提交评论