diapositiva a opcion x

62
Instituto Tecnológico Superior de los Ríos Presentan Para 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

Upload: meteoro-diaz-lopez

Post on 26-Jun-2015

103 views

Category:

Education


3 download

DESCRIPTION

es una resentacion

TRANSCRIPT

Page 1: Diapositiva a opcion x

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

Page 2: Diapositiva a opcion x

Sistema de Gestión Proyectos con Soporte para Scrum.

Page 3: Diapositiva a opcion x

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.

Page 4: Diapositiva a opcion x

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.

Page 5: Diapositiva a opcion x

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.

Page 6: Diapositiva a opcion x

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.

Page 7: Diapositiva a opcion x

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.

Page 8: Diapositiva a opcion x

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)

Page 9: Diapositiva a opcion x

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.

Page 10: Diapositiva a opcion x

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.

Page 11: Diapositiva a opcion x

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

Page 12: Diapositiva a opcion x

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.

Page 13: Diapositiva a opcion x

Storyboard (Prototipo de papel).

Page 14: Diapositiva a opcion x

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).

Page 15: Diapositiva a opcion x

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.

Page 16: Diapositiva a opcion x

5. Construcción y Pruebas.Herramientas de desarrollo.

IDE

Lenguajes de Programación.

Framework

Page 17: Diapositiva a opcion x

6. Implementación.

• Sistema productivo, con manuales operativos de mantenimientos yprocedimientos, esquemas de auditoria y seguridad.

• Integraciones con terceras partes operativas.• Sistema totalmente probado.

Page 18: Diapositiva a opcion x

Sistema de gestión proyectos con Soporte para Scrum

Versión Android.

Page 19: Diapositiva a opcion x

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.

Page 20: Diapositiva a opcion x

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.

Page 21: Diapositiva a opcion x

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.

Page 22: Diapositiva a opcion x

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.

Page 23: Diapositiva a opcion x

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.

Page 24: Diapositiva a opcion x

Arquitectura del proyecto

Page 25: Diapositiva a opcion x

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.

Page 26: Diapositiva a opcion x

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

Page 27: Diapositiva a opcion x

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.

Page 28: Diapositiva a opcion x

•Inicio de Sesión.

Page 29: Diapositiva a opcion x

•Pantalla de inicio

Page 30: Diapositiva a opcion x

•Menú para agregar un nuevo productBacklog

Page 31: Diapositiva a opcion x

•Pantalla para agregar ProducBacklog

Page 32: Diapositiva a opcion x

•Pantalla de Menú Contextual

Page 33: Diapositiva a opcion x

Sistema de gestión proyectos con Soporte para Scrum

Aplicación Web.

Page 34: Diapositiva a opcion x

Diseño

Page 35: Diapositiva a opcion x

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.

Page 36: Diapositiva a opcion x

Soporte de información (Conoce y provee información). Estructurador Proveedor de Servicio Coordinador Controlador Interfaz

RDD se base en Roles Estereotipados

Page 37: Diapositiva a opcion x

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

Page 38: Diapositiva a opcion x

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

Page 39: Diapositiva a opcion x

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(+))

Page 40: Diapositiva a opcion x

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;

Page 41: Diapositiva a opcion x

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;

Page 42: Diapositiva a opcion x

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

Page 43: Diapositiva a opcion x

Arquitectura del sistemaArquitectura en la solución del Proyecto

Figura 3: Arquitectura del proyecto

Page 44: Diapositiva a opcion x

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)

Page 45: Diapositiva a opcion x

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

Page 46: Diapositiva a opcion x

Capa de Infraestructura.

Contiene el acceso a la base de datos

Figura 6: Métodos para la conexión a la base de datos

Page 47: Diapositiva a opcion x

Capa de Infraestructura.

Figura 7: Persistencia sobre los métodos relacionado con el Product Backlog

Page 48: Diapositiva a opcion x

Capa Dominio.Repositorio

Figura 8: Interfaces que implementa la clase ProductBacklogRepositorio

Contienes interfaces, las cuales especifican la manera de como estas construidos los repositorios

Page 49: Diapositiva a opcion x

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

Page 50: Diapositiva a opcion x

Capa de Dominio.Entidades

Figura 10: Entidad ProductBacklogItem

Page 51: Diapositiva a opcion x

Capa de Dominio

Figura 11: Estructura que tienen que ver con los métodos de ProductBacklog

Contiene validaciones y Proveedores de Servicios

Page 52: Diapositiva a opcion x

Capa de Aplicación

Figura 12: Controlador para el modulo de Product Baklog

Contiene nuestros controladores, estas clases realizan tareas de coordinación.

Page 53: Diapositiva a opcion x

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.

Page 54: Diapositiva a opcion x

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

Page 55: Diapositiva a opcion x

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

Page 56: Diapositiva a opcion x

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

Page 57: Diapositiva a opcion x

Capa de Web Controllers

try catch: Manejo de erros en la aplicación

Figura 17:Manejo y tratamiento a un errores

Page 58: Diapositiva a opcion x

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

Page 59: Diapositiva a opcion x

Capa de Web View

View

Figura 18: Código de la “IndexProject”

Page 60: Diapositiva a opcion x

Capa de Web View

ParcialView

Figura 19: Código de la ParcialView “_IndexPbiPartialDesktop”

Page 61: Diapositiva a opcion x

Capa de Web ViewPara realizar las peticiones al servidor se utilizo ajax

Figura 20: petición al servidor para la vista IndexPbi

Page 62: Diapositiva a opcion x

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