第7讲 系统设计.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第7讲 系统设计

系统设计 徐毅 江南大学物联网工程学院 第7讲 系统设计 教学目的 掌握结构化设计方法 主要内容 软件设计的内容和过程 软件设计的基本原则 结构化设计中使用的图形工具 层次图、HIPO图、结构图 概要设计---面向数据流的设计方法 详细设计 软件设计 软件设计的任务 数据设计:即数据结构的定义 系统结构设计:定义软件系统的各主要成份以及它们之间的关系 过程设计:把结构成份转换成软件的过程性描述 根据这种过程性描述,编码、测试,最终得到完整有效的软件 另外还有界面设计、安全设计等 软件设计 软件设计 把软件比作人体 体系结构就是骨架 模块就是器官:能完成某种特定的功能 数据结构和算法就是血管和神经:让器官具有生命并能发挥功能 界面就是人的外表 总体设计的过程 开始考虑“How”,但仍属高层设计 划分出组成系统的物理元素 程序、文件、数据库、人工过程、文档等 但每个物理元素仍然处于“黑盒”状态 全局高度,抽象层次 设计软件的结构 每个程序由哪些模块组成? 模块之间的关系? 总体设计的过程 1、确定最佳方案: 从DFD出发进行任务分解,不同的划分方法即对应不同的方案。每个合理的方案应配备下列4份资料: 系统流程图 组成系统的物理元素清单 成本/效益分析 进度计划 选择最佳方案并制定详细的实现计划 总体设计的过程 2、结构设计 —— 模块化的思想: 将DFD细化,至每个子功能都明白易懂 每个模块完成一个子功能 每层模块合成一个高一级的功能 主要工具有层次图、HIPO图等 3、数据库设计(略) 4、制定测试计划 —— 提高软件的可测试性 5、文档、审查 软件设计的基本原则:简单设计 简单设计 简单是效率 简单是质量 简单才真不简单 真正的大师都是善于把复杂问题简单化 比如爱因斯坦的E=MC2,虽然形式简单,却揭示了一个深刻的物理现象和本质的关系 软件设计的基本原则:简单设计 测试框架JUnit的设计非常简练,被认为是有史以来贡献和代码量比例最高的 “Never in the field of software development was so much owned by so many to so few lines of code” 软件设计的基本原则:简单设计 简单性V.S.灵活性、可扩展性 过分简单会影响灵活性、可扩展性 但是也没必要为了遥远的将来的需求而过分强调灵活性 2、3年以后可能的变化未必真的会成真 2、3年后会有更新的技术和设计 两者需要权衡利弊、因地制宜 所以爱因斯坦建议:“尽可能地让事情简单,但不要过于简单” 软件设计的基本原则:因地制宜 因地制宜 微内核 Microkernel 把操作系统的内核精简到最小,而各个功能模块划分为独立的进程,附加在内核之外 优点:可移植性、可维护性好 宏内核 Macrokernel 内核作为一个整体,模块之间的通信通过直接的函数调用实现 优点:性能更好 软件设计的基本原则:因地制宜 Linux为什么“违背潮流”? Linux兴起的时候,微内核已经盛行 历史原因: Linux急于面世,微内核结构 要实现消息通信机制,更复杂 主要矛盾问题: 对于Linux来说,可移植性和可维护性不是大问题,因为有大量的志愿开发者 而且作为最底层的内核,不会有太大的变化 因此性能是主要矛盾 软件设计的基本原则:因地制宜 微内核在应用软件领域却广泛应用 比如开发工具框架Eclipse就采用了类似微内核的体系结构:主干部分非常精简,主要功能由各种插件提供 软件设计的基本原则:因地制宜 因地制宜 为什么同样一个微内核结构,被Linux抛弃,却在Eclipse中发扬光大? 因为操作系统变化不多,速度更为重要 而应用软件错综多变,灵活性更加可贵 所以在软件设计中没有万能钥匙,要根据具体情况因地制宜,灵活权衡 软件设计的基本原则:套用成解 软件设计中的“现成” 模式、设计模式(Design Pattern) 就像电影情节总有一些老掉牙的模式 爱情喜剧:落魄的男主角和富家小姐相爱,求婚被拒,发奋图强,成就一番事业,有情人终成眷属 爱情悲剧:突然发现两人 是同父异母的兄妹 软件设计的基本原则:套用成解 模式、设计模式(Design Pattern) 软件设计也经常遇到一些类似的问题,因此这些类似问题的解决方案也可以有套路、有模式 软件设计的基本原则:套用成解 软件设计中的“现成” 框架 Framework 提供高端的体系结构,由开发人员添砖加瓦 比如:MFC、Eclipse、JUnit 软件设计的基本原则:模块化 模块化 Modularity 软件中的模块:小到函数、类,大到文件、包、子系统(粒度granuality) 软件设计的基本原则:模块化 模块化 经验:一个大问题拆成多个小问题解决更容易 但是也不要无限

文档评论(0)

asd522513656 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档