Patrones GRASP.

Slides:



Advertisements
Presentaciones similares
Fundamentos de Diseño de Software INFT.1
Advertisements

FACHADA COMPOSITOR MEMENTO
Lenguaje Unificado de Modelado
Uso de patrones de arquitectura
Tecnologías para desarrollo de aplicaciones web. Un caso de uso
Base de Datos Distribuidas FUNDAMENTOS DE BASES DE DATOS DISTRIBUIDAS
Arquitectura de software dirigida por modelos (Model-Driven Architecture) Liliana Favre UNCPBA 2006.
“ no existe en el mundo algo mas difícil de establecer, que un nuevo orden de cosas” Maquiavelo “ el príncipe” Lo anterior se refiere al hecho de lo importante.
Análisis Visual de la Modularidad de Modelos de Procesos de Software
Modelos de Datos Modelado y Diseño de Bases de Datos
Prof. César Luza Montero
POO Santiago, Mayo 2004 TRABAJO DE INVESTIGACIÓN POO Programación Orientada a Objetos CENAFOM Carolina Bravo V. Jaime Jofré B.
Tipo de Dato Abstracto Tipos de datos:
DIAGRAMAS DE CLASES Completando los diagramas de interacción, es posible identificar la especificación de las clases que participarán en la solución indicando.
DIAGRAMAS DE INTERACCION JENNIFER COGOLLO CAMARGO CLAUDIA DIAZ MORELO ANDRES MACEA TIRADO CORPORACION UNIFICADA NACIONAL DE EDUCACION SUPERIOR - CUN.
DESCRIPCION DEL PROBLEMA
Análisis y Diseño O.O. Click to add notes Preguntas del diseño :
U NIDAD III P ROGRAMACIÓN O RIENTADA A O BJETOS (POO) Facilitadora: Ing. Patricia Gómez.
Profesor: Miguel Angel Vidal
 El termino OO, significa que el software es organizado como una colección de objetos. Un objeto es un paquete de software que contiene datos y procedimientos.
TRABAJO GRASP Presentado por: Maria Paula Arias B. Luís Guillermo Torres R.
Patrones de asignación de responsabilidades (GRASP)
LENGUAJE “C” Programación.
Patrones de Comportamiento: Patrón de Diseño Observer
DEPARTAMENTO DE INGENIERÍA INFORMÁTICA
(c) P. Gomez-Gil, INAOE DISEÑO DE COMPONENTES DE SOFTWARE * NOTAS DEL CURSO Ingeniería de Software I DRA. MARIA DEL PILAR GÓMEZ GIL INAOEP.
ANALISIS Y DISEÑO O.O. (LCD )
Diagramas de Clase Angela Carrillo R..

DISEÑO DE SOFTWARE 1ª. Parte
REINGENIERÍA DE PROCESOS ORGANIZACIONALES
Patrones de diseño DECORATOR Mario Rodríguez Martín
Modelos de Bases de Datos
Patrones para asignar responsabilidades
UNIDAD 2. ALGORITMOS Y ESTRUCTURAS DE DATOS.
INGENIERIA DE SOFTWARE GUILLERMO OCHOA GAVIRIA Octubre 2006 Factory Method.
PATRONES DE INDIRECCION Y VARIANTES PROTEGIDAS
Métricas Técnicas para Sistemas Orientados a Objeto
Universidad Central de Venezuela Facultad de Ciencias Postgrado en Ciencias de la Computación Sistemas Distribuidos Albany Márquez.
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6
Teoría y Métodos de la Ingeniería de Software
Vista de interacción  Una vista de interacción muestra el flujo de control requerido que se establece entre los objetos.
Ingeniería de software
Diagrama de Clases ACI 570.
CONTRATOS UML.
Programación orientada a objetos Capítulo 6 Diseño de clases.
El modelo de análisis tiene como objetivo generar una arquitectura de objetos que sirva como base para el diseño posterior del sistema. Dependiendo del.
Facultad de Ingeniería
Programación orientada a objetos
Indirección y Variaciones Protegidas
Departamento de Ingeniería del Software e Inteligencia Artificial Universidad Complutense de Madrid Simulación del patrón … (1)
Métricas de la Calidad de la Especificación.
1 Ingeniería del Software Ejercicio 3: Películas de mayor éxito ESTRATEGA Obtener mejores películas.
Comportamiento organizacional
ARQUITECTURA ALTERNATIVA DE SERVIDORES SISTEMAS OPERTIVOS DE RED En un sistema operativo de red los usuarios saben que están conectados a la red y que.
Ing. Esp. Ricardo Cujar. Programación Orientada a Objetos  Modelo de desarrollo de software.  Modo de pensar del hombre y no de la máquina.  Abstracción.
GESTIÓN DEL EQUIPO HUMANO DEL PROYECTO
PROCESOS DE DESARROLLO DE SOFTWARE
Concepto Organización
Definición de sistema__________
1 Ingeniería del Software Ejercicios de Diseño  Caso de Uso Generar Facturas (Junio 2003)  Caso de Uso Grado de Ocupación (Febrero 2004)  Caso de Uso.
Ing. Johanna Macias Algoritmo, Estructura y Programación III.
Acceso a Datos Erick López Ovando Licenciado en Informática.
Análisis y Diseño de Aplicaciones 3º Educación Media Tecnológica
Proliferación Celular LUIS FELIPE JIMENEZ CAICEDO ANDRES FELIPE VASQUEZ JHON ANDERSON YANGUAS JUAN DAVID PINTO PAOLA ANGELICA GIRÓN ISIS VICTORIA PIZO.
Diagrama de Clases.
Integrantes: Omar Lorini Freddy Flores Paola Brañez ADMINISTRACIÓN DE LA DISTRIBUCIÓN FÍSICA.
Fundamentos de Ingeniería de Software
Modelado UML Diagrama de Clases
LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) IV. IMPLANTACION DE ALGORITMOS.
Transcripción de la presentación:

Patrones GRASP

Patrones GRASP Acrónimo de General Responsibility Assignment Software Patterns. Describen los principios fundamentales para asignar responsabilidades a los objetos.

El patrón “Experto” (I) Problema: ¿en qué debemos basarnos para asignar responsabilidades a las clases? Solución: asignar la responsabilidad al “experto en la información” El experto en la información es la clase que tiene la información necesaria para cumplir la responsabilidad.

El patrón “Experto” (y II) Es un poco de perogrullo: expresa que los objetos deben hacer las cosas relacionadas con la información que poseen.

El patrón “Creador” Problema: ¿quién es el responsable de crear una nueva instancia de una clase? Solución: B es responsable de crear una instancia de A si: B agrega objetos de A B contiene referencias a objetos de A B almacena instancias de A B utiliza estrechamente objetos de A B tiene la información de inicialización que se necesita para crear un objeto de clase A

El patrón “Bajo acoplamiento” (I) Problema: ¿cómo mantener un bajo acoplamiento para lograr, entre otras cosas, alta reutilización? Nota: el acoplamiento mide el grado en que una clase está conectada a otra, tiene conocimiento de otra o, de alguna manera, depende de otra.

El patrón “Bajo acoplamiento” (II) Situaciones de acoplamiento: X tiene un miembro o declara una variable de clase Y X tiene un método que toma como parámetro un objeto de clase Y X es un descendiente de Y

El patrón “Bajo acoplamiento” (III) Desventajas del acoplamiento: Los cambios en una clase pueden implicar cambios en las clases relacionadas. Dificultad de comprensión. Dificultad de reutilización. ¿Pérdida de rendimiento?

El patrón “Bajo acoplamiento” (IV) Solución: asignar la responsabilidad de manera que el acoplamiento permanezca bajo.

El patrón “Bajo acoplamiento” (y V) Consideraciones: El bajo acoplamiento permite crear clases más independientes, más reutilizables, lo que implica mayor productividad El acoplamiento puede no ser importante si la reutilización no está en nuestros objetivos La especialización es una forma fuerte de acoplar clases El acoplamiento bajísimo produce diseños muy pobres, objetos sobrecargados, complejos, etc.

El patrón “Alta cohesión” (I) Problema: ¿cómo mantener la complejidad de una clase en niveles manejables? Nota: la cohesión mide el grado en que están relacionadas las responsabilidades de una clase.

El patrón “Alta cohesión” (II) Desventajas de una clase con baja cohesión: Difícil de comprender Difícil de reutilizar Difícil de mantener Delicada, se afecta mucho por los cambios

El patrón “Alta cohesión” ( y III) Solución: asignar responsabilidades de manera que la cohesión se mantenga alta.

El patrón “Controlador” (I) Problema: ¿quién debería ser responsable de manejar un evento del sistema? Nota: Un evento del sistema es un evento generado por un actor externo. ¡Clack!

El patrón “Controlador” (II) Solución: asignar la responsabilidad al “controlador”, que será una clase que: Representa al sistema completo, a la organización... (controlador “fachada”) Representa una parte activa del mundo real que desencadena de tal evento (controlador de rol) Representa un manejador artificial de eventos (controlador de CdU)

El patrón “Controlador” (III) Sugerencias: Puede utilizarse un controlador por cada CdU, de manera que se encargue de controlar el estado del CdU, la secuencia de eventos, etc. Una vez que el controlador recibe un evento, puede delegar sobre otros objetos para no verse sobrecargado (producirá, además, baja cohesión).

El patrón “Controlador” (y IV) pulsa buttonEnviarClicked :AppletCliente Evento del sistema Enviar(...) :Cliente

El patrón “Comando” (no es Grasp) Se utiliza para asignar responsabilidades de manejo de eventos en sistemas que procesan muchos tipos de eventos. Comando Ejecutar() Comando1 Ejecutar() Comando2 Ejecutar() ComandoN Ejecutar()