Vous êtes sur la page 1sur 13

UNI VERS I DAD ARGENTI NA

J OHN F. KENNEDY
I N V E S T I G AC I N DE S I S T E MA S
TRABAJ O PRCTI CO
LI STA DE COMPRAS

PROFES ORES
NORBERTO REBEQUI
CARLOS I MPARATO


Trabajo Prctico Investigacin de Sistemas
2012

INDICE

INTRODUCCION ..................................................................................................... 3
OBJETIVO ............................................................................................................ 3
INVESTIGACION ..................................................................................................... 3
TWITTER BOOTSTRAP ............................................................................................. 4
OBJECT DATASTORE (GAE) ....................................................................................... 4
AMAZON WEB SERVICES (EC2-RDS) .............................................................................. 5
AMAZON ELASTIC COMPUTE CLOUD (EC2) .......................................................................... 6
AMAZON RELATIONAL DATABASE SERVICE (RDS) .................................................................... 6
APLICACIN DE TECNOLOGAS AGILES .......................................................................... 6
ARQUITECTURA DE LAS 3 CAPAS ................................................................................. 7
COMO UTILIZAMOS CADA SERVICIO ............................................................................. 8
USER STORIES O HISTORIAS DE USUARIOS ..................................................................... 9




Trabajo Prctico Investigacin de Sistemas
2012


INTRODUCCION

Los desarrollos de software han demostrado que la programacin en proyectos
tiende a presentar problemticas o falencias que se pueden generar por el equipo
de desarrollo, por mala planeacin, requisitos mal comprendidos o interpretados
entre otros.
Los proyectos software buscan en las empresas facilitar, agilizar, mejorar procesos y
tender hacia una alta competitividad con el uso de dichas aplicaciones informtica.



OBJETIVO

Este trabajo prctico tiene como objetivo final desarrollar una Lista de Compras
mediante la aplicacin de metodologas giles. Para el desarrollo del mismo se
utilizarn nuevas tecnologas y un conjunto de herramientas front-end para el
desarrollo rpido de aplicaciones web.

Para la presentacin del producto se debern respetar ciertas pautas:
- Concentrarnos en entregar valor a cada iteracin
- Asegurar la calidad del producto y la satisfaccin del cliente
- Trabajar como lo hacen, actualmente, cientos de organizaciones giles de
desarrollo de software
- Conformar un equipo apasionado para lograr un producto apasionado



INVESTIGACION

Como primera etapa del proyecto, se realizar una investigacin de las diferentes
tecnologas existentes que podran ser tiles para el desarrollo de la aplicacin.

Temas a Investigar:
Twitter Bootstrap
Object Datastore (GAE)
AWS (EC2-RDS)








Trabajo Prctico Investigacin de Sistemas
2012


TWITTER BOOTSTRAP

Twitter ha lanzando una nueva herramienta Open Source para recompensar a la
comunidad, como muestra de agradecimiento a los beneficios que obtiene la
compaa al usar herramienta de cdigo abierto en sus proyectos.

Twitter Bootstrap, un conjunto de herramientas front-end para el desarrollo rpido
de aplicaciones web.

Un conjunto de CSS y HTML que utiliza algunas de las tcnicas ms modernas para
ofrecer plantillas para maquetar, estilos para tipografas, formularios o botones en
una.

Caractersticas Generales:

Boostrap est diseado para ayudar a la gente de todos los niveles
Boostrap ha evolucionado para incluir soporte para un mayor nmero de
navegadores y con Boostrap 2, tambin para tabletas y Smartphones.
Con Bootstrap 2. nuestros componentes se adaptan y escalan segn las
resoluciones de pantalla
Variables, anidaciones, operaciones y mezclas en LESS hace la codificacin de
CSS ms rpida y ms eficiente con un mnimo esfuerzo.


OBJECT DATASTORE (GAE)

Google App Engine es una plataforma que nos permite acceder a los recursos de
Google con el objetivo de crear aplicaciones que funcionen en la nube.
Las aplicaciones App Engine son fciles de crear, mantener y ampliar.



Trabajo Prctico Investigacin de Sistemas
2012


El almacn de datos (datastore) Ofrece un almacenamiento slido y escalable para
las aplicaciones web. Guarda objetos de datos conocidos como ENTIDADES y cada
una de ellas incluye una o varias PROPIEDADES.

Todas las consultas del almacn de datos se basan en un ndice.
Las aplicaciones App Engine definen los ndices en un archivo de configuracin.
A medida que la aplicacin modifica las entidades del almacn de datos, este ltimo
actualiza los ndices con los resultados correctos. Cuando la aplicacin ejecuta una
consulta, el almacn de datos extrae los resultados directamente del ndice en
cuestin.

Todo tipo de modificacin ocurre en una transaccin, en caso de que se produzca un
error, la transaccin evita que se apliquen los cambios. De esta forma, se garantiza
la coherencia de los datos dentro de la entidad.




AMAZON WEB SERVICES (EC2-RDS)

Amazon Web Services proporciona una plataforma de infraestructura escalable de
alta fiabilidad y de bajo costo en la nube que impulsa a cientos de miles de
empresas en 190 pases de todo el mundo.

Bajo coste
Agilidad y elasticidad instantnea
Abierto y flexible
Segura


El alojamiento de aplicaciones mediante Amazon Web Services (AWS) ofrece
recursos informticos fiables, escalables y rentables donde alojar las aplicaciones.

Teniendo los siguientes componentes de AWS disponibles:

Amazon Elastic Compute Cloud (Amazon EC2)
Amazon Simple Storage Service (Amazon S3)
Amazon Relational Database Service (Amazon RDS)
Amazon SimpleDB
Amazon CloudFront
Amazon Simple Queue Service (Amazon SQS)
Amazon DevPay
Amazon Mechanical Turk





Trabajo Prctico Investigacin de Sistemas
2012
Visin
Historias (Stories)
Tareas / Criterios de Aceptacin
Scrum Gestin


Amazon Elastic Compute Cloud (EC2)

Es un servicio web que proporciona capacidad informtica con tamao modificable
en la nube. Est diseado para facilitar a los desarrolladores recursos informticos
escalables y basados en web.

Amazon Relational Database Service (RDS)

Es un servicio web que facilita las tareas de configuracin, utilizacin y escalado de
una base de datos relacional en la nube. Proporciona una plataforma fcilmente
escalable y a un bajo costo.

Amazon RDS est diseado para desarrolladores o empresas que necesiten las
caractersticas y posibilidades completas de una base de datos relacional, o que
deseen migrar sus aplicaciones y herramientas existentes que utilizan una base de
datos relacional.
Las funciones proporcionadas por Amazon RDS dependen del motor de base de
datos que utilice (Oracle, MSQL, MySQL).



APLICACIN DE TECNOLOGAS AGILES

En nuestro caso supongamos que nos ha contratado un grupo de supermercados para
desarrollar una aplicacin denominada Lista de Compras, que deber proveer al
cliente una herramienta gil para realizar sus compras y adems ser utilizada
como medio de promocin para los supermercados.

Luego de analizar las caractersticas o funcionalidades que la lista de compras debe
tener, hemos dividido la problemtica en una arquitectura de 3 capas:


Capa de presentacin (Interface Grafica)
Reglas de negocio
Persistencia (Data Store)












Trabajo Prctico Investigacin de Sistemas
2012


ARQUITECTURA DE LAS 3 CAPAS




































Capa de presentacin:
Bootstrap
Reglas de negocio:
JAVA & JS
Persistencia en DB:
Google Datastore

Trabajo Prctico Investigacin de Sistemas
2012


COMO UTILIZAMOS CADA SERVICIO

La utilizacin de Twiter Boostrap nos proporciona la capa de presentacin para la
aplicacin desarrollada. Mediante el manejo de un framework compatible con la mayora
de los sistemas operativos y navegadores utilizando CSS y HTML.
Boostrap nos facilita la tarea para que nuestros componentes se adapten y escalen segn
las resoluciones de pantalla y dispositivos.

Para las reglas de negocio, el entorno de desarrollo usado es Eclipse y la
programacin se realiza con las tecnologas JAVA y JS.
Tambin utilizamos jQuery, librera de JavaScript, para que no recargue todos los
componentes de la pgina.

Se programaron con JAVA las siguientes validaciones:
- de caracteres especiales
- de SQL injection
- de codificacin %x (cuando por ejemplo se coloca %d o % y cualquier otra letra
lo codifica como un numero) .


Google App Engine proporciona un potente servicio de almacenamiento de datos
distribuido, slido y escalable para las aplicaciones web.
Cuando usamos Google App Engine, no se tiene acceso a una base de datos relacional
tradicional como MySQL u Oracle. Los datos se almacenan en el Google Datastore que
usa un enfoque jerrquico orientado a objetos al estar basado en otra tecnologa de
Google, el Google Bigtable que es un sistema distribuido de almacenamiento de datos
estructurados.

El enfoque de utilizar Bigtable como almacenamiento a travs del Google Datastore
consiste en ofrecer una forma eficiente de escalabilidad a las aplicaciones en la nube de
Google, las bases de datos no SQL son conocidas por su predisposicin a facilitar la
escalabilidad.


En la lista de compras realizada, el DataStore de Google permiti almacenar aquellas
instancias utilizadas para crear listas, agregar tems, modificarlos y eliminar las listas.
Todos los datos que fueran ingresados o borrados de la lista quedaban registrados en el
DataStore, de esa manera no era necesario acudir a una base de datos tradicional para
realizar la carga de informacin.










Trabajo Prctico Investigacin de Sistemas
2012


USER STORIES O HISTORIAS DE USUARIOS

Nuestra Lista de compras se compone de bloques funcionales que podemos clasificar
segn su complejidad desde el punto de vista del desarrollador y su importancia desde el
punto de vista del usuario.
Esto nos permitir tener una primera aproximacin a la problemtica de negocio y a las
caractersticas del producto que se deseamos construir.

Conociendo las prioridades de dichos bloques funcionales, se toman los de mayor
prioridad y se descomponen en funcionalidades mas especificas, logrando de esa manera
PBIs de menor nivel, llamados Historias de Usuario o User Stories.

Como primer paso comenzamos a definir las user stories, para luego clasificarlas y
unificarlas para definir los mdulos finales.

Definimos entre todos la priorizacin de las user stories




Luego de la priorizacin quedan finalmente establecidas las user stories







Trabajo Prctico Investigacin de Sistemas
2012



Story
n
Descripcin Criterios de Aceptacin Tareas
51 Como usuario quiero poder crear, modificar y
eliminar listas y poder definir alguna de estas
como plantilla para futuros usos. Con el fin de
recordar las cosas que quiero comprar.
Debo poder generar nombres
de listas.
Debo poder crear n cantidad
de listas.
* ABM de listas
* Agregar items a la/s lista/s
*Persistencia de la lista.
* Guardar una lista como
template.

Bootstrap
--Hacer moc de pantallas (5
pantallas) 5 ptos
--Codificar los moc en html con
bootstrap 8 ptos
--Validacin en diversos
dispositivos 5 puntos


Datastore
--Objeto DAO
--5 Acciones de acceso 5ptos

Regla Negocio
-- Tres objetos: lista / item /
app 5 ptos

17 Como dueo del producto quiero un hosting
bueno, bonito y barato, adems de estar
disponible en la nube. Para tener un buen
servicio.
Debe tener un nivel de
servicio del 90%.
Plataforma LAM
(linux,apache,mysql)
Que el costo anual del
hosting no supere los $250
Evaluar 3 propuestas

21 Como dueo de la aplicacin requiero que los
vendedores de productos muestren sus ofertas.
Un grupo de cadenas de
supermercados puedan
informar a los usuarios sobre
ofertas relacionadas con los
items que ingresan en sus
listas.


Se requiere un listado
provisto por el o los
supermercados con los
productos en oferta
Se requiere relacionar
el producto ingresado
por el usuario con su
correspondiente en la
lista del supermercado
52 Como usuario requiero facilidad en la gestin
de las listas para tener un buen control de los
productos.
Realizar un ABM simple y
claro.
Que permita clasificar en
tipos y subtipos de productos
si es necesario, para facilitar
la bsqueda/seleccin.
Para tipificar los
productos se requiere
generar un ABM de
etiquetas y una forma
de relacionar los
productos con 1 o mas
etiquetas
16 Como usuario quisiera poder agregar listas aun
sin conexin a Internet, para no olvidarme
cuando este en cualquier sitio sin conexin.
Otorgar funcionalidad aun sin conexin
Permitir el
almacenamiento local
de listas que luego
puedan ser editadas o
subidas.
53 Como usuario quisiera que me sugiera los
productos cargados anteriormente para tipear
lo menos posible.
Debe autocompletar los items
de la listas con artculos
cargados en el mismo tipo de
lista con anterioridad.
Debe guardar las cargas del
ltimo mes


Debe existir un backup
local de los ltimos
productos cargados en
el mes.
Un motor de busqueda
que analice letra por
letra del producto
cargado para luego
sugerir al tipear

Trabajo Prctico Investigacin de Sistemas
2012
24 Como usuario requiero compartir la lista con
otro usuario para no tipear una lista ya
existente.
Debe tener la posibilidad de
enviar un link o id a otro
usuario del sistema para que
pueda acceder a mi lista.
Las listas no podrn ser
modificadas



Se necesitan 3 Tablas
para este storie
Usuarios
Listas
Relacion entre usuarios y
listas
El dueo de la lista es
uno solo


34 Como usuario me gustara poder agregar las
cantidades del producto en mi lista para que
me recuerde las cantidades que necesito
comprar.
En cada producto
seleccionado, se podr
ingresar la cantidad y unidad
del mismo. Permite nmeros
con coma -hasta 2-.
Agregar como atributo
de cada item
(producto) la cantidad
con 2 decimales y la
unidad de medida que
tendr una tabla
referencial de
unidades: Kg., Gramos
y unidad.
30 Como usuario me gustara especificar dnde
quiero comprar los productos de mi lista para
no olvidarme donde estn en oferta.
Agregar como atributo de
cada item (producto) la
descripcin del lugar donde
est la oferta.
Agregar como atributo
de cada producto el
lugar, que tendr una
tabla referencial de
lugares: provincia,
partido, localidad y/o
calles
33 Como usuario me gustara que una alarma
sonora me recuerde las ofertas para conseguir
los productos al mejor precio.
Configurar alarmas que
recuerden las ofertas segn
las promociones con las
tarjetas que posee el usuario.
Agendar fecha de cada
oferta ingresada por el
usuario, clasificada
por tarjeta/banco con
promociones.





ARCHIVOS DEL PROYECTO

Archivos jsp
abmlista, inicio, login, pruebas: representan grficamente la web donde se
gestiona visualmente las listas y los tems.
Tambin se realizan controles de caracteres alfanumricos, cdigos sql.

1 war
Tecnologa bootstrap: jquery, imgenes y estilos css

12 archivos Java Beans / servlets
- AddItemServlet: servlet que dado un usuario y una lista, agrega un item
- CreateListServlet: servlet que dado un usuario, agrega una lista a la session del
usuario
- GetAllItemsServlet: servlet que dado un usuario, obtiene todas sus listas y hace
merge en una sola lista de todos los items de todas las listas
- GetItemsServlet: servlet que dado un usuario y una lista, muestra todos los
items contenidos
- GetListsServlet: servlet que dado un usuario, muestra todas las listas de ese
usuario


Trabajo Prctico Investigacin de Sistemas
2012


- HashCookieTable: gestiona las cookies del usuario, que son variables que se
almacenan en el dispositivo que accede
- Lista: bean que representa la clase de los objetos instanciados de lista
- LogInServlet: servlet que obtiene mediante el servicio de usuario de appengine,
el nombre del usuario logueado y almacena su nmero en cookie
- LogOutServlet: servlet que invalida la session http y hace expirar la cookie
almacenada
- RemoveItemServlet: servlet que dado un usuario y una lista, elimina un item
- RemoveListServlet: servlet que dado un usuario, elimina una lista a la session
del usuario
- Usuario: bean que representa la clase de los objetos instanciados de lista

4 archivos Java DAO
- Dao: java que basndose en JDOHelper y el patrn de diseo singleton Dao,
ejecuta las consultas a la base de datos, de los usuarios, listas y
relaciones
- Persistencia: es la interfase que tiene declarados todos los mtodos
implementados en el Dao
- RelacionListaUsuario: clase que relaciona usuarios con listas, para persistirla
- TestDAOServlet: archivo de testing en fase de desarrollo


COMO FUNCIONA LA APLICACION

La lista de compras permite realizar un logueo (casilla de correo de Gmail) lo cual
autentica al usuario.
Habiendo ingresado, se muestra la opcin para agregar una nueva Lista a nuestro
historial. Luego, accediendo a la lista ingresada, podemos comenzar a agregar los tems
correspondientes.



Como podemos observar, en el extremo superior derecho aparece nuestro usuario. En el
lado izquierdo la lista creada.


Trabajo Prctico Investigacin de Sistemas
2012


En la imagen anterior podemos observar cmo se listan los tems ingresados a la lista
Verdulera.

Para poder probar lo mencionado, te invitamos a probar la aplicacin ingresando al link
que colocamos a continuacin.

LINK DE APLICACIN: http://invsistlistas.appspot.com/

Vous aimerez peut-être aussi