5.3.2 软件设计原则

文章目录

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

抽象

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

模块化

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

信息隐蔽与独立性衡量

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

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

相关推荐
胡西风_foxww1 个月前
【ES6复习笔记】ES6的模块化(18)
javascript·笔记·es6·module·模块化·import·export
EleganceJiaBao1 个月前
【C语言】结构体模块化编程
c语言·c++·模块化·static·结构体·struct·耦合
跳跳的向阳花1 个月前
01、NodeJS学习笔记,第一节:Node.js初识与内置模块
学习·npm·node.js·模块化··内置模块·模块加载机制
布兰妮甜2 个月前
Angular模块化应用构建详解
javascript·angular.js·模块化
需己以听的以听2 个月前
4.模块化技术之子程序
sap·gui·abap·模块化·改行学it·子程序
hope_wisdom2 个月前
实战设计模式之简介
设计模式·架构·软件工程·模块化·封装
Amd7943 个月前
Nuxt.js 应用中的 imports:dirs 事件钩子详解
nuxt·目录·模块化·导入·钩子·灵活·可扩展
一颗冰淇淋4 个月前
前端模块化进化史:从全局 function 到 ES Modules
前端·模块化·cmd·commonjs·amd·es modules
zth4130214 个月前
CSP-J模拟赛三补题报告
c++·算法·抽象·csp·c--