Arquitectura de Software
Prof. Viviana AlvarezAgosto 2011
Arquitectura - Definición
El proceso de desarrollo basado en la arquitectura
Evaluación de la arquitectura
Lenguajes para representación de la arquitectura
MDA una propuesta de arquitectura alrededor de los modelos
Temario
Orígenes
“La arquitectura descansa en tres principios: la Belleza(Venustas), la Firmeza (Firmitas) y la Utilidad (Utilitas)”
Templo de Artemisa en EfesoSiglo IV a de C.
127 columnas de 20 metros de altura
El coloso de rodas277 a de C.
32 metros de alturaPlacas de bronce sobre armazón de hierro
Orígenes (2)
• “Es arquitecto aquel que con método y procedimiento seguro y perfecto sepa proyectar racionalmente y realizar en la práctica obras que se acomoden perfectamente a las más importantes
necesidades humanas.“
El faro de Alejandría. Año 280 a de C.Altura 120 metros. Cima equipada con espejos metálicos
que reflejaban la luz del sol; y por las noches,a falta de luz, se enciende una hoguera.
Las pirámides de Egipto. Año 2750 a de C.
146.59 m de altura, 230 m de anchoAlineadas hacia el norte con una inclinación de
51 grados
Orígenes (3)
“Una arquitectura debe incorporar la unidad difícil de lainclusión en vez de la unidad fácil de la exclusión “
Evolución de la Ingeniería Civil- Imitación de esfuerzos previos
- Aprendiendo de las fallas- Integración de otras fuerzas
- Experimentación
Es lo mismo construir esto???
Que construir esto???
Conocen la Mansión Winchester
Conclusión
Lo que ocurre, finalmente, es que las aplicaciones desoftware, con el tiempo, terminan convirtiéndose en unapila de trozos, o bien, un laberinto como la mansiónWinchester
Programar sin una Arquitectura en mente, es como exploraruna mina solo con una linterna , no sabes dónde estás, dóndehas estado, ni hacia donde vas
Arquitectura representa la base del sistema de software ydebe ser construido, pensando en satisfacer las necesidadesactuales, y debe proporcionar las capacidades necesarias parapermitir su mantenimiento y evolución de acuerdo al negocio.
Qué es una arquitectura DE software?
La arquitectura del software define el sistema en términosde sus componentes computacionales y de las relacionesentre ellos (Shaw & Garlan, 1996)
“Estructura o estructuras del sistema que comprendecomponentes de software, propiedades visibles de esoscomponentes y las relaciones entre ellos.”
Arquitectura: Pensar primero en lo importante
Diseño de alto nivel versus diseño detallado (David Budgen)
Esqueleto versus Carne y Músculos (Rational Unify Process)
Arquitectura vs. complejidad
En la medida que la complejidad de los sistemas crece, los algoritmos y las estructuras de datos dejan de convertirseen el mayor problema.
El diseño y especificación de la estructura general del sistema emerge como un nuevo tipo de problema: el diseñoa nivel de arquitectura.
En aplicaciones OO las clases representan unidades de granularidad muy fina; en sistemas grandes se requierehablar de unidades que represente una funcionalidad mayor (módulos / subsistemas / componentes de negocio)
Arquitectura vs. complejidad (2)
Fuente: Architecture as a Business Competency. Bredemeyer Consulting
Elementos relacionados con la arquitectura
Cualidades
de la Arquitectura
Procesos
Representación
de la arquitectura
Qué? Por qué?
Para qué?Quién?
Características
Del Sistema
ArquitecturaRequerimientos
S/W
Atributos de
Calidad del sistema
Satisface
Restringe
Organización
Arquitecto
Habilidades
Stakeholders
Define roles
Produce
Analiza
DefinesTecnología
Fuente: Rational Software
Ciclo de Influencias
El ciclo ABC (Arquitecture Business Cycle)
Influencias de los participantes
arquitecto
gerente del
proyecto
líder de
mercadeo
usuario
final
soporte
aplicativo
cliente
Bajo costo
Rendimiento
del equipo
Corto tiempo en mercado
Bajo costo; ventajas con
productos similares
Funcionalidad
Rendimiento
Seguridad
usabilidad
modificabilidad
Bajo costo y tiempo
de entrega, que no cambie
muy a menudo