Este documento describe los conceptos fundamentales del desarrollo de software basado en componentes. Explica que un componente de software es una unidad reutilizable que ofrece servicios a través de una interfaz bien definida y oculta su implementación. También describe que las interfaces definen los servicios que un componente puede realizar y que los componentes deben ser autocontenidos, independientes de plataformas y lenguajes de programación, e identificables para facilitar su reutilización. Finalmente, señala que el ensamblaje de componentes requiere el uso de modelos