A maioria dos modelos em MDA são essencialmente representações de uma arquitetura de software. Em um sentido amplo, os modelos de domínio e modelos de sistema são abstrações e diferentes pontos de vista dos modelos de arquitetura de software. Modelos de geração de código possuem as características dos modelos de arquitetura, juntamente com detalhes de implementação. O código pode de fato ser usado em ferramentas de engenharia reversa para reconstruir a arquitetura da aplicação.
A arquitetura de software pode ser descrita em uma linguagem de descrição de arquitetura (ADL). Houve muitas ADLs desenvolvidas nos últimos anos, cada um com sua expressividade focada em diferentes aspectos dos sistemas de software e domínios de aplicação. Muitos recursos úteis de uma ADL foram absorvidos pela UML, ou especificados como extensões da UML. Assim, a UML é usada em MDA como um ADL.