当前位置: 首页 > news >正文

系统架构的发展历程之模块化与组件化

模块化开发方法

模块化开发方法是指把一个待开发的软件分解成若干个小的而且简单的部分,采用对复杂事物分而治之的经典原则。模块化开发方法涉及的主要问题是模块设计的规则,即系统如何分解成模块。而每一模块都可独立开发与测试,最后再组装成一个完整软件。对一个规约进行分解,以得到模块系统结构的方法有数据结构设计法、功能分解法、数据流设计和面向对象的设计等。将系统分解成模块时,应该遵循以下规则:
(1)最高模块内聚。也就是在一个模块内部的元素最大限度地关联,只实现一种功能的模块是高内聚的,具有三种以上功能的模块则是低内聚的。
(2)最低耦合。也就是不同模块之间的关系尽可能弱,以利于软件的升级和扩展。
(3)模块大小适度。颗粒过大会造成模块内部维护困难,而颗粒过小又会导致模块间的耦合增加。
(4)模块调用链的深度(嵌套层次)不可过多。
(5)接口简单、精炼(扇入扇出数不宜太大),具有信息隐蔽能力。
(6)尽可能地复用已有模块。

软件组件化技术

组件具有可组装性和可插拔性。每个组件的运行仅依赖于平台或者容器,组件与组件之间不存在直接的耦合关系。同时,组件和组件之间又并非绝对独立。组件经过组装后可以与其他组件进行业务上的交互。组件化开发并不等同于模块化开发。模块化开发只是在逻辑上做了切分,物理上(代码)通常并没有真正意义上的隔离。

组件化也不等同于应用集成,应用集成是将一些基于不同平台或不同方案的应用软件有机地集成到一个无缝的、并列的、易于访问的单一系统中,以建立一个统一的综合应用。组件化比模块化更独立,但比应用集成结合得更加紧密。

over~~

http://www.lryc.cn/news/432869.html

相关文章:

  • 基因组学中的深度学习
  • 解决老师询问最高分数问题的编程方案
  • com.baomidou.mybatisplus.annotation.DbType 无法引入
  • 从零开始学习JVM(七)- StringTable字符串常量池
  • 数据库课程设计mysql
  • AI学习指南深度学习篇-带动量的随机梯度下降法的基本原理
  • 点餐小程序实战教程03创建应用
  • 鸿蒙自动化发布测试版本app
  • 力扣9.7
  • GPU 带宽功耗优化
  • Linux Centos 7网络配置
  • 第三天旅游线路规划
  • C++第四十七弹---深入理解异常机制:try, catch, throw全面解析
  • go 和 java 技术选型思考
  • 传统CV算法——边缘算子与图像金字塔算法介绍
  • 图像去噪算法性能比较与分析
  • Vision Transformer(ViT)模型原理及PyTorch逐行实现
  • 828华为云征文 | Flexus X实例CPU、内存及磁盘性能实测与分析
  • FreeRTOS学习笔记(六)队列
  • 【Python篇】PyQt5 超详细教程——由入门到精通(中篇一)
  • LinuxQt下的一些坑之一
  • Statement batch
  • PPP 、PPPoE 浅析和配置示例
  • 【Python机器学习】词向量推理——词向量
  • Python 语法糖:让编程更简单(续二)
  • 6 - Shell编程之sed与awk编辑器
  • 什么是XML文件,以及如何打开和转换为其他文件格式
  • 海外直播对网速、带宽、安全的要求
  • UWB定位室外基站
  • 高斯平面直角坐标讲解,以及地理坐标转换高斯平面直角坐标