- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
。 第7步 使用设计度量和启发式规则对第一次分割得到的软件结构进一步精化。 为了得到一个易于实现、易于测试和易于维护的软件结构,应该对初步分割得到的模块进行再分解或合并。 具体到数字仪表板的例子,可做如下某些可能的修改: (1)输入结构中的模块“转换成rpm”和“收集sps”可以合并; (2)模块“确定加速/减速”可以放在模块“计算mph”下面,以减少耦合; (3)模块“加速/减速显示”可以相应地放在模块“显示mph”的下面。 图5.19 经过修改的精化后的数字仪表板系统的软件结构 系统的软件结构确定软件由哪些模块组成以及这些模块之间的动态调用关系 * 课堂练习1 患者监护系统2-4 (P114) * 日志 数据 要求 生理 信号 生理信号 危机病人 信息 产生警告信息 3 分析 信号 2 处理事务 1 接受信号 1 病人 警告信息 病情报告 日期 时间 定时生理信号 日志 数据 更新日志 5 处理事务 1 定时取样 4 时钟 生理信号 D1 患者安全范围 患者安全范围 D1 患者日志 产生病情报告 6 护士 D3 生理信息 生理信号 制定安全范围 7 安全范围信息 安全范围信息 护士 * 完成第一步分解 * 完成第二步分解 考虑设计优化问题时应该记住,“一个不能工作的‘最佳设计’的价值是值得怀疑的”。软件设计人员应该致力于开发能够满足所有功能和性能要求、且按照设计原理和启发式设计规则衡量是值得接收的软件。 应该在设计的早期阶段尽量对软件结构进行精化。可以导出不同的软件结构,然后对它们进行评价和比较,力求得到“最好”的结果。这种优化的可能,是把软件结构设计和过程设计分开的真正优点之一。 5.5.4 设计优化 注意,结构简单通常既表示设计风格优雅,又表明效率高。 设计优化应该力求做到在有效的模块化的前提下使用最少量的模块,以及在能够满足信息要求的前提下使用最简单的数据结构。 总体设计可以在软件开发的早期站在全局高度对软件结构进行优化。在这个时期进行优化付出的代价不高,却可以使软件质量得到重大改进。 总体设计阶段的基本目的是用比较抽象概括的方式确定系统如何完成预定的任务。 (1)首先需要进行系统设计; (2)然后进行软件结构设计,确定软件由哪些模块组成以及这些模块之间的动态调用关系。层次图和结构图是描绘软件结构的常用工具。 5.6 小结 软件结构设计遵循的最主要的原理是模块独立原理:软件应该由一组完成相对独立的子功能的模块组成,这些模块彼此之间的接口关系应该尽量简单。 如果已经有了详细的数据流图,可以使用面向数据流的设计方法,由数据流图映射出软件结构。认真分析和改进软件的初步结构,以得到质量更高的模块和更合理的软件结构。 * 课后作业如下(P114) 3(1) * 3(1)数据流图 * * 作业及解答(第5章) 机票预定系统的数据流图 旅行社 录入旅客 信息 订票 核对 旅客 打印账单 及通知 交款 打印机票 第一步:复查订票子系统的DFD,发现取票子系统少了数据输入操作。 * 作业及解答(第5章) 机票预定系统的数据流图 旅行社 录入旅客 信息 订票 核对 旅客 打印账单 及通知 交款 打印机票 录入取票 信息 第二步:对其进行精化,增加了“录入取票信息”处理。 * 作业及解答(第5章) 机票预定系统的数据流图 旅行社 录入旅客 信息 订票 核对 旅客 打印账单 及通知 交款 打印机票 录入取票 信息 第三步:确定该DFD具有变换特性。 第四步:确定输入流和输出流的边界,孤立出变换中心。 * 图5.4 带编号的层次图(H图) * * * 图5.3 工资计算系统的H图 每一个矩形框代表一个模块,图中最顶层的矩形框表示系统中的主控模块,矩形框之间的连线用于表示模块之间的调用关系。适用于自顶向下进行分解的软件结构设计方法。 结构图中一个方框代表一个模块,框内注明模块的名字或主要功能。 方框之间的箭头(或直线)表示模块的调用关系。位于上方的方框代表的模块调用下方的模块。 5.4.2 结构图(用于描绘软件结构) * 表5.1 结构图中的基本符号 A B C A B C 符 号 含 义 用于表示模块,方框中标明模块的名称 用于描述模块之间的调用关系 用于表示模块调用过程中传递的信息,箭头上标明信息的名称;箭头尾部为空心圆表示传递的信息是数据,若为实心圆则表示传递的是控制信息 ? 表示模块A选择调用模块B或模块C.判定为真时调用B,为假时调用C 表示模块A循环调用模块B和模块C 图5.5 结构图的例子——产生最佳解的一般结构 尾部是空心圆表示传递的是数据。 实心圆表示传递的是控制信息。 结构图可以作为检查设计正确性和评价模块独立性
文档评论(0)