“软件设计”的版本间的差异
		
		
		
		
		
		跳到导航
		跳到搜索
		
				
		
		
	
Jihongchang(讨论 | 贡献)  | 
				Jihongchang(讨论 | 贡献)   | 
				||
| (未显示同一用户的5个中间版本) | |||
| 第6行: | 第6行: | ||
软件设计的任务与活动  | 软件设计的任务与活动  | ||
[[文件:软件设计的任务与活动.png|无|缩略图|600x600像素]]  | [[文件:软件设计的任务与活动.png|无|缩略图|600x600像素]]  | ||
| + | |||
| + | |||
| + | === 2)内聚和耦合 ===  | ||
| + | {| class="wikitable"  | ||
| + | !内聚类型  | ||
| + | !描述  | ||
| + | |-  | ||
| + | |功能内聚  | ||
| + | |最强的内聚,完成一个单一功能,各个部分协同工作,缺一不可  | ||
| + | |-  | ||
| + | |顺序内聚  | ||
| + | |各个处理元素都密切相关与同一功能且'''<big>必须顺序执行</big>''',  | ||
| + | 前一个功能元素的输出就是下一个功能元素的输入  | ||
| + | |-  | ||
| + | |通信内聚  | ||
| + | |所有处理元素集中在同一个数据结构的区域上,或者各处理使用相同  | ||
| + | 的输入数据或产生相同的输出数据  | ||
| + | |-  | ||
| + | |过程内聚  | ||
| + | |模块内部的处理成分是相关的,而且这些处理'''<big>必须以特定的次序执行</big>'''  | ||
| + | |-  | ||
| + | |瞬时内聚(时间内聚)  | ||
| + | |把需要'''<big>同时执行的动作</big>'''组合在一起形成的模块  | ||
| + | |-  | ||
| + | |逻辑内聚  | ||
| + | |模块内执行若干个逻辑上相似的功能,  | ||
| + | 通过参数确定该模块完成哪一个功能  | ||
| + | |-  | ||
| + | |偶然内聚(巧合内聚)  | ||
| + | |模块内的各处理元素之间'''<big>没有任何联系</big>'''  | ||
| + | |}  | ||
| + | 最强内聚类型:功能内聚  | ||
| + | |||
| + | |||
| + | {| class="wikitable"  | ||
| + | !耦合类型  | ||
| + | !描述  | ||
| + | |-  | ||
| + | |非直接耦合  | ||
| + | |两个模块之间'''<big>没有直接关系</big>''',分别从属于不同模块的控制和调用,  | ||
| + | 之间不传递任何信息  | ||
| + | |-  | ||
| + | |数据耦合  | ||
| + | |两个模块间有调用关系,传递简单的数据值  | ||
| + | |-  | ||
| + | |标记耦合  | ||
| + | |两个模块之间传递的是数据结构  | ||
| + | |-  | ||
| + | |控制耦合  | ||
| + | |一个模块调用另一个模块时,传递的是控制变量,被调用模块根据控制  | ||
| + | 变量执行某个功能  | ||
| + | |-  | ||
| + | |外部耦合  | ||
| + | |模块间通过软件之外的环境联结(如I/O将模块耦合到特定的设备、格式、通用协议上)  | ||
| + | |-  | ||
| + | |公共耦合  | ||
| + | |通过一个公共数据环境相互作用的那些模块间的耦合  | ||
| + | |-  | ||
| + | |内容耦合  | ||
| + | |一个模块直接使用另一个模块的内部数据;  | ||
| + | 或通过非正常入口而转入另一个模块内部  | ||
| + | |}  | ||
| + | 非直接耦合是我们最希望的耦合类型。  | ||
| + | |||
| + | |||
| + | === 考点1:软件设计的基本概念 ===  | ||
| + | 创建好的程序或文档所需遵循的设计原则不包括()。  | ||
| + | |||
| + | A、反复迭代,不断修改  | ||
| + | |||
| + | B、遵循好的标准和设计风格  | ||
| + | |||
| + | C、尽量采用最新的技术  √  | ||
| + | |||
| + | D、简约,省去不必要的元素  | ||
| + | |||
| + | |||
| + | === 考点2:内聚和耦合 ===  | ||
| + | 一组无逻辑关系的语句在程序中多处出现,为了节省存储空间,把这些语句放在一个模块中,该模块的内聚是()。  | ||
| + | |||
| + | A、逻辑内聚  | ||
| + | |||
| + | B、偶然内聚  √  | ||
| + | |||
| + | C、过程内聚  | ||
| + | |||
| + | D、通信内聚  | ||
2022年9月24日 (六) 07:04的最新版本
https://www.bilibili.com/video/BV1hg411V7Bm/?p=77
1)软件设计原则
软件设计原则:抽象、模块化、信息隐蔽、模块独立
软件设计的任务与活动
2)内聚和耦合
| 内聚类型 | 描述 | 
|---|---|
| 功能内聚 | 最强的内聚,完成一个单一功能,各个部分协同工作,缺一不可 | 
| 顺序内聚 | 各个处理元素都密切相关与同一功能且必须顺序执行,
 前一个功能元素的输出就是下一个功能元素的输入  | 
| 通信内聚 | 所有处理元素集中在同一个数据结构的区域上,或者各处理使用相同
 的输入数据或产生相同的输出数据  | 
| 过程内聚 | 模块内部的处理成分是相关的,而且这些处理必须以特定的次序执行 | 
| 瞬时内聚(时间内聚) | 把需要同时执行的动作组合在一起形成的模块 | 
| 逻辑内聚 | 模块内执行若干个逻辑上相似的功能,
 通过参数确定该模块完成哪一个功能  | 
| 偶然内聚(巧合内聚) | 模块内的各处理元素之间没有任何联系 | 
最强内聚类型:功能内聚
| 耦合类型 | 描述 | 
|---|---|
| 非直接耦合 | 两个模块之间没有直接关系,分别从属于不同模块的控制和调用,
 之间不传递任何信息  | 
| 数据耦合 | 两个模块间有调用关系,传递简单的数据值 | 
| 标记耦合 | 两个模块之间传递的是数据结构 | 
| 控制耦合 | 一个模块调用另一个模块时,传递的是控制变量,被调用模块根据控制
 变量执行某个功能  | 
| 外部耦合 | 模块间通过软件之外的环境联结(如I/O将模块耦合到特定的设备、格式、通用协议上) | 
| 公共耦合 | 通过一个公共数据环境相互作用的那些模块间的耦合 | 
| 内容耦合 | 一个模块直接使用另一个模块的内部数据;
 或通过非正常入口而转入另一个模块内部  | 
非直接耦合是我们最希望的耦合类型。
考点1:软件设计的基本概念
创建好的程序或文档所需遵循的设计原则不包括()。
A、反复迭代,不断修改
B、遵循好的标准和设计风格
C、尽量采用最新的技术 √
D、简约,省去不必要的元素
考点2:内聚和耦合
一组无逻辑关系的语句在程序中多处出现,为了节省存储空间,把这些语句放在一个模块中,该模块的内聚是()。
A、逻辑内聚
B、偶然内聚 √
C、过程内聚
D、通信内聚