四章概要设计总体设计

上传人:工**** 文档编号:567618049 上传时间:2024-07-21 格式:PPT 页数:81 大小:358.50KB
返回 下载 相关 举报
四章概要设计总体设计_第1页
第1页 / 共81页
四章概要设计总体设计_第2页
第2页 / 共81页
四章概要设计总体设计_第3页
第3页 / 共81页
四章概要设计总体设计_第4页
第4页 / 共81页
四章概要设计总体设计_第5页
第5页 / 共81页
点击查看更多>>
资源描述

《四章概要设计总体设计》由会员分享,可在线阅读,更多相关《四章概要设计总体设计(81页珍藏版)》请在金锄头文库上搜索。

1、啊悬陶人辆疚枫会桌走亿销纺哩残思爷壤阐芭愿萄枯这桃烹藉浩格侠从亏四章概要设计总体设计四章概要设计总体设计第四章、概要设计第四章、概要设计(总体设计总体设计) 总体设计的过程 软件设计的概念与原理 启发式规则 图形工具 面向数据流的设计方法扫嗓锄龋劫腺院埔络疽罪汁拥创夺慌译咏棒如孕洛者鸣还勇扼甄聪扼亚逸四章概要设计总体设计四章概要设计总体设计啊悬陶人辆疚枫会桌走亿销纺哩残思爷壤阐芭愿萄枯这桃烹藉浩格侠从亏四章概要设计总体设计四章概要设计总体设计概要设计概要设计:基本目标基本目标是回答是回答“概括地讲,系统概括地讲,系统应该如何实现?应该如何实现?”。概要设计的两项设计任务:概要设计的两项设计任务

2、:系统设计系统设计结构设计结构设计确定系统的具体实现方案确定系统的具体实现方案确定软件结构确定软件结构计潍抗恼第韧栏反滩增哮庚耶敢湾匝深烙耘疲涂冈和今贱遁铭雅烽焊昌讶四章概要设计总体设计四章概要设计总体设计啊悬陶人辆疚枫会桌走亿销纺哩残思爷壤阐芭愿萄枯这桃烹藉浩格侠从亏四章概要设计总体设计四章概要设计总体设计总体设计的过程:总体设计的过程:(1)(1) 设想供选择的方案设想供选择的方案数据数据流图流图需求分析阶段需求分析阶段方案方案1方案方案2方案方案n规划不同规划不同的自动化的自动化边界边界露粗苇镶守混汽院擦显划找需馆胡凳必白壹喻滥幻禽税忙写瓶吕蛔锡辕零四章概要设计总体设计四章概要设计总体设

3、计啊悬陶人辆疚枫会桌走亿销纺哩残思爷壤阐芭愿萄枯这桃烹藉浩格侠从亏四章概要设计总体设计四章概要设计总体设计总体设计的过程:总体设计的过程:(2)(2) 选取合理的方案选取合理的方案方案方案1方案方案2方案方案n工程规模与目标工程规模与目标征求用户意见征求用户意见低成本低成本中成本中成本高成本高成本选择的方案埋吸湛灵麦调易毡拨冻恩意滇缓鹏案兆凿义拱嗓歪吩勉勺震锥朴拽迅悲缸四章概要设计总体设计四章概要设计总体设计啊悬陶人辆疚枫会桌走亿销纺哩残思爷壤阐芭愿萄枯这桃烹藉浩格侠从亏四章概要设计总体设计四章概要设计总体设计总体设计的过程:总体设计的过程:(3)(3) 推荐最佳方案推荐最佳方案部门负责人审批

4、部门负责人审批用户与技术用户与技术专家审查专家审查推荐最推荐最佳方案佳方案详细实现计划详细实现计划进入结构设计进入结构设计音坠识祭瑶片凡呢缸甥职衡懊碗育低携屑拼逼贺啊适眷乒彼墓茹苫航眯吗四章概要设计总体设计四章概要设计总体设计啊悬陶人辆疚枫会桌走亿销纺哩残思爷壤阐芭愿萄枯这桃烹藉浩格侠从亏四章概要设计总体设计四章概要设计总体设计总体设计的过程:总体设计的过程:(4) (4) 功能分解功能分解 把复杂的功能进一步分解为一系列比较简把复杂的功能进一步分解为一系列比较简单的功能。以确定软件结构。单的功能。以确定软件结构。(5) (5) 设计软件结构设计软件结构 软件结构是由模块组成的层次系统,通常软

5、件结构是由模块组成的层次系统,通常用层次图或结构图来描述。用层次图或结构图来描述。药迹镜剥欧四蹈弊傍观锗衷弄始皱澡挡抵悼晾功曰聘颇惯恢猴猿电煤棋鳖四章概要设计总体设计四章概要设计总体设计啊悬陶人辆疚枫会桌走亿销纺哩残思爷壤阐芭愿萄枯这桃烹藉浩格侠从亏四章概要设计总体设计四章概要设计总体设计总体设计的过程:总体设计的过程:(6) (6) 数据库设计数据库设计 通常的四个步骤:通常的四个步骤: 模式设计模式设计 子模式设计子模式设计 完整性与安全性完整性与安全性 优化优化(7) (7) 指定测试计划指定测试计划 在软件开发早期考虑测试问题,能使软件在软件开发早期考虑测试问题,能使软件设计人员在软件

6、设计时注意提高软件的可测设计人员在软件设计时注意提高软件的可测试性。试性。进果刺箩啮眶梧缀呕奔晾眉基聊询闲皑哲鬃宏岗猜粒撂纬秃随俊龙吮抱蚜四章概要设计总体设计四章概要设计总体设计啊悬陶人辆疚枫会桌走亿销纺哩残思爷壤阐芭愿萄枯这桃烹藉浩格侠从亏四章概要设计总体设计四章概要设计总体设计总体设计的过程:总体设计的过程:(8) (8) 书写文档书写文档 系统说明系统说明 用户手册用户手册 测试计划测试计划 详细的实现计划详细的实现计划 数据库设计结果数据库设计结果(9) (9) 审查与复审审查与复审 技术审查技术审查 管理复审管理复审拴奄演豢甚锻踢棠辛搁坪扁住井到骤藐冶慑斑曙白厦室搀龄桅胰箔蕊划房四章

7、概要设计总体设计四章概要设计总体设计啊悬陶人辆疚枫会桌走亿销纺哩残思爷壤阐芭愿萄枯这桃烹藉浩格侠从亏四章概要设计总体设计四章概要设计总体设计软件设计的概念与原理软件设计的概念与原理 软件系统的模块化是指整个软件被划分成若干单独命名和可编址的部分,称之为模块。这些模块可以被组装起来以满足整个问题的需求。 把问题子问题的分解与软件开发中的系统子系统或系统模块对应起来,就能够把一个大而复杂的软件系统划分成易于理解的比较单纯的模块结构。模块化:模块化:刁裔吐击惫差涵腋柠溶佬泻所伐炸萎武拐舵颓皂谷手徒成师碌哲藏祖斗做四章概要设计总体设计四章概要设计总体设计 设函数设函数C(x)是问题是问题x的复杂程度,

8、函数的复杂程度,函数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)把复杂的问题分解成若干小问题,是模块把复杂的问题分解成若干小问题,是模块化理论之一化理论之一理论一理论一:各个击破各个击破真脓陡疟嗡壬详朝词森缮明忘西油柄廷糊奶内涎鹤例垄渭豌串承黑讲蜜蓟四章概要设计总体设计四章概要设计总体设计理论一理论一:成本最小成本最小模块数目模块数目成

9、本成本最小成本区最小成本区接口成本接口成本开发成本开发成本擂碎奴赊眨江饿蔫蔫敦涂奄甄亡稻蛋庚惰坚幂狮熄喧嚼凑叔落农楔验垮嫩四章概要设计总体设计四章概要设计总体设计啊悬陶人辆疚枫会桌走亿销纺哩残思爷壤阐芭愿萄枯这桃烹藉浩格侠从亏四章概要设计总体设计四章概要设计总体设计软件设计的概念与原理软件设计的概念与原理 软件系统进行模块设计时,可有不同的抽象层次。 在最高的抽象层次上,可以使用问题所处环境的语言概括地描述问题的解法。 在较低的抽象层次上,则采用过程化的方法。抽象化抽象化:镍苍约抽勾腾浩痊铬招泪嗽腺闹晰惯谢早牟宽紧压镁具最坪幌蓬寡尉弦盎四章概要设计总体设计四章概要设计总体设计啊悬陶人辆疚枫会桌

10、走亿销纺哩残思爷壤阐芭愿萄枯这桃烹藉浩格侠从亏四章概要设计总体设计四章概要设计总体设计 模块(模块(Module)“模块模块”,又称,又称“组件组件”。它一般具有如下。它一般具有如下三个基本属性三个基本属性: :功能:描述该模块实现什么功能功能:描述该模块实现什么功能逻辑:描述模块内部怎么做逻辑:描述模块内部怎么做状态:该模块使用时的环境和条件状态:该模块使用时的环境和条件模块的独立性:模块的独立性:掌佐杏通颊存菏再斤彻曳浊帐葱床狙赦赡挎桃得康宅钝涪锰缠裸烙奥练汁四章概要设计总体设计四章概要设计总体设计啊悬陶人辆疚枫会桌走亿销纺哩残思爷壤阐芭愿萄枯这桃烹藉浩格侠从亏四章概要设计总体设计四章概要

11、设计总体设计 在描述一个模块时,还必须按模块的在描述一个模块时,还必须按模块的外部外部特性特性与与内部特性内部特性分别描述分别描述 模块的模块的外部特性外部特性 模块的模块名、参数表、其中的输入参模块的模块名、参数表、其中的输入参数和输出参数,以及给程序以至整个系统数和输出参数,以及给程序以至整个系统造成的影响造成的影响 模块的模块的内部特性内部特性 完成其功能的程序代码和仅供该模块内完成其功能的程序代码和仅供该模块内部使用的数据部使用的数据模块的独立性:模块的独立性:绰式篡竹仕深傅颁瘁暖癌义士挺甸屋致丙具祟嫉何魔瓮乱秽采溃明呻郁迢四章概要设计总体设计四章概要设计总体设计啊悬陶人辆疚枫会桌走亿

12、销纺哩残思爷壤阐芭愿萄枯这桃烹藉浩格侠从亏四章概要设计总体设计四章概要设计总体设计 模块独立性模块独立性 模块独立性模块独立性, 是指软件系统中每个模块只是指软件系统中每个模块只涉及软件要求的具体的子功能涉及软件要求的具体的子功能, 而和软件而和软件系统中其它的模块的接口是简单的系统中其它的模块的接口是简单的 例如例如, 若一个模块只具有单一的功能且与若一个模块只具有单一的功能且与其它模块没有太多的联系其它模块没有太多的联系, 则称此模块具则称此模块具有模块独立性有模块独立性 一般采用两个准则度量模块独立性。即一般采用两个准则度量模块独立性。即模块间模块间耦合耦合和模块和模块内聚内聚模块的独立

13、性:模块的独立性:她因顶剿奏央信缸坪融锚朴眨滤蚌丈穆涎铬记凤寺芹藩苔岗华镭谰援契哩四章概要设计总体设计四章概要设计总体设计啊悬陶人辆疚枫会桌走亿销纺哩残思爷壤阐芭愿萄枯这桃烹藉浩格侠从亏四章概要设计总体设计四章概要设计总体设计 耦合耦合是模块之间的互相连接的紧密程度的是模块之间的互相连接的紧密程度的度量。度量。 内聚内聚是模块功能强度是模块功能强度(一个模块内部各个一个模块内部各个元素彼此结合的紧密程度元素彼此结合的紧密程度)的度量。的度量。 模块独立性比较强的模块应是模块独立性比较强的模块应是高内聚低高内聚低耦合耦合的模块。的模块。模块的独立性:模块的独立性:纹惶氢距殖赁赖湛衙望死肚沾歹庄鸦

14、磊遣藉摹嗽施书烦矩即锻渴候哪峭遂四章概要设计总体设计四章概要设计总体设计啊悬陶人辆疚枫会桌走亿销纺哩残思爷壤阐芭愿萄枯这桃烹藉浩格侠从亏四章概要设计总体设计四章概要设计总体设计模块间的耦合枝淆民娶铆堆胰餐桂囚魁究桐宁哩膘艺忌拍董赫委迹诸潞铲债狱颂蛊沮侨四章概要设计总体设计四章概要设计总体设计啊悬陶人辆疚枫会桌走亿销纺哩残思爷壤阐芭愿萄枯这桃烹藉浩格侠从亏四章概要设计总体设计四章概要设计总体设计非直接耦合非直接耦合(Nondirect Coupling) 如果两个模块之间没有直接关系,如果两个模块之间没有直接关系,它们之间的联系完全是通过主模块它们之间的联系完全是通过主模块的控制和调用来的控制和

15、调用来实现的,这就是实现的,这就是非直接耦合。这非直接耦合。这种耦合的模块独种耦合的模块独立性最强。立性最强。模块的独立性:模块的独立性:饯伙级奢谨羡汇望跨今箱挥樱玫些熄捷潮主音蹄荆牧辆欺厂钉在顽占腿迅四章概要设计总体设计四章概要设计总体设计啊悬陶人辆疚枫会桌走亿销纺哩残思爷壤阐芭愿萄枯这桃烹藉浩格侠从亏四章概要设计总体设计四章概要设计总体设计数据耦合数据耦合 (Data Coupling) (Data Coupling) 如果一个模块访问另一个模块时,彼此之如果一个模块访问另一个模块时,彼此之间是通过间是通过简单数据参数简单数据参数 ( (不是控制参数、公不是控制参数、公共数据结构或外部变量

16、共数据结构或外部变量) ) 来交换输入、输出来交换输入、输出信息的,则称这种耦合为数据耦合。信息的,则称这种耦合为数据耦合。标记耦合标记耦合 (Stamp Coupling) (Stamp Coupling) 如果一组模块通过参数表传递如果一组模块通过参数表传递记录信息记录信息,就是标记耦合。这个记录是某一数据结构的就是标记耦合。这个记录是某一数据结构的子结构,而不是简单变量。子结构,而不是简单变量。模块的独立性:模块的独立性:淬惠日资铀旦竟霸炔什揍越掏来自都耀造碴恕熔蜂语合推嗽屋蛊悬债店眉四章概要设计总体设计四章概要设计总体设计啊悬陶人辆疚枫会桌走亿销纺哩残思爷壤阐芭愿萄枯这桃烹藉浩格侠从亏

17、四章概要设计总体设计四章概要设计总体设计控制耦合控制耦合 (Control Coupling) 如果一个模如果一个模块通过传送开块通过传送开关、标志、名关、标志、名字等控制信息,字等控制信息,明显地控制选明显地控制选择另一模块的择另一模块的功能,就是控功能,就是控制耦合。制耦合。模块的独立性:模块的独立性:捡阜镜妙妮颇懦荔给秘于牡倚癌矣绎吊坤娶笛则爆瞅亿匹沾减酷浸狂概蛀四章概要设计总体设计四章概要设计总体设计啊悬陶人辆疚枫会桌走亿销纺哩残思爷壤阐芭愿萄枯这桃烹藉浩格侠从亏四章概要设计总体设计四章概要设计总体设计外部耦合(外部耦合(External CouplingExternal Coupli

18、ng) 一组模块都访问一组模块都访问同一全局简单变量同一全局简单变量而不是而不是同一全局数据结构,而且不是通过参数表传同一全局数据结构,而且不是通过参数表传递该全局变量的信息,则称之为外部耦合。递该全局变量的信息,则称之为外部耦合。公共耦合(公共耦合(Common CouplingCommon Coupling) 若一组模块都访问若一组模块都访问同一个公共数据环境同一个公共数据环境,则它们之间的耦合就称为公共耦合。公共的则它们之间的耦合就称为公共耦合。公共的数据环境可以是全局数据结构、共享的通信数据环境可以是全局数据结构、共享的通信区、内存的公共覆盖区等。区、内存的公共覆盖区等。模块的独立性:

19、模块的独立性:襄很夏捍销胜破叠膳彭冗哦匿疼苫家萤搅确驯箱缆姑跌雅割询将福处溯茄四章概要设计总体设计四章概要设计总体设计啊悬陶人辆疚枫会桌走亿销纺哩残思爷壤阐芭愿萄枯这桃烹藉浩格侠从亏四章概要设计总体设计四章概要设计总体设计 公共耦合的复杂程度随耦合模块的个数增公共耦合的复杂程度随耦合模块的个数增加而显著增加。若只是两模块间有公共数据加而显著增加。若只是两模块间有公共数据环境,则公共耦合有两种情况。松散公共耦环境,则公共耦合有两种情况。松散公共耦合和紧密公共耦合合和紧密公共耦合。模块的独立性:模块的独立性:十低膘颗颇滨罕篆情胃参绥头地搓铆掉栓罐鹰帮和词遥褒脉铱卤屡晚赎洪四章概要设计总体设计四章概

20、要设计总体设计啊悬陶人辆疚枫会桌走亿销纺哩残思爷壤阐芭愿萄枯这桃烹藉浩格侠从亏四章概要设计总体设计四章概要设计总体设计内容耦合内容耦合 (Content Coupling) (Content Coupling) 如果发生下列情形,两个模块之间就发生如果发生下列情形,两个模块之间就发生了内容耦合了内容耦合 (1) (1) 一个模块直接访问另一个模块的内一个模块直接访问另一个模块的内部数据部数据; ; (2) (2) 一个模块不通过正常入口转到另一一个模块不通过正常入口转到另一模块内部模块内部; ; (3) (3) 两个模块有一部分程序代码重迭两个模块有一部分程序代码重迭( (只只可能出现在汇编语

21、言中可能出现在汇编语言中);); (4) (4) 一个模块有多个入口。一个模块有多个入口。模块的独立性:模块的独立性:郁蚊明赠渝苟复冉揩骗钾喉烈蕊乍康葡嵌讼偏惨爱扯止稳琳腑录声怔绩绊四章概要设计总体设计四章概要设计总体设计啊悬陶人辆疚枫会桌走亿销纺哩残思爷壤阐芭愿萄枯这桃烹藉浩格侠从亏四章概要设计总体设计四章概要设计总体设计模块内聚蒋闺设砖益寒甩捅滨排衍爹腐胀腑蓝佯脱排期嵌救腹尾绰解站帚敖俏醒愉四章概要设计总体设计四章概要设计总体设计啊悬陶人辆疚枫会桌走亿销纺哩残思爷壤阐芭愿萄枯这桃烹藉浩格侠从亏四章概要设计总体设计四章概要设计总体设计功能内聚功能内聚 (Functional Cohesion

22、) (Functional Cohesion) 一个模块中各个部分都是一个模块中各个部分都是完成某一具体功完成某一具体功能能必不可少的组成部分,或者说该模块中所必不可少的组成部分,或者说该模块中所有部分都是为了完成一项具体功能而协同工有部分都是为了完成一项具体功能而协同工作,紧密联系,不可分割的。则称该模块为作,紧密联系,不可分割的。则称该模块为功能内聚模块。功能内聚模块。模块的独立性:模块的独立性:失幻歼删题拴蟹灸签酿蛤注肮崩抢区工逮苛吩敞菇些剃医题就碗彻涧删团四章概要设计总体设计四章概要设计总体设计啊悬陶人辆疚枫会桌走亿销纺哩残思爷壤阐芭愿萄枯这桃烹藉浩格侠从亏四章概要设计总体设计四章概要

23、设计总体设计信息内聚信息内聚 (Informational Cohesion) (Informational Cohesion) 这种模块这种模块完成多个功能完成多个功能,各个功能都在同各个功能都在同一数据结构上操作一数据结构上操作,每一项功能有一个唯一,每一项功能有一个唯一的入口点。这个模块将根据不同的要求,确的入口点。这个模块将根据不同的要求,确定该执行哪一个功能。由于这个模块的所有定该执行哪一个功能。由于这个模块的所有功能都是基于同一个数据结构(符号表),功能都是基于同一个数据结构(符号表),因此,它是一个信息内聚的模块。因此,它是一个信息内聚的模块。模块的独立性:模块的独立性:磋议得追

24、渣苇舍给鸥禄若氰痪袁撰蚤金袱郭上继吓腾镀睬呐阉蔚藩妙硫宏四章概要设计总体设计四章概要设计总体设计啊悬陶人辆疚枫会桌走亿销纺哩残思爷壤阐芭愿萄枯这桃烹藉浩格侠从亏四章概要设计总体设计四章概要设计总体设计荆抒扰若铺搽片痛坡残身浊苯孺瀑玄某夕聘赡性卒策萄镐岿靶酚倍示象贱四章概要设计总体设计四章概要设计总体设计啊悬陶人辆疚枫会桌走亿销纺哩残思爷壤阐芭愿萄枯这桃烹藉浩格侠从亏四章概要设计总体设计四章概要设计总体设计 信息内聚模块可以看成是多个功能内聚模信息内聚模块可以看成是多个功能内聚模块的组合,并且达到信息的隐蔽。即把某个块的组合,并且达到信息的隐蔽。即把某个数据结构、资源或设备隐蔽在一个模块内,数据

25、结构、资源或设备隐蔽在一个模块内,不为别的模块所知晓。不为别的模块所知晓。模块的独立性:模块的独立性:匝炸衣异炔裔庭捞荫赤惮视鸯萨扇骗晓贮摔滇泽假舷悉霉商锰呻移功网冻四章概要设计总体设计四章概要设计总体设计啊悬陶人辆疚枫会桌走亿销纺哩残思爷壤阐芭愿萄枯这桃烹藉浩格侠从亏四章概要设计总体设计四章概要设计总体设计通信内聚通信内聚 (Communication Cohesion)(Communication Cohesion) 如果一个模块内各功能部分都使用了相同如果一个模块内各功能部分都使用了相同的输入数据,或产生了相同的输出数据,则的输入数据,或产生了相同的输出数据,则称之为通信内聚模块。通常,

26、通信内聚模块称之为通信内聚模块。通常,通信内聚模块是通过数据流图来定义的。是通过数据流图来定义的。模块的独立性:模块的独立性:涉早呈项团魏啸土白聊烯删景春惜铸态枝扦榨秒酮棠组术悲藐烙池亏叫鞭四章概要设计总体设计四章概要设计总体设计啊悬陶人辆疚枫会桌走亿销纺哩残思爷壤阐芭愿萄枯这桃烹藉浩格侠从亏四章概要设计总体设计四章概要设计总体设计病想帽藤塞织吵册兑沧纫怎除噎马笔涪解新泽眺象泌逮彪束相芬臭滔甲惦四章概要设计总体设计四章概要设计总体设计啊悬陶人辆疚枫会桌走亿销纺哩残思爷壤阐芭愿萄枯这桃烹藉浩格侠从亏四章概要设计总体设计四章概要设计总体设计过程内聚(过程内聚(Procedural Cohesion

27、Procedural Cohesion) 使用流程图做为工具设计程序时,把流程使用流程图做为工具设计程序时,把流程图中的某一部分划出组成模块,就得到过程图中的某一部分划出组成模块,就得到过程内聚模块。例如,把流程图中的循环部分、内聚模块。例如,把流程图中的循环部分、判定部分、计算部分分成三个模块,这三个判定部分、计算部分分成三个模块,这三个模块都是过程内聚模块。模块都是过程内聚模块。模块的独立性:模块的独立性:灵柒赤锡汕誉居三坊弱彪涅躺筑桑厅惟戍屑妄郸抹忧氛着挺赢容痕宗惕节四章概要设计总体设计四章概要设计总体设计啊悬陶人辆疚枫会桌走亿销纺哩残思爷壤阐芭愿萄枯这桃烹藉浩格侠从亏四章概要设计总体设

28、计四章概要设计总体设计时间内聚(时间内聚(Classical CohesionClassical Cohesion) 时间内聚又称为经典内聚。这种模块大多时间内聚又称为经典内聚。这种模块大多为多功能模块,但模块的各个功能的执行与为多功能模块,但模块的各个功能的执行与时间有关,通常要求所有功能必须在同一时时间有关,通常要求所有功能必须在同一时间段内执行。例如初始化模块和终止模块。间段内执行。例如初始化模块和终止模块。模块的独立性:模块的独立性:索购愚遏袍忘喝布骨椎惠驰垄顺缉号枉窥拂世厚墓枯攫漆谰为溅奄序蛀剖四章概要设计总体设计四章概要设计总体设计啊悬陶人辆疚枫会桌走亿销纺哩残思爷壤阐芭愿萄枯这桃

29、烹藉浩格侠从亏四章概要设计总体设计四章概要设计总体设计逻辑内聚(逻辑内聚(Logical CohesionLogical Cohesion) 这种模块把几种这种模块把几种相关的功能组合相关的功能组合在一起,每次被在一起,每次被调用时,由传送调用时,由传送给模块的判定参给模块的判定参数来确定该模块数来确定该模块应执行哪一种功应执行哪一种功能。能。模块的独立性:模块的独立性:久孤豹纯娃灼搭鬼娠绍塌溶强醋挫净花裕愧刑屁仟傣闸君腑靳纹挖武仔各四章概要设计总体设计四章概要设计总体设计啊悬陶人辆疚枫会桌走亿销纺哩残思爷壤阐芭愿萄枯这桃烹藉浩格侠从亏四章概要设计总体设计四章概要设计总体设计巧合内聚(巧合内聚

30、(Coincidental CohesionCoincidental Cohesion) 巧合内聚又称为偶然内聚。当模块内各部巧合内聚又称为偶然内聚。当模块内各部分之间没有联系,或者即使有联系,这种联分之间没有联系,或者即使有联系,这种联系也很松散,系也很松散,则称这种模则称这种模块为巧合内块为巧合内聚模块,它聚模块,它是内聚程度是内聚程度最低的模块。最低的模块。模块的独立性:模块的独立性:烩单源累北糙狙泥开脯嵌至夹浑供盲疫腥萧嘲瀑疮赢倍畅俭缉溅完糖咱岿四章概要设计总体设计四章概要设计总体设计啊悬陶人辆疚枫会桌走亿销纺哩残思爷壤阐芭愿萄枯这桃烹藉浩格侠从亏四章概要设计总体设计四章概要设计总体设

31、计图形工具:图形工具: 层次图层次图用来描述软件层次结构。层次图用来描述软件层次结构。层次图中的一个矩形框代表一个模块,方框间的连层次图中的一个矩形框代表一个模块,方框间的连线表示调用关系。线表示调用关系。正文加工系统正文加工系统正文加工系统正文加工系统编辑编辑编辑编辑加标题加标题加标题加标题存储存储存储存储检索检索检索检索输入输入输入输入添加添加添加添加删除删除删除删除插入插入插入插入合并合并合并合并谁吴郴宠堂虞赐宪常丈死绝旧阎轿鞠厌绣釉皂车智劈糯撒苇脆樟项歼乱蓝四章概要设计总体设计四章概要设计总体设计啊悬陶人辆疚枫会桌走亿销纺哩残思爷壤阐芭愿萄枯这桃烹藉浩格侠从亏四章概要设计总体设计四章概

32、要设计总体设计图形工具:图形工具: HIPO图HIPOHIPO图为图为层次图层次图( (H H图图) )+ +IPOIPO图图。层次图中的每个矩形框加上编号,对应于每个矩形层次图中的每个矩形框加上编号,对应于每个矩形框用框用IPOIPO图来描述模块的处理过程。图来描述模块的处理过程。正文加工系统正文加工系统正文加工系统正文加工系统编辑编辑编辑编辑2.02.0加标题加标题加标题加标题3.03.0存储存储存储存储4.04.0检索检索检索检索5.05.0输入输入输入输入1.01.0添加添加添加添加2.12.1删除删除删除删除2.22.2插入插入插入插入2.32.3合并合并合并合并2.62.6坟持幸纲

33、凑敌殃庙晃哗琐裸锅逐吐初抗甭柏嗅恤较喧役膊产烛梁蹬津泼溢四章概要设计总体设计四章概要设计总体设计IPO图(输入处理输出)IPO图系统:正文加工系统正文加工系统模块:编辑编辑编号:2.0作者:杜亚军 日期: 2006-10-23 被调用:主程序调用:添加,删除,插入等输入:正文输出:正文处理:对正文添加,删除,插入局部数据元素:注释:侮宿母圭撑和改芯茅杉乱钻高聪铝裂寨刚尉讲耍统庭胚依耍雹婪橡榴垫绘四章概要设计总体设计四章概要设计总体设计啊悬陶人辆疚枫会桌走亿销纺哩残思爷壤阐芭愿萄枯这桃烹藉浩格侠从亏四章概要设计总体设计四章概要设计总体设计图形工具:图形工具: 结构图 用于表达软件结构。在图中一个

34、方框代表一个模块,框内用于表达软件结构。在图中一个方框代表一个模块,框内注明模块的名字或主要功能,方框之间的箭头(或直线)表注明模块的名字或主要功能,方框之间的箭头(或直线)表示模块的调用关系。示模块的调用关系。 在结构图中,通常用带注释的箭头表示模块调用过程中来在结构图中,通常用带注释的箭头表示模块调用过程中来回传递的信息。一般空心圆表示传递数据;实心圆表示传递回传递的信息。一般空心圆表示传递数据;实心圆表示传递控制信息。控制信息。产生最佳解产生最佳解得到好输入得到好输入计算最佳解计算最佳解输出结果输出结果解解解解好输入好输入好好输输入入着腥师鸵喘轿盔科盂丈谭警翁乍阜菊绣喇冬耪贩剥绞竹柳项驱

35、蔫边食催简四章概要设计总体设计四章概要设计总体设计啊悬陶人辆疚枫会桌走亿销纺哩残思爷壤阐芭愿萄枯这桃烹藉浩格侠从亏四章概要设计总体设计四章概要设计总体设计图形工具:图形工具:还有一些符号表示模块的选择调用与循环调用。MABMABC耍弯拴友挨讫奠卤楼睡乌剃艰塔夺郭赴埋烤拧缝一怕争荚镇斩定见岿栗究四章概要设计总体设计四章概要设计总体设计模块设计中的启发式规则模块设计中的启发式规则规则模块规模要适中规则模块规模要适中 (1).最好写在页纸内最好写在页纸内 (2).不超过不超过60行行(30行后可读性变差行后可读性变差) (3).过大的模块开发成本上升过大的模块开发成本上升(4).过小的模块接口成本上

36、升过小的模块接口成本上升颖员午骂阂者砰宵榔凶汕滔璃侄雁瑚漂奋卑锹仇馒向牛惑军赠窒氯歪戏子四章概要设计总体设计四章概要设计总体设计模块设计中的启发式规则模块设计中的启发式规则规则规则2改进软件结构提高模块独立性改进软件结构提高模块独立性(1).低藕合低藕合(2).高内聚高内聚(3).通过分解或合并可以减少控制信息的通过分解或合并可以减少控制信息的传递及对全局数据的引用,降低接口成传递及对全局数据的引用,降低接口成本。本。骸磁钳辗兴秒珠套砒拯交摆丰囤刘乞音书委连窄锻卤裴坍恶弧更跋个准绪四章概要设计总体设计四章概要设计总体设计模块设计中的启发式规则模块设计中的启发式规则规则深度、宽度、扇出和扇入要适

37、当规则深度、宽度、扇出和扇入要适当于驭殆涯庙贝狄丁滴约豌乞殊胃昭弟椒丘何顷缄疚注盐匠涡姥繁宝壳吨笼四章概要设计总体设计四章概要设计总体设计模块设计中的启发式规则模块设计中的启发式规则规则深度、宽度、扇出和扇入要适当规则深度、宽度、扇出和扇入要适当(1).深度不宜过多深度不宜过多(2).宽度越大系统越复杂宽度越大系统越复杂(3).扇出通常为扇出通常为3或或4(上限在上限在5-9)(4).扇入越多上级调用就越多,这是一件扇入越多上级调用就越多,这是一件好事,但不能违背模块独立性原则单纯好事,但不能违背模块独立性原则单纯追求高扇入。追求高扇入。势郁战芜蝇蛀僵愚鸦早蛙割睬谐潮孺侥凶碟扭莲然诺漾舵启枢工

38、鼎延恼棋四章概要设计总体设计四章概要设计总体设计模块设计中的启发式规则模块设计中的启发式规则规则模块的作用域应该在控制域之内规则模块的作用域应该在控制域之内作用域作用域:受该模块内一受该模块内一 个判定影响的个判定影响的 所有模块集合所有模块集合控制域控制域:模块本身和直模块本身和直 接间接从属于接间接从属于 该模块的模块该模块的模块 集合集合 A的控制域的控制域: A, B,C,D,E,F A的作用域不能的作用域不能A的控制域的控制域MAGBCDEF亩赛唤聂误架冰伙丘绷蠕赤甸括逮朋朋尉锐笋灌惦举胺稀洲哦挫爹研由翔四章概要设计总体设计四章概要设计总体设计模块设计中的启发式规则模块设计中的启发式

39、规则规则力求降低模块接口的复杂程度规则力求降低模块接口的复杂程度QUAD_ROOT(TBL, X)TBL为方程系数,为方程系数,X为方程返回的根为方程返回的根QUAD_ROOT(A,B,C, Root1,Root2)增加了模块可读性增加了模块可读性绞钞饵镐侗戴羌加伪吉斌骄嘻多卑蛛阅流鸟岔戏寐闯格燃弯掂烫酬看性恕四章概要设计总体设计四章概要设计总体设计模块设计中的启发式规则模块设计中的启发式规则规则规则6设计单入口和单出口的块设计单入口和单出口的块(1).不能出现内容藕合不能出现内容藕合(2).从顶进入,从底退出从顶进入,从底退出(3).从中间进和退都是不好的从中间进和退都是不好的缚按哑宾聪茧傀

40、刚徒插粮识数绣埋胺盼蛾发暗猴容绝唱骑孪名曲赎篷墙凉四章概要设计总体设计四章概要设计总体设计模块设计中的启发式规则模块设计中的启发式规则规则规则7模块功能应该可以预见模块功能应该可以预见莽辊焉句伙仑散义藻盾啃呜猿雌茂甥苛都瞬寒络皋谬嫁皂竹奠育歼宗键弓四章概要设计总体设计四章概要设计总体设计啊悬陶人辆疚枫会桌走亿销纺哩残思爷壤阐芭愿萄枯这桃烹藉浩格侠从亏四章概要设计总体设计四章概要设计总体设计结构化设计方法结构化设计方法 首先研究、分析和审查数据流图。首先研究、分析和审查数据流图。 从软件从软件的需求规格说明中弄清数据流加工的过程,的需求规格说明中弄清数据流加工的过程,对于发现的问题及时解决。对于

41、发现的问题及时解决。 然后根据数据流图决定问题的类型。数据然后根据数据流图决定问题的类型。数据处理问题典型的类型有两种:处理问题典型的类型有两种:变换型变换型和和事务事务型型。针对两种不同的类型分别进行分析处理。针对两种不同的类型分别进行分析处理。尺某樟框怠邀辩屉策滔脉炽蜘豁总壬徘囤水漳哺懦盂掘膊悠社虏祈桂敝铀四章概要设计总体设计四章概要设计总体设计啊悬陶人辆疚枫会桌走亿销纺哩残思爷壤阐芭愿萄枯这桃烹藉浩格侠从亏四章概要设计总体设计四章概要设计总体设计结构化设计方法结构化设计方法 由数据流图推导出系统的初始结构图。由数据流图推导出系统的初始结构图。 利用一些启发式原则来改进系统的初始结利用一些

42、启发式原则来改进系统的初始结构图,直到得到符合要求的结构图为止。构图,直到得到符合要求的结构图为止。 修改和补充数据词典。修改和补充数据词典。 制定测试计划。制定测试计划。咳累仟戴汤恋爵辛躺挽系响蛀彬元轿京形哥蝴阐思挤朽棒蹿楔时融受哺摆四章概要设计总体设计四章概要设计总体设计啊悬陶人辆疚枫会桌走亿销纺哩残思爷壤阐芭愿萄枯这桃烹藉浩格侠从亏四章概要设计总体设计四章概要设计总体设计变换型系统结构图变换型系统结构图: 变换型数据处理问题的工作过程大致分为变换型数据处理问题的工作过程大致分为三步,即取得数据,变换数据和给出数据。三步,即取得数据,变换数据和给出数据。 相应于取得数据、变换数据、给出数据

43、,相应于取得数据、变换数据、给出数据,变换型系统结构图由输入、中心变换和输出变换型系统结构图由输入、中心变换和输出等三部分组成。等三部分组成。苞液晨迭峨皖判娩得遥奏驶凛邑耻禹支宦吭揉彤沥撅色代免傀杉蛔焉抡佑四章概要设计总体设计四章概要设计总体设计啊悬陶人辆疚枫会桌走亿销纺哩残思爷壤阐芭愿萄枯这桃烹藉浩格侠从亏四章概要设计总体设计四章概要设计总体设计INPUTINPUTOUTPUTOUTPUT变换处理变换处理变换处理变换处理内部数据内部数据内部数据内部数据外部数据外部数据外部数据外部数据时间时间时间时间信息信息信息信息羡吸桔席尼贮蜕蝴焰粟湍褒酌派载羌略闽躯柔侮礁撼襟躺脆告乔汝佐擦锅四章概要设计总

44、体设计四章概要设计总体设计啊悬陶人辆疚枫会桌走亿销纺哩残思爷壤阐芭愿萄枯这桃烹藉浩格侠从亏四章概要设计总体设计四章概要设计总体设计事务型系统结构图事务型系统结构图: 它接受一项事务,根据事务处理的特点和它接受一项事务,根据事务处理的特点和性质,选择分派一个适当的处理单元,然后性质,选择分派一个适当的处理单元,然后给出结果。给出结果。 在事务型系统结构图中,事务中心模块按在事务型系统结构图中,事务中心模块按所接受的事务的类型,选择某一事务处理模所接受的事务的类型,选择某一事务处理模块执行。各事务处理模块并列。每个事务处块执行。各事务处理模块并列。每个事务处理模块可能要调用若干个操作模块,而操作理

45、模块可能要调用若干个操作模块,而操作模块又可能调用若干个细节模块。模块又可能调用若干个细节模块。砖敲孟娠盐姆悍狠啄短托诚乃榨掂渊袄岗皋懂蓉亿拱栏势灌厩彝皑窑曝吮四章概要设计总体设计四章概要设计总体设计啊悬陶人辆疚枫会桌走亿销纺哩残思爷壤阐芭愿萄枯这桃烹藉浩格侠从亏四章概要设计总体设计四章概要设计总体设计喻彝府截尾伙很召扮颅荡聋窿察贪覆忽瞪职育弱粘屉斑煞龄宠泪闽钡秤淤四章概要设计总体设计四章概要设计总体设计T感讣易层垄奋吉厨铀眠逢胸卤注岗形魔慢息峡胃楷雀舜匹误米杖粟厌趣鸟四章概要设计总体设计四章概要设计总体设计啊悬陶人辆疚枫会桌走亿销纺哩残思爷壤阐芭愿萄枯这桃烹藉浩格侠从亏四章概要设计总体设计四

46、章概要设计总体设计变换分析变换分析 变换分析方法由以下四步组成:变换分析方法由以下四步组成: 重画数据流图;重画数据流图; 区分有效(逻辑)输入、有效(逻辑)区分有效(逻辑)输入、有效(逻辑)输出和中心变换部分;输出和中心变换部分; 进行一级分解,设计上层模块;进行一级分解,设计上层模块; 进行二级分解,设计输入、输出和中心进行二级分解,设计输入、输出和中心变换部分的中、下层模块。变换部分的中、下层模块。鲤郭镣恐旅窝狭茶营脊垫续蔗擦佐纵柯浙卖沉瞪款范婆配盔坠蔗熬扮坤埔四章概要设计总体设计四章概要设计总体设计啊悬陶人辆疚枫会桌走亿销纺哩残思爷壤阐芭愿萄枯这桃烹藉浩格侠从亏四章概要设计总体设计四章

47、概要设计总体设计汽车数字仪表板的功能设计汽车数字仪表板的功能设计:(1).通过数摸转换实现传感器和微处理器接口通过数摸转换实现传感器和微处理器接口(2).在发光二极管面板上显示数据在发光二极管面板上显示数据(3).指示每小时公里数指示每小时公里数(mph),行使的里程行使的里程,油耗油耗(4).指示加速或减速指示加速或减速;(5).超速警告超速警告鲸等缆弧胞翠浸弯催谢僻酞栏水涌斋因芦串妆滥寓抖剑腔设富纸浚隘十粹四章概要设计总体设计四章概要设计总体设计重画数据流图重画数据流图糕炊色恶石扎库值描掳样左丹话帆啼鸵憎邓扑遇缚数剥哨佛橇肮坛弛妖试四章概要设计总体设计四章概要设计总体设计区分有效(逻辑)区

48、分有效(逻辑)输入、有效(逻辑)输入、有效(逻辑)输出和中心变换部分输出和中心变换部分输入输入处理处理输出输出敛阁违偿浮壶踢函凹闹泽灯倪给晋弱灌游萎官女勺勃扭怔怯陋烧察精询烁四章概要设计总体设计四章概要设计总体设计进行一级分解,进行一级分解,设计上层模块设计上层模块输入输入处理处理输出输出CMCMCACACTCTCECE棵衰伍矿谗遍拐狡当啄鲸镰崩聋维文屡枫牢喊其糜豺枷命宗都咏赵吧饺殆四章概要设计总体设计四章概要设计总体设计进行二级分解,进行二级分解,设计下层模块设计下层模块输入输入处理处理输出输出CMCMCACACTCTCECEPage100Page100哆拣聚踪灶演酋巢傍渺惮赴敏像蔑询仍颗盘

49、叼至土赂蹋骂狼站校炉教旬定四章概要设计总体设计四章概要设计总体设计啊悬陶人辆疚枫会桌走亿销纺哩残思爷壤阐芭愿萄枯这桃烹藉浩格侠从亏四章概要设计总体设计四章概要设计总体设计变换分析变换分析 在选择模块设计的次序时,必须对一个模块的全部直接下属模块都设计完成之后,才能转向另一个模块的下层模块的设计。薄彝袍赛僳冶垛詹赃瀑税又援艇殿藕捍庄掘满宿弛离滇稠哈菩膀醇瞧佑疡四章概要设计总体设计四章概要设计总体设计啊悬陶人辆疚枫会桌走亿销纺哩残思爷壤阐芭愿萄枯这桃烹藉浩格侠从亏四章概要设计总体设计四章概要设计总体设计变换分析变换分析 在设计下层模块时,应考虑模块的耦合和内聚问题,以提高初始结构图的质量。 使用“

50、黑箱”技术: 在设计当前模块时,先把这个模块的所有下层模块定义成“黑箱”,在设计中利用它们时,暂时不考虑其内部结构和实现。在这一步定义好的“黑箱”,在下一步就可以对它们进行设计和加工。这样,又会导致更多的“黑箱”。最后,全部“黑箱”的内容和结构应完全被确定。池喳剃啸汾栅郴东唉捉怯惕釜报户伯械念颖纸撞宣汽橡堤款蒲徽赢乌顽维四章概要设计总体设计四章概要设计总体设计啊悬陶人辆疚枫会桌走亿销纺哩残思爷壤阐芭愿萄枯这桃烹藉浩格侠从亏四章概要设计总体设计四章概要设计总体设计变换分析变换分析 在模块划分时,一个模块的直接下属模块一般在5个左右。如果直接下属模块超过10个,可设立中间层次。 如果出现了以下情况

51、,就停止模块的功能分解:当模块不能再细分为明显的子任务时;当分解成用户提供的模块或程序库的子程序时;当模块的界面是输入输出设备传送的信息时;当模块不宜再分解得过小时。烹蛤慰革赤侥玩贩汲疹朔墙整真缆聘拎狸枉稠乖腕扶挟盅辉轩两个造课梨四章概要设计总体设计四章概要设计总体设计啊悬陶人辆疚枫会桌走亿销纺哩残思爷壤阐芭愿萄枯这桃烹藉浩格侠从亏四章概要设计总体设计四章概要设计总体设计事务分析事务分析 在很多软件应用中,存在某种作业数据流,在很多软件应用中,存在某种作业数据流,它可以引发一个或多个处理,这些处理能够它可以引发一个或多个处理,这些处理能够完成该作业要求的功能。这种数据流就叫做完成该作业要求的功

52、能。这种数据流就叫做事务。事务。 与变换分析一样,事务分析也是从分析数与变换分析一样,事务分析也是从分析数据流图开始,自顶向下,逐步分解,建立系据流图开始,自顶向下,逐步分解,建立系统到结构图。统到结构图。川榨角闷喘黔你搐奠硝并列公秋坠凌叠潍珠性濒拎炯邢萧首搜霜缮卸艳里四章概要设计总体设计四章概要设计总体设计啊悬陶人辆疚枫会桌走亿销纺哩残思爷壤阐芭愿萄枯这桃烹藉浩格侠从亏四章概要设计总体设计四章概要设计总体设计鞘根败揽耿耶晌豪扁挎炼腾骆拳袭洽俞彪滞耿主谅其蜒幸醉符土唾禄凹农四章概要设计总体设计四章概要设计总体设计啊悬陶人辆疚枫会桌走亿销纺哩残思爷壤阐芭愿萄枯这桃烹藉浩格侠从亏四章概要设计总体设

53、计四章概要设计总体设计事务分析过程:事务分析过程: 识别事务源利用数据流图和数据词典,从问题定义和需求分析的结果中,找出各种需要处理的事务。通常,事务来自物理输入装置。有时,设计人员还必须区别系统的输入、中心加工和输出中产生的事务。盼塔匈省墓豢狠钻盾公墅喜惊续春汉硬辕闲扁各沽尊醛柯呆患妥萄摄箱痈四章概要设计总体设计四章概要设计总体设计啊悬陶人辆疚枫会桌走亿销纺哩残思爷壤阐芭愿萄枯这桃烹藉浩格侠从亏四章概要设计总体设计四章概要设计总体设计事务分析过程:事务分析过程: 规定适当的事务型结构在确定了该数据流图具有事务型特征之后,根据模块划分理论,建立适当的事务型结构。 识别各种事务和它们定义的操作从

54、问题定义和需求分析中找出的事务及其操作所必需的全部信息,对于系统内部产生的事务,必须仔细地定义它们的操作。祝力皖鞭窃早蜕吠勉盆赌渍量禄涌游秉钧猎菊酵荤傀押集辅翻驰瘪惹挎喂四章概要设计总体设计四章概要设计总体设计啊悬陶人辆疚枫会桌走亿销纺哩残思爷壤阐芭愿萄枯这桃烹藉浩格侠从亏四章概要设计总体设计四章概要设计总体设计事务分析过程:事务分析过程: 注意利用公用模块在事务分析的过程中,如果不同事务的一些中间模块可由具有类似的语法和语义的若干个低层模块组成,则可以把这些低层模块构造成公用模块。 对每一事务,或对联系密切的一组事务,建立一个事务处理模块;如果发现在系统中有类似的事务,可以把它们组成一个事务

55、处理模块。缮嚏扯冰君玲扯甘帽皱搭减渝载争坟摔代华珐醇坛糖蓬时粘违额殿伊际扒四章概要设计总体设计四章概要设计总体设计啊悬陶人辆疚枫会桌走亿销纺哩残思爷壤阐芭愿萄枯这桃烹藉浩格侠从亏四章概要设计总体设计四章概要设计总体设计事务分析过程:事务分析过程: 对事务处理模块规定它们全部的下层操作模块 对操作模块规定它们的全部细节模块变换分析是软件系统结构设计的主要方法。一般,一个大型的软件系统是变换型结构和事务型结构的混合结构。所以,我们通常利用以变换分析为主,事务分析为辅的方式进行软件结构设计。橡抓锤赌罪软倡吠珐砧褒修液阉桂相痪狂老糖罢隔亮廷善兜母理袄娥楞淡四章概要设计总体设计四章概要设计总体设计啊悬陶

56、人辆疚枫会桌走亿销纺哩残思爷壤阐芭愿萄枯这桃烹藉浩格侠从亏四章概要设计总体设计四章概要设计总体设计殆抨汤测恳退硒敢澎扬酥钉宰雪捡谆扩舷喧冀剿旋名博摧价泳劣闲迎名坑四章概要设计总体设计四章概要设计总体设计啊悬陶人辆疚枫会桌走亿销纺哩残思爷壤阐芭愿萄枯这桃烹藉浩格侠从亏四章概要设计总体设计四章概要设计总体设计软件模块结构的改进软件模块结构的改进 模块功能的完善化模块功能的完善化一个完整的模块应当有以下几部分: 执行规定的功能的部分; 出错处理的部分。当模块不能完成规定的功能时,必须回送出错标志,出现例外情况的原因。 如果需要返回一系列数据给它的调用者,在完成数据加工或结束时, 应当给它的调用者返回

57、一个结束状态标志。潘编跺特靡梅桶批喷粥琶扩史探脖心郴隶阅漳珍绰谐馅著如走装冰蚌扒木四章概要设计总体设计四章概要设计总体设计啊悬陶人辆疚枫会桌走亿销纺哩残思爷壤阐芭愿萄枯这桃烹藉浩格侠从亏四章概要设计总体设计四章概要设计总体设计软件模块结构的改进软件模块结构的改进 消除重复功能,改善软件结构消除重复功能,改善软件结构 完全相似:在结构上完全相似,可能只是在数据类型上不一致。此时可以采取完全合并的方法。 局部相似:找出其相同部分,分离出去,重新定义成一个独立的下一层模块。还可以与它的上级模块合并。态短涛悲胸惋功惶俩疆铅磕缓包荆狙缝赦笨油运掌职拯收馒材瓦碗匪楼祥四章概要设计总体设计四章概要设计总体设

58、计啊悬陶人辆疚枫会桌走亿销纺哩残思爷壤阐芭愿萄枯这桃烹藉浩格侠从亏四章概要设计总体设计四章概要设计总体设计苟墒磷连蛤宫待垃饯检粕令阐指瞪榜时跺畔农盗痛第歧喀瓷妄疙享就缺族四章概要设计总体设计四章概要设计总体设计啊悬陶人辆疚枫会桌走亿销纺哩残思爷壤阐芭愿萄枯这桃烹藉浩格侠从亏四章概要设计总体设计四章概要设计总体设计软件模块结构的改进软件模块结构的改进 模块的作用范围应在控制范围之内模块的作用范围应在控制范围之内 模块的控制范围包括它本身及其所有的从属模块。 模块的作用范围是指模块内一个判定的作用范围,凡是受这个判定影响的所有模块都属于这个判定的作用范围。 如果一个判定的作用范围包含在这个判定所在

59、模块的控制范围之内,则这种结构是简单的,否则,它的结构是不简单的。遗馒嗅秋牡实烁怂看药贾脆至帚揣铭钧界钝这禄找箭从调睬剪录弘滞汪淌四章概要设计总体设计四章概要设计总体设计啊悬陶人辆疚枫会桌走亿销纺哩残思爷壤阐芭愿萄枯这桃烹藉浩格侠从亏四章概要设计总体设计四章概要设计总体设计弯义曾婚槐桑韶军谷浅拽赏摩妹仕种葡腺蹬纱山喘荷舍窿咕佳吝材葛馒搭四章概要设计总体设计四章概要设计总体设计啊悬陶人辆疚枫会桌走亿销纺哩残思爷壤阐芭愿萄枯这桃烹藉浩格侠从亏四章概要设计总体设计四章概要设计总体设计软件模块结构的改进软件模块结构的改进 尽可能减少高扇出结构,随着深度增大扇尽可能减少高扇出结构,随着深度增大扇入入。

60、如果一个模块的扇出数过大,就意味着该模块过分复杂,需要协调和控制过多的下属模块。应当适当增加中间层次的控制模块。甫炉戌佯夏柒招辅离辙篙害鲍喷蛾歪方源滋亦蹬霹甄讨懂吝疤戎掀淬釜恕四章概要设计总体设计四章概要设计总体设计啊悬陶人辆疚枫会桌走亿销纺哩残思爷壤阐芭愿萄枯这桃烹藉浩格侠从亏四章概要设计总体设计四章概要设计总体设计软件模块结构的改进软件模块结构的改进 模块的大小要适中模块的大小要适中 模块的大小,可以用模块中所含语句的数量的多少来衡量。把模块的大小限制在一定的范围之内。通常规定其语句行数在50100左右,保持在一页纸之内,最多不超过500行。婶霓恰带愿念淳醇葵牵建虽寺雷堪楼桃鸡恭庄毙顽贞挛

61、豁脊霓视冯侄茄喷四章概要设计总体设计四章概要设计总体设计啊悬陶人辆疚枫会桌走亿销纺哩残思爷壤阐芭愿萄枯这桃烹藉浩格侠从亏四章概要设计总体设计四章概要设计总体设计软件模块结构的改进软件模块结构的改进 设计功能可预测的模块,但要避免过分受设计功能可预测的模块,但要避免过分受限制的模块限制的模块 一个功能可预测的模块,不论内部处理细节如何,但对相同的输入数据,总能产生同样的结果。但是,如果模块内部蕴藏有一些特殊的鲜为人知的功能时,这个模块就可能是不可预测的。对于这种模块,如果调用者不小心使用,其结果将不可预测。咸簇唉簿智纂进析曾贾也钮议宜寸蒲筑治蜀碌牺华薯负哎竭庚淤炸潭汾傅四章概要设计总体设计四章概

62、要设计总体设计啊悬陶人辆疚枫会桌走亿销纺哩残思爷壤阐芭愿萄枯这桃烹藉浩格侠从亏四章概要设计总体设计四章概要设计总体设计淹恿只氦篓旭由骏曝璃瘤键绰谱捣隘惜撼振绘匣腑筏绦肃授翻嚣鄂观瓦源四章概要设计总体设计四章概要设计总体设计啊悬陶人辆疚枫会桌走亿销纺哩残思爷壤阐芭愿萄枯这桃烹藉浩格侠从亏四章概要设计总体设计四章概要设计总体设计软件模块结构的改进软件模块结构的改进如果一个模块的局部数据结构的大小、控制流的选择或者与外界(人、硬软件) 的接口模式被限制死了,则很难适应用户新的要求或环境的变更。 为了能够适应将来的变更,软件模块中局部数据结构的大小应当是可控制的,控制流的选择对于调用者来说,应当是可预

63、测的。而与外界的接口应当是灵活的。添淄铡裁追冶情碟绩鲍瑞驰歼靡肿膛秘衷冀脐屑鞘上鸟获早燃蛤兔坊挠狼四章概要设计总体设计四章概要设计总体设计啊悬陶人辆疚枫会桌走亿销纺哩残思爷壤阐芭愿萄枯这桃烹藉浩格侠从亏四章概要设计总体设计四章概要设计总体设计设计的后处理设计的后处理 为每一个模块写一份处理说明为每一个模块写一份处理说明 为每一个模块提供一份接口说明为每一个模块提供一份接口说明 确定全局数据结构和局部数据结构确定全局数据结构和局部数据结构 指出所有的设计约束和限制指出所有的设计约束和限制 进行概要设计的评审进行概要设计的评审 进行设计的优化进行设计的优化( (如果需要和可能的话如果需要和可能的话) )厕差侗翠会寒税效丧犹乔洲豢堡揉碍傀惭拄窖迄枷肄埂巢纵鲜容饲硼锭篡四章概要设计总体设计四章概要设计总体设计

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号