- 1、本文档共42页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
An Introduction to Database System 第五章 总体设计 总体设计的过程 软件设计的概念和原理 启发式规则 图形工具 面向数据流的设计方法 总体设计 基本目的是回答“概括地说,系统应该如何实现?”这个问题,又称为概要设计或初步设计。 任务: 划分出组成系统的物理元素 另一项重要任务是设计软件的结构,也就是要确定系统中每个程序是由哪些模块组成的,以及这些模块相互间的关系 总体设计的必要性。 4.1.1 设想供选择的方案 根据需求分析阶段得出的数据流图,以自动边界为出发点,划分处理分组的各种可能性,设想并列出供选择的方案。 4.1.2 选取合理的方案 至少选取低成本、中等成本、高成本三种方案并对每种方案提供四份材料: 1、系统流程图 2、成本/效益分析 3、组成系统的物理元素清单 4、进度计划 . 推荐最佳方案 功能分解 设计软件结构 设计数据库 书写文档 制定测试计划 总体设计复审 5.2 软件设计的概念和原理 模块化 抽象 信息隐蔽和局部化 模块独立 模块是由边界元素限定的相邻程序元素,且有一个总体标识符代表它: 模块的四个特性 输入和输出、功能属于模块的外部特性,内部数据、程序代码属于模块的内部特性 定义:就是把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能从而满足用户的需求。 目的:是为了增强程序的可理解性,降低问题的复杂性 5.2.1 模块化 模块化的依据: 设C(x)是定义问题x复杂性的函数,E(x)是定义解决问题x所需工作量函数,对两个问题p1,p2 如果: C(p1)C(p2) 那么 E(p1)E(p2) 一个有趣的特征: C(p1+p2)C(p1)+C(p2) 则有: E(p1+p2)E(p1)+E(p2) 所以引出“分而治之”的结论。 采用模块化的好处 可以使软件结构清晰,容易阅读和理解 程序出现错误时,因为错误只会局限在有关的模块及它们之间的接口中,所以模块化使软件容易测试和调试,有助于提高软件的可靠性。 修改时,因为变动只会涉及到几个模块,所以模块化能够提高软件的可修改性。 有助于软件开发工程的组织管理。 5.2.2 抽象和逐步求精 1.软件系统进行模块设计时,可有不同的抽象层次。 2.在软件需求分析 3.设计过程 5.2.3 逐步求精 Miller法则:一个人在任何时候都只能把注意力集中在(7±2)个知识块上 Wirth:我们对付复杂问题的最重要的办法是抽象。 5.2.5 模块独立 模块独立的概念是模块化、抽象、信息隐藏和局部化概念的直接结果。 模块独立的重要性: 有效的模块化的软件比较容易开发出来 独立的模块比较容易测试和维护 模块独立的定性标准度量 块内联系(内聚) 块间联系(耦合) 1 耦合 概念:是对一个软件结构内不同模块之间互连程度的度量。 耦合强弱取决于模块间接口的复杂程度,进入或访问一个模块的点,以及通过接口的数据。 目标:松耦合 1.块间的耦合 1 非直接耦合(Nondirect Coupling) 两个模块之间没有直接关系,它们之 间的联系完全是通过主模块的控制和 调用来实现的。 非直接耦合的 模块独立性最 强。 数据耦合 int max_value(int x,int y) { int max; max=xy?x:y; return(max); } main() {int x,y; Scanf(“%d %d”,x,y); printf(“max value is %d\n”,max_value(x,y)); } 耦合——控制耦合 (3)控制耦合:若在调用过程中,两个模块间传递的不是数据参数而是控制参数,则模块间的关系即为控制耦合。 当被调用模块接收到控制信息作为输入参数时,说明该模块内部存在多个并列的逻辑路径,即有多个功能。控制耦合是完全可以避免的,步骤如下: ①找出模块调用时所用的一个或多个控制变量; ②在被调模块中根据控制变量找出所有的流程; ③将每一个流程分解为一个独立的模块; ④将原被调模块中的流程选择部分移到上层模块,变为调用判断。 PROC main() { ?????. ?????. ?????. ?????opeation(s,1)//调用operation,使用其功能1 ?????. ?????. ?????. ????? opeation(s,2)//调用operation
您可能关注的文档
最近下载
- 第4课甲午中日战争.ppt
- 2024年江苏省盐城市中考语文真题.docx VIP
- 山东省烟台市芝罘区2020-2021学年六年级下学期期末地理试题(word版 含答案).docx VIP
- 山东省烟台市芝罘区2022-2023学年(五四制)六年级下学期期末道德与法治试题.pdf VIP
- 机械制图第七版完整版全套PPT电子课件教案.pptx
- 微机原理与接口技术课程设计实验报告.docx
- 2024四川成都中考英语解析.docx VIP
- 2024-2025学年广西南宁市小升初英语真题(含答案).pdf VIP
- 一年级语文(下册)期末考试试卷 沪教版A卷 (附解析).pdf VIP
- 浅谈国家中小学智慧教育平台资源在小学语文教学中的应用.pdf
文档评论(0)