模块化设计modulardesign.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《模块化设计modulardesign.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 模块化 设计 modulardesign
- 资源描述:
-
1、4.1 4.1 软件设计基础软件设计基础 软件设计的基本目标是软件设计的基本目标是用比较抽象概括的方式用比较抽象概括的方式确定目标系统如何完成预定的任务确定目标系统如何完成预定的任务,即软件设,即软件设计是确定系统的计是确定系统的物理模型物理模型。从技术观点来看,软件设计包括从技术观点来看,软件设计包括数据设计数据设计、体体系结构设计系结构设计、接口设计接口设计、过程设计过程设计。从工程管理角度来看,软件设计分两步完成:从工程管理角度来看,软件设计分两步完成:概要设计和详细设计。概要设计和详细设计。概要设计概要设计将软件需求将软件需求转化为软件体系结构转化为软件体系结构确定系统级接口确定系统级
2、接口全局数据结构或数据库模式。全局数据结构或数据库模式。详细设计详细设计确立每个模块的实现算法和局部数据结构确立每个模块的实现算法和局部数据结构用适当方法表示算法和数据结构的细节用适当方法表示算法和数据结构的细节将分析模型转换为设计将分析模型转换为设计数据字典数据字典数数据据流流图图实实体体关关系系图图状态转换图状态转换图加加工工规规格格说说明明控控制制规规格格说说明明数数据据对对象象描描述述过程设计过程设计接口设计接口设计体系结构设计体系结构设计数据设计数据设计软件设计的重要性软件设计的重要性 软件设计是后续开发步骤及软件维护工作的基础。如软件设计是后续开发步骤及软件维护工作的基础。如果没有
3、设计,只能建立一个不稳定的系统结构。果没有设计,只能建立一个不稳定的系统结构。设计设计编码编码测试测试维护维护测试测试编码编码维护维护有软件设计有软件设计 没有软件设计没有软件设计4、1软件设计基础4.1.14.1.1软件设计阶段的任务软件设计阶段的任务高可靠性高可靠性高可维护性高可维护性高可理解性高可理解性高效率高效率 软件设计的目标软件设计的目标4.1.24.1.2软件设计的目标软件设计的目标4 4、1 1、4 4 软件设计的原则软件设计的原则 设计对于分析模型应该是设计对于分析模型应该是可跟踪可跟踪的;的;设计应该尽量采用设计应该尽量采用可重用可重用设计构件方法;设计构件方法;软件的结构
4、应该尽可能软件的结构应该尽可能模拟问题域模拟问题域的结构;的结构;设计应该表现出设计应该表现出一致性和集成性一致性和集成性;设计的构造应能设计的构造应能适应修改适应修改;区别区别设计与编码的关系设计与编码的关系;在构造设计时就应该在构造设计时就应该能够评估质量能够评估质量;复审设计以复审设计以减少概念性错误减少概念性错误。软件设计内容软件设计内容1 1、设想供选择的方案;、设想供选择的方案;2 2、选取合理的方案;、选取合理的方案;3 3、推荐最佳方案;、推荐最佳方案;4 4、功能分解;、功能分解;5 5、设计软件结构;、设计软件结构;6 6、设计数据库;、设计数据库;7 7、制定测试计划;、
5、制定测试计划;8 8、书写文档;、书写文档;9 9、审查和复查。、审查和复查。4.1.5 4.1.5 概要设计过程概要设计过程检查需求检查需求说明书及说明书及数据要求数据要求数据库设计数据库设计改编已有软件改编已有软件概要结概要结构设计构设计分配需求分配需求安排安排进度进度鉴定已鉴定已有软件有软件设计设计接口接口检查检查数据流数据流确定模确定模块功能块功能分析分析确定系统确定系统数据结构数据结构和文件结构和文件结构设计数据设计数据库模式与库模式与子模式子模式编写概要编写概要设计文档设计文档评审评审顶层顶层1层层2层层ABCDEFGHIJKLMN深度深度扇入为扇入为2扇出为扇出为3扇入为扇入为3
6、3层层4层层宽度宽度宽度宽度 程序模块示意图程序模块示意图:深度:深度:表示软件结构中表示软件结构中从顶层模块到最底层模块从顶层模块到最底层模块的层数。的层数。宽度:宽度:表示控制的总分表示控制的总分布。布。扇出数:扇出数:指一个模块直指一个模块直接控制下属的模块个数。接控制下属的模块个数。扇入数:扇入数:指一个模块的指一个模块的直接上属模块个数。直接上属模块个数。1 1、程序结构图:、程序结构图:表示软件的系统结构,它是软件模块间关系的表示,软表示软件的系统结构,它是软件模块间关系的表示,软件之间的各种关系,均可表示为层次结构。如图所示。件之间的各种关系,均可表示为层次结构。如图所示。4.2
7、 4.2 软件设计的概念和原理软件设计的概念和原理4.2.14.2.1、软件体系结构、软件体系结构由模块连接而得到的软件结构最普通的形式就是树状结构和网状结构。由模块连接而得到的软件结构最普通的形式就是树状结构和网状结构。顶层顶层1 1层层2 2层层3 3层层 软件的软件的树状结构树状结构ABCDEFGHIKLMABCDEFGH 网状结构网状结构4.2.24.2.2、模块化设计、模块化设计:模块化设计模块化设计(modular designmodular design):):把大型软件按照把大型软件按照规定的原则规定的原则划分为划分为一个个较小的、一个个较小的、相对独立相对独立但又但又相关相关
8、的模块的模块的设计方法。的设计方法。模块模块(modulemodule):是):是数据说明和可数据说明和可执行语句执行语句等程序对象的集合,每个等程序对象的集合,每个模块单独命名并且可以通过名字对模块单独命名并且可以通过名字对模块进行访问。模块进行访问。ABCDEFGHIJKLM4.2 4.2 软件设计的概念和原理软件设计的概念和原理 实现模块化设计的重实现模块化设计的重 要要指导思想是分解、信息指导思想是分解、信息隐藏和模块独立性。隐藏和模块独立性。一、分解一、分解设函数设函数C(x)C(x)定义问题定义问题x x的复杂程度,函数的复杂程度,函数E(x)E(x)确定解决问题确定解决问题x x
9、所需所需要的工作量(时间)。对于两个问题要的工作量(时间)。对于两个问题P Pl l和和P P2 2,如果如果 C(PC(P1 1)C(PC(P2 2),显然显然 E(PE(P1 1)E(PE(P2 2)根据人类解决一般问题的经验,如果一个问题由根据人类解决一般问题的经验,如果一个问题由P Pl l和和P P2 2两个问题组两个问题组合而成,那么它的复杂程序大于分别考虑每个问题时的复杂程度之和,合而成,那么它的复杂程序大于分别考虑每个问题时的复杂程度之和,即即C(PC(Pl lP P2 2)C(PC(P1 1)C(PC(P2 2)综上所述,可得到下面的不等式综上所述,可得到下面的不等式 E(P
10、E(Pl lP P2 2)E(PE(Pl l)E(PE(P2 2)模块化降低软件复杂度的简单证明模块化降低软件复杂度的简单证明 注意:注意:并非模块分得越小越好,因为模块之间接口的复杂度和工作并非模块分得越小越好,因为模块之间接口的复杂度和工作量增加。显然,每个软件系统都有一个最佳模块数量增加。显然,每个软件系统都有一个最佳模块数M M。注意选择分。注意选择分解的最佳模块数。上图描述了模块化与软件成本的关系。解的最佳模块数。上图描述了模块化与软件成本的关系。软件总成本软件总成本 模块化与软件成本的关系图模块化与软件成本的关系图成本成本模块模块数目数目模块成本模块成本接口成本接口成本最小成本区最
11、小成本区M模块化与软件成本的关系模块化与软件成本的关系 抽象:抽象:在现实世界中,事物、状态或过程之间总存在某在现实世界中,事物、状态或过程之间总存在某些共性,把这些共性集中、概括起来,而暂时忽略它们些共性,把这些共性集中、概括起来,而暂时忽略它们之间的差异。之间的差异。高级别抽象高级别抽象较低级别抽象较低级别抽象较低级别抽象较低级别抽象较低级别抽象较低级别抽象注意:注意:抽象过程是一个命名的指令序列,它具有特抽象过程是一个命名的指令序列,它具有特定的、有限的功能。定的、有限的功能。逐步求精:逐步求精:是一个推敲的过程,与抽象是互补的,有是一个推敲的过程,与抽象是互补的,有助于设计者在数据处理
12、过程中揭示底层的细节。助于设计者在数据处理过程中揭示底层的细节。二、抽象和逐步求精二、抽象和逐步求精 抽象层次抽象层次.抽象层次抽象层次.任务需求的描述。任务需求的描述。CAD SOFTWARE TASKSCAD SOFTWARE TASKS user interaction task;user interaction task;2-D drawing creation task;2-D drawing creation task;graphics display task;graphics display task;drawing file management task;drawing f
13、ile management task;end.end.在这个抽象层次上,未给出在这个抽象层次上,未给出“怎样做怎样做”的信息,不能的信息,不能直接实现。直接实现。抽象层次抽象层次.程序过程表示。以程序过程表示。以2-D(2-D(二维二维)绘图生成任务为例绘图生成任务为例:PROCEDURE PROCEDURE:2-D drawing creation2-D drawing creation REPEAT UNTIL(drawing creation task terminates)REPEAT UNTIL(drawing creation task terminates)DO WHILE(d
14、igitizer interaction occurs)DO WHILE(digitizer interaction occurs)digitizer interface task;digitizer interface task;DETERMINE drawing request CASE;DETERMINE drawing request CASE;line line:line drawing task;line drawing task;rectangle rectangle:rectangle drawing task;rectangle drawing task;circle cir
15、cle:circle drawing task;circle drawing task;信息隐蔽原理信息隐蔽原理指出:模块内部的数据与过程,应该指出:模块内部的数据与过程,应该对不需要了解这些数据与过程的模块隐藏起来。也对不需要了解这些数据与过程的模块隐藏起来。也就是说,就是说,模块中所包括的信息不允许其它不需要这模块中所包括的信息不允许其它不需要这些信息的模块调用。些信息的模块调用。局部化局部化是指把一些关系密切的软件元素物理地放得是指把一些关系密切的软件元素物理地放得彼此靠近。彼此靠近。三、信息隐藏和局部化三、信息隐藏和局部化1 1、基本概念、基本概念 “模块模块”,又称,又称“构件构件”
16、,一般指用一个名字可调用的一,一般指用一个名字可调用的一段程序。它一般具有如下段程序。它一般具有如下三个基本属性三个基本属性:4.2.24.2.2、有效的模块设计有效的模块设计2 2、模块独立性的度量标准是两个定性准则:、模块独立性的度量标准是两个定性准则:用于描述模块之间联系的紧密程度。用于描述模块之间联系的紧密程度。用于描述模块内部联系的紧密程度。用于描述模块内部联系的紧密程度。模块独立性比较强的模块应该是具有模块独立性比较强的模块应该是具有高内聚性和高内聚性和的低耦合度的低耦合度。模块的独立性:模块的独立性:是指软件系统中每个模块只涉及软件要求是指软件系统中每个模块只涉及软件要求的的具体
展开阅读全文