Herramienta para la administración de requerimientos de los proyectos de las asignaturas de Ingeniería de Software y Arquitectura de Software de la Pontificia Universidad Javeriana Software Requirements Specification SRS VANESA CAROLINA LOAIZA CARVAJAL LAURA CATALINA ZORRO JIMÉNEZ 2010 PONTIFICIA UNIVERSIDAD JAVERIANA HISTORIAL DE CAMBIOS FECHA VERSIÓN DESCRIPCIÓN RESPONSABLE 12-10-10 1.0 Secciones 1,2 Vanesa Carolina Loaiza, Laura Catalina Zorro 13-10-10 1,1 Secciones 3.1 y 3.2 Vanesa Carolina Loaiza, Laura Catalina Zorro 23-10-10 1.2 Secciones 3.3 , 3.4 y Vanesa Carolina Loaiza, Laura 3.5 Catalina Zorro 25-10-10 1.3 Sección 3.1.1. 2.5 Vanesa Carolina Loaiza, Laura Catalina Zorro 31-10-10 1.4 Sección 3.6 Vanesa Carolina Loaiza, Laura Catalina Zorro 01-11-10 1.5 Correcciones varias Vanesa Carolina Loaiza, Laura Catalina Zorro 16-11-10 1.6 Correcciones Interfaces Externas Vanesa Carolina Loaiza, Laura Catalina Zorro 30-11-10 1.7 Actualización tablas requerimientos de Vanesa Carolina Loaiza, Laura de Catalina Zorro 09-12-10 1.8 Actualización tablas requerimientos de Vanesa Carolina Loaiza, Laura de Catalina Zorro 18-12-10 1.9 Actualización tablas requerimientos de Vanesa Carolina Loaiza, Laura de Catalina Zorro 28-12-10 1.9 Actualización tablas requerimientos de Vanesa Carolina Loaiza, Laura de Catalina Zorro 06-01-11 2.0 Actualización de Vanesa Carolina Loaiza, Laura 2 11-01-11 2.1 tablas requerimientos de Catalina Zorro Actualización tablas requerimientos de Vanesa Carolina Loaiza, Laura de Catalina Zorro Tabla 1: Historial de cambios 3 TABLA DE CONTENIDO HISTORIAL DE CAMBIOS ...................................................................................................................... 2 TABLA DE CONTENIDO ........................................................................................................................ 4 ÍNDICE DE TABLAS ............................................................................................................................... 6 1. INTRODUCCIÓN ........................................................................................................................... 7 1.1. Propósito ............................................................................................................................. 7 1.2. Alcance ................................................................................................................................ 7 1.3. Definiciones, acrónimos y abreviaciones ............................................................................ 8 1.4. Referencias .......................................................................................................................... 8 1.5. Apreciación global ............................................................................................................. 10 2. DESCRIPCIÓN GLOBAL ............................................................................................................... 12 2.1. Perspectiva del producto .................................................................................................. 12 2.1.1. Interfaces con el Sistema .......................................................................................... 12 2.1.2. Interfaces con el Usuario .......................................................................................... 12 2.1.3. Interfaces con el Hardware ...................................................................................... 13 2.1.4. Interfaces con el Software........................................................................................ 13 2.1.5. Interfaces de comunicación ...................................................................................... 14 2.1.6. Restricciones de Memoria......................................................................................... 14 2.1.7. Operaciones .............................................................................................................. 15 2.1.8. Requerimientos de Adaptación del Sitio ................................................................... 15 2.2. Funciones del producto ..................................................................................................... 15 2.3. Características del Usuario ................................................................................................ 16 2.4. Restricciones ..................................................................................................................... 18 2.5. Modelo del Dominio.......................................................................................................... 18 2.6. Suposiciones y Dependencias ........................................................................................... 18 2.6.1. Suposiciones .............................................................................................................. 18 2.6.2. Dependencias ............................................................................................................ 19 2.7. Distribución de Requerimientos........................................................................................ 19 2.7.1. Distribución de los requerimientos Funcionales ....................................................... 19 2.7.2. Distribución de los Requerimientos No Funcionales ................................................ 21 2.8. Trazabilidad y Localización ................................................................................................ 22 2.9. Priorización de Requerimientos ........................................................................................ 23 2.10. Relación entre Requerimientos..................................................................................... 25 3. REQUERIMIENTOS ESPECÍFICOS ................................................................................................ 26 3.1. Requerimientos de Interfaces Externas ............................................................................ 27 3.1.1. Interfaces con el Usuario........................................................................................... 27 3.1.2. Interfaces con el Hardware ....................................................................................... 27 3.1.3. Interfaces con el Software......................................................................................... 27 3.1.4. Interfaces de Comunicación ...................................................................................... 27 3.2. Características del Producto de Software ......................................................................... 28 4 3.2.1. Atributos y Clasificación ............................................................................................ 28 3.2.2. Administración del Cambio ....................................................................................... 28 3.2.3. Priorización ................................................................................................................ 28 3.2.4. Localización y trazabilidad......................................................................................... 28 3.2.5. V&V............................................................................................................................ 28 3.2.6. Visualización y reportes ............................................................................................ 28 3.2.7. Proyecto .................................................................................................................... 29 3.3. Requerimientos de Desempeño ........................................................................................ 29 3.4. Restricciones de Diseño .................................................................................................... 29 3.5. Atributos del Sistema ........................................................................................................ 30 3.5.1. Confiabilidad ............................................................................................................. 30 3.5.2. Disponibilidad ............................................................................................................ 30 3.5.3. Usabilidad .................................................................................................................. 31 3.5.4. Mantenibilidad .......................................................................................................... 31 3.5.5. Portabilidad ............................................................................................................... 31 3.5.6. Funcionalidad ............................................................................................................ 31 3.6. Requerimientos de la Base de Datos ................................................................................ 31 4. ANEXOS ..................................................................................................................................... 33 4.1. Anexo 1: Tabla de priorización .......................................................................................... 33 4.2. Anexo 2: Relaciones entre los requerimientos ................................................................. 33 4.3. Anexo 3: Grafo de implementación .................................................................................. 33 4.4. Anexo 4: Modelo del dominio ........................................................................................... 33 5 ÍNDICE DE TABLAS TABLA 1: HISTORIAL DE CAMBIOS ...................................................................................... 3 TABLA 2: DEFINICIONES, ACRÓNIMOS Y ABREVIACIONES ................................................................ 8 TABLA 3. INTERFACES CON EL SOFTWARE ............................................................................. 14 TABLA 4: RESTRICCIONES DE MEMORIA ................................................................................ 14 TABLA 5: CASOS DE USO .............................................................................................. 16 TABLA 6. USUARIOS .................................................................................................. 17 TABLA 7. TRAZABILIDAD Y LOCALIZACIÓN ............................................................................. 22 TABLA 8: PLANTILLA DE ESPECIFICACIÓN DE REQUERIMIENTOS. TOMADO DE [13][14] ................................ 27 TABLA 30. RESTRICCIONES DE DISEÑO ................................................................................ 30 6 1. INTRODUCCIÓN 1.1. Propósito El objetivo de éste documento es proporcionar una guía de desarrollo [1] para el grupo de trabajo, además de una descripción detallada del sistema de administración de requerimientos que se quiere implementar. Esta especificación está conformada por una definición y descripción del software con relación a las necesidades que se quieren suplir, es decir los requerimientos funcionales y no funcionales. Adicional a la especificación de los requerimientos, este documento delimita el sistema a los recursos que se poseen, es decir que tiene en cuenta las restricciones que intervienen en el desarrollo del proyecto y las interfaces con otros sistemas a manejar. 1.2. Alcance Este documento describe de manera detallada los requerimientos de la herramienta ERMT, la cual será desarrollada como Trabajo de Grado de las estudiantes Vanesa Carolina Loaiza y Laura Catalina Zorro, y está dirigida a los estudiantes y profesores de las asignaturas de IS y AS de la Pontificia Universidad Javeriana. La Herramienta tiene como objetivo agilizar el proceso de administración de requerimientos en los proyectos de las asignaturas IS y AS, por medio de las funcionalidades que se describen a continuación. Las funcionalidades que estarán disponibles en la herramienta son: - Administración de los atributos de un requerimiento. - Administración del cambio en los requerimientos. - Clasificación los requerimientos. - Priorización de los requerimientos. - Localización de los requerimientos. - Trazabilidad de los requerimientos. - Validación y Verificación de los requerimientos. - Visualización de requerimientos. - Generación de reportes. 7 Es importante resaltar, que para la administración del cambio, solo será almacenado el porqué del cambio y se actualizara la versión del requerimiento, esta funcionalidad no almacenara el historial en donde se encuentren las versiones anteriores del requerimiento, además el procesos de verificación y validación será apoyado a través de listas de comprobación. 1.3. Definiciones, acrónimos y abreviaciones CONCEPTO DESCRIPCIÓN AS Arquitectura de Software IS Ingenierías de Software ERMT Hace referencia a las iniciales del Nombre designado para la herramienta, el cual es: Easy Requirement Management Tool. JavaDoc Es una herramienta que permite generar la documentación del código Java [15] Stand Alone Es un sistema el cual no depende de otros sistemas para su funcionamiento [7]. Tabla 2: Definiciones, acrónimos y abreviaciones 1.4. [1]. Referencias Thayer Richard, Dorfman Merlin. SOFTWARE REQUIREMENTS ENGINEERING. Segunda Edición. Los Alamitos, California. Estados Unidos: IEEE COMPUTER SOCIETY, 2000. [2]. Microsoft, disponible en: http://www.microsoft.com/about/default.mspx. [Última consulta: Septiembre 30 de 2010] [3]. JVM, disponible en: http://java.sun.com/javase/6/docs/technotes/guides/vm/index.html?intcmp=3170 consulta: Septiembre 30 de 2010] 8 [Última [4]. JDBC, disponible en: http://java.sun.com/products/jdbc/overview.html [Última consulta: Septiembre 30 de 2010] [5]. Generadores de reportes, disponible en: http://www.adobe.com/es/products/reader/ [Última consulta: Septiembre 30 de 2010] [6]. Laboratorios Ingeniería de sistemas. [Homepage] Disponible en: http://puj- portal.javeriana.edu.co/portal/page/portal/Facultad%20de%20Ingenieria/plt_dpto_sistemas/Labo ratorios [Última consulta: Septiembre 30 de 2010] [7]. About.com. Stand Alone Software, Definition. [Homepage en Internet]. Disponible en: http://financialsoft.about.com/od/glossaryindexs/g/StandAlone.htm. [Última Fecha de consulta: Octubre 4 de 2010]. [8]. IEEE std. 830-1998. IEEE recomended practice for software requirements specifications, IEEE, 1998. [9]. JavaDocx. [Homepage en Internet]. Disponible en http://www.javadocx.com/. [Última Fecha de consulta: Noviembre 16 de 2010]. [10]. ISO 9126. [Documento en Internet] Disponible en: http://www.cis.gsu.edu/~ghubona/cis8300/ISO9126.pdf [Ultima consulta: Septiembre 23 de 2010]. [11]. IEEE std. 830-1998. IEEE recomended practice for software requirements specifications, IEEE, 1998Wiegers, Karl. FIRST THING FIRST; PRIORITIZING REQUIREMENTS. Process Impact, Disponible en: http://www.processimpact.com/articles/prioritizing.html. [Última Fecha de Consulta: Octubre. 12 de 2010]. [12]. Berander, P. Andrews, A. Engineering and Managing Software Requirements. [Libro en Internet]. Springer Berlin Heidelberg. 2005. Pg. 69-94. [Fecha de consulta: Octubre 12 de 2010]. [13]. Buitrago M, Cáceres D, Loaiza C, Medina O, Muños R, Tenjo J. SRS: Pirate Risk. Versión 3.2. 9 [14]. González A, Jaramillo C, Narváez M, Oquendo T, Villalobos V, Zorro L. Demented Movie Game. Especificación de Requerimientos de Software. Versión 4.1 [15]. JAVADOC Documentation Tool. [Homepage en Internet]. Disponible en: http://www.oracle.com/technetwork/java/javase/documentation/index-jsp-135444.html. [Última Fecha de consulta: Octubre 25 de 2010] [16]. Graphviz - Graph Visualization Software. [Homepage en Internet]. Disponible en: http://www.graphviz.org/About.php. [Última Fecha de consulta: Octubre 26 de 2010] [17]. Loaiza C, Zorro L. 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, Marco Teórico. [18]. Marquez, Mercedes. Ventajas y desventajas sobre la base de datos. [Homepage]. Disponible en: http://www3.uji.es/~mmarques/f47/apun/node7.html [ültima fecha de consulta: Octubre 31 de 2010]. [19]. Carreño, Julio. SQL/PM y PL. Presentación 1: Store Procedures[Presentación de clase]. [20]. MySQL: Información general. [Homepage]. Disponible en: http://dev.mysql.com/doc/refman/5.0/es/introduction.html [Última fecha de consulta: Octubre 31 de 2010]. 1.5. Apreciación global Este documento se organiza en cuatro partes principales, las cuales tienen como objetivo dar a conocer los aspectos más importantes del desarrollo de la herramienta, y establecer un entendimiento común entre los Stakeholders del proyecto. Primera parte – Introducción (ver Sección 1) o esta sección se encarga de presentarle al lector cuales son las razones por las cuales se desarrolla el documento, cual es el propósito y el alcance de la 10 herramienta a desarrollar y finalmente para generar el contexto adecuado, las definiciones de los términos y abreviaciones utilizadas en el documento. Segunda Parte – Descripción Global (ver Sección 2) o Esta sección se encarga de especificar los aspectos directamente relacionados con el software en desarrollo, mostrando las diferentes interfaces con las que la herramienta interactuará para lograr un rendimiento óptimo. Tercera Parte – Requerimientos Específicos (ver Sección 3) o En esta sección se encuentra la unidad que representa la mayor importancia en este documento debido a que se especifican de manera detallada los requerimientos funcionales y no funcionales que debe suplir la herramienta para cumplir con las necesidades expuestas por los clientes. Cuarta Parte – Métricas de los requerimientos (ver Sección 4) o Finalmente esta sección explica las métricas que se van a aplicar sobre los requerimientos. 11 2. DESCRIPCIÓN GLOBAL 2.1. Perspectiva del producto Ver Sección 4.1 Perspectiva del producto del documento de Visión 2.1.1. Interfaces con el Sistema ERMT, como ya fue descrito en la sección 1.2 Alcance, tiene como objetivo agilizar el proceso de administración de requerimientos, para lo cual es necesario que dentro de las funcionalidades se encuentre la generación de reportes. Es por esto que la herramienta debe interactuar con procesadores de texto, los cuales permitirán la generación de los reportes. 2.1.2. Interfaces con el Usuario La herramienta ERMT, tendrá diferentes interfaces con el usuario, la cual se enumera según el hardware utilizado. Entre los dispositivos necesarios para el producto se tienen: TECLADO •Se utiliza para la entrada de datos al sistema por parte del usuarios, relacionados con los requerimientos y su información detallada. MOUSE •Se utiliza para la entrada de instrucciones dentro de un entorno gráfico facilitando al usuario su desenvolvimiento dentro del sistema. PANTALLA •Se utiliza para mostrar información como los resultados por parte del sistema, ya que a través de la pantalla el usuario, con ayuda de la GUI, el usuario puede desarrollar las diferentes tareas y ver los resultados de sus peticiones en resumen, es el principal medio de comunicación del sistema con el usuario. Ilustración 1: Interfaces con el usuario 12 2.1.3. Interfaces con el Hardware Debido a que la Herramienta ERMT será una aplicación Stand Alone, esta no contará con ningún tipo de interacción con elementos de hardware. 2.1.4. Interfaces con el Software Las interfaces con el software, son las diferentes aplicaciones que interactúan con la herramienta ERMT para poder cumplir con las necesidades del usuario. En la Tabla 3 se describen cada uno de los productos que deberán interactuar con el sistema. Producto de Software Descripción Propósito de Uso Versión Fuente Windows Sistema operativo desarrollado por Microsoft, basado en Windows NT, Es el sistema operativo Windows XP Microsoft sobre el cual se Professional SP Corporati desarrollara y ejecutará el 2 o Superior on.[2] sistema. JVM Máquina virtual de Java, se encarga de traducir lenguaje de alto nivel a lenguaje binario Puesto que el lenguaje de Java SE 6 programación que se usará para el desarrollo de la aplicación, que es Java, no es un lenguaje de bajo nivel o de máquina es necesario usar un intérprete que permita la correcta ejecución de estas instrucciones. JDBC Java Database Connectivity, es una API que permite la ejecución de operaciones sobre bases de datos desde el lenguaje de programación Java, emplea el lenguaje de query SQL. Sun Microsyst ems [3] Sun Microsyst ems, Inc. [4] Proporciona un acceso 4.0 confiable a los datos de las bases de datos SQL, debido a que la aplicación requiere realizar operaciones de consulta y actualización en la base de datos. 13 GraphViz Software de código libre Es una herramienta que 2.26 para la visualización de permite la generación de grafos [16]. grafos. Graphviz[ 16] MySQL Software que Se utiliza para la gestión de 5.1.41 proporciona un servidor los datos dentro de una de base de datos SQL base de datos relacional (Structured Query Language) muy rápido, multi-threaded, multi usuario y robusto. [20] MySQL [20] Tabla 3. Interfaces con el Software 2.1.5. Interfaces de comunicación La única comunicación que se mantendrá, es la que se establece entre el procesador de texto de Microsoft Office conocido como Word y la herramienta, para lo cual se utilizará la librería Javadox [9] la cual permite la interacción entre el lenguaje de programación Java y Microsoft Office. 2.1.6. Restricciones de Memoria Para asegurar el buen funcionamiento de la herramienta ERMT, se necesita que los equipos donde se ejecutará la aplicación, cumplan con los requerimientos mínimos de memoria que se encuentran enumerados en la Tabla 4. Programa Disco Duro Memoria Ram Maquina virtual java JRE 1.6 600 MB 64 MB NetBeans IDE 6.7 750 MB 512 MB Tortoise SVN 40 MB 512 MB Windows XP 1.5 GB 128 MB MySQL 4 GB 512 MB Tabla 4: Restricciones de memoria 14 2.1.7. Operaciones La herramienta ERMT cuenta un único tipo de usuario, el cual contará con las siguientes operaciones: - Crear, Modificar y eliminar un proyecto. - El usuario solo puede crear un proyecto. - Realizar consultas sobre el proyecto creado. - El usuario podrá almacenar la información de su proyecto, mediante la operación Guardar, la cual se realizará cada vez que el usuario ingresa y modifica la información del proyecto. Por otro lado, la herramienta no contará con funciones de recuperación de datos en caso de que ocurran fallos en la comunicación entre la herramienta y la base de datos en la cual va a ser almacenada la información. 2.1.8. Requerimientos de Adaptación del Sitio La herramienta ERMT, se debe ejecutar sobre las máquinas instaladas en la Pontificia Universidad Javeriana, por lo tanto las maquinas externas donde se desee ejecutar deben adaptarse a las siguientes especificaciones (mínimas) de hardware y software [6]: 2.2. Disco Duro: 120 GB. Memoria RAM (Principal): 2 GB. Procesador: Intel Core2 Dúo @2.40 GHz. Resolución de pantalla: 1600 X 900 pixeles. Sistema Operativo: Windows XP o superior. Java Virtual Machine 1.6. JDK versión: 1.6.0_14. Funciones del producto En la Tabla 5, se muestra los casos de uso que representan las funcionalidades del sistema: Identificador CU01 CU02 CU03 CU04 CU05 CU06 Nombre Actualizar control de cambios Actualizar relaciones entre requerimientos Actualizar requerimiento Actualizar valor atributos Actualizar valores de lista V&V Actualizar valores de localización 15 CU07 CU08 CU09 CU10 CU11 CU12 CU13 CU14 CU15 CU16 CU17 CU18 CU19 CU20 CU21 CU22 CU23 CU24 CU25 CU26 CU27 CU28 CU29 CU30 CU31 CU32 CU33 CU34 CU34 Actualizar valores de priorización Actualizar valores de trazabilidad Calcular grafo Calcular valor de priorización total Clasificar requerimiento Consulta atributos plantilla Consultar Cambios Consultar estado requerimiento Consultar estado total Consultar grafo Consultar lista de priorización Consultar lista de V&V Consulta localización Consultar requerimientos Consultar requerimientos clasificados Consultar requerimientos rechazados Consultar trazabilidad Consultar valore de atributos Crear requerimiento Eliminar requerimiento Generar reportes en Word Reanudar o rechazar requerimiento Seleccionar atributos Seleccionar métodos de priorización Generar reportes en Excel Crear Proyecto Eliminar Proyecto Abrir Proyecto Modificar Proyecto Tabla 5: Casos de uso Para más información Ver el documento de casos de uso anexo, Documento de CU.docx. 2.3. Características del Usuario Los usuarios finales de ERMT son los que se describen a continuación: Nombre Profesor Descripción Hace referencia a los encargados de impartir las materias de IS y AS en la pontificia universidad Javeriana. Este tipo de usuarios se 16 divide en: - Profesores de Ingeniería de Software Profesores de Arquitectura de Software Su interacción con ERMT se limita a la generación y revisión de los reportes de los requerimientos. Para mayor información ver Documento Vision.docx Sección 3.3 Resumen de Usuario Estudiante Hace referencia a las personas que cursan las materias de IS y AS, las cuales deben llevar a cabo la especificación de requerimientos de software del proyecto que se debe desarrollar en cada una. Al igual que el usuario profesor, este se divide en : - Estudiante de Ingeniería de Software. Estudiante de Arquitectura de Software (Para mayor información ver Documento Vision.docx Sección 3.3 Resumen de Usuario). Este tipo de usuario es considerado como el usuario principal de la herramienta, ya que es el, quien hará uso de las funciones descritas en la sección 2.2 Funciones del producto. Tabla 6. Usuarios Para poder hacer uso de la herramienta, los usuarios, descritos en la Tabla 6. Usuarios, deben contar con las siguientes características y conocimientos básicos para hacer un buen uso de esta. - Experiencia Técnica: El usuario debe contar con conocimientos básicos de computación - Conocimientos Académicos: El usuario debe estar cursando o haber cursado la asignatura Ingeniería de Software, esto con el fin de que este tenga claros conceptos como por ejemplo que es un requerimiento, que es localización y trazabilidad, verificación y validación. - Privilegios: El usuario podrá utilizar todas las funcionalidades descritas en los casos de uso listados en la sección 2.2 Funciones del Producto. 17 2.4. Restricciones A continuación se presentan las restricciones de la herramienta de administración de requerimientos. RESTRICCIONES GENERALES o Restricción de Idioma: El idioma español ha sido seleccionado para toda la documentación relacionada con el desarrollo y los manuales de la Herramienta ERMT. RESTRICCIONES DE SOFTWARE o Restricción de licencia: Los programas necesarios para el desarrollo de ERMT contaran con el esquema de licencia libre. o Restricción de maquina virtual: Cada equipo donde se desee correr la aplicación deberá contar con Java Virtual Machine (JVM) o Restricción de lenguajes de programación: el lenguaje seleccionado para el desarrollo de la parte de persistencia de bases de datos y la parte lógica será JAVA. RESTRICCIONES DE HARDWARE o Teniendo en cuenta las maquinas donde deberá correr la aplicación, las restricciones de hardware se encuentran descritas en la sección 2.1.8 (Requerimientos de Adaptación del Sitio). 2.5. Modelo del Dominio Para ver toda la información relacionada con el diagrama del modelo del dominio y el detalle de cada elemento ir al Anexo 4 2.6. Suposiciones y Dependencias 2.6.1. Suposiciones Los usuarios finales deben cumplir con las características descritas en la sección 2.3 Características del Usuario. Las Estudiantes Vanesa Carolina Loaiza y Laura Catalina Zorro, cuentan con los conocimientos técnicos necesarios para realizar la implementación de la herramienta. 18 El cliente, en este caso los profesores Miguel Eduardo Torres y Jamir Ávila tienen la disponibilidad de tiempo suficiente para solucionar cualquier duda referente al proyecto. El cliente no realizará cambios significativos en los requerimientos. Para más suposiciones ver Sección 4.3.1 Suposiciones en el documento de Visión. 2.6.2. Dependencias Para el correcto funcionamiento de la herramienta, es adecuado que se cumplan los requerimientos descritos en la sección 3.1 Requerimientos de Interfaces Externas. Los usuarios finales utilizaran la aplicación en equipos que cuentan con las características de hardware, software mínimas descritas en la sección 2.3 Restricciones. 2.7. Para más suposiciones ver Sección 4.3.2 Dependencias en el documento de Visión. Distribución de Requerimientos Para realizar la distribución de los requerimientos de manera más detallada, es necesario dividirlos en dos tipos, los requerimientos funcionales y los requerimientos no funcionales. Una vez distribuidos de esta manera, es necesario definir las sub categorías de estos requerimientos, es por esto que se han definido las secciones 2.7.1 Distribución de los Requerimientos Funcionales y 2.7.2 Distribución de los Requerimientos No Funcionales. 2.7.1. Distribución de los requerimientos Funcionales La distribución de los Requerimientos Funcionales de la herramienta se agrupan en seis categorías (ver Ilustración 2) principales que son: “Atributos y Clasificación”, “Administración de Cambios”, “Priorización”, “Localización y Trazabilidad”, “Validación y Verificación” y “Visualización y Reportes”, para ver los requerimientos pertenecientes a estas categorías dirigirse a la Sección 3.2 Características del Producto de Software. 19 Atributos y Clasificación Administración de Cambios Priorización Requerimientos Funcionales Localización y Trazabilidad Validación y Verificación Visualización y Reportes Proyecto Ilustración 2. Distribución de Requerimientos Funcionales. La Ilustración 2 muestra la clasificación de los requerimientos funcionales, mencionada anteriormente en donde: - Atributos y Clasificación: Esta categoría comprende los requerimientos que describen las funcionalidades que permiten clasificar los requerimientos y asignar los atributos que estarán disponibles en la especificación. - Administración de Cambios: contiene los requerimientos que describen a cabalidad las funciones que se deben llevar a cabo para la administración de cambios en los requerimientos. - Priorización: Hace referencia a los requerimientos concernientes a la priorización de los requerimientos. - Localización y Trazabilidad: Esta categoría hace referencia a los requerimientos que permitirán que la herramienta soporte los procesos de localización y trazabilidad de los requerimientos. 20 - Validación y Verificación: contiene los requerimientos relacionados con la verificación y validación de requerimientos. - Visualización y Reportes: esta contiene los requerimientos que hacen referencia a los reportes que debe generar la herramienta, y a la visualización que permita obtener conclusiones acerca del estado de implementación del proyecto. - Proyecto: Contiene los requerimientos relacionados con el manejo del proyecto en general. 2.7.2. Distribución de los Requerimientos No Funcionales La ilustración 3, muestra como se distribuyen los requerimientos no Funcionales, teniendo en cuenta el ISO 9126, el cual se encarga de definir estas categorías como las características básicas para la calidad de software [10]. Para más información ver documento Marco Teórico. Confiabilidad Disponibilidad Usabilidad Requerimientos No Funcionales Mantenibilidad Portabilidad Funcionalidad Ilustración 3. Distribución de los Requerimientos No Funcionales. La Ilustración 3 muestra la distribución que será utilizada para definir los requerimientos no funcionales de la herramienta, dentro de los cuales se encuentran: - Confiabilidad: esta categoría permite especificar los requerimientos relacionados con la administración de los fallos en los que puede incurrir el sistema [10]. 21 - Disponibilidad: Estos requerimientos hacen referencia a la “capacidad que debe tener el sistema, para mantener un nivel de rendimiento bajo las condiciones como velocidad, uso de memoria, precisión” [17]. - Usabilidad: en esta categoría se encontrarán los requerimientos asociados a la “capacidad que debe tener el sistema de ser comprendido, aprendido y usable bajo las condiciones de uso estipuladas en los requerimientos del sistema” [17]. - Mantenibilidad: estos requerimientos están asociados a la capacidad que tendrá el sistema de ser modificado, ya sea para actualizar el sistema, ó incluir correcciones [17]. - Portabilidad: estos requerimientos reflejan “la capacidad del sistema de cambiar de un ambiente a otro. El ambiente puede ser organizacional, de hardware o software” [17]. - Funcionalidad: esta categoría “hace referencia a los requerimientos que proveen la capacidad para que el sistema provea las funciones descritas con los requerimientos funcionales” [17]. 2.8. Trazabilidad y Localización Con el fin de seguir el ciclo de vida del requerimiento, de tal manera que se pueda justificar y verificar el estado de implementación del proyecto, se ha definido la Tabla 7 de trazabilidad y localización , la cual contiene el origen y las referencias a los demás artefactos del proyecto en donde se encontrará el requerimiento. ID Fuente del Razón Requerimien de ser to Caso de uso SRS SAD Componente Document Manual o de Pruebas Tabla 7. Trazabilidad y Localización En la Ilustración 4 se encuentra una descripción breve de cada campo que compone la tabla de trazabilidad: 22 ID Fuente del Requerimiento •Identificador único del requerimiento. •Hace referencia al origen del requerimiento. Razón de Ser •Muestra la razon del porque el requerimiento fue especificado. Caso de Uso •Caso de uso relacionado con el requerimiento. SRS •Sección del documento de especificacion en donde se encentra el requerimiento. SAD •Sección del documento de diseño en el cual se encuentra el requerimiento Componente •Componente, clase o método del codigo de implementación en donde se encuentra el requerimiento Documento de Pruebas Manual •Sección del documento en donde se encontrará el requerimiento. •Sección del manual de usuario en donde se encontrará el requerimiento. Ilustración 4. Explicación ítems de Trazabilidad. Adaptado de [13][14]. 2.9. Priorización de Requerimientos Para saber lo “esencial”, se requiere organizar los requerimientos de tal forma que se tenga un conjunto de requerimientos indispensables dentro del producto [13]. Para esto se realiza un proceso de priorización de requerimientos que permita saber en qué orden implementar. La priorización que se quiere usar es una adaptación del modelo de Wiegers [12], el cual solo tiene en cuenta dos valores el costo y el beneficio para poder obtener la priorización. Esto se debe a que en este proceso solo se tomará en cuenta el criterio del grupo de trabajo, omitiendo las variables relacionadas con el usuario final. La relación de las variables se muestra en la Ilustración 5: 23 Beneficio Costo 𝑉𝑎𝑙𝑜𝑟% (%𝐶𝑜𝑠𝑡𝑜 ∗ 𝑃𝑒𝑠𝑜 𝐶𝑜𝑠𝑡𝑜) Ilustración 5: Relación costo-beneficio Estos dos ítems son fundamentales dentro del desarrollo de software porque afectan directamente al desarrollo del sistema. BENEFICIO: Es el valor que tiene el requerimiento para el cliente, cuanto cree que le beneficia el requerimiento si éste se encuentra aplicado dentro del sistema [12]. El grupo de trabajo tomó por un momento el rol de cliente para poder llevar a cabo este proceso de priorización. COSTO: Este costo se refiere al esfuerzo que incurre para llevar a cabo el requerimiento en su totalidad [12], esto incluye desde la definición hasta su validación en la fase de pruebas. Para llevar a cabo el proceso, es necesario seguir los siguientes pasos: 1. Según el criterio del grupo de desarrollo, se le debe asignar el peso que debe tener cada una de las variables dentro del proyecto. 2. Calificar cada requerimiento, teniendo en cuenta el criterio que se está calificando(Costo y Beneficio). 3. Calcular el porcentaje del valor asignado por los integrantes del grupo a cada requerimiento. 4. Tomando la formula de la ilustración 4. Se calcula el valor de prioridad de cada requerimiento. Para ver la tabla resultante de la priorización diríjase al Anexo 1. 24 2.10. Relación entre Requerimientos La relación entre los requerimientos es muy importante ya que permite organizarlos de tal manera que se puedan observar las dependencias entre ellos y así, teniendo en cuenta la priorización, establecer un orden de desarrollo y evitar contratiempos. La organización del sistema en componentes funcionales del sistema es realizada, en parte, gracias a la agrupación de los requerimientos en módulos, los cuales se obtienen de las relaciones entre los requerimientos. Para ver la tabla de relaciones entre los requerimientos ver Anexo 2 y para ver el grafo de implementación resultante ver Anexo 3. 25 3. REQUERIMIENTOS ESPECÍFICOS En esta sección se detallaran cada uno de los requerimientos, en la Tabla 8 se muestra como está organizada la plantilla y que significa cada campo. La organización en que serán presentados los requerimientos funcionales se presenta en la sección 2.7 Distribución de requerimientos. La tabla que se va a manejar para presentar los requerimientos es la siguiente: Identificador: Identificación única del requerimiento dentro del documento SRS. Prioridad: Es la importancia otorgada por el grupo para manejar el orden de implementación. En la sección 2.9 Priorización de Requerimientos se encuentra expuesto el método que se usa para llevar a cabo este proceso. definición Especific. diseño Implem. pruebas Estado En donde se encuentra en este momento el requerimiento, en fase se encuentra, cuando ha finalizado Versión: Versión de modificación de la especificación del requerimiento Fecha modificación última Fecha en que se modificó por última vez, el requerimiento responsable modificación de Responsable de la última modificación del requerimiento. Dueño: Encargado de supervisar y ayudar a implementar ese requerimiento Costo Promedio Valor asociado al esfuerzo incurrido para llevar a cabo este requerimiento. (ver sección 2.9 Priorización de Requerimientos) Razón de ser: Explicación del porqué el requerimiento se encuentra en el documento SRS. Descripción Descripción breve del requerimiento (enunciado). 26 Criterios aceptación: de Argumento con el cual se definirá después implementación si el requerimiento es aceptado o no. Requerimientos asociados Casos de asociados: de la Requerimientos Asociados a éste. Para realizar este ítem se elaboró una tabla donde se señala las relaciones entre los requerimientos. Ver Anexo 4 uso Casos de uso origen del requerimiento (aplica solo para los requerimientos funcionales) Tabla 8: Plantilla de especificación de requerimientos. Tomado de [13][14] 3.1. 3.1.1. Requerimientos de Interfaces Externas Interfaces con el Usuario Dentro de esta sección se enuncia y se describe las diferentes interfaces que se pretenden tener en el sistema, para así obtener una interacción con el usuario y las funcionalidades del sistema. Para consultar la definición de los requerimientos de Interfaces de usuario ver el documento anexo de Excel “Plantilla de requerimientos.xlsx” en la hoja “REQUERIMIENTOS”. Para consultar la especificación de estos requerimientos, remítase a la hoja “RF” del mismo documento. 3.1.2. Interfaces con el Hardware De acuerdo con lo descrito en la sección 2.1.4 Interfaces con el Hardware, la herramienta no cuenta con interfaces de hardware. 3.1.3. Interfaces con el Software Conforme a lo planteado en la sección 2.1.4 Interfaces con el Software, los requerimientos de interfaces con el software se encuentran definidos bajo la etiqueta “Interfaces Software” en el documento Anexo de Excel “Plantilla de requerimientos.xlsx” en la hoja “REQUERIMIENTOS”. Para consultar la especificación de estos requerimientos, remítase a la hoja “RF” del mismo documento. 3.1.4. Interfaces de Comunicación La única interfaz de comunicación a tener en cuenta para la implementación de la herramienta, ya fue citada en la sección 2.1.5 Interfaces de comunicación, pero esta será descrita con mayor detalle a en el documento anexo de Excel “Plantilla de requerimientos.xlsx” en la hoja “REQUERIMIENTOS”. Para consultar la especificación de estos requerimientos, remítase a la hoja “RF” del mismo documento. 27 3.2. Características del Producto de Software En esta sección se muestra las diferentes funcionalidades de la herramienta, que se encuentra desglosada en requerimientos, a su vez están distribuidos según su funcionalidad presentada en la sección 2.7 Distribución de Requerimientos. 3.2.1. Atributos y Clasificación Para consultar la definición de los requerimientos asociados a esta categoría, ver documento de Excel Anexo “Plantilla de requerimientos.xlsx” en la hoja “REQUERIMIENTOS”. Para consultar la especificación de estos requerimientos, consultar la hoja “Atributos y clasificación” del mismo documento. 3.2.2. Administración del Cambio Para consultar la definición de los requerimientos asociados a esta categoría, ver documento de Excel Anexo “Plantilla de requerimientos.xlsx” en la hoja “ESPECIFICACIÓN DE REQUERIMIENTO”. Para consultar la especificación de estos requerimientos, consultar la hoja “H.Cambio” del mismo documento. 3.2.3. Priorización Para consultar la definición de los requerimientos asociados a esta categoría, ver documento de Excel Anexo “Plantilla de requerimientos.xlsx” en la hoja “ESPECIFICACIÓN DE REQUERIMIENTO”. Para consultar la especificación de estos requerimientos, consultar la hoja “Prio” del mismo documento. 3.2.4. Localización y trazabilidad Para consultar la definición de los requerimientos asociados a esta categoría, ver documento de Excel Anexo “Plantilla de requerimientos.xlsx” en la hoja “ESPECIFICACIÓN DE REQUERIMIENTO”. Para consultar la especificación de estos requerimientos, consultar la hoja “Loc y Tra” del mismo documento. 3.2.5. V&V Para consultar la definición de los requerimientos asociados a esta categoría, ver documento de Excel Anexo “Plantilla de requerimientos.xlsx” en la hoja “ESPECIFICACIÓN DE REQUERIMIENTO”. Para consultar la especificación de estos requerimientos, consultar la hoja “V&V” del mismo documento. 28 3.2.6. Visualización y reportes Para consultar la definición de los requerimientos asociados a esta categoría, ver documento de Excel Anexo “Plantilla de requerimientos.xlsx” en la hoja “ESPECIFICACIÓN DE REQUERIMIENTO”. Para consultar la especificación de estos requerimientos, consultar la hoja “Gra y Rep” del mismo documento. 3.2.7. Proyecto Para consultar la definición de los requerimientos asociados a esta categoría, ver documento de Excel Anexo “Plantilla de requerimientos.xlsx” en la hoja “ESPECIFICACIÓN DE REQUERIMIENTO”. Para consultar la especificación de estos requerimientos, consultar la hoja “Proy” del mismo documento. 3.3. Requerimientos de Desempeño Ver documento de Excel Anexo “Plantilla de requerimientos.xlsx” en la hoja “REQUERIMIENTOS”. Los requerimientos asociados al desempeño se encuentran especificados bajo los identificadores únicos 51, 52, 53. 3.4. Restricciones de Diseño Las restricciones de diseño a tener en cuenta para el desarrollo de ERMT, se tienen las siguientes: Restricción Nombre Diseño Paradigma de Programación Orientado a Objetos Debido a la experiencia con la que cuentan las integrantes del grupo, se decidió que este será el paradigma de programación para la implementación. Lenguaje de programación Java Este lenguaje de programación fue elegido ya que el paradigma de programación que se utilizara para implementar la herramienta 29 ERMT es el Orientado a Objetos. Además de esto en la sección 2.1.4 Interfaces con el Software, se definieron restricciones que tienen que ver con el lenguaje. Herramientas CASE Netbeans 6.9.1 Esta será la herramienta utilizada para la implementación de la herramienta. Enterprise Architect El cual será utilizado para la generación de los diagramas de casos de uso, modelo del dominio y las vistas de implementación, diseño, lógica y física por medio de las cuales se lleva a cabo el diseño de ERMT. Tabla 9. Restricciones de Diseño 3.5. 3.5.1. Atributos del Sistema Confiabilidad Ver documento de Excel Anexo “Plantilla de requerimientos.xlsx” en la hoja “ESPECIFICACIÓN DE REQUERIMIENTO”. Los requerimientos asociados a la confiabilidad se encuentran especificados bajo los identificadores únicos 54 y 55. 3.5.2. Disponibilidad Ver documento de Excel Anexo “Plantilla de requerimientos.xlsx” en la hoja “ESPECIFICACIÓN DE REQUERIMIENTO”. Los requerimientos asociados a la Disponibilidad se encuentran especificados bajo los identificadores únicos 56 y 57. 30 3.5.3. Usabilidad Ver documento de Excel Anexo “Plantilla de requerimientos.xlsx” en la hoja “ESPECIFICACIÓN DE REQUERIMIENTO”. Los requerimientos asociados a la Usabilidad se encuentran especificados bajo los identificadores únicos 58, 59, 60, 61, 62. 3.5.4. Mantenibilidad Ver documento de Excel Anexo “Plantilla de requerimientos.xlsx” en la hoja “ESPECIFICACIÓN DE REQUERIMIENTO”. Los requerimientos asociados a la Mantenibilidad se encuentran especificados bajo los identificadores únicos 63,64. 3.5.5. Portabilidad Ver documento de Excel Anexo “Plantilla de requerimientos.xlsx” en la hoja “ESPECIFICACIÓN DE REQUERIMIENTO”. Los requerimientos asociados a la Portabilidad se encuentran especificados bajo los identificadores únicos 65,66. 3.5.6. Funcionalidad Ver documento de Excel Anexo “Plantilla de requerimientos.xlsx” en la hoja “ESPECIFICACIÓN DE REQUERIMIENTO”. Los requerimientos asociados a la Funcionalidad se encuentran especificados bajo los identificadores únicos 67,68. 3.6. Requerimientos de la Base de Datos Para llevar a cabo la persistencia del sistema, el grupo de proyecto ha escogido utilizar bases de datos relacionales debido a que tiene muchas ventajas como la o o o o o Robustez. Portabilidad. Garantiza la no redundancia de registros La integridad referencial, que en el caso de la herramienta ERMT es muy importante dado que se posee una fuerte relación entre el requerimiento con sus demás características Una base de datos relacional puede ayudar a ejecutar consultas desde la capa de datos, así mejorar el desempeño de la aplicación, en la generación de algunas consultas.[19] 31 Mientras que con archivos planos o XML, la mantenibilidad y gestión de los datos es mas complicada en el momento del desarrollo. Además, no garantiza totalmente la seguridad de los datos ya que si un archivo es modificado, la integridad puede verse cuestionada [18]. Ver documento de Excel Anexo “Plantilla de requerimientos.xlsx” en la hoja “ESPECIFICACIÓN DE REQUERIMIENTO”. Los requerimientos asociados a la Funcionalidad se encuentran especificados bajo el identificador únicos 69, 84, 85, 86, 87, 88, 89, 90 y 91. 32 4. ANEXOS 4.1. Anexo 1: Tabla de priorización VER DOCUMENTO DE EXCEL ANEXO “Plantilla de requerimientos.XLSX” pestaña PRIORIZACION (NO TOCAR) 4.2. Anexo 2: Relaciones entre los requerimientos VER DOCUMENTO DE EXCEL ANEXO “Plantilla de requerimientos.XLSX” pestaña Asocia. Requerimientos 4.3. Anexo 3: Grafo de implementación VER IMAGEN ANEXA “Grafo de Implementación.PNG” 4.4. Anexo 4: Modelo del dominio VER DOCUMENTO DE WORD ANEXO “Documentación Modelo del Dominio.docx” 33