Clase4 IntroduccionArquitecturas
Primer Cuatrimestre de 2008
Clase 4: Introducción a las arquitecturas de software. Estilos arquitectónicos
Buenos Aires, 3 de Abril de 2008
© Cátedra de Ingeniería de Software II – FCEN – UBA, 2008
Analizando dibujitos…
2
© Cátedra de Ingeniería de Software II – FCEN – UBA, 2008
Banco
© Cátedra de Ingeniería de Software II – FCEN – UBA, 2008
© Cátedrade Ingeniería de Software II – FCEN – UBA, 2008
Marcapasos
© Cátedra de Ingeniería de Software II – FCEN – UBA, 2008
Mozilla
© Cátedra de Ingeniería de Software II – FCEN – UBA, 2008
Interfaz
© Cátedra de Ingeniería de Software II – FCEN – UBA, 2008
Reconocimiento de Voz
© Cátedra de Ingeniería de Software II – FCEN – UBA, 2008
Algunas analogías
Fuente: Virginia McAlester. A FieldGuide to American Houses.
9
© Cátedra de Ingeniería de Software II – FCEN – UBA, 2008
Algunas analogías (cont.)
10
© Cátedra de Ingeniería de Software II – FCEN – UBA, 2008
Algunas analogías (cont.)
11
© Cátedra de Ingeniería de Software II – FCEN – UBA, 2008
De los requerimientos a la implementación
Requerimientos
Y ahora?
Un milagro ocurre
Cómo construimos un puente entre
losrequerimientos y la implementación?
Implementación
12
© Cátedra de Ingeniería de Software II – FCEN – UBA, 2008
Arquitecturas de sistemas de software
La arquitectura de un sistema de software:
Define el sistema en términos de componentes
e interacción entre ellos
Muestra correspondencia entre requerimientos
y elementos del sistema construido
Resuelve atributos de calidad en el nivel del
sistema,como escalabilidad, compatibilidad,
confiabilidad y performance.
Muchos piensan (pensamos) que los avances en
el tema de arquitecturas de software son un paso
clave para poder lograr el reuso a gran escala y
ayudar a que la ingeniería de software empiece a
asemejarse a otras disciplinas de la ingeniería.
13
© Cátedra de Ingeniería de Software II – FCEN – UBA, 2008
Analogías con la ingenieríacivil (sólo edificios)
Estilos arquitectónicos: colonial, victoriano, griego
Paradigmas de organización de sistemas de
software: pipes, layers, events
Conocimientos específicos para un estilo en
particular: cárceles, fábricas automotrices,
hospitales, hoteles 5 estrellas.
Arquitecturas para un dominio específico
14
© Cátedra de Ingeniería de Software II – FCEN – UBA, 2008
¿Por qué estetema es importante?
El mantenimiento de grandes sistemas suele llevar
más del 60% del esfuerzo total
Un 50% del esfuerzo de los programadores de
mantenimiento se va en analizar y entender el
código y la documentación existente.
La arquitectura hace una diferencia.
La arquitectura posibilita o inhibe alcanzar los
requerimientos de calidad de un sistema.
15
© Cátedra de Ingeniería de Software II– FCEN – UBA, 2008
La estructura de los sistemas
La arquitectura trata sobre la estructura de los
sistemas
Cómo el sistema se descompone en partes
Cómo esas partes interactúan
Pero esto lleva a la pregunta: ¿Qué tipos de
estructuras?
Del código
Run-time
Del entorno de desarrollo
Work breakdown structures
Cada una de estas estructuras puede ser la base
para una vistaarquitectónica (architectural view)
Históricamente el foco estuvo en vistas de código
16
© Cátedra de Ingeniería de Software II – FCEN – UBA, 2008
Las definiciones más aceptadas (Bass, Clements)
Arquitectura
La arquitectura de software de un programa o sistema de
computación es la estructura o estructuras del sistema, que abarcan
elementos de software, las propiedades externamente visibles de
estoselementos y las relaciones entre ellos. Implicancias:
La arquitectura define elementos de software (privado <>
arquitectónico)
Los sistemas pueden tener más de una estructura
Todo sistema de computación con software tiene una arquitectura
El comportamiento de cada elemento es parte de la arquitectura
Estilo o patrón arquitectónico
Una descripción de tipos de relaciones y elementos,...
Regístrate para leer el documento completo.