Rem Ejemplo de Como Se Usa (Es Un Lenguaje de Captura de Requisitos para Diseñar Un Software)
Rem Ejemplo de Como Se Usa (Es Un Lenguaje de Captura de Requisitos para Diseñar Un Software)
Rem Ejemplo de Como Se Usa (Es Un Lenguaje de Captura de Requisitos para Diseñar Un Software)
Somos su empresa de
www.adictosaltrabajo.com
Construida con las últimas tecnologías de desarrollo Java/J2EE (Spring, JSF, Acegi, Hibernate, Maven,
Subversion, etc.) y disponible en licencia GPL, seguro que a muchos profesionales independientes y PYMES os
ayudará a organizar mejor vuestra operativa.
Las cosas grandes empiezan siendo algo pequeño ..... Saber más en: http://tntconcept.sourceforge.net/
http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=REM 14/08/2007
Tutoriales en AdictosAlTrabajo: Java, J2EE, Visual C++, Linux, UML, OOP y mucho más Página 2 de 23
Introducción
En nuestro trabajo como desarrolladores de software normalmente comenzamos los proyectos realizando una toma
de requisitos. Estos requisitos los incluimos en algún documento, por ejemplo en el plan del proyecto o en un
documento separado, si son muchos y detallados.
Para realizar la toma de requisitos hay varias metodologías, que básicamente consisten en realizar entrevistas con el
cliente, tomar notas y añadir nuestra experiencia. Al final obtendremos un documento en el que incluimos todos los
requisitos que hemos detectado.
Si trabajamos para una organización grande, además nos interesa que el formato de dicho documento sea lo más
estándar posible dentro de la organización. Y aquí es donde nos puede ayudar REM.
REM es una herramienta gratuita que nos permitirá reflejar la captura de requisitos en un documento de manera
ordenada, sin perder flexibilidad a la hora de definir el formato estándar de dicho documento.
Pero la mejor manera de demostrar el movimiento, como siempre, es andando, por lo que vamos a ponernos manos a
la obra.
Instalación de la aplicación
La aplicación REM la podemos obtener desde la página de los profesores Amador Durán y Beatriz Bernárdez en la
universidad de Sevilla (España)
http://www.lsi.us.es/docencia/pagina_asignatura.php?id=48
Nos descargamos el instalador y su manual. Ejecutamos el programa instalador, en nuestro caso el setup.exe del
REM_1_2_2
Pulsamos "Next"
NOTA IMPORTANTE: Este software es de uso libre dentro del mundo académico. Para su uso fuera de este entorno, por
http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=REM 14/08/2007
Tutoriales en AdictosAlTrabajo: Java, J2EE, Visual C++, Linux, UML, OOP y mucho más Página 3 de 23
ejemplo en el entorno empresarial, hay que solicitar permiso al autor, el doctor Amador Durán, tal y como indica su licencia.
Pulsamos "Yes"
Pulsamos "Next"
Pulsamos "Next"
>Nos indica que debido a un fallo en el programa de instalación se debe editar a mano un fichero de texto. Pulsamos
"Aceptar"
http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=REM 14/08/2007
Tutoriales en AdictosAlTrabajo: Java, J2EE, Visual C++, Linux, UML, OOP y mucho más Página 4 de 23
y quitamos el último carácter (el que aparece marcado), guardando de nuevo el fichero.
Arranque de la aplicación
Iniciamos REM
http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=REM 14/08/2007
Tutoriales en AdictosAlTrabajo: Java, J2EE, Visual C++, Linux, UML, OOP y mucho más Página 5 de 23
Lo primero que vamos a hacer es asignarle unas propiedades al proyecto. Pulsamos con el botón derecho sobre el
icono rojo titulado "Documento de requerimientos del sistema"
http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=REM 14/08/2007
Tutoriales en AdictosAlTrabajo: Java, J2EE, Visual C++, Linux, UML, OOP y mucho más Página 6 de 23
La herramienta REM trabaja añadiendo nodos a nuestro documento. Basta pulsar con el botón derecho sobre el
icono del libro rojo para obtener un listado de los elementos que podemos añadir a nuestro documento. Una lista de
los elementos que podemos añadir sería:
• secciones y apéndices al documento.
• Párrafos y elementos de glosario
• ficheros gráficos. Nos permitirá incluir imágenes en nuestro documento
• organización
• participante
• reunión
• objetivo
• actor
• requisitos de almacenamiento, funcionales, no funcionales, de restricción
• caso de uso
• matriz de rastreabilidad
• tipo de objeto, valor, asociación, operación de sistema
• conflicto, defecto y petición de cambio
El método de trabajo de la herramienta REM consiste en ir añadiendo estos elementos a un árbol como nodos del
árbol. Una vez añadido un elemento, podemos editarlo, moverlo a otra posición, clonarlo o eliminarlo.
Según vamos añadiendo elementos el panel derecho se va actualizando, para reflejar el nuevo elemento. Este panel
es en realidad una página html que queda guardada junto al fichero del proyecto REM.
El objetivo de REM
La herramienta REM está diseñada para facilitar la captura de requisitos utilizando la metodología propuesta por los
doctores Amador Durán y Beatriz Bernárdez DB01. Esta metodología está enfocada a recoger los requisitos de un
sistema y construir un documento, el "Documento de análisis del sistema", que es el documento que se entrega al
cliente para su validación y posterior desarrollo como producto.
En este tutorial nos vamos a centrar en el módulo de captura de requisitos de REM, siendo nuestro objetivo generar
el documento de requisitos del sistema.
• Objetivo. No es un requisito en sí mismo, pero nos guiará a la hora de fijar los requisitos
• Actor. Cada una de los usuarios que interactúan con el sistema
• Requisito de almacenamiento de información
• Requisito de restricción
• Requisito de caso de uso
• Requisito funcional
• Requisito no funcional
• Matriz de rastreabilidad. En estas matrices se puede colocar en filas y columnas los diferentes requisitos,
casos de uso, tipos (clases del modelo), valores (atributos) y asociaciones, permitiendo por ejemplo
relacionar requisitos funcionales con tipos, para ver qué requisitos funcionales afectan a cada tipo
concreto.
Un ejemplo ilustrativo: una librería virtual
Para proceder a la toma de requisitos vamos a imaginar que estamos con un cliente y que nos encarga desarrollar un
sistema informático para gestionar la librería virtual que va a lanzar en Internet.
Primero comenzamos analizando su negocio normal, en el que se dedica a la venta de libros. En sus oficinas tiene el
siguiente personal:
• vendedores. Son con los que contactan los clientes para realizar los pedidos y para resolver dudas
http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=REM 14/08/2007
Tutoriales en AdictosAlTrabajo: Java, J2EE, Visual C++, Linux, UML, OOP y mucho más Página 7 de 23
• despachadores. Son los empleados que preparan los envíos para los clientes, que les han enviado los
vendedores
• compradores. Son los encargados de realizar las compras a los distribuidores y editoriales. También
mantienen el catálogo de libros en venta.
• la dirección, que tiene visibilidad sobre todo el negocio
El proceso general del negocio es el siguiente:
Primero los compradores seleccionan un conjunto de libros y los añaden al catálogo de libros.
Los clientes visitan el establecimiento y solicitan libros del catálogo. Si el libro no está en catálogo, el comprador le
dirá si es posible encargarlo.
Una vez seleccionados los libros, los clientes realizan la compra. Si la entrega no es inmediata, el cliente se pondrá
en contacto periódicamente para consultar el estado de su encargo al vendedor.
Por último la dirección evaluará mensualmente el estado del negocio sacando estadísticas de compras y ventas.
Ahora nos ponemos manos a la obra. Vamos a empezar a capturar requisitos en REM.
Lo primero que vamos a hacer es añadir una sección de introducción. Para ello seleccionamos el botón de nueva
sección y le ponemos como nombre "Introducción"
Ahora vamos a añadir dos organizaciones, la organización cliente (Libros MN) y un desarrollador (Autentia). Vamos
a añadir un participante a cada organización, que serán el representante del cliente y el desarrollador
Añadimos la organización pulsando el botón de añadir organización que desarrollará el proyecto
http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=REM 14/08/2007
Tutoriales en AdictosAlTrabajo: Java, J2EE, Visual C++, Linux, UML, OOP y mucho más Página 8 de 23
Cuando hemos añadido las organizaciones podemos en las propiedades del proyecto añadir la organización que
prepara el documento y la organización cliente
http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=REM 14/08/2007
Tutoriales en AdictosAlTrabajo: Java, J2EE, Visual C++, Linux, UML, OOP y mucho más Página 9 de 23
Añadiendo el objetivo
Ahora le añadimos un objetivo a nuestros requisitos: el sistema deberá gestionar una librería virtual, en la que los
clientes pueden realizar y consultar pedidos, consultar el catálogo de la aplicación.
Seleccionamos el botón de añadir objetivo y se abre el siguiente diálogo:
http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=REM 14/08/2007
Tutoriales en AdictosAlTrabajo: Java, J2EE, Visual C++, Linux, UML, OOP y mucho más Página 10 de 23
Como vemos el sistema lo identifica como OBJ-00001, Le añadimos como nombre "librería virtual" y le ponemos la
descripción siguiente:
http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=REM 14/08/2007
Tutoriales en AdictosAlTrabajo: Java, J2EE, Visual C++, Linux, UML, OOP y mucho más Página 11 de 23
Por cada nodo que añadimos al proyecto REM, en el panel de la derecha aparece una tabla con los campos del nodo.
Veamos como hacemos esto con REM. Pulsando con el botón de añadir requisito funcional vamos añadiendo el
primer actor:
http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=REM 14/08/2007
Tutoriales en AdictosAlTrabajo: Java, J2EE, Visual C++, Linux, UML, OOP y mucho más Página 12 de 23
Ahora vamos a buscar los casos de uso. Examinando la descripción de la aplicación vemos los siguientes casos de
uso:
• Consulta del catálogo de libros. Todos pueden acceder al catálogo
• Creación de un pedido. Lo hace el cliente y el vendedor (en nombre de un cliente)
• Creación de una solicitud de libro o de información. Lo hace el cliente
• Consulta de solicitudes de información, Lo puede hacer el cliente (las suyas) y el vendedor (todas)
• Consulta de pedidos. Lo puede hacer el cliente (sus pedidos) y el vendedor (todos los pedidos)
• Modificación del catálogo: Lo hace el comprador
• Modificación de Pedidos, Lo hace el despachador
• Consulta del almacén de libros. Lo pueden hacer el comprador y el despachador.
• Modificación del almacén de libros. Lo puede hacer el despachador
• Petición de informe. Lo hace el gerente.
Veamos como añadimos un caso de uso en REM. Pulsamos en el botón de nuevo caso de uso:
http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=REM 14/08/2007
Tutoriales en AdictosAlTrabajo: Java, J2EE, Visual C++, Linux, UML, OOP y mucho más Página 13 de 23
Y como antes, añadimos los demás casos de uso uno a uno. Finalmente tendremos en el documento todos los casos
de uso.
http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=REM 14/08/2007
Tutoriales en AdictosAlTrabajo: Java, J2EE, Visual C++, Linux, UML, OOP y mucho más Página 14 de 23
Los requisitos funcionales definen las acciones que debe realizar el sistema. Si analizamos la aplicación de librería
podemos extraer los siguientes requisitos:
• se presentará una pantalla inicial que servirá de entrada a la aplicación. Tendrá un cajetín al lado
izquierdo para que el usuario pueda iniciar sesión.
• La pantalla inicial mostrará información de los libros más vendidos, de las ofertas del mes y de noticias
del sector.
• La pantalla de consulta del catálogo mostrará el conjunto de criterios de búsqueda (autor, título, isbn,
etc.), realizará una búsqueda exacta o por texto libre en los campos del libro y devolverá los resultados
paginados
• Cuando el usuario se seleccione un libro, se añadirá al carrito de la compra
• la pantalla carrito de la compra mostrará los libros seleccionados y permitirá formalizar el pedido (orden
de pago, etc.)
• la pantalla de solicitud de información permitirá al usuario solicitar nuevos libros no disponibles en el
catálogo o preguntar sobre temas relacionados con los libros.
• La pantalla de consulta de pedidos permitirá al cliente visualizar el estado de sus pedidos
• Habrá una pantalla de consulta de solicitudes de información, usada por el vendedor para atender las
peticiones del cliente
• Habrá una pantalla de despacho del pedido, para poder atender las labores de despachado, como son
indicar si se ha enviado el pedido, el modo de envío, etc.
• La pantalla de modificación del catálogo permitirá añadir nuevos libros disponibles al catálogo, eliminar
los antiguos, etc.
• La pantalla de modificación del almacén permitirá controlar el almacén de libros (consultas, altas, bajas,
modificaciones)
• La pantalla de generación de informes calcula el informe correspondiente al último mes.
Veamos como hacemos esto con REM. Pulsando con el botón de añadir requisito funcional vamos añadiendo el
primer requisito:
http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=REM 14/08/2007
Tutoriales en AdictosAlTrabajo: Java, J2EE, Visual C++, Linux, UML, OOP y mucho más Página 15 de 23
y le ponemos la descripción
Los requisitos no funcionales son otros requisitos que no forman parte de la funcionalidad principal de la aplicación,
como requisitos del entorno de desarrollo o ejecución (sistema operativo, servidores en los que correrá, lenguajes,
etc), restricciones que se aplicarán, prestaciones (tiempo de respuesta mínimo, alta disponibilidad, etc.) y otros.
Vamos a seleccionar algunos como ejemplo para nuestra aplicación:
• La aplicación correrá en el entorno Linux – Tomcat - Struts – Hybernate – MySql.
http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=REM 14/08/2007
Tutoriales en AdictosAlTrabajo: Java, J2EE, Visual C++, Linux, UML, OOP y mucho más Página 16 de 23
• Se definirá un libro de estilo y una hoja de estilo para la interfaz, basada fundamentalmente en páginas
HTML.
• Se usará Flash para los anuncios destacados: el banner principal y los de ofertas y promociones. El código
del flash sustituirá la imagen flash por una fija si no está disponible flash
Veamos como hacemos esto con REM. Pulsando con el botón de añadir requisito funcional vamos añadiendo el
primer requisito no funcional:
Veamos como hacemos esto con REM. Pulsando con el botón de añadir requisito funcional vamos añadiendo el
primer requisito de información:
• clientes dados de alta
• libro del catálogo
• pedido realizado
• libro disponible
• solicitud de información realizada por un cliente
Veamos como hacemos esto en REM. Creamos un nuevo requisito de información
http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=REM 14/08/2007
Tutoriales en AdictosAlTrabajo: Java, J2EE, Visual C++, Linux, UML, OOP y mucho más Página 17 de 23
Los requisitos de restricción representarán las reglas de negocio que se deben definir en la aplicación. En nuestro
caso podemos definir las siguientes:
• no se pueden despachar pedidos cuyo pago no se haya formalizado
• cuando se despacha un libro se debe actualizar el almacén. En este momento se revisará el stock mínimo
definido en el catálogo y se avisará a compras para su reposición (control de stock estándar).
• si un pedido solicitado por un cliente no se despacha en menos de 15 días, el vendedor debe investigar la
causa e informar al cliente
Veamos cómo añadimos esto en REM. Añadimos un requisito de restricción a nuestro documento con el botón
apropiado
http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=REM 14/08/2007
Tutoriales en AdictosAlTrabajo: Java, J2EE, Visual C++, Linux, UML, OOP y mucho más Página 18 de 23
Las matrices de rastreabilidad nos permitirán trazar las dependencias entre los diferentes elementos del documento
de requisitos. Pun ejemplo típico es ver qué requisitos funcionales tienen incidencia sobre los elementos de
información almacenados. Creamos una matriz de rastreabilidad con el correspondiente botón
http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=REM 14/08/2007
Tutoriales en AdictosAlTrabajo: Java, J2EE, Visual C++, Linux, UML, OOP y mucho más Página 19 de 23
le añadimos como filas los requisitos funcionales y como columnas los requisitos de información que hay que
guardar
Ahora nos vamos a un requisito de información y le añadimos una traza. Por ejemplo la pantalla inicial consulta el
catálogo. Abrimos el requisito de consulta de catálogo y le añadimos la traza de destino siguiente
http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=REM 14/08/2007
Tutoriales en AdictosAlTrabajo: Java, J2EE, Visual C++, Linux, UML, OOP y mucho más Página 20 de 23
nos queda
Lo normal en la mayoría de los proyectos es organizar el documento de requisitos en varias partes diferentes, como
puede ser los requisitos generales, el modelo estático y el modelo dinámico. También si vamos a crear un prototipo
conviene crear un capítulo específico. Para nuestro ejemplo he creado las secciones "2. Modelo estático", "2.1
Actores", "2.2 Casos de uso", "2.3 Requisitos funcionales", "2.4 Requisitos no funcionales" y "3 Modelo dinámico",
y he reorganizado todos los elementos en las nuevas secciones. Me queda algo como lo siguiente
http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=REM 14/08/2007
Tutoriales en AdictosAlTrabajo: Java, J2EE, Visual C++, Linux, UML, OOP y mucho más Página 21 de 23
Utilizando adecuadamente las secciones de REM nos puede quedar un documento de proyecto bastante clarito.
El siguiente paso: el análisis
Una vez que hemos terminado el análisis de requisitos, al menos inicialmente, hay que comenzar la etapa de análisis
del sistema. REM permite crear un documento de análisis del sistema, en el que reflejaremos los tipos de objetos,
valores, operaciones del sistema y otros. Incluso nos permite crear un documento de defectos y otro de peticiones de
cambio. Aunque es sencillo de utilizar, no ofrece la potencia de un sistema de modelado de los disponibles en la
actualidad. Pero nos puede servir de ayuda para el comienzo del análisis, sobre todo por la posibilidad de crear
matrices de trazabilidad para los tipos de objetos y operaciones del sistema.
Ampliando REM
Puede que REM no genere exactamente el documento de salida que nosotros necesitamos. Ya que REM trabaja
aplicando transformaciones XSLT sobre el árbol XML que guarda en memoria. REM permite elegir otro juego de
plantillas XSLT para modificar el resultado final. Para ello debemos abrir el cuadro de diálogo en
"Herramientas\Opciones" y cambiar la opción "archivo externo XSLT"
por defecto apunta a la plantilla en español que trae el propio REM, en la carpeta donde lo hayamos instalado. Allí
http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=REM 14/08/2007
Tutoriales en AdictosAlTrabajo: Java, J2EE, Visual C++, Linux, UML, OOP y mucho más Página 22 de 23
veremos un conjunto de ficheros XSL, uno por cada tipo de nodo que procesa REM. En el manual de REM se dan
ejemplos, aunque no se proporcionan los ficheros de transformación.
Bibliografía
● DB01 "Metodología para el análisis de requisitos para sistemas software". Amador Durán, Beatriz Bernárdez.
Departamento de lenguajes y sistemas informáticos. Escuela técnica superior de ingeniería informática.
Universidad de Sevilla (España). 2001.
Conclusión
REM es una herramienta que nos facilitará la toma de requisitos en nuestra aplicación. Nos permitirá de un modo
sencillo generar un documento normalizado en el que podremos incluir los requisitos necesarios para el desarrollo de
un sistema de información. Su uso es bastante sencillo, y la documentación la genera en formato HTML, por lo que
lo podremos utilizar directamente como documentación de referencia en nuestro proyecto.
Sobre el autor
Cristóbal González Almirón es consultor de desarrollo de proyectos informáticos. Actuamente desarrolla su labor
profesional para la Comunidad de Madrid, a través de su Agencia de Informática y Comunicaciones, en proyectos de
implantación de gestión documental.
Su experiencia profesional se ha desarrollado en empresas como Compaq, HP, Mapfre, Endesa, Repsol, Universidad
Autónoma de Madrid, en las áreas de Desarrollo de Software (Orientado a Objetos), tecnologías de Internet, Técnica
de Sistemas de álta disponibilidad y formación a usuarios.
This work is licensed under a Creative Commons Attribution-Noncommercial-No Derivative Works 2.5 License.
Puedes opinar sobre este tutorial aquí
Recuerda
que el personal de Autentia te regala la mayoría del conocimiento aquí compartido (Ver todos los tutoriales)
Somos pocos, somos buenos, estamos motivados y nos gusta lo que hacemos ......
Autentia = Soporte a Desarrollo & Formación
http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=REM 14/08/2007
Tutoriales en AdictosAlTrabajo: Java, J2EE, Visual C++, Linux, UML, OOP y mucho más Página 23 de 23
Nota: Los tutoriales mostrados en este Web tienen como objetivo la difusión del conocimiento.
Los contenidos y comentarios de los tutoriales son responsabilidad de sus respectivos autores.
En algún caso se puede hacer referencia a marcas o nombres cuya propiedad y derechos es de sus
respectivos dueños. Si algún afectado desea que incorporemos alguna reseña específica, no tiene más que
solicitarlo.
Si alguien encuentra algún problema con la información publicada en este Web, rogamos que informe al
administrador [email protected] para su resolución.
http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=REM 14/08/2007