版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、概要设计的表示形式 正文加工系统的层次图带编号的层次图( HIPO ) IPO图的一个例子软件的模块结构图:F描述一个软件系统由哪些模块组成,以及模块之间的调用关系F结构图的基本成分有:模块、调用和数据F模块是指具有一定功能并可以用模块名调模块是指具有一定功能并可以用模块名调用的一组程序语句,如函数、子程序等,用的一组程序语句,如函数、子程序等,它们是组成程序的基本单元它们是组成程序的基本单元F一个模块具有其外部特征和内部特征一个模块具有其外部特征和内部特征外部特征包括:模块的接口外部特征包括:模块的接口( (模块名、输入模块名、输入/ /输输出参数、返回值等出参数、返回值等) )和模块的功能
2、和模块的功能内部特征包括:模块的内部数据和完成其功能内部特征包括:模块的内部数据和完成其功能的程序代码的程序代码 在结构图中,模块用矩形框表示,每个模块都有一个应能适当反映该模块功能的名字F调用(call):用从一个模块指向另一个模块的箭头来表示,其含义是前者调用了后者为了方便,有时常用直线替代箭头,此时,表示位于上方的模块调用位于下方的模块F数据(data):模块调用时需传递的参数可通过在调用箭头旁附加一个小箭头和数据名来表示,其中小箭头的方向是数据的传输方向 SCSC图的模块调用图的模块调用简单调用简单调用B(a)X,YZACZB(b)1AC2入出X,YZZ 选择调用ABCDv注意:图中必
3、须画出数据流 循环调用ABCv注意:图中必须画出数据流结构图的几个概念F深度:程序结构图中控制的层数,例如图中所示的结构图的深度是5F宽度:程序结构图中同一层次上模块总数的最大值,例如图中所示的结构图的宽度为7F扇出(fan out):该模块直接调用的模块数目。例如,例如图中模块M的扇出是4,模块A的是2,模块B的扇出是1F扇入(fan in):能直接调用该模块的模块数目。例如图中模块G的扇入是1,模块I的扇入是2,模块R的扇入是4 F深度和宽度在一定程度上反映了程序的规模和复杂程度相对而言,如果程序结构图的深度和宽度较大,则说明程序的规模和复杂程度都较大。模块的扇入扇出会影响结构图的深度和宽
4、度,例如减少模块的扇出,可能导致宽度变小而深度增加F一个模块的扇出过大通常意味着该模块比较复杂,然而扇出太少,可能导致深度的增加一般情况,一个模块的扇出以39为宜F一个模块的扇入表示有多少模块可直接调用它,它反映了该模块的复用(reuse)程度,因此模块的扇入越大越好模块和模块化F模块化:当系统的每项功能恰好由一个输入输出都明确定义的组件完成的时候,我们称这个系统模块化。F模块表示能够用计算机程序代码实现的,相对独立的单一数据处理功能,所以模块有时也叫功能模块。F进一步明确模块是拥有明确定义的输入、输出和特性的程序实体。设计方法的选择F应该允许不同的设计者使用他们喜欢的技巧,只要他们的文档能让
5、其他设计者明白就可以了。F设计方法的选择又是取决于设计者的偏好,而更多的时候取决于系统要求的结构或数据。软件设计中涉及的问题F抽象(抽象(abstractabstract)与细化)与细化(refinement)(refinement)抽象:分层次考虑和处理问题抽象:分层次考虑和处理问题( (数据和过程数据和过程) )细化:从高到低的逐步分解过程细化:从高到低的逐步分解过程F信息隐藏信息隐藏对其它模块隐藏模块内部的数据和过程对其它模块隐藏模块内部的数据和过程抽象F抽象是对具体对象(问题)进行概括,抽出这一类对象的公共性质并加以描述的过程。先注意问题的本质及描述,其次是实现过程或细节。数据抽象:描
6、述某类对象的属性或状态(对象相互区别的物理量)。代码抽象:描述某类对象的共有的行为特征或具有的功能。抽象的实现:通过类的声明。模块化设计的好处F信息隐藏信息隐藏F从不同角度了解系统从不同角度了解系统F将难以解决的问题独立出来;抽象层次将难以解决的问题独立出来;抽象层次通过逐层分析来了解问题通过逐层分析来了解问题F允许不同的模块采用不同的设计方法允许不同的模块采用不同的设计方法模块化设计F把大型软件按照规定的原则划分成一个个把大型软件按照规定的原则划分成一个个较小的、相对独立但又相互关联的模块较小的、相对独立但又相互关联的模块F重要指导思想:重要指导思想:分解分解模块独立性模块独立性分解(Dec
7、omposition)F模块化是为了使一个复杂的大型程序能被人的智力所管理F设函数c(x)定义问题x的复杂程度,函数E(X)确定解决问题x需要的工作量(时间)。对于两个问题P1 和P2,如果)()(21PCPC)()(21PEPE显然模块化的依据F人类解决一般问题时一个有趣的规律: C (P1+P2)C (P1)+C (P2) E (P1+P2)E (P1)+E (P2) F结论:各个击破把复杂的问题分解成容易解决的小问题,原来的问题也就容易解决了问题提出F如果无限的分割软件,最后为了开发软件而需要的工作量也就小得可以忽略了。?模块数与开发工作量的关系模块数接口成本最小成本区M软件开发工作量总
8、成本模块成本模块划分的基本原则F概括了把软件划分为模块时要遵守的准则,也是判断模块构造是不是合理的标准。F但是到目前为止,没有统一的标准判断一个系统化分成几个模块是最优的。模块划分的四项基本原则1.模块独立性强 块内联系强 块间联系弱2.高内聚模块内部各成分之间3.低耦合一个模块与其它模块之间4.公共(共享)模块多个模块公用模块独立性F问什么模块的独立性很重要?有效模块化的软件容易开发出来独立的模块比较容易测试和维护F人的独立性强如何?F人没有独立性,什么都依赖别人如何?内聚F内聚是模块功能强度(一个模块内部各个元素彼此结合的紧密程度)的度量。一个模块内部各个元素之间的联系越紧密,则它的内聚性
9、就越高,相对地,它与其他模块之间的耦合就会减低,而模块独立性就越强。 内聚与耦合F内聚和耦合是相互关联的。在程序结构中各模块的内聚程度越高,模块间的耦合程度就越低。但这也不是绝对的。软件概要设计的目标是力求增加模块的内聚,尽量减少模块间的耦合,但增加内聚比减少耦合更重要,应当把更多的注意力集中到提高模块的内聚程度上来。内聚 弱 强低内聚中内聚高内聚 低内聚F.偶然性内聚模块内各部分没有联系,或者即使有联系,这种联系也很松散。 F.逻辑性内聚 这种模块把几种相关的功能组合在一起,每次调用时,由传送给模块的判定参数来确定该模块应执行哪一种功能。这种模块是单入口的多功能模块。类似的有错误处理模块。它
10、接受出错信号,对不同类型的错误打印出不同的出错信息。低内聚F.时间性内聚时间内聚又称为经典内聚。这种模块大多为多功能模块,但模块的各个功能执行与时间有关,通常要求所有功能必须在同一时间段内执行。例如初始化模块和终止模块。中内聚F.过程性内聚如果一个模块内的处理是相关的,而且必须以特定次序执行,则称这个模块为过程内聚模块。 F.通讯性内聚如果一个模块内各功能部分都使用了相同的输入数据,或产生了相同的输出数据,则称之为通信内聚模块。高内聚F.顺序性内聚如果一个模块内的处理元素和同一个功能密切相关,而且这些处理必须顺序执行(通常一个处理元素的输出数据作为下一个处理元素的输入数据)F.功能性内聚一个模
11、块中各个部分都是某一具体功能必不可少的组成部分,或者说该模块中所有部分都是为了完成一项具体功能而协同工作,紧密联系,不可分割的。则称该模块为功能内聚模块。 七种内聚的优劣评分F功能内聚 10分F顺序内聚 9分F通信内聚 7分F过程内聚 5分F时间内聚 3分F逻辑内聚 1分F偶然内聚 0分高内聚低内聚逻辑模块 判断调用模块读一个记录写一个记录被调用模块常见内聚类型常见内聚类型耦 合F对一个软件结构内不同模块之间互连程度的度量。耦合强弱取决于模块间接口的复杂程度、调用模块的方式以及哪些信息通过接口。F在软件设计中应该追求尽可能松散耦合的系统耦合的七种类型(低高)F非直接耦合:如果两个模块之间没有直
12、接关系,它们之间的联系完全是通过主要模块的控制和调用来实现的,这就是非直接耦合。F数据耦合:如果一个模块访问另一个模块时,彼此之间是通过数据参数(不是控制参数、公共数据结构或外部变量)来交换输入、输出信息的,则称这种耦合为数据耦合。F标记耦合 :如果一组模块通过参数表传递记录信息,就是标记耦合。事实上,这组模块共享了这个记录,它是某一类数据结构的子结构,而不是简单变量。这要求这些模块都必须清楚该纪录的结构,并按结构要求对此记录进行操作。 耦合的七种类型(续)F控制耦合 :如果一个模块通过传递开关、标志、名字等控制信息,明显的控制选择另一模块的功能,就是控制耦合。 F外部耦合 :一组模块都访问同
13、一全局简单变量而不是同一全局数据结构,而且不是通过参数表传递该全局变量的信息,则称之为外部耦合。 F公共耦合 :若一组模块都访问同一个公共数据环境,则它们之间的耦合称为公共耦合。公共的数据环境可以是全局数据结构、共享的通信区、内存的公共覆盖区等。弱耦合数据耦合非直接耦合模块模块2模块模块1模块模块4模块模块3特征耦合(参数表传递数据结构)公共耦合公共耦合公共耦合会引起下列问题:1、 所有公共耦合模块都于某一个公共数据 环境内部各项的物理安排有关,若修改某个数据的大小,将会影响到所有的模块。2、无法控制各个模块对公共数据的存取,严重影响软件模块的可靠性和适应性。3、公共数据名的使用,明显降低了程
14、序的可读性。内容耦合F如果出现下列情况之一,两个模块间就发生了内容耦合:一个模块访问另一个模块的内部数据一个模块不通过正常入口而转到另一个模块的内部两个模块有一部分程序代码重叠(只可能出现在汇编程序中)一个模块有多个入口(这意味着一个模块有几种功能)(a)进入另一模块内部 (b)模块代码重叠(c)多入口模块ABABEnty1enty2F内容耦合 0分F公共耦合 1分F外部耦合 3分F控制耦合 5分F特征耦合 7分F数据耦合 9分F非直接耦合 10分高耦合低耦合七种耦合的优劣评分关于耦合的设计原则F尽量使用数据(特征)耦合F少用控制耦合F限制公共环境耦合的范围F完全不用内容耦合建立公共(共享)模块建立公共(共享)模块 建立公共模块的目的是减少冗建立公共模块的目的是减少冗余,减少不必要的重复工作,划出余,减少不必要的重复工作,划出某项功能成为一个能被几个模块共某项功能成为一个能被几个模块共同利用的模块。也就模块
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 未来五年桐木系列企业县域市场拓展与下沉战略分析研究报告
- 未来五年木废料企业县域市场拓展与下沉战略分析研究报告
- 未来五年塑料注射模企业数字化转型与智慧升级战略分析研究报告
- 未来五年货运客运场站服务企业ESG实践与创新战略分析研究报告
- 未来五年绿青鳕鱼企业ESG实践与创新战略分析研究报告
- 小学英语五年级上册 Unit 3 Our animal friends 第一课时教学设计
- 非机动车棚工程施工方案
- 风电工程现场临时用电专项施工方案
- 统编版七年级历史上册第一至八单元核心脉络教学设计:中华文明起源与早期国家的发展
- 军歌嘹亮家国入心-八年级音乐课《好男儿就是要当兵》鉴赏与表现教学设计
- 病毒性肺炎诊疗指南(2025年版)
- 2026年度新疆兵团草湖项目区公安局招聘警务辅助人员工作(100人)笔试参考题库及答案解析
- GB/T 46778-2025精细陶瓷陶瓷造粒粉压缩强度试验方法
- 工程管理费合同协议
- 协助审计协议书范本
- 采购主管年终工作总结
- 电力公司安全第一课课件
- 物业现场管理培训课件
- 数据访问控制策略分析报告
- 2025年市场监管局招聘岗位招聘面试模拟题及案例分析解答
- 子宫内膜异位症病因课件
评论
0/150
提交评论