Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Nº 8724285
28/11/09
• Patrones de diseño, componentes, diseño de interfases del sistema, notación de diseño.
• Medición de los atributos del diseño.
MI COMENTARIO: (ANALISIS)
PATRON DE DISEÑO:
DE ACUERDO A LAS SIGUIENTES DEFINICIONES, ENTIENDO QUE UN
PATRON DE DISEÑO: es o son soluciones comunes a problemas de
diseño de software orientado a objetos y que además poseen ciertas
características de efectividad para resolver ese problema, reusabilidad:
que puede ser reutilizado o aplicado en otros diseños o problemas, si
se quiere.
http://es.wikipedia.org/wiki/Patrones_de_dise%C3%B1o
http://www.ingenierosoftware.com/analisisydiseno/patrones-diseno.php
Según el libro "Design Patterns ", escrito por los que comúnmente se
conoce como GoF (gang of four, "pandilla de los cuatro"). Los patrones
de diseño se clasifican en:
• Patrones de creación: 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.
UN COMPONENTE DE SOFTWARE:
http://pegasus.javeriana.edu.co/~jcpymes/Docs/DSBC.pdf
•
• Un componente de software reutililizable (CSR) es un artefacto de software
auto-contenido y claramente identificable que:
ejecuta funciones específicas,
tiene una interface clara a través de la cual se integra a otros
sistemas,
tiene una documentación apropiada y
tiene un status de reuso definido
• Un componente de software reutilizable puede ser:
un módulo,
una clase,
un procedimiento o función,
un subsistema,
una aplicación
http://es.wikipedia.org/wiki/Patrones_de_dise%C3%B1o
Los patrones de diseño no son fáciles de entender, pero una vez entendido su
funcionamiento, los diseños serán mucho más flexibles, modulares y reutilizables. Han
revolucionado el diseño orientado a objetos y todo buen arquitecto de software debería
conocerlos.
A continuación una lista con los patrones de diseño a objetos más habituales publicados
en el libro "Design Patterns ", escrito por los que comúnmente se conoce como GoF (gang of
four, "pandilla de los cuatro").
Patrones de creación
• Abstract Factory. Proporciona una interfaz para crear familias de objetos o que
dependen entre sí, sin especificar sus clases concretas.
• Builder. Separa la construcción de un objeto complejo de su representación, de
forma que el mismo proceso de construcción pueda crear diferentes
representaciones.
• Factory Method. Define una interfaz para crear un objeto, pero deja que sean las
subclases quienes decidan qué clase instanciar. Permite que una clase delegue en
sus subclases la creación de objetos.
• Prototype. Especifica los tipos de objetos a crear por medio de una instancia
prototípica, y crear nuevos objetos copiando este prototipo.
• Singleton. Garantiza que una clase sólo tenga una instancia, y proporciona un punto
de acceso global a ella.
Patrones estructurales
• Adapter. Convierte la interfaz de una clase en otra distinta que es la que esperan
los clientes. Permiten que cooperen clases que de otra manera no podrían por tener
interfaces incompatibles.
• Bridge. Desvincula una abstracción de su implementación, de manera que ambas
puedan variar de forma independiente.
• Composite. Combina objetos en estructuras de árbol para representar jerarquías de
parte-todo. Permite que los clientes traten de manera uniforme a los objetos
individuales y a los compuestos.
• Decorator. Añade dinámicamente nuevas responsabilidades a un objeto,
proporcionando una alternativa flexible a la herencia para extender la funcionalidad.
• Facade. Proporciona una interfaz unificada para un conjunto de interfaces de un
subsistema. Define una interfaz de alto nivel que hace que el subsistema se más fácil
de usar.
• Flyweight. Usa el compartimiento para permitir un gran número de objetos de
grano fino de forma eficiente.
• Proxy. Proporciona un sustituto o representante de otro objeto para controlar el
acceso a éste.
Patrones de comportamiento
http://www.ingenierosoftware.com/analisisydiseno/patrones-diseno.php
Volver
Qué es un Patrón de Diseño?
Por Nicolás Tedeschi
Contenido
¿Qué es un Patrón de Diseño?
Patrones Creacionales
Patrones Estructurales
Patrones de Comportamiento
Conclusión
Esta fue la primer pregunta que me hice cuando comencé a investigar sobre este tema. Al
principio no tenía mucha idea de por dónde comenzar, por lo que mi primera reacción fue realizar una
búsqueda en Internet y obtener de esta manera alguna base sobre la cual apoyarme. La definición que
más me gustó fue la siguiente:
“Los patrones de diseño son el esqueleto de las soluciones a problemas comunes en el desarrollo
de software.”
Grande fue mi sorpresa al averiguar que existen varios patrones de diseño popularmente
conocidos, los cuales se clasifican como se muestra a continuación:
entre ellos.
Veamos un poco en qué consisten los distintos tipos de patrones, cuáles son sus fines y qué
beneficios nos aportan.
Introducción
El diseño es un modelo del sistema, realizado con una serie de principios y técnicas, que
permite describir el sistema con el suficiente detalle como para ser implementado. Pero los
principios y reglas no son suficientes, en el contexto de diseño podemos observar que los
buenos ingenieros tienen esquemas y estructuras de solución que usan numerosas veces en
función del contexto del problema. Este es el sentido cabal de la expresión "tener un mente
bien amueblada", y no el significado de tener una notable inteligencia. Estos esquemas y
estructuras son conceptos reusables y nos permiten no reinventar la rueda. Un buen ingeniero
reutiliza un esquema de solución ante problemas similares.
Algo de historia
El concepto de "patrón de diseño" que tenemos en Ingeniería del Software se ha tomado
prestado de la arquitectura. En 1977 se publica el libro "A Pattern Language:
Towns/Building/Construction", de Christopher Alexander, Sara Ishikawa, Murray Silverstein,
Max Jacobson, Ingrid Fiksdahl-King y Shlomo Angel, Oxford University Press. Contiene
numerosos patrones con una notación específica de Alexander.
Alexander comenta que “Cada patrón describe un problema que ocurre una y otra vez
en nuestro entorno, para describir después el núcleo de la solución a ese problema, de tal
manera que esa solución pueda ser usada más de un millón de veces sin hacerlo siquiera dos
veces de la misma forma”. El patrón es un esquema de solución que se aplica a un tipo de
problema, esta aplicación del patrón no es mecánica, sino que requiere de adaptación y
matices. Por ello, dice Alexander que los numerosos usos de un patrón no se repiten dos
veces de la misma forma.
Siguiendo el libro de GOF los patrones se clasifican según el proposito para el que han
sido definidos:
Los patrones de diseño son descripciones de clases cuyas instancias colaboran entre
sí. Cada patrón es adecuado para ser adaptado a un cierto tipo de problema. Para describir un
caso debemos especificar:
• Nombre
• Propósito o finalidad
• Sinónimos (otros nombres por los que puede ser conocido)
• Problema al que es aplicable
• Estructura (diagrama de clases)
• Participantes (responsabilidad de cada clase)
• Colaboraciones (diagrama de interacciones)
• Implementación (consejos, notas y ejemplos)
• Otros patrones con los que está relacionado
También conviene distinguir entre un patrón y una arquitectura global del sistema. Por
decirlo en breve, es la misma distancia que hay entre el diseño de un componente (o módulo) y
el análisis del sistema. Es la diferencia que hay entre el aspecto micro y el macro, por ello, en
ocasiones se denomina a los patrones como "microarquitecturas".
Compuesto (Composite)
Decorador (Decorator)
Mediador (Mediator)
Iterador (Iterator)
Observador (Observer)
Modelo-vista-controlador (Model-View-Controller)
Factoria
Proxy
Volver al índice