You are on page 1of 13

Diseo y Arquitectura de Software

Unidad 2 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; 1. La libertad: facultad inherente a todo ser humano 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. Problema: Grupo CCCIMSA me ha solicitado le desarrolle una tienda de convivencia enfocada a la venta de productos para la Construccin. La aplicacin a desarrollar, CCCIMSA ofrecer la funcionalidad que disponen las tiendas en la red, dispondr de un catlogo de productos de materiales para la construccin donde se podr visualizar sus caractersticas tcnicas ms importantes y por supuesto tendremos la opcin de poder comprarlos. En esta aplicacin los productos estarn clasificados por categoras, adems para poder facilitar la localizacin de nuestros materiales para la construccin, se dispondr de una pequea aplicacin que realizar la bsqueda por palabra clave. Dependiendo del tipo de usuario se dispondr de unas opciones o de otras, se tendrn tres tipos de usuarios. El usuario annimo ser el que menos funcionalidades tenga, podr navegar por nuestra web, ver productos y aadirlos al carro, pero no podr efectuar la finalizacin de la compra hasta que no se registre o se identifique, una vez realizada cualquiera de estas operaciones se convertir en usuario registrado el cual ya podr finalizar la compra. El usuario con ms privilegios ser el usuario administrador, que adems de disponer de las funcionalidades anteriores podr gestionar el catlogo de productos, administrar clientes, categoras En resumen se trata de desarrollar una aplicacin para facilitar la venta de materiales para la construccin as como ayudar a su gestin, de una forma sencilla y clara para los usuarios y el administrador de la aplicacin.
NOMBRE: Roberto lvarez Granados MATRCULA: AL12501836 CARRERA: Ingeniera en Desarrollo de Software

Unidad

Diseo y Arquitectura de Software


Unidad 2 Evidencia de Aprendizaje. Lenguaje descriptor y patrones de arquitectura de
software Los objetivos concretos consistirn en: Mostrar un catlogo de los productos a nuestros posibles clientes. Permitir la compra de los productos que aparezcan en nuestra aplicacin. Lalibertad: facultad inherente a todo ser humano Facilitar el mantenimiento de dicho catlogo. Los resultados y productos que se piensan obtener: Una aplicacin web para dar a conocer nuestros productos. Facilitar la gestin tanto del material como de los usuarios. El mtodo para guiar el desarrollo del proyecto se basar en las siguientes etapas: La especificacin de requisitos basada en la definicin de casos de uso. El proceso de anlisis basado en modelos UML. La definicin de la arquitectura basada en tres capas.

Unidad 1.

Diseo e implementacin de una tienda virtual La codificacin de un prototipo de la aplicacin. La realizacin de pruebas tcnicas del sitio Web.

Los recursos disponibles consistirn en: Un entorno de diseo Web basado en herramientas convencionales. WAMP el cual incluye PHP5, MySQL y Apache. Un servidor Web. Un plazo de dos meses. Un desarrollador con dedicacin completa.

mbito: Nuestro proyecto consistir en la creacin de una tienda de convivencia enfocada a la venta de productos materiales para la construccin, la cual estar dirigida hacia todo tipo de usuarios, tanto usuarios domsticos como a usuarios de mbito profesional. En nuestra Web CCCIMSA se podr navegar dentro de un catlogo de productos, de forma libre sin necesidad de que el usuario se registre, estas consultas se harn a travs de las distintas categoras existentes adems de poder realizar una bsqueda, con una pequea aplicacin mediante palabras clave. Dentro de las categoras se encontrarn todos los productos clasificados, ser el administrador el responsable de realizar la gestin de este material as como su correcta organizacin.
NOMBRE: Roberto lvarez Granados MATRCULA: AL12501836 CARRERA: Ingeniera en Desarrollo de Software

Diseo y Arquitectura de Software


Unidad 2 Evidencia de Aprendizaje. Lenguaje descriptor y patrones de arquitectura de
software Todos los productos constarn de una descripcin, fotografa, precio y se podr aadir a nuestro carrito de la compra, para efectuar la compra de cualquier producto aadido a nuestro carrito, el usuario deber darse de alta en nuestra de datos o facultad si ya lo est, identificarse. 1. base La libertad: inherente a todo ser humano La gestin de nuestros Web ser realizada por un usuario especial, el administrador, en el cual recaer la responsabilidad de realizar el mantenimiento del catlogo de productos, altas y bajas de material, as como de gestionar pedidos y usuarios. Perspectiva del producto: CCCIMSA, nuestra aplicacin, realizar las funcionalidades normales que implementan cualquier tienda virtual, venta y bsqueda de productos, en nuestro caso materiales para la construccin, la gestin y administracin tanto de productos como de usuarios y pedidos. Funciones del producto: Clasificaremos las funciones de nuestra aplicacin en bloques. Funciones de bsqueda. Cualquier usuario que acceda a nuestro portal Web, este registrado o no, podr realizar bsquedas de material en el catlogo a travs de las diferentes categoras definidas as como una bsqueda automatizada. Cuando el usuario encuentre el producto se mostrar la imagen del mismo, con su precio, opcin para visualizar sus detalles y aadir a al carrito de la compra. Funciones de compra. Para poder finalizar la compra de un producto el usuario deber identificarse o en el caso que no est registrado realizar la operacin de registro. Funciones de gestin. Las funciones de gestin solo podrn llevarse a cabo por el administrador, ser el encargado de realizar altas y bajas de productos as como de la edicin o rectificacin de estos. Tambin gestionar las distintas categoras del catlogo de productos, creando o eliminando segn crea conveniente, adems de poder eliminar usuarios, consultar pedidos y modificar su estado, as como listar productos, usuarios, categoras y pedidos. Caractersticas del usuario. Nuestro sistema constar de tres tipos de usuarios que son los que podrn interactuar con nuestra Web: Usuario annimo, usuario registrado y usuario administrador.
NOMBRE: Roberto lvarez Granados MATRCULA: AL12501836 CARRERA: Ingeniera en Desarrollo de Software

Unidad

Diseo y Arquitectura de Software


Unidad 2 Evidencia de Aprendizaje. Lenguaje descriptor y patrones de arquitectura de
software Usuario annimo: Podr realizar consultas al catlogo de productos y navegar de forma libre por la zona pblica de la Web. Ver productos, descripciones de productos

Unidad 1. La libertad: facultad inherente a todo ser humano

Usuario registrado: Es aquel usuario que habr efectuado su alta en el sistema y que por lo tanto sus datos estn en nuestra base de datos. Estos usuarios podrn realizar las funciones de usuario annimo y podrn efectuar finalizar las compras aadidas al carrito de la compra. Usuario administrador: Este usuario ser el encargado de realizar todas las funciones de gestin del sistema, modificaciones, listados, mantenimiento de la base de datos y comprobacin del buen funcionamiento de la Web. Restricciones generales. Las consideraciones de seguridad que existirn en nuestra aplicacin sern la restriccin de control y acceso a la informacin, ya que dependiendo de nuestro login y password dispondremos de unos privilegios para poder realizar determinadas funciones. Ser muy importante cumplir con la ley de proteccin de datos para as mantener la informacin de nuestra base de datos protegida ante accesos no deseados Esto ser requisito indispensable en nuestro servidor que ser donde se almacene toda la informacin delicada. En el parte del cliente cualquier equipo sobremesa o porttil, con una configuracin media baja, que soporte un navegador Web estndar seran suficientes para poder ser utilizados, ya que los requisitos necesarios para visualizar nuestra aplicacin son escasos. Por el lado del servidor dependeremos del nmero de clientes que estn conectados de forma simultnea, ya que esto hara que nuestro servidor funcionara de forma inadecuada. La solucin sera aumentar la potencia del servidor para evitar la saturacin debida a la ejecucin de mucho cdigo, muchos accesos a nuestra base de datos Otro posible problema del lado del servidor, de fcil solucin actualmente, es el ancho de banda para servir las pginas, solucin contratar mayor ancho de banda. Algo muy importante son las polticas de seguridad en el servidor, as evitaremos posibles intrusiones en el sistema. Es fundamental que la configuracin de nuestro servidor Apache este optimizada al mximo. No dejar la configuracin que viene por defecto cuando instalamos Apache, cambios de contrasea y nmero de
NOMBRE: Roberto lvarez Granados MATRCULA: AL12501836 CARRERA: Ingeniera en Desarrollo de Software

Diseo y Arquitectura de Software


Unidad 2 Evidencia de Aprendizaje. Lenguaje descriptor y patrones de arquitectura de
software puerto de acceso son fundamentalmente acciones que debemos realizar para optimizar la seguridad.

Unidad 1. La libertad: facultad inherente a todo ser humano


Supuestos y dependencias.

Las copias de seguridad de la base de datos, pginas del servidor y configuraciones del servidor, se deben realizar de forma peridica.

Nuestra aplicacin CCCIMSA, se podr ejecutar en cualquier sistema operativo actual, basado en tecnologa Windows o Unix. Ya que vamos a utilizar para su desarrollo una aplicacin del tipo WAMP, Windows Apache MySQL PHP. De esta manera con una nica aplicacin nos facilitar el trabajo y configuracin de todos sus componentes, evitaremos las instalaciones mltiples que pueden resultar complicadas y a veces incompatibles entre ellas. Para poder efectuar las pruebas es necesario instalar Apache en la mquina funcionar como servidor. En nuestro caso el servidor tendr instalado Windows 7. El desarrollo de la aplicacin se realizar con HTML y PHP, para su edicin se utilizar Dreamweaver y NetBeans. Para la gestin de la base de datos se utilizar PhpMyAdmin. Nuestra aplicacin va a ser desarrollada bajo el sistema operativo Windows 7, la versin ultimate, sobre nuestro Windows instalaremos nuestro sistema WAMP, que incorporar Apache como servidor, la versin 2.2.12, MySQl versin 5.1.37 como gestor de base de datos, el cual incluye una interfaz amigable llamada PHPMyAmin versin 3.2.0.1 y como lenguaje de implementacin PHP versin 5.3.0. Para el desarrollo del interfaz web utilizaremos Dreamweaver que nos ayudar con el HTML, las hojas de estilo CSS y con PHP. Por ltimo NetBeans nos ayudar a programar en PHP. Los clientes que accedan a nuestra Web no ser necesario que dispongan de un sistema operativo concreto, el navegador deber estar actualizado a las ltimas versiones para evitar visualizaciones errneas o falta de plug-ins. Nuestra aplicacin va a ser desarrollada con una arquitectura de tres capas. Requisitos funcionales. Funcin de autentificacin de usuario (funcionalidad del usuario y administrador)
NOMBRE: Roberto lvarez Granados MATRCULA: AL12501836 CARRERA: Ingeniera en Desarrollo de Software

Diseo y Arquitectura de Software


Unidad 2 Evidencia de Aprendizaje. Lenguaje descriptor y patrones de arquitectura de
software Introduccin: Mediante la introduccin de usuario y contrasea, los usuarios registrados y el administrador accedern a la aplicacin y a sus caractersticas asociadas.

Unidad 1. La libertad: facultad inherente a todo ser humano

Entradas: Tanto para el campo de usuario y contrasea se requerirn cdigos alfanumricos. Proceso: Se realizar una comprobacin de que el usuario su contrasea coinciden dentro de nuestra base de datos, si su identificacin es correcta se mostrar una pantalla de bienvenida. En caso contrario aparecer una pantalla con un aviso de acceso incorrecto y se dar la posibilidad de registro. Salida: en el caso que la identificacin sea correcta nos llevar a una pantalla con un mensaje de bienvenida pudiendo acceder a las opciones especficas del usuario correspondiente. En caso negativo nos aparecer una pantalla de advertencia. Funciones de visualizacin de productos (funcionalidad de cualquier usuario) Introduccin: Una vez seleccionada una categora nos aparecer un listado de productos, el usuario selecciona uno de los productos de la lista para visualizarlos. Entradas: Categora y producto seleccionados. Proceso: Nuestra aplicacin abrir el correspondiente vnculo que hace referencia a las caractersticas y al producto seleccionado dentro de la categora, todas las caractersticas del producto sern recuperadas del correspondiente repositorio. Salida: En la pantalla del cliente aparecern todos los detalles del producto seleccionado. Funciones de registro de usuario (funcionalidad del usuario annimo) Introduccin: El nuevo usuario tendr acceso a un formulario donde deber introducir sus datos para darse de alta en nuestra aplicacin. Entradas: Se introducirn en los campos del formulario tanto datos personales como nombre de usuario, contrasea y correo electrnico. Proceso: La primera parte del registro realizar una comprobacin de todos los campos del formulario a rellenar, que no sean espacios en blanco, que los campos no estn vacos, comprobacin del correo y clave, la segunda parte realizar la
NOMBRE: Roberto lvarez Granados MATRCULA: AL12501836 CARRERA: Ingeniera en Desarrollo de Software

Diseo y Arquitectura de Software


Unidad 2 Evidencia de Aprendizaje. Lenguaje descriptor y patrones de arquitectura de
software verificacin del nombre de usuario, para evitar duplicidades, si existiera lanzaremos un mensaje de advertencia, para finalmente insertar una tupla, con estos datos en nuestra base de datos.

Unidad 1. La libertad: facultad inherente a todo ser humano


Funciones de compra (funcionalidad del usuario registrado)

Salida: Un mensaje diciendo que la insercin se ha efectuado con xito.

Introduccin: Desde esta funcin se podr realizar una compra de los productos seleccionados, siempre que el usuario este registrado. Entradas: El usuario selecciona una serie de productos del catlogo. Proceso: Nuestro usuario podr ir aadiendo productos a su carrito, ser en el momento final de la compra cuando se verificar que el usuario este dado de alta, en caso que no sea as le enviar a una pantalla para que pueda hacerlo o bien le permita registrarse. Salida: Aparecer en la pantalla del cliente un mensaje de pedido realizado de forma correcta, asignando un nmero de pedido y factura a su compra por ltimo terminar vaciando el carrito. Funcin de aadir nueva categora (funcionalidad el administrador) Introduccin: Nuestro administrador a travs de un formulario podr introducir nuevas categora dentro de nuestra aplicacin. Entradas: Una nueva lnea con el nombre de la categora. Proceso: Una nueva entrada en la base de datos correspondiente con la nueva categora. Salida: Una nueva pgina con un mensaje de xito. Funcin de borrar categora (funcionalidad el administrador) Introduccin: Mediante un formulario nuestro administrador podr eliminar categoras de nuestra aplicacin. Entradas: Debemos seleccionar la categora a eliminar. Proceso: Nuestro administrador deber seleccionar una categora a eliminar dentro del listado existente, para despus confirmar pulsando el botn eliminar.

NOMBRE: Roberto lvarez Granados MATRCULA: AL12501836 CARRERA: Ingeniera en Desarrollo de Software

Diseo y Arquitectura de Software


Unidad 2 Evidencia de Aprendizaje. Lenguaje descriptor y patrones de arquitectura de
software Salida: Mostraremos una pgina de xito si la operacin se ha podido llevar a cabo.

Unidad 1. La libertad: facultad inherente a todo ser humano


Introduccin: El administrador podr efectuar una consulta de todas las categoras. Entradas: Los valores para realizar la bsqueda. Proceso: se efectuar una consulta en la tabla correspondiente a las categoras. Salida: Se obtendr en pantalla un listado de todas las categoras actuales. Funcin aadir nuevo producto (funcionalidad el administrador) Introduccin: Igual que en las anteriores opciones, el administrador a travs de un formulario tendr la opcin de aadir un nuevo producto dentro de una categora del catlogo existente. Entradas: Todas las caractersticas del producto, nombre, marca, precio, descripcin Proceso: Una vez introducidos todos los datos, realizaremos la insercin dentro de nuestra base de datos de productos. Salida: Una pgina mostrando el xito si se ha podido realizar la operacin. Funcin borrar producto (funcionalidad el administrador) Introduccin: Nuestro administrador podr efectuar el borrado de producto de nuestra aplicacin. Entradas: Deberemos seleccionar el producto a eliminar. Proceso: Una vez seleccionada la opcin de borrar producto, deberemos seleccionar el producto a eliminar del listado existente. Finalmente confirmaremos la operacin con el botn de borrado. Salida: Nuevamente aparecer una pgina con un mensaje de operacin realizada de forma correcta si se ha podido llevar a cabo. Funcin listar productos (funcionalidad el administrador) Introduccin: El administrador podr efectuar una consulta de todos los productos que estn datos de alta.
NOMBRE: Roberto lvarez Granados MATRCULA: AL12501836 CARRERA: Ingeniera en Desarrollo de Software

Funcin listar categoras (funcionalidad el administrador)

Diseo y Arquitectura de Software


Unidad 2 Evidencia de Aprendizaje. Lenguaje descriptor y patrones de arquitectura de
software Entradas: Los valores para realizar la bsqueda. Proceso: Se efectuar una consulta en la tabla de productos.

Unidad 1. Salida: La libertad: facultad inherente todo humano Se obtendr en pantalla un listadoa de todosser los productos que se
dispongan en la tabla de productos. Funcin listar usuarios (funcionalidad el administrador) Introduccin: El administrador podr efectuar una consulta de todos los usuarios que estn registrados. Entradas: Los valores para realizar la bsqueda. Proceso: Se efectuar una consulta en la tabla correspondiente a los usuarios registrados. Salida: Se obtendr en pantalla un listado de todos los usuarios registrados. Funcin eliminar usuario (funcionalidad el administrador) Introduccin: Desde esta opcin podremos efectuar el borrado de un usuario registrado. Entradas: Los datos correspondientes al usuario que queremos eliminar. Proceso: Deberemos seleccionar del listado de socios el usuario que deseamos borrar, una vez seleccionado se eliminar la tupla de nuestra tabla correspondiente. Salida: Como es habitual lanzaremos una pgina con un mensaje de xito si se ha efectuado de forma correcta. Funcin listar pedidos (funcionalidad el administrador) Introduccin: Dentro de esta funcin se podr obtener un listado de pedidos realizados. Entradas: Los parmetros de bsqueda. Proceso: Nuestra aplicacin efectuar una consulta dentro de la tabla correspondiente. Salida: El listado con los pedidos realizados. Funcin cambiar estado pedido (funcionalidad el administrador)
NOMBRE: Roberto lvarez Granados MATRCULA: AL12501836 CARRERA: Ingeniera en Desarrollo de Software

Diseo y Arquitectura de Software


Unidad 2 Evidencia de Aprendizaje. Lenguaje descriptor y patrones de arquitectura de
software Introduccin: El administrador una vez comprobado el listado de pedidos, podr cambiar el estado de los pedidos.

Unidad 1. La libertad: facultad inherente a todo ser humano

Entradas: Informacin del estado de transferencias, mediante consulta manual de cuentas banco. Proceso: Una vez el administrador verifique que se han efectuado las transferencias bancarias, por el importe de los productos solicitados, listar los pedidos y realizar el cambio de estado a pendiente, preparado, agotado o servido. Salida: Volver a la pgina principal de administracin. Una arquitectura multicapa es un conjunto ordenado de subsistemas, cada uno de los cuales estn constituido en trminos de los que tiene por debajo y proporciona la base de la implementacin de aquellos que estn por encima de l. Los objetos de cada capa suelen ser independientes, aunque suelen haber dependencias entre objetos de distintas capas. Existe una relacin cliente/servidor entre las capas inferiores, que son las que proporcionan los servicios, y las capas superiores, los usuarios de estos servicios. La arquitectura en capas intenta hacer una discriminacin formal de los estilos o patrones arquitectnicos separando en piezas (o subsistemas) la solucin de software. El objetivo principal de la separacin de los distintos componentes del software (la lgica 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 desempearn dentro de la solucin completa. Cada capa de software en los modelos arquitectnicos es una parte que coopera para lograr los objetivos del propio sistema. La principal razn por la cual es ampliamente usado este tipo de patrn de arquitectura, es la facilidad de mantenimiento que ofrece al software que se aplica. Como los niveles se separan y no dependen directamente uno del otro, ni entre ellos, cuando viene un cambio se ataca sin mayor dificultad la capa especfica a la cual se deber hacer la correccin o mejora. El patrn arquitectnico en capas es ms una organizacin jerrquica, de manera que cada capa da servicio a la capa inmediatamente superior y consume los servicios de la capa dispuesta en el inmediato inferior. Esto es
NOMBRE: Roberto lvarez Granados MATRCULA: AL12501836 CARRERA: Ingeniera en Desarrollo de Software

10

Diseo y Arquitectura de Software


Unidad 2 Evidencia de Aprendizaje. Lenguaje descriptor y patrones de arquitectura de
software muy parecido a la organizacin que se sigue en distintos mbitos de la vida diaria no slo del software, y por eso es otra razn por la cual su comprensin es tan fcil y natural para cualquier persona.

Unidad 1. La libertad: facultad inherente a todo ser humano

La manera de organizarlo tambin es igual que una estructura jerrquica (por niveles): las capas inferiores estn ocultas para todos (por cualquier razn que el lector desee considerar), excepto para las capas que hacen consumo de sus servicios. En trminos prcticos, y para clarificar: una capa solo sabe de su vecino superior e inferior. En otro tipo de sistemas las capas pueden ser parcialmente visibles. Cuando se transportan estos conceptos a la vida diaria, una capa es una entidad compleja formada por varios paquetes o subsistemas; en casos de extrema refinacin, una capa puede estar formada por otras capas. Su uso est ampliamente extendido en los sistemas de software que cualquier persona aplica en sus labores de la vida diaria. Como en todo sistema (en su definicin ms genrica) los componentes deben tener un canal bien establecido de comunicacin, en este caso los componentes del sistema son las capas. La manera en que se comunican las capas son los conectores, y la forma de comunicacin est definido por los protocolos que determinan la interaccin entre ellas. La sensacin de pertenencia de un nivel superior con otro inferior se da de manera natural en este patrn arquitectnico; su representacin suele hacerse con conectores y se entiende que la relacin es de arriba abajo y de abajo a arriba. Inclusive es tan natural su uso y representacin que se puede representar con crculos concntricos denotando jerarqua entre sus elementos y sus pertenencias. El diseo de nuestra aplicacin se basa en una arquitectura multicapa, ms concretamente en una arquitectura de tres capas:

Capa de presentacin, tambin conocida como interfaz grfica, se encarga de la presentacin de los resultados al usuario y la recogida de informacin del usuario al sistema. Capa de negocio o lgica de la aplicacin, proporciona la funcionalidad de la aplicacin. Es el encargado de realizar todas las operaciones a nivel aplicacin. Capa de datos o persistencia, este nivel es el encargado de almacenar toda la informacin de nuestra aplicacin, adems de asegurar el acceso a la informacin de una forma controlada y segura. Este nivel lo forman la base de datos y el software de gestin de base de datos.

NOMBRE: Roberto lvarez Granados MATRCULA: AL12501836 CARRERA: Ingeniera en Desarrollo de Software

11

Diseo y Arquitectura de Software


Unidad 2 Evidencia de Aprendizaje. Lenguaje descriptor y patrones de arquitectura de
software

Unidad 1. La libertad: facultad inherente a todo ser humano

NOMBRE: Roberto lvarez Granados MATRCULA: AL12501836 CARRERA: Ingeniera en Desarrollo de Software

12

Diseo y Arquitectura de Software


Unidad 2 Evidencia de Aprendizaje. Lenguaje descriptor y patrones de arquitectura de
software

Unidad 1. La libertad: facultad inherente a todo ser humano

NOMBRE: Roberto lvarez Granados MATRCULA: AL12501836 CARRERA: Ingeniera en Desarrollo de Software

13

You might also like