Generadores de programa
Frameworks de aplicación
Reutilización de productos COTS
Líneas de producto de software
Encadenamiento de sistemas heredados
Librerías de programa
Desarrollo basado en componentes
Patrones de diseño
Desarrollo de software orientado a aspectos
Patrones arquitectónicos
Sistemas orientados a servicios
Ingeniería dirigida por modelo
Aplicaciones verticales configurables
Sistemas ERP
Las abstracciones genéricas que ocurren a través de las aplicaciones se representan como patrones de diseño que muestran objetos e interacciones abstractas y concretas.
Un tipo de aplicación se generaliza en torno a una arquitectura común, de forma que pueda adoptarse para diferentes clientes.
Se diseñan sistemas genéricos de manera que pueden configurarse a las necesidades específicas de clientes del sistema
Se usan arquitecturas de software estándar que apoyan tipos comunes de sistemas de aplicación, tales como la base de las aplicaciones.
Se desarrollan sistemas mediante la vinculación de servicios compartidos, que pueden proporcionarse externamente. Se tratan en el capítulo 19.
Un sistema generador incrusta conocimiento de un tipo de aplicación y se usa para generar sistemas en dicho dominio a partir de un modelo de sistema suministrado por el usuario.
Los sistemas a gran escala que encapsulan funcionalidad empresarial genérica y reglas se configuran para una organización.
El software se representa como modelos de dominio y modelos independientes de implementación y se genera un código a partir de dichos modelos.
Se desarrollan sistemas al integrar componentes (colecciones de objetos) que se conforman a estándares de modelo de componentes.
Librerías de clase y función que implementan abstracciones de uso común están disponibles para reutilizarlos.
Los sistemas heredados se “enlazan” al definir un conjunto de interfaces y proporcionar acceso a estos sistemas heredados a través de dichas interfaces.
Colecciones de clases abstractas y concretas adoptadas y extendidas para crear sistemas de aplicación.
Los sistemas se desarrollen al configurar e integrar sistemas de aplicación existentes.
Cuando se compila el programa, los componentes compartidos se hilvanan dentro de una aplicación en logares diferentes.