- 1、本文档共76页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
软件工程课件第四章节
; 在软件开发时期中,设计阶段是最富有活力、最需要发挥创造精神的阶段。在软件需求分析阶段,已搞清楚了软件“做什么”的问题,并把这些需求通过规格说明书描述了出来,这也是目标系统的逻辑模型。; ;总体设计
4.1 总体设计的过程
4.2 软件设计的概念和原理
4.3 启发式规则
4.4 图形工具
4.5 面向数据流的设计方法
4.6 小结 ; 软件设计在开发阶段中的重要性; ;4.1 总体设计的过程;软件设计的任务;结构设计; 从以上内容看,软件结构的设计是以模块为基础的,在需求分析阶段,已经把系统分解成层次结构。设计阶段,以需求分析的结果为依据,从实现的角度进一步划分为模块,并组成模块的层次结构。; ;2、数据结构及数据库设计;(2)数据库设计。指数据存储文件的设计,主要进行以下几方面设计:
①概念设计。在数据分析的基础上,采用自底向上的方法从用户角度进行视图设计,一般用ER模型来表示数据模型,这是一个概念模型。
②逻辑设计。
③物理设计。;3.编写总体设计文档;4.评审;4.2 软件设计的概念和原理; ;状态:该模块的运行环境,即模块的调用与被调用关系。
功能、状态与接口反映模块的外部特性,逻辑反映它的内部特性。
模块化:指解决一个复杂问题时自顶向下逐层把软件系统划分成若干模块的过程。每个模块完成一个特定的子功能,所有的模块按某种方法组装起来,成为一个整体,完成整个系统所要求的功能。模块化是软件解决复杂问题所具备的手段,为了说明这一点,可将问题的复杂性和工作量的关系进行推理。;设问题x,表示它的复杂性函数为C(x),解决它所需要的工作量函数为E(x)。对于问题P1和P2,
如果 C(P1)>C(P2) 即P1比P2复杂
那么 E(P1)>E(P2) 即问题越复杂,所需要的工作量越大。
根据解决一般问题的经验,规律是:
C(P1+P2)>C(P1)+C(P2)
即一个问题由两个问题组合而成的复杂度大于分别考虑每个问题的复杂度之和。这样,可推出:
E(P1+P2)>E(P1)+E(P2)
由此可见,开发一个大而复杂的软件系统,将它进行适当的分解,不但可降低其复杂性,还可减少开发工作量,从而降低开发成本,提高软件生产率,这就是模块化的依据。;模块化和软件成本;4.2.2 抽象
抽象:是认识复杂现象过程中使用的思维工具,即抽出事物本质的共同特性而暂不考虑它的细节,不考虑其它因素。 ;4.2.3 信息隐蔽和局部化;信息隐藏的目的;4.2.4模块独立性(module independence);1、耦合性(coupling)
也称块间的联系。指软件系统结构中各模块间相互联系紧密程度的一种度量。
(1)非直接耦合(No Direct Coupling)。没有信息传递
(2) 数据耦合(Data Coupling)。参数:简单变量
(3) 特征耦合(Stamp Coupling)。参数:数据结构;耦合性(coupling);?
; 2、内聚性(cohesion)
又称块内联系。指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。若一个模块内各元素(语句之间、程序段之间)联系的越紧密,则它的内聚性就越高,内聚性有以下几种类型:;(1)偶然性内聚(Coincidental Cohesion):块内各组成成份在功能上是互不相关的。
(2)逻辑内聚(Logical Cohesion):通常由若干个逻辑功能相似的成份组成。
(3)时间内聚(Temporal Cohesion):这类模块所含的成分,是由相同的执行时间将它们联结到一起的。;巧合内聚(Coincidental Cohesion) 巧合内聚又称为偶然内聚。当模块内各部分之间没有联系,或者即使有联系,这种联
系也很松散,
则称这种模
块为巧合内
聚模块,它
是内聚程度
最低的模块。;逻辑内聚(Logical Cohesion)这种模块把几种
相关的功能组合
在一起,每次被
调用时,由传送
给模块的判定参
数来确定该模块
应执行哪一种功
能。;时间内聚(Classical Cohesion)时间内聚又称为经典内聚。这种模块大多为多功能模块,但模块的各个功能的执行与时间有关,通常要求所有功能必须在同一时间段内执行。例如初始化模块和终止模块。;;过程内聚(Procedural Cohesion) 使用流程图做为工具设计程序时,把流程图中的某一部分划出组成模块,就得到过程内聚模块。例如,把流程图中的循环部分、判定部分、计算部分分成三个模块,这三个模块都是过程内聚模块。;通信内聚
文档评论(0)