最近,人們開始關注於通過有計畫地集成現有的軟體部分來進行軟體開發。這通常稱為基於構件的開發(Component-Based Development, CBD)或基於構件的軟體工程(Component-Based Software Engineering, CBSE),而其中的各個部分稱為構件,在此我們通稱為面向構件。
關於到底什麼是構件、什麼不是構件的問題有很多不同意見,但無論如何,CBD的基本是從定義良好、獨立開發的部分來建立系統。對於CBD而言,構件遠非模組化編程方法中的子程式、面向對象方法中的對象或類、或系統模型中的包。在CBD中,構件的概念既包含了這些思想又擴展了它們。構件是設計、實現以及維護基於構件的系統的基礎。現在我們將採用一個相當廣泛、全面的構件定義:
構件是一個獨立發布的功能部分,可以通過它的接口訪問它的服務。
這個定義強調了構件的很多重要方面。第一,它將構件定義為一個可交付的單元。第二,構件會提供一些有用的功能,這些功能集合到一起會滿足一些需求。這些功能的設計符合一些設計準則。第三,構件通過接口提供服務。