Hoy día, el reuso de sistemas de aplicaciones es a menudo la técnica más efectiva. Implica la reutilización de activos de grano grueso que pueden ser configurados para crear un nuevo sistema.
En general, existen dos tipos de reuso de aplicaciones: la creación de nuevos sistemas integrando productos (componentes, servicios) existentes y el desarrollo de líneas de productos. Para desarrollar sistemas utilizando productos se tienen que realizar varias elecciones de diseño; por ejemplo, ¿qué productos ofrecen la funcionalidad adecuada? ¿cómo se intercambian los datos? ¿qué características de un producto se usarán realmente? También surgen diversos problemas a la hora de integrar esos productos; por ejemplo, problemas con la interoperabilidad, control sobre la evolución del sistema o soporte de los vendedores. Por otra parte, las líneas de producto software se diseñan para ser reconfiguradas. Esa reconfiguración puede implicar añadir o eliminar componentes del sistema, definir parámetros y restricciones, e incluir conocimiento de los procesos de negocios. Estos problemas han sido abordados desde diversas perspectivas, incorporando por ejemplo técnicas y herramientas basadas en conocimiento que exploran repositorios para reuso. Sin embargo, la reutilización efectiva de activos (recursos y servicios) entre las organizaciones requiere tratamientos que son materia de investigación en ámbitos complejos.