Está en la página 1de 46

AP4-AA2-Ev3-Anlisis e interpretacin de textos en idioma ingls

TOMAS DE JESUS SARABIA MELENDEZ

SENA

ANALISIS Y DESARROLLO DE SISTEMAS DE INFORMACION (1016987)

RUTA (606153)

2016

AP4-AA2-Ev3-Anlisis e interpretacin de textos en idioma ingls


TOMAS DE JESUS SARABIA MELENDEZ

INGRID CAROLINA ULLOA BRAVO

Tutor

SENA

ANALISIS Y DESARROLLO DE SISTEMAS DE INFORMACION (1016987)

RUTA (606153)

2016
Plantilla Diseo del Sistema

1. Introduccin

Para empezar se explicar la finalidad, en qu consiste y la estructura de


elaboracin de este proyecto.

El objetivo del proyecto, a grandes rasgos, es la implementacin de una


aplicacin web, que gestione un restaurante desde el punto de vista de los
usuarios gerente, camarero y cliente.
No obstante, el objetivo ms concreto es llevar a cabo la implementacin
utilizando un concepto innovador. Este concepto consiste en que el cliente
tenga acceso a dicha aplicacin desde su propia mesa y pueda seleccionar los
productos que desee directamente desde sta, sin tener que necesitar al
camarero para realizar su pedido.
A todo esto debemos aadir que la aplicacin debe permitir interactuar con ella
a los usuarios de una manera gil y sencilla, dentro de las posibilidades de su
funcionalidad.

1.1. Propsito del sistema.

Este sistema permitir a los clientes realizar reservas y pedidos sobre la carta,
y a los meseros conocer el estado de cada mesa y saber los platos a servir en
cada momento.
El principal objetivo de este software es permitir a los clientes de un
restaurante obtener una mejor atencin y a los camareros facilitarles y
organizarles el trabajo.

El producto a desarrollar es un sitio web, orientado a la realizacin de pedidos


en un restaurante mediante un terminal, de forma que los meseros tengan un
control individualizado, a travs de la aplicacin, de lo que se ha pedido y
servido en cada mesa.

Entre las ventajas de la implantacin de este sistema destacan entre otras que
los clientes no debern sufrir esperas para realizar su pedido (en cuanto
lleguen podrn comenzar a pedir y cuando confirmen el pedido podrn pagar
con la tarjeta si lo desean), lo que agilizar el servicio y permitir conseguir una
mayor satisfaccin del cliente.

1.2. Objetivos del diseo

El producto software no depende de ningn sistema mayor, es independiente.


Podemos clasificarlas en dos partes diferenciadas

Nuestra aplicacin visualizar informacin relacionada con el restaurante, los


clientes y los pedidos.
a) Funcin de gestin de la informacin
Consulta de los productos existentes y sus precios.
Consulta de los mens de oferta.
Envo de comentarios y sugerencias.
Recordatorio de pedidos anteriores realizados por el cliente
Visualizar los pedidos (camareros). Los camareros podrn ver en todo
momento la descripcin de los pedidos realizados de sus mesas, as como
el estado en el que se encuentran: servido o sin servir.
Visualizacin de pedidos (clientes). El cliente podr acceder a un listado con
los pedidos realizados, los productos que componen cada pedido y el
estado (servido o sin servir) de cada producto del mismo.

Funciones de mantenimiento/actualizacin de la base de datos

a) Funcin de control de usuarios

Registro e identificacin de usuarios


Asignar clientes a una mesa. Los camareros sern los encargados de
comprobar qu mesas hay libres en el restaurante y asignar a los clientes a
una mesa libre.

b) Funcin de gestin de los productos

Aadir productos. Se podrn aadir productos al restaurante.


Gestionar productos. Se podrn modificar y eliminar productos existentes.

c) Funcin de gestin de ofertas

Crear ofertas. El administrador podr crear nuevos mens de oferta


compuestos por los productos que elija disponibles en el restaurante.
Gestionar las ofertas existentes. Se podrn modificar el precio de las ofertas
as como los productos que las componen. Tambin se podrn eliminar.

d) Funcin de gestin de pedidos

Servir pedidos. Los camareros podrn marcar un producto como servido.

e) Funcin de pedidos

Realizacin de pedidos. El cliente podr realizar pedidos, para ello


seleccionar los productos que le interesen y lo confirmar cuando lo desee.
Modificacin de pedidos. El cliente podr modificar los productos del pedido
mientras no lo haya confirmado. En caso de ya haber confirmado sera el
camarero el que tendra que modificarle el pedido.

2.2.3 Caractersticas del usuario

Tipos de usuario:
Clientes:

Identificados. Son los usuarios que disponen de una vista


personalizada. Podrn realizar y modificar pedidos, consultar su historial
de los mismos y realizar reservas de mesas va web.

Invitados. Son los usuarios que slo pueden consultar el catlogo de


productos y precios del restaurante, as como informacin general del
mismo.

Personal del restaurante:

Gerente. Podr modificar precios, aadir y eliminar tipos de producto y


productos, as como gestionar empleados y crear, modificar y eliminar
mens de oferta.

Mesero. Son los encargados de asignar mesas a los clientes y atender


los pedidos. Cada producto que sirvan lo debern marcar como
servido. Tambin podrn excepcionalmente modificar pedidos de los
clientes en caso de que estos hayan confirmado algn pedido por error o
algn incidente similar.

La intencin es que cualquier usuario pueda utilizar esta aplicacin


software, por ello, es fundamental que sea usable y sencilla. Una
prdida de sencillez podra provocar prdida de clientes por la
incomodidad y/o dificultad para realizar sus pedidos.

1.3. Definiciones, acrnimos y abreviaturas

ERS. Documento de Especificacin de Requisitos Software.

Internet. Red de redes a escala mundial con millones de computadores


interconectados entre ellos mediante el conjunto de protocolos TCP/IP.
Tambin se utiliza este nombre para designar cualquier red de redes que
utilice las mismas tecnologas que Internet.

Web. El web o WWW (acrnimo en ingls de World Wide Web, gran


telaraa mundial) es una red de pginas escritas en hipertexto, con el
lenguaje de marcado HTML, y conectadas entre s. Para acceder la nica
herramienta indispensable es un navegador web.

Software. Programas, aplicaciones.

Aplicacin Web. Aplicacin que los usuarios utilizan desde un servidor web
a travs de Internet o una intranet. La facilidad para actualizar y mantener
aplicaciones sin la necesidad de instalar programas en los millones de
clientes potenciales es una de las principales causas de su popularidad.

Usuario. Persona que despus de haberse identificado hace uso de las


funciones de la aplicacin.
Sistema. Conjunto de partes interrelacionadas, hardware, software y de
recurso humano.

Apache. Es un software libre, servidor HTTP de cdigo abierto que


implementa el protocolo HTTP/1.1.

Cdigo abierto. Trmino usado para referirse a programas que se ofrecen


con total libertad de modificacin, uso y distribucin bajo la regla implcita de
no modificar dichas libertades hacia el futuro.

Protocolo. Conjunto de reglas que especifican el intercambio de datos u


rdenes durante la comunicacin entre sistemas.

Servidor web. Es un programa que se ejecuta continuamente en un


ordenador mantenindose a la espera de peticiones por parte de un cliente
(un navegador web) y que responde a estas peticiones adecuadamente,
mediante una pgina web que se exhibir en el navegador o mostrando el
respectivo mensaje si se detect algn error.

MySQL. Sistema de gestin de base de datos.

1.4. Referencias

Gua del IEEE std. 830 1998 para la especificacin de requisitos del Software.

2. Representacin de la arquitectura.

2.1 Metas y restricciones de la Arquitectura

En el desarrollo de la aplicacin se har uso de XHTML para tener la certeza de


una mayor compatibilidad con los navegadores. Se implementar siguiendo la
versin XHTML 1.0 transicional junto con hojas de estilo CSS 2.1 para optimizar
posibles cambios futuros en la esttica de la aplicacin.

Limitaciones hardware

Para que la aplicacin funcione correctamente y que los tiempos de espera sean
aceptables, es recomendable una buena conexin a Internet. En cuanto a la
instalacin del servidor web con soporte de ASP.NET y el de la base de datos, se
podr realizar en un computador de prestaciones medias, pero para soportar una
mayor carga de usuarios es recomendable un ordenador de mayores prestaciones.

3. Vista lgica

La vista lgica permite visualizar el sistema en capas abstractas. La estructura que


se presenta aqu, es la forma en que se plantea resolver los requerimientos del
sistema. Para esto, se engloban a las clases del sistema en capas, las cuales
tienen distintos objetivos y formas de interactuar entre ellas. As, esta vista permite
al desarrollador y a los clientes tener una idea clara de cmo estar organizado el
sistema a desarrollar desde un punto de vista de alto nivel.

En la figura se muestra la vista lgica. En esta lo que se quiere presentar es


que la arquitectura estar compuesta por tres capas principalmente: una de
presentacin o interfaz grfica, otra con la lgica de la aplicacin y la ltima con el
manejo de los recursos. A continuacin se detalla el comportamiento de cada capa:

Modelo
En esta capa, se representa la informacin sobre la cual el sistema operar.
Para este sistema, recordando la figura 2.6 "Diagrama de Clases", las
entidades como Quejas, Comentarios, Usuarios, Solicitudes, entre otros,
seran accedidas por esta capa para poder manejar su informacin.
Vista
Esta capa se encarga de ilustrar los elementos de la capa de modelo en
formas adecuadas para que el usuario pueda interactuar con la informacin
del sistema. En este sistema, lo usual ser renderizar pginas HTML con
informacin cargada dinmicamente por cdigo.

Controlador
Esta capa define el comportamiento del sistema. Esta se encarga de
procesar y responder a eventos que los usuarios realizan, por lo que se
encarga de modificar los modelos y vistas.

El sistema se comportar de la siguiente forma:

1. Los usuarios podrn interactuar con este a travs de las interfaces.


2. Los controladores manejarn esos eventos que provienen de las interfaces.
3. Los controladores accedern al modelo y lo modificarn dependiendo de la
accin que el usuario haya realizado.
4. Los modelos notificarn a las vistas los cambios que se hayan realizado, y
tambin podrn ser consultados por las vistas directamente.
5. La interfaz espera hasta que el usuario vuelva a realizar un evento sobre este.

3.1 Identificacin de Subsistemas


Entre los ocho paquetes de navegacin del usuario administrador destacan entre el
resto los contextos secuenciales Detalles Tipo de Producto y Detalles Men. Se ha
recurrido a esta tcnica ante la necesidad de resolver los siguientes problemas:
Detalles Tipo de Producto. Se queran mostrar los datos del tipo de producto
seleccionado, los productos que eran de ese tipo y, adems, el resto de productos
que no lo eran (que fueran de otro o que no tuvieran tipo asignado). En esto ltimo
reside el problema, ya que, la vista Producto a mostrar tena que ser independiente
del tipo de producto seleccionado.

Detalles Men. Sucede algo parecido. Es necesario mostrar informacin del men
seleccionado, y, adems, todos los productos que no forman parte del men, con la
posibilidad de filtrarlos por tipo de producto. De nuevo tenemos que mostrar
informacin independiente del men seleccionado.

En este mapa se puede apreciar la importancia para el usuario mesero de los


pedidos, ya que en relacin a estos se consigue el camino de mxima longitud. De
hecho, el contexto de mayor importancia es Detalles Mesa-Pedido, est muy
relacionado porque muestra informacin muy diversa.
Se puede decir que el mapa est algo desequilibrado, puesto que muestra mucha
informacin pero de importancia muy diferente. As, los contextos ms importantes
son los relacionados con Estado Mesas y Pedidos, y, por lo tanto, los ms
completos. Mientras, los contextos Clientes, e Historial de Pedidos, no tienen tanto
peso en el mapa y muestran informacin de una manera ms sencilla.
La complejidad de los contextos navegaciones del usuario mesero es bastante
superior a la del usuario administrador , as que, en este caso s vamos a proceder
a la explicacin de cada uno de los mismos.
Estado Mesas. El objetivo es mostrar el estado de las mesas del restaurante, si
estn libres, ocupadas o reservadas. Para mostrar si una mesa est libre o
ocupada recuperamos el atributo libre de la clase Mesa. Recuperamos el
atributo fecha de la clase Reserva para saber si una mesa tiene reservas
asignadas. En el caso de tener un pedido asignado se recupera el camarero que
est al cargo de dicho pedido en esa mesa.
Detalles Mesa-Pedido. Este contexto es el que ms informacin muestra. Se
recupera informacin de la mesa, del pedido, del cliente y del camarero.

Tambin tenemos tres relaciones de contexto a Consumiciones, Detalles Camarero


y Detalles Cliente.
Consumo. Se muestran las consumiciones que estn asociadas a un pedido. Para
ello recuperamos informacin de la consumicin y del tem de consumicin, as
como el precio del pedido. Tenemos una relacin de contexto con Detalles
ItemConsumo.
Detalles Cliente. Muestra informacin ampliada del cliente. Destacan las
operaciones de cambio de contrasea y de modificacin de los datos del mismo.
Tenemos tambin una relacin de contexto a travs del botn Volver.
Detalles Camarero. Muestra informacin ampliada del camarero. Tenemos una
relacin de contexto a travs del botn Volver.
Detalles ItemConsumo. Este contexto visualiza informacin extra del tem de
consumo. En funcin del tipo de tem se presentan por pantalla datos del men
(productos del mismo y cantidad de cada uno) o datos del producto (nombre y tipo
de producto).
Pedidos. Se visualizan los pedidos que estn activos, junto con la mesa y el
camarero asignados. Existe una relacin de contexto en Mesa que indica
navegabilidad a Detalles Mesa-Pedido a travs del botn Detalles de Pedido.
Clientes. Se muestra la informacin ms relevante del cliente. Destacan la
operacin de eliminar cliente y la relacin de contexto a Detalles de cliente a travs
de Detalles Cliente.
Historial de pedidos. Este contexto muestra los informacin de los pedidos que ya
no estn activos (han sido pagados ya), para un rango de fechas seleccionadas.
Define dos relaciones de dependencia contextual con Mesa y Mesero para
recuperar informacin extra, y una relacin de contexto, recproca, en Pedido, que
define navegabilidad a Detalles de Pedido a travs del enlace Detalles Pedido.
Detalles de pedido. Visualiza datos extra del pedido seleccionado, mediante
relaciones de dependencia contextual con Mesa, Mesero, Consumo e
ItemConsumo. Tambin tiene una relacin que define navegabilidad recproca en
Pedido a Historial de pedidos a travs del enlace Volver.
El mapa navegacional del usuario cliente, con tal slo dos contextos de exploracin
y uno de secuencia, se caracteriza por su sencillez, ya que el usuario cliente est
relacionado con los usuarios cliente normal y cliente web, que son especializados
del primero, y que tienen funcionalidad extra.
Historial de pedidos. Este contexto muestra los informacin de los pedidos que ya
no estn activos (han sido pagados ya), para el cliente conectado. Define dos
relaciones de dependencia contextual con Mesa y mesero para recuperar
informacin extra, y una relacin de contexto, recproca, en Pedido, que define
navegabilidad a Detalles de Pedido a travs del enlace Detalles pedido.

Detalles de pedido. Visualiza datos extra del pedido seleccionado, mediante


relaciones de dependencia contextual con Mesa, meseros, Consumo e
ItemConsumo.
Mis datos personales. Muestra informacin personal del cliente autenticado en la
aplicacin y permite realizar las operaciones: modificar_datos() y
cambiar_contrasea().

Reservas. Este contexto muestra un listado de las reservas del cliente autenticado
en el sistema, tan slo tiene una relacin de dependencia contextual con Mesa,
para recuperar el nmero de la misma, y permite realizar las operaciones creacin
y cancelacin de una reserva.

4. Vista de datos
Tabla Usuario

Nombre Tipo Descripcin

idUsuario Int Identificador de la tabla.

Usuario Varchar(20) Usuario de acceso a la aplicacin.

Clave Varchar(20) Contrasea de acceso asociado al usuario.

Tipo de usuario:

G. Gerente
Tipousuari
o char(1)

C. Cliente

M. Mesero

Tabla Cliente

Nombre Tipo Descripcin

idCliente int Identificador de la tabla.

Varchar
nombre (45) Nombre del cliente.

Varchar
telefono (20) Telfono de contacto del cliente.

Varchar
Apellidos (45) Apellido del cliente.
Varchar
email (20) Direccin de correo del cliente.

Usuario_IdUsuari
o int Clave ajena al atributo id de la tabla usuario.

Tabla Pedido

Nombre Tipo Descripcin

idPedido int Identificador de la tabla.

fecha datetime Fecha de realizacin del pedido.

precio decimal Precio total del pedido.

Indica si el pedido ha sido pagado por el


cliente.

pagado tinyint

0: Pedido sin pagar.

1: Pedido pagado.
Indica si el pedido ha sido confirmado por el

cliente y ya pueden comenzar a servirle:

confirmado tinyint

0: Pedido sin confirmar.

1: Pedido confirmado.
Indica si todos los consumos del pedido han
sido ya servidos:

servido tinyint

0: Quedan productos por servir.

1: Todo el pedido est servido.

Indica si el pedido est todava abierto, an no


ha

pasado al histrico:

estado Tinyint

0: Pedido inactivo.
1: Pedido activo.

Cliente_idClient
e Int Clave ajena a la tabla cliente.

Mesa_idMesa int Clave ajena a la tabla mesa.

Mesero_idMese
ro int Clave ajena a la tabla mesero.

Tabla Mesa

Nombre Tipo Descripcin

IdMesa int Identificador de la tabla.

numero int Nmero de la mesa.

Indica si la mesa est libre en el momento


actual:

libre tinyint 0: Mesa libre.


1: Mesa ocupada.

Mximo nmero de personas recomendado


para la

puestos int
Mesa
.

Nmero de comensales que hay en el momento


cant_comensal
es int
Actual en la mesa.

Tabla Mesero

Nombre Tipo Descripcin

idMesero int Identificador de la tabla.

Varchar(
nombre 45) Nombre del camarero.

Varchar(
apellido1 45) Primer apellido del camarero.

Varchar(
foto 45) Fotografa en la que aparece el camarero.
Tabla Reserva

Nombre Tipo Descripcin

idReserva int Identificador de la tabla.

fecha datetime Fecha de realizacin de la reserva.

estado tinyint Indica si la reserva ya ha sido efectuada y


finalizad
a:

0: Reserva por finalizar.

1: Reserva finalizada.

Cliente_idClien
te int Clave ajena a la tabla cliente.

Mesa_idMesa int Clave ajena a la tabla mesa.

Tabla
comentario

Nombre Tipo Descripcin

idComentari
o int Identificador de la tabla.

Direccin de correo desde la cual se recibe el


Varchar(4
desde 5)
Comentario.

Varchar(4
asunto 5) Explicacin breve del comentario.

Varchar(2
Observaciones 55) Comentario del usuario.

fecha datetime Fecha de envo del comentario.

Tabla Consumo

Nombre Tipo Descripcin

idConsumo int Identificador de la tabla.


Cantidad de tems de consumo que

cantidad int
forman la consumicin.

Precio total de la consumicin


(cantidad

precio decimal * precio del itemconsumo).

Indica la cantidad de consumiciones

servida int
servidas.

Pedido_idPedi
do int Clave ajena a la tabla pedido.

Itemconsumo-
IdItemconsumo int Clave ajena a la tabla itemconsumo.
Tabla Itemconsumo

Nombre Tipo Descripcin

idItemConsu
mo int Identificador de la tabla.

Tipo del tem de consumicin:

tipo char

P: Producto

M: Men

nombre Varchar(45) Nombre del tem de consumo.

descripcion Varchar(45) Descripcin del tem de consumo.

precio decimal Precio del tem de consumo.

Tabla Men
Nombr
e Tipo Descripcin

idMenu int Identificador de la tabla.

ItemConsumo_IdInten
consumo int Clave ajena a la tabla itemconsumo.
Tabla Producto

Nombre Tipo Descripcin

idProducto int Identificador de la tabla.

TipoProducto_idTipo
Producto int Clave ajena a la tabla tipoproducto.

ItemConsumo_IdInt
enconsumo int Clave ajena a la tabla itemconsumo.

Tabla Productosmenu

Nombre Tipo Descripcin

idProductosMenu int Identificador de la tabla.

Cantidad de cada producto en el


cantidad int men.

Producto_idProducto int Clave ajena a la tabla producto.

Menu_idMenu int Clave ajena a la tabla men.


Tabla Tipoproducto

Nombre Tipo Descripcin

idTipoProducto int Identificador de la tabla.

nombre Varchar (45) Nombre del tipo de producto.


4.1 Modelo de datos
4.2 Interfaces de Usuario.

Interfaces de usuario
Invitado. Tendr acceso a consultar informacin general y productos del
restaurante as como enviar comentarios.
Cliente. Tendr el mismo acceso que el usuario invitado y adems
podr realizar reservas de mesas va web, consultar sus pedidos
anteriores, realizar y modificar pedidos en el restaurante.
Camarero. Podr ver las mesas que hay libres, asignarlas a clientes y
ver el estado de los pedidos de todas las mesas, modificar pedidos y
marcarlos como servidos.
Gerente. Podr realizar tareas de gestin: aadir, modificar y eliminar
tipos de producto, productos, mens y empleados.

Interfaces hardware
Para poder utilizar la aplicacin, el usuario necesitar un dispositivo que
tenga instalado un navegador web; no tendr importancia la plataforma
utilizada.
Tambin ser necesario una conexin a Internet, ya sea mediante un
mdem de marcado, tarjeta Ethernet, inalmbrica, etc.
Interfaces software

Como se ha sealado en el punto anterior, en el caso del cliente


solamente se necesita un navegador web. Por tanto, el sistema
operativo utilizado ser cualquiera sobre el que corra un navegador.

En el lado del servidor, ser necesario tener instalado un servidor web,


en nuestro caso Apache y un servidor de bases de datos, MySQL.
Interfaces de comunicaciones

Los usuarios tendrn que acceder a Internet para poder utilizar la


aplicacin. Para ello tendrn instalado el protocolo TCP/IP, y tambin el
protocolo HTTP, que funciona por encima del TCP y sirve para poder
realizar las conexiones.

4.3 Mapa de Navegacin

As que para cada usuario vamos a comentar su interfaz y su navegabilidad en el


sistema mediante mapas navegacionales.

Modelo navegacional annimo

Todos los contextos a los que pueden acceder los usuarios annimos son de
exploracin, como se puede ver su mapa navegacional es muy sencillo, con slo
un nivel. Ninguno de los contextos tiene acceso a la base de datos as que
omitimos el apartado de Contextos navegacionales.

Modelo navegacional gerente

Se trata de un mapa navegacional sencillo, ya que el usuario de tipo gerente es el


encargado de realizar tareas de administracin: creacin y modificacin de
productos, empleados, etc., acciones relativamente sencillas, es por esto que la
longitud mxima de los caminos de navegacin es uno. Se ha decidido que desde
cada contexto de secuencia se pueda volver directamente al contexto de
exploracin desde el que lleg, sin necesidad de utilizar los enlaces de exploracin
para proporcionar una mayor agilidad, imprescindible en tareas de administracin.

Modelo navegacional camarero o Mesero

En este mapa navegacional se puede apreciar la importancia para el usuario


camarero de los pedidos, ya que en relacin a estos se consigue el camino de
mxima longitud (3). De hecho, el contexto de mayor importancia es Detalles
Mesa-Pedido, est muy relacionado porque muestra informacin muy diversa.
Se puede decir que el mapa est algo desequilibrado, puesto que muestra mucha
informacin pero de importancia muy diferente. As, los contextos ms importantes
son los relacionados con Estado Mesas y Pedidos, y, por lo tanto, los ms
completos. Mientras, los contextos Clientes, Comentarios e Historial de Pedidos,
no tienen tanto peso en el mapa y muestran informacin de una manera ms
sencilla.

Modelo navegacional cliente


El mapa navegacional del usuario cliente, con tal slo dos contextos de
exploracin y uno de secuencia, se caracteriza por su sencillez, ya que el
usuario cliente est relacionado con los usuarios cliente normal y cliente
web, que son especializados de el primero, y que tienen funcionalidad extra.
Precisamente esta sencillez de la que hablamos es uno de los objetivos de
tener en nuestro diagrama de usuarios un usuario virtual (sin permiso).

Modelo navegacional cliente normal


De este mapa navegacional podemos destacar lo mismo que del mapa
navegacional anterior, el del usuario virtual Cliente. Se trata de un mapa
navegacional de un usuario especializado, por lo tanto, aunque el resultado
es un mapa sencillo, no implica que la funcionalidad del usuario sea
reducida, ya que, hereda la del usuario padre.

Modelo navegacional cliente web

La explicacin es la misma que para el cliente estndar (ver 3.3.5.1), si bien


este mapa todava es ms sencillo, ya que la funcionalidad del cliente web
prcticamente se reduce a realizar reservas
5. Vista de seguridad
La aplicacin estra preparada para que clientes y empleados se autentiquen en
ella, si el puesto de usuario es de cliente veremos que en la interfaz aparece la
Zona clientes mientras que si el puesto es de empleado (gerente o mesero) nos
aparece Zona empleados. Adems, si un usuario accede a la aplicacin web
desde fuera del restaurante visualizar la Zona clientes.

Resulta importante destacar que el acceso a la base de datos se trata en un


proyecto distinto al proyecto web. Se ha utilizado un proyecto de biblioteca de
clases para almacenar los archivos que realizan operaciones sobre la base de
datos pensando en las siguientes ventajas:
Tener un cdigo ms limpio y claro en la aplicacin web.

Normalmente el cdigo para realizar las consultas bsicas sobre la base de


datos es muy similar entre tablas, as que copiando y pegando el cdigo y
cambiando lo que sea necesario ganamos mucho tiempo. Lo ideal para evitar
copiar y pegar sera implementar un programa que te generara por cada tabla un
archivo independiente con las operaciones sobre la base de datos o bien utilizar
un framework que ya lo haga.

La aplicacin web se adaptar mucho ms fcil a futuros cambios.

As que tenemos una biblioteca de clases formada por tantos ficheros como
tablas hay en la base de datos, cada fichero con las operaciones necesarias
para la aplicacin web. Lo podemos ver en la siguiente imagen donde
aparece el explorador de soluciones del proyecto:
6. Vista de Implementacin

Se considera que las tecnologas adecuadas para realizar el Proyecto son las
siguientes: Base de Datos Como servidor de Bases de Datos se usar MySQL,
ya que est ampliamente extendido, es de cdigo abierto y fcil de administrar.
Adems est muy bien integrado con PHP que es el lenguaje de programacin
elegido para el lado del servidor.

Servidor Web Como servidor Web se elige Apache HTML que es de libre
distribucin y es tambin muy ampliamente utilizado.
Lenguaje de Programacin Para programar la aplicacin en el servidor se elige
PHP, que es un lenguaje sencillo, potente, desarrollado precisamente para
pginas Web dinmicas, con interfaz sencilla para acceder a Base de Datos
(muy integrado con MySQL) y que adems es de libre distribucin.
Como alternativa interesante al uso de PHP se tiene el lenguaje Perl, pero no
se considera su utilizacin debido a que el cdigo no se integra en el fichero
HTML sino que est en ficheros separados, lo que dificultara el desarrollo y el
mantenimiento
6.1 Herramientas de Desarrollo e implementacin

Nuestra aplicacin ser construida sobre tres servidores, dos de cdigo abierto: un
servidor HTTP Apache y un servidor de base de datos MySQL, y un servidor de
correo Mercury que no es libre ni de cdigo abierto, pero que s dispone de una
versin gratuita siempre que su uso sea privado y sin fines comerciales, que es
nuestro caso.
Utilizamos el lenguaje ASP.NET (con VISUAL BASIC), AJAX y javascript para
crear pginas web dinmicas. Resulta importante destacar tambin la utilizacin
del protocolo HTTPS, que permite enviar informacin entre pginas de manera
segura mediante cifrado SSL, as que cuando nos autentificamos en la aplicacin
web ya sea como cliente, camarero o gerente las pginas se muestran utilizando
este protocolo seguro. A continuacin describiremos dichos componentes, as
como tambin las tecnologas en las que se sustentan.
Xampp. Es un servidor independiente de plataforma, software libre, que
consiste principalmente en la base de datos MySQL, el servidor Web Apache y los
intrpretes para lenguajes de script: PHP y Perl. No obstante, nosotros lo hemos
utilizado con el lenguaje ASP.NET, gracias al mdulo modaspnet. Incluye mdulos
como OpenSSL y phpMyAdmin para la gestin de las bases de datos.

Servidor HTTP Apache. Servidor web HTTP de cdigo abierto, multiplataforma,


que implementa el protocolo HTTP/1.1 y la nocin de sitio virtual. Entre otras
ventajas destacan que es modular, extensible y que es utilizado por una gran
comunidad de usuarios, por lo que es fcil

MySQL. Es uno de los SGBD ms empleados del mercado para aplicaciones web
debido a su sencillez. Es relacional, multihilo y multiusuario. Pertenece a Sun
Microsystems.

ASP.NET. ASP.NET es un conjunto de tecnologas de desarrollo de aplicaciones


web comercializado por Microsoft. Es usado para construir sitios web domsticos,
aplicaciones web y servicios XML. Forma parte de la plataforma .NET de Microsoft
y es la tecnologa sucesora de la tecnologa Active Server Pages (ASP).

AJAX. Acrnimo de Asynchronous JavaScript And XML (JavaScript asncrono y


XML), es una tcnica de desarrollo web para crear aplicaciones interactivas o RIA
(Rich Internet Applications). Estas aplicaciones se ejecutan en el cliente, es decir,
en el navegador de los usuarios mientras se mantiene la
comunicacin asncrona con el servidor en segundo plano. De esta forma es
posible realizar cambios sobre las pginas sin necesidad de recargarlas, lo que
significa aumentar la interactividad, velocidad y usabilidad en las aplicaciones.

comunicacin asncrona con el servidor en segundo plano. De esta forma es


posible realizar cambios sobre las pginas sin necesidad de recargarlas, lo que
significa aumentar la interactividad, velocidad y usabilidad en las aplicaciones.
CSS. Es un mecanismo simple que describe cmo se va a mostrar un
63
documento en la pantalla, o cmo se va a imprimir, o incluso cmo va a ser
pronunciada la informacin presente en ese documento a travs de un dispositivo
de lectura. Esta forma de descripcin de estilos ofrece a los desarrolladores el
control total sobre estilo y formato de sus documentos.
CSS se utiliza para dar estilo a documentos HTML y XML, separando el contenido
de la presentacin. Los Estilos definen la forma de mostrar los elementos HTML y
XML. CSS permite a los desarrolladores Web controlar el estilo y el formato de
mltiples pginas Web al mismo tiempo. Cualquier cambio en el estilo marcado
para un elemento en la CSS afectar a todas las pginas vinculadas a esa CSS en
las que aparezca ese elemento.
CSS funciona a base de reglas, es decir, declaraciones sobre el estilo de uno o
ms elementos. Las hojas de estilo estn compuestas por una o ms de esas
reglas aplicadas a un documento HTML o XML. La regla tiene dos partes: un
selector y la declaracin. A su vez la declaracin est compuesta por una
propiedad y el valor que se le asigne.
HTTP. El protocolo de transferencia de hipertexto (HTTP, HyperText Transfer
Protocol) es el protocolo usado en cada transaccin de la Web (WWW). El
hipertexto es el contenido de las pginas web, y el protocolo de transferencia es el
sistema mediante el cual se envan las peticiones de acceder a una pgina web, y
la respuesta de esa web, remitiendo la informacin que se ver en pantalla.
Tambin sirve el protocolo para enviar informacin adicional en ambos sentidos,
como formularios con mensajes y otros similares.

HTTP es un protocolo sin estado, es decir, que no guarda ninguna informacin


sobre conexiones anteriores. Est basado en el modelo cliente-servidor: Un cliente
HTTP abre una conexin y realiza su solicitud al servidor, el cual responde
generalmente el recurso solicitado y la conexin se cierra. Al finalizar la
transaccin todos los datos se pierden.
Por esto se popularizaron las cookies, que son pequeos ficheros guardados en el
propio ordenador que puede leer un sitio web al establecer conexin con l, y de
esta forma reconocer a un visitante que ya estuvo en ese sitio anteriormente.
Gracias a esta identificacin, el sitio web puede almacenar gran nmero de
informacin sobre cada visitante, ofrecindole as un mejor servicio.
La versin actual de HTTP es la 1.1, y su especificacin est en el documento
RFC-2616. HTTP dispone de una variante cifrada mediante SSL llamada HTTPS.
HTTPS. El protocolo HTTPS es la versin segura del protocolo HTTP. El
sistema HTTPS utiliza un cifrado basado en las Secure Socket Layers (SSL) para
crear un canal cifrado (cuyo nivel de cifrado depende del servidor
64
remoto y del navegador utilizado por el cliente) ms apropiado para el trfico de
informacin sensible que el protocolo HTTP. Cabe mencionar que el uso del
protocolo HTTPS no impide que se pueda utilizar HTTP. Es aqu, cuando nuestro
navegador nos advertir sobre la carga de elementos no seguros (HTTP), estando
conectados a un entorno seguro (HTTPS).

Los protocolos https son utilizados por navegadores como: Safari (navegador),
Internet Explorer, Mozilla Firefox, Opera,... entre otros.
Es utilizado principalmente por entidades bancarias, tiendas en lnea, y cualquier
tipo de servicio que requiera el envo de datos personales o contraseas.
El puerto estndar para este protocolo es el 443.
Para conocer si una pgina web que estamos visitando, utiliza el protocolo https y
es, por tanto, segura en cuanto a la transmisin de los datos que estamos
transcribiendo, debemos observar si en la barra de direcciones de nuestro
navegador, aparece https al comienzo, en lugar de http.
Algunos navegadores utilizan un icono (generalmente un candado) en la parte
derecha de la barra de direcciones para indicar la existencia de un protocolo de
comunicaciones seguro e incluso cambian el color del fondo de la barra de
direcciones por amarillo (Firefox) o verde (Internet Explorer) para identificar
pginas web seguras.

6.2 Paquetes/Componentes

Estacin Cliente Este nodo representa a cualquier estacin con navegadores


web y acceso a internet. En este todos los usuarios podrn ingresar al sistema por
medio del navegador e interactuar con l.
Servidor de Base de Datos Este nodo consistir en otro servidor que
contenga al motor de base de datos. Este servidor podr interactuar con el
Servidor Web y de Aplicacin por medio del DAO.

Servidor Web y de Aplicacin Este nodo representa al servidor que


contendr toda la lgica de la aplicacin, es decir, mantendr en ejecucin
constante los compilados del cdigo fuente. En la figura, se muestran los
componentes que estarn inmersos en este nodo
Gestores/Controladores de Eventos Para que las acciones realizadas sobre
la interfaz grfica por parte de los usuarios finales tengan efecto sobre la data del
sistema, se utilizarn los gestores o controladores de eventos que son parte del
framework . Estos captarn los eventos y procesarn la data necesaria. Una vez
hecho este procesamiento, el controlador se comunica una vez ms con la interfaz
para devolver la vista (el resultado). Para realizar esto, los controladores
necesitarn hacer uso de los proveedores de seguridad para validar y verificar los
roles de los usuarios; y tambin podran necesitar hacer uso de los algoritmos
dependiendo del evento captado.
Entidades del Negocio En este componente se tiene a todas la clases en C#
que permiten interactuar con la data del sistema. En este componente se
encontrarn todas aquellas funcionalidades que permiten tanto consultar data
como insertarla en la base de datos, por lo que siempre ser convocado por la
Lgica de Negocio cuando sea necesario. Asimismo, para que este componente
pueda acceder a la base de datos, depende de otro componente, el DAO, el cual
brinda los mecanismos necesarios para poder acceder a ella.

Proveedor de Seguridad Para la autentificacin de los usuarios y sus roles es


necesario proveer mecanismos de seguridad. En este caso, se utilizarn los
Authentication Forms de .NET, la cual es una librera que contiene las
funcionalidades bsicas y ms importantes de los mecanismos de seguridad.
Asimismo, esta puede extenderse para adaptarse a las necesidades de la
aplicacin e integrarse con la base de datos en uso.

Algoritmos En este caso los controladores podrn necesitar interactuar con


los algoritmos .Esto se debera a los casos en los que se d un ordenamiento de
las distancias de los restaurantes con respecto al usuarios y en el caso de un
evento que necesite el control del contenido textual de los comentarios

lgica del Negocio En este componente se tiene a todas la clases en C# que


moldearn el comportamiento del software. En este caso, este ser el puente que
interactuar mayormente con las Entidades del Negocio para poder consultar la
data del sistema y luego poder brindrsela a los
6
Componentes Dinmicos y finalmente poder renderizar el contenido en un portal
web.

DAO Este ltimo componente, brinda los mecanismos necesarios para poder
interactuar con la base de datos sin necesidad de usar SQL directamente. A travs
del Entity Framework, esto es posible por el mapeo que se realiza entre las clases
del sistema y las tablas de la base de datos.

También podría gustarte