Está en la página 1de 11

Universidad Abierta y a Distancia de México

Ingeniería en Desarrollo de Software

Diseño y Arquitectura de Software

Unidad 1

EVIDENCIA DE APRENDIZAJE. APLICANDO UN ESTILO DE ARQUITECTURA DE


SOFTWARE.

Luis Fernando Francisco Peterson Aragón

Matrícula ES1822023565

Docente: Javier Armando Gutiérrez Hernández

Octubre, 2021

Hermosillo, Sonora

Índice
Contenido Página

Índice 1

Introducción 2

Desarrollo 3

Conclusiones 16

Referencias Bibliográficas 17

Introducción

La Asignatura Diseño y Arquitectura de Software busca desarrollar la competencia para


diseñar una arquitectura de software para establecer las bases del desarrollo de un
sistema que cubra las necesidades del usuario mediante el uso de patrones de
arquitectura de software.

La Unidad 2 tiene el propósito de desarrollar la competencia para identificar los principales


elementos del diseño de la arquitectura de software aplicando estilos, patrones y
categorías arquitectónicas

La evidencia de aprendizaje pretende analizar los tipos de modelos aplicables a la


arquitectura de software para poder proponer una solución preliminar a un problema sobre
la base de los requerimientos de software dados por el usuario o patrocinador.

Este trabajo contiene los resultados de este análisis de los modelos aplicables a la
arquitectura de software para poder proponer una solución preliminar a un problema dado,
incluyendo el objetivo del sistema, requerimientos funcionales y no funcionales y posible
área de oportunidad, la selección del estilo arquitectónico y la representación del mismo.

Asimismo, se añaden conclusiones y las referencias bibliográficas consultadas.

Desarrollo

1. Analiza el caso de estudio “Sabores de la tierra” proporcionado por el docente en


línea.
Caso de estudio.

El gerente del restaurant “Sabores de la tierra” tiene la intensión de implementar un


sistema

para el control de las reservaciones de sus clientes, así como los servicios que soliciten. A
los

clientes les interesa tener acceso al sistema desde cualquier lugar, ya sea vía pc o
dispositivo

móvil.

Considera que la propuesta de software, de manera general debe:

 Administrar reservaciones e información de los clientes.

 Gestionar reservaciones.

 Administrar privilegios de usuarios con acceso al sistema.

 Seguridad

 Reportes generales

 Historial de reservaciones.

 Promociones

2. Identifica los siguientes aspectos:

 Objetivo del sistema.

El objetivo es crear un sistema que permita a gestionar las reservaciones de los clientes
de un restaurante, ya sea para que los clientes puedan realizar sus reservaciones como
para que la empresa pueda gestionar las reservaciones y administrar la información de los
clientes.

 Requerimientos funcionales y no funcionales

RF-1: El sistema permitirá registrar a los usuarios mediante roles y privilegios para
diferenciar entre usuarios tipo cliente y usuarios pertenecientes al personal de la empresa.
RF-2: El sistema permitirá actualizar el registro del cliente.

RF-3: El sistema permitirá al cliente generar una solicitud de reservación.

RF-4: El sistema permitirá al cliente modificar una reservación previamente realizada.

RF-5: El sistema permitirá al cliente cancelar una reservación previamente realizada.

RF-6: El sistema permitirá al cliente visualizar la carta del menú del restaurante.

RF-7: El sistema permitirá proteger la información de los clientes y sus reservaciones a


través de usuario y contraseña para cada uno de sus usuarios.

RF-8: El sistema permitirá al responsable del área de reservaciones realizar reportes


sobre clientes y reservaciones realizadas.

RF-9: El sistema permitirá obtener listados sobre el historial de reservaciones y clientes


más concurrentes al restaurante.

RF-9: El sistema permitirá obtener informes de reservaciones generadas acorde a fecha y


hora específicas.

RF-10: El sistema permitirá al usuario visualizar las diferentes promociones que se


encuentren vigentes en el restaurante al momento de ingresar al sistema.

 Área de oportunidad en el que se inserta el sistema.

El área de oportunidad para el negocio es crear un sistema que beneficie a la empresa


incrementando las ventas y mejorando la calidad del servicio.

3. Determina el estilo arquitectónico que sea el indicado para el desarrollo del


modelo de arquitectura. (Para demostrar tu conocimiento acerca de los tipos de
patrones arquitectónicos, tú diseñarás una propuesta de arquitectura de software que
sirva para solucionar dicho problema; para ello considerará el patrocinador (la empresa
que solicitó la solución) para analizar los requerimientos de software y lo contrastará con
las herramientas de diferentes tipos de sistema, siendo capaz de elaborar una propuesta)
4. Describe y justifica con base en el caso de estudio cada uno de los componentes de
acuerdo con el estilo arquitectónico propuesto.

La definición de la arquitectura del sistema será basada en un estilo de llamada y retorno,


más específicamente en un modelo cliente-servidor de programación por capas. También
utilizará fundamentos del patrón de diseño MVC (Modelo-Vista-Controlador).

El objetivo primordial de este modelo es la separación de la lógica de negocios de la


lógica de diseño; como ejemplo básico de esto sería separar la capa de datos de la capa
de presentación al usuario.

Este modelo brinda como principal ventaja que el desarrollo se puede llevar a cabo en
varios niveles y, en caso de que se desee realizar algún cambio, sólo se trabaja dentro del
nivel requerido sin tener que trabajar entre código mezclado. Además, permite el trabajo
de creación de un sistema por niveles; de modo que cada grupo de trabajo está
totalmente abstraído del resto de niveles, de forma que basta con conocer la API que
existe entre niveles.

Es por lo anterior que en el diseño de sistemas informáticos actual se suele utilizar la


arquitectura multinivel o programación por capas, donde a cada nivel se le confía un
objetivo simple, lo que permite el diseño de arquitecturas que pueden ampliarse con
facilidad en caso de que las necesidades aumenten.

Actualmente el diseño más utilizado es el de tres capas.

 Capa de presentación:
Es la que el usuario ve, por lo que también se le conoce como capa de usuario.
Presenta el sistema al usuario y se encarga del proceso de comunicar información
al usuario y de capturar la información que el usuario brinda, todo esto en un
mínimo de proceso donde se realiza un filtrado para comprobar que no haya
errores de formato. Esta capa incluye la en sí la interfaz gráfica y debe tener la
característica de ser entendible y fácil de usar para el usuario. Esta capa se
comunica únicamente con la capa de negocio.

 Capa de negocio:
Es en esta capa donde residen los programas que se ejecutan, se reciben las
peticiones del usuario y se envían las respuestas tras el proceso. Se denomina
capa de negocio porque es aquí donde se establecen las reglas que deben
cumplirse.
Esta capa se comunica con la capa de presentación para recibir las solicitudes y
presentar los resultados. A su vez, también se comunica con la capa de datos para
solicitar al gestor de base de datos almacenar o recuperar datos de él. También se
consideran en esta capa los programas de sistema.

 Capa de datos:
Es donde residen los datos y es la encargada de acceder a los mismos. Está
formada por uno o más gestores de base de datos que realizan todo el
almacenamiento de datos, reciben solicitudes de almacenamiento o recuperación
de información desde la capa de negocio.

Todas estas capas pueden residir en un único ordenador, si bien lo más usual es que
haya una multitud de ordenadores en donde reside la capa de presentación (que son los
clientes de la arquitectura cliente/servidor).

Las capas de negocio y de datos pueden residir en el mismo ordenador, y si el


crecimiento de las necesidades lo requiere se pueden separar en dos o más ordenadores.
Así, si el tamaño o complejidad de la base de datos aumentase, se puede separar en
varios ordenadores los cuales recibirán las peticiones del ordenador en que resida la capa
de negocio.

5. Realiza con base en el caso de estudio la representación de la arquitectura


propuesta, usando una herramienta de diseño.

a. Los diagramas deben diseñarse con software especializado (Microsoft Visio o alguna
aplicación en línea). Es necesario enviar los archivos fuente de los diagramas.
Conclusiones

La principal característica de un estilo arquitectónico es la comunicación de diseños., en


tanto que las características necesarias de los patrones son la repetición (característica
cuantitativa) y la utilidad y adaptabilidad (cualitativa). Taylor, Medvidovic y Dashofy (2009),
diferencian estilos y patrones arquitectónicos con base en tres criterios: alcance,
abstracción y relación entre ambos. En este sentido, los estilos aplican a un contexto de
desarrollo en tanto los patrones aplican a problemas de diseño específicos. Los estilos
tienen un elevado nivel de abstracción para producir un diseño concreto del sistema,
mientras los patrones son fragmentos arquitectónicos parametrizados que pueden ser
pensados como una pieza concreta de diseño. Un único estilo puede involucrar el uso de
múltiples patrones y un único patrón puede ser aplicado a los lineamientos de múltiples
estilos.

El estilo arquitectónico abona a la estructura de una aplicación y depende en gran medida


de los requerimientos no funcionales. El estilo soporta una mejor ejecución y
mantenimiento del software, expresa un esquema de organización estructural para
sistemas de software (Clements, 2002): Provee un conjunto de tipos de elementos
predefinidos, especifica sus responsabilidades e incluye reglas y guías para organizar las
relaciones entre ellos.
Implementar estilos y patrones arquitectónicos en el diseño de un software permite dar
soluciones de organización a nivel del sistema y soluciones a problemas detallados de
diseño de software. En conclusión, los estilos y patrones arquitectónicos ofrecen
soluciones a problemas de arquitectura de software en ingeniería de software al dar una
descripción de los elementos y el tipo de relación que tienen junto con un conjunto de
restricciones sobre cómo pueden ser usados.

Referencias Bibliográficas

Barraza, A. (2010). Curso de Arquitectura de Software. Recuperado de


http://cic.javerianacali.edu.co/wiki/lib/exe/fetch.php?media=materias:arqsoft_sesion7-
2010.pdf

Clements, P., Garlan D., Bass, L. y Strafford, J. (2002). Documenting Software


Architectures – Views and Beyond. Recuperado de
https://www.researchgate.net/publication/234787962_Documenting_Software_Architecture
s_Views_and_Beyond

Fing (2021). Introducción a la Ingeniería de Software Recuperado de


https://www.fing.edu.uy/tecnoinf/mvd/cursos/ingsoft/material/teorico/is05-
ArquitecturaDeSoftware.pdf

Pedro (2020). Principales características de Los ADL. Recuperado de


https://es.scribd.com/document/480407617/Principales-Caracteristicas-de-los-ADL
Reynoso, C. y Kicillof, N. (2004). Lenguajes de Descripción de Arquitectura (ADL).
Recuperado de http://carlosreynoso.com.ar/archivos/arquitectura/ADL.PDF

Reynoso, C. y Kicillog, N. (2004). Estilos y patrones en la estrategia de arquitectura de


Microsoft. Buenos Aires: Universidad de Buenos Aires

Software, web y apps (2018). Patrones de arquitectura y diseño de software. Recuperado


de https://www.desarrollodepaginasweb.com.mx/patrones-de-arquitectura-de-software/

Taylor, R.N., Medvidovic, N. y Dashofy, E. (2009). Software Architecture: Foundations,


Theory and Practice. New Jersey: John Wiley & Sons.

Valencia, A. (2011). Documentación y análisis crítico de algunas arquitecturas de software


en aplicaciones empresariales. Universidad Tecnológica de Pereira. Recuperado de
http://repositorio.utp.edu.co/dspace/bitstream/handle/11059/2460/00422V152.pdf;jsessioni
d=D3656879EFEC30007813CCF1D8D46891?sequence=1

Vestal, S. (1993). A cursory overview and comparison of four Architecture Description


Languages. Technical Report, Honeywell Technology Center.

Wolf, A. (1997). Succeedings of the Second International Software Architecture


Workshop. (ISAW-2). ACM SIGSOFT Software Engineering Notes, pp. 42-56.

También podría gustarte