Está en la página 1de 24

ARQUITECTURA DE SOFTWARE

Objetivo:
Clase 05 Patrones Creacionales
Analizar y argumentar
sobre la importancia de
los patrones creacionales.

Sábado 18:00-21.20
MA. Juan Carlos Reátegui Morales
jreategui@untels.edu.pe “En el campo de la investigación el azar no favorece más1que
MBA-ISO 27001-ISO 9001-ISO 22301 a los espíritus preparados” Luis Pasteur 1
Patrones de Diseño

2
2
Patrones de Diseño

3
2
Patrones de Diseño
https://youtu.be/G4mFD16PGMg
Es una solución general y reutilizable aplicable a diferentes problemas de
diseño de software.

Se trata de plantillas que identifican problemas en el sistema y proporcionan


soluciones apropiadas a problemas generales a los que se han enfrentado los
desarrolladores durante un largo periodo de tiempo, a través de prueba y error.

En 1994, cuatro autores Erich Gamma, Richard Helm, Ralph Johnson y John
Vlissides, a los que llamaron Gang of Four (GoF), publicaron un libro titulado
Design Patterns, elementos de software orientado a objetos reutilizables. Con
este trabajo se inició el concepto de patrón de diseño en el desarrollo de
software y recoge 23 patrones de diseño comunes.

Cada uno de ellos define la solución para resolver un determinado problema,


facilitando además la reutilización del código fuente.

Existen muchísimos patrones de diseño de software e irán apareciendo cada


vez más. 4
2
Patrones de Diseño
¿Por qué usar patrones de diseño?

El gran crecimiento del sector de las tecnologías de la información ha hecho


que las prácticas de desarrollo de software evolucionen.

Antes se requería completar todo el software antes de realizar pruebas, lo que


suponía encontrarse con problemas.

Para ahorrar tiempo y evitar volver a la etapa de desarrollo una vez que
este ha finalizado, se introdujo una práctica de prueba durante la fase de
desarrollo.

Esta práctica se usa para identificar condiciones de error y problemas en


el código que pueden no ser evidentes en ese momento.

En definitiva, los patrones de diseño te ayudan a estar seguro de la validez


de tu código, ya que son soluciones que funcionan y han sido probados por
muchísimos desarrolladores siendo menos propensos a errores.
5
2
Patrones de Diseño

6
2
Patrones Creacionales
Los patrones creacionales proporcionan varios mecanismos de creación de objetos
que incrementan la flexibilidad y la reutilización del código existente.

7
2
Patrones Estructurales
Los patrones estructurales explican cómo ensamblar objetos y clases en
estructuras más grandes, a la vez que se mantiene la flexibilidad y eficiencia
de estas estructuras.

8
2
Patrones de Comportamiento
Los patrones de comportamiento tratan con algoritmos y la asignación de
responsabilidades entre objetos.

9
2
¿Por qué son útiles los patrones de diseño?
1. Te ahorran tiempo
Una solución ingeniosa a un problema cuando estás modelando tu software, el
desarrollo es un proceso casi artístico, y ese reto mental que supone revierte
en una satisfacción personal enorme una vez que consigues un buen
resultado.

Pero hay que ser sinceros:


Buscar siempre una nueva solución a los mismos problemas reduce tu eficacia
como desarrollador, porque estás perdiendo mucho tiempo en el proceso. No
hay que olvidar que el desarrollo de software también es una ingeniería, y
que por tanto en muchas ocasiones habrá reglas comunes para solucionar
problemas comunes.

Buscar siempre una nueva solución a los mismos problemas reduce tu


eficacia como desarrollador.
Los patrones de diseño atajan ese punto. Una vez los conozcas, contarás con
un conjunto de “trucos”, de reglas, de herramientas muy probadas, que
te permitirán solucionar la mayor parte de tus problemas de forma
directa, sin tener que pensar en cómo de válidas son, o si puede haber una
10
alternativa mejor.
2
¿Por qué son útiles los patrones de diseño?
2. Te ayudan a estar seguro de la validez de tu código

Un poco relacionado con lo anterior, siempre que creamos algo nuevo nos
surge la duda de si realmente estamos dando con la solución correcta, o si
realmente habrá una respuesta mejor. Y el tema es que es una duda muy
razonable y que en muchos casos la respuesta sea la que no deseas: sí que
hay una solución más válida, y has perdido tu valioso tiempo en implementar
algo que, aunque funciona, podría haberse modelado mejor.

Los patrones de diseño son estructuras probadas por millones de


desarrolladores a lo largo de muchos años, por lo que si eliges el patrón
adecuado para modelar el problema adecuado, puedes estar seguro de
que va a ser una de las soluciones más válidas (si no la que más) que
puedas encontrar.

11
2
¿Por qué son útiles los patrones de diseño?
3. Establecen un lenguaje común
Todas las demás razones palidecen ante esta. Modelar tu código mediante
patrones te ayudará a explicar a otras personas, conozcan tu código o no, a
entender cómo has atajado un problema. Además ayudan a otros
desarrolladores a comprender lo que has implementado, cómo y por qué, y
además a descubrir rápidamente si esa era la mejor solución o no.

Los patrones de diseño establecen un lenguaje común entre todos los


miembros de un equipo.

Pero también te servirá para sentarte con tus compañeros a pensar sobre
cómo solucionar algo, y poneros de acuerdo mucho más rápido, explicar de
forma más sencilla cuáles son vuestras ideas y que el resto lo comprenda sin
ningún problema.

Los patrones de diseño os ayudarán a ti y a tu equipo, en definitiva, a avanzar


mucho más rápido, con un código más fácil de entender para todos y mucho
más robusto.
12
2
¿Por qué son útiles los patrones de diseño?
¿Cómo identificar qué patrón encaja con tu problema?

Este es el punto más complicado, y la respuesta más evidente, que es


también la que menos nos gusta, es que se aprende practicando.

La experiencia es la única forma válida de ser más hábil detectando dónde te


pueden ayudar los patrones de diseño.

Por supuesto, hay situaciones conocidas en las que un patrón u otro nos
puede ayudar.

Pero a partir de ese punto estás solo.

Necesitarás conocer qué tipo de problemas soluciona cada uno y descubrir


cómo aplicarlo a casos concretos.

En caso contrario, practica, practica y practica.

13
2
Patrones Constructores (Builder)
https://youtu.be/_jGAcbI4Csw

14
2
Patrones Constructores (Builder)
https://www.youtube.com/watch?v=M1VOvNaiJPc

15
2
Un descanso de 15’
Minutos
ARQUITECTURA DE SOFTWARE
Sábado 18:00-21.20

PRACTICA DE ADS

MA. Juan Carlos Reátegui Morales


17
jreategui@untels.edu.pe
MBA-ISO 27001-ISO 9001-ISO 22301 17
Seminario de Investigación Científica
II

18
2
CASO DE ESTUDIO
(PRÁCTICA CALIFICADA PARA CLASE 04).
Leemos los paper de publicaciones científicas y argumentar por que
motivos elegiría una u otra arquitectura.

Asimismo sustentar con argumentos técnicos porque utilizo un


determinado Framework para la construcción de mi Sistema
Informático.

De entre las posibles arquitecturas de software a utilizar en mi proyecto,


escojo tres y analizo en base a opiniones de expertos (paper científicos
los pros y contras).

Trabajo en grupo en Word, con ayuda de Mendeley, entregable en la


siguiente clase. 16-10-2021

Lo colocamos en el Drive y debe exponerse en la clase 04 del 16-10-


2021.
PENDIENTES DE EXPOSICION
TRABAJOS 2021-II

Exposición Equipo

Justificar por que la


Arquitectura y porque el
Framework escogido

REVISION DE AVANCES

20
Caso de Estudio (Practica Calificada II)
Preguntas que pueden guiar la investigación
“Problemática del Software en el Perú”
1.- ¿Como esta el estado del Software en el Perú?.

2.- ¿Por que conviene desarrollar el software en el Perú?

3.- ¿Qué debe hacer el Estado para incentivar la producción y calidad de software en
el Perú?

4.- ¿Qué debemos hacer nosotros los ingenieros de sistemas para mejorar la calidad
de software en el Perú?

5.- ¿Qué debilidades tenemos en la producción de software?

6.- ¿Qué ventajas tenemos podría hacer la UNTELS frente al desarrollo del Softwar?

7.- ¿Qué conclusiones y recomendaciones se pueden hacer al respecto?

Trabajo de investigación de no más de 15 páginas en Word.


Use estadísticas y sustento técnico de calidad.
Fecha para semana 7. (Base para el Examen).
Considerar bibliografía APA 2
Control de Aprendizaje
Preguntas de Control:
¿ Que son patrones de diseño y para que sirven?

¿Que son Patrones Creacionales y cual es su importancia?

¿Ventajas y desventajas de usar patrones?

¿Cuál es la problemática del software en el Perú de acuerdo a su


apreciación?

¿Qué beneficios proporciona una buena arquitectura de software?

22
ARQUITECTURA DE SOFTWARE

Objetivo:
Clase 06 Patrones Estructurales
Analizar y argumentar sobre la
importancia de los patrones
estructurales.

Sábado 18:00-21.20
MA. Juan Carlos Reátegui Morales “Mide tus deseos, pesa tus opiniones, cuenta tus
23
jreategui@untels.edu.pe palabras.”
MBA-ISO 27001-ISO 9001-ISO 22301 Pitágoras 23
Muchas gracias…

24

También podría gustarte