Está en la página 1de 11

DESARROLLAR LA ARQUITECTURA DE SOFTWARE DE ACUERDO AL PATRON DE

DISEÑO SELECCIONADO GA4-220501095-AA2-EV05

INTEGRANTES
FREDY ASCUNTAR ASCUNTAR
RAFAEL VILLAMIZAR DIAZ
JUAN CAMILO MONTOYA JARAMILLO
JUAN SEBASTIAN HENAO PALACIO

PROGRAMA
ANALISIS Y DESARROLLO DE SOFTWARE
FICHA 2675208

INSTRUCTOR
JUAN CARLOS MORCILLO IMBACUA

SERVICIO NACIONAL DE APRENDIZAJE


REGIONAL VALLE 2023
TABLA DE CONTENIDO

INTRODUCCION --------------------------------------- 3

OBJETIVOS-----------------------------------------------3

DISEÑO DE PATRONES-------------------------------4

DIAGRAMA DE COMPONENTES-------------------7

DIAGRAMA DE DESPLIEGUE-------------------------8

HERRAMIENTAS PARA LA OPTIMIZACIÓN-------------------- 9

CONCLUSIONES----------------------------------------10

REFERENCIAS------------------------------------------10
INTRODUCCIÓN

Los patrones de diseño de software o en inglés designa patterns, son una solución general,
reutilizable y 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.
A través del siguiente trabajo intentaremos dar una idea de los patrones de diseño
más usados y más adecuados dependiendo de las necesidades a las que nos
estemos enfrentando y cuál es el que más se adapta a las necesidades
expuestas.

Objetivos

- Con las bases de lo que estudiamos pondremos en práctica los diagramas para
nuestro proyecto.

- Aprenderemos todo lo relacionado con los patrones y sus tipos de patrones y con
esto determinaremos qué tipo de diseño utilizar para tener un tema claro definido.

- Al tener claro los tipos de patrones de diseño de software que existen podremos
crear el código de manera más fácil y así las estructuras del código tendrán más
efectividad a la hora de funcionar.
DISEÑO DE PATRONES

Un patrón es una solución a un problema en un contexto| particular, ya que estos patrones


facilitan la reutilización de diseños y arquitecturas de software que han tenido éxito, los
patrones pueden ser la base de un manual de ingeniería de software y los patrones están
orientados al cambio.
Es necesario usar patrones de diseño para identificar las condiciones del error y problemas
en el código que puedan no ser evidentes en ese momento, lo que significa es que te
ayudan a estar seguros de la validez del código para que funciones y sean aprobadas por
muchos desarrolladores.
Existen 3 tipos de diseños de patrones: Patrones Creacionales, Patrones Estructurales y
Patrones de Comportamiento.

Patrones Creacionales:
Flexibilidad y la reutilización del código existente de una manera adecuada a la situación y
está compuesto por:
- Abstract Factory: es un patrón de diseño creacional que nos permite producir
familias de objetos relacionados sin especificar sus clases concretas.

- Builder: es un patrón de diseño creacional que nos permite construir objetos


complejos paso a paso.

- Factory Method: es un patrón de diseño creacional que proporciona una interfaz


para crear objetos en una superclase, mientras permite a las subclases alterar el tipo
de objetos que se crearán.

- Propotype: es un patrón de diseño creacional que nos permite copiar objetos


existentes sin que el código dependa de sus clases.

- Singleton: es un patrón de diseño creacional que nos permite asegurarnos de que


una clase tenga una única instancia.

Patrones Estructurales:
Facilita soluciones y estándares eficientes con respecto a las composiciones de clase y
estructuras de objetos y está compuesta por:

- Adapter: es un patrón de diseño estructural que permite la colaboración entre


objetos con interfaces incompatibles.

- Bridge: es un patrón de diseño estructural que te permite dividir una clase grande, o
un grupo de clases estrechamente relacionadas.

- Composite: es un patrón de diseño estructural que te permite componer objetos en


estructuras de árbol y trabajar con esas estructuras como si fueran objetos
individuales.
- Decorator: es un patrón de diseño estructural que te permite añadir funcionalidades
a objetos colocando estos objetos dentro de objetos encapsuladores especiales que
contienen estas funcionalidades.

- Facade: Es un patrón de diseño estructural que proporciona una interfaz


simplificada a una biblioteca, un framework o cualquier otro grupo complejo de
clases.

- Flyweigth: es un patrón de diseño estructural que te permite mantener más objetos


dentro de la cantidad disponible de RAM compartiendo las partes comunes del
estado entre varios objetos en lugar de mantener toda la información en cada objeto.

- Proxy: es un patrón de diseño estructural que te permite proporcionar un sustituto o


marcador de posición para otro objeto.

Patrones de Comportamiento: Está basada en la comunicación de objetos de clase y se


utiliza para detectar presencia de patrones de comunicación ya presentes y
pueden manipular estos patrones.

- Chain of responsibility: es un patrón de diseño de comportamiento que te permite


pasar solicitudes a lo largo de una cadena de manejadores.

- Command: es un patrón de diseño de comportamiento que convierte una solicitud


en un objeto independiente que contiene toda la información sobre la solicitud.

- Iterador: es un patrón de diseño de comportamiento que te permite recorrer


elementos de una colección sin exponer su representación subyacente (lista, pila,
árbol, etc.).

- Mediator: es un patrón de diseño de comportamiento que te permite reducir las


dependencias caóticas entre objetos.

- Memento: es un patrón de diseño de comportamiento que te permite guardar y


restaurar el estado previo de un objeto sin revelar los detalles de su implementación.

- Observer: es un patrón de diseño de comportamiento que te permite definir un


mecanismo de suscripción para notificar a varios objetos sobre cualquier evento que
le suceda al objeto que están observando.

- State: es un patrón de diseño de comportamiento que permite a un objeto alterar su


comportamiento cuando su estado interno cambia. Parece como si el objeto
cambiara su clase.

- Strategy: s un patrón de diseño de comportamiento que te permite definir una


familia de algoritmos, colocar cada uno de ellos en una clase separada y hacer sus
objetos intercambiables.
- Template Method: Es un patrón de diseño de comportamiento que define el
esqueleto de un algoritmo en la superclase, pero permite que las subclases
sobrescriban pasos del algoritmo sin cambiar su estructura.

- Visitor: Es un patrón de diseño de comportamiento que te permite separar


algoritmos de los objetos sobre los que operan.
DIAGRAMA DE COMPONENTES
DIAGRAMA DE DESPLIEGUE

La aplicación que en la que hicimos esto no nos dejó realizar los diagramas como eran ya
que era de pago y no encontré otra app que me propinara este tipo de diagrama, entonces
opté por hacerlos de otra manera
HERRAMIENTAS NECESARIA PARA OPTIMIZAR
PROCESOS

- Diagrama de causa y efecto:

Esta herramienta se encarga de realizar un análisis con el que se obtiene un cuadro


detallado para visualizar con mayor facilidad qué aspectos están ocasionando un efecto o
problema dentro de los procesos de la empresa.

- Diagrama de Pareto:

Esta es otra herramienta de análisis que se especializa en hallar y tomar las decisiones
según el nivel de prioridad que tengan. Se visualiza en formato de gráfico de barras que
representa los factores de forma ordenada.

- Brainstorming:

El brainstorming, mejor conocido como lluvia de ideas, es más específica para hallar
soluciones a un problema determinado.

- Diagrama de flujo:
Esta herramienta se encarga de realizar una representación gráfica de cualquier actividad
realizada por la mejora de procesos organizativos e industriales. Esto lo consigue a partir de
símbolos con significados definidos que representan el flujo de ejecución, conectados con
flechas de inicio a fin de la acción.
CONCLUSIONES

- El diagrama de despliegue se conforma del sistema de hardware o software.

- A pesar de la buena información que recopilamos decidimos que debemos investigar más
para tener una idea clara al aspecto de cómo se conforma cada diagrama.

- En lo que investigamos sobre las herramientas para optimizar procesos elegimos las que
consideramos más conocidas o de mayor uso
REFERENCIAS

- https://www.bantugroup.com/blog/herramientas-imprescindibles-para-la-mejora-de-
procesos

- https://www.lucidchart.com/

- https://refactoring.guru/es/design-patterns

- https://www.ionos.es/digitalguide/paginas-web/desarrollo-web/diagrama-de-componentes/

También podría gustarte