软件组件

软件组件是軟體裡封裝特定功能（关注点分离）的模組單位。軟體組件讓程式設計者可以有可靠的組件來組合軟體，不需對每一個層面自行撰寫源代码。這可以讓軟體實現比較接近工廠組裝，而不是客製化的製造。

屬性
理想上軟體組件要有可重用性和。

以下也是一些模組的理想屬性：
 內聚性  封裝相關子程序 
 可重用性
 穩健性
 可取代性  可以用另一個相同介面的組件取代
 具有软件文档
 可測試
第三方組件
有些組件是由開發軟體系統的公司，甚至是同一組織所開發，有些則是，由其他單位開發，要整合到系統中。 
實務和開發模式
基于组件的软件工程
大型系統中，基于组件的软件工程會鼓勵嚴謹的流程，以管理。

-==框架===
有些組件符合特定框架技術，因此可用一些已知的方式來存取。這些框架包括：CORBA、组件对象模型（COM）, EJB（|Enterprise JavaBean）和.NET框架等。
建模


組件設計常會以可視化的方式建模。在统一建模语言（UML）2.0裡，組件會用長方形表示，用棒棒糖（空心圓圈）表示提供的介面，而插座（包圍著空心圓圈的半圓）表示介面的消費。
歷史
軟體組件可重用性的概念是由道格拉斯·麥克羅伊在1968年在的簡報中提出的（此研討會的一個目的是要解決當時所謂的[[软件危机]）。麥克羅伊在1970年代將此技術加上管道特徵到UNIX作業系統中。

布萊德·考克斯在1980年代重新定義了軟體組件的概念。他想要創建可復用第三方組件的基礎架構和市場，因此發明了Objective-C程式語言。

IBM在1990年代初期導入了。

微软在1990年代初期導入了组件对象模型（COM），後來也建構了許多特定領域的組件技術，包括Distributed COM （DCOM）、对象链接与嵌入（OLE）和ActiveX。

参考資料

Category:软件工程
Category:软件架构
Category:软件开发