01 arquitectura de software - definición

Post on 12-Jul-2015

90 views 2 download

Transcript of 01 arquitectura de software - definición

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