# data[].attributes.body
Dividen los problemas en partes más pequeñas y manejables.

# data[].attributes.body
Gestionar el cambio de manera eficiente, con un enfoque en las dependencias entre componentes y la arquitectura.

# data[].attributes.body
Unificación de Datos y Funciones: Los objetos de software integran datos y funciones para mejorar la cohesión.

• Encapsulamiento: Protege al cliente de los detalles de implementación, promoviendo la dependencia de las especificaciones de los objetos en lugar de sus implementaciones.

• Identidad: Cada objeto de componente tiene una identidad única.

# data[].attributes.headline
Capas de una arquitectura de componentes

# data[].attributes.subject
Capas de una arquitectura de componentes

# data[].attributes.body
Especificación del Componente, Implementación del Componente, Componente Instalado y Objeto de Componente

# data[].attributes.body
Especificación de contratos El diseño de un buen software basado en componentes puede verse, a nivel macroscópico o arquitectónico, como un problema de gestión de dependencias.

Contratos de Uso: Acuerdos entre la interfaz de un componente y sus clientes.

• Contratos de Realización: Acuerdos entre la especificación de un componente y su implementación.

# data[].attributes.body
• Proceso de Gestión: Planifica el trabajo, asigna recursos, monitorea el progreso y gestiona riesgos.

• Proceso de Desarrollo: Crea el software a partir de los requisitos.

# data[].attributes.headline
Evolución de los artefactos de desarrollo: 

# data[].attributes.subject
Evolución de los artefactos de desarrollo: 

# data[].attributes.body
Actualmente, el proceso de desarrollo debe subordinarse al de gestión debido a la importancia de controlar riesgos.

• Se favorece un enfoque evolutivo de entregas iterativas e incrementales para adaptarse a cambios y refinar el producto.

# data[].attributes.body
Requisitos: Genera el modelo de concepto de negocio y el modelo de casos de uso.

• Especificación: Se centra en la identificación de componentes, interacción y especificación detallada.

• Provisión: Asegura que los componentes necesarios estén disponibles (construcción, compra, reutilización).

• Montaje: Integra los componentes, la interfaz de usuario y la lógica de la aplicación para formar una aplicación completa.

# data[].attributes.body
Identificación de Componentes: Utiliza el modelo de concepto de negocio y el modelo de casos de uso para definir un conjunto inicial de interfaces y la arquitectura de componentes.

• Interacción de Componentes: Examina cómo se logran las operaciones del sistema y refina las responsabilidades y la agrupación de interfaces.

• Especificación de Componentes: Define detalladamente las operaciones, modelos de información de interfaces, pre y postcondiciones, y reglas de negocio.

# data[].attributes.body
La iteración y la entrega evolutiva permiten adaptarse a cambios en los requisitos y gestionan el riesgo de manera eficiente.

• Los componentes se diseñan para facilitar cambios a corto y largo plazo mediante la encapsulación y el uso de múltiples interfaces.

# data[].attributes.body
• Modelo de Concepto de Negocio: Define los términos clave para un entendimiento común en el negocio.

• Modelo de Casos de Uso: Especifica las interacciones entre usuarios y el sistema, delimitando la funcionalidad.

• Especificaciones de Componentes: Detallan las interfaces, operaciones y cómo interactúan las especificaciones de los componentes.

• Arquitectura de Componentes: Describe cómo se ensamblan las especificaciones de componentes en una configuración que cumple con los requisitos.