系统为什么要模块化

article/2025/8/22 10:56:03

 

一、系统模块化的重要性:

对于目前绝大部分的项目而言,系统模块化的重要性不言而喻。一个良好的模块划分能够使得系统具有以下的优点:

1. 更高的可靠性     

2. 更稳定的结构

3. 更强的维护性

4. 代码可重用性更强

5. 缩短项目开发周期

二、系统模块化的原则:

依据软件设计的模块化、抽象、信息隐藏和局部分等原则,能够得出模块化的独立性概念。

所谓模块独立性,即模块内部逻辑相对独立完整单一。

模块间联系尽可能少,详细表现为高内聚低耦合。

符合高内聚低耦合的模块,通常功能完整独立,数据接口简单,程序易于实现。

良好的结构划分,可以使开发者更好的理清业务逻辑结构,提取出公共的模块,系统模块化从而提高代码的可重用性。

易于理解维护,同一时候也限制了错误的作用范围。

使错误易于排除,因而可使软件开发速度快,质量高。

内聚度:

内聚度是指模块内部的联系紧密程度。

联系越紧,则内聚度越高,模块独立性越强,系统越易于理解维护。具有良好内聚度的模块应能较好的满足于信息局部化的原则,功能完整单一。

同时,模块的高内聚必定导致模块的低耦合度。

理想的情况是:一个模块仅仅使用局部数据变量,实现一个完整功能。

按由弱到强的顺序。模块的内聚度可分为下面几类:

1. 偶然内聚:模块内的各个任务没有什么有意义的联系,仅于偶然位于同块。

2. 逻辑内聚:一个模块完毕的任务在逻辑上属于同样或相似的一类(如依据參数不同。模块输出多种结果)。这样的内聚的模块存在一些致命的问题。

如修改困难、影响范围大、内部推断陷阱多、性能下降等。模块内部修改,须要考虑到其他模块的调用影响;模块内部须要判别调用者,使得模块外部间的联系增加;内部推断复杂,容易产生陷阱;需要装载模块过多,导致性能下降等等。

3. 时间内聚:一个模块中包括的任务须要在同一时间内运行(如初始化,结束等所需的操作)。

4. 过程内聚:一个模块内的各个处理元素是相关的。并且必须按固定的次序运行,表现为有次序的流程,面向过程化的思维很多是采用这样的方式进行模块/函数的划分。

5. 通信内聚:一个模块中的各处理元素必须要引用共同的数据。

6. 顺序内聚:一个模块内各处理元素关系密切,必须按规定的处理次序顺序运行,后运行的语句/段往往依赖先运行的语句/段。

7. 功能内聚:一个模块仅完毕一个单一的功能。且该模块的全部部分是实现这一功能所必须的,没有多余的语句。功能内聚是内聚度最高的一种模块类型,结构紧凑。逻辑清晰。易于理解。便于维护,可靠性强,稳定性高,因功能单一,复用性高。在划分模块的时候,应追求此类型。

耦合度:

耦合度是从模块外部考察模块的独立性程度,用来衡量多个模块间的相互联系。普通情况下耦合度应从下面三方面考虑:

1、耦合内容的数量:

模块间发生联系的数据和代码的多少,多则高,少则低。

2、模块的调用方式:

模块间代码数据共享的方式:直接调用、依赖调用、载入调用等。

3、模块间的耦合类型:

耦合类型有下面几种方式:

1. 独立耦合:模块间彼此独立,没有直接联系,且属于同个软件系统或隶属同一上层模块。

2. 数据耦合:模块间彼此交互数据,接受返回值。传递数据參数,通常应用在保持模块间的关系为数据耦合。

3. 控制耦合:模块间传递的是控制參数而非数据參数,用于控制另一个模块的处理逻辑。这说明另一个模块内部存在多个并列的逻辑路径,通过提高被调用模块的内聚性,能够彻底的去除这样的联系。因为添加了设计理解的复杂度。应避免使用该耦合方式。

4. 公共耦合:又称公共环境耦合或数据区域耦合。若模块间对同一数据区域进行存取操作,则模块间的关系为公共耦合。

5. 内容耦合:一个模块直接访问另一个模块内部代码或数据,出现内容耦合。内容耦合严重破坏了模块的独立性和系统结构化,代码互相纠缠,执行错综复杂。不建议使用。

三、系统模块化方法

基于需求功能划分:

依据用户需求归类的不同,对模块进行大粒度的划分,如用户管理模块、业务模块、订单流程模块等。

基于系统层次划分:

依据模块上下级,同层类别的关系进行模块划分,如展现层,业务层,数据层等。

基于专业领域划分:

依据解决的问题域的不同。对模块进行划分,如人机交互领域、数据库领域、网络通信领域、数据加解密、图形图像等。

 


http://chatgpt.dhexx.cn/article/gDRU6mpI.shtml

相关文章

【C语言】模块化编程-通俗易懂

1什么是模块化 模块化编程就是把我们的一整个项目,分成很多模块(比如一个学生成绩查询可以分为,登陆,查询,修改保存,退出等模块) 而一个程序工程包含多个源文件(.c 文件和 .h 文件)&#xff0…

python模块详细介绍

文章目录 模块模块的简介和使用简介使用模块 python标准库python第三方模块pyecharts的使用 模块 模块的简介和使用 简介 模块化是将程序分解为一个个的模块module,通过组合模块来搭建出一个完整的程序。 有点:便于团队开发,方便维护&…

什么是模块化?

1.什么是模块化? 1.模块化是指解决一个复杂问题时,自顶向下逐层把系统划分成若干模块的过程。对于整个系统来说,模块是可组合、分解和更换的单元 2. 编程领域中的模块化,就是遵守固定的规则,把一个大文件拆成独立并互相依赖的多个小模块…

模块的介绍

模块简介 1.什么是模块 模块就是以 .py 结尾的文件里面定义好功能的函数和对象看成一个结合体,当用户调用模块就相当于拥有了这个模块里面的所有功能。 2.模块的分类 内置模块: 解释器内自带的模块 可以直接调用 如:time、random 自定义模块&…

模块基础——模块简介、模块导入方式、模块查找顺序

文章目录 模块简介模块的使用import句式from...import...句式模块的补充知识判断文件类型循环导入问题模块的查找顺序(重点) 面向过程编程面向过程的优缺点 模块简介 什么是模块? 模块就是一系列功能的集合。在python中,一个py文件就是一个模块&#xff…

Linux下iptables防火墙配置

目录 一.Linux防火墙基础 1.1 防火墙概述 1.2 四表五链 二. iptables--命令 2.1 iptables的安装 2.2 iptables的配置方法 三.配置Filter表防火墙 3.1 列出(fliter)表中的所有链 iptables -L 3.2 使用数字形式(fliter)表…

linux防火墙添加开放端口

linux防火墙添加开放端口 --添加开放端口 sudo firewall-cmd --zonepublic --add-port开放的端口号/协议[tcp/udp] --permanent --permanent 添加的端口号永久生效 --使新增的端口配置立即生效 sudo firewall-cmd --reload ​​​​​​​

Linux修改防火墙

linux环境-CentOS 7.6 64位 查看是否配置防火墙:ifconfig 2.查看是否开启防火墙:service iptables status 3.查看防火墙配置规则:iptables -L -n 4.查看ssh当前端口占用:sudo netstat -atlunp | grep sshd 5.修改进入ssh目录&a…

linux 防火墙配置规则

基础知识 Linux系统内核内建了netfilter防火墙机制。Netfilter(数据包过滤机制),所谓的数据包过滤,就是分析进入主机的网络数据包,将数据包的头部数据提取出来进行分析,以决该连接为放行或阻挡的机制。Net…

Linux防火墙配置及放行端口

文章目录 一、firewalld的基本使用(系统防火墙)二、配置firewalld-cmd三、通过firewall-cmd(放行端口) 一、firewalld的基本使用(系统防火墙) 查看防火墙状态: systemctl status firewalld.se…

linux显示 防火墙配置文件,怎么查看Linux防火墙配置方法

当Linux系统的防火墙的状态和信息时候,我们可以用哪些命令查看呢。下面由学习啦小编为大家整理了查看Linux系统防火墙的命令详解,希望对大家有帮助! 查看Linux系统防火墙的命令详解 查看Linux系统防火墙的命令一、service方式 查看防火墙状态: [root@centos6 ~]# service ip…

Linux 配置防火墙

Linux 配置防火墙 一、图形化的形式 1.开启LAMP systemctl start httpd2.查看本地IP地址 ip addr3.本地IP为 192.168.31.150本地访问 外部浏览器就无法访问 4.此时配置防火墙 firewall-config此时,出现图形化界面,需要输入密码 改变服务http R…

Linux 防火墙配置(iptables和firewalld)

目录 防火墙基本概念 Iptables讲解 Iptables表 Iptables规则链 Iptables控制类型 Iptables命令配置 firewalld讲解 Firewalld区域概念 Firewalld两种配置方法 firewall-cmd命令行基础配置 firewall-config图形化配置 防火墙基本概念 防火墙就是根据系统管理员设定的…

UI设计师如何应对面试 哪些细节问题不可忽视

UI设计师如何应对面试?哪些细节问题不可忽视?有互联网的地方就会有UI设计师,越来越多的人转行从事UI设计加剧了求职竞争,如何才能脱颖而出获得高薪呢?专业技能很重要,面试技巧也不可忽视,下面就给大家分享…

UI设计师如何脱颖而出 面试过程中要注意什么

UI设计师如何脱颖而出?面试过程中要注意什么?有互联网的地方就会有UI设计师,越来越多的人转行从事UI设计加剧了求职竞争。专业技能很重要,面试技巧也不可忽视,下面就给大家分享一些UI设计师在面试过程中不可忽视的四个…

UI设计师这些面试技巧你知道吗?

随着互联网产业的飞速发展,UI设计师岗位缺口不断攀升,有意入行的人群也不在少数。那么学成之后,自然而然要进入到面试环节,为了提前做好准备,千锋今天向您分享几招UI设计师的面试技巧。 ​ 通顺的逻辑思维和表达能力 …

企业招聘UI设计常见面试题分享

对于想要加入互联网行业却又不愿意敲代码的人来说,UI设计是一个非常不错的选择。随着用户体验度即审美要求的提升,UI设计师地位进一步提升,很多企业都乐意薪资较高的招聘专业的设计人才。下面就给大家详细介绍一下。 目前UI设计热度呈现持续上…

2018年UI设计师经典面试题及答案总结

2018年马上就要结束了,给大家总结了一些UI设计出现比较多的面试题,很多时候我们有足够的技术,但是可能就断送在了面试上,大家如果去面试,可以多了解看看以下的这些UI设计师经典面试题及答案,毕竟知己知彼才能更好的发挥自己的特长,提高面试的机率嘛。 1、推动一个项目的…

android ui设计 面试问题,2019新版UI设计面试题汇总附答案

原标题:2019新版UI设计面试题汇总附答案 问题一、Android手机的常用设计尺寸有_________.怎么适配ios和安卓。 答案:安卓320 X 480是常规模拟器、但现在的开发都是用360x640做一倍率。480 X 800(1.5倍率)、720 X 1280(2倍率)、1920*1080(3倍率) ios用ske…

2019UI设计岗位最常见的面试题

UI作为门槛较低的互联网职业,每天都有很多人涌进UI设计行业,其实UI设计行业结构是和传统行业是一样的,不缺新人,或者水平一般的人,但是要成为技术娴熟却不容易。 而且并不是说你会了个工作流程,就很牛了。…