Investigacion de Sistemas - Agile
description
Transcript of Investigacion de Sistemas - Agile
-
U N I V E R S I D A D A R G E N T I N A
J O H N F. K E N N E D Y
I N V E S T I G A C I N D E S I S T E M A S
T R A B A J O P R C T I C O
L I S TA D E C O M P R A S
P R O F E S O R E S
N O R B E R T O R E B E Q U I
C A R L O S I M PA R AT O
-
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/