基于组件的软件设计

Posted 姚家湾

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于组件的软件设计相关的知识,希望对你有一定的参考价值。

        世界是复杂的,值得幸运的是,复杂的世界是由小生大,由简入繁。人类研究复杂世界的方法是将复杂的事物逐一分解成已经了解的简单事物,并且研究这些简单事物的相互作用产生的系统特性。人类认识世界的方式如此,在此基础上构建的知识体系如此,而人类发明和构建工具的方式同样如此。在现代工程中,这种方式被称为基于模型的设计(Model Based Design)或者模块化设计(modularization Design)。模型是心智性的,模块是事物性的。

    现代社会的产品大多数是采用基于组件的方法设计和制造出来的。以电子产品为例,各种集成电路构成印刷电路板,多块印刷电路板构成机箱,多个机箱构成机柜。

          在软件领域,为了构建复杂的软件系统,同样导入了各种模块化设计方法, 基于组件(Component)的软件设计就是其中一种。它是在面向对象设计原则之上更高级别的抽象方法。

基于组件的软件设计

  • 基于组件的体系结构是软件工程的一个分支,它提供了比面向对象设计原则更高级别的抽象。
  • 基于组件的体系结构不关注通信协议和共享状态等问题。
  • 此体系结构侧重于将设计分解为包含事件、方法和属性的逻辑组件。
  • 基于组件的体系结构将问题划分为子问题和与组件分区关联的每个问题。
  • 它提供了比面向对象设计原则更高级别的抽象。
  • 它不关注通信协议和共享状态等问题。

基于组件的设计的优点

可扩展性

 可以从现有组件扩展组件以提供新行为。

可替换性

很容易地用其他类似组件代替。

封装

组件公开了使用方法,隐藏了内部的细节。

可重用

在不同应用中的不同场景中重复使用。

独立性

 对其它组件的依赖性小,可以由独立的专业化机构或者个人设计和制造。

不依赖特定场合

       在不同的环境和上下文中运行。特定信息(如状态数据)应传递给组件,而不是包含在组件中或由组件访问。


基于组件的架构的优势

  • 基于组件的架构降低了开发和维护成本。
  • 它是可重用的,这意味着可用于可重用的组件,以将开发和维护成本分散到多个应用程序中。
  • 它通过重用提高了整个系统的可靠性
  • 维护和更新实现很容易,而不会影响系统的其余部分。
  • 它通过使用组件容器及其服务来修改复杂性
  • 如果有新的兼容版本可用,则可以轻松替换现有版本,而不会对其他组件产生任何影响。
  • 易于部署 - 随着新的兼容版本的出现,可以更轻松地替换现有版本,而不会影响其他组件或整个系统。
  • 降低成本 - 使用第三方组件可以分散开发和维护成本。
  • 易于开发 - 组件实现众所周知的接口以提供定义的功能,允许在不影响系统其他部分的情况下进行开发。
  • 可重用 - 使用可重用组件意味着它们可用于将开发和维护成本分摊到多个应用程序或系统中。
  • 修改技术复杂性 - 组件通过使用组件容器及其服务来修改复杂性。
  • 可靠性 - 由于每个单独组件的可靠性通过重用提高了整个系统的可靠性,因此整体系统的可靠性得到了提高。
  • 系统维护和演变 - 易于更改和更新实现,而不会影响系统的其余部分。
  • 独立 - 组件的独立性和灵活的连接性。由不同集团并行独立开发组件。软件开发和未来软件开发的生产力。

组件软件设计方法

整体软件转化为组件

        使用组件将整体式架构转变为软件构建块。这些组件可以组合、重用和版本控制。

构建组件仓库

购买不构建

        首选方法是使用现成的组件创建一个系统,并采用购买不构建的心态。仅在必要时构建自定义组件,而不是从头开始构建整个系统。

团队自治

组件团队在没有外部帮助或干扰的情况下创建组件。在这种情况下,组件是独立的,但不会影响系统。这将导致组建自治团队,因为他们有很大的自由、灵活性和问责制来决定如何保持项目顺利进行。

组件级设计

        使用组件进行系统应用设计时,可以使用图形,表格来描述组件的属性和相互关系。从而实现图形化编程,组态编程和少代码编程方法。数据结构、接口和算法的设计应符合既定的准则, 帮助我们避免引入错误。

        下面是IEC61499 基于功能块网络的图形化设计图。功能块是一种软件组件。它们使用类似硬件芯片的图形化表示。

 

组件级应用的运行

  1. 1 直接编译成二进制程序执行

2 运行时(runTime)

 由组件运行时程序解析组件网络执行。在执行过程中,组件通常以动态库的方式被调用。

3  少代码方式 

使用少量代码调用功能块

应用场合

自动化领域的梯形图,功能块,IEC61499 功能块本质上都是基于组件设计的图形化表示。

在分布式异构计算系统中,使用组件为基础的设计。

Web 前端设计中导入了基于组件的设计方法。

结束语

  • 基于组件的设计是一种软件构建的方法。
  • 组件级别的应用更适合图形化,分层次表达。
  • 基于组件设计是基于模型设计的具体实现。基于模型设计是自顶向下的。而基于组件设计是自底向上的。
  • 工业领域的梯形图,功能块,IEC61499 功能块都是基于组件设计的一种方式。基于组件设计方法适用于工业控制,仿真,数字软件等场合。

以上是关于基于组件的软件设计的主要内容,如果未能解决你的问题,请参考以下文章

[设计模式] 设计模式课程(二十)--命令模式

基于FPGA的sigma delta ADC软件无线电设计

基于Android家庭理财系统手机软件设计

《软件测试设计》第3章——基于规格说明的测试

基于8051单片机实现电子时钟+数字秒表设计

与基于角色和权限呈现组件相关的设计模式或架构?