Universidad Abierta y Distancia de México

Anuncio
Universidad Abierta y Distancia de México
Evidencia de aprendizaje: Unidad II
Nombre: Abraham Sánchez Juárez
Materia: Diseño y arquitectura de software
Facilitador: Gloria Martínez Martin
Matricula: AL12526906
Evidencia de aprendizaje. Lenguaje descriptor y patrones de arquitectura de software
Primero que nada para tener una mejor construcción de todo los procesos que se generan dentro de un negocio y
conocer su funcionamiento es muy importante utilizar un lenguaje descriptor que nos ayude a modelar todo el
funcionamiento de los procesos que se lleva a cabo dentro de la empresa para poder ser utilizado sus características y
desarrollar un programa de software al conocer el funcionamiento de estos procesos. Un lenguaje descriptor nos ofrece
expresar las características de un sistema, en otras palabras modelarlo, aplicando una convención gráfica a un alto nivel
de abstracción. Dentro de la arquitectura de software existen varios ADL que nos ayuda a modelar muchas
características de distintas formas de acuerdo al problema que se está enfrentando. Hay distintos lenguajes descriptores
pero en este caso utilizaremos UML. Ya que el caso de estudio es una tienda de conveniencia donde el cliente va adquirir
un producto, con un diagrama de funciones cruzadas podremos ver las características de cómo funciona este sistema
gracias a un lenguaje descriptor.
Diagrama de actvidades "Oxxito"
Cliente
Empleado de mostrador
Recibir petición
Buscar producto
NO
Revisar mercancia
SI hay
producto
Solicitar producto
Surtir producto
NO
Entregar producto
SI hay
producto
Recibir producto
Cobrar producto
Fase
Pagar producto
Como podemos ver gracias al este tipo de lenguaje descriptor podemos conocer el funcionamiento de los procesos del
de esta empresa, con esto ya tenemos identificados varios factores en cómo podemos construir un programa, teniendo
en cuenta todo esto podemos analizar el contenido del modelado de estos procesos y analizar cuál es el mejor patrón
para ser utilizado en este caso.
Patrón de arquitectura de software
¿Qué es un patrón de arquitectura de software?
Los patrones de diseño de software que ofrecen soluciones a problemas de arquitectura de software en ingeniería de
software. Dan 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. Un patrón arquitectónico expresa un esquema de organización estructural esencial para
un sistema de software, que consta de subsistemas, sus responsabilidades e interrelaciones. En comparación con los
patrones de diseño, los patrones arquitectónicos tienen un nivel de abstracción mayor. Los patrones de diseño de
software nos ofrecen la manera en cómo debe de funcionar un programa por medio de este patrón, donde las
peticiones que son enviadas por el usuario deben de reaccionar de acuerdo al patrón elegido al momento de la
programación. Esto nos ayuda demasiado ya que un software debe de estar construido a base de un patrón para poder
construir mejor software y funcione de manera adecuada para el usuario, hay distintos tipos de patrones entre ellos
están:




Cliente-servidor
Modelo-vista-controlador
Tubería-filtro
Arquitectura en capas
Lo más importante de los patrones arquitectónicos es saber elegir el patrón de acuerdo al funcionamiento que se le va a
a dar resolución al software a través de algún tipo de patrón, ya que nos enfrentamos a una situación de que el patrón
elegido va hacer el que determine como va a funcionar el software, ya que cada petición y llamado seguirá un camino de
acuerdo a el tipo de patrón elegido.
Patrones de arquitectura
Cliente-servidor
Se define como una arquitectura distribuida que permite a los usuarios finales obtener acceso la información en forma
transparente aún en entornos multiplataforma. En el modelo cliente-servidor, el cliente envía un mensaje solicitando un
determinado servicio (hace una petición), y este envía uno o varios mensajes con la respuesta (provee el servicio).
Modelo-vista-controlador
El modelo MVC nos ayuda a separar la lógica del negocio de la interfaz del usuario, facilita la evolución por separado de
ambos aspectos, incrementa reutilización y flexibilidad. Ahora veremos como esta definido y definido el MVC, también
como el funcionamiento de este mismo.
Modelo: El modelo administra el comportamiento y los datos del dominio de aplicación, responde a requerimientos de
información sobre su estado (usualmente formulados desde la vista) y responde a instrucciones de cambiar el estado
(habitualmente desde el controlador).
Vista: Maneja la visualización de la información.
Controlador: Interpreta las acciones del ratón y el teclado, informando al modelo y/o a la vista para que cambien según
resulte apropiado.
Tanto la vista como el controlador dependen del modelo, el cual no depende de las otras clases. Esta separación permite
construir y probar el modelo independientemente de la representación visual. La separación entre vista y controlador
puede ser secundaria en aplicaciones de clientes ricos y, de hecho, muchos frameworks de interfaz implementan ambos
roles en un solo objeto. En aplicaciones de Web, por otra parte, la separación entre la vista (el browser) y el controlador
(los componentes del lado del servidor que manejan los requerimientos de HTTP) es muy más definida.
Tuberia-filtro
Una tubería (pipeline) es una popular arquitectura que conecta componentes computacionales (filtros) a través de
conectores (pipes), de modo que las computaciones se ejecutan a la manera de un flujo. Los datos se transportan a
través de las tuberías entre los filtros, transformando gradualmente las entradas en salidas. Se aplica cuando los datos
de entrada se han de transformar en datos de salida mediante una serie de operaciones. Los componentes (filtros) van
transmitiendo datos al siguiente por medio de tuberías. Los filtros no necesitan saber el funcionamiento de los vecinos.
Sólo se preocupan de su entrada y su salida. Si hay una sola línea de transformaciones se denomina procesamiento por
lotes secuencial (pipeline)
Arquitectura por capas:
Esta se define como un estilo de capaz como una organización jerárquica tal que cada capa proporciona a la capa
inmediatamente superior y se sirve de las prestaciones de la capa inferior. Las capas pueden ser entidades complejas,
compuestas de varios paquetes o subsistemas. Las ventajas del estilo en capas son obvias.
Para el caso de estudio eh elegido como patrón arquitectónico el MVC, ya que dentro de este patrón tenemos muchas
ventajas que podemos sacar mucho provecho de acuerdo a su funcionamiento. Contamos con un modelo (base de
datos) con el cual podemos construir por medio de un lenguaje de base de datos SQL, un esquema de base de datos que
contenga tablas bien definidas para poder hacer consultas de acuerdo a lo que el usuario pide. El usuario cuando una
petición (GET) por ejemplo la consulta sobre la información de un precio de un producto el controlador hace una
petición al modelo y este envía un respuesta (request) al controlador y este envía una respuesta(GET) a la vista donde el
usuario recibe la contestación que es mostrada en la vista.
Con las imágenes siguientes podemos constatar el funcionamiento del patrón elegido MVC y su funcionamiento:
Dentro del MVC podemos enviar varios tipos de peticiones GET Y POST, con una se obtiene resultados y con la otra
podemos enviar información a la base de datos. Para esto nos ayuda el controlador donde se define todo el código que
va a controlar el manejo de todos estos datos que van hacer utilizados, formados y controlados dentro del todo el
sistema de software, el controlador es la base del funcionamiento del programa. Dentro del controlador podemos
utilizar distintos lenguajes de programación entre los más usados esta Python, PHP, ASP y otros más.
Como se aprecia en la imagen en esta parte de código muestra el funcionamiento del controlador donde se definen las
entradas y salidas de las peticiones, si la información es válida o no y qué hacer con toda la información que pasa por el
ciclo de la aplicación. Dentro del servidor que también es una parte del controlador podemos ver las peticiones que
pasan.
Todas las peticiones van hacer mostradas la cara frontal de la aplicación, o sea la vista:
Que este caso la vista está formado por una plantilla HTML/CSS.
Una de las partes más importantes del MVC es el modelo donde se aloja toda la información almacenada a través de un
lenguaje de base de datos, del cual el controlador obtendrá a través de las tablas construidas en el modelo.
Descargar