DESARROLLAR LA ARQUITECTURA DE SOFTWARE DE ACUERDO AL PATRÓN DE
DISEÑO SELECCIONADO
GA4-220501095-AA2-EV05
DEYQUER HANS MEDINA
APRENDIZ
HECTOR OSWALDO JEREZ DUARTE
INSTRUCTOR
PROGRAMA: ANÁLISIS Y DESARROLLO DE SOFTWARE
FICHA: 2977368
2024
INTRODUCCION
Los patrones de diseño son herramientas esenciales en el desarrollo de software,
son una solución general, utilizable y aplicable a diferentes problemas de diseño de
software; proporcionando soluciones probadas para estructurar la interacción entre
objetos, clases e interfaces
En este proyecto se busca dar una idea de los patrones de diseño más usados y mas
adecuados dependiendo de las necesidades las que nos enfrentamos.
DISEÑOS DE PATRONES DE SOFTWARE
Los patrones de diseño representan un concepto originado en el ámbito de la
arquitectura de software, extendiéndose gradualmente al diseño orientado a objetos
ya que facilita la reutilización de diseños y arquitecturas de software.
Los patrones de diseño de software es un conjunto de formas estandarizadas para
resolver un problema en particular.
Debe estar estructurado por 4 componentes:
1.NOMBRE: Identifica de manera única el patrón, brindando una referencia
clara para su aplicación.
2.PROBLEMAS O CONTEXTO DE LA APLICACIÓN: Describe el escenario o
los desafíos específicos a los que se enfrenta el patrón. Proporciona un
contexto para comprender cuándo y por qué aplicar el patrón.
3.SOLUCIÓN PROPUESTA: Detalla la estructura y las interacciones entre los
elementos del diseño que componen la solución. Este componente ofrece una guía
para implementar el patrón de manera efectiva.
4.VENTAJAS Y DESVENTAJAS: Evalúa los beneficios y las limitaciones
asociadas con la aplicación del patrón. Proporciona una visión equilibrada para
ayudar a los desarrolladores a tomar decisiones informadas sobre su
implementación.
Los patrones de diseño más representativo de la industria del software
• Implica conocimiento y la aplicación de criterio que aportan calidad.
• Favorecen la estandarización del código fuente de determinada aplicación.
LOS PATRONES DE DISEÑO SE CLASIFICAN EN 3 GRUPOS.
Patrones de diseño
Patrones
Patrones estructurales
comportamentales Patrones creacionales
PATRONES COMPORTAMENTALES
Se centran en definir la manera en que los objetos interactúan entre ellos por medio
de mensajes.
Se cuentan con 3 tipos:
Estrategia, comando e iterador
Patrón de
estrategia
Permite definir una familia de
PATRONES algoritmos, encapsular cada
COMPORTAMENTALES uno de ellos y hacer que sean
intercambiables. Esto permite
que el cliente pueda elegir el
algoritmo que mejor se adapte
a sus necesidades en tiempo
de ejecución.
Este se utiliza cuando tenemos varios algoritmos para una tarea especifica y el
cliente decide la implementación real que se utilizara en tiempo de ejecución
EL PATRON DE COMANDO
Patrón de comando
El patrón de Comando
PATRONES encapsula una solicitud como
COMPORTAMENTALES un objeto, permitiendo
parametrizar clientes con
diferentes solicitudes, encolar
solicitudes y realizar
operaciones reversibles.
Este diseño de comando perite la ejecución de operaciones sin conocer los detalles
de la implementación de la misma. Las operaciones son conocidas como comandos
y cada operación es implementada como una clase independiente que realiza una
acción muy concreta, para lo cual puede o no recibir parámetros para realizar su
respectiva tarea.
PATRONE ITERADOR
PATRONES
COMPORTAMENTALES
PATRONE ITERADOR El patrón de iterador
proporciona una manera de
acceder secuencialmente a los
elementos de una colección sin
exponer su estructura interna
Define una interfaz que declara los métodos necesarios para acceder
secuencialmente a un grupo de objetos de una colección.
Es especialmente útil cuando trabajamos con estructuras de datos complejas, ya
que nos permite recorrer sus elementos mediante un iterador.
COMPONENTES CREACIONALES: se encargan de definir diferentes tipos de
estrategia que son usados para requerir la instancia de un objeto, clase, en
particular.
Aquí encontramos:
SINGLETON: Garantiza que una clase tenga solo una instancia y proporciona un
punto de acceso global a ella.
PROTOTYPE: Permite la creación de nuevos objetos copiando un objeto existente,
evitando depender de las clases concretas de esos objetos.
FACTORY METHOD: Proporciona una interfaz para crear objetos en una superclase
y permite a las subclases alterar el tipo de objetos que se crearan.
BUILDER PATTERNS: Permite la construcción de un objeto paso a paso. Un
director coordina el proceso de construcción utilizando un constructor abstracto.
ABSTRACT FACTORY: Proporciona una interfaz para crear familias de objetos
relacionados o dependientes sin especificar sus clases concretas.
PATRONES ESTRUCTURALES: Proveen una orientación relacionada a la forma de
definir los componentes de los objetos, dentro de esta encontramos.
PATRON FACHADA: La fachada actúa como una interfaz unificada que proporciona
un conjunto simplificado de métodos para interactuar con un sistema más complejo.
El patrón fachado se utiliza cuando el sistema está compuesto por varios subsistemas
y se hace complejo gestionar los mensajes que debe realizar el cliente en cada uno de
estos subsistemas. Este patrón permite generar al cliente una vista de alto nivel que
simplifica el control y el envío de mensajes a los subsistemas, ocultando los detalles
relacionados con la gestión de las clases e instancias.
PATRON DELEGAT: Implica que un objeto controle la funcionalidad de otro objeto.
Actúa como un sustituto o representante de otro objeto y controla el acceso a él.
El patrón delegate se usa cuando se quiere reutilizar y extender funcionalidades de
una clase sin hacer uso de la herencia. Este patrón permite de cierta forma
implementar algo similar a la herencia múltiple que no es admitido por algunos
lenguajes de programación, pero adicionalmente permite tener un control más
detallado sobre este proceso ya que se puede ocultar parte de los elementos
heredados o, incluso, compartir elementos que no son posibles de heredar bajo el
mecanismo de herencia tradicional.
INCORPORAR PATRONES DE DISEÑO PROPENDIENDO EN MEJORES
PRÁCTICAS PARA LACODIFICACIÓN Y MANTENIBILIDAD DEL SOFTWARE.
Realizando un estudio un poco mas externo y en apoyo a los videos de formación vía
internet he decidido utilizar el patrón de diseño iterador debido a que este es un objeto
que permite recorrer una colección y devolver un valor al terminar, básicamente es un
objeto que permite implementar el protocolo de interacción a través del método next
el cual devuelve u objeto con dos propiedades .
Patrón de diseño de comportamiento que permite el recorrido secuencial por una
estructura de datos compleja sin exponer sus detalles internos.
El patrón de diseño Iterador, define una interfaz que declara los métodos necesarios
para acceder secuencialmente a un grupo de objetos de una colección. Algunos de los
métodos que podemos definir en la interfaz Iterador son:
Primero (), Siguiente (), Hay Mas () y Elemento Actual ().
Este patrón de diseño permite recorrer una estructura de datos sin que sea necesario
conocer la estructura interna de la misma.
Propósito
El patrón Iterador es un mecanismo de acceso a los elementos que constituyen una
estructura de datos para la utilización de estos sin exponer su estructura interna.
ELABORAR LA VISTA DE COMPONENTES PARA VISUALIZAR EL SOFTWARE EN
FASES AVANZADAS DEL CICLO DE VIDA.
CICLO DE VIDA:
En este documento explicare lo relacionado a grandes rasgos el proceso de desarrollo
de software de principio a fin.
El ciclo de vida es la secuencia estructurada y bien definidas de las etapas de
desarrollo del sistema de software.
Las principales etapas que conforman el ciclo de vida de desarrollo de software son:
PLANIFICACION:
En esta fase se incluye tareas como la determinación del ámbito del proyecto, el
estudio de viabilidad que se desarrollo anteriormente con el sistema de encuesta para
determinar si es funcional o no, el análisis de riesgo de acuerdo al factor económico
por parte de los cuerpos de bomberos a quien realmente y en principio está dirigido
este sistema.
Uno de los colaboradores de la entidad cuerpo de bomberos voluntarios de Tocancipa
en compañía de su comandante nos apoyo en las necesidades de los cuerpos de
bomberos y las posibles soluciones apoyados con nuestro sistema.
ANALISIS:
Proceso en el que se trata de descubrir lo que se necesita y como llegar a las
características que el sistema debe poseer.
RICEM fue diseñado especialmente para los bomberos de bajo recursos que puedan
tener uso de los sistemas de tecnología con el fin de almacenar la información, pero
en medio del análisis que se ha venido realizando nos hemos dado cuenta de que se
debe generar gran inversión en el desarrollo de este por gestión de arquitectura de
software. El aprendizaje de lenguajes de programación, capacidad operativa
internamente, se ha pensado que también se puede expandir este producto a las
empresas industriales que permitan dar el soporte económico.
DISEÑO:
Se estudian las posibles implementaciones que hay que construir y la estructura
general del software, es una etapa complicada y si la solución inicial no es la más
adecuada habrá que redefinirla
Este sistema se enfoca en el almacenamiento de base de datos con características
especiales de entrada y salida de información- RICEM cuenta con una estructura
eficiente y de fácil uso que permite la interacción con el usuario y no requiere de
conocimiento s de informática avanzada, la fácil interacción se reduce a mirar las
necesidades y dar clic en el módulo que necesite o que la emergencia le solicite.
IMPLEMENTACION:
Se trata de elegir las herramientas adecuadas, un entorno de desarrollo que haga mas
sencillo el trabajo y el lenguaje de programación optimo.
Es importante tener en cuenta la adquisición de productos necesarios para que el
software funcione.
Las necesidades de desarrollo van de acuerdo con las características del sistema el
propósito de su funcionalidad y sobre todo el suplir necesidades, este sistema
comprende productos que relativamente cualquier empresa debería tener en su
escritorio como capacidad de almacenamiento, sistema operativo elegido y demás.
PRUEBAS:
Se busca la detección de las fallas que se hayan cometido en etapas anteriores para
evitar que repercuta en el usuario finalmente.
Esta fase de ciclo de vida se debe repetir tantas veces como sea necesario, ya que la
calidad y estabilidad final del software dependerá si se da con éxito o no.
HERRAMIENTAS NECESARIAS PARA OPTIMIZAR LOS PROCESOS
Las herramientas de software ofrecen un mayor soporte al momento de realizar una
mejora de procesos, ya que ayudan a aplicar una metodología más organizada,
estandarizada, controlada y con el mínimo de errores.
Este tipo de herramientas digitales están diseñadas para automatizar la identificación
de áreas de oportunidad, así como modificar los procesos, productos y servicios
actuales para mejorarlos cada vez que sea necesario
Nosotros como sistema RICEM hemos decidido que la herramienta a utilizar es
DIAGRAMA CAUSA-EFECTO.
DIAGRAMA CAUSA-EFECTO
Esta herramienta se encarga de realizar un análisis con el que se obtiene un cuadro
detallado para visualizar con mayor facilidad que aspectos están ocasionando un
efecto o problema dentro de los procesos del sistema RICEM.
Así es mucho más sencillo identificar las causas de algún resultado que no se
esperaba. Es ideal para investigar de forma sencilla y eficazmente el origen del
problema
CONCLUSIONES
Los patrones de diseño ofrecen una valiosa guía para resolver problemas de
desarrollo al proporcionar soluciones estructuradas. Facilitan la construcción de la
interacción entre objetos, clases e interfaces, ayudan a identificar la arquitectura del
software y sus relaciones, y se presentan de manera gráfica para una comprensión
secuencial efectiva del diseño.