Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porHugo San Segundo Pérez Modificado hace 8 años
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!
Presentaciones similares
© 2025 SlidePlayer.es Inc.
All rights reserved.