SlideShare a Scribd company logo
1 of 12
UNIVERSIDAD DISTRITAL FRANCISCO JOSE DE CALDAS
DESARROLLO DE APLICACIONES CON USO DE PATRONES ESTRUCTURALES
(Modelos de programación)
JUAN CAMILO BOCANEGRA OSORIO
CODIGO 20072020012
SERGIO ANDRES NOVOA
CODIGO 20072020111
PROFESOR JULIO BARON VELANDIA
PROYECTO CURRICULAR INGENIERIA DE SISTEMAS
BOGOTA
30 DE MAYO DE 2013
UNIVERSIDAD DISTRITAL FRANCISCO JOSE DE CALDAS
PROYECTO CURRICULAR INGENIERIA DE SISTEMAS
DESARROLLO DE APLICACIONES CON USO DE PATRONES ESTRUCTURALES
(Modelos de programación)
INTRODUCCION:
En la ingeniería de software nos topamos con ciertos problemas que se repiten frecuentemente, y
para 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 las
mismas soluciones. en cierto modo, un patrón de diseño es “la solución más natural a cierto tipo
de problema común”.
Viéndolo de ese modo, parece lógico pensar que cuando nos topemos con uno de esos “problemas
modelo” 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 de
algunos de los patrones de diseño estudiados a través del semestre cursado, y como estos servirán
para el desarrollo confiable de aplicaciones diseñadas para solucionar de manera confiable, estos
problemas.
Claro que, antes de aplicar un patrón, debemos asegurarnos de que nuestro problema encaja con
el modelo, y de que las consecuencias del patrón (buenas o malas) se adaptan a nuestro caso: la
idea no es tratar de usar patrones aquí y allá, si no que sean usados cuando encajen con el
problema de diseño que queremos solucionar.
OBJETIVOS:
El objetivo de este documento es transmitir conocimientos de diseño de software según el
paradigma de objetos. Se busca que a partir del conocimiento del paradigma, técnicas de diseño
y lenguajes, se pueda estar en condiciones de diseñar sistemas nuevos y modificar sistemas
existentes 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 resolver
diferentes tipos de problemas.
PALABRAS CLAVE:
Patrones, Creacionales, 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 un
campo particular de experiencia.
Un patrón documenta un par problema-solución recurrente dentro de un contexto dado. Sin
embargo, es más que sólo el problema o la estructura de la solución: se incluye tanto el problema
como la solución, junto con la lógica que los une.
Un problema se considera con respecto a las fuerzas en conflicto (por ejemplo, mantenibilidad
vs. reusabilidad), detallando por qué el problema es un problema. Una solución propuesta se
describe 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 una
amplia gama de problemas comunes. Entre ellos, y gracias al auge de la programación orientada
a objetos, ha sido posible recolectar y documentar catálogos de aquellos que ha sido más
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 a
código, es una descripción o plantilla de como resolver un problema que puede usarse en muchas
situaciones diferentes.
Los patrones de diseño pueden acelerar el proceso de desarrollo, al proporcionar paradigmas que
muchas veces han sido probados útiles.
PATRONES ESTRUCTURALES
Estos patrones de diseño tratan sobre la composición de clases y objetos. Estos patrones usan
herencia para componer interfaces. Definen maneras de componer un objeto para obtener nuevas
funcionalidades.
Adapter
Transforma la interfaz de una clase en una interfaz que el cliente espera. Este patrón permite
que distintas clases trabajen en juntas.
Bridge
Desempareja la abstracción de un objeto de su implementación de tal manera que las dos puedan
variar independientemente.
Composite
Compone objetos en estructuras tipo árbol para representar jerarquías de parte completa.
Permite tratar objetos individuales y composiciones de objetos uniformemente.
Decorator
Agrega responsabilidades a un objeto dinámicamente. Provee de una alternativa flexible a
subclasificación para extender la funcionalidad.
Facade
Provee de una interfaz unificada de un conjunto de interfaces en un subsistema. Define una
interfaz de alto nivel para hacer un subsistema fácil de usar.
Flyweight
Usa el compartir para soportar grades números de objetos "de grano fino" de manera eficiente.
Proxy
Proporciona un representante de otro objeto para controlar el acceso al objeto que está siendo
representado.
DESCRIPCIÓN DEL PROYECTO
MUEBLES MODULARES es una asociación privada que agrupa 39 fábricas de muebles. Funciona
hace más de 15 años. Aunque no existe una dirección física, se caracteriza entre sus clientes por
ser una empresa que no recibe a sus clientes, sino que va hasta ellos.
MISIÓN
Ofrecer productos de excelente calidad brindando una gran variedad de diseño de muebles y
decoración para el hogar. Que satisfagan las necesidades de nuestros clientes, con magnifico
respaldo y garantía.
VISIÓN
Ser el primer centro de diseño y decoración en muebles para hogar y oficina, que ofrece
productos de vanguardia con una amplia oferta de mobiliario comercial en la puerta de su hogar
o negocio.
IDENTIFICACIÓN DEL PROBLEMA
Debido a las nuevas políticas de expansión y alcance de la empresa, MUEBLES MODULARES se ve
en la obligación de crear un software que le permita manejar los pedidos a proveedores, la
organizació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 de
requerimientos 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ón
Velandia).
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 y
exclusivamente por MUEBLES MODULARES, para el manejo total de todo el proceso de producción
y 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 MUEBLES
MODULARES, y personal perteneciente al grupo de desarrollo de software, en calidad de servicio
de mantenimiento y capacitación en el uso del software descrito.
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 la
implementació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 empresa
MUEBLES MODULARES.
• ¿ A quiénes beneficiará? ¿ A cuántos?
Aunque los derechos del software sólo pueden pertenecer a MUEBLES MODULARES, según
la 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 son
muebles 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ún
los 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 la
asistencia 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ún
reuniones desarrolladas anteriormente.
IMPLEMENTACION PATRONES
PROBLEMA
La empresa MUEBLES MODULARES, adquirio una nueva maquina ensambladora, la cual por un
precio menor, aumenta la producción en un 15% comparado con las ensambladoras de fabricación
nacional, el problema es que por sus caracteristicas no puede ser entendida por sus operarios, Se
necesita usar un patrón que permita el uso sin inconvenientes de está máquina.
PATRON UTILIZADO
El patrón Adapter (Adaptador) se utiliza para transformar una interfaz en otra, de tal modo que una
clase que no pudiera utilizar la primera, haga uso de ella a través de la segunda.
Utilizando este patrón se creara una clase llamada MaquinaAdaptada que adaptara la
MaquinaImportada para usar esta clase como si fuera una MaquinaGenerica.
PROBLEMA
La llegada de nuevos empleados, trae inconvenientes, al no tener conocimientos del uso de las
maquinas, MUEBLES MODULARES se ve obligado a capacitar a los empleados, pero debido a la
falta de tiempo, se necesita que empiecen a trabajar de inmediato, por eso se necesita una
forma de hacer que todas las maquinas funcionen desde unas instrucciones básicas
PATRON UTILIZADO
El patrón Fachada trata de simplificar la interfaz entre dos sistemas o componentes de software
ocultando un sistema complejo detrás de una clase que hace las veces de pantalla o fachada, de
tal forma que su uso sea mas fácil. Por otro lado, este patrón pretende reducir la complejidad de
un sistema, al ser dividido en componentes mas sencillos e independientes entre sí, así como
también desacoplar a los clientes de las clases del subsistema.
Se Creará una clase FachadaMAquina que con unos sencillos métodos se encargará del uso
completo de casa maquina.
PROBLEMA
Se necesita ajustar una maquina ensambladora para que ensamble dos tipos distintos de
muebles(mesas y sillas), ya que una de las maquinas se averió y no se puede perder tiempo
esperando a la reparación de la maquina averiada
PATRON UTILIZADO
El patrón Bridge, es una técnica usada en programación para desacoplar una abstracción de su
implementación, de manera que ambas puedan ser modificadas independientemente sin
necesidad de alterar por ello la otra.Esto es, se desacopla una abstracción de su implementación
para que puedan variar independientemente.
Crearemos una clase AbstraccionEnsamble que permitirá manejar los dos procesos EnsambleMesa
y EnsambleSilla y servira de puente para el llamado al método correspondiente a cada ensamble
CONCLUSIONES
A través del desarrollo del proyecto se entendió la utilización de los patrones estructurales en la
realización de programas, con un fin didáctico, explicando de una forma concisa, pero detallada
los patrones utilizados, así como su implementación en uno de los lenguajes de programació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 de
desarrollo de software
BIBLIOGRAFIA
Guia 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_patterns
Formato de anteproyecto de grado UNIVERSIDAD DE CIENCIAS APLICADAS Y AMBIENTALES –
U.D.C.A.

More Related Content

What's hot

Diagramas de colaboracion
Diagramas de colaboracionDiagramas de colaboracion
Diagramas de colaboraciond-draem
 
Patrones de diseño I
Patrones de diseño IPatrones de diseño I
Patrones de diseño Ikaolong
 
Ejercicio sql tienda informatica (1)
Ejercicio sql tienda informatica (1)Ejercicio sql tienda informatica (1)
Ejercicio sql tienda informatica (1)Jsrfs Montemayor
 
8b Curso de POO en java - paso de diagrama clases a java 1
8b Curso de POO en java - paso de diagrama clases a java 18b Curso de POO en java - paso de diagrama clases a java 1
8b Curso de POO en java - paso de diagrama clases a java 1Clara Patricia Avella Ibañez
 
Introducción al Análisis Orientado a Objetos
Introducción al Análisis Orientado a ObjetosIntroducción al Análisis Orientado a Objetos
Introducción al Análisis Orientado a ObjetosWilfredo Mogollón
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clasesNedoww Haw
 
Diagramas de paquetes
Diagramas de paquetesDiagramas de paquetes
Diagramas de paquetesMoises Cruz
 
Diagramas de objetos
Diagramas de objetosDiagramas de objetos
Diagramas de objetosstill01
 
Patrones de diseño de software
Patrones de diseño de softwarePatrones de diseño de software
Patrones de diseño de softwareIker Canarias
 
Diagrama de interaccion(secuencia y colaboracion)
Diagrama de interaccion(secuencia y colaboracion)Diagrama de interaccion(secuencia y colaboracion)
Diagrama de interaccion(secuencia y colaboracion)marianela0393
 
Diseño físico de base de datos - Part I
Diseño físico de base de datos - Part IDiseño físico de base de datos - Part I
Diseño físico de base de datos - Part IJesús Canales Guando
 

What's hot (20)

Diagramas de colaboracion
Diagramas de colaboracionDiagramas de colaboracion
Diagramas de colaboracion
 
Patrones de diseño I
Patrones de diseño IPatrones de diseño I
Patrones de diseño I
 
Proyecto final de software
Proyecto final de softwareProyecto final de software
Proyecto final de software
 
Ejercicio sql tienda informatica (1)
Ejercicio sql tienda informatica (1)Ejercicio sql tienda informatica (1)
Ejercicio sql tienda informatica (1)
 
8b Curso de POO en java - paso de diagrama clases a java 1
8b Curso de POO en java - paso de diagrama clases a java 18b Curso de POO en java - paso de diagrama clases a java 1
8b Curso de POO en java - paso de diagrama clases a java 1
 
Diagramas de comportamientos
Diagramas de comportamientosDiagramas de comportamientos
Diagramas de comportamientos
 
Introducción al Análisis Orientado a Objetos
Introducción al Análisis Orientado a ObjetosIntroducción al Análisis Orientado a Objetos
Introducción al Análisis Orientado a Objetos
 
Patrones GOF
Patrones GOFPatrones GOF
Patrones GOF
 
Metodologia orientada a objeto
Metodologia orientada a objetoMetodologia orientada a objeto
Metodologia orientada a objeto
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clases
 
Uml diagramas-caso-de-uso
Uml diagramas-caso-de-usoUml diagramas-caso-de-uso
Uml diagramas-caso-de-uso
 
Diagramas de paquetes
Diagramas de paquetesDiagramas de paquetes
Diagramas de paquetes
 
Diagramas de objetos
Diagramas de objetosDiagramas de objetos
Diagramas de objetos
 
Patrones de diseño de software
Patrones de diseño de softwarePatrones de diseño de software
Patrones de diseño de software
 
Vista lógica
Vista lógicaVista lógica
Vista lógica
 
Diagrama de interaccion(secuencia y colaboracion)
Diagrama de interaccion(secuencia y colaboracion)Diagrama de interaccion(secuencia y colaboracion)
Diagrama de interaccion(secuencia y colaboracion)
 
Conceptos poo (presentación1)
Conceptos poo (presentación1)Conceptos poo (presentación1)
Conceptos poo (presentación1)
 
Diagrama de Colaboración
Diagrama de ColaboraciónDiagrama de Colaboración
Diagrama de Colaboración
 
Casos de uso
Casos de usoCasos de uso
Casos de uso
 
Diseño físico de base de datos - Part I
Diseño físico de base de datos - Part IDiseño físico de base de datos - Part I
Diseño físico de base de datos - Part I
 

Viewers also liked

Viewers also liked (15)

Herramientas case
Herramientas caseHerramientas case
Herramientas case
 
Lenguaje De Programación
Lenguaje De ProgramaciónLenguaje De Programación
Lenguaje De Programación
 
Modelado, Ingenieria de Software
Modelado, Ingenieria de SoftwareModelado, Ingenieria de Software
Modelado, Ingenieria de Software
 
Programacion Orientada A Objetos
Programacion Orientada A ObjetosProgramacion Orientada A Objetos
Programacion Orientada A Objetos
 
Herramientas IDE - CASE
Herramientas IDE - CASEHerramientas IDE - CASE
Herramientas IDE - CASE
 
Programacion Orientada a Objetos
Programacion Orientada a ObjetosProgramacion Orientada a Objetos
Programacion Orientada a Objetos
 
Diagramas De Interaccion
Diagramas De InteraccionDiagramas De Interaccion
Diagramas De Interaccion
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clases
 
Diapositivas ciencia, tecnologia y sociedad
Diapositivas ciencia, tecnologia y sociedadDiapositivas ciencia, tecnologia y sociedad
Diapositivas ciencia, tecnologia y sociedad
 
Innovacion Tecnologica
Innovacion TecnologicaInnovacion Tecnologica
Innovacion Tecnologica
 
Proyecto de grado
Proyecto de gradoProyecto de grado
Proyecto de grado
 
LA NATURALEZA DE LA ACTIVIDAD CIENTÍFICA
LA NATURALEZA DE LA ACTIVIDAD CIENTÍFICALA NATURALEZA DE LA ACTIVIDAD CIENTÍFICA
LA NATURALEZA DE LA ACTIVIDAD CIENTÍFICA
 
La tecnología
La tecnologíaLa tecnología
La tecnología
 
Factibilidad Tecnica, Operativa y Economica
Factibilidad Tecnica, Operativa y EconomicaFactibilidad Tecnica, Operativa y Economica
Factibilidad Tecnica, Operativa y Economica
 
Análisis Estadístico
Análisis EstadísticoAnálisis Estadístico
Análisis Estadístico
 

Similar to Patrones estructurales

Patrones comportamiento
Patrones comportamientoPatrones comportamiento
Patrones comportamientoJuan Camilo
 
Ingeniería de software y el paradigma orientado a objetos
Ingeniería de software y el paradigma orientado a objetosIngeniería de software y el paradigma orientado a objetos
Ingeniería de software y el paradigma orientado a objetosWilfredo Mogollón
 
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ñolandeta_p
 
Aplicacion mvc entity_framework_login_membership
Aplicacion mvc entity_framework_login_membershipAplicacion mvc entity_framework_login_membership
Aplicacion mvc entity_framework_login_membershipJose B Flores P
 
Modelos del proceso del software
Modelos del proceso del software Modelos del proceso del software
Modelos del proceso del software Faby Aliaga
 
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.pptxGonzaloMartinezSilve
 
Relación Entre SPL Y MDSE
Relación Entre SPL Y MDSERelación Entre SPL Y MDSE
Relación Entre SPL Y MDSEEdicson Edicson
 
Metodologías Ágiles para el Desarrollo de Software y Metodologias Para el de...
Metodologías Ágiles  para el Desarrollo de Software y Metodologias Para el de...Metodologías Ágiles  para el Desarrollo de Software y Metodologias Para el de...
Metodologías Ágiles para el Desarrollo de Software y Metodologias Para el de...Joel Fernandez
 
12-150203140754-conversion-gate02.pptx
12-150203140754-conversion-gate02.pptx12-150203140754-conversion-gate02.pptx
12-150203140754-conversion-gate02.pptxGonzaloMartinezSilve
 
Framework para desarrollo de apps móviles
Framework para desarrollo de apps móvilesFramework para desarrollo de apps móviles
Framework para desarrollo de apps móvilesIván Campaña Naranjo
 
Qué relación existe entre spl y mdse
Qué relación existe entre spl y mdseQué relación existe entre spl y mdse
Qué relación existe entre spl y mdseOscar Eraso Moncayo
 
Fundamentos de diseño de software
Fundamentos de diseño de softwareFundamentos de diseño de software
Fundamentos de diseño de softwareLuis Jesus Curbata
 

Similar to Patrones estructurales (20)

Patrones comportamiento
Patrones comportamientoPatrones comportamiento
Patrones comportamiento
 
Ingeniería de software y el paradigma orientado a objetos
Ingeniería de software y el paradigma orientado a objetosIngeniería de software y el paradigma orientado a objetos
Ingeniería de software y el paradigma orientado a objetos
 
Uml
UmlUml
Uml
 
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
 
Aplicacion mvc entity_framework_login_membership
Aplicacion mvc entity_framework_login_membershipAplicacion mvc entity_framework_login_membership
Aplicacion mvc entity_framework_login_membership
 
Modelos del proceso del software
Modelos del proceso del software Modelos del proceso del software
Modelos del proceso del software
 
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
 
Relación Entre SPL Y MDSE
Relación Entre SPL Y MDSERelación Entre SPL Y MDSE
Relación Entre SPL Y MDSE
 
Aplicacion mvc entity_framework_factura
Aplicacion mvc entity_framework_facturaAplicacion mvc entity_framework_factura
Aplicacion mvc entity_framework_factura
 
Metodologías Ágiles para el Desarrollo de Software y Metodologias Para el de...
Metodologías Ágiles  para el Desarrollo de Software y Metodologias Para el de...Metodologías Ágiles  para el Desarrollo de Software y Metodologias Para el de...
Metodologías Ágiles para el Desarrollo de Software y Metodologias Para el de...
 
Desarrollo de software
Desarrollo de softwareDesarrollo de software
Desarrollo de software
 
12-150203140754-conversion-gate02.pptx
12-150203140754-conversion-gate02.pptx12-150203140754-conversion-gate02.pptx
12-150203140754-conversion-gate02.pptx
 
Herramientas case
Herramientas caseHerramientas case
Herramientas case
 
prueva
pruevaprueva
prueva
 
Framework para desarrollo de apps móviles
Framework para desarrollo de apps móvilesFramework para desarrollo de apps móviles
Framework para desarrollo de apps móviles
 
12.diseño basado en patrones
12.diseño basado en patrones12.diseño basado en patrones
12.diseño basado en patrones
 
Qué relación existe entre spl y mdse
Qué relación existe entre spl y mdseQué relación existe entre spl y mdse
Qué relación existe entre spl y mdse
 
Mod 6.2 introducción al análisis
Mod 6.2 introducción al análisisMod 6.2 introducción al análisis
Mod 6.2 introducción al análisis
 
Fundamentos de diseño de software
Fundamentos de diseño de softwareFundamentos de diseño de software
Fundamentos de diseño de software
 

Recently uploaded

AEC 2. Aventura en el Antiguo Egipto.pptx
AEC 2. Aventura en el Antiguo Egipto.pptxAEC 2. Aventura en el Antiguo Egipto.pptx
AEC 2. Aventura en el Antiguo Egipto.pptxhenarfdez
 
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIASISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIAFabiolaGarcia751855
 
Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024IES Vicent Andres Estelles
 
Louis Jean François Lagrenée. Erotismo y sensualidad. El erotismo en la Hist...
Louis Jean François Lagrenée.  Erotismo y sensualidad. El erotismo en la Hist...Louis Jean François Lagrenée.  Erotismo y sensualidad. El erotismo en la Hist...
Louis Jean François Lagrenée. Erotismo y sensualidad. El erotismo en la Hist...Ars Erótica
 
FICHA PROYECTO COIL- GLOBAL CLASSROOM.docx.pdf
FICHA PROYECTO COIL- GLOBAL CLASSROOM.docx.pdfFICHA PROYECTO COIL- GLOBAL CLASSROOM.docx.pdf
FICHA PROYECTO COIL- GLOBAL CLASSROOM.docx.pdfRaulGomez822561
 
Código Civil de la República Bolivariana de Venezuela
Código Civil de la República Bolivariana de VenezuelaCódigo Civil de la República Bolivariana de Venezuela
Código Civil de la República Bolivariana de Venezuelabeltranponce75
 
Desarrollo y Aplicación de la Administración por Valores
Desarrollo y Aplicación de la Administración por ValoresDesarrollo y Aplicación de la Administración por Valores
Desarrollo y Aplicación de la Administración por ValoresJonathanCovena1
 
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN PARÍS. Por JAVIER SOL...
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN  PARÍS. Por JAVIER SOL...ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN  PARÍS. Por JAVIER SOL...
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN PARÍS. Por JAVIER SOL...JAVIER SOLIS NOYOLA
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxFernando Solis
 
6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primariaWilian24
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOluismii249
 
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).pptPINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).pptAlberto Rubio
 
La Evaluacion Formativa SM6 Ccesa007.pdf
La Evaluacion Formativa SM6  Ccesa007.pdfLa Evaluacion Formativa SM6  Ccesa007.pdf
La Evaluacion Formativa SM6 Ccesa007.pdfDemetrio Ccesa Rayme
 
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfFeliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfMercedes Gonzalez
 
TRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPC
TRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPCTRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPC
TRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPCCarlosEduardoSosa2
 
Biografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdfBiografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdfGruberACaraballo
 

Recently uploaded (20)

AEC 2. Aventura en el Antiguo Egipto.pptx
AEC 2. Aventura en el Antiguo Egipto.pptxAEC 2. Aventura en el Antiguo Egipto.pptx
AEC 2. Aventura en el Antiguo Egipto.pptx
 
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIASISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
 
Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024
 
Louis Jean François Lagrenée. Erotismo y sensualidad. El erotismo en la Hist...
Louis Jean François Lagrenée.  Erotismo y sensualidad. El erotismo en la Hist...Louis Jean François Lagrenée.  Erotismo y sensualidad. El erotismo en la Hist...
Louis Jean François Lagrenée. Erotismo y sensualidad. El erotismo en la Hist...
 
Sesión de clase APC: Los dos testigos.pdf
Sesión de clase APC: Los dos testigos.pdfSesión de clase APC: Los dos testigos.pdf
Sesión de clase APC: Los dos testigos.pdf
 
FICHA PROYECTO COIL- GLOBAL CLASSROOM.docx.pdf
FICHA PROYECTO COIL- GLOBAL CLASSROOM.docx.pdfFICHA PROYECTO COIL- GLOBAL CLASSROOM.docx.pdf
FICHA PROYECTO COIL- GLOBAL CLASSROOM.docx.pdf
 
Código Civil de la República Bolivariana de Venezuela
Código Civil de la República Bolivariana de VenezuelaCódigo Civil de la República Bolivariana de Venezuela
Código Civil de la República Bolivariana de Venezuela
 
Desarrollo y Aplicación de la Administración por Valores
Desarrollo y Aplicación de la Administración por ValoresDesarrollo y Aplicación de la Administración por Valores
Desarrollo y Aplicación de la Administración por Valores
 
Novena de Pentecostés con textos de san Juan Eudes
Novena de Pentecostés con textos de san Juan EudesNovena de Pentecostés con textos de san Juan Eudes
Novena de Pentecostés con textos de san Juan Eudes
 
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN PARÍS. Por JAVIER SOL...
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN  PARÍS. Por JAVIER SOL...ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN  PARÍS. Por JAVIER SOL...
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN PARÍS. Por JAVIER SOL...
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
 
6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria
 
Power Point E. S.: Los dos testigos.pptx
Power Point E. S.: Los dos testigos.pptxPower Point E. S.: Los dos testigos.pptx
Power Point E. S.: Los dos testigos.pptx
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
 
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).pptPINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
 
La Evaluacion Formativa SM6 Ccesa007.pdf
La Evaluacion Formativa SM6  Ccesa007.pdfLa Evaluacion Formativa SM6  Ccesa007.pdf
La Evaluacion Formativa SM6 Ccesa007.pdf
 
Lecciones 06 Esc. Sabática. Los dos testigos
Lecciones 06 Esc. Sabática. Los dos testigosLecciones 06 Esc. Sabática. Los dos testigos
Lecciones 06 Esc. Sabática. Los dos testigos
 
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfFeliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
 
TRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPC
TRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPCTRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPC
TRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPC
 
Biografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdfBiografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdf
 

Patrones estructurales

  • 1. UNIVERSIDAD DISTRITAL FRANCISCO JOSE DE CALDAS DESARROLLO DE APLICACIONES CON USO DE PATRONES ESTRUCTURALES (Modelos de programación) JUAN CAMILO BOCANEGRA OSORIO CODIGO 20072020012 SERGIO ANDRES NOVOA CODIGO 20072020111 PROFESOR JULIO BARON VELANDIA PROYECTO CURRICULAR INGENIERIA DE SISTEMAS BOGOTA 30 DE MAYO DE 2013
  • 2. UNIVERSIDAD DISTRITAL FRANCISCO JOSE DE CALDAS PROYECTO CURRICULAR INGENIERIA DE SISTEMAS DESARROLLO DE APLICACIONES CON USO DE PATRONES ESTRUCTURALES (Modelos de programación) INTRODUCCION: En la ingeniería de software nos topamos con ciertos problemas que se repiten frecuentemente, y para 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 las mismas soluciones. en cierto modo, un patrón de diseño es “la solución más natural a cierto tipo de problema común”. Viéndolo de ese modo, parece lógico pensar que cuando nos topemos con uno de esos “problemas modelo” 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 de algunos de los patrones de diseño estudiados a través del semestre cursado, y como estos servirán para el desarrollo confiable de aplicaciones diseñadas para solucionar de manera confiable, estos problemas. Claro que, antes de aplicar un patrón, debemos asegurarnos de que nuestro problema encaja con el modelo, y de que las consecuencias del patrón (buenas o malas) se adaptan a nuestro caso: la idea no es tratar de usar patrones aquí y allá, si no que sean usados cuando encajen con el problema de diseño que queremos solucionar. OBJETIVOS: El objetivo de este documento es transmitir conocimientos de diseño de software según el paradigma de objetos. Se busca que a partir del conocimiento del paradigma, técnicas de diseño y lenguajes, se pueda estar en condiciones de diseñar sistemas nuevos y modificar sistemas existentes 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 resolver diferentes tipos de problemas. PALABRAS CLAVE: Patrones, Creacionales, 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 un campo particular de experiencia. Un patrón documenta un par problema-solución recurrente dentro de un contexto dado. Sin embargo, es más que sólo el problema o la estructura de la solución: se incluye tanto el problema como la solución, junto con la lógica que los une. Un problema se considera con respecto a las fuerzas en conflicto (por ejemplo, mantenibilidad vs. reusabilidad), detallando por qué el problema es un problema. Una solución propuesta se describe 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 una amplia gama de problemas comunes. Entre ellos, y gracias al auge de la programación orientada a objetos, ha sido posible recolectar y documentar catálogos de aquellos que ha sido más eficaces para resolver los problemas más comunes de diseño.
  • 3. Un patrón de diseño no es una solución final absoluta que puede transformarse directamente a código, es una descripción o plantilla de como resolver un problema que puede usarse en muchas situaciones diferentes. Los patrones de diseño pueden acelerar el proceso de desarrollo, al proporcionar paradigmas que muchas veces han sido probados útiles. PATRONES ESTRUCTURALES Estos patrones de diseño tratan sobre la composición de clases y objetos. Estos patrones usan herencia para componer interfaces. Definen maneras de componer un objeto para obtener nuevas funcionalidades. Adapter Transforma la interfaz de una clase en una interfaz que el cliente espera. Este patrón permite que distintas clases trabajen en juntas. Bridge Desempareja la abstracción de un objeto de su implementación de tal manera que las dos puedan variar independientemente.
  • 4. Composite Compone objetos en estructuras tipo árbol para representar jerarquías de parte completa. Permite tratar objetos individuales y composiciones de objetos uniformemente. Decorator Agrega responsabilidades a un objeto dinámicamente. Provee de una alternativa flexible a subclasificación para extender la funcionalidad. Facade Provee de una interfaz unificada de un conjunto de interfaces en un subsistema. Define una interfaz de alto nivel para hacer un subsistema fácil de usar.
  • 5. Flyweight Usa el compartir para soportar grades números de objetos "de grano fino" de manera eficiente. Proxy Proporciona un representante de otro objeto para controlar el acceso al objeto que está siendo representado.
  • 6. DESCRIPCIÓN DEL PROYECTO MUEBLES MODULARES es una asociación privada que agrupa 39 fábricas de muebles. Funciona hace más de 15 años. Aunque no existe una dirección física, se caracteriza entre sus clientes por ser una empresa que no recibe a sus clientes, sino que va hasta ellos. MISIÓN Ofrecer productos de excelente calidad brindando una gran variedad de diseño de muebles y decoración para el hogar. Que satisfagan las necesidades de nuestros clientes, con magnifico respaldo y garantía. VISIÓN Ser el primer centro de diseño y decoración en muebles para hogar y oficina, que ofrece productos de vanguardia con una amplia oferta de mobiliario comercial en la puerta de su hogar o negocio. IDENTIFICACIÓN DEL PROBLEMA Debido a las nuevas políticas de expansión y alcance de la empresa, MUEBLES MODULARES se ve en la obligación de crear un software que le permita manejar los pedidos a proveedores, la organizació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 de requerimientos 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ón Velandia). 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 y exclusivamente por MUEBLES MODULARES, para el manejo total de todo el proceso de producción y 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 MUEBLES MODULARES, y personal perteneciente al grupo de desarrollo de software, en calidad de servicio de mantenimiento y capacitación en el uso del software descrito.
  • 7. 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 la implementació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 empresa MUEBLES MODULARES. • ¿ A quiénes beneficiará? ¿ A cuántos? Aunque los derechos del software sólo pueden pertenecer a MUEBLES MODULARES, según la 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 son muebles 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ún los 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 la asistencia 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ún reuniones desarrolladas anteriormente.
  • 8. IMPLEMENTACION PATRONES PROBLEMA La empresa MUEBLES MODULARES, adquirio una nueva maquina ensambladora, la cual por un precio menor, aumenta la producción en un 15% comparado con las ensambladoras de fabricación nacional, el problema es que por sus caracteristicas no puede ser entendida por sus operarios, Se necesita usar un patrón que permita el uso sin inconvenientes de está máquina. PATRON UTILIZADO El patrón Adapter (Adaptador) se utiliza para transformar una interfaz en otra, de tal modo que una clase que no pudiera utilizar la primera, haga uso de ella a través de la segunda. Utilizando este patrón se creara una clase llamada MaquinaAdaptada que adaptara la MaquinaImportada para usar esta clase como si fuera una MaquinaGenerica. PROBLEMA La llegada de nuevos empleados, trae inconvenientes, al no tener conocimientos del uso de las maquinas, MUEBLES MODULARES se ve obligado a capacitar a los empleados, pero debido a la falta de tiempo, se necesita que empiecen a trabajar de inmediato, por eso se necesita una forma de hacer que todas las maquinas funcionen desde unas instrucciones básicas PATRON UTILIZADO El patrón Fachada trata de simplificar la interfaz entre dos sistemas o componentes de software ocultando un sistema complejo detrás de una clase que hace las veces de pantalla o fachada, de tal forma que su uso sea mas fácil. Por otro lado, este patrón pretende reducir la complejidad de un sistema, al ser dividido en componentes mas sencillos e independientes entre sí, así como también desacoplar a los clientes de las clases del subsistema.
  • 9. Se Creará una clase FachadaMAquina que con unos sencillos métodos se encargará del uso completo de casa maquina. PROBLEMA Se necesita ajustar una maquina ensambladora para que ensamble dos tipos distintos de muebles(mesas y sillas), ya que una de las maquinas se averió y no se puede perder tiempo esperando a la reparación de la maquina averiada PATRON UTILIZADO El patrón Bridge, es una técnica usada en programación para desacoplar una abstracción de su implementación, de manera que ambas puedan ser modificadas independientemente sin necesidad de alterar por ello la otra.Esto es, se desacopla una abstracción de su implementación para que puedan variar independientemente. Crearemos una clase AbstraccionEnsamble que permitirá manejar los dos procesos EnsambleMesa y EnsambleSilla y servira de puente para el llamado al método correspondiente a cada ensamble
  • 10.
  • 11. CONCLUSIONES A través del desarrollo del proyecto se entendió la utilización de los patrones estructurales en la realización de programas, con un fin didáctico, explicando de una forma concisa, pero detallada los patrones utilizados, así como su implementación en uno de los lenguajes de programació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 de desarrollo de software
  • 12. BIBLIOGRAFIA Guia 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_patterns Formato de anteproyecto de grado UNIVERSIDAD DE CIENCIAS APLICADAS Y AMBIENTALES – U.D.C.A.