documentos esre

Upload: daniel-telles-ochoa

Post on 10-Jan-2016

19 views

Category:

Documents


0 download

DESCRIPTION

Técnicas y herramientas utilizadas en la Ingeniería de requerimientos

TRANSCRIPT

Tcnicas y herramientas utilizadas en la Ingeniera de Requerimientos

ndice

Introduccin2Listas de verificacin (CheckList)3Documentos ESRE4Conclusin10Bibliografa11

Introduccin

Un rea de conocimiento de gran importancia en el desarrollo de software, es la ingeniera de requerimientos. Esta comprende las actividades de obtencin (captura, descubrimiento y adquisicin), anlisis (y negociacin), especificacin, y validacin de requisitos. Adems, establece una actividad de gestin de requerimientos para manejar los cambios, mantenimiento y rastreabilidad de los requerimientos.

La Ingeniera de Requerimientos (IR) cumple un papel primordial en el proceso de produccin de software, ya que se enfoca un rea fundamental: la definicin de lo que se desea producir. Su principal tarea consiste en la generacin de especificaciones correctas que describan con claridad, sin ambigedades, en forma consistente y compacta, las necesidades de los usuarios o clientes; de esta manera, se pretende minimizar los problemas relacionados por la mala gestin de losrequerimientos en el desarrollo de sistemas.

El proceso de obtencin de requisitos, cuya finalidad es llevar a la luz los requisitos, no solo es un proceso tcnico, sino tambin un proceso social que envuelve a diferentes personas, lo que conlleva dificultades aadidas a su realizacin.

A continuacin se describen la tcnica de listas de verificacin y la herramienta de documentos de especificacin de requerimientos ampliamente utilizadas en el contexto de la ingeniera de requerimientos.

Listas de verificacin (CheckList)

La lista de verificacin, como su nombre lo dice, es la enumeracin de una serie de pasos o requisitos a cumplir para realizar un determinado proceso, como si fuera una lista que se hace antes del supermercado para evitar olvidar algo.Pero adems de enumerar, esta herramienta tambin lleva una secuencia lgica en los requisitos, de tal forma que nos ayuda a recorrer el camino en menos tiempo.La memoria es una excelente ayuda para todos, pero es una realidad que bajo presiones de tiempo y estrs, podemos olvidar cosas sencillas o aun de sentido comn. En estos casos, una lista de verificacin es un apoyo ideal para recordar lo importante.

Esta tcnica es muy fcil de utilizar y proporciona una gran utilidad. En general, es una lista de preguntas que el analista debe usar para evaluar cada requerimiento. Los analistas deben verificar y marcar los puntos de esta lista mientras leen el documento de requerimientos, cuando se descubran problemas potenciales, debern ser anotados, ya sea en los mrgenes del documento, en una lista de verificacin. Las listas de verificacin son tiles porque brindan un recordatorio de lo que se debe buscar y reducen la posibilidad de pasar por alto alguna verificacin importante. No slo son tiles para verificar requerimientos, sino tambin se puede aplicar con los casos de uso. El proceso de verificacin se puede implementar con una hoja de clculo en donde las filas representan, por ejemplo, los distintos requerimientos, y las columnas representan los puntos a verificar los criterios que deben cumplir, como se ilustra en la tabla 1. Entonces se completan las intersecciones que correspondan con los comentarios sobre los problemas potenciales.

Tabla 1 Lista de verificacin de calidad en los requerimientos.

Documentos ESRE

Una especificacin de requerimientos de software (ERS) es un documento que se crea cuando debe especificarse una descripcin detallada de todos los aspectos del software que se va a elaborar, antes de que el proyecto comience. Es importante notar que una ERS formal no siempre est en forma escrita. En realidad, hay muchas circunstancias en las que el esfuerzo dedicado a la ERS estara mejor aprovechado en otras actividades de la ingeniera de software. Sin embargo, se justifica la ERS cuando el software va a ser desarrollado por una tercera parte, cuando la falta de una especificacin creara problemas severos al negocio, si un sistema es complejo en extremo o si se trata de un negocio de importancia crtica.

Karl Wiegers [Wie03], de la empresa Process Impact Inc., desarroll un formato til (disponible en www.processimpact.com/process_assets/srs_template.doc) que sirve como gua para aquellos que deben crear una ERS completa. Su contenido normal es el siguiente:

Tabla de contenidoRevisin de la historia1. Introduccin1.1 Propsito1.2 Convenciones del documento1.3 Audiencia objetivo y sugerencias de lectura1.4 Alcance del proyecto1.5 Referencias2. Descripcin general2.1 Perspectiva del producto2.2 Caractersticas del producto2.3 Clases y caractersticas del usuario2.4 Ambiente de operacin2.5 Restricciones de diseo e implementacin2.6 Documentacin para el usuario2.7 Suposiciones y dependencias3. Caractersticas del sistema3.1 Caracterstica 1 del sistema3.2 Caracterstica 2 del sistema (y as sucesivamente)4. Requerimientos de la interfaz externa4.1 Interfaces de usuario4.2 Interfaces del hardware4.3 Interfaces del software4.4 Interfaces de las comunicaciones5. Otros requerimientos no funcionales5.1 Requerimientos de desempeo5.2 Requerimientos de seguridad5.3 Requerimientos de estabilidad5.4 Atributos de calidad del software6. Otros requerimientosApndice A: GlosarioApndice B: Modelos de anlisisApndice C: Lista de conceptos

Debe incluir tanto los requerimientos del usuario para el sistema como una especificacin detallada de los requerimientos del sistema. En algunos casos, los dos tipos de requerimientos se pueden integrar en una nica descripcin. En otros, los requerimientos del usuario se definen en una introduccin a la especificacin de los requerimientos del sistema. Si existe un gran nmero de requerimientos, los detalles de los requerimientos del sistema se pueden presentaren un documento separado.

El documento de requerimientos tiene un conjunto diverso de usuarios que va desde los altos cargos de la organizacin que pagan por el sistema, hasta los ingenieros responsables de desarrollar el software. La ilustracin 1, muestra los posibles usuarios del documento y cmo lo utilizan.

Ilustracin 1 Usuarios de un documentos de requerimientos (ESRE)

La diversidad de posibles usuarios significa que el documento de requerimientos tiene que presentar un equilibrio entre la comunicacin de los requerimientos a los clientes, la definicin de los requerimientos en el detalle exacto para los desarrolladores y probadores, y la inclusin de informacin sobre la posible evolucin del sistema. La informacin sobre cambios previstos puede ayudar a los diseadores del sistema a evitar decisiones de diseo restrictivas y a los ingenieros encargados del mantenimiento del sistema, quienes tienen que adaptar el sistema a los nuevos requerimientos.

El nivel de detalle que se debe incluir en un documento de requerimientos depende del tipo de sistema que se desarrolle y del proceso de desarrollo utilizado. Cuando el sistema se desarrolle por un contratista externo, las especificaciones de los sistemas crticos necesitan ser claras y muy detalladas. Cuando haya ms flexibilidad en los requerimientos y cuando se utilice un proceso de desarrollo iterativo dentro de la empresa, el documento de requerimientos puede ser mucho menos detallado y cualquier ambigedad resuelta durante el desarrollo del sistema.

Varias organizaciones grandes, como el Departamento de Defensa de los Estados Unidos y el IEEE, han definido estndares para los documentos de requerimientos. Davis (Davis, 1993) analiza algunos de estos estndares y compara sus contenidos. El estndar ms ampliamente conocido es el IEEE/ANSI 830-1998 (IEEE, 1998). Este estndar IEEE sugiere la siguiente estructura para los documentos de requerimientos:

1. Introduccin1.1 Propsito del documento de requerimientos 1.2 Alcance del producto1.3 Definiciones, acrnicos y abreviaturas 1.4 Referencias1.5 Descripcin del resto del documento2. Descripcin general2.1 Perspectiva del producto2.2 Funciones del producto2.3 Caractersticas del usuario2.4 Restricciones generales 2.5 Suposiciones y dependencias3. Requerimientos especficos: incluyen los requerimientos funcionales, no funcionales y de interfaz. Obviamente, sta es la parte ms sustancial del documento, pero debido a la amplia variabilidad en la prctica organizacional, no es apropiado definir una estructura estndar para esta seccin. Los requerimientos pueden documentar las interfaces externas, describir la funcionalidad y el rendimiento del sistema, especificar los requerimientos lgicos de la base de datos, las restricciones de diseo, las propiedades emergentes del sistema y las caractersticas de calidad.4. Apndices5. ndice

Aunque el estndar IEEE no es ideal, contiene muchos consejos sobre cmo redactar los requerimientos y cmo evitar problemas. Es muy general para que pueda ser un estndar de una organizacin. Es un marco general que se puede transformar y adaptar para definir un estndar ajustado a las necesidades de una organizacin en particular. La Figura 2 ilustra una posible organizacin para un documento de requerimientos que se basa en el estndar IEEE.

Sin embargo, se ha ampliado para incluir informacin sobre la evolucin predicha del sistema. Esto fue propuesto por primera vez por Heninger (Heninger, 1980) y, como se ha indicado, ayuda a las personas encargadas del mantenimiento del sistema y puede permitir a los diseadores incluir soporte para futuras caractersticas del sistema.

Por supuesto, la informacin que se incluya en un documento de requerimientos debe depender del tipo de software a desarrollar y del enfoque de desarrollo que se utilice. Si se adopta un enfoque evolutivo para un producto de software (por ejemplo), el documento de requerimientos dejar fuera muchos de los captulos detallados sugeridos anteriormente. El inters estar en definir los requerimientos del usuario y los requerimientos del sistema no funcionales de alto nivel. En este caso, los diseadores y programadores utilizan su juicio para decidir cmo satisfacer el esquema de los requerimientos del usuario para el sistema.

Por el contrario, cuando el software es parte de un proyecto de ingeniera de sistemas grande que incluye la interaccin de sistemas hardware y software, a menudo es fundamental definir con mucho detalle los requerimientos. Esto significa que el documento de requerimientos probablemente sea muy extenso y deba incluir la mayora si no la totalidad de los captulos que se muestran en la ilustracin 2. Para documentos extensos, es de particular importancia incluir una tabla de contenido comprensible y un ndice del documento para que as los lectores puedan encontrar la informacin que necesitan.

El documento de requerimientos es fundamental cuando un contratista exterior est desarrollando el sistema software. Sin embargo, los mtodos de desarrollo giles sostienen que los requerimientos cambian tan rpidamente que un documento de requerimientos se queda desfasado en cuanto se redacta, por lo que el esfuerzo en gran parte se malgasta. Ms que un documento formal, enfoques como la programacin extrema (Beck, 1999) proponen que los requerimientos del usuario deberan ser recogidos incrementalmente y escritos en tarjetas. El usuario entonces da prioridad a los requerimientos que se han de implementar en el siguiente incremento del sistema.

Ilustracin 2Estructura de un documento de especificacin de requerimientos (ESRE)

Para sistemas de negocio donde los requerimientos son inestables, este enfoque es bueno. Sin embargo, todava es til redactar un breve documento de soporte que defina el negocio y los requerimientos de confiabilidad del sistema. Es fcil olvidarse de los requerimientos que se aplican al sistema en su totalidad al centrarse en los requerimientos funcionales para la siguiente entrega del sistema.

Conclusin

Es muy importante el poder formular una especificacin de requerimientos completa y consistente, es un paso fundamental para evitar cometer errores en la definicin de los requerimientos, ya que los mismos pueden resultar muy caros de corregir una vez desarrollado el sistema. De ah, la vital importancia que tienen las tcnicas y herramientas utilizas en la ingeniera de requerimientos para generar una adecuada especificacin que contemple claramente y sin ambigedades los requerimientos del sistema a desarrollar, con el fin primordial de evitar que los proyectos fracasen debido a una mala elaboracin de la definicin y especificacin de requerimientos.

El proceso de levantamientos de requerimientos en la Ingeniera de Requerimientos sirve para recopilar la informacin necesaria para establecer la funcionalidad que se quiere alcanzar con el sistema. Para ello, se debe de contar con buenos mtodos y tcnicas para hacerlo, adems de una comunicacin fluida y constante con el cliente, ya que los requerimientos deben reflejar las necesidades reales que el cliente quiere satisfacer. Las revisiones deben involucrar al cliente y al staff de contratistas para validar los requerimientos del sistema.

Bibliografa

Quiroga. A. Lista de verificacin. Recuperado el da 9 de julio de 2015.http://www.sicaa.com.mx/tips/administrativos/43-checklist

Listas de verificacin y escalas de verificacin. Recuperado el da 9 de julio de 2015.http://biblio3.url.edu.gt/Libros/tests_p/16.pdf

Fernndez Pea, Juan Manuel. Pruebas de software. Recuperado el da 9 de julio de 2015http://www.uv.mx/personal/jfernandez/files/2010/07/Pruebas-de-Sistema.pdf

Pressman, Roger. Ingeniera del Software: un enfoque prctico. Sptima edicin. Editorial McGraw Hill. Mxico, 2010.

Medina Martnez, Juan Carlos. Anlisis Comparativo de Tcnicas, Metodologas y Herramientas de Ingeniera de Requerimientos. Centro de investigacin y de estudios avanzados del IPN. Mxico, Df. Junio 2004.