- 1、本文档共104页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第五章 总体设计 5.1 设计过程 5.2 设计原理 5.3 启发规则 5.4 描绘软件结构的图形工具 5.5 面向数据流的设计方法 5.6 小结 学习要求 掌握: 1 、软件设计过程中应遵循的基本原理和相关概念; 2 、描绘软件结构的图形工具的运用; 3 、面向数据流设计方法概念;变换分析、事务分析法过程和应用。 理解: 1 、典型的总体设计过程包括的步骤; 2 、设计中的启发式规则; 重点和难点 重点: 软件设计过程中应遵循的基本原理; 面向数据流的设计方法 难点: 变换分析、事务分析法的过程和应用 软件设计的目标和任务 软件需求:解决“做什么” 软件设计:解决“怎么做”. 软件设计的任务:以软件需求规格说明书为依据,着手实现软件的需求,并将设计的结果反映在“设计规格说明书”文档中。 软件设计的重要性:是软件开发阶段的第一步,最终影响软件实现的成败和软件维护的难易程度。 将需求分析摸型转换为软件设计 软件结构设计以需求分析中得到的数据流图为基础而进行。 软件设计的两个阶段 第二阶段:详细设计(过程设计) 确定模块内部的算法和数据结构;选定某种过程的表达形式来描述各种算法;产生精确描述各模块程序过程的详细文档,并进行评审。 5.1 总体设计的过程 5. 2 设计原理 5.2.1模块化 5.2.2抽象 5.2.3逐步求精 5.2.4信息隐蔽和局部化 5.2.4模块独立 5 . 2 . 1 模块化(Modularity ) 模块,在程序中是数据说明、可执行语句等程序内容的集合。该集合一般是因完成一个功能放在一起。 在形式上,它可以是高级语言中的一个过程、函数和子程序等。在软件的构架中,模块是可以组合、分解和更换的单元。模块具有以下几种基本特点: (1)接口:指模块输入与输出。 (2)功能:是模块存在的必要条件,模块必然是为实现某个功能而延生的。 (3)逻辑:指模块内部的算法逻辑。 功能、状态与接口反映模块的外部特性,逻辑反映它的内部特性。 ② 模块化的优点 采取自顶向下的方式,逐层把软件系统划分成若干可单独命名和可编址的部分- “ 模块” ,每个模块完成一个特定的子功能,“分而治之” ;所有模块按某种方法组成一个整体,完成整个系统所要求的功能。软件系统就是通过这些模块的组合来实现。模块化是软件解决复杂问题所具备的手段。 模块化使软件容易测试和调试,因而有助提高软件的可靠性。 模块化能提高软件的可修改性。 模块化有助于软件开发工程的组织管理。 ③ 模块化与软件成本的关系 5.2.2 抽象( Abstraction ) ① 什么是抽象? 认识复杂事物和现象时,抽出事物本质的共同特性而暂不考虑它们的细节。 ② 软件开发中的抽象 过程的抽象 数据的抽象 5 . 2. 3 逐步求精 逐步求精:为了能集中精力解决主要问题而尽量推迟对问题细节的考虑。 可把逐步求精看作是一项把一个时期内必须解决的种种问题按优先级排序的技术。 逐步求精是一种自顶向下的设计策略,按这种设计策略,程序的体系结构是通过逐步精化处理过程的层次而设计出来的。 自顶向下,逐步求精的基本思想 将功能、信息的说明分为多个层次,最高层也最抽象 ― 仅仅只是概念性地描述功能或信息,不提供功能的内部工作情况或信息的内部结构; 设计者从最高层开始,仔细推敲,进行功能和信息的细化,给出下层实现的细节; 随着每个后续细化逐步的完成,提供越来越多的细节,最终得出用程序设计语言表达的程序。 结合了模块化和逐步细化思想建立的软件结构图 5 . 2.4信息隐蔽和局部化 信息隐蔽:在设计和确定模块时,使得一个模块内包含的信息(过程或数据),不允许其它不需要这些信息的模块访问,独立的模块间仅仅交换为完成系统功能而必须交换的信息。 具体讲有两个方面: (1)模块内部的过程,在外部是不应该直接被调用的 (2)模块内部的数据,必须严格设计其可见性 公共\受保护\私有 局部化:将一些关系密切的软件元素物理地放得彼此靠近。 5. 2 . 5 模块独立 1 、什么是模块独立性( module independence) 模块只完成系统要求的相对独立的功能 符合信息隐蔽原则 模块间关联和依赖程度尽量小 2 、模块独立的优点 容易开发、测试和维护 3 、衡量模块独立性的两个准则 ① 耦合性( coupling ) :也称为块间联系,一个模块被连接到系统其它模块的程度。 ② 内聚性( cohesion ):也称为块内联系或模块强度, 模块独立性愈高,则块内联系越强,块间联系越弱。 ① 耦合性( coupling ) 也称块间的联系。是对软件系统结构中,各模块间相互联系紧密程度的一种度量。 设计目标:低耦合 模块间耦合强度 无直接耦合 两个模块没有直接关系,模块独立性最强。
您可能关注的文档
- VIDEBLOX矩阵培训-系统介绍20060308.ppt
- VMwae VTSP考试题库资料(vSphere 虚拟机管理).doc
- VM虚拟络编辑器来解释桥接host和net的网络连接方法的区别.doc
- VIDY视频会议系统培训--使用者.ppt
- vmwae 拖机方法.doc
- VR材质准数据.doc
- vtun的使用的心得.ppt
- VIVA车案例赏.ppt
- VRay机超详细解析.doc
- VT31 用户手册中文版本 V5.0.7.doc
- 第一章预处理细胞破碎06课件.pptx
- OrganicChemistry有机化学实验89课件.ppt
- 发酵过程控制技术食品生物技术61课件.pptx
- TraceISQ系列气质联用仪操作步骤操作步骤刘振龙36课.pptx
- 典型工作任务终冷洗苯工岗位28课件.pptx
- 第四章酸碱滴定法酸碱滴定法以酸碱反应为基础的滴定分析方法特.pptx
- 第五章反应设备的使用与维护31课件.ppt
- OrganicChemistry有机化学有机物表达式26课.pptx
- 发酵过程控制 技术-食品生物技术教学资源库 课程-1752703845876.pptx
- 第一节抗高血压药分为原发性高血压9095和继发性高血压46.ppt
文档评论(0)