Contexto: Aplicación gráfica.  Siempre que se piensa en separar la funcionalidad de una aplicación de su interacción con el usuario, bien sea una aplicación.

Slides:



Advertisements
Presentaciones similares
Red Social: “Un millón de Amigos”.
Advertisements

Fundamentos de Diseño de Software INFT.1
Front-end y Back-end Definición en diseño de software.
Análisis y Diseño Estructurado
ANÁLISIS DE REQUERIMIENTOS
Introducción a LAS Bases de Datos
Introducción 1 Puntos Clave –La orientación a objetos representa un cambio radical en los métodos tradicionales de creación de software –Los métodos tradicionales.
Introducción a la Ingeniería de Software
Teórico: Introducción
Model View Controller (MVC)
Etapas y actividades en el desarrollo OO basado en UML
UNIVERSIDAD LATINA (UNILA) IV. IMPLANTACION DE ALGORITMOS.
Ingeniería del Software
UNIDAD II Modelo de Datos.
DIAGRAMA DE COMPONENTES INTEGRANTES Córdova Vásquez Giovanny Escobar Alvares Calixto Gomez Quinteros Adelaida Pinto Flores Yarmila.
Introducción al Software
Profesor: Miguel Angel Vidal
Modelo de Análisis Centro ISYS Escuela de Computación
Laura Patricia Pinto Prieto Ingeniera de sistemas.
SISTEMAS GETIONADORES DE BASES DE DATOS
“Especificación de Requerimientos”
DEPARTAMENTO DE INGENIERÍA INFORMÁTICA

DISEÑO DE LA INTERFAZ DE USUARIO
* FRAUSTO JIMENEZ GABRIELA * * HERNANDEZ TORRES ANA LAURA * * MANDUJANO JUAN CARLOS * * NOVA MARIN YARELI PAULINA * * ZAVALA CORTE JOCELYN ARELI *
Arquitectura de una aplicación
ANDRES FELIPE BORRERO SALAZAR COD ALEXANDRA CARREÑO SALAS COD LUCIO ANIBAL CRIOLLO COD ALEJANDRO RUIZ IDROBO COD
DISEÑO DE SOFTWARE 1ª. Parte
Contenido: 1- Que es el .Net Framework 2- Arquitectura en .Net
Introducción A Las Bases De Datos
Fundamentos de Ingeniería de Software Facultad de Ingenieria Universidad Distrital Francisco José de Caldas ESPECIFICACIÓN Y MANEJO DE LOS REQUERIMIENTOS.
Presentado por Alfredo de la Mora Díaz Catedrático Dr. Jesús Favela
Tutor: Ing. Juan E. Talavera Horn 2010 GWT – EJB Patrones de diseño e integración.
Sistema Organizador de Invitaciones, Eventos y Memos basado en una aplicación Cliente – Servidor SOIEM TESIS DE GRADO FIEC – ESPOL 2007 Christian Vulgarin.
Ingeniería en Sistemas de Información Diseño de Sistemas (3K1)
Son la base para la búsqueda de soluciones o problemas comunes en el desarrollo de software y otros ámbitos referentes al diseño de interacción o interfaces.
Ingeniería en Sistemas de Información
Organización y Estructuración de Datos
REINGENIERIA Alumno: Ronald Marquez A.W. Modulo: Ing. Software.
SISTEMAS DE INFORMACION GEOGRAFICA. LOS SIG DEFINICION DEFINICION Un SIG se define como un conjunto de métodos, herramientas y datos que están diseñados.
SICSTRA Sistema de Información para el control de solicitudes de tramites jurídicos Ministerio de Justicia y Seguridad Pública.
Universidad Central de Venezuela Facultad de Ciencias Postgrado en Ciencias de la Computación Sistemas Distribuidos Albany Márquez.
Modelo-Vista-Controlador Este patrón fue descrito por primera vez por Trygve Reenskaug en 1979, y la implementación original fue realizada en Smalltalk.
FRAMEWORK VS Código fuente
GUTIÉRREZ GRANADOS HÉCTOR DANIEL
SOFTWARE WITNESS Alumna: Lucia Pantoja Obando. ¿Qué es el software Witness? Es una herramienta de simulación que permite modelar el entorno de trabajo,
Sistema informático de apoyo a la evaluación de la enseñanza IN.CO.
Introducción a UML Departamento de Informática Universidad de Rancagua
Ingeniería de Requisitos
Roles de Open UP.
Patrones de diseño equipo n.1
UML.
Unidad 3 MODELO DE ANALISIS.
Son los atributos de un sistema que son visibles para un programador, es decir aquellos atributos que impactan directamente en la ejecución lógica de un.
DESARROLLO DE APLICACIONES PARA AMBIENTES DISTRIBUÍDOS ALUMNOS: MARIANA MIGNÓN RÉDING CARLOS ANTONIO CARRASCO MARTÍNEZ PROFESOR: DR. JOSÉ BERNARDO PARRA.
Tecnologías Cliente / Servidor Capitulo II Richard Jiménez V. clienteserver.wordpress.com.
Colegio de Bachilleres Plantel 13 Xochimilco - Tepepan
Un requerimiento es una condición o capacidad a la que el sistema (siendo construido) debe conformar [ Rational ]. Un requerimiento de software puede.
Proliferación Celular LUIS FELIPE JIMENEZ CAICEDO ANDRES FELIPE VASQUEZ JHON ANDERSON YANGUAS JUAN DAVID PINTO PAOLA ANGELICA GIRÓN ISIS VICTORIA PIZO.
Arquitectura de una aplicación Arquitectur a: desarrolla un plan general del sistema, asegurando que las necesidades de los usuarios sean atendidas. Ingeniería.
Partes de la ventana Access
Introducción a la Base de Datos Profesora: Nelwi Báez.
Las fases del ciclo de la vida de desarrollo de sistemas
Integrantes: Castro José República Bolivariana De Venezuela Ministerio Del Poder Popular Para La Educación Superior Instituto Universitario Tecnológico.
Fundamentos de Ingeniería de Software
BASES DE DATOS DISTRIBUIDAS M.C.C. María Guadalupe Villanueva Carrasco INGENIERIA EN SISTEMAS COMPUTACIONALES.
Presentación De UML Lenguaje estándar para escribir planos de software Se usa para visualizar, especificar, construir y documentar los artefactos de un.
Transparencia: Un Estado más Cercano a las Personas Rodrigo A. Martorell Gerente Técnico CAS -CHILE®
Entregables del Proyecto
Definición: Es un estilo de programación, su objetivo primordial es la separación de la capa de presentación, capa de negocio y la capa de datos. ARQUITECTURA.
Transcripción de la presentación:

Contexto: Aplicación gráfica

 Siempre que se piensa en separar la funcionalidad de una aplicación de su interacción con el usuario, bien sea una aplicación Web o una aplicación de escritorio, se piensa en una descomposición utilizando MVC como una obligación.

 Las arquitecturas de software buscan mostrar formas de aplicar una descomposición modular de las diferentes funcionalidades de un sistema, separando responsabilidades bien definidas en cada uno de los módulos.

 Existen patrones de arquitectura que definen la estructura modular que deben seguir los sistemas interactivos, dicha estructura a modo general, separa los componentes de visualización, lógica de procesamiento y almacenamiento de datos

 De los patrones existentes el más utilizado en los sistemas interactivos es el patrón MVC, sin embargo:  ¿Cuál es la razón para utilizar este patrón de manera tan amplia?  ¿Existen otras alternativas de implementación?

 El objetivo de la presentación es realizar una comparación teórica entre las arquitecturas MVC y PAC, dentro de un contexto enfocado a la realización de una aplicación gráfica interactiva.

 La arquitectura MVC busca desacoplar el modelo de la visualización de un sistema, responsabilizando a cada módulo de una parte específica de las responsabilidades más comunes en una aplicación interactiva

 Separación modular de las responsabilidades  M (Modelo/Model) es el encargado de realizar la funcionalidad central y gran parte del procesamiento de los datos  V (Vista/View) es el componente encargado de desplegar la información del sistema y sus sistemas de interacción al usuario  C (Controlador/Controller) es el componente encargado de manejar las interacciones del usuario, traduciendo datos de la interfaz al modelo y viceversa. Es el encargado de mantener la consistencia entre la vista y el modelo

 Registrar Vistas con el Modelo para que éste los notifique usualmente se realiza con el patrón Observer  Es posible realizar una variación del patrón en donde existen diferentes listas de vistas a ser actualizadas de acuerdo con su interés.

1. Separar funcionalidad Principal de la interacción con el usuario 2. Implementar el mecanismo de propagación de cambios 3. Diseñar e Implementar las Vistas 4. Diseñar e Implementar los Controladores 5. Diseñar e Implementar las relaciones entre vista y controlador 6. Implementar la inicialización del MVC 7. Creación de Vistas Dinámicas 8. Controladores agregables 9. Infraestructura para vistas y controladores jerárquicos 10. Desacoplamiento de las dependencias del sistema

 Este patrón define una descomposición modular para sistemas interactivos utilizando agentes cooperativos organizados de manera jerárquica.

 La descomposición de componentes se realiza de la siguiente manera:  Se definen agentes que se hacen cargo de un aspecto de la funcionalidad  Cada uno de los agentes definidos contiene 3 componentes: Presentación, Abstracción y Control  P (Presentación /Presentation) Es el encargado de mostrar la interfaz del usuario  A (Abstracción / Abstraction) Se encarga de mantener el estado del agente y sus modificaciones.  C (Control /Control) Es el encargado de comunicación entre agentes, este componente generalmente tiene las mismas responsabilidades en los diferentes agentes

 El componente de Control usualmente se implementa usando un “Mediator”  El componente de Presentación usualmente se implementa usando un “Strategy”

1. Definir un modelo de la aplicación; 2. Definir una estrategia general para organizar la jerarquía 3. Especificar los Agentes Top-Level 4. Especificar los Agentes Bottom-Level 5. Especificar los Agentes Bottom-Level para servicios del sistema 6. Especificar los Agentes Intermediate-Level que se componen de los Agentes Bottom-Level 7. Especificar los Agentes Intermediate-Level que coordinan a los Agentes Bottom-Level 8. Separar funcionalidad Principal de la interacción con el usuario 9. Proveer la interfaz externa 10. Vincular los agentes de acuerdo con la jerarquía

MVCPAC  Implementación sencilla  Funcionalidades bien definidas  Facilita el cambio o la adición de una nueva vista  Funcionalidades especificas  Procesamiento en paralelo por definición  Facilita el cambio de una funcionalidad  Comunicación bien definida sin necesidad de conocer los otros agentes

MVCPAC  Alto acoplamiento entre algunos componentes  Al aumentar el numero de vistas aumenta la complejidad  Necesidad de contar con una lista de vistas a actualizar  Complejo de Implementar  No existe una regla general para la definición de responsabilidades entre los agentes

 La arquitectura más utilizada es la MVC, ya que facilita la implementación de la representación visual de los datos generados en el modelo.  MVC es utilizado para aplicaciones que se basan en un mismo modelo, esto ocurre en una gran cantidad de aplicaciones gráficas como juegos.

 Las posibles limitaciones del MVC en cuanto a diferentes entradas y múltiples vistas se ven amortiguadas por el hecho que, usualmente, las aplicaciones gráficas son mono usuario y la gran parte del procesamiento se encuentra en el modelo.

 En una implementación con el patrón PAC facilita la lectura de datos y la presentación adecuada de éstos  Cada uno de los agentes involucrados se encarga de una parte de la funcionalidad y realiza procesos en paralelo

 Una aplicación que requiera procesar gran cantidad de datos para visualizarlos puede beneficiarse de la eficiencia brindada por el PAC.  Un ejemplo es un simulador de fuerzas físicas, en el cual se tienen en cuenta gran cantidad de datos que requieren ser procesados y visualizados rápidamente y de forma realista

 Aunque con el patrón PAC se aumenta la complejidad de implementación, se solucionan algunos problemas que el MVC contiene, como la necesidad de tener la lista de vistas a implementar y la necesidad de implementar paralelismo en el modelo, ya que el patrón PAC funciona de forma paralela desde su definición.  PAC puede generar un en el rendimiento de una aplicación gráfica similar a un simulador

 Implementación de una aplicación gráfica, tipo simulador utilizando ambos patrones y comparar tiempos de respuesta y de procesamiento con el fin de comparar el rendimiento de un sistema que utiliza MVC con otro que utiliza PAC