- 1、本文档共82页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
软件设计基础41607.ppt
软件工程 是后续开发步骤及软件维护工作的基础。 如果没有设计,只能建立一个不稳定的系统结构 软 件 工 程 7.1.1 软件设计过程 7.1.2 抽象与逐步求精 抽象1: 该CAD软件系统配有与绘图员进行可视化通信的图 形界面,能用鼠标代替绘图工具画各种直线和曲线; 能完成所有几何计算以及所有截面视图和辅助视图的 设计。图形设计的结果保存在图形文件中,图形文件 可以包含几何的、正文的和其他各种补充设计信息。 数据对象: TYPE drawing IS STRUCTURE DEFINED number IS STRING LENTH(12); geometry DEFINED… notes IS STRING LENTH(256); bom DEFINED… END drawing TYPE; 逐步求精 7.1.3 模块化与信息隐藏 低级内聚度(3个) 中级内聚度(2个) 高级级内聚度(2个) 1.非直接耦合: 两个模块中任一个,都不依赖于对方能独立工作。如果两个模块中的每一个都能独立地工作而不需要另一个模块的存在,那么它们彼此完全独立,这意味着模块间无任何连接,耦合程度最低,模块的独立性最高。见图中的模块1和模块2的关系。它们之间是同级模块,互相之间没有信息的传统。但是,在一个软件系统中不可能所有模块之间都没有任何连接。 3.特征耦合 4.当模块A向模块B所传递的信息控制了B的内部逻辑。 6.公共耦合----7.内容耦合(病态耦合) 6.如果两个模块都和同一个公共数据域有关,即一组模块都访问同一全局数据结构就是公共耦合 7.1.4 软件总体结构设计(software architecture) 目标:模块化的程序结构、明确各模块之间的控制 关系、说明程序的输入输出数据流、进一步协调程 序结构和数据结构。 结构设计原则 结构设计原则 2. 模块规模适中: 过大不易理解;太小则接口开销过大。注意分解后不应降低模块的独立性。 ? 深度 = 分层的层数。过大表示分工过细。 ? 宽度 = 同一层上模块数的最大值。过大表示系统复杂度大。 ? 扇出 = 一个模块直接调用\控制的模块数。 3 ? fan-out ? 9 4 作用域在控制域内 5、降低接口的复杂程度:接口复杂可能表明模块的独立性差。 6、单出单入,避免内容耦合。 7、模块功能可预测 —— 相同输入必产生相同输出。反例:模块中使用全局变量或静态变量,则可能导致不可预测。 7.2 软件过程设计技术和工具 7.2.2 图形表示法 1.流程图(也称为程序框图)是最常用的一种表示法, “顺序”、“分支”和“循环”三个基本控制构件用流程图表达的形式如图8-2-1所示。 7.2.2 图形表示法 2.盒图也称为N-S图或Chapin图。这种表达方式取消了流程线,它强迫程序员以结构化方式思考和解决问题。 7.2.3 判定表与判定树 判定表由四部分组成: 7.2.3 判定表与判定树 【例7.2】问题处理描述:耗电记费系统可以采用固定价格收费、浮动价格收费和其他方式收费三种方式。若采用固定价格方式收费,对每月耗电100kW?h以下的用户只征收最低标准费,超过100kW?h的用户按价格A收费;若采用浮动价格方式收费,则每月耗电100kW?h以下的用户按价格A收费,超过100kW?h的用户按价格B收费。 表7?1 判定表 【例7.2】判定树 耗电<100kW·h — 收取最低标准费 固定方式 耗电≥100kW·h — 按价格A收费 耗电<100kW·h — 按价格A收费 耗电收费 浮动方式 耗电≥100kW·h — 按价格表B收费 其他方式— 其他处理 图8-2-5 用判定树表示计算耗电收费的算法 7.2.3 判定表与判定树 判定树的优点:形式简单,直观明了,易于掌握。 判定树的缺点: ①存在着数据冗余的问题,相同的数据元素往往
文档评论(0)