UNIVERSIDAD DISTRITAL FRANCISCO JOSE DE CALDASDESARROLLO DE APLICACIONES CON USO DE PATRONES DE COMPORTAMIENTO(Modelos de ...
UNIVERSIDAD DISTRITAL FRANCISCO JOSE DE CALDASPROYECTO CURRICULAR INGENIERIA DE SISTEMASDESARROLLO DE APLICACIONES CON USO...
eficaces para resolver los problemas más comunes de diseño.Un patrón de diseño no es una solución final absoluta que puede...
InterpreterPermite definir una representación de la gramática de un lenguaje para usarla en un interpretedel lenguaje.Iter...
MediatorCrea un objeto mediador que encapsula el cómo un conjunto de objetos interactúan. Mediatorpromociona la organizaci...
ObserverDefine una dependencia de uno a muchos entre objetos de tal manera que cuando un objetocambie su estado, todas las...
StrategyCrea un conjunto de algoritmos encapsulados intercambiables. Permite que un algoritmo varíeindependientemente de l...
DESCRIPCIÓN DEL PROYECTOMUEBLES MODULARES es una asociación privada que agrupa 39 fábricas de muebles. Funcionahace más de...
BREVE RESUMEN DEL PROYECTO - REQUERIMIENTOS.• ¿ Cuál es el problema y sus causas?Debido a la expansión de la empresa MUEBL...
PROBLEMALa fábrica va a recibir nuevos moldes para la creación de camarotes, existen de dos y tres pisos,sin embargo exist...
PROBLEMAPara la entrada a las instalaciones existe un sistema de identificación, que según el tipo depersona(cliente, empl...
CONCLUSIONESA través del desarrollo del proyecto se entendió la utilización de los patrones de comportamientoen la realiza...
BIBLIOGRAFIAGuia de construcción de software en JAVA con patrones de diseño Francisco Javier Martinez Juan“Design Patterns...
Patrones comportamiento
Próxima SlideShare
Cargando en…5
×

Patrones comportamiento

8.461 visualizaciones

Publicado el

Publicado en: Educación
  • Sé el primero en comentar

Patrones comportamiento

  1. 1. UNIVERSIDAD DISTRITAL FRANCISCO JOSE DE CALDASDESARROLLO DE APLICACIONES CON USO DE PATRONES DE COMPORTAMIENTO(Modelos de programación)JUAN CAMILO BOCANEGRA OSORIOCODIGO 20072020012SERGIO ANDRES NOVOACODIGO 20072020111PROFESOR JULIO BARON VELANDIAPROYECTO CURRICULAR INGENIERIA DE SISTEMASBOGOTA30 DE MAYO DE 2013
  2. 2. UNIVERSIDAD DISTRITAL FRANCISCO JOSE DE CALDASPROYECTO CURRICULAR INGENIERIA DE SISTEMASDESARROLLO DE APLICACIONES CON USO DE PATRONES DE COMPORTAMIENTO(Modelos de programación)INTRODUCCION:En la ingeniería de software nos topamos con ciertos problemas que se repiten frecuentemente, ypara los cuales, luego de aplicar los principios de diseño orientado a objetos(Abierto - Cerrado,Sustitución de Liskov, Segregación de Interfaces, entre otros…), generalmente llegamos a lasmismas soluciones. en cierto modo, un patrón de diseño es “la solución más natural a cierto tipode problema común”.Viéndolo de ese modo, parece lógico pensar que cuando nos topemos con uno de esos “problemasmodelo” podríamos aplicar “la solución conocida”, sin tener que reinventar la rueda.Este documento se encargará de demostrar mediante un ejemplo conocido, la aplicación dealgunos de los patrones de diseño estudiados a través del semestre cursado, y como estos serviránpara el desarrollo confiable de aplicaciones diseñadas para solucionar de manera confiable, estosproblemas.Claro que, antes de aplicar un patrón, debemos asegurarnos de que nuestro problema encaja conel modelo, y de que las consecuencias del patrón (buenas o malas) se adaptan a nuestro caso: laidea no es tratar de usar patrones aquí y allá, si no que sean usados cuando encajen con elproblema de diseño que queremos solucionar.OBJETIVOS:El objetivo de este documento es transmitir conocimientos de diseño de software según elparadigma de objetos. Se busca que a partir del conocimiento del paradigma, técnicas de diseñoy lenguajes, se pueda estar en condiciones de diseñar sistemas nuevos y modificar sistemasexistentes utilizando tecnología de objetos y distintos tipos de "arquitectura".Para lograrlo se presenta un sistema de patrones para ser usado en distintos contextos y resolverdiferentes tipos de problemas.PALABRAS CLAVE:Patrones, Comportamiento, Java, UML, POO.CONTENIDO:Un Patrón de Diseño es una vía formal de documentar una solución a un problema de diseño en uncampo particular de experiencia.Un patrón documenta un par problema-solución recurrente dentro de un contexto dado. Sinembargo, es más que sólo el problema o la estructura de la solución: se incluye tanto el problemacomo la solución, junto con la lógica que los une.Un problema se considera con respecto a las fuerzas en conflicto (por ejemplo, mantenibilidadvs. reusabilidad), detallando por qué el problema es un problema. Una solución propuesta sedescribe en términos de su estructura, e incluye una presentación clara de las consecuencias,tanto los beneficios como los inconvenientes, de la aplicación de la solución.En la Ingeniería del software se encuentra una gran cantidad de patrones que solucionan unaamplia gama de problemas comunes. Entre ellos, y gracias al auge de la programación orientadaa objetos, ha sido posible recolectar y documentar catálogos de aquellos que ha sido más
  3. 3. eficaces para resolver los problemas más comunes de diseño.Un patrón de diseño no es una solución final absoluta que puede transformarse directamente acódigo, es una descripción o plantilla de como resolver un problema que puede usarse en muchassituaciones diferentes.Los patrones de diseño pueden acelerar el proceso de desarrollo, al proporcionar paradigmas quemuchas veces han sido probados útiles.Patrones de comportamientoEstos patrones tratan acerca de la comunicación entre objetos y conjuntos de estos.Chain of responsibilityEvita emparejar el objeto que envía una petición con el objeto que recibe esa petición, alpermitir que mas de un objeto pueda tomar la responsabilidad de la petición enviada. Encadenalos objetos que podrán recibir la petición y pasa la petición a lo largo de la cadena hasta que unobjeto acepte la petición.CommandTransforma una petición en un objeto de tal manera que puedas catalogar clientes con diferentespeticiones, mantener un registro de las peticiones y soportar el deshacer operaciones.
  4. 4. InterpreterPermite definir una representación de la gramática de un lenguaje para usarla en un interpretedel lenguaje.IteratorProvee de una manera de acceder secuencialmente a los elementos de una colección sin exponersu representación interna.
  5. 5. MediatorCrea un objeto mediador que encapsula el cómo un conjunto de objetos interactúan. Mediatorpromociona la organización de como interactúan los objetos, sin necesidad de que entre ellosmismos se referencíen.MementoSin violar el principio de encapsulación, captura y externaliza el estado interno de un objeto demanera que el objeto pueda regresar al estado después.
  6. 6. ObserverDefine una dependencia de uno a muchos entre objetos de tal manera que cuando un objetocambie su estado, todas las dependencias del objeto sean notificadas y actualizadasautomáticamente.StatePermite que un objeto cambie su comportamiento al cambiar su estado. El objeto parecerá quecambio de clase.
  7. 7. StrategyCrea un conjunto de algoritmos encapsulados intercambiables. Permite que un algoritmo varíeindependientemente de los clientes que los usan.Template methodOtorga el derecho a subclases de re definir ciertos pasos o procedimientos de un algoritmo sincambiar la estructura de tal algoritmo.VisitorPermite definir una operación nueva sin cambiar las clases de los elementos en los cuales opera.
  8. 8. DESCRIPCIÓN DEL PROYECTOMUEBLES MODULARES es una asociación privada que agrupa 39 fábricas de muebles. Funcionahace más de 15 años. Aunque no existe una dirección física, se caracteriza entre sus clientes porser una empresa que no recibe a sus clientes, sino que va hasta ellos.MISIÓNOfrecer productos de excelente calidad brindando una gran variedad de diseño de muebles ydecoración para el hogar. Que satisfagan las necesidades de nuestros clientes, con magnificorespaldo y garantía.VISIÓNSer el primer centro de diseño y decoración en muebles para hogar y oficina, que ofreceproductos de vanguardia con una amplia oferta de mobiliario comercial en la puerta de su hogaro negocio.IDENTIFICACIÓN DEL PROBLEMADebido a las nuevas políticas de expansión y alcance de la empresa, MUEBLES MODULARES se veen la obligación de crear un software que le permita manejar los pedidos a proveedores, laorganización de las ventas y los datos de clientes y compras, además del manejo del inventario,por tal razón acuden a nosotros para el desarrollo de éste proyecto.ETAPAS Y ACTIVIDADES CONTEMPLADAS EN EL PROYECTO.1. Reunión con los socios de MUEBLES MODULARES, para la consecución y recolección derequerimientos necesarios.2. Delegación de responsabilidades miembros del grupo de desarrollo de software.3. Asistencia de asesor externo para la consecución del proyecto (profesor Julio BarónVelandia).4. Desarrollo diagramas para la generación del software.5. Primera entrega documento.6. Aplicación correcciones documento.7. Segunda entrega documento.8. Implementación en código (JAVA o VISUAL según los requerimientos de la empresa).9. Revisión de la implementación.10. Correcciones de la implementación.11. Entrega final.PRODUCTOS DEL PROYECTO.El grupo de desarrollo de software se encargará de crear un aplicativo, que será utilizado única yexclusivamente por MUEBLES MODULARES, para el manejo total de todo el proceso de produccióny venta de muebles y decoración del cual se encarga MUEBLES MODULARES.BENEFICIARIOS DEL PROYECTO.Este software será utilizado exclusivamente por personal perteneciente a la empresa MUEBLESMODULARES, y personal perteneciente al grupo de desarrollo de software, en calidad de serviciode mantenimiento y capacitación en el uso del software descrito.
  9. 9. BREVE RESUMEN DEL PROYECTO - REQUERIMIENTOS.• ¿ Cuál es el problema y sus causas?Debido a la expansión de la empresa MUEBLES MODULARES, se hace necesario laimplementación de un software para el manejo de ventas y producción.• ¿ Qué se pretende lograr con el proyecto?Generar un software que permita la optimización de manejo de datos, de la empresaMUEBLES MODULARES.• ¿ A quiénes beneficiará? ¿ A cuántos?Aunque los derechos del software sólo pueden pertenecer a MUEBLES MODULARES, segúnla cantidad de filiales que genere, el software podrá ser utilizado por ellos.• ¿Datos básicos a manejar?Según la reunión con los socios, el software necesario, es muy básico, el cual manejarádatos de los productos que la empresa MUEBLES MODULARES ofrece, los cuales sonmuebles y decoración y todas las características que hay tras la producción de ellos,además manejará clientes y proveedores y el sistema de venta de productos.• ¿ Con qué recursos?El software a utilizar estará basado en el lenguaje de programación JAVA o VISUAL, segúnlos requerimientos de sistema de los equipos de cómputo de MUEBLES MODULARES.• ¿ Quiénes lo harán? Responsable. Con la colaboración de quienes más?El proyecto será realizado por los miembros del grupo de desarrollo de software con laasistencia del profesor JULIO BARON VELANDIA como asesor.• ¿ Cuánto tiempo durará? Plazos.Los plazos de entrega de de documentos e implementación fueron acordados segúnreuniones desarrolladas anteriormente.IMPLEMENTACION PATRONESPROBLEMASe necesita crear una serie de elementos que fueron pedidos por un cliente, por la caracteristicasde estos muebles, se necesita poner a funcionar las maquinas ensambladoras, pero la cortadoraenvía las partes aleatoriamente para cada tipo de mueble. Se necesita ir seleccionando las partesy enviarlas a su respectiva ensambladora.PATRON UTILIZADOEl patrón Chain of responsability permite establecer una cadena de objetos receptores a travésde los cuales se pasa una petición formulada por un objeto emisor. La idea es que cualquiera delos receptores pueden responder a la petición en función de un criterio establecido. Encadena losobjetos receptores y pasa la petición a través de la cadena hasta que es procesada por algúnobjetoEn este caso se crearan una serie de clases EnsambleSilla, EnsambleMesa y EnsambleSillon, ysegún el tipo de partes que sean enviadas, La clase SeleccionarEnsamble, le delegará laresponsabilidad a la maquina respectiva
  10. 10. PROBLEMALa fábrica va a recibir nuevos moldes para la creación de camarotes, existen de dos y tres pisos,sin embargo existe el problema que según la cantidad de material que entre a las maquinas estántendrán la decisión de hacer el camarote especifico.PATRON UTILIZADOEn determinadas ocasiones, cuando el contexto en el que se está desarrollando requiere que unobjeto tenga diferentes comportamientos según el estado en que se encuentra, resultacomplicado poder manejar el cambio de comportamientos y los estados de dicho objeto, todosdentro del mismo bloque de código. El patrón State propone una solución a esta complicación,creando básicamente, un objeto por cada estado posible del objeto que lo llama.Se utilizará una clase ArmarCamarote, que según la cantidad de material ingresado, creará elrespectivo camarote CamaroteDos o CamaroteTres con sus respectivas caracteristicas.
  11. 11. PROBLEMAPara la entrada a las instalaciones existe un sistema de identificación, que según el tipo depersona(cliente, empleado o socio) le permite el acceso a las distintas instalaciones, pero lascaracteristicas de cada uno son similares, y la única diferencia es el tipo de identificación, deque forma se puede controlar el acceso.PATRON UTILIZADOEl patrón Plantilla permite que ciertos pasos de un algoritmo definido en una operación de unasuperclase, sean redefinidos en las subclases sin necesidad de tener que sobrescribir la operaciónentera.Se utilizará una clase EntradaPorID que según el tipo de persona(Cliente,Empleado, Socio),los cuales sólo se diferencian por el tipo de ID, permitirá que con esté ID puedan ingresar alcomplejo.PROBLEMAPor cambio de temporada, MUEBLES MODULARES hará un descuento para las compras, pero conuna caracteristica, los operarios tendrán un descuento mayor que el de los clientes, se necesitaun algoritmo que regule esto.PATRON UTILIZADOEl patrón Visitor es útil cuando se desea encapsular buscando datos desde un número deinstancias de varias clases. Los patrones de diseño sugieren que el visitante puede proporcionaruna funcionalidad adicional a una clase sin cambiarla. Pero es más práctico decir que un visitantepuede agregar funcionalidad a una colección de clases y encapsular los métodos que utiliza.A traves de las clases UsuarioPrintVisitor y UsuarioDescuentoVisitor() podremos calcular eldescuento que se hará a cada uno de las personas interesados, según el tipo que es.
  12. 12. CONCLUSIONESA través del desarrollo del proyecto se entendió la utilización de los patrones de comportamientoen la realización de programas, con un fin didáctico, explicando de una forma concisa, perodetallada los patrones utilizados, así como su implementación en uno de los lenguajes deprogramación con mayores ventajas para la programación, como es el lenguaje JAVA.Se puso a prueba el diseño de documentos para la realización de proyectos, en este caso dedesarrollo de software
  13. 13. BIBLIOGRAFIAGuia de construcción de software en JAVA con patrones de diseño Francisco Javier Martinez Juan“Design Patterns” E. Gamma et al., Addison Wesley, 1998.Design Patterns http://www.oodesign.com/Design Patterns http://sourcemaking.com/design_patternsFormato de anteproyecto de grado UNIVERSIDAD DE CIENCIAS APLICADAS Y AMBIENTALES –U.D.C.A.

×