欢迎来到天天文库
浏览记录
ID:61961890
大小:1.55 MB
页数:74页
时间:2021-04-03
《软件概要设计(精).ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第四章软件概要设计4.1概要设计的任务和过程4.2概要设计的基本原理4.3软件模块化的优化原则4.4概要设计的方法小结思考与练习返回章目录4.1概要设计的任务和过程软件概要设计的任务就是将软件的需求分析转化为软件的系统结构和数据结构。软件的概要设计一般包含数据设计、体系结构设计、接口设计和过程设计,具体的的信息流如图所示:23软件概要设计过程可以划分为两个主要阶段:系统设计和结构设计。系统设计的任务是确定整个系统的具体实现方案。结构设计的任务则是确定软件的整体体系结构。一般来说,其过程可以分为如下几个
2、步骤:1、设计系统的实现方案2、选取最佳、合理的设计方案3、任务分解4、确定软件结构5、系统数据结构设计6、制定测试计划7、编写概要设计阶段的有关设计文档8、概要设计评审与复审4在概要设计文档一般包含以下几个方面:1)概要设计说明书:给出系统目标、总体设计、数据设计、处理方式设计、运行设计以及出错设计等。2)数据库设计说明书:给出本系统所使用的数据库的有关说明及其它相关的内容。3)用户手册:根据系统概要设计的结果修改和更正在需求分析阶段得到的初步的使用手册。4)初步的系统测试计划:给出系统测试的基本策
3、略、方法和测试步骤的明确要求。5)详细设计的实现计划:给出系统各个模块实现的详细的设计思路。返回节目录54.2概要设计的基本原理4.2.1模块与模块独立性4.2.2抽象、信息隐蔽与局部化返回节目录64.2.1模块与模块独立性所谓模块是指可以单独命名且可以通过名字来访问的数据说明、可执行语句等程序对象的集合。将这些模块组装起来以满足整个问题的需求。将一个大的复杂问题分解为若干个小的易于理解的问题之后,实际的解决过程则变的简单了。这就是模块化的依据。当然,模块的划分不能够太随意和无限制。事实上,有时候模块
4、的划分过于细化反而会增加系统的整体工作量。模块化合软件的成本可以用下图来表示。78模块的独立性是指模块和其它模块之间没有过多的相互作用,也就是说每一个模块都完成一个相对独立的特定的子功能。为什么模块要具有独立性呢?一般有以下两个主要原因:1)一个相对独立的模块的功能较为单一,接口简单,易于开发。2)一个相对独立的模块比较容易测试和维护。模块的独立程度可以用两个定性的标准来度量,即模块的内聚性和耦合性。91.内聚性(cohesion)内聚是模块功能强度的度量,它标志一个模块内部各个元素彼此结合的紧密程度
5、。一个理想的内聚程度高的模块应该只完成一种功能。一般模块的内聚性分为7种类型,它们的关系如下图所示。10偶然内聚(巧合内聚)ABCMMOVEOTORREADFILEFMOVESTOT模块M中的三个语句没有任何联系缺点:可理解性差,可修改性差例:11逻辑内聚把几种相关功能(逻辑上相似的功能)组合在一模块内,每次调用由传给模块的参数确定执行哪种功能。12逻辑内聚模块ABCEFGABCEFGA1B1C1EFG模块内部逻辑E、F、G逻辑功能相似,组成新模块EFG缺点:增强了耦合程度(控制耦合)不易修改,效率低
6、公用代码段公用代码段13时间内聚(经典内聚)模块完成的功能必须在同一时间内执行,这些功能只因时间因素关联在一起。例如:初始化系统模块、系统结束模块、紧急故障处理模块等均是时间性聚合模块.14过程内聚(顺序性组合)模块内各处理成分相关,且必须以特定次序执行15过程内聚模块读入成绩单审查成绩单统计成绩打印成绩读入并审查成绩单统计并打印成绩单16通信内聚模块内各部分使用相同的输入数据,或产生相同的输出结果17通信内聚模块例产生工资报表计算平均工资职工工资记录职工工资报表平均工资产生职工工资报表并计算平均工资
7、模块18信息内聚模块完成多个功能,各功能都在同一数据结构上操作,每一功能有唯一入口。19信息内聚模块符号表查找登录删除修改几个加工同时引用一个共同的数据20功能内聚模块仅包括为完成某个功能所必须的所有成分。模块所有成分共同完成一个功能,缺一不可内聚性最强21在软件的设计过程中,我们应该尽量使模块的内聚性强一些。为了做到这一点,一般遵循以下内聚性原则:(1) 定量使用信息内聚(2) 少用通信内聚和过程内聚(3) 限用时间内聚(4) 禁用逻辑内聚222.耦合性(coupling)耦合性是软件结构内
8、不同模块之间相互关联程度的度量。耦合的强弱取决于模块之间接口的复杂程度、模块的调用方式以及通过接口的数据。和内聚性一样,我们通常也把模块的耦合性分成7种类型,如下图所示。23(1)无直接耦合两个模块没有直接关系(模块1和模块2),模块独立性最强。模块1模块2模块3模块424(2)数据耦合一模块调用另一模块时,被调用模块的输入、输出都是简单的数据(若干参数)。属松散耦合。25数据耦合举例开发票计算水费单价数量金额26(3)标记耦合(复合型耦合)如两个模块通
此文档下载收益归作者所有