patrones grasp analisis y diseÑo o.o. (lcd 2006-1) base: arquitectura de software julio carreño /...
TRANSCRIPT
![Page 1: Patrones GRASP ANALISIS Y DISEÑO O.O. (LCD 2006-1) base: Arquitectura de Software Julio Carreño / César Bustacara](https://reader036.vdocuments.co/reader036/viewer/2022081417/5665b43e1a28abb57c905443/html5/thumbnails/1.jpg)
Patrones GRASPPatrones GRASP
ANALISIS Y DISEÑO O.O. (LCD 2006-1)ANALISIS Y DISEÑO O.O. (LCD 2006-1)
base: Arquitectura de Softwarebase: Arquitectura de SoftwareJulio Carreño / César BustacaraJulio Carreño / César Bustacara
![Page 2: Patrones GRASP ANALISIS Y DISEÑO O.O. (LCD 2006-1) base: Arquitectura de Software Julio Carreño / César Bustacara](https://reader036.vdocuments.co/reader036/viewer/2022081417/5665b43e1a28abb57c905443/html5/thumbnails/2.jpg)
Patrones GRASPPatrones GRASP
![Page 3: Patrones GRASP ANALISIS Y DISEÑO O.O. (LCD 2006-1) base: Arquitectura de Software Julio Carreño / César Bustacara](https://reader036.vdocuments.co/reader036/viewer/2022081417/5665b43e1a28abb57c905443/html5/thumbnails/3.jpg)
General Responsabilities General Responsabilities Assignment Software Patterns Assignment Software Patterns
![Page 4: Patrones GRASP ANALISIS Y DISEÑO O.O. (LCD 2006-1) base: Arquitectura de Software Julio Carreño / César Bustacara](https://reader036.vdocuments.co/reader036/viewer/2022081417/5665b43e1a28abb57c905443/html5/thumbnails/4.jpg)
PATRONESPATRONES
Solución a Problemas recurrentesSolución a Problemas recurrentes Capturar las Mejores Prácticas de DiseñoCapturar las Mejores Prácticas de Diseño NO son siempre la mejor soluciónNO son siempre la mejor solución Facilitan la comunicaciónFacilitan la comunicación BENEFICIOSBENEFICIOS
MantenibilidadMantenibilidad ExtensibilidadExtensibilidad ReestructuraciónReestructuración PortabilidadPortabilidad
![Page 5: Patrones GRASP ANALISIS Y DISEÑO O.O. (LCD 2006-1) base: Arquitectura de Software Julio Carreño / César Bustacara](https://reader036.vdocuments.co/reader036/viewer/2022081417/5665b43e1a28abb57c905443/html5/thumbnails/5.jpg)
CONOCERCONOCER
Información privadaInformación privada Objetos relacionadosObjetos relacionados Lo que puede Lo que puede
derivar/calcularderivar/calcular Ej: Métodos analizadores Ej: Métodos analizadores
"get""get"
![Page 6: Patrones GRASP ANALISIS Y DISEÑO O.O. (LCD 2006-1) base: Arquitectura de Software Julio Carreño / César Bustacara](https://reader036.vdocuments.co/reader036/viewer/2022081417/5665b43e1a28abb57c905443/html5/thumbnails/6.jpg)
HACERHACER
Algo él mismoAlgo él mismo Ejecutar un cálculoEjecutar un cálculo Crear un objetoCrear un objeto Iniciar acciones en otros Iniciar acciones en otros
ObjetosObjetos Controlar/Coordinar Controlar/Coordinar
actividades en otros Objetosactividades en otros Objetos Ej: Métodos modificadores Ej: Métodos modificadores
"set""set"
![Page 7: Patrones GRASP ANALISIS Y DISEÑO O.O. (LCD 2006-1) base: Arquitectura de Software Julio Carreño / César Bustacara](https://reader036.vdocuments.co/reader036/viewer/2022081417/5665b43e1a28abb57c905443/html5/thumbnails/7.jpg)
ExpertoExperto
![Page 8: Patrones GRASP ANALISIS Y DISEÑO O.O. (LCD 2006-1) base: Arquitectura de Software Julio Carreño / César Bustacara](https://reader036.vdocuments.co/reader036/viewer/2022081417/5665b43e1a28abb57c905443/html5/thumbnails/8.jpg)
BENEFICIOBENEFICIO
Conserva el Conserva el EncapsulamientoEncapsulamiento
Bajo AcoplamientoBajo Acoplamiento Alta CohesiónAlta Cohesión
![Page 9: Patrones GRASP ANALISIS Y DISEÑO O.O. (LCD 2006-1) base: Arquitectura de Software Julio Carreño / César Bustacara](https://reader036.vdocuments.co/reader036/viewer/2022081417/5665b43e1a28abb57c905443/html5/thumbnails/9.jpg)
EjemploEjemplo
Asociaciones de VentaAsociaciones de Venta Calculo Total de la VentaCalculo Total de la Venta Métodos a implementarMétodos a implementar
![Page 10: Patrones GRASP ANALISIS Y DISEÑO O.O. (LCD 2006-1) base: Arquitectura de Software Julio Carreño / César Bustacara](https://reader036.vdocuments.co/reader036/viewer/2022081417/5665b43e1a28abb57c905443/html5/thumbnails/10.jpg)
Ejemplo: ExpertoEjemplo: Experto
Asociaciones de VentaAsociaciones de Venta
![Page 11: Patrones GRASP ANALISIS Y DISEÑO O.O. (LCD 2006-1) base: Arquitectura de Software Julio Carreño / César Bustacara](https://reader036.vdocuments.co/reader036/viewer/2022081417/5665b43e1a28abb57c905443/html5/thumbnails/11.jpg)
Ejemplo: ExpertoEjemplo: Experto
Calculo Total de la VentaCalculo Total de la Venta
![Page 12: Patrones GRASP ANALISIS Y DISEÑO O.O. (LCD 2006-1) base: Arquitectura de Software Julio Carreño / César Bustacara](https://reader036.vdocuments.co/reader036/viewer/2022081417/5665b43e1a28abb57c905443/html5/thumbnails/12.jpg)
Ejemplo: ExpertoEjemplo: Experto
Métodos a implementarMétodos a implementar
![Page 13: Patrones GRASP ANALISIS Y DISEÑO O.O. (LCD 2006-1) base: Arquitectura de Software Julio Carreño / César Bustacara](https://reader036.vdocuments.co/reader036/viewer/2022081417/5665b43e1a28abb57c905443/html5/thumbnails/13.jpg)
CreadorCreador
![Page 14: Patrones GRASP ANALISIS Y DISEÑO O.O. (LCD 2006-1) base: Arquitectura de Software Julio Carreño / César Bustacara](https://reader036.vdocuments.co/reader036/viewer/2022081417/5665b43e1a28abb57c905443/html5/thumbnails/14.jpg)
El Objeto B tiene la El Objeto B tiene la responsabilidad de tener un responsabilidad de tener un método para creación de objetos A método para creación de objetos A si...si...
B agrega objetos AB agrega objetos A B contiene objetos AB contiene objetos A B registra objetos AB registra objetos A B usa exhaustivamente B usa exhaustivamente
objetos Aobjetos A B posee info para iniciar AB posee info para iniciar A
![Page 15: Patrones GRASP ANALISIS Y DISEÑO O.O. (LCD 2006-1) base: Arquitectura de Software Julio Carreño / César Bustacara](https://reader036.vdocuments.co/reader036/viewer/2022081417/5665b43e1a28abb57c905443/html5/thumbnails/15.jpg)
BENEFICIOBENEFICIO
Bajo AcoplamientoBajo Acoplamiento
![Page 16: Patrones GRASP ANALISIS Y DISEÑO O.O. (LCD 2006-1) base: Arquitectura de Software Julio Carreño / César Bustacara](https://reader036.vdocuments.co/reader036/viewer/2022081417/5665b43e1a28abb57c905443/html5/thumbnails/16.jpg)
Ejemplo: CreadorEjemplo: Creador
Agregar Items de VentaAgregar Items de Venta
![Page 17: Patrones GRASP ANALISIS Y DISEÑO O.O. (LCD 2006-1) base: Arquitectura de Software Julio Carreño / César Bustacara](https://reader036.vdocuments.co/reader036/viewer/2022081417/5665b43e1a28abb57c905443/html5/thumbnails/17.jpg)
Bajo AcoplamientoBajo Acoplamiento
![Page 18: Patrones GRASP ANALISIS Y DISEÑO O.O. (LCD 2006-1) base: Arquitectura de Software Julio Carreño / César Bustacara](https://reader036.vdocuments.co/reader036/viewer/2022081417/5665b43e1a28abb57c905443/html5/thumbnails/18.jpg)
¿Cómo soportar bajo grado ¿Cómo soportar bajo grado de dependencia entre clases?de dependencia entre clases?
Modelo DESCENTRALIZADO Modelo DESCENTRALIZADO (ver dos objetos a lo mas!)(ver dos objetos a lo mas!)
Para clases que cambian Para clases que cambian constantemente...constantemente...
Para reutilización!Para reutilización!
![Page 19: Patrones GRASP ANALISIS Y DISEÑO O.O. (LCD 2006-1) base: Arquitectura de Software Julio Carreño / César Bustacara](https://reader036.vdocuments.co/reader036/viewer/2022081417/5665b43e1a28abb57c905443/html5/thumbnails/19.jpg)
BENEFICIOBENEFICIO
No se afectan por cambios No se afectan por cambios en otros componentesen otros componentes
Fáciles de entender por Fáciles de entender por separadoseparado
Fáciles de reutilizarFáciles de reutilizar
![Page 20: Patrones GRASP ANALISIS Y DISEÑO O.O. (LCD 2006-1) base: Arquitectura de Software Julio Carreño / César Bustacara](https://reader036.vdocuments.co/reader036/viewer/2022081417/5665b43e1a28abb57c905443/html5/thumbnails/20.jpg)
Ejemplo: Bajo AcoplamientoEjemplo: Bajo Acoplamiento
Diseño DescentralizadoDiseño Descentralizado Diseño CentralizadoDiseño Centralizado Propuesta Solución UNOPropuesta Solución UNO Propuesta Solución DOSPropuesta Solución DOS
![Page 21: Patrones GRASP ANALISIS Y DISEÑO O.O. (LCD 2006-1) base: Arquitectura de Software Julio Carreño / César Bustacara](https://reader036.vdocuments.co/reader036/viewer/2022081417/5665b43e1a28abb57c905443/html5/thumbnails/21.jpg)
Ejemplo: Bajo AcoplamientoEjemplo: Bajo Acoplamiento
Diseño DescentralizadoDiseño Descentralizado
![Page 22: Patrones GRASP ANALISIS Y DISEÑO O.O. (LCD 2006-1) base: Arquitectura de Software Julio Carreño / César Bustacara](https://reader036.vdocuments.co/reader036/viewer/2022081417/5665b43e1a28abb57c905443/html5/thumbnails/22.jpg)
Ejemplo: Bajo AcoplamientoEjemplo: Bajo Acoplamiento
Diseño CentralizadoDiseño Centralizado
![Page 23: Patrones GRASP ANALISIS Y DISEÑO O.O. (LCD 2006-1) base: Arquitectura de Software Julio Carreño / César Bustacara](https://reader036.vdocuments.co/reader036/viewer/2022081417/5665b43e1a28abb57c905443/html5/thumbnails/23.jpg)
Ejemplo: Bajo AcoplamientoEjemplo: Bajo Acoplamiento
Propuesta Solución UNOPropuesta Solución UNO
![Page 24: Patrones GRASP ANALISIS Y DISEÑO O.O. (LCD 2006-1) base: Arquitectura de Software Julio Carreño / César Bustacara](https://reader036.vdocuments.co/reader036/viewer/2022081417/5665b43e1a28abb57c905443/html5/thumbnails/24.jpg)
Ejemplo: Bajo AcoplamientoEjemplo: Bajo Acoplamiento
Propuesta Solución DOSPropuesta Solución DOS
![Page 25: Patrones GRASP ANALISIS Y DISEÑO O.O. (LCD 2006-1) base: Arquitectura de Software Julio Carreño / César Bustacara](https://reader036.vdocuments.co/reader036/viewer/2022081417/5665b43e1a28abb57c905443/html5/thumbnails/25.jpg)
Alta CohesiónAlta Cohesión
![Page 26: Patrones GRASP ANALISIS Y DISEÑO O.O. (LCD 2006-1) base: Arquitectura de Software Julio Carreño / César Bustacara](https://reader036.vdocuments.co/reader036/viewer/2022081417/5665b43e1a28abb57c905443/html5/thumbnails/26.jpg)
BENEFICIOBENEFICIO
Mejoran la claridad del Mejoran la claridad del DiseñoDiseño
Simplificación del cambioSimplificación del cambio Genera bajo acoplamientoGenera bajo acoplamiento Facilita la reutilizaciónFacilita la reutilización
![Page 27: Patrones GRASP ANALISIS Y DISEÑO O.O. (LCD 2006-1) base: Arquitectura de Software Julio Carreño / César Bustacara](https://reader036.vdocuments.co/reader036/viewer/2022081417/5665b43e1a28abb57c905443/html5/thumbnails/27.jpg)
EjemploEjemplo
Alta CohesiónAlta Cohesión Baja CohesiónBaja Cohesión
![Page 28: Patrones GRASP ANALISIS Y DISEÑO O.O. (LCD 2006-1) base: Arquitectura de Software Julio Carreño / César Bustacara](https://reader036.vdocuments.co/reader036/viewer/2022081417/5665b43e1a28abb57c905443/html5/thumbnails/28.jpg)
Ejemplo: Alta CohesiónEjemplo: Alta Cohesión
Alta CohesiónAlta Cohesión
![Page 29: Patrones GRASP ANALISIS Y DISEÑO O.O. (LCD 2006-1) base: Arquitectura de Software Julio Carreño / César Bustacara](https://reader036.vdocuments.co/reader036/viewer/2022081417/5665b43e1a28abb57c905443/html5/thumbnails/29.jpg)
Ejemplo: Alta CohesiónEjemplo: Alta Cohesión
Baja CohesiónBaja Cohesión
![Page 30: Patrones GRASP ANALISIS Y DISEÑO O.O. (LCD 2006-1) base: Arquitectura de Software Julio Carreño / César Bustacara](https://reader036.vdocuments.co/reader036/viewer/2022081417/5665b43e1a28abb57c905443/html5/thumbnails/30.jpg)
ControladorControlador
![Page 31: Patrones GRASP ANALISIS Y DISEÑO O.O. (LCD 2006-1) base: Arquitectura de Software Julio Carreño / César Bustacara](https://reader036.vdocuments.co/reader036/viewer/2022081417/5665b43e1a28abb57c905443/html5/thumbnails/31.jpg)
Un coordinador... (por caso de Un coordinador... (por caso de uno!)uno!)
Que representa el sistema: Que representa el sistema: FACHADA!FACHADA!
Que representa un rol Que representa un rol activo: TAREAS!activo: TAREAS!
Un manejador artificial: Un manejador artificial: SESSION!SESSION!
![Page 32: Patrones GRASP ANALISIS Y DISEÑO O.O. (LCD 2006-1) base: Arquitectura de Software Julio Carreño / César Bustacara](https://reader036.vdocuments.co/reader036/viewer/2022081417/5665b43e1a28abb57c905443/html5/thumbnails/32.jpg)
BENEFICIOBENEFICIO
Mayor potencial de los Mayor potencial de los Componentes reutilizablesComponentes reutilizables
![Page 33: Patrones GRASP ANALISIS Y DISEÑO O.O. (LCD 2006-1) base: Arquitectura de Software Julio Carreño / César Bustacara](https://reader036.vdocuments.co/reader036/viewer/2022081417/5665b43e1a28abb57c905443/html5/thumbnails/33.jpg)
EjemploEjemplo
Opciones de ControladorOpciones de Controlador Solución DeseableSolución Deseable No muy buena SoluciónNo muy buena Solución
![Page 34: Patrones GRASP ANALISIS Y DISEÑO O.O. (LCD 2006-1) base: Arquitectura de Software Julio Carreño / César Bustacara](https://reader036.vdocuments.co/reader036/viewer/2022081417/5665b43e1a28abb57c905443/html5/thumbnails/34.jpg)
Ejemplo: ControladorEjemplo: Controlador
Opciones de ControladorOpciones de Controlador
![Page 35: Patrones GRASP ANALISIS Y DISEÑO O.O. (LCD 2006-1) base: Arquitectura de Software Julio Carreño / César Bustacara](https://reader036.vdocuments.co/reader036/viewer/2022081417/5665b43e1a28abb57c905443/html5/thumbnails/35.jpg)
Ejemplo: ControladorEjemplo: Controlador
Solución DeseableSolución Deseable
![Page 36: Patrones GRASP ANALISIS Y DISEÑO O.O. (LCD 2006-1) base: Arquitectura de Software Julio Carreño / César Bustacara](https://reader036.vdocuments.co/reader036/viewer/2022081417/5665b43e1a28abb57c905443/html5/thumbnails/36.jpg)
Ejemplo: ControladorEjemplo: Controlador
No muy buena SoluciónNo muy buena Solución
![Page 37: Patrones GRASP ANALISIS Y DISEÑO O.O. (LCD 2006-1) base: Arquitectura de Software Julio Carreño / César Bustacara](https://reader036.vdocuments.co/reader036/viewer/2022081417/5665b43e1a28abb57c905443/html5/thumbnails/37.jpg)
FachadaFachada
![Page 38: Patrones GRASP ANALISIS Y DISEÑO O.O. (LCD 2006-1) base: Arquitectura de Software Julio Carreño / César Bustacara](https://reader036.vdocuments.co/reader036/viewer/2022081417/5665b43e1a28abb57c905443/html5/thumbnails/38.jpg)
EjemploEjemplo
FachadaFachada
![Page 39: Patrones GRASP ANALISIS Y DISEÑO O.O. (LCD 2006-1) base: Arquitectura de Software Julio Carreño / César Bustacara](https://reader036.vdocuments.co/reader036/viewer/2022081417/5665b43e1a28abb57c905443/html5/thumbnails/39.jpg)
Patrones GRASPPatrones GRASP