View
105
Download
3
Category
Tags:
Preview:
DESCRIPTION
es una resentacion
Citation preview
Instituto Tecnológico Superior de los Ríos
PresentanPara la opción X:
Memoria de Residencia Profesional
Carrera:
Ing. Sistemas Computacionales.
Los Sustentantes
Luis Miguel Cruz Pérez
Nicolás Pérez Velazco
Mateo Díaz López
Balancan Tab. A: 28/Agosto/2014
Sistema de Gestión Proyectos con Soporte para Scrum.
Proceso de Desarrollo .
Planeación.
• ¿Por qué del proyecto?
Requerimientos
• Identificar Roles.
• Historias de usuario.
• Criterios de aceptación.
• INVEST.
Análisis
• Prototipos de papel.
• Registro de análisis.
• Plan de pruebas.
• Priorizar tareas.
Diseño.
• Registros de Diseño.
• CRC.
Construcción y Pruebas.
• IDE.
• Lenguajes de Programación.
• Framework`s
Implementación (Entrega).
• Sistema funcional.
• Mantenimiento.
• Nuevos
requerimientos.
1.Planeación
• El proyecto surge de la propuesta de mejorar la forma de gestionar losproyectos en desarrollo dentro de la empresa Integra IT implementando lametodología ágil Scrum.
• Un sistema perfectamente ejecutable y ayude a los procesos deadministración en la empresa Integra IT.
• Un sistema que apoye a los responsables de proyectos específicos en latoma de decisiones de un proyecto, en el cual les permita registrar,controlar y medir la operación en sus proyectos.
• La aplicación será usada a través de una PC, y posteriormente también unaversión para dispositivos móviles con SO Android.
Justificación
Integra IT administraba sus proyectos a través de la herramienta Atlassian JIRAque tiene ciertos inconvenientes:
• Pagar licencia por el uso.
• La usabilidad de esta herramienta es un poco complicado en algunos registros.
• Para realizar bitácoras diarias es necesario entrar en la aplicación desdeinternet, y en ocasiones en fallos de red no es posible.
• No hay un reporte por proyecto.
• No permite la adopción del marco de trabajo ágil Scrum de maneratransparente.
Objetivos Específicos
1. Desarrollar un sistema para llevar el control y seguimiento de desarrollo delsistema durante su proceso de elaboración.
2. Monitorear desde el sistema el proceso que se esta llevando a cabo en cadauna de las etapas del proceso de desarrollo del sistema en el que se estatrabajando.
3. Mediante el sistema, gestionar todo el proceso de desarrollo de losproyectos, desde el proceso de Análisis hasta el proceso deimplementación/Entrega.
4. Almacenar productos de trabajos que han sido revisados y aprobados,posteriormente serán utilizados como base de la realización de cambios.
5. Mediante el sistema, controlar y medir la operación de un proyecto de lamisma manera la documentación generados durante el proceso dedesarrollo.
2.Requerimientos
El sistema debe:
• Registrar todas las tareas obtenidas de los requerimientos del sistemaPropuesto.
• Permitir extraer de la lista de tareas los Sprint necesarios, para realizar losmódulos entregables a corto plazo del sistema.
• Registrar bitácoras de actividades diarias dentro del rango de la elaboración delSprint.
• Soportar los proyectos de desarrollo que se tienen en producción dentro de laempresa.
• Soportar y gestionar documentación de análisis y plan de pruebas, divididaspor etapas denominadas Sprint.
• Permitir registrar todas las incidencias obtenidas a cada modulo del sistema.
Técnicas y métodos para levantamiento de Requerimientos
• Historias de Usuario (HU).Software funcionando porsobre documentación extensiva. método eficaz paratransmitir información cara a cara con el cliente.
• Componentes de (HU) CCC.• Redacción de HU.• Característica de (HU) INVEST.• Criterios de aceptación.
Como (rol) Quiero (funcionalidad) Para (beneficio)
Historias de usuario de nuestro sistema.Prioridad Como(Rol) Quiero (función) Para( beneficio) Criterios de Aceptación
Usuario registrarme tener acceso alsistema.
• El sistema debe estar a posibleserrores de seguridad.• No debe de haber mas de unusuario con el mismo nombre.• Diferentes usuarios pueden teneruna misma contraseña.
ScrumMaster Dar de alta a todas lasactividades (ProductBacklog) planeadas.
Para la elaboracióndel sistema y tenerlosen el sistema
• Se puede dar de alta a mas de una actividad, necesarias para llevar a cobo la elaboración del sistema.
• Las actividades deben ser programables, estimables a tiempos no mayores a 3 semanas.
• Poder priorizar actividades.• Actualizar actividades.
Scrum Master Dar de alta a tareas Tenerlos programadosen el Sprint.
• Agregar varias tareas en el Product Backlog.
• Estimar el tiempo de tareas.
Prioridad Como(Rol) Quiero (función) Para( beneficio) Criterios de Aceptación
Scrum Master,Stakeholders.
Ver el proceso deavance a cada uno delas tareas que seprogramaron en elSprint.
Ver el avance que selleva desde que seprogramo el Sprint.
• Debe mostrar el nombre del responsable de la tarea.
• Seleccionar tipos de responsables.
• Agregar estimación de cada tarea asignada a un rol.
• Mostrar detalles de tareas.
Scrum Master Ver una grafica. Ver el avance general delSprint en proceso.
• Avance independiente de cada tarea asignada en el Sprint.
• Mostrar las fases de INICIO, EN PROCESO, PRUEBA, FINALIZADO.
• Reasignar responsables a tareas.• identificar tareas por código
único.
Scrum Master, Stakeholders
Dar de alta a sub-tareas
Tenerlos incluidos en las tareas planeadas.
• Visualizar el avance general del Sprint programado.
• Visualizar 2 tipos de graficas (Grafica de Burnout y Grafica de avance).
• Grafica de Burnout : avance real del equipo de desarrollo.
• Grafica de avance: avance de proyecto general.
3. Análisis
Para realizar esta solución, se consideran las siguientes actividades:
1. Levantamiento de requerimientos.2. Elaboración de prototipos.3. Construcción de la solución.4. Aseguramiento de la calidad de los entregables.5. Aplicación de pruebas de sistema.6. Generación de la documentación necesaria para mantenimiento y/o evolución de
la solución.7. Puesta en marcha de la solución
Técnicas de Registro de análisisTablero Kanban.
Como integrante del SrumMaster y Stakeholders, quiero ver el proceso de avance de cada una de las tareas que se programaron en el Sprint para ver que avance se lleva desde que se programo el Sprint.
Criterios de Aceptación.
• Se DEBE de visualizar el avance independiente de cada una de las actividades que se programaron para elSprint.
• Las cuatro fases de una tarea son los siguientes: INICIO, EN PROCESO, FASE DE PRUEBA y FINALIZADO.• Se DEBE visualizar el nombre del usuario quien es Responsable de darle seguimiento a la tarea
programada.• Cada una de las tareas asignadas, DEBE de tener un código, el cual es una identificación único entre todas
las tareas programadas.• Una Tarea en fase de inicio PUEDE ser editado para asignarle nuevo prioridad, la prioridad que se le asigne
es dependiente del equipo de desarrolladores.• Las fases de proceso en las que una tarea puede ser asignada a otro usuario diferente a la asignada
anteriormente son en las siguientes: INICIO, EN PROCESO Y FASE DE PRUEBA.• La FASE DE PRUEBA, es cuando la tarea que se programo en el Sprint se encuentra en pruebas funcionales.• El estado de FINALIDADO, es cuando la tarea cumple con todas las actividades y/o pruebas que se le
fueron realizando durante la fase de desarrollo, no debe editarse.• Cuando se acceda al código asignado a la tarea, DEBE re direccionar a las actividades programadas y crear
sub-tareas a las tareas.
Storyboard (Prototipo de papel).
Sprint 1• Análisis e implementación de Roles.
• Análisis y creación de modelo de base de datos.
• Creación de pantallas de administración de catálogos.
• Análisis e implementación de pantalla de Product Backlog.
Sprint 2• Análisis y creación de la vista Sprint.
• Creación de pantalla de captura / edición criterios de aceptación.
• Creación de pantalla de captura /edición de tareas.
• Captura y edición de sub-tareas.
Sprint 3• Análisis e implementación de reporte histórico de avances.
• Creación de pantalla de graficas.
• Análisis de reglas de negocio.
• Análisis e implementación pantalla bitácoras diarias.
Product Backlog (Plan de trabajo).
4. DiseñoMétodos para realizar RDD.Tarjeta CRC.
Clase
Rol
Función
clase
ColaboradoresResponsabilidades
Roles.• Soporte de información.
Estructurador.• Proveedor de Servicio.• Coordinador.• Controlador.• Interfaz.
5. Construcción y Pruebas.Herramientas de desarrollo.
IDE
Lenguajes de Programación.
Framework
6. Implementación.
• Sistema productivo, con manuales operativos de mantenimientos yprocedimientos, esquemas de auditoria y seguridad.
• Integraciones con terceras partes operativas.• Sistema totalmente probado.
Sistema de gestión proyectos con Soporte para Scrum
Versión Android.
Sistema Gestor de Base de Datos
SQLiteEs un sistema gestor de base de datos relacional(RDBMS). Lo que hace único a SQLite es que seconsidera una solución.
Esta aplicación se realizo las tareas siguientes.
Crear, editar, Eliminar, base de datos.Ejecuta las sentencias SQL.
Sqlitebrowser
Sqlitebrowser Hace que sea fácil mantener losobjetos de la base de datos. Esta aplicación nosfacilita para crear las relaciones de la base dedatos.
Juno Eclipse
Para el desarrollo de la aplicación se utilizo el IDEJuno Eclipse 4.2.1.
Motivos por el cual se utilizo este IDE.
No se necesita instalar el eclipse.Es el IDE soportado por Google.Conocimiento básico de java.Permite instalarle todo kit de desarrollo de Android.Es el mas completo por el momentoInformación suficiente con este IDE, para poder documentarse.
Arquitectura del proyecto
Son tres directorios importantes src, gen, res, queno son modicables.
src: En esta carpeta se incluyen las clases con elcódigo fuente de la aplicación al igual que encualquier proyecto java.
gen: En esta carpeta es generada y controladaautomáticamente por el entorno de desarrollo, nodebe ser mordicada ya que se actualiza cada vezque se compila o se ejecute la aplicación.
Arquitectura del proyecto
res: En esta carpeta se incluyen por defecto tresdirectorios importantes:
Drawable: Este directorio nos sirve para colocarimágenes de igual manera sirve para colocar losestilos que se ocupen en la aplicación.Layout: Este directorio sirve para crear archivosXML el cual sirve para definir las interfacesVisuales.Values: Este directorio sirve para colocarprincipalmente los Strings que se utilizaran en lainterfaz dentro del directorio layout.
Arquitectura del proyecto
Preparando el fichero de base de datos SQLite
Este esta formado por un conjunto de clases Java,clase Cursor, Clase SQLiteDatabase, claseSQLiteOpenhelper que interactuan directamentecon el sistema gestor de base de datos de SQLite.
CursorLa clase Cursor otorga acceso a los resultados deuna consulta de base de datos. La clase Cursor lepermite ir paso a paso en estos resultados y podránaccederse desde el código de la aplicación.
Preparando el fichero de base de datos SQLite
SQLiteDatabase
Esta clase es la verdadera interfaz entre el código dela aplicación y la base de datos SQL.Incluye funciones para realizar las operacionesbasadas en SQL como INSERT, DELETE, QUERY yRAWQUERY
Preparando el fichero de base de datos SQLite
SQLiteOpenHelper
Esta clase auxiliar se diseño para facilitar la creacióny modificación de la bases de datos.
La funcionalidad de esta clase será la de crear labase de datos, y mediante 2 métodos:
onCreate: que es usado para crear las tablas
onUpgrade: que se encarga de actualizar la base dedatos.
•Inicio de Sesión.
•Pantalla de inicio
•Menú para agregar un nuevo productBacklog
•Pantalla para agregar ProducBacklog
•Pantalla de Menú Contextual
Sistema de gestión proyectos con Soporte para Scrum
Aplicación Web.
Diseño
Diseño Dirigido Por Responsabilidad(RDD)
RDD es un método de diseño informal desarrollado a finales de los 80 y principios de los 90. Rebecca Wirfs-Brock, que concibió la teoría, la resume del siguiente modo: “Los objetos no son simples agrupaciones de lógica y datos. Son miembros responsables de una comunidad de objetos”
RDD comienza con la división de un sistema o una característica individual en varias acciones y actividades que el sistema debe realizar y después continua con la asignación de estas responsabilidades a objetos dentro del sistema.
Soporte de información (Conoce y provee información). Estructurador Proveedor de Servicio Coordinador Controlador Interfaz
RDD se base en Roles Estereotipados
Construcción de la Base de datos Como Gestor de Base de Datos se utilizo Oracle xpress 10g Para la creación y manipulación de la base de datos se utilizo la Herramienta
SQL DEVELOPER
Figura 1: Interfaz de SQL DEVELOPER
Construcción de la Base de datosSe crea el Modelo de datos u Objetos de la Base de datos.
Figura 2: Diagrama Entidad - Relación
View(Vistas)
Construcción de la Base de datos
Vista que une la información de la tabla “product_backlog, estado_product_backlog , tipo_requerimiento, categoria_requerimento y la Vista Proyecto(Esta vista se encuentra alojada en una BD Exterior)”
CREATE VIEW V_PRODUCT_BACKLOG AS (SELECT pb.id Id_Pbi, pb.titulo Titulo_Pbi, pb.descripcion Descripcion_Pbi,pb.prioridad Prioridad_Pbi, pb.story_point Story_Point_Pbi,pb.id_estado Id_Estado_Pbi, epb.descripcion DESCRIPCION_ESTADO_PBI, epb.orden ORDEN_ESTADO_PBI, epb.estado ESTADO_PBI,epb.color COLOR_ESTADO_PBI, tr.id ID_TIPO_REQUERIMIENTO,tr.descripcion DESCRIPCION_TIPO_REQUERIMIENTO,tr.estado ESTADO_TIPO_REQUERIMIENTO,tr.orden ORDEN_TIPO_REQUERIMIENTO,cr.id ID_CATEGORIA_REQUERIMIENTO, cr.descripcion DES_CATEGORIA_REQUERIMIENTO,cr.estado ESTADO_CATEGORIA_REQUERIMIENTO, cr.orden ORDEN_CATEGORIA_REQUERIMIENTO,p.id Id_Proyecto, p.nombre Nombre_Proyecto, p.rape Rape_Proyecto, p.rgc RGC_Proyecto,p.fecha_inicio Fecha_Inicio_Proyecto, p.fecha_fin Fecha_Fin_Proyecto,(SELECT COUNT(ca.id) FROM criterio_aceptacion ca WHERE ca.id_pbi = pb.id ) NUM_CRITERIOS_ACEPTACION_PBI
FROM product_backlog pb,proyecto p,estado_product_backlog epb,tipo_requerimiento tr,categoria_requerimento cr
WHERE pb.id_proyecto = p.id AND pb.id_estado = epb.id AND pb.id_tipo_requerimiento = tr.id(+) AND tr.id = cr.id_requerimiento(+))
Stored Procedure(Procedimientos Almacenados)
Construcción de la Base de datos
Procedimiento que consulta la Información de todos los Product Backlog Items(PBI) de un proyecto. PROCEDURE Get_All_Pbis
(P_Id_Proyecto VARCHAR2, o_cursor out t_refcur)IS BEGIN
OPEN o_cursor FORSELECT vpb.id_pbi,
vpb.titulo_pbi, vpb.descripcion_pbi, vpb.prioridad_pbi, vpb.story_point_pbi, vpb.id_estado_pbi,vpb.descripcion_estado_pbi,vpb.color_estado_pbi,vpb.id_proyecto, vpb.num_criterios_aceptacion_pbi
FROM v_product_backlog vpbWHERE vpb.id_proyecto = P_Id_ProyectoORDER BY vpb.prioridad_pbi DESC;
END;
Stored Procedure(Procedimientos Almacenados)
Construcción
Procedimiento que registra un nuevo Product Backlog Items(PBI) de un proyecto. PROCEDURE Create_PBI(
P_Titulo VARCHAR2,P_Descripcion VARCHAR2,P_Prioridad NUMBER,P_Story_Point NUMBER, P_Id_Usuario_Registro VARCHAR2,P_Id_Proyecto VARCHAR2
) IS BEGIN
INSERT INTO product_backlog(id, titulo, descripcion, prioridad, story_point, fecha_registro, id_usuario_registro, id_proyecto)VALUES((SELECT NVL(MAX(pb.id),0)+1 FROM Product_Backlog pb), P_Titulo, P_Descripcion, P_Prioridad, P_Story_Point, SYSDATE,P_Id_Usuario_Registro, P_Id_Proyecto);
END;
La Arquitectura del sistema esa basado en la arquitectura N-Capas.
Arquitectura del sistema
Capa de Infraestructura. Capa de Domino.Repositorio Capa Dominio.Entidades Capa de Dominio Capa DependencyResolver Capa de Aplicación Capa Web
Arquitectura del sistemaArquitectura en la solución del Proyecto
Figura 3: Arquitectura del proyecto
Módulos de Cada Capa Administración Indicadores Product Backlog Seguridad Sprint Backlog
En Algunas Capas se crea una modulo más
Base
En la capa web esta división se realizan en sus componentes: Controladores(Controllers) Modelos(Models)
Módulos de Cada CapaMódulos de cada Capa en la solución del proyecto
Figura 4: Módulos de las capas Figura 5: Módulos En la capa Web
Capa de Infraestructura.
Contiene el acceso a la base de datos
Figura 6: Métodos para la conexión a la base de datos
Capa de Infraestructura.
Figura 7: Persistencia sobre los métodos relacionado con el Product Backlog
Capa Dominio.Repositorio
Figura 8: Interfaces que implementa la clase ProductBacklogRepositorio
Contienes interfaces, las cuales especifican la manera de como estas construidos los repositorios
Capa de Dominio.Entidades
Figura 9: Interfaz IIdentificable la cual implementan algunas de nuestras entidades
Contienen las entidades(Soporte de Informacion) que se utilizaron en el desarrollo del proyecto. De igual forma contiene las interfaces que utilizan las entidades
Capa de Dominio.Entidades
Figura 10: Entidad ProductBacklogItem
Capa de Dominio
Figura 11: Estructura que tienen que ver con los métodos de ProductBacklog
Contiene validaciones y Proveedores de Servicios
Capa de Aplicación
Figura 12: Controlador para el modulo de Product Baklog
Contiene nuestros controladores, estas clases realizan tareas de coordinación.
Capa de DependencyResolver
Figura 13: Clase que resuelve las dependencias del modulo Product Backlog
Contiene las clases que resuelven las dependencias entre las diversas capas.
Capa de Web La capa web esta formada por la arquitectura Modelo-Vista-Controlador(MVC)
Models: Contiene atributos de una o mas entidades, forman un viewModel
Figura 14:ViewModel de ProductBacklogItem y EstadoPbi
Capa de Web Controllers: Son los encargados llevar acabo las peticiones de las vista, y
manejar y tratar los erros.
Figura 15:Controller Del Modulo del Product Backlog
Capa de Web Controllers:
Métodos de acción: suelen tener una correspondencia uno-a-uno con las interacciones del usuario.
Figura 16: Métodos de acción que tienen que ver con el modulo de Product Backlog
Capa de Web Controllers
try catch: Manejo de erros en la aplicación
Figura 17:Manejo y tratamiento a un errores
Capa de Web View
Es la manera de como se presenta la información al usuario, se creo con el motor de vista Razor y HTML.
Existen dos tipos de vistas: View ParcialView
Diseño Web Responsivo
Capa de Web View
View
Figura 18: Código de la “IndexProject”
Capa de Web View
ParcialView
Figura 19: Código de la ParcialView “_IndexPbiPartialDesktop”
Capa de Web ViewPara realizar las peticiones al servidor se utilizo ajax
Figura 20: petición al servidor para la vista IndexPbi
El diseño web es una técnica de diseño y desarrollo web que mediante el uso de
estructuras e imágenes fluidas, así como de media-queries en la hoja de estilo
CSS, consigue adaptar el sitio web al entorno del usuario.
Para el diseño web responsivo se utilizo BootStrap 3.0
Capa de Web View
Diseño Web Responsivo
Recommended