DOCUMENTACIÓN REQUERIMIENTOS HERRAMIENTA PARA LA ADMINISTRACIÓN DE REQUERIMIENTOS DE LOS PROYECTOS DE LAS ASIGNATURAS DE INGENIERÍA Y ARQUITECTURA DE SOFTWARE DE LA PONTIFICIA UNIVERSIDAD JAVERIANA. CARLOS DAVID DUARTE ALFONSO PONTIFICIA UNIVERSIDAD JAVERIANA FACULTAD DE INGENIERÍA CARRERA DE INGENIERÍA DE SISTEMAS BOGOTÁ D.C 2014
Historial De Cambios El historial de cambios es una tabla que muestra la evolución y seguimiento del documento, todos los cambios realizados permiten elaborar, corregir y controlar la calidad del documento por parte del autor. Versión Fecha Sección del documento modificada V 0.1.0 25/03/2014 Documentación requerimientos V 0.2.0 25/03/2014 Capítulo 2, sección 2.1, 2.2 V 0.3.0 26/03/2014 Capítulo 2, sección 2.2 y 2.3. V 0.4.0 27/03/2014 Capítulo 2, sección 2.4, 2.5 V 0.5.0 28/03/2014 Capítulo 2, sección 2.5, 2.6 de cambios Estructura general Especificación requerimientos funcionales: REQ 001, REQ 002 y REQ 003. Especificación requerimientos funcionales: REQ 004, REQ 005 y REQ 006. Especificación requerimientos funcionales: REQ 007, REQ 008 y REQ 009. Especificación requerimientos funcionales: REQ 010, REQ 011 y REQ 012. Responsable V 0.6.0 03/04/2014 Capítulo 1 Diccionario de datos V 0.7.0 05//04/2013 Capítulo 3 Elaboración capitulo y subsecciones V 1.0.0 25/04/2014 Documentación requerimientos Entrega Tabla 1 Historial de cambios 2
Tabla de Contenido Historial De Cambios... 2 1. Diccionario de datos... 7 2. Funcionalidades ERMT 2.0... 8 2.1. Línea base de requerimientos... 8 2.1.1. Crear línea base de requerimientos... 8 2.1.2. Consultar línea base de requerimientos... 8 2.1.3. Eliminar línea base de requerimientos... 8 2.2. Control de versiones en los requerimientos... 9 2.2.1. Modificar requerimiento... 9 2.2.2. Consulta historial de cambios en los requerimientos... 9 2.3. Problemas en los requerimientos... 9 2.3.1. Asociar problema a un requerimiento... 9 2.3.2. Editar problema a un requerimiento... 10 2.3.3. Eliminar problema a un requerimiento... 10 2.3.4. Generar reporte problemas en los requerimientos... 11 2.4. Matriz de trazabilidad... 11 2.4.1. Reportes matriz de trazabilidad... 11 2.5. Gestión de riesgos... 12 2.5.1. Identificación de riesgos... 12 2.5.2. Editar riesgo a requerimiento... 12 2.5.3. Generar técnica de mitigación... 12 3. Documentación Requerimientos funcionales... 13 3.1. Control de versiones... 13 3.2. Seguimiento de estado... 14 3.3. Control de cambios... 15 3.4. Trazabilidad... 16 3.5. Riesgos... 17 3.6. Técnicas de mitigación... 17 3
4. Documentación requerimientos no funcionales... 18 4.1. Desempeño... 18 4.2. Disponibilidad... 19 4.3. Usabilidad... 20 4.4. Mantenibilidad... 21 4.5. Portabilidad... 21 4.6. Funcionalidad... 22 4.7. Confiabilidad... 23 5. Referencias... 23 4
Índice de Tablas Tabla 1 Historial de cambios... 2 Tabla 2 Crear línea base requerimientos... 8 Tabla 3 Consultar línea base requerimientos... 8 Tabla 4 Eliminar línea base requerimientos... 8 Tabla 5 Modificar requerimiento... 9 Tabla 6 Historial de cambios... 9 Tabla 7 Asociar problema a un requerimiento... 10 Tabla 8 Editar problema a un requerimiento... 10 Tabla 9 Eliminar problema a un requerimiento... 10 Tabla 10 Generar reporte problemas en los requerimientos... 11 Tabla 11 Matriz de trazabilidad... 11 Tabla 12 Reporte matriz 1... 11 Tabla 16 Identificación de riesgos... 12 Tabla 17 Editar riesgo... 12 Tabla 18 Técnica de mitigación... 12 Tabla 19 Requerimiento funcional 001... 13 Tabla 20 Requerimiento funcional 002... 13 Tabla 21 Requerimiento funcional 003... 14 Tabla 22 Requerimiento funcional 004... 14 Tabla 23 Requerimiento funcional 005... 14 Tabla 24 Requerimiento funcional 006... 15 Tabla 25 Requerimiento funcional 007... 15 Tabla 26 Requerimiento funcional 008... 16 Tabla 27 Requerimiento funcional 009... 16 Tabla 28 Requerimiento funcional 010... 16 Tabla 30 Requerimiento funcional 012... 17 Tabla 31 Requerimiento funcional 013... 17 Tabla 32 Requerimiento funcional 014... 18 Tabla 33 Requerimiento funcional 015... 18 Tabla 34 Requerimiento no funcional 016... 18 Tabla 35 Requerimiento no funcional 017... 19 Tabla 36 Requerimiento no funcional 018... 19 Tabla 37 Requerimiento no funcional 019... 20 Tabla 38 Requerimiento no funcional 020... 20 Tabla 39 Requerimiento no funcional 021... 20 Tabla 40 Requerimiento no funcional 022... 21 Tabla 41 Requerimiento no funcional 023... 21 Tabla 42 Requerimiento no funcional 024... 21 Tabla 43 Requerimiento no funcional 025... 22 Tabla 44 Requerimiento no funcional 026... 22 Tabla 45 Requerimiento no funcional 027... 23 5
Tabla 46 Requerimiento no funcional 028... 23 Tabla 47 Requerimiento no funcional 029... 23 6
1. Diccionario de datos En este capítulo se dan las definiciones de los diferentes conceptos y palabras que se usan a los largo de este documento, con el fin de minimizar la ambigüedad en la documentación de los requerimientos funcionales y no funcionales. Un diccionario de datos es un documento que describe la organización básica de una base de datos. Normalmente, un diccionario de datos contiene una lista de las variables de la base de datos, así como los nombres de las variables asignadas y una descripción de cada tipo de variable. El diccionario de datos tiene los valores aceptados para cada variable, y cualesquiera comentarios útiles tales como exclusiones importantes y las pautas de omisión. El diccionario de datos se utiliza principalmente para el análisis de datos. [5] Línea base de requerimientos: Una línea base define un conjunto de requerimientos acordados normalmente para un lanzamiento o iteración especifica. [1] Matriz de trazabilidad: Una matriz de trazabilidad de requerimientos es útil para confirmar que todos los requerimientos se aplican y se verifican. También es útil durante el mantenimiento, cuando un requerimiento tiene que ser modificado. [1] Problemas en los requerimientos: Los problemas más comunes con los requerimientos son los siguientes: Preguntas sobre requerimientos: Hay algo que no se entiende o decidir acerca de un requerimiento. Falla de un requerimiento: Los desarrolladores descubren un requerimiento perdido durante el diseño o implementación. Requerimiento incorrecto: Un requerimiento que estaba mal. Debe ser corregido o eliminado. Pregunta de implementación: Como lo desarrolladores implementan los requerimientos, tienen preguntas acerca de cómo debería funcionar algo o sobre alternativas de diseño. Requerimientos duplicados: Se descubren dos o más requerimientos equivalentes. Eliminar todos menos uno de ellos. Requerimientos innecesarios: Un requerimiento simplemente no se necesita más. [1] Proceso control de cambios: El proceso de cambios debe definir cómo se proponen los cambios de requerimientos, para luego analizarlos y resolverlos. [1] Requerimiento: Una descripción detallada de lo que el software tiene que hacer. [2] Requerimiento funcional: Son declaraciones de los servicios que debe proporcionar el sistema, de la manera en que esté debe reaccionar a entradas particulares y de cómo se debe comportar en situaciones particulares. [4] Requerimiento no funcional: Son restricciones de los servicios o funciones ofrecidos por el sistema. Incluyen restricciones de tiempo, sobre el proceso de desarrollo y estándares. [4] 7
2. Funcionalidades ERMT 2.0 El siguiente capítulo tiene como propósito definir el flujo de información necesaria para que cada funcionalidad de ERMT 2.0 correctamente y es proporcionada por el usuario final. 2.1. Línea base de requerimientos 2.1.1. Crear línea base de requerimientos Variable Tipo Tamaño Valores Nom_LineaBase Texto 100 Indica el nombre correspondiente a línea base creada. Versión Alfanumérico 10 Indica una referencia única para [0...9].[0 9] esta línea base. Alfanumérico 500 Indica una breve explicación del porque se escogieron esos requerimientos y el responsable. Lista_Req Texto 50 Lista donde se muestran y seleccionan los requerimientos del proyecto que van hacer parte de esta línea base. Tabla 2 Crear línea base requerimientos 2.1.2. Consultar línea base de requerimientos Variable Tipo Tamaño Valores Lista_LineasBase Texto 50 Lista donde se muestran las líneas base de requerimientos del proyecto. Tabla 3 Consultar línea base requerimientos 2.1.3. Eliminar línea base de requerimientos Variable Tipo Tamaño Valores Lista_LineasBase Texto 50 Lista donde se muestran las líneas base de requerimientos del proyecto. Tabla 4 Eliminar línea base requerimientos 8
2.2. Control de versiones en los requerimientos 2.2.1. Modificar requerimiento Variable Tipo Tamaño Valores Lista_Req Texto 50 Lista donde se muestran los requerimientos y se selecciona un requerimiento del proyecto. Fecha Texto 15 Este parámetro indica la fecha en que se realiza la modificación DD/MM/AAAA del requerimiento. Alfanumérico 300 Indica la descripción del requerimiento, el cual se puede editar Versión Alfanumérico 10 Indica la versión asociada a ese requerimiento, el cual cambia cuando se edita. Texto 20 Indica el actual estado del requerimiento, el cual puede ser modificado. Responsable Texto 25 Indica la persona responsable de cambiar la descripción, estado y versión del requerimiento. Tabla 5 Modificar requerimiento [0...9].[0 9] Propuesto Aprobado Verificado Eliminado Rechazado 2.2.2. Consulta historial de cambios en los requerimientos Variable Tipo Tamaño Valores Lista_Req_Versiones Texto 50 Lista donde se muestran los requerimientos con sus correspondientes cambios, estados y versiones. Tabla 6 Historial de cambios 2.3. Problemas en los requerimientos 2.3.1. Asociar problema a un requerimiento Variable Tipo Tamaño Valores Lista_Req Texto 50 Lista donde se muestran los requerimientos y se selecciona un requerimiento del proyecto. 9
Fecha Texto 15 Este parámetro indica la fecha en que se asocia el problema al requerimiento. Descripcion_Prob Alfanumérico 300 Indica la descripción del problema (el requerimiento es ambiguo, esta repetido etc.) asociado al requerimiento escogido. Stakeholders Alfanumérico 300 Indica los stakeholders que se ven afectados por el problema. Posible_Sol Alfanumérico 300 Indica la posible solución a ese problema. Tabla 7 Asociar problema a un requerimiento DD/MM/AAAA 2.3.2. Editar problema a un requerimiento Variable Tipo Tamaño Valores Lista_Req_Pro Texto 50 Lista donde se muestran los requerimientos y se selecciona un requerimiento del proyecto que tiene asociado un problema. Descripcion_Prob Alfanumérico 300 Indica la descripción del problema (el requerimiento es ambiguo, esta repetido etc.) asociado al requerimiento escogido. Stakeholders Alfanumérico 300 Indica los stakeholders que se ven afectados por el problema. Posible_Sol Alfanumérico 300 Indica la posible solución a ese problema. Razon_Cambio Alfanumérico 300 Indica cual fue el motivo de editar el problema asociado a ese requerimiento. Tabla 8 Editar problema a un requerimiento 2.3.3. Eliminar problema a un requerimiento Variable Tipo Tamaño Valores Lista_Req_Pro Texto 50 Lista donde se muestran los requerimientos y se selecciona un requerimiento del proyecto que tiene asociado un problema. Solucion_Prob Alfanumérico 300 Indica la descripción de cómo se pudo solucionar el problema asociado a ese requerimiento. Tabla 9 Eliminar problema a un requerimiento 10
2.3.4. Generar reporte problemas en los requerimientos Nombre proyecto Fecha Número de requerimientos Id Requerimiento Fecha creación Problema Stakeholders afectados Posible solución Razón cambio Solución Indica el nombre del proyecto DD/MM/AAAA Indica la cantidad de requerimientos con problemas asociados al proyecto. Identificador único del requerimiento DD/MM/AAAA Solucionado/No solucionado Tabla 10 Generar reporte problemas en los requerimientos 2.4. Matriz de trazabilidad Variable Tipo Tamaño Valores Opcion_Req Texto 50 Opción que permite seleccionar el eje donde aparecen los requerimientos y el tipo de matriz. Opcion_CU Texto 50 Opción que permite seleccionar el eje donde aparecen los casos de uso y el tipo de matriz. Tabla 11 Matriz de trazabilidad Verdadero, Falso Verdadero, Falso 2.4.1. Reportes matriz de trazabilidad En esta sección se muestra la matriz de trazabilidad que se pueden generar a través de esta opción. Id Requerimiento Casos de uso asociados 1 CU 001, CU 002. 2 CU 002. 3 CU 001, CU 003. 4 CU 004. 5 CU 005. Tabla 12 Reporte matriz 1 11
2.5. Gestión de riesgos 2.5.1. Identificación de riesgos Variable Tipo Tamaño Valores Lista_Req Texto 50 Lista donde se muestran los requerimientos y se selecciona un requerimiento del proyecto. Identidad Texto 10 Indica el nivel de riesgo cuando no se sabe o no se puede identificar requerimientos clave. Volatilidad Texto 10 Indica el nivel de riesgo los requerimientos pueden cambiar fácilmente. Complejidad Texto 10 Indica el nivel de riesgo cuando los requerimientos son difíciles de entender y especificar. Tabla 13 Identificación de riesgos Alto Medio Bajo Alto Medio Bajo Alto Medio Bajo 2.5.2. Editar riesgo a requerimiento Variable Tipo Tamaño Valores Lista_Req Texto 50 Lista donde se muestran los requerimientos y se selecciona un requerimiento del proyecto. Identidad Texto 10 Indica el nivel de riesgo cuando no se sabe o no se puede identificar requerimientos clave. Volatilidad Texto 10 Indica el nivel de riesgo los requerimientos pueden cambiar fácilmente. Complejidad Texto 10 Indica el nivel de riesgo cuando los requerimientos son difíciles de entender y especificar. Tabla 14 Editar riesgo Alto Medio Bajo Alto Medio Bajo Alto Medio Bajo 2.5.3. Generar técnica de mitigación Variable Tipo Tamaño Valores Lista_Req_Riesgos Texto 50 Lista donde se muestran los requerimientos que tiene asociado un riesgo. Tabla 15 Técnica de mitigación 12
3. Documentación Requerimientos funcionales 3.1. Control de versiones ID Requerimiento REQ 001 Versión 1.0.0 25/03/2014 18/05/2014 El sistema debe permitir crear una línea base de requerimientos. CU 001, SRS. Se pudo crear un conjunto de requerimientos como línea base. Verificado REQ 003. Tabla 16 Requerimiento funcional 001 ID Requerimiento REQ 002 Versión 1.0.0 Media 25/03/2014 18/05/2014 El sistema debe permitir consultar las líneas base de requerimientos. CU 001, SRS. Se pudo listar todas las líneas base de requerimientos del proyecto. Verificado REQ 001. Tabla 17 Requerimiento funcional 002 ID Requerimiento REQ 003 Versión 1.0.0 Baja 25/03/2014 19/05/2014 El sistema debe permitir eliminar una línea base de requerimientos. 13
CU 001, SRS. Se pudo eliminar la línea base, sin que se vean afectados los requerimientos asociados a ella. Verificado REQ 001, REQ 002. Tabla 18 Requerimiento funcional 003 3.2. Seguimiento de estado ID Requerimiento REQ 004 Versión 1.0.0 Media 26/03/2014 19/05/2014 El sistema debe permitir asociar un problema a un requerimiento. CU 004, SRS. El usuario puede visualizar el problema a un requerimiento. Verificado REQ 007. Tabla 19 Requerimiento funcional 004 ID Requerimiento REQ 005 Versión 1.0.0 Media 26/03/2014 19/05/2014 El sistema debe permitir editar un problema a un requerimiento. CU 005, SRS. El usuario puede modificar el problema asociado a un requerimiento. Verificado REQ 007. Tabla 20 Requerimiento funcional 005 14
ID Requerimiento REQ 006 Versión 1.0.0 Media 26/03/2014 20/05/2014 El sistema debe permitir eliminar un problema a un requerimiento. CU 006, SRS. El usuario puede eliminar el problema asociado a un requerimiento. Verificado REQ 007. Tabla 21 Requerimiento funcional 006 ID Requerimiento REQ 007 Versión 1.0.0 27/03/2014 21/05/2014 El sistema debe permitir generar un reporte de problemas en los requerimientos. CU 007, SRS. El usuario puede visualizar y guardar el reporte general de los problemas asociados a los requerimientos. Verificado REQ 004, REQ 005, REQ 006. Tabla 22 Requerimiento funcional 007 3.3. Control de cambios ID Requerimiento REQ 008 Versión 1.0.0 Media 25/03/2014 21/05/2014 El sistema debe permitir modificar un requerimiento. CU 002, SRS. 15
Cada requerimiento del proyecto de puede modificar su descripción, estado y versión. Verificado REQ 009. Tabla 23 Requerimiento funcional 008 ID Requerimiento REQ 009 Versión 1.0.0 Baja 27/03/2014 21/05/2014 El sistema debe permitir consultar el historial de cambios en los requerimientos. CU 003, SRS. El usuario puede consultar los cambios realizados a un requerimiento. Verificado REQ 008. Tabla 24 Requerimiento funcional 009 3.4. Trazabilidad ID Requerimiento REQ 010 Versión 0.1.0 27/03/2014 El sistema debe permitir generar una matriz de trazabilidad de casos de usos relacionados. CU 008, SRS. El usuario puede visualizar y guardar la matriz de trazabilidad entre las relaciones de requerimientos y casos de uso. Aprobado REQ 011. Tabla 25 Requerimiento funcional 010 16
3.5. Riesgos ID Requerimiento REQ 012 Versión 1.0.0 28/03/2014 22/05/2014 El sistema debe permitir asociar un riesgo a un requerimiento. CU 009, SRS. El usuario puede escoger Verificado REQ 013. Tabla 26 Requerimiento funcional 012 ID Requerimiento REQ 013 Versión 1.0.0 28/03/2014 22/05/2014 El sistema debe permitir editar un riesgo a un requerimiento. CU 009, SRS. El usuario puede editar el nivel de prioridad del riesgo asociado al requerimiento. Verificado REQ 012. Tabla 27 Requerimiento funcional 013 3.6. Técnicas de mitigación ID Requerimiento REQ 014 Versión 0.1.0 28/03/2014 El sistema debe generar el nivel de énfasis para cada técnica de mitigación. CU 010, SRS. 17
El usuario puede visualizar los diferentes niveles para cada técnica. REQ 012, REQ 013, REQ 015. Tabla 28 Requerimiento funcional 014 ID Requerimiento REQ 015 Versión 0.1.0 28/03/2014 El sistema debe permitir consultar los riesgos en los requerimientos. CU 010, SRS. El usuario puede visualizar los diferentes niveles para cada técnica. REQ 012, REQ 013, REQ 014. Tabla 29 Requerimiento funcional 015 4. Documentación requerimientos no funcionales 4.1. Desempeño ID Requerimiento REQ 016 Versión 1.0.0 01/01/2014 El tiempo de respuesta no debe ser superior a los 30 segundos. El tiempo de respuesta del sistema ante cualquier consulta no debe superar los treinta segundos. REQ 017, REQ 018. Tabla 30 Requerimiento no funcional 016 18
ID Requerimiento REQ 017 Versión 1.0.0 01/01/2014 El sistema deberá generar el grafo de los requerimientos en no más de 60 segundos. El grafo se genera en un tiempo máximo de 60 segundos. REQ 016, REQ 018. Tabla 31 Requerimiento no funcional 017 ID Requerimiento REQ 018 Versión 1.0.0 01/01/2014 El sistema debe calcular la priorización en un tiempo máximo de 60 segundos. Los valores de priorización de los requerimientos deben realizarse en no más de 60 segundos. REQ 016, REQ 017. Tabla 32 Requerimiento no funcional 018 4.2. Disponibilidad ID Requerimiento REQ 019 Versión 1.0.0 REQ 020. 02/01/2014 El sistema debe iniciarse cada vez que el usuario así lo desee. La disponibilidad de la herramienta debe estar disponible y funcional 24/7. 19
Tabla 33 Requerimiento no funcional 019 ID Requerimiento REQ 020 Versión 1.0.0 02/01/2014 El sistema solo se debe ejecutar una vez. La aplicación no se debe ejecutar más de dos veces de manera concurrente. REQ 019. Tabla 34 Requerimiento no funcional 020 4.3. Usabilidad ID Requerimiento REQ 021 Versión 1.0.0 Media 02/01/2014 El sistema debe contar con una ayuda. El usuario tiene la opción de ayuda a través del manual de usuario. REQ 022. Tabla 35 Requerimiento no funcional 021 ID Requerimiento REQ 022 Versión 1.0.0 Media 03/01/2014 El sistema debe contar con un tutorial. 20
El manual de usuario debe permitir al usuario instalar y manejar la aplicación de manera correcta. REQ 021. Tabla 36 Requerimiento no funcional 022 4.4. Mantenibilidad ID Requerimiento REQ 023 Versión 1.0.0 Medio 03/01/2014 El sistema debe estar organizado por módulos. Los componentes de GUI, lógica y persistencia, deben estar en diferentes componentes. REQ 024. Tabla 37 Requerimiento no funcional 023 ID Requerimiento REQ 024 Versión 1.0.0 Medio 03/01/2014 El sistema debe estar documentado por medio de la herramienta JavaDoc. Toda clase y método de la aplicación debe estar documentado mediante la herramienta JavaDoc. REQ 023. Tabla 38 Requerimiento no funcional 024 4.5. Portabilidad ID Requerimiento REQ 025 Versión 1.0.0 21
04/01/2014 El sistema debe ser instalado en Sistemas Operativos Windows XP o superior. La aplicación no debe tener inconvenientes en la instalación en sistemas operativos Windows. Ninguno Tabla 39 Requerimiento no funcional 025 4.6. Funcionalidad ID Requerimiento REQ 026 Versión 1.0.0 Media 04/01/2014 El sistema debe ser compatible con Microsoft Word 2007. Los documentos generados por los diferentes tipos de reportes que existen en la herramienta, se deben poder abrir con Microsoft Word 2007 o superior. REQ 027. Tabla 40 Requerimiento no funcional 026 ID Requerimiento REQ 027 Versión 1.0.0 Media 05/01/2014 El sistema debe ser compatible con Microsoft Excel 2007. Los documentos generados por los diferentes tipos de reportes que existen en la herramienta, se deben poder abrir con Microsoft Excel 2007 o superior. 22
REQ 026. Tabla 41 Requerimiento no funcional 027 4.7. Confiabilidad ID Requerimiento REQ 028 Versión 1.0.0 05/01/2014 El sistema debe informar sobre los fallos en la creación de artefactos. Cada vez que ocurra un fallo por la creación de artefactos, se mostrará una ventana de advertencia por pantalla. REQ 029. Tabla 42 Requerimiento no funcional 028 ID Requerimiento REQ 029 Versión 1.0.0 Media 05/01/2014 El sistema debe informar sobre los fallos en la modificación de artefactos. Cada vez que ocurra un fallo por la modificación de artefactos, se mostrará una ventana de advertencia por pantalla. REQ 028. Tabla 43 Requerimiento no funcional 029 5. Referencias [1] K. E. Wiegers and J. Beatty, Software requirements. 2013. 23
[2] Software Project Management Boot Camp Construx. [Online]. Available: http://www.construx.com/seminars/base_seminar/software_project_management_boot_camp /#0. [3] ERMT. [Online]. Disponible: http://pegasus.javeriana.edu.co/~cis1010is05/index.html. [4] I. Sommerville, Software Engineering. Addison-Wesley, 2007. [5] J. Beatty and A. Chen, Visual Models for Software Requirements: An Rml Handbook. [s.l.]: Microsoft Pr, 2012 24