基于组件的软件工程

UML 2.0中表达的两个组件的示例。负责促进客户订单的结帐组件要求卡处理组件收取客户的信用/借记卡(后者提供的功能)。

基于组件的软件工程CBSE ),也称为基于组件的开发CBD ),是一种软件工程风格,旨在用松散耦合的模块化组件构建软件。它强调了软件系统不同部分之间关注点的分离

组件的定义和特征

单个软件组件是一个软件包Web服务Web资源或封装一组相关功能或数据的模块

组件通过接口相互通信。每个组件提供一个接口(称为提供的接口),其他组件可以通过该接口使用它。当组件使用另一个组件的接口时,该接口称为使用的接口。

在本文的UML插图中,规定界面由Lollipop-Symbols表示,而使用的接口则由开放的插座符号表示。

几个软件组件的简单示例 - 在UML 2.0中代表的假设假期保留系统中为图中。

必须可以替代组件,这意味着必须由具有相同接口的另一个可以替换一个,而不会破坏系统的其余部分。

组件应重复使用

当软件组件直接与用户交互时,应考虑基于组件的可用性测试

组件应该是:

  • 充分记录
  • 经过彻底测试
    • 强大 - 全面输入效率检查
    • 能够传递适当的错误消息或返回代码

历史

在1968年在德国加米奇(Garmisch)北约软件工程会议上,道格拉斯·麦克罗伊(Douglas McIrroy)在1968年的北约软件工程会议上的地址首先是由预制组件建造的,该想法首先是由道格拉斯·麦克罗伊( Douglas McIrroy)地址引起的。会议着手应对所谓的软件危机。 McIlroy随后将管道和过滤器纳入UNIX操作系统是该想法的基础架构的首次实施。

StepstoneBr​​ad Cox在很大程度上定义了软件组件的现代概念。他称他们为软件IC ,并着手通过发明Objective-C编程语言来为这些组件创建基础架构和市场。 (他在他的书面向对象的编程中总结了这一观点 - 1986年的进化方法。)

软件组件在两种不同的上下文和两种中使用:i)使用组件作为零件来构建单个可执行文件,或ii)每个可执行文件在分布式环境中被视为一个组件,其中组件使用Internet或Interanet彼此协作IPC的通信协议(INTER PROCESS CONBLOCATIONS)。以上属于以前的种类,而下面属于以后的种类。

IBM在1990年代初以他们的系统对像模型(SOM)领导了这条路。作为反应, Microsoft为使用对象链接和嵌入(OLE)和组件对像模型(COM)的组件软件实际部署铺平了道路。截至2010年,许多成功的软件组件模型存在。

建筑学

运行多个软件组件的计算机通常称为应用程序服务器。应用服务器和软件组件的这种组合通常称为分布式计算。 EG,财务应用程序或业务软件中的典型现实应用程序。

组件模型

组件模型是组件属性的规范。

对现有组件模型进行了分类。组件模型的示例是:企业Javabeans (EJB)模型,组件对像模型(COM)模型, .NET模型,X-MAN组件模型和Common Object Repption请求代理体系结构(CORBA)组件模型。

技术

也可以看看