01 arquitectura de software - definición

35
Arquitectura de Software Prof. Viviana Alvarez Agosto 2011

Upload: duoc

Post on 12-Jul-2015

90 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: 01   arquitectura de software - definición

Arquitectura de Software

Prof. Viviana AlvarezAgosto 2011

Page 2: 01   arquitectura de software - definición

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

Page 3: 01   arquitectura de software - definición

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

Page 4: 01   arquitectura de software - definición

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

Page 5: 01   arquitectura de software - definición

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

Page 6: 01   arquitectura de software - definición

Es lo mismo construir esto???

Page 7: 01   arquitectura de software - definición

Que construir esto???

Page 8: 01   arquitectura de software - definición
Page 9: 01   arquitectura de software - definición

Conocen la Mansión Winchester

Page 10: 01   arquitectura de software - definición
Page 11: 01   arquitectura de software - definición
Page 12: 01   arquitectura de software - definición
Page 13: 01   arquitectura de software - definición

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

Page 14: 01   arquitectura de software - definición

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

Page 15: 01   arquitectura de software - definición

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.

Page 16: 01   arquitectura de software - definición

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.”

Page 17: 01   arquitectura de software - definición

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)

Page 18: 01   arquitectura de software - definición
Page 19: 01   arquitectura de software - definición
Page 20: 01   arquitectura de software - definición
Page 21: 01   arquitectura de software - definición
Page 22: 01   arquitectura de software - definición
Page 23: 01   arquitectura de software - definición
Page 24: 01   arquitectura de software - definición
Page 25: 01   arquitectura de software - definición
Page 26: 01   arquitectura de software - definición
Page 27: 01   arquitectura de software - definición
Page 28: 01   arquitectura de software - definición
Page 29: 01   arquitectura de software - definición
Page 30: 01   arquitectura de software - definición
Page 31: 01   arquitectura de software - definición

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)

Page 32: 01   arquitectura de software - definición

Arquitectura vs. complejidad (2)

Fuente: Architecture as a Business Competency. Bredemeyer Consulting

Page 33: 01   arquitectura de software - definición

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

Page 34: 01   arquitectura de software - definición

Ciclo de Influencias

El ciclo ABC (Arquitecture Business Cycle)

Page 35: 01   arquitectura de software - definición

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