Lamento diferir: UML se puede usar para arquitectura de aplicaciones, pero se usa más a menudo para arquitectura técnica (frameworks, diagramas de clases o de secuencia, ...), porque aquí es donde esos diagramas se pueden mantener sincronizados con el desarrollo .
La Arquitectura de la Aplicación ocurre cuando usted toma algunas especificaciones funcionales (que describen la naturaleza y los flujos de operaciones sin hacer suposiciones sobre una implementación futura) y las transforma en especificaciones técnicas.
Esas especificaciones representan las aplicaciones que necesita para implementar algunas necesidades comerciales y funcionales.
Por lo tanto, si necesita procesar varias carteras financieras grandes (especificación funcional), puede determinar que necesita dividir esa especificación grande en:
- un despachador para asignar esos pesados cálculos a diferentes servidores
- un lanzador para asegurarse de que todos los servidores de cálculo estén en funcionamiento antes de comenzar a procesar esas carteras.
- una GUI para poder mostrar lo que está sucediendo.
- un componente "común" para desarrollar los algoritmos específicos del portafolio, independientemente del resto de la arquitectura de la aplicación, para facilitar las pruebas unitarias, pero también algunas pruebas funcionales y de regresión.
Entonces, básicamente, pensar en la arquitectura de la aplicación es decidir qué "grupo de archivos" necesitas desarrollar de manera coherente (no puedes desarrollar en el mismo grupo de archivos un lanzador, una GUI, un despachador, ... no podría evolucionar al mismo ritmo)
Cuando la arquitectura de una aplicación está bien definida, cada uno de sus componentes suele ser un buen candidato para un componente de configuración , es decir, un grupo de archivos que se pueden versionar como un todo en un VCS (Sistema de control de versiones), lo que significa que todos sus archivos serán etiquetados juntos cada vez que necesite grabar una instantánea de esa aplicación (nuevamente, sería difícil etiquetar todo su sistema, cada una de sus aplicaciones no puede estar en un estado estable al mismo tiempo)