Logo Studenta

DDRS_U2_EA_ALMM

¡Este material tiene más páginas!

Vista previa del material en texto

Universidad Abierta y a Distancia
de México
División de Ciencias Exactas, Ingeniería y Tecnología
Desarrollo de software
Semestre: 
Asignatura: Diseño y arquitectura de software
Unidad de aprendizaje: 2
Actividad: Evidencia de Aprendizaje 
Ciudad de México, Noviembre del 2022
Diseño: DL-CPL
INDICE
INTRODUCCIÓN	3
INSTRUCCIONES	4
INVESTIGACION PREVIA	6
CASO DE ESTUDIO	10
DESARROLLO DE LA ACTIVIDAD	12
ENLACE CARPETA COMPARTIDA	15
CONCLUSIONES	15
REFERENCIAS BIBLIOGRÁFICAS	16
INTRODUCCIÓN
El siguiente trabajo tiene el objetivo de diseñar una propuesta de solución al caso de estudio, mediante la aplicación de del estilo de arquitectura de software Cliente/Servidor, explicando los planteamientos requeridos relacionados al estilo y el diseño de los tres niveles de arquitectura (presentación, aplicación y datos) por medio de el diseño de una propuesta de solución al aprendizaje baso en problemas asignado, el estudiante aplica el estilo de arquitectura de software Cliente/Servidor, para atender los requerimientos y especificaciones en el diseño de desarrollo de software.
INSTRUCCIONES
1. Haciendo uso del formato (plantilla) oficial de entrega de actividades que el docente te proporcionó, redacta la introducción (entre un mínimo de 100 y máximo 150 palabras de propia autoría), donde expliques el contenido a realizar basado en los siguientes planteamientos: ¿qué se va a realizar?, ¿para qué se va a realizar?, ¿cómo se va a realizar? 
2. Investiga en fuentes de información confiables (Google Académico, Mendeley, Zotero, Redalyc, LatinIndex) acerca de los estilos de arquitectura de software, los siguientes temas sobre los estilos de arquitectura de software:
1. 
	
	
	
2. Basado en componentes
3. Capas 
4. Cliente/Servidor 
5. Orientado a objetos 
6. Tubería y filtros
3. 
4. Analiza el caso de estudio, para identificar el nivel de presentación, nivel de aplicación, nivel de datos de la arquitectura Cliente/Servidor.
5. Explica en relación al caso de estudio de forma detallada, clara, con ideas propias y solidas cada uno de los siguientes planteamientos vinculados a la arquitectura Cliente/Servidor, e incluye por lo menos 2 citas textuales en los contenidos: 
a. 
b. Describe el objetivo del sistema para el desarrollo de la propuesta de solución. 
c. Describe el nivel de presentación en relación a las especificaciones del caso de estudio. 
d. Describe el nivel de aplicación en relación a las especificaciones del caso de estudio. 
e. Describe el nivel de datos en relación a las especificaciones del caso de estudio. 
f. Identifica 4 características propias de la arquitectura Cliente/servidor y descríbelas en relación a las especificaciones caso del caso de estudio. 
Notas: 
· 
· La explicación de cada punto deberá desarrollarse en una extensión de 70 a 120 palabras por cada contenido, donde la cita textual no forma parte de la extensión.
 
· Las citas textuales pueden ser colocadas en cualquiera de los contenidos que se desarrollen a continuación (recuerda que la cita textual no forma parte de la extensión del número de palabras solicitadas)
6. Diseña de forma detallada cada uno de los niveles de la arquitectura Cliente/Servidor (presentación, aplicación y datos) en relación a cada una de las especificaciones del caso de estudio
	Notas: 
· 
· Los diagramas deberán diseñarse con software especializado (Microsoft Visio o alguna aplicación en línea). 
· Si el diseño se hace en alguna aplicación en línea se deberán entregar los archivos fuente, así como capturas de pantalla durante el diseño de cada vista mostrando en todo momento la fecha y hora del sistema operativo 
· Es necesario enviar los archivos fuente de los diagramas. Si se omite el envío de los archivos fuente, la actividad será evaluada con 1 y contará como intento. 
· No se permiten imágenes tomadas de Internet, si esta es tomada de Internet, la actividad será evaluada con 1 y contará como un intento. 
7. 
8. Coloca el diseño de cada uno de los niveles diseñados en el punto no. 5 en el documento formato plantilla
9. Crea una carpeta compartida en OneDrive desde tu cuenta institucional, para guardar tus tres diagramas (procurando cuenten con buena nitidez). 
Nota: Si la carpeta no se genera desde tu cuenta institucional, la actividad será evaluada con calificación de 1 y contará como intento. 
10. Genera un enlace de la carpeta compartida, configurando los permisos para que el docente pueda acceder a su contenido, y pega el enlace de la carpeta compartida en el formato plantilla de entrega.
11. Redacta una conclusión (entre un mínimo de 150 y máximo 200 palabras de propia autoría), donde expliques cuáles fueron los aprendizajes adquiridos, las experiencias, y la importancia que representó el desarrollo de los contenidos de esta actividad. 
12. Consulta el instrumento de evaluación y el Formato de entrega de la actividad para conocer aspectos particulares del producto a entregar. 
INVESTIGACION PREVIA
1. Basado en componentes.- El diseño de la aplicación informática como un conjunto de componentes interrelacionados y que poseen interfaces bien definidas. Estos componentes contienen reglas bien específicas y es comúnmente acompañado de uno o más elementos tecnológicos, a través de los cuales se implementa el soporte necesario para su operación.
Características 
· Por medio de este estilo arquitectónico es posible el diseño de aplicaciones informáticas a partir del establecimiento de componentes individuales. 
· Se enfatiza sobre la descomposición del sistema en componentes las cuales contienen interfaces bien definidas que determinan métodos, eventos y propiedades. 
· Un componente en especial se diseña para una tarea específica y pueden reutilizarse.
· El componente no debe almacenar información sino que éste la recibe y procesa
2. Capas.- La guía de arquitectura dice “se basa en una distribución jerárquica de los roles y responsabilidades con el fin de proveer una división efectiva de los problemas a revolver” (De la Torre, C., Zorrilla, U., Calvarro, J. y Ramos, M. A. (2010). Guía de arquitectura N-Capas orientada al dominio con .NET 4.0, Página 23). El objetivo principal de la separación de los distintos componentes del software (la lógica del negocio, la vista del usuario, la capa de datos, entre muchas otras) es tener piezas identificables y unificadas sobre la base de la labor que desempeñarán dentro de la solución completa.
Características 
· Es una organización jerárquica donde cada capa proporciona servicios a la capa inmediatamente superior y se sirve de los servicios de la capa inmediatamente inferior.
· Se encapsula la implementación de los servicios de cada capa.
· La mayoría de las interacciones suceden solamente entre capas adyacentes mediante la descomposición de los servicios que ofrecen.
· La comunicación entre capas se realiza a través de la llamada a procedimiento con parámetros que son enviados entre cada capa.
· Las distintas capas de la aplicación pueden residir en una sola máquina o se puede distribuir entre varios equipos para ofrecer un mayor rendimiento.
3. Cliente/Servidor .- Establece una relación entre dos aplicaciones en las cuales una de ellas (cliente) inicia la comunicación y envía requerimientos a la otra aplicación (servidor) que los procesa y ejecuta y, si es necesario, envía la respuesta.
Características 
· Los componentes son clientes y servidores.
· Los servidores no conocen el número o identidades de los clientes sin embargo el cliente si conoce la identidad del servidor.
· Divide al sistema en tres entidades: una aplicación cliente, una aplicación servidor y una red de conexión.
· Los conectores están basados en protocolos de interacción entre redes. “Puede utilizar un amplio rango de protocolos y formatos de datos para comunicar la información” (De la Torre, C., Zorrilla, U., Calvarro, J. y Ramos, M. A. (2010). Guía de arquitectura N-Capas orientada al dominio con .NET 4.0, Página 19).
4. Orientado a objetos.- Define el sistemacomo un conjunto de objetos que interactúan entre sí. Se divide el sistema en estados y funciones los cuales son encapsulados en objetos que, como bien se indica en la programación orientada a objetos, deben ser instanciados antes que se asignen valores a sus propiedades y sus métodos sean invocados, todo mediante una interfaz gráfica.
Características 
· El acceso a un determinado objeto se logra mediante operaciones, conocidas como métodos. 
· Describe cada uno de los objetos que contienen las propiedades y los métodos adecuados para procesar la información conforme a un requerimiento específico.
· Se aplica la reutilización mediante las características propias de la programación orientada a objetos: encapsulación, polimorfismo y herencia. 
· Los objetos pueden llegar a componerse de otros objetos y ocultan las propiedades internas de otras clases o se exponen únicamente como interfaces.
5. Tubería y filtros.- Se relaciona con redes de procesos y procesos secuenciales (procesos por lotes) y se percibe como una serie de transformaciones sobre sucesivas piezas de los datos de entrada, los cuales entran al sistema y fluyen a través de los componentes
Características 
· La estructura del sistema se basa en transformaciones sucesivas a los datos establecidos de entrada.
· Programas separados y ejecutados en orden.
· Los datos son pasados como un lote de programa al siguiente.
· Los datos ingresan al sistema y fluyen a través de los componentes hasta su destino final.
CASO DE ESTUDIO
Propósito
Diseña una propuesta de solución al caso de estudio, aplicando el estilo de arquitectura cliente/servidor.
La empresa “Insecticidas y Semillas del Guadiana”, dedicada al ramo de la agronomía, cuenta con una gran cantidad de clientes, pero la mayoría de ellos radican en puntos muy lejanos a las instalaciones de este negocio, por lo que el propietario de este desea ofrecer sus productos de manera virtual, dando oportunidad a sus consumidores de verificar precios, existencias y además acceder a descuentos al realizar sus compras.
Descripción
Clientes:
Deberán contar con un usuario y contraseña, para que puedan acceder al servidor web de la empresa a través de cualquier equipo de cómputo y dispositivo móvil con acceso a internet, en el que se les ofrecerá:
· Acceso al catálogo de productos.
· Para conocer precios y existencias.
· Carrito de compras:
· Lista de productos agregados.
· Total a pagar (considerando si aplicará descuento o no).
· Ofrecer descuentos:
· Compras mayores a $5,000 un descuento del 5%.
· Compras mayores a $10,000 un descuento del 10%.
· Compras mayores a $20,000 un descuento del 15%.
Sistema:
Disponible por medio de acceso en internet, ofreciendo la oportunidad de tener la aplicación en sus dispositivos móviles y además el acceso por medio de página web (ambos deben contar con las mismas características).
Usuarios:
Aparte de los clientes, se deben asignar dos usuarios de tipo administrador:
· Uno que permita la actualización del catálogo de los productos (existencias y precios).
· Otro para el dueño, donde tenga acceso al total de ventas presentadas estadísticamente por días, semanas y meses.
Productos:
La empresa cuenta con un catálogo que se puede clasificar de la siguiente manera:
· Semillas de hortalizas:
· 
· Rábano
· Maíz
· Frijol
· Cilantro
· Calabaza
· Betabel
· 
· Semillas de flores:
· 
· Cempasúchil
· Girasol
· Nube
· Árnica
· Clavel
· Crisantemo
· 
· Insecticidas químicos:
· 
· Organoclorado
· Tricloro
· Urea
· Carbamato
· 
· Insecticidas orgánicos:
· 
· Jabón potásico
· Aceite de Neem
· Extracto de semilla de aguacate
Consideraciones
La propuesta de solución debe estar con base al estilo solicitado (cliente/servidor) en tres capas: nivel de presentación, nivel de aplicación y nivel de datos.
DESARROLLO DE LA ACTIVIDAD
a. Describe el objetivo del sistema para el desarrollo de la propuesta de solución. 
Como se menciona al inicio en el caso de estudio “…cuenta con una gran cantidad de clientes, pero la mayoría de ellos radican en puntos muy lejanos a las instalaciones de este negocio, por lo que el propietario de este desea ofrecer sus productos de manera virtual, dando oportunidad a sus consumidores de verificar precios, existencias y además acceder a descuentos al realizar sus compras…”. se tiene que desarrollar una plataforma de ventas en línea, donde el cliente pueda realizar diversas cosas como verificar precios, existencias y obtener descuento. También poder realizar su compra en cualquier lugar donde se tenga acceso a internet y pueda recibir su compra en cualquier lugar donde tengan cobertura el sistema de entrega.
b. Describe el nivel de presentación en relación a las especificaciones del caso de estudio. 
Como menciona IBM “El nivel de presentación es la interfaz de usuario y de comunicación de la aplicación, donde el usuario final interactúa con la aplicación. Su objetivo principal es mostrar información al usuario y recopilar datos de este. Este primer nivel se puede ejecutar en un navegador web como una aplicación de desktop o una interfaz gráfica de usuario (GUI)” (IBM Cloud Education, 2021). Es por ello que se pensaría en diseñar una pagina web con lenguajes de programación como HTML, JavaScript, CSS, o cualquier otro FRONT-END, ya que casi todos los clientes o dispositivos como tabletas, celulares o computadoras muy viejas pueden ver paginas Web, y los otros lenguajes aparte de dar diseño agradable al cliente, nos pueden servir para llevar la información a la siguiente capa.
En esta capa se debe de mostrar el panel del usuario/cliente, así como mostrar el catalogo con todos los productos de una forma amigable y sencilla para que se puedan agregar al carrito de compras y proceder a la compra/venta.
c. Describe el nivel de aplicación en relación a las especificaciones del caso de estudio. 
La empresa IBM dice “…se procesa la información recopilada en el nivel de presentación, a veces con otra información en el nivel de datos, mediante la lógica empresarial; un conjunto específico de reglas empresariales…”(IBM Cloud Education, 2021). Con base en lo mencionado, se puede decir que el nivel de aplicación para el caso de estudio seria el montar un servidor que pueda trabajar con lenguajes de programación como Python, Java, Perl, PHP, ya que estos lenguajes BACK END nos sirve para capturar la información del lado del navegador y después mandarlo o trabajarlo del lado del servidor es por ello que en la capa o nivel anterior se sugirió trabajar con una interfaz o aplicación web. Los servidores Web mas comunes son Apache y Nginx, para el caso de estudio yo sugeriría Apache.
d. Describe el nivel de datos en relación a las especificaciones del caso de estudio. 
Según dice IBM “…es donde se almacena y gestiona la información procesada por la aplicación. Puede ser un sistema de gestión de base de datos relacional como PostgreSQL, MySQL, MariaDB, Oracle, DB2, Informix o Microsoft SQL Server, o en un servidor de bases de datos NoSQL como Cassandra, CouchDB o MongoDB…”(IBM Cloud Education, 2021). Considerando esto podemos pensar que para el caso de estudio se podría utilizar MariaDB ya que es gratuito y abierto, y es perfectamente compatible con el servidor apache, ahí seria donde se almacenaría en una base de datos toda la información de los usuarios, en otra base de datos se guardaría la información del catalogo y sus productos.
e. Identifica 4 características propias de la arquitectura Cliente/servidor y describirlas en relación a las especificaciones caso del caso de estudio.
· El contenido de la Unidad 2 de la asignatura menciona “Se aplica la reutilización mediante las características propias de la programación orientada a objetos: encapsulación, polimorfismo y herencia”. Estas características de encapsulación polimorfismo y herencia se aplicarían para el catalogo de productos y sus reglas.
· Se puede aplicar la escalabilidad de servidores, ya que si los clientes empiezan a aumentar o bien el catalogo de productos se amplia, debe de poderse ampliar el sistemapara cumplir con la demanda.
· Para este caso se aplica la Heterogeneidad de sistemas, ya que muy probablemente el Hardware, Sistema Operativo del cliente y servidor no sean los mismos, ya que habrá muchos clientes que tengan Android, y iOS, al igual que Mac y Windows.
· También otra característica es la independencia de tareas, ya que el cliente y servidor tienen distintos requerimientos de Hardware.
ENLACE CARPETA COMPARTIDA
https://unadmex-my.sharepoint.com/:f:/g/personal/medinalejandro_nube_unadmexico_mx/EqZKENvTRShHoNe4j1GPjNMBQfWzddbnxFxMeHqowI7Ctw?e=UAfk4Y
CONCLUSIONES
Con base al trabajo realizado en esta actividad puedo concluir que es muy importante la correcta selección del estilo de arquitectura y por eso mismo se ha puesto en práctica la correcta selección del estilo arquitectónico, ya que independientemente de las indicaciones para el desarrollo de la actividad, existen múltiples estilos que se pueden adaptar a cada problemática diferente, de hecho, en un caso pudiese ser que se adapte más de un estilo para un caso o el desarrollo del problema/solución, ya dependerá del desarrollador de con base a su criterio la selección de este. 
Por eso mismo es importante conocer cada uno de ellos, así como sus características, ventajas y desventajas. Solo así podremos comprender en que situación se debe de usar dependiendo el caso que sea.
REFERENCIAS BIBLIOGRÁFICAS
· EcuRed. (s. f.). Cliente-Servidor - EcuRed. Recuperado 3 de noviembre de 2022, de https://www.ecured.cu/Cliente-Servidor
· Mercedes Vitturini, M. (2012). Tema 2: EL MODELO CLIENTE/SERVIDOR. Universidad Nacional del Sur. https://www.infor.uva.es/~fdiaz/sd/2005_06/doc/SD_TE02_20060305.pdf
· Arquitectura de tres niveles. (2021, 2 septiembre). https://www.ibm.com/mx-es/cloud/learn/three-tier-architecture

Continuar navegando