Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

2

Share

Introducción a los Patrones de diseño de software

Breve introducción al concepto de reutilización de software a través de los patrones de diseño de software.

Related Audiobooks

Free with a 30 day trial from Scribd

See all

Introducción a los Patrones de diseño de software

  1. 1. El presente y futuro de lareutilización de software Patrones de diseño de software Una breve introducción para principiantes 
  2. 2. Antes de comenzar…Quiero expresarles que este curso tiene elpropósito de dar a conocer los conceptosque desde mi punto de vista, sonesenciales y con los cuales valdría la penasensibilizarse antes de empezar a utilizaralgún Patrón de diseño de software. Autor: Yazmin Ruiz Bonilla Coatzacoalcos, Ver. México
  3. 3. Agenda Conceptos previos Pros y contras de la reutilización Reutilización en el siglo XX vs XXI Reutilización de diseño y patrones de diseño de software El Café de las estrellas. Conclusión Preguntas Referencias
  4. 4. Conceptos previos ¿Qué es reutilizar?
  5. 5. Conceptos previosReutilizar es la acción de volver a utilizarlos bienes o productos. La utilidad puedevenir para el usuario mediante una acciónde mejora o restauración, o sin modificarel producto si es útil para un nuevousuario. Wikipedia
  6. 6. Conceptos previos Ahora si…¿Qué es reutilización de software?“Se define la reutilización de software comoel uso de cualquier tipo de artefacto (tambiénllamado activo), o parte del mismo, creadocon anterioridad, en un nuevo proyecto.”Nótese que los artefactos corresponden a los bienes oproductos de la definición general.
  7. 7. Conceptos previos Por si las dudas….mencionemos sóloalgunos artefactos, de acuerdo a ciertosniveles:Documental Lógico Físico• Diagramas UML • Código fuente • Procedimientos• Requisitos del sistema • Bibliotecas de almacenados clases • Páginas web• Diseño de pruebas• Manuales • Diseños de bases • Ejecutables de datos• Reglas de negocio • Controles de usuario. • Servicios web
  8. 8. Ejecutables Páginas web LibreríasControles Procedimientos Servicios web almacenados
  9. 9. Pros y Contras de la reutilización¿Qué se espera con esta práctica? Reducción de costes de desarrollo Aumento de la calidad de los productos Aumento de la productividad Mejora en el mantenimiento y soporte Mejor control y planificación
  10. 10. Pros y Contras de la reutilización(2)¿Qué inconvenientes muestra? Dificultad del retorno de inversión (ROI) Temor al cambio Tecnología de reutilización sistemática insuficiente
  11. 11. La reutilización en el siglo XX Dificultad para representar artefactos de software en un repositorio de contenido. Reutilización a través de ingeniería inversa.
  12. 12. La reutilización en el siglo XXI No basta con reutilizar código fuente. Crea artefactos reutilizables con certeza de uso de al menos una vez más. Implementa tecnología de repositorios de contenidos. Trazabilidad total de las aplicaciones. Indexación de los proyectos finalizados, al repositorio de información.
  13. 13. Reutilización de diseño El siguiente nivel de reutilización por encima del código fuente son los diseños que previamente se hayan efectuado. Cuando hablamos de reutilización de software y de diseños de software enseguida se nos vienen a la cabeza los patrones de diseño. Patrón + Diseño
  14. 14. Patrones de Diseño de SoftwarePatrón Cada patrón describe un problema que ocurre una y otra vez en un entorno dado, describiendo el núcleo de la solución al problema de tal forma que pueda ser empleada un millón de veces sin hacerlo dos veces de la misma forma.Diseño Es el proceso de definición de la arquitectura, componentes, interfaces y otras características de un producto, sistema o componente que resulta de este proceso.
  15. 15. Patrones de diseño de software(2) “Los patrones de diseño son el esqueleto de las soluciones a problemas comunes en el desarrollo de software.” Nombre Solución Problema
  16. 16. Patrones de Diseño de Software(4) Creación • Abstraen el proceso de creación de instancias. Inicialización y configuración de objetos. Estructurales • Separan la interfaz de la implementación. Se ocupan de como clases y objetos son utilizados para componer estructuras de mayor tamaño. Comportamiento • Describen la comunicación entre objetos. Atañen a los algoritmos y a la asignación de responsabilidades entre objetos.
  17. 17. Patrones de Diseño de Software(3) Comportamien Creación Estructura to • Factory • Adapter • Command Method • Bridge • Interpreter • Prototype • Composite • Observer • Singleton • Decorator • State • Facade • Strategy • Proxy • Template Method • Visitor
  18. 18. Café de las estrellasCafé de las estrellas es unade las tiendas de café demayor éxito a nivel mundial entorno a la cafetería.Debido a su ampliocrecimiento, están luchandopor actualizar su sistema depedidos para que coincida consu oferta de bebidas.
  19. 19. Café de las estrellas Cuando iniciaron en el negocio, el primer diseño de clases fue similar al siguiente: Bebida descripcion getDescripcio n() Costo() DeLaCasa Descafeinado Expresso GranoTostadoCosto() Costo() Costo() Costo()
  20. 20. Café de las estrellasEl café de las estrellas requiere ofrecer a susclientes algunos condimentos adicionales asu café como: leche de soya, leche ligera,mocha y rompope; sin embargo, debido aldiseño preliminar se ven en la necesidad delevantar los pedidos de forma personalizada.
  21. 21. Café de las estrellas Bebida descripcion getDescripcio n() Costo() ExpressoLiger TostadoRompo ExpressoSoya GranoTostado o pe Soya Costo() Costo() Costo() Costo() DescafeinadoS DesRompopeDeLaCasaRom DesRompope DeLaCasaSoy oyap a Costo() Costo() Costo() Costo()Costo()
  22. 22. Café de las estrellas Bebida descripcion getDescripcio n() Decorador Costo()DeLaCasa Expresso GetDescripcion () Costo() Costo() Rompope Descafeinado GranoTostado Bebida bebida() Costo() Costo() GetDesc() Costo() Soya Ligera Mocha Bebida bebida() Bebida bebida() Bebida bebida() Costo() Costo() Costo() GetDesc() GetDesc() GetDesc()
  23. 23. Conclusión Cuanto más arriba subamos en el ciclo de vida del software, más valor tiene el activo a reutilizar, puesto que se ha requerido un mayor poder de abstracción para crearlo; y más independientes somos de la plataforma tecnológica, evitando riesgos de obsolescencia. No es necesario “reinventar la rueda” en varias de nuestras aplicaciones. Hay mucho trabajo ya realizado, testeado y aceptado que en un entorno similar a nuestro problema ya aporta una solución satisfactoria. ¿Para qué voy a inventar un ladrillo si ya otro lo hizo y el mismo ya fue usado en la edificación de millones de estructuras con éxito?
  24. 24. Preguntas nimzay4@hotmail.com
  25. 25. Referencias [ALEX] “A pattern language”. Christopher Alexander et al. Oxford University Press, 1977. [FOWL] “Analysis Patterns: Reusable Object Models”. Martin Fowler. Addison-Wesley Professional, 1996. [FREE] “Head First Design Patterns”. Eric / Elisabeth Freeman. O’Reilly Media, 2004. [GAMM] “Design Patterns: Elements of Reusable Object-Oriented Software”. Eric Gamma et al. Addison-Wesley Professional, 1995. [TRC] http://www.reusecompany.com
  • josejesus2005

    Sep. 17, 2018
  • lilianaalderetedefernandez

    Mar. 3, 2016

Breve introducción al concepto de reutilización de software a través de los patrones de diseño de software.

Views

Total views

2,242

On Slideshare

0

From embeds

0

Number of embeds

7

Actions

Downloads

0

Shares

0

Comments

0

Likes

2

×