- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
软件设计的概念与原则
软 件 工 程
软件工程
2
软件设计的概念与原则
模块化
抽象与逐步求精
信息隐蔽和局部化
模块独立性
耦合:表示软件结构内模块之间相互连接的紧密程度
内聚:标志一个模块内各个元素彼此结合的紧密程度
软件工程
3
耦合(1) (2) (3)
(1)非直接耦合:两个模块没有直接的联系,它们中任何一个都能不依赖于对方而独立地工作。
(2)数据耦合:
两个模块借助于参数表传递简单数据
两模块只通过参数交换信息,且此信息仅为数据
被调用模块的输入输出都是简单数据
(3)标记耦合:一个数据结构的一部分(如记录的一部分)借助于模块接口被传递。
软件工程
4
耦合-----(4)控制耦合
两个模块间传递的信息中包含用于控制模块内部逻辑的控制信息。
A的逻辑判断是执行C还是D, 取决于B传来的信息标志status
软件工程
5
耦合-----(5)外部耦合
一组模块都访问全局简单变量而不是同一全局数据结构,而且不是通过参数表传递该全局变量的信息。
例如:在C语言程序中各个模块都访问被说明为external 类型的外部变量,外部耦合不存在依赖于一个数据结构内部各项的物理安排。
软件工程
6
耦合----(6)公共耦合
多个模块都访问同一个公共的数据环境。公共数据环境可以是全局数据结构,共享的通信区,内存的公共覆盖区等。复杂程度随耦合模块个数增加而显著增加。
B
A
C
全程
数据区
D
E
软件工程
7
耦合---- (7)内容耦合
一个模块访问另一个模块的内部数据;一个模块不通过正常入口转到另一模块的内部;两个模块有一部分程序代码重叠;一个模块有多个入口
软件工程
8
耦合性与模块独立性的关系图
软件工程
9
内聚
内聚是标志一个模块内各个元素彼此结合的紧密程度
它是信息隐蔽和局部化概念的自然扩展。
软件工程
10
(1)巧合内聚(偶然内聚)
模块完成的一组任务关系松散
软件工程
11
(2)逻辑内聚
该模块完成的任务在逻辑上属于相同或相似
软件工程
12
(3)时间内聚(经典内聚):
大多为多功能模块,但要求模块的各个功能必须在同一时间段内执行
软件工程
13
(4)过程内聚
使用流程图作为工具设计程序的时候,常常通过流程图来确定模块划分。把流程图中的某一部分划分出来组成模块,就得到过程内聚模块。
这类模块的内聚程度比时间内聚模块的内聚程度更强一些
软件工程
14
(5)通信内聚该模块内各功能都使用了相同的输入数据,或产生了相同的输出数据,则称之为通信内聚模块
软件工程
15
6 信息内聚(顺序内聚)
这种模块完成多个功能,各个功能都在同一数据结构上操作,每项功能有唯一的入口点
软件工程
16
(7)功能内聚
一个模块中各个部分都是为完成一项具体功能而协同工作、紧密联系,不可分割的,则该模块为功能内聚模块。功能内聚模块是内聚性最强的模块
软件工程
17
内聚性与模块独立性的关系图
软件工程
18
设计准则
目标 产生一个模块化的程序结构,并明确模块间的控制关系,定义用户界面、说明程序所用的数据结构。
1. 改进软件结构,提高模块独立性
2. 模块规模应适中
3.适当选择深度、宽度、扇出和扇入
4.模块的作用域应该在控制域之内
5.降低模块接口的复杂度
6.设计单入口单出口的模块
7.模块功能应该可以预测
谢谢观看!
软 件 工 程
原创力文档


文档评论(0)