Anda di halaman 1dari 13

Actividad 5: Evidencia de aprendizaje, Lenguaje descriptor y Patrones de arquitectura de software.

Nombre del Facilitador: Heriberto Gonzlez Czares. Nombre del Alumno: Paulo Cesar Casillas Martnez Se disea una propuesta de arquitectura que sirve para solucionar un problema en una tienda de conveniencia.

Universidad Abierta y a Distancia de Mxico Carrera: Ingeniera en Desarrollo de Software. 5to.Cuatrimestre Materia: Diseo y Arquitectura de Software.

Grupo: DS-DRS-1301-002
06/04/2013

NDICE.
INSTRUCCIONES. ........................................................................................................................... 3 LENGUAJE DESCRIPTOR Y PATRONES DE ARQUITECTURA............................................................ 4 Introduccin .............................................................................................................................. 4 Caso de estudio contexto. ......................................................................................................... 4 Anlisis caso de estudio. ........................................................................................................... 4 Requerimientos del usuario. ..................................................................................................... 5 Patrones de arquitectura de software. ......................................................................................... 6 Anlisis de patrones aplicables a la arquitectura de software.................................................. 6 Propuesta de solucin en base a requerimientos de usuario. ...................................................... 9 Descripcin. ............................................................................................................................... 9 Requerimientos de software. .................................................................................................... 9 Propuesta de arquitectura. ..................................................................................................... 10 Contrastando diferencias. ........................................................................................................... 11 Estilos vs. Patrones. ................................................................................................................. 11 Ejemplos de patrones.............................................................................................................. 12 Bibliografa .................................................................................................................................. 13

INSTRUCCIONES.
Evidencia de aprendizaje. Lenguaje descriptor y patrones de arquitectura de software. Para demostrar tu conocimiento acerca de los tipos de patrones arquitectnicos, t disears una propuesta de arquitectura que sirva para solucionar un problema; para ello considerars que el patrocinador (la empresa que solicit la solucin) es una tienda de conveniencia, t analizars sus requerimientos de software y lo contrastars con las herramientas de diferentes tipos de sistema, siendo capaz de elaborar una propuesta. Como parte de la evaluacin de esta unidad, es necesario realizar en forma grfica la arquitectura de una tienda de conveniencia aplicando y justificando el uso del patrn especfico. 1. Justifica el uso del patrn. 2. Realiza la representacin de la arquitectura propuesta. Para hacer esta presentacin, usars herramientas de diseo grfico de arquitectura y, en base a los ejemplos mostrados en la unidad, hacer un diagrama con la arquitectura propuesta. 3. Guarda la actividad con el nombre DRS_U2_EA_XXYZ. Sustituye las XX por las dos primeras letras de tu primer nombre, la Y por la inicial de tu primer apellido y la Z por la inicial de tu segundo apellido. 4. Enva el archivo a tu Facilitador(a) a travs de la seccin Evidencia de aprendizaje.

LENGUAJE DESCRIPTOR Y PATRONES DE ARQUITECTURA.


Introduccin
En el presente documento se presenta un caso de estudio para el anlisis de patrones aplicables y su propuesta de arquitectura.

Caso de estudio contexto.


Una tienda de conveniencia es un establecimiento que ofrece una amplia gama de productos de consumo, centrado principalmente en bebidas (alcohlicas o no), alimentos, principalmente del tipo conocido como comida chatarra, comida rpida, enlatados, congelados, conservas y en algunos casos, productos frescos. Derivado a que los clientes son por de los conocidos clientes de paso, suelen vender comida preparada y consumible inmediatamente, como sandwhiches, hamburguesas, tortas, todas ellas estn refrigeradas. Otro tipo de productos que ofrecen son: cigarros, peridicos, revistas, de uso domstico e higiene personal, as como frmacos de venta libre. Sus horarios de servicio son muy amplios, y sus precios, suelen ser ligeramente superiores a los supermercados. Su ubicacin suele encontrrseles en las estaciones de gasolina o en avenidas amplias de gran circulacin. Ejemplos de estos tipos de establecimientos, son las cadenas OXXO y los SEVEN-ELEVEN.

Anlisis caso de estudio.


Desprendindose de lo anterior, una tienda de conveniencia requiere de una aplicacin que le permita controlar sus inventarios, permitindoles identificar de manera inmediata las existencias y los precios de cada uno de sus productos, as como, que les informe cundo debe de realizarse un pedido a sus proveedores. Los proveedores deben estar registrados para poder identificar adecuadamente a quien le deben realizar los pedidos cuando las existencias se tengan que renovar. Por otro lado, los clientes que se acercan a ste tipo de establecimientos, pueden llegar a requerir que se les generen facturas por la adquisicin de sus productos, por lo que es necesario establecer mecanismos que les permitan dar de alta clientes y generacin de facturas con el detalle de los productos. ste tipo de

establecimientos, tiene una organizacin en la que los empleado son los que interactan ms directamente con el sistema, sin embargo, existen los gerentes de tienda, que son los responsables de la administracin total del mismo.

Requerimientos del usuario.


En base al anlisis anterior, podemos identificar que se necesitan cuando menos, los siguientes requerimientos: El sistema debe restringir el acceso a personas no autorizadas. El sistema debe permitir a los usuarios ingresar slo a los mdulos que se les haya autorizado. Los empleados de nivel ms bajo, slo pueden tener acceso a vistas que les permitan identificar los costos y productos que van a vender. Los empleados de nivel medio y superior, tendrn acceso a el manejo y manipulacin de los distintos datos que se generan. Contar con una interfaz grfica amigable para los usuarios, que contenga mdulos para poder controlar inventarios, manejar proveedores, manejar clientes y usuarios. El sistema deber realizar las operaciones necesarias que permitan realizar la totalizacin y cobro de los productos vendidos. El sistema debe permitir llevar un registro y control de las facturas, respetando un consecutivo numrico, el cual, estar almacenado en una base de datos. El sistema debe enlazarse a una base de datos que permita llevar adecuadamente el registro y control de cada movimiento de entrada-salida-existencia-costo, por cada producto en el almacn. El sistema debe dar respuesta automtica, determinando la cantidad de producto que se vende por cada modelo. El sistema debe emitir una seal cuando la cantidad de cada producto existente, llegue al porcentaje mnimo de existencias determinado por el gerente, indicando que es necesario comprar ms producto. El sistema debe enlazarse a una base de datos que permita llevar adecuadamente el registro y control de proveedor por cada producto que le vende a la tienda. El sistema debe enlazarse a una base de datos que permita llevar adecuadamente el registro y control de cliente por cada factura emitida, permitiendo detallar las compras realizadas en cada factura. El sistema deber contar con un mdulo de ayuda para su consulta.

El sistema debe permitir el acceso slo a usuarios previamente autorizados (Administrador, Encargado de almacn, Vendedores).

Patrones de arquitectura de software.


Anlisis de patrones aplicables a la arquitectura de software .
Patrones Arquitectnicos. Los patrones arquitectnicos podemos definirlos como La descripcin de un problema particular y recurrente de diseo, que aparece en contextos de diseo especfico, y presenta un esquema genrico demostrado con xito para su solucin. El esquema de solucin se especifica mediante la descripcin de los componentes que la constituyen, sus responsabilidades y desarrollos, as como tambin la forma como estos colaboran entre s. Los patrones que dan soporte a propiedades similares pueden ser agrupados en las siguientes categoras:

1. Del fango a la estructura o patrones simples. Ayudan a evitar un mar de componentes u objetos. En particular apoyan una descomposicin controlada de una tarea del sistema global en sub-tareas cooperantes. 2. Sistemas Distribuidos: Provee una infraestructura completa para aplicaciones distribuidas. 3. Sistemas Interactivos: Apoyan la estructuracin de sistemas de software que ofrecen la interaccin usuario-computadora. 4. Sistemas Adaptables: Apoyan fuertemente la extensin de aplicaciones y su adaptacin a desenvolverse con la tecnologa y cambios en los requisitos funcionales. A su vez, estos patrones los podemos categorizar de la siguiente manera: Categoras de tipos de patrones arquitectnicos Patrones simples Capas Tubera-filtro Pizarra Repositorio Broker CAGS Cliente-Servidor Modelo-Vista-Controlador Presentacin-Abstraccincontrol Microkernel Reflexin

Sistemas distribuidos

Sistemas interactivos

Patrones adaptables

El nivel de abstraccin de estos patrones, es en un nivel alto, por lo que nos dan una idea ms clara, de cmo estar conformada nuestra arquitectura, es decir, nos dan una base donde apoyarnos. As mismo, tenemos que tener claro, que la solucin ptima y final, no necesariamente implica utilizar slo un determinado patrn; podemos recurrir, en caso de ser necesario al uso y combinacin de distintos patrones dependiendo de cmo se vaya estructurando cada uno de los componentes del sistema. Por lo antes expuesto, es necesario tambin mencionar, que existen patrones con un nivel de abstraccin ms bajo, es decir, ms detallados, que nos ayudan a tener mayor control sobre los componentes que vayamos a implementar en el sistema. Dichos patrones son conocidos como: Patrones de Diseo y Patrones elementales. Patrones de diseo. Buschman nos dice al respecto que los patrones de diseo nos Proveen de un esquema para refinar los subsistemas o componentes de un sistema de software, o las relaciones entre ellos. Describe la estructura comnmente recurrente de los componentes en comunicacin, que resuelve un problema general de diseo en un contexto particular. Clasificacin. Dentro de los patrones de diseo existen variaciones segn su nivel de granularidad y abstraccin, lo que permite clasificarlos bajo dos criterios: Propsito, refleja qu hace un patrn teniendo en cuenta si es de Creacin, Estructural o de Comportamiento; y mbito, especifica si un patrn se aplica primariamente a una clase o a un objeto. De Creacin: Abstrae el proceso de instanciacin de objetos, su misin es permitir construir sistemas independientes de la forma de creacin, composicin o representacin de objetos. Un patrn de creacin de clases utiliza la herencia para variar la clase que es instanciada. Un patrn de creacin de objetos delega la instanciacin en otro objeto. Estructural: Controla como se componen las clases u objetos en la construccin de estructuras mayores. Un patrn estructural de clases utiliza la herencia para componer interfaces o implementaciones. Un patrn estructural de objetos describe la forma en que se componen objetos para obtener nueva funcionalidad, adems se aade la flexibilidad de cambiar la composicin en tiempo de ejecucin, lo cual no es posible con la composicin de clases estticas. De Comportamiento: Se relaciona con algoritmos, la forma en la que interactan las clases u objetos y la asignacin de responsabilidades entre ellos. Los patrones de comportamiento de clases utilizan la herencia para distribuir el comportamiento entre las clases. As mismo, los patrones de comportamiento de objetos cooperan como un grupo de objetos interconectados para realizar una tarea que un solo objeto no puede realizar por s solo.

Categoras de tipos de patrones arquitectnicos Chain Command Interpreter Iterator Mediator Memento Observer State Strategy Mtodo plantilla Visitante Adapter Bridge Composite Decorator Facade Flyweight Proxy Mdulo Abstract Factory Factory Method Builder Prototype Singleton

Comportamiento

Estructura

Creacin

Patrones elementales (idioms).

Son estndares de codificacin y proyecto especficos de un lenguaje de programacin, describen cmo implementar componentes particulares de un patrn. Nos ayudan a resolver operaciones comunes en un nuevo ambiente o a travs de un grupo. Los patrones elementales son:

Modularidad Interfaces mnimas Encapsulacin Objetos Acciones y Eventos

Propuesta de solucin en base a requerimientos de usuario.


Descripcin.
De conformidad a lo analizado en el caso de estudio, donde se obtuvieron algunos de los posibles requerimientos de usuario (se menciona esto, toda vez que no se aplic algn tipo de tcnica de recoleccin de requerimientos real), as como, al anlisis de los distintos patrones aplicables a la arquitectura del software; tenemos que considerar empezar con una estructura base que nos permita ir acomodando cada uno de los componentes provistos en los requerimientos (Interfaz, base de datos, reglas del negocio, usuarios, productos, etc) es necesario contar un una estructura base. sta base es preciso implementar la patrones de arquitectura del tipo estructura que nos ayudan a evitar un mar de componentes u objetos. Considerando lo anterior, en mi opinin es conveniente usar el patrn arquitectnico en capas de 3 niveles, donde jerrquicamente podamos organizar los componentes y servicios de la aplicacin, pudiendo separar la interfaz grfica de usuario, la lgica del negocio y los datos. En la capa de presentacin, tendremos la Interfaz grfica, as como, la lgica de la interfaz. En la capa de aplicacin, tendramos las reglas del negocio, como son: permisos para ingresar al sistema, para realizar modificaciones, altas, bajas, etc. Dichas reglas le daran servicio al manejo del inventario, clientes, usuarios, proveedores y las ventas que realiza el negocio. En los manejos se pueden tener: Altas, Bajas y modificaciones tanto de clientes, usuarios, productos, proveedores, as como, poder realizar los registros de ventas. En la capa de datos, tendramos el manejo de la base de datos de tipo relacional, para que pueda controlar llevar un registro de los movimientos de inventarios; registrar clientes, proveedores, usuarios.

Requerimientos de software.
Para poder implementar un sistema de este tipo, y considerando que el proyecto se elaborar con el lenguaje de programacin en Java, se requiere:
NOMBRE DE LA APLICACIN. REQUERIMIENTOS DE HARDWARE PARA LA INSTALACIN.

-Windows XP,, windows 7

-Equipo con un procesador a 233 megahercios (MHz) o superior (se recomienda un procesador Pentium). -512 MB de RAM. -1.5 GB MB de espacio en disco disponible. -Unidad de CD-ROM (si la instalacin se realiza desde un CD-ROM) -Super VGA (800 x 600) o monitor de mayor resolucin con 256 colores Mdem o conexin a Internet -Tarjeta de sonido.

Un SGBD, como MySQL. JAVA 7

-RAM: 128 MB; 64 MB para Windows XP (32 bits) -Espacio en disco: 124 MB

Propuesta de arquitectura.

10

Contrastando diferencias.
Por la divisin del trabajo que pretendo realizar, es que el modelo en capaz se me hace el indicado para ste tipo de aplicacin, toda vez que estaremos separando los datos, la interfaz y la lgica del negocio. El patrn Tubera-Filtros, se encuentra ms encaminada a procesos que se realizan de manera secuencial, en donde el uso de condicionales puede llegar a afectar la performance del sistema. En este caso pueden presentarse condicionales que provoquen ste problema. El patrn pizarra, lo encuentro ms enfocado a dominios poco conocemos o no es factible una solucin concreta. definidos, donde no

Estilos vs. Patrones.


Los estilos nos ayudan a reflejar componentes y las relaciones existentes entre stos, con las restricciones de su aplicacin y la composicin asociada, as como tambin las reglas para su construccin. Por otro lado, se considera como un tipo particular de estructura fundamental para un sistema de software, junto con un mtodo asociado que especifica cmo construirlo. En otras palabras, el estilo nos ayudan a identificar componentes y relaciones repetibles, que son fcilmente identificables con la prctica, que por sentido comn y lgica, podemos volver a utilizarlos en situaciones y ambientes parecidos a aquellas de los cuales surgieron. Por otra parte, los patrones arquitectnicos capturan existencia, experiencia comprobada en el desarrollo del software y ayudan a promover buenas prcticas de diseo. Cada patrn es especfico a un problema recurrente en el diseo e implementacin de un sistema de software. Un patrn, se considera un par problema solucin, resultado de la experiencia en el diseo de arquitecturas de sistemas y propone los patrones arquitectnicos como descripcin de un problema particular y recurrente de diseo, que aparece en contextos de diseo especfico, y presenta un esquema genrico demostrado con xito para su solucin. El esquema de solucin se especifica mediante la descripcin de los componentes que la constituyen, sus responsabilidades y desarrollos, as como tambin la forma como stos colaboran entre s. Por ltimo, un patrn de diseo provee un esquema para refinar los subsistemas o componentes de un sistema de software, o las relaciones entre ellos. Describe la estructura comnmente recurrente de los componentes en comunicacin, que resuelve un problema general de diseo en un contexto particular. Su aplicacin no tiene efectos en la estructura fundamental del sistema, pero s sobre la de un subsistema, debido a que especifica en mayor nivel de detalle, sin llegar a la implementacin, el comportamiento de los componentes del subsistema. Una diferencia bsica entre estilos y patrones, es que las personas que trabajan con estilo, se inclinan hacia una solucin con alta carga terica, enfoque acadmico y de abstraccin mucho ms elevado para la aplicacin, mientras que los que se basan por el diseo y lo prctico, es decir, la implementacin en aspectos reales, el cdigo duro, se inclinan ms por los patrones. (Mxico, Diseo y Arquitectura de Software, 2013). Los estilos y patrones ayudan al arquitecto a definir la composicin y el comportamiento del sistema de software. Se puede afirmar que una combinacin adecuada de ellos permite alcanzar los requerimientos de calidad esperados.

11

Ejemplos de patrones.
Un ejemplo donde se utiliza el patrn capas, es en la estructura del protocolo de comunicacin OSI. Los diseadores hacen uso de varios sub-protocolos y los colocan en capas. Esta es una arquitectura en donde hay varios niveles de comunicacin, partiendo desde el hardware pasando por la comunicacin punto a punto y llegando a los protocolos de aplicaciones. Estos niveles a su vez se dividen en sub-niveles, llevndolos cada uno a capas diferentes. Cada capa lleva a cabo una tarea especfica para la comunicacin y utiliza los servicios que le brinda su capa inmediata inferior. La arquitectura estara dividida en las siguientes capas:

Aplicacin.

Presentacin.

Sesin.

Transporte.

Red.

Enlace de datos.

Fsica.

Para el caso del patrn Tuberas-Filtros, Unix ha popularizado el paradigma ste tipo de patrn. El comando shell y la disponibilidad de varios programas filtros hacen de Unix un sistema popular. Como un sistema para diseadores de software, tareas frecuentes tales como la compilacin de un programa y la creacin de documentacin son realizadas por pipelines en un sistema Unix tradicional. La flexibilidad de los pipes de Unix hizo del sistema operativo una plataforma conveniente para el re-uso binario de programas filtros y para la integracin de aplicacin.

12

Bibliografa
Microsoft Exchange. (2011). Recuperado el 16 de 05 de 2012, de http://www.microsoft.com/exchange/en-us/system-requirements.aspx Adriana Sandra Almeira, V. P. (03 de 2007). Arquitectura de Software: Estilos y Patrones. Tesina Arquitectura de Softwar: Estilos y Patrones. Argentina: Universidad Nacional de la Patagonia San Juan Bosco. Kicillof, C. R.-N. (Marzo de 2004). Estilos y patrones en la estrategia de arquitectura de Microsoft. Obtenido de carlosreynoso.com.ar: http://carlosreynoso.com.ar/archivos/arquitectura/Estilos.PDF Mxico, U. a. (2013). Diseo y Arquitectura de Software. En Diseo y Arquitectura de Software 5to. Cuatrimestre. Unidad 2 (pgs. 4-20). Mxico, D.F.: Secretara de Educacin Pblica. Mxico, U. a. (2013). Programacin Orientada a Objetos II. Unidad 3. En Programacin Orientada a Objetos II (pgs. 4-27). Mxico, D.F.: Secretara de Educacin Pblica. Nuez, E. C.-F.-G. (Abril de 2004). Universidad Simn Bolivar. Obtenido de http://prof.usb.ve/lmendoza/Documentos/PS-6116/Guia%20Arquitectura%20v.2.pdf

13

Anda mungkin juga menyukai