SlideShare una empresa de Scribd logo
1 de 39
ESCUELA DE INGENIERÍA DE
SISTEMAS INFORMÁTICOS
UNIVERSIDAD LATINA
LIC. RANDY VALVERDE VALVERDE
1
Programación IV
Desde el principio:
El término patrón fue utilizado por primera vez por
el arquitecto Christopher Alexander en el libro “A
Pattern Language: Towns, Buildings,
Construction“, donde definió una serie de patrones
arquitectónicos. Alexander define:
 “Un patrón describe un problema que ocurre a menudo,
acompañado por un intento de solución para el problema.”
Christopher Alexander, 1977
Randy V² - II Q – 2016, 100 % positivo
Desde el principio:
 En 1987, Ward Cunningham y Kent Beck estaban trabajando con
Smaltalk, diseñando interfaces de usuario. Para ello, decidieron utilizar
alguna de las ideas de Alexander y desarrollaron un pequeño lenguaje
de patrones que serviría de guía a los programadores de Smaltalk. A
partir de estas idea escribieron el libro “Using Pattern Languajes for
Object-Oriented Programs”.
 Desde 1990 a 1994, Erich Gamma, Richard Helm, Ralph Johnson y
John Vlissides (Gang of four) realizaron un primer catálogo de
patrones de diseño. En 1994 publicarón el libro “Design Patterns –
Elements of Reusable Object-Oriented Software“ que introducía el
termino de patrón de diseño en el desarrollo del software.
Randy V² - II Q – 2016, 100 % positivo
 ¿Qué es un patrón de diseño?
 ¿Por qué usarlos?
 Categorización
 Problema - Patrón
Randy V² - II Q – 2016, 100 % positivo
5
Patrones
En las distintas actividades de la vida diaria se
reconocen patrones:
 Trabajo
 Vida familiar
 Hobbies
Randy V² - II Q – 2016, 100 % positivo
Hardware
Randy V² - II Q – 2016, 100 % positivo
Hardware Software
Poder rehusar componentes y
lograr un mantenimiento fácil.
Lograr un software flexible
habitualmente
Randy V² - II Q – 2016, 100 % positivo
¿Qué es un patrón de diseño?
 “Los patrones de diseño son el esqueleto de las soluciones a
problemas comunes en el desarrollo de software.”
 En otras palabras, brindan una solución ya probada y documentada a
problemas de desarrollo de software que están sujetos a contextos similares.
Debemos tener presente los siguientes elementos de un patrón: su nombre, el
problema (cuando aplicar un patrón), la solución (descripción abstracta del
problema) y las consecuencias (costos y beneficios).
 Patrones Creacionales: Inicialización y configuración de objetos.
 Patrones Estructurales: Separan la interfaz de la implementación. Se ocupan
de cómo las clases y objetos se agrupan, para formar estructuras más
grandes.
 Patrones de Comportamiento: Más que describir objetos o clases, describen
la comunicación entre ellos.
Randy V² - II Q – 2016, 100 % positivo
¿Qué es un patrón de diseño?
CARACTERISTICAS:
Ante un problema reiterado ofrece una solución
contrastada que lo resuelve.
Describe el problema en forma sencilla.
Describe el contexto en que ocurre.
Describe los pasos a seguir.
Describe los puntos fuertes y débiles de la solución.
Describe otros patrones asociados.
Randy V² - II Q – 2016, 100 % positivo
¿Qué es un patrón de diseño?
CARACTERISTICAS:
Se definen con un alto nivel de abstracción.
Son independientes de los lenguajes de
programación y de los detalles de implementación.
Los patrones promueven y facilitan la reutilización
de arquitecturas y diseños de software que han
demostrado su validez en muchas aplicaciones.
Randy V² - II Q – 2016, 100 % positivo
Patrones en la Ingeniería de Software
Pueden verse como bloques de construcción
mentales, para tratar con distintos aspectos del
diseño de software.
Hay patrones de arquitectura, patrones de diseño,
patrones de procesos, patrones de interfaces,
“idioms”.
No existen paradigmas o lenguajes específicos
para implementar patrones de arquitectura, pero
algunos proveen elementos útiles (orientación a
objetos, polimorfismo, herencia, etc.).
Randy V² - II Q – 2016, 100 % positivo
¿Cómo se especifica un patrón?
Patrón: Nombre del Patrón
Contexto
Situación de diseño que da lugar al problema.
Problema
Conjunto de fuerzas que surgen del contexto.
Solución
Configuración para balancear las fuerzas
Componentes y relaciones (estructura)
Comportamiento dinámico
Randy V² - II Q – 2016, 100 % positivo
Contexto
Extiende la dicotomía problema-solución.
Describe el escenario donde se da el problema.
La descripción del contexto puede ser bastante
general o muy específica. Por ejemplo:
 “desarrollar software con una interfaz humano-
computador”.
 “implementar el mecanismo de cambio-propagación en
MVC”.
Es muy difícil definir completamente el contexto.
Listar todas las situaciones en que el problema surge
puede ser una alternativa.
Randy V² - II Q – 2016, 100 % positivo
Problema
Describe el problema genérico que surge en el
contexto especificado.
Esencia: ¿cuál aspecto del problema debemos
resolver?
 El problema generalmente varía, pero la escencia se
mantiene.
Las fuerzas describen aspectos más específicos
del problema con distintos puntos de vista, y
hasta pueden contradecirse. Pueden ser:
 requisitos de la solución
 restricciones
 propiedades deseables/indeseables
Randy V² - II Q – 2016, 100 % positivo
Solución
Es la forma de balancear las fuerzas para resolver
el problema.
Dos aspectos o componentes de la solución:
 Estructura estática - componentes y relaciones.
 Comportamiento dinámico - forma de organización y
colaboración entre las componentes.
La solución no siempre toma en cuenta todas las
fuerzas.
Hay que establecer prioridades, si las fuerzas son
contradictorias.
Se debe establecer un esquema de soluciones y no
algo completamente definido (demasiado
especificado, y por ende, restrictivo).
Randy V² - II Q – 2016, 100 % positivo
Relación entre Patrones
“Cada patrón depende de los patrones más
pequeños que contiene y de los más grandes donde
está contenido.”
Distintos aspectos de un sistema pueden
resolverse con distintos patrones.
Existen variantes de ciertos patrones para
situaciones especiales.
Randy V² - II Q – 2016, 100 % positivo
Descripción de Patrones
Una descripción apropiada permite la
comprensión, el análisis y la discusión del patrón.
La definición del Contexto-Problema-Solución es
un buen punto de partida.
Los buenos nombres se convierten en jerga o
modismos.
Ejemplos, diagramas, escenarios y guías para la
implementación también pueden formar parte de la
definición de un patrón.
Discusión de beneficios y debilidades ayudan a
tomar mejores decisión respecto a su uso.
Randy V² - II Q – 2016, 100 % positivo
Descripción Completa de un Patrón
Ejemplo Ejemplo conocido de la literatura
Nombre Nombre descriptivo
Contexto Situación en que surge el problema
Problema Fuerzas que surgen en el contexto
Solución Configuración que balancea las fuerzas
Estructura Diagramas que describen la configuración
Dinámica Descripción del comportamiento. Escenarios
Implementación Guía para implementar el patrón
Resolución del
ejemplo
Aplicación del patrón al ejemplo
Variantes Alternativas para resolver el ejemplo
Usos conocidos Descripción de problemas donde se aplica
Consecuencias Beneficios y perjuicios
Randy V² - II Q – 2016, 100 % positivo
19
Arquitectura
1. Define la forma y la estructura de la
aplicación de software.
2. Relacionada al propósito de la aplicación.
3. Arquitectura de módulos y sus
interconexiones
Patrones de diseño
Paquetes,
componentes, clases
Randy V² - II Q – 2016, 100 % positivo
20
Evidencias de diseño erróneo
Rigidez: problemas para insertar algún
cambio.
Fragilidad: el software falla en muchos lugares
al insertar un cambio.
Inmovilidad: no se pueden rehusar partes del
proyecto.
Viscosidad:
• De diseño: cuando se deben hacer cambios, es
más fácil hacer cosas mal, que bien.
• De entorno: entorno de desarrollo ineficiente
Randy V² - II Q – 2016, 100 % positivo
¿Por qué usarlos?
Mejora en la comunicación y documentación
 “Hay que hacer un Factory Method”
 Facilita la documentación interna del proyecto.
 Mejora la ingeniería de software.
 Eleva el nivel del grupo de desarrollo.
Previene “reinventar la rueda” en diseño
 Son soluciones ya probadas.
Mejora la calidad y estructura
 “¿Cuan grande debe ser una clase?”
Randy V² - II Q – 2016, 100 % positivo
Clasificación de patrones (GoF)
Patrones de creación: Tratan de la inicialización y
configuración de clases y objetos.
Patrones estructurales: Tratan de desacoplar interfaz e
implementación de clases y objetos.
Patrones de comportamiento: Tratan de las
interacciones dinámicas entre sociedades de clases y
objetos
Randy V² - II Q – 2016, 100 % positivo
Patrones de creación
The Factory Method retorna una de las posibles subclases
de una clase abstracta dependiendo de los datos que se le
provee.
The Abstract Factory Method retorna una de las varias
familias de objetos.
The Builder Pattern separa la construcción de un objeto
complejo de su representación. Varias representaciones se
pueden crear dependiendo de las necesidades del programa.
The Prototype Pattern inicializa e instancia una clase y
luego copia o clona si necesita otras instancias, mas que crear
nuevas instancias.
The Singleton Pattern es una clase de la cual no puede
existir mas de una instancia.
Randy V² - II Q – 2016, 100 % positivo
24
Patrones estructurales
Adapter: cambia la interfaz de una clase a la de otra.
Bridge: permite mantener constante la interfaz que se
presenta al cliente, cambiando la clase que se usa
Composite: una colección de objetos
Decorator: una clase que envuelve a una clase dándole
nuevas capacidades.
Facade: reúne una jerarquía compleja de objetos y provee
una clase nueva permitiendo acceder a cualquiera de las
clases de la jerarquía.
Flyweight: permite limitar la proliferación de pequeñas
clases similares.
Randy V² - II Q – 2016, 100 % positivo
25
Patrones de comportamiento
Cadena de responsabilidad: permite que un conjunto de
clases intenten manejar un requerimiento.
Interpreter: define una gramática de un lenguaje y usa
esa gramática para interpretar sentencias del lenguaje.
Iterator: permite recorrer una estructura de datos sin
conocer detalles de cómo están implementados los datos
Observer: algunos objetos reflejan un cambio a raíz del
cambio de otro, por lo tanto se le debe comunicar el cambio
de este último.
Strategy: cantidad de algoritmos relacionados encerrados
en un contexto a través del cual se selecciona uno de los
algoritmos.
Randy V² - II Q – 2016, 100 % positivo
Otros tipos de patrones
Patrones de programación concurrente
Patrones de interfaz gráfica
Patrones de organización de código
Patrones de optimización de código
Patrones de robustez de código
Patrones de fases de prueba
Randy V² - II Q – 2016, 100 % positivo
Beneficios de los patrones
Los patrones favorecen la reutilización de diseños y
arquitecturas a gran escala.
Capturan el conocimiento de los expertos y lo hacen
accesible a toda la comunidad software.
Proporcionan un cuerpo de conocimiento utilizable por
toda la comunidad software.
Favorecen la transmisión de conocimiento entre
profesionales y entre clientes y desarrolladores
Proporcionan un lenguaje común. Los nombres de los
patrones forman parte del vocabulario técnico del ingeniero
software.
Randy V² - II Q – 2016, 100 % positivo
Problema de los patrones
Los patrones, no llevan de forma directa a la
reutilización del código, aunque dicha reutilización
se facilita mediante su uso.
La integración de los patrones en el proceso de
desarrollo se hace todavía de forma manual.
El número de patrones identificados es cada vez
más grande. Las clasificaciones actuales no
siempre sirven de guía para decidir cual usar.
Randy V² - II Q – 2016, 100 % positivo
El número de combinaciones patrones estilos y
atributos que se dan en la práctica son incontables.
Los patrones se validan por la experiencia y el
debate, no mediante la aplicación de técnicas
formales
Problema de los patrones
Randy V² - II Q – 2016, 100 % positivo
Cómo seleccionar un patrón de diseño
Considerar cómo los patrones de diseño
solucionan problemas de diseño.
Buscar las intenciones de cada patrón.
Estudiar cómo se interrelacionan los patrones.
Estudiar patrones de propósito similar.
Examinar la causa de un rediseño.
Considerar que debería ser variable en un diseño.
Randy V² - II Q – 2016, 100 % positivo
Cómo usar un patrón de diseño
1. Leer el patrón una vez para tener una visión
general
2. Volver y estudiar la estructura, los
participantes y las colaboraciones
3. Ver un ejemplo concreto codificado del
patrón
4. Elegir nombres para los participantes del
patrón que sean significativos en el contexto
de la aplicación
Randy V² - II Q – 2016, 100 % positivo
5. Definir las clases
6. Definir nombres específicos de la aplicación
para las operaciones en el patrón.
7. Implementar las operaciones que realizarán las
responsabilidades y colaboraciones del patrón.
Cómo usar un patrón de diseño
Randy V² - II Q – 2016, 100 % positivo
Antipatrón de diseño
Antipatrón es un patrón de diseño que invariablemente conduce
a una mala solución para un problema.
Al documentarse los antipatrones, además de los patrones de
diseño, se dan argumentos a los diseñadores de sistemas para no
escoger malos caminos, partiendo de documentación disponible en
lugar de simplemente la intuición.
Randy V² - II Q – 2016, 100 % positivo
Antipatrón de diseño
El estudio de los antipatrones es muy útil porque sirve para no
escoger malos caminos en el desarrollo de sistemas, teniendo para
ello una base documental y así evitar usar simplemente la
intuición. Además proporciona una denominación común a
problemas que facilita la comunicación entre diferentes
desarrolladores.
Randy V² - II Q – 2016, 100 % positivo
Antipatrón de diseño
Mejor conocido como “objeto todopoderoso”. Se presenta
cuando una clase es muy grande tanto en atributos y/o en
métodos.
Entre más grande son las clases es más difíciles de mantener,
reusar y probar. Su gran tamaño puede perjudicar el tiempo de
carga. Generalmente son el resultado de un mal diseño o de
sistemas legados.
Randy V² - II Q – 2016, 100 % positivo
Randy V² - II Q – 2016, 100 % positivo
Randy V² - II Q – 2016, 100 % positivo
Randy V² - II Q – 2016, 100 % positivo
Referencias:
http://codecriticon.com/introduccion-patrones-
diseno/
https://msdn.microsoft.com/es-
es/library/bb972240.aspx
http://www.juntadeandalucia.es/servicios/madeja/c
ontenido/recurso/820
Randy V² - II Q – 2016, 100 % positivo

Más contenido relacionado

La actualidad más candente

Unidad 2.2 Escribiendo El Programa
Unidad 2.2 Escribiendo El ProgramaUnidad 2.2 Escribiendo El Programa
Unidad 2.2 Escribiendo El ProgramaSergio Sanchez
 
Unidad 9 Patrones De DiseñO
Unidad 9 Patrones De DiseñOUnidad 9 Patrones De DiseñO
Unidad 9 Patrones De DiseñOSergio Sanchez
 
Apuntes ing-sof-unidad-4-1-2015
Apuntes ing-sof-unidad-4-1-2015Apuntes ing-sof-unidad-4-1-2015
Apuntes ing-sof-unidad-4-1-2015Lucero Mtz
 
Ciclo y diseno narzimar sanchez
Ciclo y diseno narzimar sanchezCiclo y diseno narzimar sanchez
Ciclo y diseno narzimar sanchezNarzimar Sanchez
 
¿Que es uml ? ACTVIDAD No 4 Jennifer Garcia Montiel 2 "D"
¿Que es uml ? ACTVIDAD No 4  Jennifer Garcia Montiel 2 "D"¿Que es uml ? ACTVIDAD No 4  Jennifer Garcia Montiel 2 "D"
¿Que es uml ? ACTVIDAD No 4 Jennifer Garcia Montiel 2 "D"jenni30201
 
r3022837166376237762356d7263d524.05272591.pdf
r3022837166376237762356d7263d524.05272591.pdfr3022837166376237762356d7263d524.05272591.pdf
r3022837166376237762356d7263d524.05272591.pdfRebeca Ortega
 
Metodologias de desarrollo de software
Metodologias de desarrollo de softwareMetodologias de desarrollo de software
Metodologias de desarrollo de softwareBlackeRuiz
 
Introducción al proceso unificado de desarrollo de software en Curso de Anali...
Introducción al proceso unificado de desarrollo de software en Curso de Anali...Introducción al proceso unificado de desarrollo de software en Curso de Anali...
Introducción al proceso unificado de desarrollo de software en Curso de Anali...Educagratis
 
Metodologías para desarrollo de software
Metodologías para desarrollo de softwareMetodologías para desarrollo de software
Metodologías para desarrollo de softwareAbner Garcia
 
Metodología de desarrollo de softwaree
Metodología de desarrollo de softwareeMetodología de desarrollo de softwaree
Metodología de desarrollo de softwareeAbner Garcia
 
Modelamiento uml
Modelamiento umlModelamiento uml
Modelamiento umlalejo_13
 
Unidad 2 ing de software
Unidad 2 ing de softwareUnidad 2 ing de software
Unidad 2 ing de softwareArmando Barrera
 

La actualidad más candente (20)

Unidad 2.2 Escribiendo El Programa
Unidad 2.2 Escribiendo El ProgramaUnidad 2.2 Escribiendo El Programa
Unidad 2.2 Escribiendo El Programa
 
Unidad 9 Patrones De DiseñO
Unidad 9 Patrones De DiseñOUnidad 9 Patrones De DiseñO
Unidad 9 Patrones De DiseñO
 
Apuntes ing-sof-unidad-4-1-2015
Apuntes ing-sof-unidad-4-1-2015Apuntes ing-sof-unidad-4-1-2015
Apuntes ing-sof-unidad-4-1-2015
 
Ciclo y diseno narzimar sanchez
Ciclo y diseno narzimar sanchezCiclo y diseno narzimar sanchez
Ciclo y diseno narzimar sanchez
 
Desarrollo en espiral
Desarrollo en espiralDesarrollo en espiral
Desarrollo en espiral
 
¿Que es uml ? ACTVIDAD No 4 Jennifer Garcia Montiel 2 "D"
¿Que es uml ? ACTVIDAD No 4  Jennifer Garcia Montiel 2 "D"¿Que es uml ? ACTVIDAD No 4  Jennifer Garcia Montiel 2 "D"
¿Que es uml ? ACTVIDAD No 4 Jennifer Garcia Montiel 2 "D"
 
r3022837166376237762356d7263d524.05272591.pdf
r3022837166376237762356d7263d524.05272591.pdfr3022837166376237762356d7263d524.05272591.pdf
r3022837166376237762356d7263d524.05272591.pdf
 
Ingenieria del software aplicada
Ingenieria del software aplicadaIngenieria del software aplicada
Ingenieria del software aplicada
 
Metodologias de desarrollo de software
Metodologias de desarrollo de softwareMetodologias de desarrollo de software
Metodologias de desarrollo de software
 
F004 p006 gfpi guìa de aprendizaje 3
F004 p006 gfpi guìa de aprendizaje 3F004 p006 gfpi guìa de aprendizaje 3
F004 p006 gfpi guìa de aprendizaje 3
 
Introducción al proceso unificado de desarrollo de software en Curso de Anali...
Introducción al proceso unificado de desarrollo de software en Curso de Anali...Introducción al proceso unificado de desarrollo de software en Curso de Anali...
Introducción al proceso unificado de desarrollo de software en Curso de Anali...
 
Metodologías para desarrollo de software
Metodologías para desarrollo de softwareMetodologías para desarrollo de software
Metodologías para desarrollo de software
 
Metodología de desarrollo de softwaree
Metodología de desarrollo de softwareeMetodología de desarrollo de softwaree
Metodología de desarrollo de softwaree
 
DiseñO De Sistemas
DiseñO De SistemasDiseñO De Sistemas
DiseñO De Sistemas
 
Comunicacion y colaboracion
Comunicacion y colaboracionComunicacion y colaboracion
Comunicacion y colaboracion
 
Modelamiento uml
Modelamiento umlModelamiento uml
Modelamiento uml
 
Comunicación y colaboración
Comunicación y colaboraciónComunicación y colaboración
Comunicación y colaboración
 
Unidad 2 ing de software
Unidad 2 ing de softwareUnidad 2 ing de software
Unidad 2 ing de software
 
Metodologia De Desarrollo De Software
Metodologia De Desarrollo De SoftwareMetodologia De Desarrollo De Software
Metodologia De Desarrollo De Software
 
Rup
RupRup
Rup
 

Destacado (7)

Clase 2 redes
Clase 2 redesClase 2 redes
Clase 2 redes
 
10 Polimorfismo
10   Polimorfismo10   Polimorfismo
10 Polimorfismo
 
Uia pe-30 - randy valverde
Uia   pe-30 - randy valverdeUia   pe-30 - randy valverde
Uia pe-30 - randy valverde
 
Clase 1 redes
Clase 1 redesClase 1 redes
Clase 1 redes
 
Clase 3 redes
Clase 3 redesClase 3 redes
Clase 3 redes
 
Clase 4 redes
Clase 4 redesClase 4 redes
Clase 4 redes
 
Principios de diseño de la arquitectura del software
Principios de diseño de la arquitectura del softwarePrincipios de diseño de la arquitectura del software
Principios de diseño de la arquitectura del software
 

Similar a Clase 4 - Programación IV - BSI1100

Similar a Clase 4 - Programación IV - BSI1100 (20)

Patrones de diseño
Patrones de diseñoPatrones de diseño
Patrones de diseño
 
Patrones de diseño
Patrones de diseñoPatrones de diseño
Patrones de diseño
 
12.diseño basado en patrones
12.diseño basado en patrones12.diseño basado en patrones
12.diseño basado en patrones
 
Patrones de diseño I
Patrones de diseño IPatrones de diseño I
Patrones de diseño I
 
Patrones de diseño I
Patrones de diseño IPatrones de diseño I
Patrones de diseño I
 
12-150203140754-conversion-gate02.pptx
12-150203140754-conversion-gate02.pptx12-150203140754-conversion-gate02.pptx
12-150203140754-conversion-gate02.pptx
 
chuy
chuy chuy
chuy
 
Patrones de-diseño
Patrones de-diseñoPatrones de-diseño
Patrones de-diseño
 
2.4 DISEÑO BASADO EN PATRONES.pptx
2.4 DISEÑO BASADO EN PATRONES.pptx2.4 DISEÑO BASADO EN PATRONES.pptx
2.4 DISEÑO BASADO EN PATRONES.pptx
 
Semana 1 Patrones de Diseño
Semana 1   Patrones de DiseñoSemana 1   Patrones de Diseño
Semana 1 Patrones de Diseño
 
Diseño de patrones
Diseño de patronesDiseño de patrones
Diseño de patrones
 
Desarrollo basado en patrones
Desarrollo basado en patronesDesarrollo basado en patrones
Desarrollo basado en patrones
 
Introducción Patrones de Diseño
Introducción Patrones de DiseñoIntroducción Patrones de Diseño
Introducción Patrones de Diseño
 
1 3 ingenieria software y patrones de diseño
1 3 ingenieria software y patrones de diseño1 3 ingenieria software y patrones de diseño
1 3 ingenieria software y patrones de diseño
 
Clase ii patrones de diseño
Clase ii patrones de diseñoClase ii patrones de diseño
Clase ii patrones de diseño
 
Patrones de Diseño en e-learning
Patrones de Diseño en e-learningPatrones de Diseño en e-learning
Patrones de Diseño en e-learning
 
Patrones de diseño [DdA-2]
Patrones de diseño [DdA-2]Patrones de diseño [DdA-2]
Patrones de diseño [DdA-2]
 
Patrones de-diseño-mañana
Patrones de-diseño-mañanaPatrones de-diseño-mañana
Patrones de-diseño-mañana
 
Patrones de diseño - Daniel E. Jaramillo
Patrones de diseño - Daniel E. JaramilloPatrones de diseño - Daniel E. Jaramillo
Patrones de diseño - Daniel E. Jaramillo
 
Patrones de diseño
Patrones de  diseñoPatrones de  diseño
Patrones de diseño
 

Último

FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
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
 
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
 
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
 
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
 
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
 
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
 
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
 
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
 
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
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
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
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptchaverriemily794
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
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
 
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
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptJavierHerrera662252
 
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
 

Último (20)

FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).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
 
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
 
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
 
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
 
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
 
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
 
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
 
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
 
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
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
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
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
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
 
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
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
 
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
 

Clase 4 - Programación IV - BSI1100

  • 1. ESCUELA DE INGENIERÍA DE SISTEMAS INFORMÁTICOS UNIVERSIDAD LATINA LIC. RANDY VALVERDE VALVERDE 1 Programación IV
  • 2. Desde el principio: El término patrón fue utilizado por primera vez por el arquitecto Christopher Alexander en el libro “A Pattern Language: Towns, Buildings, Construction“, donde definió una serie de patrones arquitectónicos. Alexander define:  “Un patrón describe un problema que ocurre a menudo, acompañado por un intento de solución para el problema.” Christopher Alexander, 1977 Randy V² - II Q – 2016, 100 % positivo
  • 3. Desde el principio:  En 1987, Ward Cunningham y Kent Beck estaban trabajando con Smaltalk, diseñando interfaces de usuario. Para ello, decidieron utilizar alguna de las ideas de Alexander y desarrollaron un pequeño lenguaje de patrones que serviría de guía a los programadores de Smaltalk. A partir de estas idea escribieron el libro “Using Pattern Languajes for Object-Oriented Programs”.  Desde 1990 a 1994, Erich Gamma, Richard Helm, Ralph Johnson y John Vlissides (Gang of four) realizaron un primer catálogo de patrones de diseño. En 1994 publicarón el libro “Design Patterns – Elements of Reusable Object-Oriented Software“ que introducía el termino de patrón de diseño en el desarrollo del software. Randy V² - II Q – 2016, 100 % positivo
  • 4.  ¿Qué es un patrón de diseño?  ¿Por qué usarlos?  Categorización  Problema - Patrón Randy V² - II Q – 2016, 100 % positivo
  • 5. 5 Patrones En las distintas actividades de la vida diaria se reconocen patrones:  Trabajo  Vida familiar  Hobbies Randy V² - II Q – 2016, 100 % positivo
  • 6. Hardware Randy V² - II Q – 2016, 100 % positivo
  • 7. Hardware Software Poder rehusar componentes y lograr un mantenimiento fácil. Lograr un software flexible habitualmente Randy V² - II Q – 2016, 100 % positivo
  • 8. ¿Qué es un patrón de diseño?  “Los patrones de diseño son el esqueleto de las soluciones a problemas comunes en el desarrollo de software.”  En otras palabras, brindan una solución ya probada y documentada a problemas de desarrollo de software que están sujetos a contextos similares. Debemos tener presente los siguientes elementos de un patrón: su nombre, el problema (cuando aplicar un patrón), la solución (descripción abstracta del problema) y las consecuencias (costos y beneficios).  Patrones Creacionales: Inicialización y configuración de objetos.  Patrones Estructurales: Separan la interfaz de la implementación. Se ocupan de cómo las clases y objetos se agrupan, para formar estructuras más grandes.  Patrones de Comportamiento: Más que describir objetos o clases, describen la comunicación entre ellos. Randy V² - II Q – 2016, 100 % positivo
  • 9. ¿Qué es un patrón de diseño? CARACTERISTICAS: Ante un problema reiterado ofrece una solución contrastada que lo resuelve. Describe el problema en forma sencilla. Describe el contexto en que ocurre. Describe los pasos a seguir. Describe los puntos fuertes y débiles de la solución. Describe otros patrones asociados. Randy V² - II Q – 2016, 100 % positivo
  • 10. ¿Qué es un patrón de diseño? CARACTERISTICAS: Se definen con un alto nivel de abstracción. Son independientes de los lenguajes de programación y de los detalles de implementación. Los patrones promueven y facilitan la reutilización de arquitecturas y diseños de software que han demostrado su validez en muchas aplicaciones. Randy V² - II Q – 2016, 100 % positivo
  • 11. Patrones en la Ingeniería de Software Pueden verse como bloques de construcción mentales, para tratar con distintos aspectos del diseño de software. Hay patrones de arquitectura, patrones de diseño, patrones de procesos, patrones de interfaces, “idioms”. No existen paradigmas o lenguajes específicos para implementar patrones de arquitectura, pero algunos proveen elementos útiles (orientación a objetos, polimorfismo, herencia, etc.). Randy V² - II Q – 2016, 100 % positivo
  • 12. ¿Cómo se especifica un patrón? Patrón: Nombre del Patrón Contexto Situación de diseño que da lugar al problema. Problema Conjunto de fuerzas que surgen del contexto. Solución Configuración para balancear las fuerzas Componentes y relaciones (estructura) Comportamiento dinámico Randy V² - II Q – 2016, 100 % positivo
  • 13. Contexto Extiende la dicotomía problema-solución. Describe el escenario donde se da el problema. La descripción del contexto puede ser bastante general o muy específica. Por ejemplo:  “desarrollar software con una interfaz humano- computador”.  “implementar el mecanismo de cambio-propagación en MVC”. Es muy difícil definir completamente el contexto. Listar todas las situaciones en que el problema surge puede ser una alternativa. Randy V² - II Q – 2016, 100 % positivo
  • 14. Problema Describe el problema genérico que surge en el contexto especificado. Esencia: ¿cuál aspecto del problema debemos resolver?  El problema generalmente varía, pero la escencia se mantiene. Las fuerzas describen aspectos más específicos del problema con distintos puntos de vista, y hasta pueden contradecirse. Pueden ser:  requisitos de la solución  restricciones  propiedades deseables/indeseables Randy V² - II Q – 2016, 100 % positivo
  • 15. Solución Es la forma de balancear las fuerzas para resolver el problema. Dos aspectos o componentes de la solución:  Estructura estática - componentes y relaciones.  Comportamiento dinámico - forma de organización y colaboración entre las componentes. La solución no siempre toma en cuenta todas las fuerzas. Hay que establecer prioridades, si las fuerzas son contradictorias. Se debe establecer un esquema de soluciones y no algo completamente definido (demasiado especificado, y por ende, restrictivo). Randy V² - II Q – 2016, 100 % positivo
  • 16. Relación entre Patrones “Cada patrón depende de los patrones más pequeños que contiene y de los más grandes donde está contenido.” Distintos aspectos de un sistema pueden resolverse con distintos patrones. Existen variantes de ciertos patrones para situaciones especiales. Randy V² - II Q – 2016, 100 % positivo
  • 17. Descripción de Patrones Una descripción apropiada permite la comprensión, el análisis y la discusión del patrón. La definición del Contexto-Problema-Solución es un buen punto de partida. Los buenos nombres se convierten en jerga o modismos. Ejemplos, diagramas, escenarios y guías para la implementación también pueden formar parte de la definición de un patrón. Discusión de beneficios y debilidades ayudan a tomar mejores decisión respecto a su uso. Randy V² - II Q – 2016, 100 % positivo
  • 18. Descripción Completa de un Patrón Ejemplo Ejemplo conocido de la literatura Nombre Nombre descriptivo Contexto Situación en que surge el problema Problema Fuerzas que surgen en el contexto Solución Configuración que balancea las fuerzas Estructura Diagramas que describen la configuración Dinámica Descripción del comportamiento. Escenarios Implementación Guía para implementar el patrón Resolución del ejemplo Aplicación del patrón al ejemplo Variantes Alternativas para resolver el ejemplo Usos conocidos Descripción de problemas donde se aplica Consecuencias Beneficios y perjuicios Randy V² - II Q – 2016, 100 % positivo
  • 19. 19 Arquitectura 1. Define la forma y la estructura de la aplicación de software. 2. Relacionada al propósito de la aplicación. 3. Arquitectura de módulos y sus interconexiones Patrones de diseño Paquetes, componentes, clases Randy V² - II Q – 2016, 100 % positivo
  • 20. 20 Evidencias de diseño erróneo Rigidez: problemas para insertar algún cambio. Fragilidad: el software falla en muchos lugares al insertar un cambio. Inmovilidad: no se pueden rehusar partes del proyecto. Viscosidad: • De diseño: cuando se deben hacer cambios, es más fácil hacer cosas mal, que bien. • De entorno: entorno de desarrollo ineficiente Randy V² - II Q – 2016, 100 % positivo
  • 21. ¿Por qué usarlos? Mejora en la comunicación y documentación  “Hay que hacer un Factory Method”  Facilita la documentación interna del proyecto.  Mejora la ingeniería de software.  Eleva el nivel del grupo de desarrollo. Previene “reinventar la rueda” en diseño  Son soluciones ya probadas. Mejora la calidad y estructura  “¿Cuan grande debe ser una clase?” Randy V² - II Q – 2016, 100 % positivo
  • 22. Clasificación de patrones (GoF) Patrones de creación: Tratan de la inicialización y configuración de clases y objetos. Patrones estructurales: Tratan de desacoplar interfaz e implementación de clases y objetos. Patrones de comportamiento: Tratan de las interacciones dinámicas entre sociedades de clases y objetos Randy V² - II Q – 2016, 100 % positivo
  • 23. Patrones de creación The Factory Method retorna una de las posibles subclases de una clase abstracta dependiendo de los datos que se le provee. The Abstract Factory Method retorna una de las varias familias de objetos. The Builder Pattern separa la construcción de un objeto complejo de su representación. Varias representaciones se pueden crear dependiendo de las necesidades del programa. The Prototype Pattern inicializa e instancia una clase y luego copia o clona si necesita otras instancias, mas que crear nuevas instancias. The Singleton Pattern es una clase de la cual no puede existir mas de una instancia. Randy V² - II Q – 2016, 100 % positivo
  • 24. 24 Patrones estructurales Adapter: cambia la interfaz de una clase a la de otra. Bridge: permite mantener constante la interfaz que se presenta al cliente, cambiando la clase que se usa Composite: una colección de objetos Decorator: una clase que envuelve a una clase dándole nuevas capacidades. Facade: reúne una jerarquía compleja de objetos y provee una clase nueva permitiendo acceder a cualquiera de las clases de la jerarquía. Flyweight: permite limitar la proliferación de pequeñas clases similares. Randy V² - II Q – 2016, 100 % positivo
  • 25. 25 Patrones de comportamiento Cadena de responsabilidad: permite que un conjunto de clases intenten manejar un requerimiento. Interpreter: define una gramática de un lenguaje y usa esa gramática para interpretar sentencias del lenguaje. Iterator: permite recorrer una estructura de datos sin conocer detalles de cómo están implementados los datos Observer: algunos objetos reflejan un cambio a raíz del cambio de otro, por lo tanto se le debe comunicar el cambio de este último. Strategy: cantidad de algoritmos relacionados encerrados en un contexto a través del cual se selecciona uno de los algoritmos. Randy V² - II Q – 2016, 100 % positivo
  • 26. Otros tipos de patrones Patrones de programación concurrente Patrones de interfaz gráfica Patrones de organización de código Patrones de optimización de código Patrones de robustez de código Patrones de fases de prueba Randy V² - II Q – 2016, 100 % positivo
  • 27. Beneficios de los patrones Los patrones favorecen la reutilización de diseños y arquitecturas a gran escala. Capturan el conocimiento de los expertos y lo hacen accesible a toda la comunidad software. Proporcionan un cuerpo de conocimiento utilizable por toda la comunidad software. Favorecen la transmisión de conocimiento entre profesionales y entre clientes y desarrolladores Proporcionan un lenguaje común. Los nombres de los patrones forman parte del vocabulario técnico del ingeniero software. Randy V² - II Q – 2016, 100 % positivo
  • 28. Problema de los patrones Los patrones, no llevan de forma directa a la reutilización del código, aunque dicha reutilización se facilita mediante su uso. La integración de los patrones en el proceso de desarrollo se hace todavía de forma manual. El número de patrones identificados es cada vez más grande. Las clasificaciones actuales no siempre sirven de guía para decidir cual usar. Randy V² - II Q – 2016, 100 % positivo
  • 29. El número de combinaciones patrones estilos y atributos que se dan en la práctica son incontables. Los patrones se validan por la experiencia y el debate, no mediante la aplicación de técnicas formales Problema de los patrones Randy V² - II Q – 2016, 100 % positivo
  • 30. Cómo seleccionar un patrón de diseño Considerar cómo los patrones de diseño solucionan problemas de diseño. Buscar las intenciones de cada patrón. Estudiar cómo se interrelacionan los patrones. Estudiar patrones de propósito similar. Examinar la causa de un rediseño. Considerar que debería ser variable en un diseño. Randy V² - II Q – 2016, 100 % positivo
  • 31. Cómo usar un patrón de diseño 1. Leer el patrón una vez para tener una visión general 2. Volver y estudiar la estructura, los participantes y las colaboraciones 3. Ver un ejemplo concreto codificado del patrón 4. Elegir nombres para los participantes del patrón que sean significativos en el contexto de la aplicación Randy V² - II Q – 2016, 100 % positivo
  • 32. 5. Definir las clases 6. Definir nombres específicos de la aplicación para las operaciones en el patrón. 7. Implementar las operaciones que realizarán las responsabilidades y colaboraciones del patrón. Cómo usar un patrón de diseño Randy V² - II Q – 2016, 100 % positivo
  • 33. Antipatrón de diseño Antipatrón es un patrón de diseño que invariablemente conduce a una mala solución para un problema. Al documentarse los antipatrones, además de los patrones de diseño, se dan argumentos a los diseñadores de sistemas para no escoger malos caminos, partiendo de documentación disponible en lugar de simplemente la intuición. Randy V² - II Q – 2016, 100 % positivo
  • 34. Antipatrón de diseño El estudio de los antipatrones es muy útil porque sirve para no escoger malos caminos en el desarrollo de sistemas, teniendo para ello una base documental y así evitar usar simplemente la intuición. Además proporciona una denominación común a problemas que facilita la comunicación entre diferentes desarrolladores. Randy V² - II Q – 2016, 100 % positivo
  • 35. Antipatrón de diseño Mejor conocido como “objeto todopoderoso”. Se presenta cuando una clase es muy grande tanto en atributos y/o en métodos. Entre más grande son las clases es más difíciles de mantener, reusar y probar. Su gran tamaño puede perjudicar el tiempo de carga. Generalmente son el resultado de un mal diseño o de sistemas legados. Randy V² - II Q – 2016, 100 % positivo
  • 36. Randy V² - II Q – 2016, 100 % positivo
  • 37. Randy V² - II Q – 2016, 100 % positivo
  • 38. Randy V² - II Q – 2016, 100 % positivo