[架构设计] 组件和模块的区别

组件(Component)和模块(Module)又是一对容易混淆的名词,也常常被用来相互替换。两者是否有差异往往取决专业背景、所在领域、以及视角。个人总结,从设计上来看,组件强调复用,模块强调职责(内聚、分离),或者说组件是达到可复用要求的模块。

Module, 中文为模块或模组。它的核心意义是分离职责,属于代码级模块化的产出。本身是一组具有一定内聚性代码的组合,职责明确。对外的接口可以是松散的,也可以是集中的。SEI的定义如下:
  An implementation unit of software that provides a coherent set of responsibilities.
它以问题分解的形式,来解决软件设计问题。它更强调一个内聚的概念,形式上可以是Java中的包,也可以是一个源代码目录。

Component,中文称为组件,或者构件。使用非常比较广泛,它的核心意义在于复用,相对模块,对于依赖性有更高的要求。
我大概整理了一下,两个定义 (参考Component based software programming):
  • 可以复用的模块,概念上与模基本等同,只是明显有依赖性的要求。(最早提出时概念)。
  • Component-Based Software Development中提倡的组件定义如下(Component Software):
除了完成某个特定功能外,还要具备如下条件的代码组合:
      • 符合特定的接口要求(交互的要求)
      • 具有明确的上下文依赖 (复用的要求)
它可以独立发布(二进制或源代码的形式),也可以进行组合。这样软件开发就变成了组件的组装了。

         和OOP中的Objects相比,一个类也可以视为一个组件,但更多的情况下,组件提供了更为高层的系统视角。Component如同一片树林,Object只是树。

         Eclipse中的Plugin和COM(Component Object Model)就是Component Software的典型代表。


两者的关系取决于软件本身和视角。Eclipse框架下的一个插件可能包含若干个模块,因为从Eclipse的角度来看,每个Plugin是用来复用的。
而一个应用的模块(如GUI)下也可能使用了多个组件,因为复用的是每个控件。

另外也有人从发布形式上来区分,其实也不尽然。一个模组可能以静态库、动态库存在(skia被应用到一个应用中的场景),一个组件也可能以源码的形式存在(Chromium中的Browser Component)。发布形式其实是取决于产品需求的,不可能准确的区分出两个设计上的概念。

欢迎一起讨论!

参考:

转载请注明出处: http://blog.csdn.net/horkychen
  • 5
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
FPGA(Field-Programmable Gate Array)模块架构设计涉及到对FPGA的功能分区、模块划分和连接方式等方面的设计。下面是一些常见的FPGA模块架构设计考虑的要点: 1. 功能分区:首先需要根据设计需求将FPGA的资源进行功能分区,将不同的功能模块分配到不同的区域。这样可以提高设计的灵活性和可维护性。 2. 模块划分:根据设计需求,将整个系统划分为多个功能模块。每个功能模块可以包括逻辑电路、存储器、计算单元等组件模块划分要考虑功能独立性和复用性,以便在不同的应用中能够灵活地调整和重用。 3. 连接方式:在模块划分的基础上,需要确定不同模块之间的连接方式。FPGA提供了丰富的连接资源,包括片内总线、全局信号线、局部信号线等。合理利用这些连接资源,可以实现模块之间的数据传输和通信。 4. 时序约束:在FPGA设计中,时序约束是非常重要的一部分。时序约束用于定义信号在不同模块之间的传播延迟和时钟要求。合理设置时序约束可以避免时序违规和时钟冲突,提高设计的可靠性和性能。 5. 异步接口处理:FPGA模块架构设计中还需要考虑异步接口处理。异步接口在不同模块之间传递数据时,由于时钟信号的不同步,可能会产生数据错误和时序问题。因此,需要采取适当的异步接口设计和数据处理机制来解决这些问题。 以上是FPGA模块架构设计的一些要点,具体的设计方法和技巧还需要根据实际的应用需求和设备限制来进行调整和优

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值