5.3.2 软件设计原则

文章目录

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

抽象

抽象是抽出事物本质的共同特性。过程抽象是指将一个明确定义功能的操作当作单个实体看待。数据抽象是对数据的类型、操作、取值范围进行定义,然后通过这些操作对数据进行观察和修改。

模块化

模块化时,一个模块只完成一个特定的子功能。模块划分遵循高内聚、低耦合,作用范围在控制范围内,软件结构的深度、宽度、扇入、扇出合适,模块大小适中等规则。作用范围是指模块内判定所影响的模块的集合。控制范围是指模块本身及其下属模块。软件结构的深度是指其数据流图的层数,宽度是指每层的模块数量,扇入是指模块的上级模块数量,扇出是指模块的下属模块数量。

信息隐蔽与独立性衡量

信息隐蔽式指模块内的信息对于不需要这些信息的模块,不能访问。

可以用耦合度、内聚度对模块的独立性进行衡量。耦合度表示模块间的紧密程度,内聚度是指模块内的紧密程度。耦合度从无直接耦合→数据耦合→标记耦合→控制耦合→外部耦合→公共耦合→内容耦合,耦合度逐渐增强,模块独立性逐渐减弱。内聚度从功能内聚→顺序内聚→通信内聚→过程内聚→时间内聚→逻辑内聚→偶然内聚,内聚度逐渐降低,模块独立性逐渐减弱。

相关推荐
弗锐土豆7 天前
自动化-程序员从抽象与具象的角度学习自动化
学习·程序员·自动化·抽象·具象
故渊at8 天前
系列三:组件化与模块化进阶 | 第11篇 组件化项目规范与问题根治:依赖、资源、Manifest 与混淆的全链路管控
android·架构·mvvm·模块化·组件化
故渊at9 天前
系列三:组件化与模块化进阶 | 第12篇 老项目重构实战(绞杀者模式):从单体巨石到组件化架构的无痛迁移
android·重构·架构·模块化·组件化
赏金术士10 天前
Android 项目模块化与 Feature 组件实践
android·kotlin·模块化
zth4130211 个月前
dh dsbw wef k
抽象
七夜zippoe2 个月前
DolphinDB自定义函数:打造专属工具库
自定义·lambda·函数·模块化·工具库·dolphindb
XiaoLeisj3 个月前
Android 模块化与组件化工程实战:从子模块库化、Gradle 配置统一到 ARouter 解耦跨模块页面通信与 Fragment 解耦集成
android·gradle·模块化·arouter
CappuccinoRose4 个月前
CSS 语法学习文档(十三)
前端·css·学习·postcss·模块化·预处理器
俺不理解5 个月前
鸿蒙 Stage Arkts HSP+HAR 的集成
华为·harmonyos·模块化·har·hsp
課代表5 个月前
API 与 SDK:概念、关系与应用
microsoft·接口·api·sdk·开发工具·模块化·开放式