La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

1 Arquitectura de Software (Estilos Arquitectónicos) Universidad de los Andes Demián Gutierrez Mayo 2011.

Presentaciones similares


Presentación del tema: "1 Arquitectura de Software (Estilos Arquitectónicos) Universidad de los Andes Demián Gutierrez Mayo 2011."— Transcripción de la presentación:

1 1 Arquitectura de Software (Estilos Arquitectónicos) Universidad de los Andes Demián Gutierrez Mayo 2011

2 2 Diseño Arquitectónico Arquitectura del Software Bibliotecas / Componentes Patrones de Diseño Clases / Funciones Frameworks (Marcos) Estilos Arquitectónicos

3 3 Diseño Arquitectónico ¿Qué es un estilo? - ¿Qué es un estilo arquitectónico?

4 4 Estilos Arquitectónicos Art Deco Deconstructivismo

5 5 Estilos Arquitectónicos Los ingenieros civiles, cuando tienen que construir un puente generalmente seleccionan un tipo de puente determinado que se adapte a las necesidades del contexto y del problema a resolver...

6 6 Estilos Arquitectónicos La arquitectura de un sistema de software puede basarse en uno (o en varios) modelos o estilos arquitectónicos bien conocidos Un estilo arquitectónico define una familia de sistemas (cierto tipo de sistemas) en términos de patrones estructurales, de control, de comunicación, etcétera Fuente: Sommerville (Cap 11)

7 7 Estilos Arquitectónicos Un conjunto de conectores entre componentes (comunicación, coordinación, cooperación, etcétera) Restricciones que definen cómo se integran los componentes para formar el sistema Un conjunto de componentes (con sus responsabilidades) Modelos que permiten comprender las propiedades de un sistema general en función de las propiedades conocidas de las partes que lo integran Un estilo arquitectónico describe: Fuente: Pressman (Cap 10)

8 8 Estilos Arquitectónicos Para todas las arquitecturas (estilos arquitectónicos) mostrados a continuación es necesario preguntarse: ¿Qué ventajas tiene el estilo? ¿Qué desventajas tiene? ¿En qué contextos aplica?

9 9 ¿Otros aspectos de la gestión de proyectos? Una reflexión final sobre lo profundo del abismo Seguridad Rendimient o Usabilidad Confiabilida d EscalabilidadPortabilidadReusabilidad Disponibilida d Facilidad de Prueba Eficiencia (memoria, ejecución) Mantenibilidad ¿De qué forma impacta el uso un estilo en las propiedades del sistema? Modificabilid ad Extensibilida d otras...

10 10 Estilos Arquitectónicos Fuente: http://en.wikipedia.org/wiki/Monolithic_application http://en.wikipedia.org/wiki/Monolithic_application Una arquitectura monolítica describe una aplicación en la que toda la funcionalidad del sistema (ej. acceso a datos, interfaz de usuario, lógica, etcétera) está implementada y mezclada en una sola capa. Esto, en la gran mayoría de los casos, no es una buena idea... ¿Por qué? Sistema (TODO EL SISTEMA) ¿Tip: Recuerdan el ejemplo del sistema de empaquetamiento de Sommerville y la discusión subsecuente?

11 11 Estilos Arquitectónicos (Repositorio / Pizarrón) Aplicación / Modulo 1 Aplicación / Modulo 2 Aplicación / Modulo 3 Aplicación / Modulo 4... Aplicación / Modulo N Repositorio (Base de Datos, Sistema de Archivos, Memoria Compartida, etcétera) Repositorio / Pizarron

12 12 Estilos Arquitectónicos (Cliente / Servidor) Cliente 1 Cliente 2 Cliente N... Servidor 1 Servidor N... Petición Respuesta Red Internet, LAN, WAN Cliente Servidor

13 13 Estilos Arquitectónicos (Cliente / Servidor) Cliente “Liviano” vs Cliente Pesado Client e Servido r Petición Respuesta Red Liviano: Lógica de la Aplicación solamente del lado del servidor Pesado: Lógica de la Aplicación parcial o totalmente del lado del cliente

14 14 Estilos Arquitectónicos (Cliente / Servidor - WEB) Fuente Imagen: http://www.mailxmail.com/curso-php-mysql-sql-8/arquitectura-base-datos- web

15 15 Estilos Arquitectónicos (Cliente / Servidor - WEB) Fuente Imagen: http://www.mailxmail.com/curso-php-mysql-sql-8/arquitectura-base-datos- web

16 16 Estilos Arquitectónicos (Tuberías y Filtros) Filtro 1 Filtro 2 Filtro 3 Filtro 5Filtro 4 Tuberías (Flujo de Datos / Información) Filtros (Transformación de Datos / Información) Tuberías y Filtros

17 17 Estilos Arquitectónicos (Tuberías y Filtros) Tuberías y Filtros

18 18 Estilos Arquitectónicos (Tuberías y Filtros) Tuberías y Filtros

19 19 Arquitectura (Ejemplo) Arquitectura por Capas Capa 1 Capa 2 Capa N... API (Application programming interface) Interfaz Mas Seguridad / Protección Menos Abstracción

20 20 Arquitectura (Ejemplo) Capa de Presentación (Interfaz Gráfica de Usuario) (HTML, Swing, Qt, GTK, etcétera) Capa de Proceso / Negocio (Lógica / Reglas de Negocio) Capa de Persistencia BD Arquitectura a tres Capas (Muy utilizado en aplicaciones empresariales)

21 21 Arquitectura (Ejemplo con más detalle) BD Motor de Workflow (CledaFlow, CledaScheduler y CledaBase) Hibernate JDBC Documentos MVC CledaMVC (Struts1) o Echo2 Modelo de Dominio Servlets Navegador WEB CledaTags CledaCore Aplicación Arquitectura a tres Capas (Muy utilizado en aplicaciones empresariales)

22 22 Estilos Arquitectónicos (Arquitectura por Capas) Arquitectura por Capas

23 23 Estilos Arquitectónicos (Arquitectura por Capas) Arquitectura por Capas

24 24 Estilos Arquitectónicos (Control Centralizado - Síncrono) Control Centralizado Programa Principal Rutina 1Rutina 2Rutina 3 Rutina 1.1Rutina 1.2Rutina 2.1 Rutina 3.1Rutina 3.2

25 25 Estilos Arquitectónicos (Control Centralizado - Asíncrono) Control Centralizado Controlado r del Sistema Procesos Tipo 1 (Ej: Sensores) Procesos Tipo 2 (Ej: Cálculo) Procesos Tipo 4 (Ej: Actuadores) Procesos Tipo 3 (Ej: Fallos) Procesos Tipo 5 (Ej: Fallos)

26 26 Estilos Arquitectónicos (Sistemas Dirigidos por Eventos) Cada subsistema genera eventos según su condición y define que eventos de otros subsistemas desea atender Manejador de Eventos Subsistema 1 Subsistema 2... Subsistema N El manejador de eventos se encarga de enviar los eventos generados a aquellos sistemas interesados en recibirlos

27 27 Estilos Arquitectónicos (Interprete / Máquina Virtual) Programa a Interpretar Máquina Virtual Hardware Real (CPU, dispositivos, memoria, etc) Hardware Simulado (CPU, dispositivos, etc) Datos (Estado del Programa)

28 28 Estilos Arquitectónicos (Interprete / Máquina Virtual) “Write once, run anywhere” Sun Microsystems

29 29 Estilos Arquitectónicos (Interprete / Máquina Virtual) “Write once, run anywhere” Sun Microsystems

30 30 Estilos Arquitectónicos (Interprete / Máquina Virtual) Código Java Foo.java Código Scala Foo.scl Código Clojure Foo.clj Código JRuby Foo.rub y Código Jython Foo.phy Java Byte Code Compilador Clojure (...) Compilador Scala (...) Compilador Jython (...) Compilador JRuby (...) Compilador Java (javac) UnixLinuxWindowsMac JVM Java Runtime + La flexibilidad de la arquitectura Java

31 31 Estilos Arquitectónicos (RPC / RMI) RPC: Remote Procedure Call RMI: Remote Method Invocation

32 32 Estilos Arquitectónicos (RPC / RMI) RPC: Remote Procedure Call RMI: Remote Method Invocation

33 33 Estilos Arquitectónicos (Arquitecturas de Objetos Distribuidos / CORBA) Objeto1 (Instancia) Nodo 1 Nodo 2 Nodo N Objeto2 (Instancia) Objeto3 (Instancia) Objeto N (Instancia) Red (Bus software) Nodo Cliente El nodo cliente utiliza (de forma transparente) los objetos que existe y están corriendo en los demás nodos

34 34 Estilos Arquitectónicos (Sist. Distribuidos / Arquitecturas Peer To Peer) P1 P7 P4 P6P2 P8P3 P5 P9 Un par puede jugar un rol de cliente y/o de servidor, dependiendo de las necesidades del momento Cada uno de los pares descubre a sus otros pares y establecen conexiones al mismo nivel (no de forma jerárquica) cooperando para lograr un objetivo determinado

35 35 Estilos Arquitectónicos (Sist. Distribuidos / Arquitecturas Peer To Peer) Cada uno de los pares descubre a sus otros pares y establecen conexiones al mismo nivel (no de forma jerárquica) cooperando para lograr un objetivo determinado P1 P7 Servidor / Coordin ador P6P2 P8P3 P5 P9 Un “servidor” puede servir para coordinar el descubrimiento de los pares

36 36 Estilos Arquitectónicos (Arquitectura basada en Plugins) Fuente: http://en.wikipedia.org/wiki/Plugin http://en.wikipedia.org/wiki/Plugin API (Application programming interface) Interfaz bien definida

37 37 Estilos Arquitectónicos (Plugins / Eclipse) Una estrategia basada en plugins hace que un sistema pueda ser fácilmente extendido y complementado por terceras partes

38 38 Estilos Arquitectónicos (Plugins / Eclipse)

39 39 Estilos Arquitectónicos (Arquitecturas de Referencia) Normalmente se obtienen por medio del estudio de una clase de aplicación (de un dominio en particular) Representan una arquitectura ideal que incluye todas las características que cierto tipo (clase) de sistema podría incorporar

40 40 Lecturas Recomendadas Pressman, Ingeniería del Software, Capítulo 10 Mary Shaw, David Garlan, Software Architecture Perspectives on an Emerging Discipline (Está en la biblioteca) Sommerville, Ingeniería del Software, Capítulos 11, 12 y 13 (En ese orden de prioridades) Patrones Arquitectónicos http://en.wikipedia.org/wiki/Architectural_pattern_(computer_sciencehttp://en.wikipedia.org/wiki/Architectural_pattern_(computer_science)

41 41 Gracias ¡Gracias!


Descargar ppt "1 Arquitectura de Software (Estilos Arquitectónicos) Universidad de los Andes Demián Gutierrez Mayo 2011."

Presentaciones similares


Anuncios Google