Anda di halaman 1dari 30

Fascculo

Patrones de Desarrollo
Semestre 9

Patrones de desarrollo

Patrones de desarrollo

Semestre 9

Patrones de desarrollo

Tabla de contenido
Presentacin general de la asignatura Competencias generales Contenido de la asignatura Mapa conceptual de la asignatura Introduccin Conceptos previos Mapa conceptual Fascculo 1 Logros Fundamentos de Patrones Origen e Historia de los patrones Patrones Que es un Patrn Algunas definiciones de patrn Patrones para el desarrollo de software Caractersticas de un buen patrn Tipos de patrones Patrones arquitectnicos Patrones de Diseo Patrones de Creacin Patrones Estructurales Patrones de Comportamiento Cmo usar un Patrn de Diseo Elementos de un patrn de diseo Descripcin de patrones de diseo Actividad de trabajo colaborativo Resumen Bibliografa recomendada Nexo Seguimiento al autoaprendizaje

Pgina 1 1 3 7 7 8 9 9 9 10 11 13 13 14 14 15 15 15 16 17 18 18 19 20 22 22 23 23 25

Crditos: 3 Tipo de asignatura: Terico Prctica

Semestre 9

Patrones de desarrollo

Copyright2008 FUNDICIN UNIVERSITARIA SAN MARTN Facultad de Universidad Abierta y a Distancia, Educacin a Travs de Escenarios Mltiples Bogot, D.C. Prohibida la reproduccin total o parcial sin autorizacin por escrito del Presidente de la Fundacin. La redaccin de este fascculo estuvo a cargo de MIGUEL HERNNDEZ BEJARANO Docente tutor Programa de Ingeniera de Sistemas a Distancia. Sede Bogot, D.C. Revis y aprob Ingeniero MACK UESSELER Correccin de estilo MARLON CARRERO RAMREZ Diseo grfico y diagramacin a cargo de SANTIAGO BECERRA SENZ ORLANDO DAZ CRDENAS Impreso en: GRFICAS SAN MARTN Calle 61A No. 14-18 - Tels.: 2350298 - 2359825 Bogot, D.C., Junio de 2012

Patrones de desarrollo

Semestre 9

Patrones de desarrollo Presentacin general de la asignatura


Esta asignatura aporta al perfil del ingeniero la capacidad para desarrollar el pensamiento lgico de abstraccin, en diseo e identificar el proceso de construccin de aplicaciones para resolver problemas empleando patrones de desarrollo. Para tal fin la asignatura se ha estructurado en ocho fascculos as: En el fascculo I se presentan los conceptos de patrones, su evolucin y tipos de patrones. En el fascculo II patrones de creacin. En el fascculo III patrones Estructurales. En el fascculos IV patrones de Comportamiento. En los fascculos V y VI se desarrollan aplicaciones de los patrones de: Creacin, Estructurales y de Comportamiento. En el fascculo VII patrn modelo, vista, controlador. En el fascculo VIII patrn MVC en Java.

Competencias generales
Mediante el estudio y seguimiento al contenido de los fascculos de esta asignatura, los estudiantes deben alcanzar el desarrollo de las siguientes habilidades, actitudes y aptitudes. Cognitivas: Definir qu tipo de patrn se ajusta al desarrollo de un aplicativo de software. Identificar los tipos de patrones. Comprender los elementos de un patrn. Implementar patrones de diseo de software en la construccin de aplicaciones.

Fascculo No. 1 Semestre 9

RPatrones de desarrollo

Patrones de desarrollo
Contextual: Habilidad para definir la estructura visual del diagrama de clases correspondiente a un patrn de diseo Destreza en la creacin de clases de Java y su compilacin empleando herramientas informticas de compilacin y depuracin, como IDES de programacin ms especializados. Tener el conocimiento de los fundamentos, los tipos, los elementos de los patrones de diseo de software. Desarrollar la capacidad argumentativa para explicar y justificar la utilizacin de determinados patrones de diseo en una aplicacin de software. Valorativas Reconocer la importancia de la aplicacin de patrones en la construccin de proyectos de software. Evaluar el tipo de patrn a implementar segn requerimientos de la aplicacin de software. Comunicativas Aplicar patrones en la construccin programas de software. Escribir aplicaciones que implementen patrones. Elaborar diseo de clases que apliquen patrones utilizando herramientas UML. Utilizar los medios tecnolgicos para interactuar con los dems y aprender a trabajar en equipo.

Patrones de desarrollo

Fascculo No. 1 Semestre 9

Patrones de desarrollo Contenido mnimo de la asignatura


Fascculo 1 Fundamentos de Patrones. Origen e historia de los Patrones. Patrones. Definiciones. Caractersticas. Patrones para el desarrollo de software. Tipos de patrones. Revisin de conceptos. Fascculo 2 Revisin de conceptos o Clases abstractas o Interfaces Patrn Singleton o Caractersticas generales o Ejemplo Patrn Prototype o Caractersticas generales o Ejemplo Patrn Factory Method o Caractersticas generales o Ejemplo Fascculo 3 Patrn Adapter o Caractersticas generales o Ejemplo Patrn Facade

Fascculo No. 1 Semestre 9

Patrones de desarrollo

Patrones de desarrollo
o Caractersticas generales o Ejemplo Patrn Decorator o Caractersticas generales o Ejemplo Fascculo 4 Patrn Observer o o Caractersticas generales Ejemplo Caractersticas generales Ejemplo

Patrn Iterator o o

Otros Patrones

Fascculo 5 Aplicacin Patrones de Creacin o Programa que implementa el patrn Factory Method Diagramas de clases Codificacin aplicacin Enunciado Diagramas de clases Codificacin aplicacin

o Programa que implementa el patrn Prototype

Aplicacin Patrones Estructurales o Programa que aplica el patrn Proxy Enunciado Diagramas de clases Codificacin aplicacin

Aplicacin Patrn de Comportamiento o Programa que implementa el patrn Strategy

Patrones de desarrollo

Fascculo No. 1 Semestre 9

Patrones de desarrollo
Enunciado Diagramas de clases Codificacin aplicacin

Fascculo 6 Aplicacin Patrones de Creacin o Programa utilizando el patrn Abstract Factory Diagrama de clases Codificacin aplicacin Aplicacin Patrones Estructurales o Programa utilizando el patrn Composite. Diagrama de clases Codificacin aplicacin Aplicacin Patrones Comportamiento o Programa aplicando patrn Mediator. Diagrama de clases Codificacin aplicacin o Programa estados utilizando el patrn State. Diagrama de clases Codificacin aplicacin Fascculo 7 ARQUITECTURA Modelo/Vista/Controlador o El Modelo o La Vista o El controlador o Ventajas o Desventajas o Enunciado Aplicacin

Fascculo No. 1 Semestre 9

Patrones de desarrollo

Patrones de desarrollo
Fascculo 8 Modelo Vista Controlador en Java Swing o Arquitectura de Java Swing o Modelos y componentes o Codificacin aplicacin o Enunciado programa o Diagrama de clases o Codificacin aplicacin

Patrones de desarrollo

Fascculo No. 1 Semestre 9

Patrones de desarrollo Mapa conceptual de la asignatura

Introduccin
El desarrollo de software es una tarea compleja, que depende en gran medida de la experiencia de los ingenieros de sistemas involucrados. En los ltimos aos, las tecnologas orientadas a objetos son las ms utilizadas para la construccin de aplicaciones de software. Se ha comprobado cmo este paradigma de programacin presenta una serie de ventajas dentro de las que estn: Reduccin de tiempos. Disminucin del esfuerzo de mantenimiento. Eficiencia.

Fascculo No. 1 Semestre 9

Patrones de desarrollo

Patrones de desarrollo
Consistencia. Fiabilidad. Proteccin de la inversin en desarrollos.

Los patrones de diseo son conocidos ms comnmente como "Design Patterns". Se trata de soluciones simples y afinadas a problemas especficos y comunes del diseo orientado a objetos. Los patrones, como elemento de la reutilizacin de cdigo, comenzaron a utilizarse en la construccin de aplicaciones de software como una solucin estndar a un problema comn de programacin con una tcnica para flexibilizar el cdigo hacindolo satisfacer ciertos criterios. En ese sentido se han construido una serie de fascculos que tienen como objetivo familiarizar al estudiante del Programa de Ingeniera de Sistemas con el uso de patrones para el diseo y construccin de aplicaciones de software, obteniendo un mayor grado de fiabilidad y flexibilidad en los diseos, al reutilizar estructuras ya probadas en otros contextos de una forma ms sencilla de comprender y mantener al estar documentados sobre la base de un conjunto de patrones ampliamente conocidos y difundidos. En otras palabras, rehusar soluciones que funcionaron bien una vez.

Conceptos previos
Es fundamental que para el desarrollo y seguimiento del contenido del fascculo, y del curso de patrones, el estudiante realice una revisin a los conceptos de los siguientes temas: Programacin Orientada a Objetos o Abstraccin o Encapsulamientos o Herencia o modularidad

Patrones de desarrollo

Fascculo No. 1 Semestre 9

Patrones de desarrollo
Programacin en Java Fundamentos UML o Diagramas UML de Clases y Objetos

Mapa conceptual fascculo 1

L o gro s

Al finalizar el estudio del presente fascculo el estudiante estar en capacidad de: Comprender qu es un patrn de diseo de software. Reconocer los tipos de patrones Conocer la evolucin histrica de los patrones de diseo de software Categorizar los tipos de patrones y sus caractersticas

Fundamentos de patrones
El concepto de patrn como elemento reutilizable de experiencia y conocimiento en el rea del desarrollo de aplicaciones de software, ha teniendo un espacio ms activo en la comunidad de orientacin a objetos, este
Fascculo No. 1 Semestre 9

Patrones de desarrollo

Patrones de desarrollo
hecho se deriva el trmino patrn de software y ms concretamente el de patrn de diseo para hacer referencia al uso de patrones en el Diseo Orientado a Objeto (DOO). Antes de empezar a trabajar con los patrones se inicia con una revisin del origen, evolucin y los fundamentos de patrones de diseo.

Origen e historia de los patrones


El concepto de patrn software, ms concretamente patrn de diseo, se hizo popular en del mundo del desarrollo de software en 1995 con la publicacin del libro Design Patterns: Elements of Reusable ObjectOriented Software escrito por Erich Gamma, Richard Helm, Ralph Jonhson y John Vlissides (normalmente referenciados como la Banda de los Cuatro The Gang of Four o simplemente por GoF). Este libro presenta un conjunto de 23 patrones de diseo de software bajo el paradigma orientado a objeto, que van a suponer la aceptacin definitiva del concepto de patrn de diseo en el mundo del software y el inicio de una comunidad de profesionales trabajando e investigando en esta rea. El trmino patrn se utiliz inicialmente en el campo de la arquitectura por Christopher Alexander, a finales de los 70s. El cual se resume en varios libros y artculos sobre la planificacin del urbanismo y arquitectura de edificios; este conocimiento es llevado al mbito del desarrollo de software orientado a objetos y se aplica al diseo. En 1987, Ward Cunningham y Kent Beck trabajaron con Smaltalk y disearon interfaces de usuario. Decidieron para ello, utilizar alguna de las ideas de Alexander para desarrollar un lenguaje pequeo de patrones para servir de gua a los programadores de Smaltalk. As dieron lugar al libro Using Pattern Languajes for Object-Oriented Programs.

Patrones de desarrollo

10

Fascculo No. 1 Semestre 9

Patrones de desarrollo
En 1991, Jim Coplien comenz a realizar un catlogo de idioms (que son un tipo de patrones) en C++ y publica su libro Advanced C++ Programming Styles and Idioms. Desde 1990 a 1994, Erich Gamma, Richard Helm, Ralph Johnson y John Vlissides (el grupo de los cuatro) realizaron un primer catlogo de patrones de diseo. En Abril de 1994 el libro Design Patterns: Elements of Reusable Object- Oriented Software (Gang of Four, [GoF]) es publicado. En 1997 Brad Appleton publica Patterns and Software: Essential Concepts and Terminology. Mark Grand publica en 1998 Patterns in Java (volumen 1) que es un catlogo de patrones de diseo ilustrados con UML. En 1999 el mismo autor publica Patterns in Java (volumen 2) en donde se aaden alg unos patrones de diseo ms y otros tipos de patrones tales como patrones de organizacin de cdigo, patrones de optimizacin de cdigo, entre otros.

Patrones
En las diferentes actividades que realiza el hombre se pueden encontrar una serie de caractersticas comunes que se repiten como por ejemplo elaboracin de las prendas de vestir, anexar y recorrer una lista; recorrer un arreglo, entre otros. Ejemplos: 1. Patrn de un pantaln, el modelo puede ser de papel, cartn o tela segn el cual se corta un material determinado, donde el sastre o modista realiza primero el patrn y luego corta la tela.

Fascculo No. 1 Semestre 9

11

Patrones de desarrollo

Patrones de desarrollo

Tomada de: http://www.elcosturerodestellablog.com/

Tomada de: http://www.cpclic.net/dico/p.htm

2. Patrones de las listas, para recorrerla y anexar un nodo al final de esta. Recorre la lista para buscar un dato

Suponga que se tiene una lista con dos nodos anexar nodo 2

Se crea el nuevo nodo 1 2 3

Se anexa nuevo nodo a la lista 1 2 3

Patrones de desarrollo

12

Fascculo No. 1 Semestre 9

Patrones de desarrollo
3. Patron de programacin para recorrer los vectores for ( int i = 0 ; i < arreglo.length ; i++) { sentencias } 4. El patrn de diapositivas de una presentacin es un almacenamiento de los estilos de una presentacin como el tipo, el tamao de las vietas y fuentes; el diseo de fondo y las combinaciones de colores de relleno, entre otros, correspondiente a la informacin de la plantilla.

Qu es un patrn?
Segn el diccionario de la Real Academia Espaola un patrn es: Dechado que sirve de muestra para sacar otra cosa igual, estando esta definicin muy cercana a la idea que se persigue con los patrones software, donde los patrones en lugar de servir como muestra fsica, sirven para almacenar y documentar soluciones recurrentes de problemas. En programacin orientada a objetos los patrones encierren buenas prcticas de diseo y estas se basan en los principios del desarrollo de software de un determinado tipo de problema. Los patrones son un aspecto importante de la estrategia de reutilizacin de software dentro de una organizacin. Los patrones no son una librera, son un esqueleto bsico que cada desarrollador luego adapta a sus necesidades y requerimientos propios de cada aplicacin.

Algunas definiciones de patrn


Un patrn es un pedazo de informacin con nombre, instructivo y significante, que captura la esencia de una familia exitosa y completa de soluciones a un problema recurrente en un contexto dado Brad ApFascculo No. 1 Semestre 9

13

Patrones de desarrollo

Patrones de desarrollo
pleton (Software Configuration Management Patterns, Editorial: Addison-wesley, 2003) Cada patrn es una regla de tres partes, la cual expresa una relacin entre un cierto contexto, un problema y una solucin. El patrn esta resumiendo al mismo tiempo una cosa que tiene su lugar en el mundo, y la regla que dice cmo crear esa cosa y cundo se debe crear. Chri stopher Alexander, The Timeless Way of Building, 1.979

Patrones para el desarrollo de software


Son avances de la Tecnologa Orientada a Objetos y una forma literaria para resolver problemas de ingeniera del software, que tiene sus races en los patrones de la arquitectura. Hay que tener en cuenta que no todas las soluciones que tengan en principio las caractersticas de un patrn son un patrn, sino que debe probarse que es una solucin a un problema que se repite. Para que se pueda considerar un patrn, ste debe pasar por unas pruebas que reciben el nombre de test de patrones, mientras tanto esa solucin recibe el nombre de proto-patrn.

Caractersticas de un buen patrn


Solucionar un problema: Un patrn captura soluciones, no solo principios abstractos o estrategias. Es un concepto probado. La solucin no es obvia. Describe una relacin: No solo describen mdulos, sino estructuras y mecanismos. Tiene un componente humano significante: es esttico y de utilidad.

Patrones de desarrollo

14

Fascculo No. 1 Semestre 9

Patrones de desarrollo Tipos de patrones


Existen varios tipos de patrones, dependiendo del nivel de abstraccin o contexto particular en el cual se aplican para el desarrollo de software, dentro de los que se pueden mencionar:

Patrones arquitectnicos
Expresan una organizacin estructural fundamental para un sistema software. Conformados por un conjunto de subsistemas predefinidos, especificando sus responsabilidades, respectivas e incluyen las reglas y criterios para organizar las relaciones existentes entre ellos. Se recogen aqu ocho patrones estructurales, agrupados en cuatro categoras:
Del caos a la organizacin Niveles Tuberas y filtros Pizarra Intermediario o broker MVC: Modelo-Vista-Controlador PAC: Presentacin, Abstraccin, Control Microkernel Reflexin

Sistemas distribuidos Sistemas interactivos Sistemas adaptables


Tabla 1. Categora de patrones

Patrones de diseo
Ofrecen esquemas para refinar subsistemas y componentes de un sistema software, o las relaciones entre ellos. Son normalmente una estructura de comunicacin recurrente entre componentes que sirve para resolver un problema general de diseo dentro de un contexto particular. Idioms: Un idiom es patrn de bajo nivel, especfico de un determinado lenguaje de programacin. Describen cmo implementar aspectos particulares de los componentes, o de las relaciones entre ellos, utilizando las
Fascculo No. 1 Semestre 9

15

Patrones de desarrollo

Patrones de desarrollo
caractersticas de un determinado lenguaje. Como ejemplo de un idiom se tiene aplicacin en en C++ para copiar cadenas de caracteres: while (*destino++ = *src++); Centrando de nuevo la atencin en los patrones de diseo, en el libro de GoF se distinguen tres tipos de patrones de diseo: patrones de creacin, patrones estructurales y patrones de comportamiento. Adems, en cada una de las categoras se presentan dos subtipos de patrones los que trabajan con clases y patrones que trabajan con objetos.

Patrones de creacin
Los patrones de creacin abstraen el proceso de instanciacin de los objetos y se caracterizan por que Resuelven problemas relativos a la creacin de objetos Abstraen el proceso de creacin de objetos. Permiten crear sistemas independientes de cmo los objetos son creados, compuestos y representados. Permiten el reconocimientos en el sistema de las clases abstractas

Los ingenieros de sistemas dedicados al desarrollo de software no resuelven los problemas desde sus principios; reutilizan soluciones que les han funcionado en aplicaciones de software anteriores, haciendo uso de los patrones de clases y objetos de comunicacin. Estos patrones resuelven problemas de diseo especficos y hacen el diseo flexible y reusable.

Patrones de desarrollo

16

Fascculo No. 1 Semestre 9

Patrones de desarrollo
Los Patrones de Creacin pueden ser:
mbito Clase Mtodo de Fabricacin Objeto Fbrica Constructor Prototipo Singleton Creacin

Tabla 2: Patrones de creacin

Patrones estructurales
En este tipo de patrn las clases y objetos se combinan para formar estructuras ms complejas caracterizado por: Patrones basados en herencia. o Slo una forma de Adapter. Patrones basados en composicin. o Describen formas de combinar objetos para obtener nueva funcionalidad. o Brindan la posibilidad de cambiar la composicin en tiempo de ejecucin.
mbito Clase Estructurales Adaptador (clases) Adaptador (objetos) Puente Composicin Decorador Fachada Flyweight Apoderado
Tabla 3 Patrones estructurales

Objeto

Fascculo No. 1 Semestre 9

17

Patrones de desarrollo

Patrones de desarrollo Patrones de comportamiento


Caracterizan las formas en las que interactan y asignacin de responsabilidades entre las clases u objetos y estn basados en: La herencia de clases como por ejemplo Template Method e Interpreter. La composicin o la utilizacin dinmica de objetos como por ejemplo Mediator, Observer, entre otros.
mbito Clase Comportamiento Intrprete Template Method Cadena de Responsabilidad Comando Iterador Intermediario Observador Estado Estrategia Visitante Memoria

Objeto

Tabla 4 Patrones de comportamiento

Las anteriores tablas presenta la clasificacin segn su propsito en los patrones de diseo. Patrones de creacin: Estn relacionados con la creacin de instancias. Patrones estructurales: tratan la relacin entre clases, la combinacin de clases y la formacin de estructuras de mayor complejidad. Patrones de comportamiento: Se refieren a la interaccin y cooperacin entre clases.

Cmo usar un patrn de diseo


Leer la descripcin del patrn. Estudiar las secciones: estructura, participantes y colaboraciones. Mirar la seccin de cdigo fuente. Elegir nombres para los participantes segn el contexto del problema.
Patrones de desarrollo

18

Fascculo No. 1 Semestre 9

Patrones de desarrollo
Definir las clases. Definir los nombres de las operaciones. Implementar las operaciones para asegurar las responsabilidades y colaboraciones del patrn.

Elementos de un patrn de diseo


En general, un patrn tiene cuatro elementos esenciales: 1. El nombre del patrn se utiliza para describir un problema de diseo, su solucin, y consecuencias en una o dos palabras. Nombrar un patrn incrementa inmediatamente nuestro vocabulario de diseo. Esto nos permite diseos a un alto nivel de abstraccin. Tener un vocabulario de patrones nos permite hablar sobre ellos con nuestros amigos, en nuestra documentacin, e incluso a nosotros mismos. 2. El problema describe cundo aplicar el patrn explicando el problema y su contexto. Esto podra describir: Problemas de diseo especficos tales como algoritmos o como objetos. Estructuras de clases o objetos que son sintomticas de un diseo inflexible. Algunas veces el problema incluir una lista de condiciones que deben cumplirse para poder aplicar el patrn. 3. La solucin describe los elementos que conforman el diseo, sus relaciones, responsabilidades y colaboraciones. La solucin no describe un diseo particular o implementacin, porque un patrn es como una plantilla que puede ser aplicada en diferentes situaciones. 4. Las consecuencias son los resultados de aplicar el patrn; e importantes para la evaluacin de diseos alternativos y para comprender los costes y beneficios de la aplicacin del patrn.

Fascculo No. 1 Semestre 9

19

Patrones de desarrollo

Patrones de desarrollo Descripcin de patrones de diseo


Para describir los patrones de diseo se utiliza un formato consistente. Cada patrn es dividido en secciones de acuerdo con un plantilla; para una fcil comprensin y utilizacin sta muestra estructura uniforme de informacin. Nombre del patrn: Describe un problema de diseo, su solucin y las consecuencias en una o dos palabras en espaol y en ingls. Clasificacin (campo opcional): Dice de qu tipo es el patrn. Propsito: Indica en dos o tres lneas cul es el problema que intenta resolver el patrn y su propsito. Otros nombres (Also Known As) (campo opcional): Si existen otros nombres con los que es conocido en la comunidad deberan especificarse. Motivacin: Describe un ejemplo real de problema (el escenario) que ha sido resuelto con el patrn, especificando la estructura que lo resuelve (la solucin). El escenario ayudar a entender la descripcin ms abstracta que se indicar a continuacin. Aplicabilidad: Especifica cules son las situaciones donde se puede usar. Adems da ejemplos de cmo puede solucionar problemas de diseos pobres y cmo se pueden reconocer esas situaciones. Estructura: Especifica mediante notaciones grficas (diagrama de clases, colaboracin y estado fundamentalmente) cul es la solucin del problema de forma abstracta. Esta notacin es sumamente importante pero no es suficiente porque slo captura el producto final del proceso de diseo. Para poder reusar un patrn es necesario tambin recordar las decisiones, alternativas y ventajas e inconvenientes a las que nos dirigen adems de ejemplos que puedan ayudar a posteriores diseos. Participantes: Lista las clases y objetos que intervienen en la estructura del patrn y especifica cul es la responsabilidad de cada uno de ellos.
Patrones de desarrollo

20

Fascculo No. 1 Semestre 9

Patrones de desarrollo
Colaboraciones entre participantes: Indica cmo interactan los diferentes participantes (clases y objetos) que intervienen en su estructura. Consecuencias: Describe las ventajas e inconvenientes de la aplicacin del patrn. Adems se indica cmo soporta los objetivos y qu aspectos del sistema pueden variar. Implementacin: Tcnicas y peligros que conlleva la implementacin del patrn. Cdigo de ejemplo: Solucin limitada que puede servir de base para implementaciones que usen el patrn. Usos conocidos (campo opcional): Ejemplos de uso del patrn en sistemas reales. Patrones relacionados (campo opcional): Listado de patrones relacionados incidiendo en las diferencias de uso y en el posible uso conjunto de estos, es decir con qu patrones debera usarse. Ventajas de utilizar patrones Los patrones favorecen la reutilizacin de diseos y arquitecturas a gran escala. Capturan el conocimiento de los expertos y lo hacen accesible a toda la comunidad software. Proporcionan un cmulo de conocimiento utilizable por toda la comunidad software. Favorecen la transmisin de conocimiento entre profesionales y entre clientes y desarrolladores Proporcionan un lenguaje comn. Los nombres de los patrones forman parte del vocabulario tcnico del ingeniero software.

Fascculo No. 1 Semestre 9

21

Patrones de desarrollo

Patrones de desarrollo

Los patrones de diseo son un tema importante en el desarrollo de software ya que permiten retomar: La experiencia de aplicaciones de software construidas anteriormente, el poder buscar ayuda en las comunidades de desarrolladores de software para resolver problemas comunes.

1. En grupos de dos estudiantes establecer las diferencias entre a. Patrones y algoritmos. b. Patrones y frameworks. c. Donde usar los patrones. 2. Consultar y elaborar un resumen sobre los antipatrones

En este fascculo se present una introduccin al mundo de los patrones de diseo de software, partiendo desde la perspectiva inicial de este concepto, compuesto por soluciones simples y crudas a problemas especficos y comunes del diseo orientado a objetos. Los patrones son una forma literaria para resolver problemas de ingeniera del software, que tiene sus races en los patrones de la arquitectura. Las metodologas orientadas a objetos tienen como uno de sus principios no reinventar la rueda para la resolucin de diferentes problemas. Por lo tanto los patrones se convierten en un escenario de importancia de las Tecnologas Orientadas a Objetos en el principio de la reutilizacin. Existen diferentes mbitos dentro de la ingeniera del software donde se pueden aplicar los patrones dentro de los que se pueden mencionar:

Patrones de desarrollo

22

Fascculo No. 1 Semestre 9

Patrones de desarrollo
Patrones de creacin (creational patterns) Ayudan a que el sistema sea independiente de la forma en que los objetos son creados, representados o inicializados. (Creacin de Instancias) Patrones de Estructura (structural patterns) Se enfocan a la forma en que las clases y objetos se acomodan para formar estructuras mayores. Este patrn es importante para lograr que libreras de clases desarrolladas independientemente, trabajen juntas. Patrones de Comportamiento (behavioral patterns) Se enfocan los algoritmos y la asignacin de responsabilidades entre objetos.

Booch, Grady. Object-Oriented Analysis and Design. Second Edition. Benjamin/Cummings, Redwood: 1994. Jacobson, Ivar, Grady Booch, and James Rumbaugh. El Proceso Unificado de Desarrollo de Software. Mxico: Addison-Wesley, 1999. Kruchten, Philippe. "Architectural Blueprints--The 4+1 View Model of Software Architecture". IEEE Software, Institute of Electrical and Electronics Engineers. November 1995, pp. 42-50. Larman, Craig. UML y Patrones, Introduccin al anlisis y diseo orientado a objetos. Mxico: Prentice Hall, 1999. Muller, Pierre-Alain. Modlisation Object avec UML. Paris: Eyrolles, 1997. Wilson, Scott F. Analyzing Requirements and Defining Solution Architectures. Redmond: Microsoft Press, 1999.

En el fascculo dos se abordar el tema de los patrones de creacin los cuales permiten generar Independencia al sistema del modo en que se crean, componen y representan los objetos.

Fascculo No. 1 Semestre 9

23

Patrones de desarrollo

Patrones de desarrollo

Patrones de desarrollo

24

Fascculo No. 1 Semestre 9

Patrones de desarrollo

S eg u im ien toal au to ap ren d iza je


Patrones de desarrollo - Fascculo No. 1
Nombre_______________________________________________________ Apellidos ________________________________ Fecha: _________________ Ciudad___________________________________Semestre: _______________
A partir de los temas vistos en este fascculo y complementados con las lecturas de la bibliografa recomendada, se aplica un taller de preguntas de seleccin mltiple con nica respuesta donde este tipo de preguntas consta de un enunciado y cuatro opciones (a, b, c, d). Slo una de estas opciones responde correctamente la pregunta. 1. Corresponde a los patrones que abstraen el proceso de instanciacin: a. b. c. d. Patrones de comportamiento. Patrones de creacin. Patrones estructurales. Patrones de idioma.

2. Corresponde a los patrones que hacen al sistema independiente de las creaciones de objetos: a. b. c. d. Patrones de comportamiento. Patrones de creacin. Patrones estructurales. Patrones de idioma.

3. Patrones que se centran en algoritmos y asignacin de responsabilidades entre objetos: a. b. c. d. Patrones de comportamiento. Patrones de creacin. Patrones estructurales. Patrones de idioma.

4. No slo determinan patrones de clases y objetos, sino tambin patrones de comunicacin entre los mismos: a. b. c. d. Patrones de comportamiento. Patrones de creacin. Patrones estructurales. Patrones de idioma.

Fascculo No. 1 Semestre 9

25

Patrones de desarrollo

Patrones de desarrollo
5. Los elementos de un patrn de diseo son: a. b. c. d. nombre, problema, solucin, consecuencias. nombre, problema, cdigo fuente, patrones relacionados. nombre, clasificacin, propsito, motivacin. estructura, participantes, colaboracin, consecuencias.

Patrones de desarrollo

26

Fascculo No. 1 Semestre 9

Anda mungkin juga menyukai