SlideShare ist ein Scribd-Unternehmen logo
1 von 59
Arquitecturas de Software
         Parte 2
       - Características Generales
       - Atributos de Calidad
       - Patrones/Estilos de Arquitectura
                Material académico preparado por:
                   Ph.D Marta Silvia Tabares B.
               Fecha última actualización 4-Sep-2011
Ingeniería de Software II
(mapa conceptual de tópicos de conocimiento)




       Material Preparado por MARTA SILVIA TABARES B. UdeM
Bibliografía
     Los conceptos utilizados en esta presentación fueron estudiados y tomados en su mayoría
     de las siguientes referencias bibliográficas.

1.     Arlow, J., and Neustad, I. UML 2 and the Unified Process: Practical Object-Oriented Analysis
       and Design (2nd Edition). Addison-Wesley Object Technology Series. 2005.
2.     OMG-UML. Unified Modeling Language: Superstructure. Version 2.0, formal/05-07-04. 2005.
3.     Jacobson, I., Booch, G., Rumbaugh, J. El Proceso Unificado de Desarrollo de Software.
       Addison Wesley. 2000.
4.     Alan Dennis, Barbara Haley Wixom and David Tegarden. Systems Analysis and Design with
       UML Version 2.0 - An Object Oriented Approach, Second Edition. John Wiley & Sons © 2005.
5.     Simon Bennett, Stee McRobb, y Ray Farmer. Análisis y Diseño Orientado a Objetos del
       Sistema, Usando UML. McGraw-Hill, 2006.
6.     Bass, L., Clements, P., Kazman, R. Software Architecture in Practice Second Edition.
7.     Pressman, R. Ingeniería del Software un Enfoque Práctico.
8.     Camacho, E.; Cardeso, F.; Nuñez, G. ARQUITECTURAS DE SOFTWARE - GUÍA DE ESTUDIO. (Abril, 2004).
9.     www.sei.cmu.edu.co
10. http://www.iso.org/iso/home.html
11. http://iso25000.com/index.php/iso-iec-9126.html
                                                                                                         3
                           Material académico preparado por Marta Silvia Tabares B. UdeM
Arquitectura de Software
   Flujo de Definición




      Material académico preparado por Marta
                                               4
               Silvia Tabares B. UdeM
Pasos para definición de una
        arquitectura de software
• Creación del caso de negocio para el sistema
• Entendimiento de los requisitos
• Creación y selección de la Arquitectura
• Documentación y comunicación de la Arquitectura
• Análisis o evaluación de la arquitectura
• Implementación del sistema basado en la
  arquitectura
• Aseguramiento de que la implementación esté
  acorde a la arquitectura
                 Material académico preparado por Marta
                                                          5
                          Silvia Tabares B. UdeM
Arquitectura de Software


• Por qué hay que hacer modelos de
  arquitectura?

  – Esto permite valorar hasta qué punto cumple
    el sistema los Atributos de Calidad.



               Material académico preparado por Marta
                                                        6
                        Silvia Tabares B. UdeM
Arquitectura de Software
             Calidad del Software
• La Calidad de Software para Pressman
  (2002) es:
  – “la concordancia con los requisitos
    funcionales y de rendimiento establecidos
    con los estándares de desarrollo
    explícitamente documentados y con las
    características implícitas que se espera de
    todo software desarrollado de forma
    profesional”.
               Material académico preparado por Marta
                                                        7
                        Silvia Tabares B. UdeM
Arquitectura de Software
                  Atributos de Calidad
• Según Barbacci et al. (1995) la calidad de software se
  define como el grado en el cual el software posee una
  combinación deseada de atributos. Tales atributos son
  requerimientos adicionales del sistema (Kazman et al.,
  2001), que hacen referencia a características que éste
  debe satisfacer, diferentes a los requerimientos
  funcionales.

• Estas características o atributos se conocen con el
  nombre de atributos de calidad, los cuales se definen
  como las propiedades de un servicio que presta el
  sistema a sus usuarios (Barbacci et al. 1995).

                   Material académico preparado por Marta
                                                            8
                            Silvia Tabares B. UdeM
Arquitectura de Software
                Norma ISO/IEC 9126


• ISO/IEC (Intenational Standart Organitation u
  Organización Internacional de Estándares en
  español) define a la calidad de software como:
  – la totalidad de rasgos y atributos de un producto
    de software que le apoyan en su capacidad de
    satisfacer sus necesidades explícitas o implícitas
    (ISO/IEC 9126, 1998).


                  Material académico preparado por Marta
                                                           9
                           Silvia Tabares B. UdeM
Arquitectura de Software
        Norma ISO/IEC 9126




                                               http://iso25000.com/index.php/iso-iec-9126.html   10
   Material académico preparado por Marta Silvia Tabares B. UdeM
Arquitecturas de Software
                           Norma ISO/IEC 9126
•   El modelo de calidad establecido en la primera parte del estándar, ISO 9126-1,
    clasifica la calidad del software en un conjunto estructurado de características y
    subcaracterísticas de la siguiente manera:

•   Funcionalidad - Un conjunto de atributos que se relacionan con la existencia de un
    conjunto de funciones y sus propiedades específicas. Las funciones son aquellas
    que satisfacen las necesidades implícitas o explícitas.
     – Idoneidad
     – Exactitud
     – Interoperabilidad
     – Seguridad
     – Cumplimiento de normas.

•   Fiabilidad - Un conjunto de atributos relacionados con la capacidad del software
    de mantener su nivel de prestación bajo condiciones establecidas durante un
    período establecido.
     – Madurez
     – Recuperabilidad
     – Tolerancia a fallos
                             Material académico preparado por Marta
                                                                                       11
                                      Silvia Tabares B. UdeM
Arquitecturas de Software
               Norma ISO 9126
• Usabilidad - Un conjunto de atributos relacionados con el esfuerzo
  necesario para su uso, y en la valoración individual de tal uso, por
  un establecido o implicado conjunto de usuarios.
   – Aprendizaje
   – Comprensión
   – Operatividad
   – Atractividad

• Eficiencia - Conjunto de atributos relacionados con la relación entre
  el nivel de desempeño del software y la cantidad de recursos
  necesitados bajo condiciones establecidas.
   – Comportamiento en el tiempo
   – Comportamiento de recursos


                        Material académico preparado por Marta
                                                                         12
                                 Silvia Tabares B. UdeM
Arquitecturas de Software
               Norma ISO 9126
• Mantenibilidad - Conjunto de atributos relacionados con la facilidad
  de extender, modificar o corregir errores en un sistema software.
   – Estabilidad
   – Facilidad de análisis
   – Facilidad de cambio
   – Facilidad de pruebas

• Portabilidad - Conjunto de atributos relacionados con la capacidad
  de un sistema software para ser transferido desde una plataforma a
  otra.
   – Capacidad de instalación
   – Capacidad de reemplazamiento
   – Adaptabilidad
   – Co-Existencia
                       Material académico preparado por Marta
                                                                     13
                                Silvia Tabares B. UdeM
Arquitectura de Software
                Atributos de Calidad

• Categorías de Atributos de Calidad Bass et al.
  (1998) :
  – Observables vía ejecución: aquellos atributos que
    se determinan del comportamiento del sistema en
    tiempo de ejecución. La descripción de algunos de
  – No observables vía ejecución: aquellos atributos
    que se establecen durante el desarrollo del
    sistema.


                 Material académico preparado por Marta
                                                          14
                          Silvia Tabares B. UdeM
Arquitectura de Software
Atributos de Calidad – No observables vía ejecución




                   Fuente: Camacho, E.; Cardeso, F.; Nuñez, G. ARQUITECTURAS DE SOFTWARE - GUÍA DE ESTUDIO. (Abril, 2004).
                                                                                                                             15
           Material académico preparado por Marta Silvia Tabares B. UdeM
Arquitectura de Software
Atributos de Calidad – NO observables vía ejecución




                   Fuente: Camacho, E.; Cardeso, F.; Nuñez, G. ARQUITECTURAS DE SOFTWARE - GUÍA DE ESTUDIO. (Abril, 2004).
                                                                                                                             16
           Material académico preparado por Marta Silvia Tabares B. UdeM
Qué son Requisitos
Arquitectónicamente Significativos?
    •   Captura la funcionalidad esencial del sistema

    •   Tiene amplia cobertura (usa muchos elementos de arquitectura).

    •   Es un desafío de implementación para la arquitectura.

    •   Enfatiza o detalla problemas o riesgos identificados.

    •   Ejemplifica demandas rigurosas en la arquitectura (p.ej exigencias de
        rendimiento (performance)).

    •   Son susceptibles a cambios.

    •   Involucran comunicación y sincronización con sistemas externos.

                                                                                17
              Material académico preparado por Marta Silvia Tabares B. UdeM
Definición de una Arquitectura
                  Candidata
•   Aunque una arquitectura muchas veces se define como un conjunto de componentes y
    conectores, es importante hacer la siguiente evaluación de los elementos que podrían
    determinar una arquitectura candidata:

    Naturaleza de los elementos
    – Cuál es el significado de su separación?
    – Ellos se ejecutan en procesadores separados, en tiempos diferentes?
    – Ellos se componen de procesos, programas o ambos?
    – Ellos representan la forma en la cual el que hacer de los proyectos será dividido?
    – Ellos se definen en el sentido de la separación de ejecución?
    – Ellos son los objetos, tareas, funciones, procesos, programas distribuidos, o alguna cosa
       parecida?

    Responsabilidades de los elementos
    – Qué es lo que ellos hacen?
    – Cuál es su función en el sistema?

                               Material académico preparado por Marta
                                                                                            18
                                        Silvia Tabares B. UdeM
Definición de una Arquitectura
             Candidata
Significado de las conexiones
Las conexiones significan que los elementos entre si se comunican,
controlan, envían datos, sincronizan, comparten alguna información
secreta.
 – Algunas son combinaciones de estos u otras relaciones?
 – Cuales son los mecanismos para la comunicación?
 – Qué información fluye a través de los mecanismos?

Significado de las capas (vistas)
– Por qué el proceso de control está en un nivel separado?
– Es este llamado por elementos de otras capas?
– Hay restricciones de llamado entre los elementos de diferentes capas?

                     Material académico preparado por Marta
                                                                     19
                              Silvia Tabares B. UdeM
Definición de una Arquitectura
          Candidata
 Tipo de Arquitectura           Ejemplos de                        Ejemplos de
                                Elementos                          Relaciones
 Conceptual                     Componentes                        Conectores
 Modular                        Subsistemas,                       Exportaciones,
                                módulos                            importaciones
 Código                         Archivos, directorios,             Incluye, contiene
                                bibliotecas
 Ejecución                      Tareas, líneas,                    Usos, llamadas
                                interacciones de
                                objetos



Cuatro aspectos de la arquitectura del software según Soni et al. (adaptado de Weir y Daniels, 1998)

                          Material académico preparado por Marta
                                                                                                 20
                                   Silvia Tabares B. UdeM
La Arquitectura de Referencia

    Modelo de
    Referencia
                                 Arquitectura de                 Software de
                                   Referencia                    Arquitectura

      Patrón
   Arquitectónico




Estos son conceptos útiles que capturan elementos de una arquitectura,
pero en sí ellos no son arquitecturas.

                        Material académico preparado por Marta
                                                                                21
                                 Silvia Tabares B. UdeM
Modelo de Referencia
 Un modelo de Referencia es una división de
funcionalidad junto con el flujo de datos entre
                 las piezas.


   Es un estándar de descomposición de un
      problema conocido, en partes que
  cooperativamente resuelven el problema.



                Material académico preparado por Marta
                                                         22
                         Silvia Tabares B. UdeM
Arquitectura de Referencia


Es un modelo de referencia mapeado en
       elementos de software que
   cooperativamente implementan la
funcionalidad definida en el modelo de
 referencia y flujos de datos entre ellos



             Material académico preparado por Marta
                                                      23
                      Silvia Tabares B. UdeM
Diseño Arquitectónico
• Estructuras
  – Módulos: los elementos son módulos, los cuales son
    unidades de implementación.

  – Componentes-y-Conector:       los     elementos     son
    componentes de ejecución (los cuales son principalmente
    unidades de computación) y conectores (los cuales son el
    vehículo de comunicación entre los componentes).

  – De Localización: muestran la relación entre los elementos
    de software y los elementos en uno o más ambientes
    externos en los cuales el software es creado o ejecutado.

                   Material académico preparado por Marta
                                                            24
                            Silvia Tabares B. UdeM
Diseño Arquitectónico
     • Estructuras
                                                                             Localización
             Módulo


                                                                      Asignación   Implementación
Descomposición           Clase             Componente-y-              de trabajo
                 Usos                        Conector                       Despliegue

                 Capas
                                 Cliente-                         Proceso
                                 Servidor
                                       Concurrencia        Datos
                                                           compartidos


                         Material académico preparado por Marta
                                                                                            25
                                  Silvia Tabares B. UdeM
Diseño Arquitectónico
• Los procesos de desarrollo basados en el Proceso
  Unificado están centrados en la arquitectura.

• La elección de una arquitectura correcta implica
  que los arquitectos deben estar involucrados
  desde el principio del proyecto.

• La elección de la arquitectura correcta al principio
  del proyecto también tiene que ver con la
  reducción de los riesgos del proyecto.

                  Material académico preparado por Marta
                                                           26
                           Silvia Tabares B. UdeM
Diseño Arquitectónico
• Las arquitecturas del sistema son usadas por diversos
  conjuntos de personas en tiempos diferentes en el ciclo de
  desarrollo, por esta razón es frecuente ver que estas
  arquitecturas son separadas en vistas diferentes.

• El Proceso Unificado Racional (RUP) identifica un conjunto de
  vistas estándar llamado 4+1 Vistas de Arquitectura. Este
  enfoque permite que todos los grupos de participantes
  comuniquen las necesidades (es decir, requisitos), resuelvan
  los conflictos, y realicen los documentos de decisiones.


                     Material académico preparado por Marta
                                                              27
                              Silvia Tabares B. UdeM
Patrones/Estilos Arquitectónicos


Un patrón arquitectónico es una descripción
 de tipos de elementos y relaciones con un
  conjunto de restricciones de cómo ellos
            pueden ser usados.




             Material académico preparado por Marta
                                                      28
                      Silvia Tabares B. UdeM
Patrones/Estilos Arquitectónicos
• Estilos de Flujo de Datos
   – Tubería y filtros
• Estilos Centrados en Datos
   – Arquitecturas de Pizarra o Repositorio
• Estilos de Llamada y Retorno
   – Modelo-Vista-Control (MVC)
   – Arquitecturas en Capas
   – Arquitecturas Orientadas a Objetos
   – Arquitecturas Basadas en Componentes
                  Material académico preparado por Marta
                                                           29
                           Silvia Tabares B. UdeM
Patrones o Estilos Arquitectónicos
• Estilos de Código Móvil
   – Arquitectura de Máquinas Virtuales
• Estilos heterogéneos
   – Sistemas de control de procesos
   – Arquitecturas Basadas en Atributos
• Estilos Peer-to-Peer
   – Arquitecturas Basadas en Eventos
   – Arquitecturas Orientadas a Servicios
   – Arquitecturas Basadas en Recursos

                 Material académico preparado por Marta
                                                          30
                          Silvia Tabares B. UdeM
Patrón Arquitectónico:
         Cliente - Servidor



            Servidor                                 Cliente



                                        Cliente


Cliente y Servidor son dos tipos de elementos y su coordinación se
    describe en términos del protocolo que el servidor usa para
             comunicarse con cada uno de sus cliente

                   Material académico preparado por Marta
                                                                     31
                            Silvia Tabares B. UdeM
Patrón Arquitectónico:
       Arquitectura Centrada en los Datos
• Un almacén de datos (archivo o base de datos) se encuentra
  en el centro de la arquitectura, los otros componentes
  tienen acceso a el y cuentan con la opción de actualizar,
  agregar, eliminar o modificar datos de dicho almacén.

           Software                                         Software
            Cliente                                          Cliente




                                  Almacén de Datos

            Software                                            Software
             Cliente                                             Cliente

                       Material académico preparado por Marta
                                                                           32
                                Silvia Tabares B. UdeM
Patrón Arquitectónico:
Arquitectura Física Centrada en los Datos




            Material académico preparado por Marta
                                                     33
                     Silvia Tabares B. UdeM
Patrón Arquitectónico:
        Arquitectura por Capas
Cada capa (layer – Tier) es un nivel de
abstracción del sistema.
                                                  System Time (Time). This component allows the
                                                  system to run at a userdefined time in a simulation
                                                  mode. With multiple instances of this component,
                                                  real time and simulated time can be used
                                                  concurrently.
                                                  Time Synchronization (TSync). With different parts
                                                  of the system running on different hardware
                                                  nodes, synchronizing the system time on each
                                                  node is critical.
                                                  Communication Protocols (Comm). This
                                                  component includes components dealing with low-
                                                  level communication protocols tailored for specific
                                                  applications.
                                                  Built-in Test (BiT). These modules handle hardware
                                                  testing.



               Material académico preparado por Marta
                                                                                              34
                        Silvia Tabares B. UdeM
Patrón Arquitectónico:
Arquitectura en o por Capas




        Fuente: imágenes de google




     Material académico preparado por Marta Silvia Tabares B. UdeM   35
Patrón Arquitectónico:
Arquitectura Por Capas (Ej. 1)




        Material académico preparado por Marta
                                                 36
                 Silvia Tabares B. UdeM
Patrón Arquitectónico:
Arquitectura Por Capas (Ej. 2)




                                                                    37
    Material académico preparado por Marta Silvia Tabares B. UdeM
Patrón Arquitectónico:
Arquitectura Por Capas (Ej. 3)




        Material académico preparado por Marta
                                                 38
                 Silvia Tabares B. UdeM
Patrón Arquitectónico
                 Arquitectura Flujo de Datos –
               Filtros (Filters) y Tuberías (Pipes)




                                                                39
Material académico preparado por Marta Silvia Tabares B. UdeM
Patrón Arquitectónico
                 Arquitectura Flujo de Datos –
               Filtros (Filters) y Tuberías (Pipes)
                                                                Los componentes se
                                                                denominan FILTROS que
                                                                son conectados por
                                                                medio de TUBERÍAS las
                                                                cuales transmiten los
                                                                datos.

                                                                Se aplica cuando los
                                                                datos de entrada se
                                                                habrán transformado en
                                                                datos de salida mediante
                                                                una serie de
                                                                componentes para el
                                                                cálculo o la
                                                                manipulación.
                                                                                     40
Material académico preparado por Marta Silvia Tabares B. UdeM
Patrón Arquitectónico
                                             Arquitectura Flujo de Datos – Filtros y Tuberías
                                   Un ejemplo de uso del patrón Filtros y Tuberías - Requisito de Seguridad



class Filtros y Tuberías


           User

    -    id: int
    -    name: varchar


               1..*

  MemberOf

               1..*

            Role                                      ProtectionObj ect
                               isAuthorizedFor
     -   id: int                                      -   id: int
     -   name: varchar                                -   name: varchar




                                     Right

                           -   accessType: varchar

                           +   checkRights() : void




Modelo de clases: Requisito de Seguridad




Fuente teórica : Fernandez, E; Ortega-Arjona, J; The Secure Pipes and Filters pattern. Fifth LACCEI International Latin American and Caribbean Conference for Engineering and Technology (LACCEI’2007)
“Developing Entrepreneurial Engineers for the Sustainable Growth of Latin America and the Caribbean:
Education, Innovation, Technology and Practice”
29 May – 1 June 2007, Tampico, México.                                                                                                                                                                   41
                                                                          Material académico preparado por Marta Silvia Tabares B. UdeM
Patrón Arquitectónico
          Arquitectura Flujo de Datos – Filtros (Filters) y Tuberías (Pipes)
                     Un ejemplo de uso del patrón Filtros y Tuberías - Requisito de Seguridad

                                                                               sd Sistema


                                                                                                            :RefMonitor               :Right   :Filter_j                 :Pipe_i    :Pipe_j


                                                                                       :Role1


                                                                                                op3(role)


                                                                                                                     checkRights()




                                                                                                                          :decision


                                                                                                :desicion



                                                                                                                             op3()


                                                                                                                                                           read (data)


                                                                                                                                                           read (data)


                                                                                                                                                                    write (data)
                                                                                                                                                               op3()
                                                                                                                                                                     write(data)




Fuente teórica: Fernandez, E; Ortega-Arjona, J; The Secure Pipes and Filters pattern
                                                                                                                                                                                   42
                                                Material académico preparado por Marta Silvia Tabares B. UdeM
Patrón Arquitectónico
          Arquitectura Flujo de Datos – Filtros (Filters) y Tuberías (Pipes)
                     Un ejemplo de uso del patrón Filtros y Tuberías - Requisito de Seguridad




Fuente teórica: Fernandez, E; Ortega-Arjona, J; The Secure Pipes and Filters pattern
                                                                                                                43
                                                Material académico preparado por Marta Silvia Tabares B. UdeM
Patrón Arquitectónico:
Arquitectura Modelo – Vista - Control
Un Ejemplo:




              Material académico preparado por Marta
                                                       44
                       Silvia Tabares B. UdeM
Patrón Arquitectónico:
Arquitectura Orientada a Servicios




                                                Imagen tomada de «imágenes google»
                                                                             45
       Material académico preparado por Marta Silvia Tabares B. UdeM
Patrón Arquitectónico:
Arquitectura Orientada a Servicios




                                               Imagen tomada de «imágenes google»
                                                                            46
      Material académico preparado por Marta Silvia Tabares B. UdeM
Patrón Arquitectónico:
Arquitectura Hibridas (Servicios – Capas – Plataformas)




                                                            Sharepoint architectura
                                                          Imagenes tomada de Avepoint

                 Material académico preparado por Marta
                                                                                      47
                          Silvia Tabares B. UdeM
Modelo de Referencia – Patrón Arquitectónico
         Modelo-Vista-Controlador
                                                    Clase Interfaz <<Interface>>:
• En UML                                            Recepcionar peticiones al sistema.
                                                    Mostrar respuestas del sistema.
 Se propone para el desarrollo del
  Modelo de Análisis de las
  aplicaciones, tres tipos de clases               Clase Entidad <<Entity>>:
  fundamentales, con las cuales                    Gestionar datos (información) necesaria
  podemos expresar todas las                       para el sistema.
                                                   Almacenar datos (información)
  funciones de cualquier software,                 persistentes del sistema.
  con         sus        respectivas               Provee la funcionalidad principal de
  responsabilidades                                la aplicación

                                                    Clase Controlador
                                                    <<Controller>>:
                                                    Procesar Información del sistema.
                                                    Gestionar visualización de
                                                    respuesta del sistema.
                                                    Obtiene los datos del modelo.

                          Material académico preparado por Marta
                                                                                             48
                                   Silvia Tabares B. UdeM
Modelo de Referencia – Patrón Arquitectónico
        Modelo-Vista-Controlador

     • Este patrón arquitectónico y de diseño fue descrito por primera vez
       por Trygve Reenskaug en 1979 y fue implementado en Smalltalk en
       los laboratorios Xerox.

     • MVC se basa en la separación de la aplicación en tres capas
       principales: Modelo, Vista y Controlador.

     • Se usa (él o alguna de sus variantes) en la gran mayoría de las
       interfaces de usuario.




                      Material académico preparado por Marta
                                                                         49
                               Silvia Tabares B. UdeM
Modelo de Referencia – Patrón
              Arquitectónico
         Modelo-Vista-Controlador
Ejemplo del flujo de mensajes entre:




             Material académico preparado por Marta
                                                      50
                      Silvia Tabares B. UdeM
Modelo de Referencia – Patrón Arquitectónico
         Modelo-Vista-Controlador


• Vista: Se presenta el modelo en un formato adecuado para
  interactuar, usualmente un elemento de interfaz de usuario.



• Controlador: Este responde a eventos, usualmente acciones del
  usuario e invoca cambios en el modelo y probablemente en la vista.




                       Material académico preparado por Marta
                                                                   51
                                Silvia Tabares B. UdeM
Modelo de Referencia – Patrón Arquitectónico
        Modelo-Vista-Controlador
• Muchas aplicaciones utilizan un mecanismo de almacenamiento
  persistente (como puede ser una base de datos) para almacenar los
  datos. MVC no menciona específicamente esta capa de acceso a
  datos porque supone que está encapsulada por el modelo.

• El objetivo primordial del MVC es la reutilización del código ya
  implementado.

• Esta tarea se facilita mucho si a la hora de programar tenemos la
  precaución de separar el código en varias partes que sean
  susceptibles de ser reutilizadas sin modificaciones.



                        Material académico preparado por Marta
                                                                      52
                                 Silvia Tabares B. UdeM
Modelo de Referencia – Patrón Arquitectónico
         Modelo-Vista-Controlador
Ejemplos

• Los datos de una hoja de cálculo pueden mostrarse de en formato
   tabular, con un gráfico de barras, con uno de sectores.
• Los datos son el modelo.
• Si cambia el modelo, las vistas deberían actualizarse en
   consonancia.
• El usuario manipula el modelo a través de las vistas.
������      (en realidad, a través de los controladores)




                      Material académico preparado por Marta
                                                                    53
                               Silvia Tabares B. UdeM
Modelo de Referencia – Patrón Arquitectónico
        Modelo-Vista-Controlador
            Mas de una Vista de un Modelo de
                         Datos




                Material académico preparado por Marta
                                                         54
                         Silvia Tabares B. UdeM
Modelo de Referencia – Patrón Arquitectónico
        Modelo-Vista-Controlador

• MVC es utilizado con mayor frecuencia en las aplicaciones
  web, donde la Vista es la página HTML, y el Controlador es
  el código que reúne la data dinámica y genera el contenido
  de la página.

• El Modelo es representado por el contenido actual, que
  usualmente se encuentra almacenado en una base de
  datos o en archivos XML.




                    Material académico preparado por Marta
                                                             55
                             Silvia Tabares B. UdeM
Modelo de Referencia – Patrón Arquitectónico
        Modelo-Vista-Controlador




              Material académico preparado por Marta
                                                       56
                       Silvia Tabares B. UdeM
Modelo de Referencia – Patrón Arquitectónico
         Modelo-Vista-Controlador
Fortalezas
• Se presenta la misma información de distintas formas.

• Las vistas y comportamiento de una aplicación deben reflejar las
  manipulaciones de los datos de forma inmediata.

• Debería ser fácil cambiar la interfaz de usuario (incluso en tiempo de
  ejecución).

• Permitir diferentes estándares de interfaz de usuario o portarla a otros
  entornos no debería afectar al código de la aplicación.



                          Material académico preparado por Marta
                                                                             57
                                   Silvia Tabares B. UdeM
Modelo de Referencia – Patrón Arquitectónico
         Modelo-Vista-Controlador
   Muchas interfaces gráficas de usuario, como Swing o MFC, hacen
   innecesario el uso de un controlador.

• Definen su propio flujo de control y manejan los eventos
  internamente.

• Integran, así, la vista y el controlador.

• A esta variante se la suele denominar Document-View




                         Material académico preparado por Marta
                                                                    58
                                  Silvia Tabares B. UdeM
Modelo de Referencia – Patrón Arquitectónico
          Modelo-Vista-Controlador
Un controlador (controlador.java, por ejemplo) puede gestionar el clic en un botón, de tal forma que recoge datos
    por medio del Modelo (model.cargar_texto(..)) y los manda a la Vista (el applet) para su actualización
    (vista.mostrar_texto( )):


/****************************************************************
Responde al click en botón "abrir" La respuesta al evento es hacer que se abra en la vista
el archivo correspondiente a la referencia seleccionada en el combo box
****************************************************************/
void b_abrir_actionPerformed(ActionEvent e) {
…
     String texto_archivo = model.cargar_texto( indice_ref ); // Obtener texto de archivo
     /*** Si la carga de archivo es ok, lo muestro. Si no, aviso de error ****/
     if (texto_archivo != null) {
              vista.mostrar_texto(texto_archivo); // Mostrar texto
              vista.mostrar_aviso("Carga de " + path + " completada.");
     }
     else
              vista.mostrar_aviso("Error en la carga de " + path);
}


                                       Material académico preparado por Marta
                                                                                                             59
                                                Silvia Tabares B. UdeM

Weitere ähnliche Inhalte

Was ist angesagt?

C4model - Arquitectura de Software
C4model - Arquitectura de SoftwareC4model - Arquitectura de Software
C4model - Arquitectura de SoftwareRene Guaman-Quinche
 
2 1 vistas arquitectonicas
2 1 vistas arquitectonicas2 1 vistas arquitectonicas
2 1 vistas arquitectonicaslandeta_p
 
Requerimientos no funcionales
Requerimientos no funcionalesRequerimientos no funcionales
Requerimientos no funcionalesAngel Minga
 
IDR Unidad 4: Validación y gestión de requisitos
IDR Unidad 4: Validación y gestión de requisitosIDR Unidad 4: Validación y gestión de requisitos
IDR Unidad 4: Validación y gestión de requisitosFranklin Parrales Bravo
 
DISEÑO DE LA ARQUITECTURA DEL SOFTWARE
DISEÑO DE LA ARQUITECTURA DEL SOFTWAREDISEÑO DE LA ARQUITECTURA DEL SOFTWARE
DISEÑO DE LA ARQUITECTURA DEL SOFTWAREjose_rob
 
Métricas de Proceso y proyecto de software
Métricas de Proceso y proyecto de softwareMétricas de Proceso y proyecto de software
Métricas de Proceso y proyecto de softwareLorena Quiñónez
 
Tecnicas de estimacion de costos de proyecto software
Tecnicas de estimacion de costos de proyecto softwareTecnicas de estimacion de costos de proyecto software
Tecnicas de estimacion de costos de proyecto softwareantonio
 
13 Privacidad En La Red
13 Privacidad En La Red13 Privacidad En La Red
13 Privacidad En La Redmsma
 
Tecnicas de estimacion de costos de proyecto software
Tecnicas de estimacion de costos de proyecto softwareTecnicas de estimacion de costos de proyecto software
Tecnicas de estimacion de costos de proyecto softwareJennifer Andrea Cano Guevara
 
Cuadro comparativo entre moprosoft y cmmi
Cuadro comparativo entre moprosoft y cmmi Cuadro comparativo entre moprosoft y cmmi
Cuadro comparativo entre moprosoft y cmmi Darthuz Kilates
 
Ventajas y desventajas de cmmi
Ventajas y desventajas de cmmiVentajas y desventajas de cmmi
Ventajas y desventajas de cmmiSandrea Rodriguez
 
Diseño de sistemas introduccion
Diseño de sistemas   introduccionDiseño de sistemas   introduccion
Diseño de sistemas introduccionJose Diaz Silva
 
25 Estandares - IEEE Calidad de Software
25 Estandares - IEEE Calidad de Software25 Estandares - IEEE Calidad de Software
25 Estandares - IEEE Calidad de SoftwareCamila Arbelaez
 
Proceso, modelos y metodos de ingenieria de software
Proceso, modelos y metodos de ingenieria de softwareProceso, modelos y metodos de ingenieria de software
Proceso, modelos y metodos de ingenieria de softwaresergio
 
Requisitos funcionales y no funcionales
Requisitos funcionales y no funcionalesRequisitos funcionales y no funcionales
Requisitos funcionales y no funcionalesRene Guaman-Quinche
 

Was ist angesagt? (20)

C4model - Arquitectura de Software
C4model - Arquitectura de SoftwareC4model - Arquitectura de Software
C4model - Arquitectura de Software
 
2 1 vistas arquitectonicas
2 1 vistas arquitectonicas2 1 vistas arquitectonicas
2 1 vistas arquitectonicas
 
5. Métodos de Prueba de Software
5. Métodos de Prueba de Software5. Métodos de Prueba de Software
5. Métodos de Prueba de Software
 
Requerimientos no funcionales
Requerimientos no funcionalesRequerimientos no funcionales
Requerimientos no funcionales
 
Estimación de Proyectos de Software
Estimación de Proyectos de SoftwareEstimación de Proyectos de Software
Estimación de Proyectos de Software
 
El software su naturaleza y cualidades
El software su naturaleza y cualidadesEl software su naturaleza y cualidades
El software su naturaleza y cualidades
 
Gestión de la Calidad en Proyectos de Software
Gestión de la Calidad en Proyectos de SoftwareGestión de la Calidad en Proyectos de Software
Gestión de la Calidad en Proyectos de Software
 
IDR Unidad 4: Validación y gestión de requisitos
IDR Unidad 4: Validación y gestión de requisitosIDR Unidad 4: Validación y gestión de requisitos
IDR Unidad 4: Validación y gestión de requisitos
 
DISEÑO DE LA ARQUITECTURA DEL SOFTWARE
DISEÑO DE LA ARQUITECTURA DEL SOFTWAREDISEÑO DE LA ARQUITECTURA DEL SOFTWARE
DISEÑO DE LA ARQUITECTURA DEL SOFTWARE
 
Métricas de Proceso y proyecto de software
Métricas de Proceso y proyecto de softwareMétricas de Proceso y proyecto de software
Métricas de Proceso y proyecto de software
 
Tecnicas de estimacion de costos de proyecto software
Tecnicas de estimacion de costos de proyecto softwareTecnicas de estimacion de costos de proyecto software
Tecnicas de estimacion de costos de proyecto software
 
13 Privacidad En La Red
13 Privacidad En La Red13 Privacidad En La Red
13 Privacidad En La Red
 
Tecnicas de estimacion de costos de proyecto software
Tecnicas de estimacion de costos de proyecto softwareTecnicas de estimacion de costos de proyecto software
Tecnicas de estimacion de costos de proyecto software
 
Cuadro comparativo entre moprosoft y cmmi
Cuadro comparativo entre moprosoft y cmmi Cuadro comparativo entre moprosoft y cmmi
Cuadro comparativo entre moprosoft y cmmi
 
Escalabilidad
EscalabilidadEscalabilidad
Escalabilidad
 
Ventajas y desventajas de cmmi
Ventajas y desventajas de cmmiVentajas y desventajas de cmmi
Ventajas y desventajas de cmmi
 
Diseño de sistemas introduccion
Diseño de sistemas   introduccionDiseño de sistemas   introduccion
Diseño de sistemas introduccion
 
25 Estandares - IEEE Calidad de Software
25 Estandares - IEEE Calidad de Software25 Estandares - IEEE Calidad de Software
25 Estandares - IEEE Calidad de Software
 
Proceso, modelos y metodos de ingenieria de software
Proceso, modelos y metodos de ingenieria de softwareProceso, modelos y metodos de ingenieria de software
Proceso, modelos y metodos de ingenieria de software
 
Requisitos funcionales y no funcionales
Requisitos funcionales y no funcionalesRequisitos funcionales y no funcionales
Requisitos funcionales y no funcionales
 

Ähnlich wie Arquitecturas de software - Parte 2

Fundamento del Diseño de Software
Fundamento del Diseño de SoftwareFundamento del Diseño de Software
Fundamento del Diseño de SoftwareGlamisleidys Chourio
 
PRESENTACION CALIDAD DE SOFTWARE IEEE ISO.pdf
PRESENTACION CALIDAD DE SOFTWARE IEEE ISO.pdfPRESENTACION CALIDAD DE SOFTWARE IEEE ISO.pdf
PRESENTACION CALIDAD DE SOFTWARE IEEE ISO.pdfVictor430019
 
Fundamentos de Calidad del Software - Modelos y Estándares
Fundamentos de Calidad del Software - Modelos y EstándaresFundamentos de Calidad del Software - Modelos y Estándares
Fundamentos de Calidad del Software - Modelos y EstándaresLuis Eduardo Pelaez Valencia
 
Calidad del software
Calidad del softwareCalidad del software
Calidad del softwarevaoe11
 
Modelos de procesos de software(completo)
Modelos de procesos de software(completo)Modelos de procesos de software(completo)
Modelos de procesos de software(completo)David Rosero
 
Diseã±os de planes_de_pruebas_de_software1
Diseã±os de planes_de_pruebas_de_software1Diseã±os de planes_de_pruebas_de_software1
Diseã±os de planes_de_pruebas_de_software1naviwz
 
Presentacion de Software y Estimacion de Coste
Presentacion de Software y Estimacion de CostePresentacion de Software y Estimacion de Coste
Presentacion de Software y Estimacion de CosteCAMILO
 
PROYECTOS DE SOFTWARE Y COSTOS
PROYECTOS DE SOFTWARE Y COSTOSPROYECTOS DE SOFTWARE Y COSTOS
PROYECTOS DE SOFTWARE Y COSTOSCAMILO
 
Proyecto de Software y Estimacion de Costo
Proyecto de Software y Estimacion de CostoProyecto de Software y Estimacion de Costo
Proyecto de Software y Estimacion de CostoCAMILO
 
presentacion de software y estimacion de doste
presentacion de software y estimacion de dostepresentacion de software y estimacion de doste
presentacion de software y estimacion de dosteCAMILO
 
Proyecto de Software y Coste
Proyecto de Software y CosteProyecto de Software y Coste
Proyecto de Software y CosteCAMILO
 
Unidad # 8 diseño de planes de prueba
Unidad # 8 diseño de planes de pruebaUnidad # 8 diseño de planes de prueba
Unidad # 8 diseño de planes de pruebaDarleneperalta
 
Fundamentos del diseño y Garantías de Calidad del Software
Fundamentos del diseño y Garantías de Calidad del SoftwareFundamentos del diseño y Garantías de Calidad del Software
Fundamentos del diseño y Garantías de Calidad del SoftwareRichard J. Nuñez
 

Ähnlich wie Arquitecturas de software - Parte 2 (20)

Unidad v
Unidad vUnidad v
Unidad v
 
Fundamento del Diseño de Software
Fundamento del Diseño de SoftwareFundamento del Diseño de Software
Fundamento del Diseño de Software
 
PRESENTACION CALIDAD DE SOFTWARE IEEE ISO.pdf
PRESENTACION CALIDAD DE SOFTWARE IEEE ISO.pdfPRESENTACION CALIDAD DE SOFTWARE IEEE ISO.pdf
PRESENTACION CALIDAD DE SOFTWARE IEEE ISO.pdf
 
Fundamentos de Calidad del Software - Modelos y Estándares
Fundamentos de Calidad del Software - Modelos y EstándaresFundamentos de Calidad del Software - Modelos y Estándares
Fundamentos de Calidad del Software - Modelos y Estándares
 
Calidad del software
Calidad del softwareCalidad del software
Calidad del software
 
Tarea 1 Reconocimiento
Tarea 1 ReconocimientoTarea 1 Reconocimiento
Tarea 1 Reconocimiento
 
Dai1 ple2
Dai1 ple2Dai1 ple2
Dai1 ple2
 
Modelos de procesos de software(completo)
Modelos de procesos de software(completo)Modelos de procesos de software(completo)
Modelos de procesos de software(completo)
 
Diseã±os de planes_de_pruebas_de_software1
Diseã±os de planes_de_pruebas_de_software1Diseã±os de planes_de_pruebas_de_software1
Diseã±os de planes_de_pruebas_de_software1
 
Presentacion de Software y Estimacion de Coste
Presentacion de Software y Estimacion de CostePresentacion de Software y Estimacion de Coste
Presentacion de Software y Estimacion de Coste
 
PROYECTOS DE SOFTWARE Y COSTOS
PROYECTOS DE SOFTWARE Y COSTOSPROYECTOS DE SOFTWARE Y COSTOS
PROYECTOS DE SOFTWARE Y COSTOS
 
Proyecto de Software y Estimacion de Costo
Proyecto de Software y Estimacion de CostoProyecto de Software y Estimacion de Costo
Proyecto de Software y Estimacion de Costo
 
presentacion de software y estimacion de doste
presentacion de software y estimacion de dostepresentacion de software y estimacion de doste
presentacion de software y estimacion de doste
 
Proyecto de Software y Coste
Proyecto de Software y CosteProyecto de Software y Coste
Proyecto de Software y Coste
 
Unidad # 8 diseño de planes de prueba
Unidad # 8 diseño de planes de pruebaUnidad # 8 diseño de planes de prueba
Unidad # 8 diseño de planes de prueba
 
Introduccion al desarrollo
Introduccion al desarrolloIntroduccion al desarrollo
Introduccion al desarrollo
 
Fundamentos del diseño y Garantías de Calidad del Software
Fundamentos del diseño y Garantías de Calidad del SoftwareFundamentos del diseño y Garantías de Calidad del Software
Fundamentos del diseño y Garantías de Calidad del Software
 
Chartprocesounificadoanalisis diseño
Chartprocesounificadoanalisis diseñoChartprocesounificadoanalisis diseño
Chartprocesounificadoanalisis diseño
 
Iso 9126
Iso 9126Iso 9126
Iso 9126
 
Ciclo de vida
Ciclo de vidaCiclo de vida
Ciclo de vida
 

Mehr von Marta Silvia Tabares

Gic vista desde los procesos de negocio
Gic vista desde los procesos de negocioGic vista desde los procesos de negocio
Gic vista desde los procesos de negocioMarta Silvia Tabares
 
Arquitecturas empresariales version gerencia de información
Arquitecturas empresariales   version gerencia de informaciónArquitecturas empresariales   version gerencia de información
Arquitecturas empresariales version gerencia de informaciónMarta Silvia Tabares
 
Arquitecturas empresariales para Ingenieros de Sistemas/Informáticos/de Software
Arquitecturas empresariales para Ingenieros de Sistemas/Informáticos/de SoftwareArquitecturas empresariales para Ingenieros de Sistemas/Informáticos/de Software
Arquitecturas empresariales para Ingenieros de Sistemas/Informáticos/de SoftwareMarta Silvia Tabares
 
Introducción a las Arquitecturas Orientadas a Servicios
Introducción a las Arquitecturas Orientadas a ServiciosIntroducción a las Arquitecturas Orientadas a Servicios
Introducción a las Arquitecturas Orientadas a ServiciosMarta Silvia Tabares
 
Gerencia de procesos- Arquitectura Empresarial
Gerencia de procesos- Arquitectura EmpresarialGerencia de procesos- Arquitectura Empresarial
Gerencia de procesos- Arquitectura EmpresarialMarta Silvia Tabares
 
Gerencia de procesos - Gestión del Proceso
Gerencia de procesos - Gestión del ProcesoGerencia de procesos - Gestión del Proceso
Gerencia de procesos - Gestión del ProcesoMarta Silvia Tabares
 
Gerencia de procesos - Gestión por procesos
Gerencia de procesos - Gestión por procesosGerencia de procesos - Gestión por procesos
Gerencia de procesos - Gestión por procesosMarta Silvia Tabares
 
Gerencia de procesos - Organizaciones orientadas por procesos
Gerencia de procesos - Organizaciones orientadas por procesosGerencia de procesos - Organizaciones orientadas por procesos
Gerencia de procesos - Organizaciones orientadas por procesosMarta Silvia Tabares
 
Gerencia de Procesos - Introduccion al Curso
Gerencia de Procesos - Introduccion al CursoGerencia de Procesos - Introduccion al Curso
Gerencia de Procesos - Introduccion al CursoMarta Silvia Tabares
 
Introducción de pruebas de software
Introducción de pruebas de softwareIntroducción de pruebas de software
Introducción de pruebas de softwareMarta Silvia Tabares
 
Gestion de proyectos - Estimación del Esfuerzo
Gestion de proyectos - Estimación del EsfuerzoGestion de proyectos - Estimación del Esfuerzo
Gestion de proyectos - Estimación del EsfuerzoMarta Silvia Tabares
 
Planeación y gestión de proyectos informáticos
Planeación y gestión de proyectos informáticosPlaneación y gestión de proyectos informáticos
Planeación y gestión de proyectos informáticosMarta Silvia Tabares
 
Ingeniería de software II- Parte 3.2
Ingeniería de software II- Parte 3.2Ingeniería de software II- Parte 3.2
Ingeniería de software II- Parte 3.2Marta Silvia Tabares
 
Ingeniería de software II - Parte 3.1
Ingeniería de software II - Parte 3.1Ingeniería de software II - Parte 3.1
Ingeniería de software II - Parte 3.1Marta Silvia Tabares
 
Ingeniería de software II - Parte 4
Ingeniería de software II - Parte 4Ingeniería de software II - Parte 4
Ingeniería de software II - Parte 4Marta Silvia Tabares
 
Ingeniería de software II - Parte 1
Ingeniería de software II - Parte 1Ingeniería de software II - Parte 1
Ingeniería de software II - Parte 1Marta Silvia Tabares
 
Ingeniería de software II - Parte 2
Ingeniería de software II - Parte 2Ingeniería de software II - Parte 2
Ingeniería de software II - Parte 2Marta Silvia Tabares
 

Mehr von Marta Silvia Tabares (20)

Gic vista desde los procesos de negocio
Gic vista desde los procesos de negocioGic vista desde los procesos de negocio
Gic vista desde los procesos de negocio
 
Arquitecturas empresariales version gerencia de información
Arquitecturas empresariales   version gerencia de informaciónArquitecturas empresariales   version gerencia de información
Arquitecturas empresariales version gerencia de información
 
Gestión del conocimento parte 1
Gestión del conocimento parte 1Gestión del conocimento parte 1
Gestión del conocimento parte 1
 
Gestión del conocimento parte 2
Gestión del conocimento parte 2Gestión del conocimento parte 2
Gestión del conocimento parte 2
 
Gestión del conocimento parte 3
Gestión del conocimento parte 3Gestión del conocimento parte 3
Gestión del conocimento parte 3
 
Arquitecturas empresariales para Ingenieros de Sistemas/Informáticos/de Software
Arquitecturas empresariales para Ingenieros de Sistemas/Informáticos/de SoftwareArquitecturas empresariales para Ingenieros de Sistemas/Informáticos/de Software
Arquitecturas empresariales para Ingenieros de Sistemas/Informáticos/de Software
 
Introducción a las Arquitecturas Orientadas a Servicios
Introducción a las Arquitecturas Orientadas a ServiciosIntroducción a las Arquitecturas Orientadas a Servicios
Introducción a las Arquitecturas Orientadas a Servicios
 
Gerencia de procesos- Arquitectura Empresarial
Gerencia de procesos- Arquitectura EmpresarialGerencia de procesos- Arquitectura Empresarial
Gerencia de procesos- Arquitectura Empresarial
 
Gerencia de procesos - Gestión del Proceso
Gerencia de procesos - Gestión del ProcesoGerencia de procesos - Gestión del Proceso
Gerencia de procesos - Gestión del Proceso
 
Gerencia de procesos - Gestión por procesos
Gerencia de procesos - Gestión por procesosGerencia de procesos - Gestión por procesos
Gerencia de procesos - Gestión por procesos
 
Gerencia de procesos - Organizaciones orientadas por procesos
Gerencia de procesos - Organizaciones orientadas por procesosGerencia de procesos - Organizaciones orientadas por procesos
Gerencia de procesos - Organizaciones orientadas por procesos
 
Gerencia de Procesos - Introduccion al Curso
Gerencia de Procesos - Introduccion al CursoGerencia de Procesos - Introduccion al Curso
Gerencia de Procesos - Introduccion al Curso
 
Introducción de pruebas de software
Introducción de pruebas de softwareIntroducción de pruebas de software
Introducción de pruebas de software
 
Gestion de proyectos - Estimación del Esfuerzo
Gestion de proyectos - Estimación del EsfuerzoGestion de proyectos - Estimación del Esfuerzo
Gestion de proyectos - Estimación del Esfuerzo
 
Planeación y gestión de proyectos informáticos
Planeación y gestión de proyectos informáticosPlaneación y gestión de proyectos informáticos
Planeación y gestión de proyectos informáticos
 
Ingeniería de software II- Parte 3.2
Ingeniería de software II- Parte 3.2Ingeniería de software II- Parte 3.2
Ingeniería de software II- Parte 3.2
 
Ingeniería de software II - Parte 3.1
Ingeniería de software II - Parte 3.1Ingeniería de software II - Parte 3.1
Ingeniería de software II - Parte 3.1
 
Ingeniería de software II - Parte 4
Ingeniería de software II - Parte 4Ingeniería de software II - Parte 4
Ingeniería de software II - Parte 4
 
Ingeniería de software II - Parte 1
Ingeniería de software II - Parte 1Ingeniería de software II - Parte 1
Ingeniería de software II - Parte 1
 
Ingeniería de software II - Parte 2
Ingeniería de software II - Parte 2Ingeniería de software II - Parte 2
Ingeniería de software II - Parte 2
 

Kürzlich hochgeladen

tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
Explorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ramExplorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ramDIDIERFERNANDOGUERRE
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfjeondanny1997
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxMariaBurgos55
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxJOSEFERNANDOARENASCA
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxJOSEMANUELHERNANDEZH11
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxGESTECPERUSAC
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son241514984
 
Excel (1) tecnologia.pdf trabajo Excel taller
Excel  (1) tecnologia.pdf trabajo Excel tallerExcel  (1) tecnologia.pdf trabajo Excel taller
Excel (1) tecnologia.pdf trabajo Excel tallerValentinaTabares11
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOnarvaezisabella21
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMidwarHenryLOZAFLORE
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxAlexander López
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxAlexander López
 

Kürzlich hochgeladen (20)

tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
Explorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ramExplorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ram
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptx
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptx
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptx
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptx
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son
 
Excel (1) tecnologia.pdf trabajo Excel taller
Excel  (1) tecnologia.pdf trabajo Excel tallerExcel  (1) tecnologia.pdf trabajo Excel taller
Excel (1) tecnologia.pdf trabajo Excel taller
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptx
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
 

Arquitecturas de software - Parte 2

  • 1. Arquitecturas de Software Parte 2 - Características Generales - Atributos de Calidad - Patrones/Estilos de Arquitectura Material académico preparado por: Ph.D Marta Silvia Tabares B. Fecha última actualización 4-Sep-2011
  • 2. Ingeniería de Software II (mapa conceptual de tópicos de conocimiento) Material Preparado por MARTA SILVIA TABARES B. UdeM
  • 3. Bibliografía Los conceptos utilizados en esta presentación fueron estudiados y tomados en su mayoría de las siguientes referencias bibliográficas. 1. Arlow, J., and Neustad, I. UML 2 and the Unified Process: Practical Object-Oriented Analysis and Design (2nd Edition). Addison-Wesley Object Technology Series. 2005. 2. OMG-UML. Unified Modeling Language: Superstructure. Version 2.0, formal/05-07-04. 2005. 3. Jacobson, I., Booch, G., Rumbaugh, J. El Proceso Unificado de Desarrollo de Software. Addison Wesley. 2000. 4. Alan Dennis, Barbara Haley Wixom and David Tegarden. Systems Analysis and Design with UML Version 2.0 - An Object Oriented Approach, Second Edition. John Wiley & Sons © 2005. 5. Simon Bennett, Stee McRobb, y Ray Farmer. Análisis y Diseño Orientado a Objetos del Sistema, Usando UML. McGraw-Hill, 2006. 6. Bass, L., Clements, P., Kazman, R. Software Architecture in Practice Second Edition. 7. Pressman, R. Ingeniería del Software un Enfoque Práctico. 8. Camacho, E.; Cardeso, F.; Nuñez, G. ARQUITECTURAS DE SOFTWARE - GUÍA DE ESTUDIO. (Abril, 2004). 9. www.sei.cmu.edu.co 10. http://www.iso.org/iso/home.html 11. http://iso25000.com/index.php/iso-iec-9126.html 3 Material académico preparado por Marta Silvia Tabares B. UdeM
  • 4. Arquitectura de Software Flujo de Definición Material académico preparado por Marta 4 Silvia Tabares B. UdeM
  • 5. Pasos para definición de una arquitectura de software • Creación del caso de negocio para el sistema • Entendimiento de los requisitos • Creación y selección de la Arquitectura • Documentación y comunicación de la Arquitectura • Análisis o evaluación de la arquitectura • Implementación del sistema basado en la arquitectura • Aseguramiento de que la implementación esté acorde a la arquitectura Material académico preparado por Marta 5 Silvia Tabares B. UdeM
  • 6. Arquitectura de Software • Por qué hay que hacer modelos de arquitectura? – Esto permite valorar hasta qué punto cumple el sistema los Atributos de Calidad. Material académico preparado por Marta 6 Silvia Tabares B. UdeM
  • 7. Arquitectura de Software Calidad del Software • La Calidad de Software para Pressman (2002) es: – “la concordancia con los requisitos funcionales y de rendimiento establecidos con los estándares de desarrollo explícitamente documentados y con las características implícitas que se espera de todo software desarrollado de forma profesional”. Material académico preparado por Marta 7 Silvia Tabares B. UdeM
  • 8. Arquitectura de Software Atributos de Calidad • Según Barbacci et al. (1995) la calidad de software se define como el grado en el cual el software posee una combinación deseada de atributos. Tales atributos son requerimientos adicionales del sistema (Kazman et al., 2001), que hacen referencia a características que éste debe satisfacer, diferentes a los requerimientos funcionales. • Estas características o atributos se conocen con el nombre de atributos de calidad, los cuales se definen como las propiedades de un servicio que presta el sistema a sus usuarios (Barbacci et al. 1995). Material académico preparado por Marta 8 Silvia Tabares B. UdeM
  • 9. Arquitectura de Software Norma ISO/IEC 9126 • ISO/IEC (Intenational Standart Organitation u Organización Internacional de Estándares en español) define a la calidad de software como: – la totalidad de rasgos y atributos de un producto de software que le apoyan en su capacidad de satisfacer sus necesidades explícitas o implícitas (ISO/IEC 9126, 1998). Material académico preparado por Marta 9 Silvia Tabares B. UdeM
  • 10. Arquitectura de Software Norma ISO/IEC 9126 http://iso25000.com/index.php/iso-iec-9126.html 10 Material académico preparado por Marta Silvia Tabares B. UdeM
  • 11. Arquitecturas de Software Norma ISO/IEC 9126 • El modelo de calidad establecido en la primera parte del estándar, ISO 9126-1, clasifica la calidad del software en un conjunto estructurado de características y subcaracterísticas de la siguiente manera: • Funcionalidad - Un conjunto de atributos que se relacionan con la existencia de un conjunto de funciones y sus propiedades específicas. Las funciones son aquellas que satisfacen las necesidades implícitas o explícitas. – Idoneidad – Exactitud – Interoperabilidad – Seguridad – Cumplimiento de normas. • Fiabilidad - Un conjunto de atributos relacionados con la capacidad del software de mantener su nivel de prestación bajo condiciones establecidas durante un período establecido. – Madurez – Recuperabilidad – Tolerancia a fallos Material académico preparado por Marta 11 Silvia Tabares B. UdeM
  • 12. Arquitecturas de Software Norma ISO 9126 • Usabilidad - Un conjunto de atributos relacionados con el esfuerzo necesario para su uso, y en la valoración individual de tal uso, por un establecido o implicado conjunto de usuarios. – Aprendizaje – Comprensión – Operatividad – Atractividad • Eficiencia - Conjunto de atributos relacionados con la relación entre el nivel de desempeño del software y la cantidad de recursos necesitados bajo condiciones establecidas. – Comportamiento en el tiempo – Comportamiento de recursos Material académico preparado por Marta 12 Silvia Tabares B. UdeM
  • 13. Arquitecturas de Software Norma ISO 9126 • Mantenibilidad - Conjunto de atributos relacionados con la facilidad de extender, modificar o corregir errores en un sistema software. – Estabilidad – Facilidad de análisis – Facilidad de cambio – Facilidad de pruebas • Portabilidad - Conjunto de atributos relacionados con la capacidad de un sistema software para ser transferido desde una plataforma a otra. – Capacidad de instalación – Capacidad de reemplazamiento – Adaptabilidad – Co-Existencia Material académico preparado por Marta 13 Silvia Tabares B. UdeM
  • 14. Arquitectura de Software Atributos de Calidad • Categorías de Atributos de Calidad Bass et al. (1998) : – Observables vía ejecución: aquellos atributos que se determinan del comportamiento del sistema en tiempo de ejecución. La descripción de algunos de – No observables vía ejecución: aquellos atributos que se establecen durante el desarrollo del sistema. Material académico preparado por Marta 14 Silvia Tabares B. UdeM
  • 15. Arquitectura de Software Atributos de Calidad – No observables vía ejecución Fuente: Camacho, E.; Cardeso, F.; Nuñez, G. ARQUITECTURAS DE SOFTWARE - GUÍA DE ESTUDIO. (Abril, 2004). 15 Material académico preparado por Marta Silvia Tabares B. UdeM
  • 16. Arquitectura de Software Atributos de Calidad – NO observables vía ejecución Fuente: Camacho, E.; Cardeso, F.; Nuñez, G. ARQUITECTURAS DE SOFTWARE - GUÍA DE ESTUDIO. (Abril, 2004). 16 Material académico preparado por Marta Silvia Tabares B. UdeM
  • 17. Qué son Requisitos Arquitectónicamente Significativos? • Captura la funcionalidad esencial del sistema • Tiene amplia cobertura (usa muchos elementos de arquitectura). • Es un desafío de implementación para la arquitectura. • Enfatiza o detalla problemas o riesgos identificados. • Ejemplifica demandas rigurosas en la arquitectura (p.ej exigencias de rendimiento (performance)). • Son susceptibles a cambios. • Involucran comunicación y sincronización con sistemas externos. 17 Material académico preparado por Marta Silvia Tabares B. UdeM
  • 18. Definición de una Arquitectura Candidata • Aunque una arquitectura muchas veces se define como un conjunto de componentes y conectores, es importante hacer la siguiente evaluación de los elementos que podrían determinar una arquitectura candidata: Naturaleza de los elementos – Cuál es el significado de su separación? – Ellos se ejecutan en procesadores separados, en tiempos diferentes? – Ellos se componen de procesos, programas o ambos? – Ellos representan la forma en la cual el que hacer de los proyectos será dividido? – Ellos se definen en el sentido de la separación de ejecución? – Ellos son los objetos, tareas, funciones, procesos, programas distribuidos, o alguna cosa parecida? Responsabilidades de los elementos – Qué es lo que ellos hacen? – Cuál es su función en el sistema? Material académico preparado por Marta 18 Silvia Tabares B. UdeM
  • 19. Definición de una Arquitectura Candidata Significado de las conexiones Las conexiones significan que los elementos entre si se comunican, controlan, envían datos, sincronizan, comparten alguna información secreta. – Algunas son combinaciones de estos u otras relaciones? – Cuales son los mecanismos para la comunicación? – Qué información fluye a través de los mecanismos? Significado de las capas (vistas) – Por qué el proceso de control está en un nivel separado? – Es este llamado por elementos de otras capas? – Hay restricciones de llamado entre los elementos de diferentes capas? Material académico preparado por Marta 19 Silvia Tabares B. UdeM
  • 20. Definición de una Arquitectura Candidata Tipo de Arquitectura Ejemplos de Ejemplos de Elementos Relaciones Conceptual Componentes Conectores Modular Subsistemas, Exportaciones, módulos importaciones Código Archivos, directorios, Incluye, contiene bibliotecas Ejecución Tareas, líneas, Usos, llamadas interacciones de objetos Cuatro aspectos de la arquitectura del software según Soni et al. (adaptado de Weir y Daniels, 1998) Material académico preparado por Marta 20 Silvia Tabares B. UdeM
  • 21. La Arquitectura de Referencia Modelo de Referencia Arquitectura de Software de Referencia Arquitectura Patrón Arquitectónico Estos son conceptos útiles que capturan elementos de una arquitectura, pero en sí ellos no son arquitecturas. Material académico preparado por Marta 21 Silvia Tabares B. UdeM
  • 22. Modelo de Referencia Un modelo de Referencia es una división de funcionalidad junto con el flujo de datos entre las piezas. Es un estándar de descomposición de un problema conocido, en partes que cooperativamente resuelven el problema. Material académico preparado por Marta 22 Silvia Tabares B. UdeM
  • 23. Arquitectura de Referencia Es un modelo de referencia mapeado en elementos de software que cooperativamente implementan la funcionalidad definida en el modelo de referencia y flujos de datos entre ellos Material académico preparado por Marta 23 Silvia Tabares B. UdeM
  • 24. Diseño Arquitectónico • Estructuras – Módulos: los elementos son módulos, los cuales son unidades de implementación. – Componentes-y-Conector: los elementos son componentes de ejecución (los cuales son principalmente unidades de computación) y conectores (los cuales son el vehículo de comunicación entre los componentes). – De Localización: muestran la relación entre los elementos de software y los elementos en uno o más ambientes externos en los cuales el software es creado o ejecutado. Material académico preparado por Marta 24 Silvia Tabares B. UdeM
  • 25. Diseño Arquitectónico • Estructuras Localización Módulo Asignación Implementación Descomposición Clase Componente-y- de trabajo Usos Conector Despliegue Capas Cliente- Proceso Servidor Concurrencia Datos compartidos Material académico preparado por Marta 25 Silvia Tabares B. UdeM
  • 26. Diseño Arquitectónico • Los procesos de desarrollo basados en el Proceso Unificado están centrados en la arquitectura. • La elección de una arquitectura correcta implica que los arquitectos deben estar involucrados desde el principio del proyecto. • La elección de la arquitectura correcta al principio del proyecto también tiene que ver con la reducción de los riesgos del proyecto. Material académico preparado por Marta 26 Silvia Tabares B. UdeM
  • 27. Diseño Arquitectónico • Las arquitecturas del sistema son usadas por diversos conjuntos de personas en tiempos diferentes en el ciclo de desarrollo, por esta razón es frecuente ver que estas arquitecturas son separadas en vistas diferentes. • El Proceso Unificado Racional (RUP) identifica un conjunto de vistas estándar llamado 4+1 Vistas de Arquitectura. Este enfoque permite que todos los grupos de participantes comuniquen las necesidades (es decir, requisitos), resuelvan los conflictos, y realicen los documentos de decisiones. Material académico preparado por Marta 27 Silvia Tabares B. UdeM
  • 28. Patrones/Estilos Arquitectónicos Un patrón arquitectónico es una descripción de tipos de elementos y relaciones con un conjunto de restricciones de cómo ellos pueden ser usados. Material académico preparado por Marta 28 Silvia Tabares B. UdeM
  • 29. Patrones/Estilos Arquitectónicos • Estilos de Flujo de Datos – Tubería y filtros • Estilos Centrados en Datos – Arquitecturas de Pizarra o Repositorio • Estilos de Llamada y Retorno – Modelo-Vista-Control (MVC) – Arquitecturas en Capas – Arquitecturas Orientadas a Objetos – Arquitecturas Basadas en Componentes Material académico preparado por Marta 29 Silvia Tabares B. UdeM
  • 30. Patrones o Estilos Arquitectónicos • Estilos de Código Móvil – Arquitectura de Máquinas Virtuales • Estilos heterogéneos – Sistemas de control de procesos – Arquitecturas Basadas en Atributos • Estilos Peer-to-Peer – Arquitecturas Basadas en Eventos – Arquitecturas Orientadas a Servicios – Arquitecturas Basadas en Recursos Material académico preparado por Marta 30 Silvia Tabares B. UdeM
  • 31. Patrón Arquitectónico: Cliente - Servidor Servidor Cliente Cliente Cliente y Servidor son dos tipos de elementos y su coordinación se describe en términos del protocolo que el servidor usa para comunicarse con cada uno de sus cliente Material académico preparado por Marta 31 Silvia Tabares B. UdeM
  • 32. Patrón Arquitectónico: Arquitectura Centrada en los Datos • Un almacén de datos (archivo o base de datos) se encuentra en el centro de la arquitectura, los otros componentes tienen acceso a el y cuentan con la opción de actualizar, agregar, eliminar o modificar datos de dicho almacén. Software Software Cliente Cliente Almacén de Datos Software Software Cliente Cliente Material académico preparado por Marta 32 Silvia Tabares B. UdeM
  • 33. Patrón Arquitectónico: Arquitectura Física Centrada en los Datos Material académico preparado por Marta 33 Silvia Tabares B. UdeM
  • 34. Patrón Arquitectónico: Arquitectura por Capas Cada capa (layer – Tier) es un nivel de abstracción del sistema. System Time (Time). This component allows the system to run at a userdefined time in a simulation mode. With multiple instances of this component, real time and simulated time can be used concurrently. Time Synchronization (TSync). With different parts of the system running on different hardware nodes, synchronizing the system time on each node is critical. Communication Protocols (Comm). This component includes components dealing with low- level communication protocols tailored for specific applications. Built-in Test (BiT). These modules handle hardware testing. Material académico preparado por Marta 34 Silvia Tabares B. UdeM
  • 35. Patrón Arquitectónico: Arquitectura en o por Capas Fuente: imágenes de google Material académico preparado por Marta Silvia Tabares B. UdeM 35
  • 36. Patrón Arquitectónico: Arquitectura Por Capas (Ej. 1) Material académico preparado por Marta 36 Silvia Tabares B. UdeM
  • 37. Patrón Arquitectónico: Arquitectura Por Capas (Ej. 2) 37 Material académico preparado por Marta Silvia Tabares B. UdeM
  • 38. Patrón Arquitectónico: Arquitectura Por Capas (Ej. 3) Material académico preparado por Marta 38 Silvia Tabares B. UdeM
  • 39. Patrón Arquitectónico Arquitectura Flujo de Datos – Filtros (Filters) y Tuberías (Pipes) 39 Material académico preparado por Marta Silvia Tabares B. UdeM
  • 40. Patrón Arquitectónico Arquitectura Flujo de Datos – Filtros (Filters) y Tuberías (Pipes) Los componentes se denominan FILTROS que son conectados por medio de TUBERÍAS las cuales transmiten los datos. Se aplica cuando los datos de entrada se habrán transformado en datos de salida mediante una serie de componentes para el cálculo o la manipulación. 40 Material académico preparado por Marta Silvia Tabares B. UdeM
  • 41. Patrón Arquitectónico Arquitectura Flujo de Datos – Filtros y Tuberías Un ejemplo de uso del patrón Filtros y Tuberías - Requisito de Seguridad class Filtros y Tuberías User - id: int - name: varchar 1..* MemberOf 1..* Role ProtectionObj ect isAuthorizedFor - id: int - id: int - name: varchar - name: varchar Right - accessType: varchar + checkRights() : void Modelo de clases: Requisito de Seguridad Fuente teórica : Fernandez, E; Ortega-Arjona, J; The Secure Pipes and Filters pattern. Fifth LACCEI International Latin American and Caribbean Conference for Engineering and Technology (LACCEI’2007) “Developing Entrepreneurial Engineers for the Sustainable Growth of Latin America and the Caribbean: Education, Innovation, Technology and Practice” 29 May – 1 June 2007, Tampico, México. 41 Material académico preparado por Marta Silvia Tabares B. UdeM
  • 42. Patrón Arquitectónico Arquitectura Flujo de Datos – Filtros (Filters) y Tuberías (Pipes) Un ejemplo de uso del patrón Filtros y Tuberías - Requisito de Seguridad sd Sistema :RefMonitor :Right :Filter_j :Pipe_i :Pipe_j :Role1 op3(role) checkRights() :decision :desicion op3() read (data) read (data) write (data) op3() write(data) Fuente teórica: Fernandez, E; Ortega-Arjona, J; The Secure Pipes and Filters pattern 42 Material académico preparado por Marta Silvia Tabares B. UdeM
  • 43. Patrón Arquitectónico Arquitectura Flujo de Datos – Filtros (Filters) y Tuberías (Pipes) Un ejemplo de uso del patrón Filtros y Tuberías - Requisito de Seguridad Fuente teórica: Fernandez, E; Ortega-Arjona, J; The Secure Pipes and Filters pattern 43 Material académico preparado por Marta Silvia Tabares B. UdeM
  • 44. Patrón Arquitectónico: Arquitectura Modelo – Vista - Control Un Ejemplo: Material académico preparado por Marta 44 Silvia Tabares B. UdeM
  • 45. Patrón Arquitectónico: Arquitectura Orientada a Servicios Imagen tomada de «imágenes google» 45 Material académico preparado por Marta Silvia Tabares B. UdeM
  • 46. Patrón Arquitectónico: Arquitectura Orientada a Servicios Imagen tomada de «imágenes google» 46 Material académico preparado por Marta Silvia Tabares B. UdeM
  • 47. Patrón Arquitectónico: Arquitectura Hibridas (Servicios – Capas – Plataformas) Sharepoint architectura Imagenes tomada de Avepoint Material académico preparado por Marta 47 Silvia Tabares B. UdeM
  • 48. Modelo de Referencia – Patrón Arquitectónico Modelo-Vista-Controlador Clase Interfaz <<Interface>>: • En UML Recepcionar peticiones al sistema. Mostrar respuestas del sistema. Se propone para el desarrollo del Modelo de Análisis de las aplicaciones, tres tipos de clases Clase Entidad <<Entity>>: fundamentales, con las cuales Gestionar datos (información) necesaria podemos expresar todas las para el sistema. Almacenar datos (información) funciones de cualquier software, persistentes del sistema. con sus respectivas Provee la funcionalidad principal de responsabilidades la aplicación Clase Controlador <<Controller>>: Procesar Información del sistema. Gestionar visualización de respuesta del sistema. Obtiene los datos del modelo. Material académico preparado por Marta 48 Silvia Tabares B. UdeM
  • 49. Modelo de Referencia – Patrón Arquitectónico Modelo-Vista-Controlador • Este patrón arquitectónico y de diseño fue descrito por primera vez por Trygve Reenskaug en 1979 y fue implementado en Smalltalk en los laboratorios Xerox. • MVC se basa en la separación de la aplicación en tres capas principales: Modelo, Vista y Controlador. • Se usa (él o alguna de sus variantes) en la gran mayoría de las interfaces de usuario. Material académico preparado por Marta 49 Silvia Tabares B. UdeM
  • 50. Modelo de Referencia – Patrón Arquitectónico Modelo-Vista-Controlador Ejemplo del flujo de mensajes entre: Material académico preparado por Marta 50 Silvia Tabares B. UdeM
  • 51. Modelo de Referencia – Patrón Arquitectónico Modelo-Vista-Controlador • Vista: Se presenta el modelo en un formato adecuado para interactuar, usualmente un elemento de interfaz de usuario. • Controlador: Este responde a eventos, usualmente acciones del usuario e invoca cambios en el modelo y probablemente en la vista. Material académico preparado por Marta 51 Silvia Tabares B. UdeM
  • 52. Modelo de Referencia – Patrón Arquitectónico Modelo-Vista-Controlador • Muchas aplicaciones utilizan un mecanismo de almacenamiento persistente (como puede ser una base de datos) para almacenar los datos. MVC no menciona específicamente esta capa de acceso a datos porque supone que está encapsulada por el modelo. • El objetivo primordial del MVC es la reutilización del código ya implementado. • Esta tarea se facilita mucho si a la hora de programar tenemos la precaución de separar el código en varias partes que sean susceptibles de ser reutilizadas sin modificaciones. Material académico preparado por Marta 52 Silvia Tabares B. UdeM
  • 53. Modelo de Referencia – Patrón Arquitectónico Modelo-Vista-Controlador Ejemplos • Los datos de una hoja de cálculo pueden mostrarse de en formato tabular, con un gráfico de barras, con uno de sectores. • Los datos son el modelo. • Si cambia el modelo, las vistas deberían actualizarse en consonancia. • El usuario manipula el modelo a través de las vistas. ������ (en realidad, a través de los controladores) Material académico preparado por Marta 53 Silvia Tabares B. UdeM
  • 54. Modelo de Referencia – Patrón Arquitectónico Modelo-Vista-Controlador Mas de una Vista de un Modelo de Datos Material académico preparado por Marta 54 Silvia Tabares B. UdeM
  • 55. Modelo de Referencia – Patrón Arquitectónico Modelo-Vista-Controlador • MVC es utilizado con mayor frecuencia en las aplicaciones web, donde la Vista es la página HTML, y el Controlador es el código que reúne la data dinámica y genera el contenido de la página. • El Modelo es representado por el contenido actual, que usualmente se encuentra almacenado en una base de datos o en archivos XML. Material académico preparado por Marta 55 Silvia Tabares B. UdeM
  • 56. Modelo de Referencia – Patrón Arquitectónico Modelo-Vista-Controlador Material académico preparado por Marta 56 Silvia Tabares B. UdeM
  • 57. Modelo de Referencia – Patrón Arquitectónico Modelo-Vista-Controlador Fortalezas • Se presenta la misma información de distintas formas. • Las vistas y comportamiento de una aplicación deben reflejar las manipulaciones de los datos de forma inmediata. • Debería ser fácil cambiar la interfaz de usuario (incluso en tiempo de ejecución). • Permitir diferentes estándares de interfaz de usuario o portarla a otros entornos no debería afectar al código de la aplicación. Material académico preparado por Marta 57 Silvia Tabares B. UdeM
  • 58. Modelo de Referencia – Patrón Arquitectónico Modelo-Vista-Controlador Muchas interfaces gráficas de usuario, como Swing o MFC, hacen innecesario el uso de un controlador. • Definen su propio flujo de control y manejan los eventos internamente. • Integran, así, la vista y el controlador. • A esta variante se la suele denominar Document-View Material académico preparado por Marta 58 Silvia Tabares B. UdeM
  • 59. Modelo de Referencia – Patrón Arquitectónico Modelo-Vista-Controlador Un controlador (controlador.java, por ejemplo) puede gestionar el clic en un botón, de tal forma que recoge datos por medio del Modelo (model.cargar_texto(..)) y los manda a la Vista (el applet) para su actualización (vista.mostrar_texto( )): /**************************************************************** Responde al click en botón "abrir" La respuesta al evento es hacer que se abra en la vista el archivo correspondiente a la referencia seleccionada en el combo box ****************************************************************/ void b_abrir_actionPerformed(ActionEvent e) { … String texto_archivo = model.cargar_texto( indice_ref ); // Obtener texto de archivo /*** Si la carga de archivo es ok, lo muestro. Si no, aviso de error ****/ if (texto_archivo != null) { vista.mostrar_texto(texto_archivo); // Mostrar texto vista.mostrar_aviso("Carga de " + path + " completada."); } else vista.mostrar_aviso("Error en la carga de " + path); } Material académico preparado por Marta 59 Silvia Tabares B. UdeM