El documento describe el desarrollo de software basado en componentes, el cual implica definir, implementar e integrar sistemas débilmente acoplados mediante la reutilización de módulos de software. Este paradigma surgió a finales de los 90 y ofrece ventajas como mayor reutilización de código, pruebas y mantenimiento más simples, y mejor calidad. Un componente es una unidad de software independiente que puede componerse de otros componentes y utilizarse para crear sistemas.