Vous êtes sur la page 1sur 16

Actividad 5:

Evidencia de
aprendizaje,
Lenguaje
descriptor y
Patrones de
arquitectura de
software.
Universidad Abierta y a

Nombre del
Facilitador: Heriberto Gonzlez
Distancia de Mxico
Czares. Nombre del Alumno: Paulo Cesar
C aMartnez
rrera: Ingeniera en
Casillas
D e s a una
r r o propuesta
llo de S
f t w a r e . que
Se disea
deo arquitectura
5
t
o
.
C
u
a
t
r
i
m e sen
t r una
e
sirve para solucionar un problema
tienda
de conveniencia.
Materia: Diseo y
Arquitectura de
Software.

Grupo: DS-DRS-1301-002

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

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.

13

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

13

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.

13

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
arquitectnicos

tipos

Patrones
simples

Capas
Tubera-filtro
Pizarra
Repositorio
Broker
CAGS
Cliente-Servidor
Modelo-VistaControlador

Sistemas
distribuidos
Sistemas
interactivos

de

patrones

13

Patrones
adaptables

PresentacinAbstraccin-control
Microkernel
Reflexin

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

13

de objetos interconectados para realizar una tarea que un solo objeto no puede realizar
por s solo.

13

Categoras de tipos de patrones


arquitectnicos

Comportamient
o

Estructura

Creacin

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

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

13

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

13

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.

13

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).

13

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.

13

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.

Presentaci
n.
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.

13

13

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

Vous aimerez peut-être aussi