Vous êtes sur la page 1sur 12

INGENIERIA DE REQUERIMIENTOS

La parte ms difcil de construir un sistema es precisamente saber qu construir.


Ninguna otra parte del trabajo conceptual es tan difcil como establecer los
requisitos tcnicos detallados, incluyendo todas las interfaces con gente,
mquinas y otros sistemas. Ninguna otra parte del trabajo afecta tanto el sistema
si es hecha mal. Ninguna es tan difcil de corregir ms adelante Entonces, la
tarea ms importante que el ingeniero de software hace para el cliente es la
extraccin iterativa y el refinamiento de los requerimientos del producto.
Introduccion:
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 requisitos. Dentro de esa mala administracin se pueden encontrar factores
como la falta de participacin del usuario, requisitos incompletos y el mal manejo
del cambio a los requisitos.
La Ingeniera de Requisitos (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
los requisitos en el desarrollo de sistemas.
Definicion: Requisito

Una condicin o necesidad de un usuario para resolver un problema o


alcanzar un objetivo.
Una condicin o capacidad que debe estar presente en un sistema o
componentes de sistema para satisfacer un contrato, estndar,
especificacin u otro documento formal.

Un requisito es simplemente una declaracin abstracta de alto nivel de un


servicio que debe proporcionar el sistema o una restriccin de ste.

Definicion: Ingenieria de Requisitos

La Ingeniera de Requisitos ayuda a los ingenieros de software a entender


mejor el problema en cuya solucin trabajarn. Incluye el conjunto de tareas
que conducen a comprender cul ser el impacto del software sobre el
negocio, qu es lo que el cliente quiere y cmo interactuarn los usuarios
finales con el software.

La Ingeniera de Requisitos es el proceso de desarrollar una especificacin


de software. Las especificaciones pretender comunicar las necesidades del
sistema del cliente a los desarrolladores del sistema.

La Ingeniera de Requisitos se define, como un conjunto de actividades en


las cuales, utilizando tcnicas y herramientas, se analiza un problema y se
concluye con la especificacin de una solucin (a veces ms de una).

Actividades de la Ingenieria de Requisitos:

Extraccin: Esta fase representa el comienzo de cada ciclo. Extraccin es


el nombre comnmente dado a las actividades involucradas en el
descubrimiento de los requisitos del sistema.

Anlisis: Sobre la base de la extraccin realizada previamente, comienza


esta fase en la cual se enfoca en descubrir problemas con los requisitos del
sistema identificados hasta el momento.

Especificacin: En esta fase se documentan los requisitos acordados con


el cliente, en un nivel apropiado de detalle.

Validacin: La validacin es la etapa final de la IR. Su objetivo es, ratificar


los requisitos, es decir, verificar todos los requisitos 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 requisitos sean consistentes y que estn completos.

Tcnicas y Herramientas utilizadas en las actividades de Ingeniera de


Requisitos:

Entrevistas y cuestionarios
Sistemas existentes

Grabaciones de video y de audio

Brainstorming (tormenta de ideas)

Arqueologa de documentos

Aprendiz.

Observacin

Run Use Case WorkShop (talleres de trabajo basados en los Casos de


Uso)

Prototipos

Anlisis FODA (Fortalezas, Oportunidades, Debilidades y Amenazas)

Cadena de valor

Modelo de clase conceptual, Diagrama Conceptual, Diagrama de Clases


Conceptual

Diagrama de pescado (Ishikawa Diagram, Cause-and-Effect o Fishbone


Diagram)

Glosario

Diagrama de actividad

Documento ESRE, Casos de uso

Lista de requerimientos

Casos de uso

Casa de calidad o QFD (Quality Function Deployment)

Checklist (lista de verificacin)

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.
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.
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.
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.
Casos de Uso
Los casos de uso son una tcnica para especificar el comportamiento de un
sistema. 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
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.
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 productode 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.
la Ingeniera de requerimientos es un aspecto importante de cualquier proyecto de
software, y es un trmino general usado para abarcar todas las actividades

relacionadas con los requisitos. Los cuatro pasos especficos en la Ingeniera de


requerimientos son los siguientes:
1. La obtencin de requisitos
2. Anlisis de los requisitos
3. La especificacin de requisitos
4. Validacin de los requisitos
A pesar de que parecen ser tareas ejecutadas por separado, estas no pueden
estar estrictamente separadas y deben ejecutarse de manera secuencial. Algunos
de los requisitos implcitos en las prcticas de trabajo, mientras que otros slo
pueden surgir cuando se proponen soluciones de diseo. Los cuatro se realizan
varias veces porque las necesidades son a menudo imposibles de realizar hasta
despus de que un sistema se construye. Incluso cuando los requisitos se indican
al principio, lo ms probable es que va a cambiar al menos una vez durante el
desarrollo, y es muy probable que va a cambiar inmediatamente despus del
desarrollo.
Ingeniera de requerimientos, un proceso de negociacin

La Ingeniera de requerimientos es uno de los pasos ms importantes en un


proceso de desarrollo de software, ya que un proceso de obtencin efectiva de
requisitos ofrecer una serie de requisitos que podrn ser utilizados por el equipo
de desarrollo de software.
En primer lugar, examinar los participantes en el proceso de obtencin de
requerimientos. Hay tres grandes categoras de participantes: el desarrollador, el
usuario y el cliente. Adems, el establecimiento de requisitos importantes pueden
implicar a otras personas, como abogados, organizaciones de estndares del
gobierno y as sucesivamente. Desde este punto de vista, este proceso puede ser
considerado como un proceso de negociacin, donde el potencial de "usuarios"
del sistema debe explorar y comprender los requisitos, ponerse de acuerdo sobre
lo que quieren y lo que necesitan, mientras que los desarrolladores confan en que
se estn resolviendo el problema de forma correcta.
Tipos de Requerimientos
Los requerimientos de software pueden dividirse en 2 categoras: requerimientos
funcionales y
requerimientos no funcionales.

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.
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.
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.
Usan el mismo trmino con distinto significado
Conclusiones
La evolucin de los estudios encarados por la Ingeniera de Requerimientos se fue
dando
paulatinamente. Sin embargo, a partir de los 90, los esfuerzos se concentraron en
la bsqueda de
tcnicas, mtodos y herramientas que pudieran ser aplicados durante el proceso
de definicin de
requerimientos para arribar a una etapa de diseo exitosa, dejando de lado la
obtencin de una
metodologa capaz de adaptarse a cualquier tipo de sistema y paradigma,
brindando un marco de trabajo referencial, independiente del mtodo a aplicar.
Es muy importante mencionar que el poder formular una especificacin de
requerimientos completa y consistente, es un paso muy importante 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 tiene la ingeniera de requerimientos en
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 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.
Como proceso, la administracin de requerimientos es fundamental en todo
proyecto de desarrollo de software, ya que se debe de contar con una
especificacin clara y completa desde las fases iniciales para no tener problemas
posteriores que implican un retrazo en el cronograma, un presupuesto errneo, o
hasta la posible cancelacin del proyecto. Es importante que el documento que se
obtenga de esta etapa sea un reflejo real del acuerdo de las partes involucradas.

Hay que notar el aporte que ha venido a proporcionar la utilizacin de tcnicas


como la especificacin, la lluvia de ideas y el desarrollo de prototipos, que ayudan
a definir requerimientos de una manera concisa y real.
Adems, hoy en da, es importante tomar en cuenta el uso de patrones en el
desarrollo de software. Un patrn es un conjunto de informacin que aporta una
buena solucin ya probada a un problema que se presenta en un contexto
determinado. Para elaborarlo se aslan sus aspectos esenciales y se aaden
cuantos comentarios y ejemplos que sean necesarios. En qu ayuda esto en la
IR? Esto ayuda a disear correctamente en menos tiempo, ayuda a construir
problemas reutilizables y extendibles, y facilita la documentacin y la
comunicacin con otros miembros del equipo de desarrollo, ventajas importantes
que se deben de tomar en cuenta por parte los desarrolladores de software, ya
que si se logra tener un lenguaje en comn dentro del grupo de trabajo, se reduce
el impacto de los riesgos al utilizar soluciones ya probadas, y ampla el
conocimiento de los participantes del desarrollo, permitindoles representar
mejores sistemas de una manera ms estructurada.
La aparicin de herramientas automatizadas para la administracin de
requerimientos, como lo es
RequisitePro, sirven de apoyo a los procesos de Ingeniera de Software, que
se concentran en capturar requerimientos, administrarlos y producir una
especificacin de requisitos.
sta, y muchas otras herramientas, permiten tener un mayor control en proyectos
complejos, reducir costos y retrasos en los proyectos, ayudan a determinar la
complejidad y los esfuerzos necesarios; sin duda alguna, una gran ayuda para
establecer ideas claras de lo que realmente se necesita para llevar a cabo una
exitosa Ingeniera de Requerimientos, y por ende, un comienzo prometedor
cuando se quiere tener xito con un proyecto de software.

INTRODUCCION
1.1
1.2

Propsito

del

Alcance

documento
del

de

requerimientos

producto

DESCRIPCION

GENERAL

2.1

Perspectiva

del

producto

2.2

Funciones

del

producto

2.3
2.4

Caractersticas
Restricciones

del

usuario
generales

REQUERIMIENTOS
3.1
3.2
3.3
3.4

ESPECIFICOS
Requerimientos

de

Interfaz

Requerimientos
Requerimientos
Requerimientos

Funcionales
No

Funcionales
de

Usuario

3.5 Requerimientos de Sistema

DOCUMENTACION DE REQUERIMIENTO DEL SOFTWARE


Es la declaracin oficial de que deben implementar los desarrolladores del
sistema. Debe incluir los requerimientos del usuario para el sistema como los
requerimientos del sistema.
Pueden existir diferentes usuarios:
Cliente del Sistema: Especifican los requerimientos y los leen para verificar que
cumplen sus necesidades.
Administradores: Planifica el proceso de desarrollo del sistema.
Ingenieros de sistemas: Lo utiliza para comprender que sistema debe
desarrollarse
Ingenieros probadores del sistema: Lo utiliza para desarrollar las pruebas de
validacin.
Ingenieros encargados del mantenimiento del Sistema: Lo utilizan para
comprender el sistema y las relaciones entre sus partes.
Se sugiere la siguiente estructura para los documentos de requerimientos.
1. Introduccin
1.1 Propsito del documento de requerimientos
1.2 Alcance del producto
1.3 Definiciones, acrnicos y abreviaturas
1.4 Referencias
1.5 Descripcin del resto del documento
2. Descripcin General
2.1 Perspectiva del producto

2.2 Funciones del producto


2.3 Caractersticas del usuario
2.4 Restricciones Generales
2.5 Suposiciones y dependencias
3. Requerimientos especficos: Incluye los requerimientos funcionales y
no funcionales. Pueden documentar las interfaces externas, la
funcionalidad, el rendimiento del sistema, las restricciones del
diseo, bases de datos y caractersticas de calidad.
4. Apndices
5. ndice

Proceso de la Ingeniera de Requisitos


Es muy importante definir cul es el proceso de ingeniera de requisitos ya que
esto nos va a servir para la obtencin correcta de los requerimientos. Se han
definido diversos modelos a nivel de toda la Ingeniera de Software, as tenemos
para el desarrollo de aplicaciones web, de escritorio, o sencillamente se ha
definido un estndar, pero en general, la mayor parte de estos procesos tienen un
smil y lo nico que buscan es recopilar la mayor cantidad de requerimientos
correctos para as conformar una buena estructura que servir de base para el
desarrollo de un proyecto.

En la figura, se muestra un esquema del proceso de la ingeniera de requisitos


basado en la Ingeniera de Software de Gestin. El proceso se cumple en cinco
fases: viabilidad, captura y anlisis, especificacin, validacin y gestin de
requisitos.
Estudio de viabilidad: Este permitir rendir un informe tanto al equipo de
desarrollo del proyecto como al usuario o cliente, donde se verificar si el proyecto
vale la pena desarrollarlo. Es de vital importancia para la satisfaccin de los
objetivos del negocio.
Captura y Anlisis: En esta fase el desarrollador o su equipo de desarrollo entran
en contacto con el usuario final o con el cliente para determinar el alcance del
proyecto o del sistema que se desea construir, adems, se debe identificar cules
son los servicios que prestar el sistema, su rendimiento, sus necesidades y
restricciones, y cules son los objetivos esperados.
Especificacin: Aqu se debe obtener un documento de especificacin de
requisitos, en cual se llega a definir de una forma completa, precisa y verificable
cada uno de los requerimientos o necesidades que debe satisfacer el sistema a
desarrollar, adems de sus respectivas restricciones (software, hardware).
Validacin: Consiste en mostrar o comprobar que cada uno de los requisitos
obtenidos definen el sistema o proyecto que se va a construir y que desea el
cliente. En esta etapa solamente entran aquellos requisitos que se mencionaron
ya en la especificacin.
Gestin: Se realiza la comprensin y control de los cambios de cada una de los
requisitos, sean estos requisitos estables (corresponden al estado del sistema) o
voltiles (representan eventos que hacen que el sistema realice una funcin dada).

Vous aimerez peut-être aussi