La ingeniería de dominio captura conocimiento sobre un dominio para crear activos de software reutilizables. Sus productos incluyen modelos del dominio, requisitos y arquitecturas que definen componentes comunes, opcionales y variantes. Las actividades principales son analizar aspectos comunes y diseñar una arquitectura de dominio, luego implementar y evolucionar los activos de software.