软件设计

来自姬鸿昌的知识库
跳到导航 跳到搜索

https://www.bilibili.com/video/BV1hg411V7Bm/?p=77

1)软件设计原则

软件设计原则:抽象、模块化、信息隐蔽、模块独立

软件设计的任务与活动

软件设计的任务与活动.png


2)内聚和耦合

内聚类型 描述
功能内聚 最强的内聚,完成一个单一功能,各个部分协同工作,缺一不可
顺序内聚 各个处理元素都密切相关与同一功能且必须顺序执行

前一个功能元素的输出就是下一个功能元素的输入

通信内聚 所有处理元素集中在同一个数据结构的区域上,或者各处理使用相同

的输入数据或产生相同的输出数据

过程内聚 模块内部的处理成分是相关的,而且这些处理必须以特定的次序执行
瞬时内聚(时间内聚) 把需要同时执行的动作组合在一起形成的模块
逻辑内聚 模块内执行若干个逻辑上相似的功能,

通过参数确定该模块完成哪一个功能

偶然内聚(巧合内聚) 模块内的各处理元素之间没有任何联系

最强内聚类型:功能内聚


耦合类型 描述
非直接耦合 两个模块之间没有直接关系,分别从属于不同模块的控制和调用,

之间不传递任何信息

数据耦合 两个模块间有调用关系,传递简单的数据值
标记耦合 两个模块之间传递的是数据结构
控制耦合 一个模块调用另一个模块时,传递的是控制变量,被调用模块根据控制

变量执行某个功能

外部耦合 模块间通过软件之外的环境联结(如I/O将模块耦合到特定的设备、格式、通用协议上)
公共耦合 通过一个公共数据环境相互作用的那些模块间的耦合
内容耦合 一个模块直接使用另一个模块的内部数据;

或通过非正常入口而转入另一个模块内部

非直接耦合是我们最希望的耦合类型。


考点1:软件设计的基本概念

创建好的程序或文档所需遵循的设计原则不包括()。

A、反复迭代,不断修改

B、遵循好的标准和设计风格

C、尽量采用最新的技术 √

D、简约,省去不必要的元素


考点2:内聚和耦合

一组无逻辑关系的语句在程序中多处出现,为了节省存储空间,把这些语句放在一个模块中,该模块的内聚是()。

A、逻辑内聚

B、偶然内聚 √

C、过程内聚

D、通信内聚