Arquitecturas Flashcards
¿Qué es la arquitectura de software?
La arquitectura de software son aquellas decisiones que son importantes y difíciles de cambiar.
Las decisiones de arquitectura, ¿qué abordan? ¿Qué es importante?
- Abordan requisitos significativos desde el punto de vista arquitectónico, se perciben como difíciles de hacer y/o costosos de cambiar.
- Son importantes de guardarlas y conocerlas. Conocer el motivo por el cual se tomó dicha decisión en la arquitectura o diseño.
Qué es el Modelo de Vistas 4+1 de Kruchten
Es un único documento o diagrama que explica la arquitectura propuesta para resolver cierto problema, incluyendo a los múltiples involucrados junto con sus distintos intereses y conocimientos.
¿Qué tipo de vistas se tienen?
Se tienen 4 vistas en las esquinas y una en el centro:
~~~
LV ▹ DV
▿ e ▿
PrV ▹ PhV
~~~
Vista Lógica
Principalmente los requisitos funcionales –lo que el
sistema debe brindar en términos de servicios a sus usuarios.
Se aplican los principios de abstracción, encapsulamiento y herencia.
* Diagrama de secuencias
* Diagrama de clases
* UML
Vista de procesos
Toma en cuenta algunos requisitos no funcionales tales
como el rendimiento y la disponibilidad.
Se enfoca en concurrencia y distribución, integridad del sistema, de tolerancia a fallas.
* Diagramas de secuencias.
Vista de Desarrollo (o de Componentes)
Se centra en la organización real de los módulos de software en el ambiente de desarrollo del software. n y elementos comunes, restricciones, etc.
Se tienen 3 reglas: Partitioning, Grouping y Visibility. Tiene en cuenta los requisitos internos relativos a la facilidad de desarrollo, administración del software, reutilización y elementos comunes, restricciones, etc.
* Se puede usar un diagrama de referencias o clases
Vista Física
Es la asignación del software al hardware.
* Toma en cuenta primeramente los requisitos no funcionales del sistema, tales como la disponibilidad, confiabilidad (tolerancia a fallas), rendimiento (throughput) y escalabilidad.
* El software se ejecuta sobre una red de computadoras o nodos de procesamiento. Se identifican elementos variados (redes, procesos, tareas, objetos) y se mapean sobre los nodos.
* Se busca que la relación del software en los nodos debe ser altamente flexible y tener un impacto mínimo sobre el código fuente.
Vista de Escenarios
La vista de escenarios es poner todo junto:
- Los elementos de las cuatro vistas trabajand conjuntamente en forma natural mediante el uso de un conjunto pequeño de escenarios relevantes.
- Los escenarios son de alguna manera una abstracción de los requisitos más importantes.
- Sirve a dos propósitos principales:
- Como una guía para descubrir elementos arquitectónicos durante el diseño de arquitectura
- Como un rol de validación e ilustración después de completar el diseño de arquitectura; y como punto de partida de las pruebas de un prototipo de la arquitectura.