Documentos de Académico
Documentos de Profesional
Documentos de Cultura
UNIDADII
UNIDADII
Resumen:
Con la realizacin de este artculo se trata de dar un mejor panorama acerca de los conceptos y
caractersticas de la Ingeniera de Requerimientos (IR), buscando resaltar su importancia dentro del ciclo
de desarrollo de proyectos de desarrollo de software, conocer las diferentes alternativas o tcnicas que
existen para identificarlos, as como mostrar la importancia que tienen herramientas automatizadas dentro
de este proceso de administracin de requerimientos.
Palabras claves: Requerimientos, ingeniera de requerimientos, herramientas, tcnicas.
Abstract:
With the realization of this article it is to give a better panorama about the concepts and characteristic of
the Engineering of Requirements (IR), looking for to stand out their importance inside the cycle of
development of projects of software development, to know the different alternative or techniques that exist
to identify them, as well as to show the importance that have the automated tools inside this process of
administration of requirements.
Key Words: Requirements, Requirements Engineering, Tools, Techniques
1. Introduccin
A travs de los aos se ha podido constatar que los requerimientos o requisitos son la pieza fundamental
en un proyecto de desarrollo de software, ya que marcan el punto de partida para actividades como la
planeacin, bsicamente en lo que se refiere a las estimaciones de tiempos y costos, as como la
definicin de recursos necesarios y la elaboracin de cronogramas que ser uno de los principales
mecanismos de control con los que se contar durante la etapa de desarrollo. Adems la especificacin
de requerimientos es la base que permite verificar si se alcanzaron o no los objetivos establecidos en el
proyecto ya que estos son un reflejo detallado de las necesidades de los clientes o usuarios del sistema y
es contra lo que se va a estar verificando si se estn cumpliendo las metas trazadas.
Es muy frecuente escuchar entre los conocedores del desarrollo de software (programas de
computadoras), que un gran nmero de los proyectos de software fracasan por no realizar una adecuada
definicin, especificacin, y administracin de los requerimientos. Dentro de esa mala administracin se
pueden encontrar factores como la falta de participacin del usuario, requerimientos incompletos y el mal
manejo del cambio a los requerimientos.
Profesor del Departamento de Ciencias Naturales de la Sede de Occidente de la Universidad de Costa Rica
[mike_arias@hotmail.com
2.
Los requerimientos funcionales son los que definen las funciones que el sistema ser capaz de realizar,
describen las transformaciones que el sistema realiza sobre las entradas para producir salidas. Es
importante que se describa el Qu? y no el Cmo? se deben hacer esas transformaciones. Estos
requerimientos al tiempo que avanza el proyecto de software se convierten en los algoritmos, la lgica y
gran parte del cdigo del sistema.
Por otra parte los requerimientos no funcionales tienen que ver con caractersticas que de una u otra
forma puedan limitar el sistema, como por ejemplo, el rendimiento (en tiempo y espacio), interfaces de
usuario, fiabilidad (robustez del sistema, disponibilidad de equipo), mantenimiento, seguridad,
portabilidad, estndares, etc.
2.3 Caractersticas de un Requerimiento
Es importante no perder de vista que un requerimiento debe ser:
Especificado por escrito: Como todo contrato o acuerdo entre dos partes.
Posible de probar o verificar. Si un requerimiento no se puede comprobar, entonces cmo se
sabe si se cumpli con l o no?
Conciso: Un requerimiento es conciso si es fcil de leer y entender. Su redaccin debe ser simple
y clara para aquellos que vayan a consultarlo en un futuro.
Completo: Un requerimiento est completo si no necesita ampliar detalles en su redaccin, es
decir, si se proporciona la informacin suficiente para su comprensin.
Consistente: Un requerimiento es consistente si no es contradictorio con otro requerimiento.
No ambiguo: Un requerimiento no es ambiguo cuando tiene una sola interpretacin. El lenguaje
usado en su definicin, no debe causar confusiones al lector.
2.4 Dificultades para definir los requerimientos
Durante la etapa de especificacin de requerimientos se pueden presentar muchos inconvenientes los
cuales son importantes de identificar y prevenir, a continuacin se presenta un listado con los problemas
ms comunes en este proceso:
Los requerimientos no son obvios y vienen de muchas fuentes.
Son difciles de expresar en palabras (el lenguaje es ambiguo).
La cantidad de requerimientos en un proyecto puede ser difcil de manejar.
Un requerimiento puede cambiar a lo largo del ciclo de desarrollo.
El usuario no puede explicar lo que hace
Tiende a recordar lo excepcional y olvidar lo rutinario
Hablan de lo que no funciona
Los usuarios tienen distinto vocabulario que los desarrolladores.
En la prctica, esta etapa se va realizando conjuntamente con el anlisis, se puede decir que la
especificacin es el "pasar en limpio" el anlisis realizado previamente aplicando tcnicas y/o estndares
de documentacin, como la notacin UML (Lenguaje de Modelado Unificado), que es un estndar para el
modelado orientado a objetos, por lo que los casos de uso y la obtencin de requerimientos basada en
casos de uso se utiliza cada vez ms para la obtencin de requerimientos.
2.7.4 Validacin
La validacin es la etapa final de la IR. Su objetivo es, ratificar los requerimientos, es decir, verificar todos
los requerimientos que aparecen en el documento especificado para asegurarse que representan una
descripcin, por lo menos, aceptable del sistema que se debe implementar. Esto implica verificar que los
requerimientos sean consistentes y que estn completos.
Se puede apreciar que el proceso de ingeniera de requerimientos es un conjunto estructurado de
actividades, mediante las cuales se obtiene, se valida y se logra dar un mantenimiento adecuado al
documento de especificacin de requerimientos, que es el documento final, de carcter formal, que se
obtiene de este proceso. Es necesario recalcar que no existe un proceso nico que sea vlido de aplicar
en todas las organizaciones. Cada organizacin debe desarrollar su propio proceso de acuerdo al tipo de
producto que se est desarrollando, a la cultura organizacional, y al nivel de experiencia y habilidad de
las personas involucradas en la ingeniera de requerimientos. Hay muchas maneras de organizar el
proceso de ingeniera de requerimientos y en otras ocasiones se tiene la oportunidad de recurrir a
consultores, ya que ellos tienen una perspectiva ms objetiva que las personas involucradas en el
proceso.
3. Tcnicas y herramientas utilizadas en la ingeniera de requerimientos
3.1 Tcnicas utilizadas en las actividades de IR
Existen varias tcnicas para la IR propuestas para ingeniera de requerimientos (Herrera, 2003: 12), y de
las cuales en este artculo solo se abarcarn cinco de ellas. Es importante resaltar que estas tcnicas
pueden ser aplicables a las distintas fases del proceso de la IR, haciendo la salvedad de que hay que
tomar en cuenta las caractersticas propias del proyecto en particular que se este desarrollndose para
aprovechar al mximo su utilidad.
3.1.1 Entrevistas y Cuestionarios
Las entrevistas y cuestionarios se emplean para reunir informacin proveniente de personas o de grupos.
Durante la entrevista, el analista conversa con el encuestado; el cuestionario consiste en una serie de
preguntas relacionadas con varios aspectos de un sistema.
Por lo comn, los encuestados son usuarios de los sistemas existentes o usuarios en potencia del
sistema propuesto. En algunos casos, son gerentes o empleados que proporcionan datos para el sistema
propuesto o que sern afectados por l. El xito de esta tcnica, depende de la habilidad del
entrevistador y de su preparacin para la misma.
3.1. 2 Sistemas existentes
Esta tcnica consiste en analizar distintos sistemas ya desarrollados que estn relacionados con el
sistema a ser construido. Por un lado, podemos analizar las interfases de usuario, observando el tipo de
informacin que se maneja y cmo es manejada, por otro lado tambin es til analizar las distintas
salidas que los sistemas producen (listados, consultas, etc.), porque siempre pueden surgir nuevas ideas
sobre la base de estas.
3.1.3 Lluvia de ideas (Brainstorm)
Este es un modelo que se usa para generar ideas. La intencin en su aplicacin es la de generar la
mxima cantidad posible de requerimientos para el sistema. No hay que detenerse en pensar si la idea es
o no del todo utilizable. La intencin de este ejercicio es generar, en una primera instancia, muchas ideas.
Luego, se irn eliminando en base a distintos criterios como, por ejemplo, "caro", "impracticable",
"imposible", etc.
Las reglas bsicas a seguir son:
Los participantes deben pertenecer a distintas disciplinas y, preferentemente, deben tener mucha
experiencia. Esto trae aparejado la obtencin de una cantidad mayor de ideas creativas.
Conviene suspender el juicio crtico y se debe permitir la evolucin de cada una de las ideas,
porque sino se crea un ambiente hostil que no alienta la generacin de ideas.
Por ms locas o salvajes que parezcan algunas ideas, no se las debe descartar, porque luego de
maduradas probablemente se tornen en un requerimiento sumamente til.
A veces ocurre que una idea resulta en otra idea, y otras veces podemos relacionar varias ideas
para generar una nueva.
Escribir las ideas sin censura.
3.1.4 Prototipos
Durante la actividad de extraccin de requerimientos, puede ocurrir que algunos requerimientos no estn
demasiado claros o que no se est muy seguro de haber entendido correctamente los requerimientos
obtenidos hasta el momento, todo lo cual puede llevar a un desarrollo no eficaz del sistema final.
Entonces, para validar los requerimientos hallados, se construyen prototipos. Los prototipos son
simulaciones del posible producto, que luego son utilizados por el usuario final, permitindonos conseguir
una importante retroalimentacin en cuanto a si el sistema diseado con base a los requerimientos
recolectados le permite al usuario realizar su trabajo de manera eficiente y efectiva.
El desarrollo del prototipo comienza con la captura de requerimientos. Desarrolladores y clientes se
renen y definen los objetivos globales del software, identifican todos los requerimientos que son
conocidos, y sealan reas en las que ser necesaria la profundizacin en las definiciones. Luego de
esto, tiene lugar un diseo rpido. El diseo rpido se centra en una representacin de aquellos
aspectos del software que sern visibles al usuario (por ejemplo, entradas y formatos de las salidas). El
diseo rpido lleva a la construccin de un prototipo.
3.1.5 Casos de Uso
Los casos de uso son una tcnica para especificar el comportamiento de un sistema. El sitio en Internet
wikipedia.org, define a un caso de uso como:
Un caso de uso es una secuencia de transacciones que son desarrolladas por un
sistema en respuesta a un evento que inicia un actor sobre el propio sistema. Los
diagramas de casos de uso sirven para especificar la funcionalidad y el comportamiento
de un sistema mediante su interaccin con los usuarios y/o otros sistemas
(http://es.wikipedia.org/wiki/Caso_de_uso).
Los casos de uso permiten entonces describir la posible secuencia de interacciones entre el sistema y
uno o ms actores, en respuesta a un estmulo inicial proveniente de un actor, es una descripcin de un
conjunto de escenarios, cada uno de ellos comenzado con un evento inicial desde un actor hacia el
sistema. La mayora de los requerimientos funcionales, sino todos, se pueden expresar con casos de uso.
Segn el autor Sommerville, los casos de uso son una tcnica que se basa en escenarios para la
obtencin de requerimientos. Actualmente, se han convertido en una caracterstica fundamental de la
notacin UML (Lenguaje de modelado unificado), que se utiliza para describir modelos de sistemas
orientados a objetos.
3.2 Herramientas automatizadas para la Administracin de Requerimientos
En el desarrollo de software se cuenta con una ventaja proporcionada por las herramientas CASE. Las
herramientas CASE (Ingeniera del Software Asistida por Computadora) se le conoce a todo aquel
software que es usado para ayudar a las actividades del proceso de desarrollo del software, en donde se
ubica la ingeniera de requerimientos, que se ha venido tratando en este artculo. Estas herramientas se
concentran en capturar requerimientos, administrarlos y producir una especificacin de requisitos.
Existen muchas y muy variadas herramientas CASE que pueden ser utilizadas por los desarrolladores de
software en sus proyectos, y de la forma ms conveniente para ellos. Si es importante hacer ver que
estas herramientas fungen como un medio facilitador para agilizar y mejorar los procesos involucrados en
todo el ciclo de vida presentado por la IR, y que en conjunto ayudan a la construccin final de un producto
de software terminado.
Estas herramientas permiten entre otras cosas tener un mayor control en proyectos complejos, reducir
costos y retrasos en los proyectos, ayudan a determinar la complejidad y los esfuerzos necesarios.
En este apartado se presentan caractersticas generales de una de las herramientas ms utilizadas para
este propsito: RequisitePro , y recomendada sitio en Internet Rational.com.
3.2.1 RequisitePro
RequisitePro es la herramienta que ofrece Rational Software para tener un mayor control sobre los
requerimientos planteados por el usuario y todos aquellos requerimientos tcnicos o nuevos
requerimientos de usuario que surjan durante el ciclo de vida del proyecto.
En RequisitePro los requerimientos se encuentran documentados bajo un esquema organizado de
documentos; estos esquemas cumplen completamente con los estndares requeridos por algunas de las
instituciones a nivel mundial ms reconocidas en el desarrollo de software, tales como: IEEE (Instituto de
Ingenieros Elctricos y Electrnicos), ISO, CMM (Modelo de Capacidad de Madurez) y por el RUP
(Proceso Unificado Racional)
Esta herramienta se integra con aplicaciones para la administracin de cambios, herramientas de
modelado de sistemas y con herramientas de pruebas. Esta integracin asegura que los diseadores
conocen los requerimientos del usuario, del sistema y del software en el momento de su desarrollo.
El desarrollo de software es una tarea de equipo, de tal forma, es crtico que todos los miembros del
equipo posean un entendimiento compartido de la visin de sus proyectos, metas, especificaciones y
requerimientos; pero, cmo puede conseguirse cuando los equipos se encuentran geogrficamente
distribuidos y funcionalmente aislados, no pudiendo comunicarse entre si en tiempo y forma? La solucin
a esta necesidad es IBM Rational RequisitePro. IBM Rational RequisitePro es una solucin fcil de usar,
es una herramienta de administracin de requerimientos que le permite al equipo crear y compartir sus
requerimientos utilizando mtodos familiares basados en documentos potenciados por la aplicacin de
las capacidades de una base de datos, tales como la trazabilidad y anlisis de impacto. El resultado es
una mejor comunicacin y administracin de requerimientos con una mayor probabilidad de completar los
proyectos en tiempo, dentro del presupuesto y superando las expectativas. Los proyectos exitosos
comienzan con una buena administracin de requerimientos, cuanto ms efectiva sea su ejecucin,
mayor ser el resultado en calidad y satisfaccin del cliente.
Segn la promocin hecha en Internet mediante la pgina Web para esta herramienta, algunas de sus
ventajas son:
Un producto potente y fcil de utilizar para la gestin de requisitos y casos de uso que propicia
una mejor comunicacin, mejoras en el trabajo en equipo y reduce el riesgo de los proyectos.
Combina la interfaz conocida y fcil de utilizar de los documentos de Microsoft Word con potentes
funciones de base de datos para conseguir la mxima eficacia en anlisis y consulta de
requisitos.
Garantiza que todos los componentes del equipo estarn informados de los requisitos ms
actuales para asegurar la coherencia.
10
11
de requerimientos), en vas de seguir siendo un pas que es visto con buenos ojos a nivel mundial,
aprovechando entre muchas otras cosas, el cuarto lugar que ostenta Costa Rica a nivel mundial con
respecto a la tasa de alfabetizacin adulta (95.8% en poblacin mayor a 15 aos), segn el reporte de
Desarrollo Humano emitido por la ONU (Organizacin de la Naciones Unidas) en el ao 2004 (CINDE,
2004); y abonado tambin a que la industria del software in Costa Rica ha emergido como una de las
industrias ms dinmicas en Latinoamrica, experimentando un crecimiento explosivo, donde se
encuentran alrededor de 300 compaas relacionadas con el software que van desde pequeas hasta
grandes empresas que se dedican al desarrollo de software tanto para el mercado local como
internacional, ofreciendo la ms alta calidad en sus productos.
5. Bibliografa
Libros
Pressman, Roger S. 2006, Ingeniera del Software: Un enfoque prctico, Sexta edicin, Mxico
DF, Editorial McGraw Hill.
Sommerville Ian, 2005, Ingeniera del Software, Stima edicin, Mxico DF, Editorial Pearson.
Pginas Web
IEEE Std 610.12-1990, IEEE Standard Glossary of Software Engineering Terminology,
recuperado
el
24
de
mayo
de
2006
en:
http://standards.ieee.org/reading/ieee/std_public/description/se/610.12-1990_desc.html
Herrera J., Lizka Johany (2003) Ingeniera de Requerimientos, Ingeniera de Software,
Recuperado el 25 de mayo de 2006 en: http://www.monografias.com/trabajos6/resof/resof.shtml
Montes Meyhuay Magno, Ingeniera de Requerimientos, recuperado el 25 de mayo de 2006 en:
www.proamazonia.gob.pe/bpa/ingenieria_requerimientos.htm
Organizacin Exactus, recuperado el 29 de mayo de 2006 en: www.exactus.com
Racional
RequisitePro,
recuperado
el
30
de
mayo
de
2006
en:
julio
de
2006
en:
http://www.rational.com.ar/herramientas/requisitepro.html
Enciclopedia
Wikipedia,
recuperado
el
19
de
http://es.wikipedia.org/wiki/Caso_de_uso
12
13