Este documento presenta un resumen de tres oraciones de un sistema de gestión de proyectos con soporte para Scrum. El documento describe el desarrollo de un sistema para gestionar proyectos usando la metodología ágil Scrum a través de varias etapas como planeación, análisis, diseño, construcción y pruebas e implementación. El sistema permitirá registrar tareas, bitácoras, informes y gráficas para dar seguimiento a los proyectos.
1. 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
BalancanTab. A: 28/Agosto/2014
3. 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.
8. Técnicas y métodos para levantamiento de Requerimientos •HistoriasdeUsuario(HU).Softwarefuncionandoporsobredocumentaciónextensiva.métodoeficazparatransmitirinformacióncaraacaraconelcliente. •Componentesde(HU)CCC. •RedaccióndeHU. •Característicade(HU)INVEST. •Criteriosdeaceptación.
Como (rol) Quiero (funcionalidad) Para (beneficio)
9. Historias de usuario de nuestro sistema.
Prioridad
Como(Rol)
Quiero(función)
Para( beneficio)
Criterios de Aceptación
Usuario
registrarme
teneraccesoalsistema.
•Elsistemadebeestaraposibleserroresdeseguridad.
•Nodebedehabermasdeunusuarioconelmismonombre.
•Diferentesusuariospuedentenerunamismacontraseña.
ScrumMaster
Dardealtaatodaslasactividades(ProductBacklog)planeadas.
Paralaelaboracióndelsistemaytenerlosenelsistema
•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.
ScrumMaster
Dardealtaatareas
TenerlosprogramadosenelSprint.
•Agregar varias tareas en el Product Backlog.
•Estimar el tiempo de tareas.
10. Prioridad
Como(Rol)
Quiero(función)
Para( beneficio)
Criterios de Aceptación
ScrumMaster, Stakeholders.
VerelprocesodeavanceacadaunodelastareasqueseprogramaronenelSprint.
VerelavancequesellevadesdequeseprogramoelSprint.
•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.
ScrumMaster
Verunagrafica.
VerelavancegeneraldelSprintenproceso.
•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 Burnouty Grafica de avance).
•Grafica de Burnout: avance real del equipo de desarrollo.
•Grafica de avance: avance de proyecto general.
11. 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
12. Técnicas de Registro de análisis
Tablero Kanban.
Como integrantedel SrumMastery 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.
•SeDEBEdevisualizarelavanceindependientedecadaunadelasactividadesqueseprogramaronparaelSprint.
•Lascuatrofasesdeunatareasonlossiguientes:INICIO,ENPROCESO,FASEDEPRUEBAyFINALIZADO.
•SeDEBEvisualizarelnombredelusuarioquienesResponsablededarleseguimientoalatareaprogramada.
•Cadaunadelastareasasignadas,DEBEdeteneruncódigo,elcualesunaidentificaciónúnicoentretodaslastareasprogramadas.
•UnaTareaenfasedeinicioPUEDEsereditadoparaasignarlenuevoprioridad,laprioridadqueseleasigneesdependientedelequipodedesarrolladores.
•Lasfasesdeprocesoenlasqueunatareapuedeserasignadaaotrousuariodiferentealaasignadaanteriormentesonenlassiguientes:INICIO,ENPROCESOYFASEDEPRUEBA.
•LaFASEDEPRUEBA,escuandolatareaqueseprogramoenelSprintseencuentraenpruebasfuncionales.
•ElestadodeFINALIDADO,escuandolatareacumplecontodaslasactividadesy/opruebasqueselefueronrealizandodurantelafasededesarrollo,nodebeeditarse.
•Cuandoseaccedaalcódigoasignadoalatarea,DEBEredireccionaralasactividadesprogramadasycrearsub-tareasalastareas.
14. 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).
15. 4. Diseño
Métodos para realizar RDD.
Tarjeta CRC.
Clase
Rol
Función
clase
Colaboradores
Responsabilidades
Roles.
•Soporte de información. Estructurador.
•Proveedor de Servicio.
•Coordinador.
•Controlador.
•Interfaz.
16. 5. Construcción y Pruebas.
Herramientas de desarrollo.
IDE
Lenguajes de Programación.
Framework
19. Sistema Gestor de Base de Datos
SQLite
Esunsistemagestordebasededatosrelacional(RDBMS).LoquehaceúnicoaSQLiteesqueseconsideraunasolución.
Esta aplicación se realizo las tareas siguientes.
Crear, editar, Eliminar, base de datos.
Ejecuta las sentencias SQL.
21. Juno Eclipse
ParaeldesarrollodelaaplicaciónseutilizoelIDEJunoEclipse4.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 momento
Información suficiente con este IDE, para poder documentarse.
22. Arquitectura del proyecto
Sontresdirectoriosimportantessrc,gen,res,quenosonmodicables.
src:Enestacarpetaseincluyenlasclasesconelcódigofuentedelaaplicaciónaligualqueencualquierproyectojava.
gen:Enestacarpetaesgeneradaycontroladaautomáticamenteporelentornodedesarrollo,nodebesermordicadayaqueseactualizacadavezquesecompilaoseejecutelaaplicación.
23. Arquitectura del proyecto
res:Enestacarpetaseincluyenpordefectotresdirectoriosimportantes:
Drawable:Estedirectorionossirveparacolocarimágenesdeigualmanerasirveparacolocarlosestilosqueseocupenenlaaplicación.
Layout:EstedirectoriosirveparacreararchivosXMLelcualsirveparadefinirlasinterfacesVisuales.
Values:EstedirectoriosirveparacolocarprincipalmentelosStringsqueseutilizaranenla
interfazdentrodeldirectoriolayout.
25. Preparando el fichero de base de datos SQLite
EsteestaformadoporunconjuntodeclasesJava, claseCursor,ClaseSQLiteDatabase,claseSQLiteOpenhelperqueinteractuandirectamenteconelsistemagestordebasededatosdeSQLite.
Cursor
LaclaseCursorotorgaaccesoalosresultadosdeunaconsultadebasededatos.LaclaseCursorlepermiteirpasoapasoenestosresultadosypodránaccedersedesdeelcódigodelaaplicación.
26. Preparando el fichero de base de datos SQLite
SQLiteDatabase
EstaclaseeslaverdaderainterfazentreelcódigodelaaplicaciónylabasededatosSQL.
IncluyefuncionespararealizarlasoperacionesbasadasenSQLcomoINSERT,DELETE,QUERYy
RAWQUERY
27. Preparando el fichero de base de datos SQLite
SQLiteOpenHelper
Estaclaseauxiliarsediseñoparafacilitarlacreaciónymodificacióndelabasesdedatos.
Lafuncionalidaddeestaclaseseráladecrearlabasededatos,ymediante2métodos:
onCreate:queesusadoparacrearlastablas
onUpgrade:queseencargadeactualizarlabasededatos.
35. 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.
36. Soporte de información (Conoce y provee información).
Estructurador
Proveedor de Servicio
Coordinador
Controlador
InterfazRDD se base en Roles Estereotipados
37. Construcción de la Base de datos
Como Gestor de Base de Datos se utilizo Oracle xpress10g
Para la creación y manipulación de la base de datos se utilizo la Herramienta SQL DEVELOPER
Figura 1: Interfaz de SQL DEVELOPER
38. Construcción de la Base de datos
Se crea el Modelo de datos u Objetos de la Base de datos.
Figura 2: Diagrama Entidad -Relación
39. 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_requerimentoy la Vista Proyecto(Esta vista se encuentra alojada en una BD Exterior)”
CREATE VIEW V_PRODUCT_BACKLOG AS (SELECT
pb.id Id_Pbi, pb.tituloTitulo_Pbi, pb.descripcionDescripcion_Pbi,
pb.prioridadPrioridad_Pbi, pb.story_pointStory_Point_Pbi,
pb.id_estadoId_Estado_Pbi, epb.descripcionDESCRIPCION_ESTADO_PBI,
epb.ordenORDEN_ESTADO_PBI, epb.estadoESTADO_PBI,
epb.colorCOLOR_ESTADO_PBI, tr.id ID_TIPO_REQUERIMIENTO,
tr.descripcionDESCRIPCION_TIPO_REQUERIMIENTO,
tr.estadoESTADO_TIPO_REQUERIMIENTO,
tr.ordenORDEN_TIPO_REQUERIMIENTO,
cr.id ID_CATEGORIA_REQUERIMIENTO, cr.descripcionDES_CATEGORIA_REQUERIMIENTO,
cr.estadoESTADO_CATEGORIA_REQUERIMIENTO, cr.ordenORDEN_CATEGORIA_REQUERIMIENTO,
p.id Id_Proyecto, p.nombreNombre_Proyecto, p.rapeRape_Proyecto, p.rgcRGC_Proyecto,
p.fecha_inicioFecha_Inicio_Proyecto, p.fecha_finFecha_Fin_Proyecto,
(SELECT COUNT(ca.id) FROM criterio_aceptacioncaWHERE ca.id_pbi= pb.id ) NUM_CRITERIOS_ACEPTACION_PBI
FROM product_backlogpb,
proyecto p,
estado_product_backlogepb,
tipo_requerimientotr,
categoria_requerimentocr
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(+)
)
40. StoredProcedure(Procedimientos Almacenados) Construcción de la Base de datos
Procedimiento que consulta la Información de todos los ProductBacklogItems(PBI) de un proyecto.
PROCEDURE Get_All_Pbis
(P_Id_ProyectoVARCHAR2, o_cursoroutt_refcur)
IS
BEGIN
OPEN o_cursorFOR
SELECT 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_backlogvpb
WHERE vpb.id_proyecto= P_Id_Proyecto
ORDER BY vpb.prioridad_pbiDESC;
END;
41. StoredProcedure(Procedimientos Almacenados) Construcción
Procedimiento que registra un nuevo ProductBacklogItems(PBI) de un proyecto.
PROCEDURE Create_PBI(
P_TituloVARCHAR2,
P_DescripcionVARCHAR2,
P_PrioridadNUMBER,
P_Story_PointNUMBER,
P_Id_Usuario_RegistroVARCHAR2,
P_Id_ProyectoVARCHAR2
)
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_Backlogpb), P_Titulo, P_Descripcion, P_Prioridad, P_Story_Point, SYSDATE,P_Id_Usuario_Registro,
P_Id_Proyecto);
END;
42. 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
43. Arquitectura del sistema
Arquitectura en la solución del Proyecto
Figura 3: Arquitectura del proyecto
44. Módulos de Cada Capa
Administración
Indicadores
ProductBacklog
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)
45. Módulos de Cada Capa
Mó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
46. Capa de Infraestructura.
Contiene el acceso a la base de datos
Figura 6: Métodos para la conexión a la base de datos
47. Capa de Infraestructura.
Figura 7: Persistencia sobre los métodos relacionado con el ProductBacklog
48. Capa Dominio.Repositorio
Figura 8: Interfaces que implementa la clase ProductBacklogRepositorio
Contienes interfaces, las cuales especifican la manera de como estas construidos los repositorios
49. Capa de Dominio.Entidades
Figura 9: Interfaz IIdentificablela 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
51. Capa de Dominio
Figura 11: Estructura que tienen que ver con los métodos de ProductBacklog
Contiene validaciones y Proveedores de Servicios
52. Capa de Aplicación
Figura 12: Controlador para el modulo de ProductBaklog
Contiene nuestros controladores, estas clases realizan tareas de coordinación.
53. Capa de DependencyResolver
Figura 13: Clase que resuelve las dependencias del modulo ProductBacklog
Contiene las clases que resuelven las dependencias entre las diversas capas.
54. 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 ProductBacklogItemy EstadoPbi
55. 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 ProductBacklog
56. 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 ProductBacklog
57. Capa de Web
Controllers
try catch: Manejo de erros en la aplicación
Figura 17:Manejo y tratamiento a un errores
58. Capa de Web
View
Es la manera de como se presenta la información al usuario, se creo con el motor de vista Razory HTML.
Existen dos tipos de vistas:
View
ParcialView
Diseño Web Responsivo
59. Capa de Web
View
View
Figura 18: Código de la “IndexProject”
60. Capa de Web
View
ParcialView
Figura 19: Código de la ParcialView“_IndexPbiPartialDesktop”
61. Capa de Web
View
Para realizar las peticiones al servidor se utilizo ajax
Figura 20: petición al servidor para la vista IndexPbi
62. 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-queriesen la hoja de estilo CSS, consigue adaptar el sitio web al entorno del usuario.
Para el diseño web responsivo se utilizo BootStrap3.0
Capa de Web
View Diseño Web Responsivo