




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2022-3-261第五章第五章 总体设计总体设计 明确系统明确系统“怎么做怎么做”,回答,回答“概括地说,概括地说,系统应该如何实现?系统应该如何实现?”的问题。内容包括:的问题。内容包括: 设计过程设计过程 设计原理设计原理 启发规则启发规则 图形工具图形工具 面向数据流的设计方法(结构化设计)面向数据流的设计方法(结构化设计)2022-3-2625.1 5.1 设计过程设计过程 设想供选择的方案设想供选择的方案 选取合理的方案选取合理的方案 推荐最佳方案推荐最佳方案 功能分解功能分解 设计软件结构设计软件结构 数据库设计数据库设计 制定测试计划制定测试计划 书写文档:书写文档: 审查和复
2、审审查和复审2022-3-263设想供选择的方案设想供选择的方案 需求分析阶段得出的数据流图是总体设需求分析阶段得出的数据流图是总体设计的根本出发点。计的根本出发点。 本阶段仅列出供选择的方案,并不进行本阶段仅列出供选择的方案,并不进行评价。评价。2022-3-264选取合理的方案选取合理的方案 通常,选取的这些方案中至少应包括低成本、通常,选取的这些方案中至少应包括低成本、中成本和高成本的三种方案类型。中成本和高成本的三种方案类型。 对每个合理方案要提供以下几方面资料:对每个合理方案要提供以下几方面资料: 系统流程图;系统流程图; 数据字典;数据字典; 成本效益分析;成本效益分析; 实现这个
3、系统的进度计划。实现这个系统的进度计划。2022-3-265推荐最佳方案推荐最佳方案 分析员从合理方案中选择一个最佳方案向用户分析员从合理方案中选择一个最佳方案向用户推荐,并为推荐的方案制定详细的实现计划。推荐,并为推荐的方案制定详细的实现计划。 对于分析员推荐的最佳方案,用户和有关专家对于分析员推荐的最佳方案,用户和有关专家应该认真审查。如果确认该方案确实符合用户应该认真审查。如果确认该方案确实符合用户的需要,并且在现有条件下完全能够实现,则的需要,并且在现有条件下完全能够实现,则应该提请使用部门负责人进一步审批。在使用应该提请使用部门负责人进一步审批。在使用部门负责人也接受了分析员所推荐的
4、方案之后,部门负责人也接受了分析员所推荐的方案之后,方可进入总体设计过程的下一步工作,即结构方可进入总体设计过程的下一步工作,即结构设计阶段。设计阶段。 2022-3-266功能分解功能分解 为确定软件结构,首先要进行功能分解。为确定软件结构,首先要进行功能分解。即:把那些功能过分复杂的处理进行适即:把那些功能过分复杂的处理进行适当的分解。功能分解会导致数据流程图当的分解。功能分解会导致数据流程图的进一步细化。的进一步细化。2022-3-267设计软件结构设计软件结构 对于大型系统的设计,通常分为两个阶段:结对于大型系统的设计,通常分为两个阶段:结构设计和过程设计。构设计和过程设计。 结构设计
5、:结构设计:确定系统由哪些模块组成,以及这确定系统由哪些模块组成,以及这些模块之间的相互关系。些模块之间的相互关系。 过程设计:过程设计:确定每个模块的处理过程。确定每个模块的处理过程。 其中,结构设计是总体设计阶段的任务,而过其中,结构设计是总体设计阶段的任务,而过程设计则是详细设计阶段的任务程设计则是详细设计阶段的任务2022-3-268数据库设计数据库设计 数据库的应用越来越广泛,目前大多数数据库的应用越来越广泛,目前大多数的系统都要用到数据库技术。的系统都要用到数据库技术。 数据库设计是一项专门的技术,包括模数据库设计是一项专门的技术,包括模式设计、子模式设计、完整性和安全性式设计、子
6、模式设计、完整性和安全性设计和优化处理等。设计和优化处理等。 2022-3-269制定测试计划制定测试计划 在软件开发的早期阶段提前考虑软在软件开发的早期阶段提前考虑软件的测试计划是很有必要的。这样件的测试计划是很有必要的。这样能促使软件设计人员在设计时注意能促使软件设计人员在设计时注意到软件的测试问题,从而有利于提到软件的测试问题,从而有利于提高软件的可测试性。高软件的可测试性。 2022-3-2610书写文档书写文档 包括系统说明、用户手册、测试计包括系统说明、用户手册、测试计划、详细的实现计划、数据库设计划、详细的实现计划、数据库设计结果等。结果等。 2022-3-2611审查和复审审查
7、和复审 技术审查技术审查 管理复审管理复审2022-3-26125.2 5.2 设计原理设计原理 模块化模块化 抽象抽象 逐步求精逐步求精 信息隐蔽信息隐蔽 模块独立性模块独立性2022-3-2613模块化模块化 模块:又称构件,是能够单独命名并独模块:又称构件,是能够单独命名并独立地完成一定功能的程序语句的集合。立地完成一定功能的程序语句的集合。例如高级语言中的过程、函数、子程序例如高级语言中的过程、函数、子程序等都可作为模块。等都可作为模块。 模块化是软件的一个重要属性。模块化模块化是软件的一个重要属性。模块化的特性提供了人们处理复杂的问题的一的特性提供了人们处理复杂的问题的一种方法,同时
8、也使得软件能够被有效地种方法,同时也使得软件能够被有效地管理。管理。2022-3-2614模块化(续)模块化(续) 两个函数:两个函数:C(x)C(x)表示问题表示问题x x的复杂程度;的复杂程度;E(x)E(x)表表示解决问题示解决问题x x所需要的工作量(时间)。所需要的工作量(时间)。 对于两个问题对于两个问题P1P1和和P2P2,如果:,如果:C(P1)C(P1)C(P2)C(P2) 则:则:E(P1)E(P1)E(P2)E(P2) 另一个有趣的特性是:另一个有趣的特性是: C(P1C(P1P2)P2)C(P1)C(P1)C(P2)C(P2)2022-3-2615模块化(续)模块化(续
9、) 根据前面的结论,我们可以得出下面的不等式:根据前面的结论,我们可以得出下面的不等式: E(P1E(P1P2)P2)E(P1)E(P1)E(P2)E(P2) 这个不等式表明:这个不等式表明:单独解决问题单独解决问题P1P1和和P2P2所需的所需的工作量之和,比把工作量之和,比把P1P1和和P2P2合起来作为一个问题合起来作为一个问题来解决时所需的工作量要少来解决时所需的工作量要少。 这种这种“分而治之分而治之”的思想提供了模块化的根据:的思想提供了模块化的根据:把复杂的问题分解成许多容易解决的小问题,把复杂的问题分解成许多容易解决的小问题,原来的问题也就容易解决了。原来的问题也就容易解决了。
10、 2022-3-2616模块化(续)模块化(续)模块化和软件成本的关系模块化和软件成本的关系 M 软件总成本 成本或工作量 最小成本区 接口成本 模块数目 2022-3-2617 抽抽 象象 我们在考虑问题时,集中考虑和当前问题有关的我们在考虑问题时,集中考虑和当前问题有关的方面,而忽略和当前问题无关的方面,这就是抽方面,而忽略和当前问题无关的方面,这就是抽象。或者说象。或者说抽象就是抽出事物的本质特性而暂时抽象就是抽出事物的本质特性而暂时不考虑它们的细节不考虑它们的细节。 软件工程过程的每一步,都是对软件解法的抽象软件工程过程的每一步,都是对软件解法的抽象层次的一次细化。在可行性研究阶段,软
11、件被看层次的一次细化。在可行性研究阶段,软件被看作是一个完整的系统部分;在需求分析期间,我作是一个完整的系统部分;在需求分析期间,我们使用在们使用在问题环境问题环境中熟悉的术语来描述软件的解中熟悉的术语来描述软件的解法;当我们由总体设计阶段转入详细设计阶段时,法;当我们由总体设计阶段转入详细设计阶段时,抽象的程度进一步减少;最后,当源程序写出来抽象的程度进一步减少;最后,当源程序写出来时,也就达到了抽象的最低层时,也就达到了抽象的最低层2022-3-2618逐步求精逐步求精 定义:为了能集中精力解决主要问题而定义:为了能集中精力解决主要问题而尽量推迟对问题细节的考虑。尽量推迟对问题细节的考虑。
12、 MillerMiller法则:一个人任何时候都只能把法则:一个人任何时候都只能把注意力集中在注意力集中在7 7(正负(正负2 2)个知识块上。)个知识块上。2022-3-2619信息隐蔽信息隐蔽 信息隐蔽原理认为:模块所包含的信息(过程和数据)信息隐蔽原理认为:模块所包含的信息(过程和数据)对于其他模块来说应该是隐蔽的。也就是说,模块应对于其他模块来说应该是隐蔽的。也就是说,模块应当被这样规定和设计,使得包含在模块中的信息(过当被这样规定和设计,使得包含在模块中的信息(过程或数据)对于其它不需要这些信息的模块来说,是程或数据)对于其它不需要这些信息的模块来说,是不能访问的,或者说是不能访问的
13、,或者说是“不可见不可见”的。的。 信息隐蔽对于软件的测试与维护都有很大的好处。因信息隐蔽对于软件的测试与维护都有很大的好处。因为对于软件的其它部分来说,绝大多数数据和过程都为对于软件的其它部分来说,绝大多数数据和过程都是隐蔽的,这样,在修改期间由于疏忽而引入的错误是隐蔽的,这样,在修改期间由于疏忽而引入的错误所造成的影响就可以局限在一个或几个模块内部,不所造成的影响就可以局限在一个或几个模块内部,不至波及到软件的其他部分。至波及到软件的其他部分。 2022-3-2620模块独立性模块独立性模块的独立性是软件质量的关键:模块的独立性是软件质量的关键:(1 1)模块化程度较高的软件容易开发;)模
14、块化程度较高的软件容易开发;(2 2)模块化程度较高的软件也比较容易测)模块化程度较高的软件也比较容易测试和维护。试和维护。模块的独立性的度量标准:模块的独立性的度量标准:耦合和内聚耦合和内聚2022-3-2621耦耦 合合 耦合:耦合:软件结构中各个模块之间相互关联程度的度量。软件结构中各个模块之间相互关联程度的度量。 常见的耦合:常见的耦合:(1 1)非直接耦合)非直接耦合(2 2)数据耦合)数据耦合(3 3)控制耦合)控制耦合(4 4)特征耦合)特征耦合(5 5)公共环境耦合)公共环境耦合(6 6)内容耦合)内容耦合 设计原则:设计原则:尽量使用数据耦合,少用控制耦合,限制公共尽量使用数
15、据耦合,少用控制耦合,限制公共环境耦合的范围,避免使用内容耦合环境耦合的范围,避免使用内容耦合。2022-3-2622内内 聚聚 常见的内聚:常见的内聚:(1 1)偶然内聚)偶然内聚(0 0分)分)(2 2)逻辑内聚)逻辑内聚(1 1分)分)(3 3)时间内聚)时间内聚(3 3分)分)(4 4)过程内聚)过程内聚(5 5分)分)(5 5)通信内聚)通信内聚(7 7分)分)(6 6)顺序内聚)顺序内聚(9 9分)分)(7 7)功能内聚)功能内聚(1010分)分)2022-3-2623作作 业业 P104: 第第1 1、2 2题题2022-3-26245.3 5.3 启发规则启发规则 尽力提高模块
16、独立性尽力提高模块独立性 选择合适的模块规模选择合适的模块规模 模块的深度、宽度、扇出和扇入应适当模块的深度、宽度、扇出和扇入应适当 模块的作用范围应该在控制范围之内模块的作用范围应该在控制范围之内 降低模块接口的复杂程度降低模块接口的复杂程度 设计单入口单出口的模块,避免设计单入口单出口的模块,避免“病态连接病态连接” 模块功能应该可以预测模块功能应该可以预测2022-3-26255.4 5.4 图形工具图形工具 层次图和层次图和HIPOHIPO图图 结构图结构图层次图层次图正文加工系统输入输出编辑加标题存储检索编目录格式化添加删除插入修改合并列表 正文加工系统的层次图正文加工系统的层次图H
17、IPO图图带编号的层次图带编号的层次图(H图图)正文加工系统输入1.0输出2.0编辑3.0加标题4.0存储5.0检索6.0编目录7.0格式化8.0添加3.1删除3.2插入3.3修改3.4合并3.5列表3.6结构图结构图软件结构图的基本符号软件结构图的基本符号AB(a) 基本形式ACBD(b) 顺序ABC(c) 选择AB(d) 重复产生最佳解的结构图产生最佳解的结构图格式化的解解产生最佳解计算最佳解得到好输入编辑输入读输入原始输入编辑结果原始输入输出结果显示结果结果格式化解格式化的解好输入好输入解2022-3-26305.5 5.5 面向数据流的设计方法面向数据流的设计方法(结构化设计方法)结构
18、化设计方法) 主要内容主要内容: 数据流图的类型数据流图的类型 设计步骤设计步骤 变换设计变换设计 事务设计事务设计 设计的后处理设计的后处理5.5.1 数据流图的类型数据流图的类型1、变换型数据流图、变换型数据流图输入变换输出2、事务型数据流图、事务型数据流图事务中心活动通路T事务5.5.2 设计步骤设计步骤复查满意精化数据流图类型区分事务中心和数据接收通路映射成事务结构区分输入和输出分支映射成变换结构“事务”“变换”优化软件结构导出软件结构详细设计不满意5.5.3 变换设计变换设计我们通过一个汽车数字仪表板的设计来介绍变换分析我们通过一个汽车数字仪表板的设计来介绍变换分析的过程。假设仪表板
19、的功能如下:的过程。假设仪表板的功能如下:(1 1)通过模数()通过模数(A AD D)转换实现传感器和微处理机)转换实现传感器和微处理机接口;接口;(2 2)在发光二极管()在发光二极管(LCDLCD)面板上显示数据;)面板上显示数据;(3 3)指示每小时英里数()指示每小时英里数(mphmph),行驶的里程,每加),行驶的里程,每加仑油行驶的英里数(仑油行驶的英里数(mpgmpg)等等;)等等;(4 4)指示加速或减速;)指示加速或减速;(5 5)超速警告:如果车速超过)超速警告:如果车速超过5555英里小时,则发出英里小时,则发出超速警告铃声。超速警告铃声。在软件需求分析阶段,应该对上述
20、每项性能和其它要在软件需求分析阶段,应该对上述每项性能和其它要求进行全面的分析,并建立起相应的文档资料,得出数据求进行全面的分析,并建立起相应的文档资料,得出数据流图。流图。具体的设计步骤如下:具体的设计步骤如下:1、复查基本、复查基本系统模型系统模型2、复查并精化、复查并精化数据流图数据流图SPSmph超速值计算里程产生加速/减速显示读入旋转信号收集并求平均旋转信号信号数/秒(SPS)确定加速/减速箭头指示下箭头水平线上箭头转换成转/分(rpm)计算mph和超速值计算燃料消耗产生mpg显示读入并核实计算gph燃料流量传感器信号燃料流量gphmphmpgmpg显示产生里程显示英里显示发出警告铃
21、声警告铃声产生mph显示mph显示rpmSPSrpm3、确定数据流图的类型、确定数据流图的类型这一步的任务是确定数据流图是这一步的任务是确定数据流图是变换型数据流图还变换型数据流图还是事务型数据流图。是事务型数据流图。从上图中可以看出,数据沿着两条输入通路(旋转从上图中可以看出,数据沿着两条输入通路(旋转信号和燃料流量传感器信号)进入系统,然后沿着五条信号和燃料流量传感器信号)进入系统,然后沿着五条通路(通路(4 4个显示,一个警告铃声)离开,没有明显的事务个显示,一个警告铃声)离开,没有明显的事务中心(虽然变换中心(虽然变换“计算计算mphmph与超速值与超速值”可以看作是一个事可以看作是一
22、个事务中心)。因此,可以认为这个数据流图的类型是变换务中心)。因此,可以认为这个数据流图的类型是变换型数据流图。型数据流图。4、确定输入流和输出流的边界,从而孤立出变换中心、确定输入流和输出流的边界,从而孤立出变换中心SPSrpmmpg 显示gphmpgmph(SPS)mph超速值计算里程读入旋转信号收集并求平均旋转信号信号数/秒确定加速/减速箭头指示产生加速/减速显示下箭头水平线上箭头转换成转/分(rpm)计算mph 和超速值计算燃料消耗产生mpg显示读入并核实计算gph燃料流量传感器信号燃料流量产生里程显示英里显示发出警告铃声警告铃声产生mph显示mph 显示SPSrpm5、进行、进行“第
23、一级分解第一级分解”CmCtCaCe第一级分解的方法第一级分解的方法第一级分解的结果第一级分解的结果数字仪表板控制数据转换控制接收传感器信号驱动仪表板输入控制变换控制输出控制6、进行、进行“第二级分解第二级分解”第二级分解的方法第二级分解的方法BADCCmCa CB D A第二级分解的结果第二级分解的结果:接收传感器信号转换成 rpm计算 gph收集 sps读旋转信号读燃料流量接收传感器信号确定加速/减速计算 mph计算 mpg计算里程 未经精化的输入结构未经精化的输入结构 未经精化的变换结构未经精化的变换结构 未经精化的输出结构未经精化的输出结构驱动仪表板加速/减速显示显示 mpg显示里程发出警告铃声显示 mph发光二极管显示7、使用设计度量和设计准则对
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030年中国硬度计市场竞争格局及投资战略研究报告
- 2025-2030年中国男士护肤品行业竞争状况及发展趋势分析报告
- 2025-2030年中国电热线市场运行状况及前景趋势分析报告
- 上海工程技术大学《预防口腔医学》2023-2024学年第二学期期末试卷
- 沈阳药科大学《工业网络与组态技术》2023-2024学年第二学期期末试卷
- 中南大学《电动汽车原理与设计》2023-2024学年第二学期期末试卷
- 沈阳航空航天大学北方科技学院《初中道德与法治课程标准与教材》2023-2024学年第二学期期末试卷
- 辽宁中医药大学杏林学院《电工仪表与测量》2023-2024学年第二学期期末试卷
- 广西金融职业技术学院《化工热力学》2023-2024学年第二学期期末试卷
- 2025年安全员《A证》考试题库
- 2025至2030年中国电子护眼台灯数据监测研究报告
- 2025年浙江省温州乐清市融媒体中心招聘4人历年高频重点提升(共500题)附带答案详解
- 2025夏季广东广州期货交易所招聘高频重点提升(共500题)附带答案详解
- 北京市丰台区2024-2025学年高三上学期期末英语试题
- 2025上海市嘉定工业区农村青年干部招聘22人历年高频重点提升(共500题)附带答案详解
- 《兽医基础》练习题及参考答案
- 2025年煤矿探放水证考试题库
- 农业机械设备运输及调试方案
- 污水处理设备的故障处理指南考核试卷
- ps 课件教学课件
- 神经外科患者早期康复护理
评论
0/150
提交评论