You are on page 1of 6

Importancia de la

ingeniería de
requerimientos
dentro del ciclo de
desarrollo de software
Lie. Caridad Racero Borrell,
Téc. en Telemática, Gerencia de Sistemas Informáticos, Dirección de Desarrollo y Asuntos
Regulatorios (DDAR), ETECSA
caridad. râcero@etecsa.cu

E n la actualidad un número
creciente de herramientas auto-
matizadas han surgido para ayudar a
escritos, a especificaciones precisas, Estudios realizados muestran que
no ambiguas, consistentes y com- más del 53 % de los proyectos de
pletas del comportamiento del sistema, software fracasan por no realizarse
definir y aplicar un proceso de desa- incluyendo funciones, interfaces, un estudio previo de requisitos.
rrollo de software efectivo. Hoy día la rendimiento y limitaciones'". Otros factores como la falta de par-
economía global depende más de "Un enfoque sistémico para reco- ticipación del usuario, los requeri-
sistemas automatizados que en épo- lectar, organizar y documentar los mientos incompletos y el cambio a los
cas pasadas; esto ha llevado a los requerimientos del sistema; es tam- requerimientos, ocupan sitiales altos
equipos de desarrollo a enfrentarse bién el proceso que establece y en los motivos de fracasos.
con una nueva década de procesos y mantiene acuerdos sobre los cam-
estándares de cal idad. A pesar de los ¿Qué son los requerimientos? Exis-
bios de requerimientos, entre los ten múltiples definiciones para reque-
avances de la tecnología, aún existen clientes y el equipo del proyecto"^ rimiento, a continuación se presenta
procesos de producciones informa-
les, parciales y, en algunos casos, no En todas las definiciones se destaca la que aparece en el glosario de la
confiables. como un proceso que comprende ÍEEE:
todas las actividades para crear y man- 1. Una condición o necesidad de
La Ingeniería de Requerimientos tener los requerimientos de un sistema un usuario para resolver un proble-
(IR) es definida como: y cumple un papel primordial en el ma o alcanzar un objetivo.
"La disciplina para desarrollar proceso de producción de soñware, 2. Una condición o capacidad que
una especificación completa, con- pues enfoca un área fundamental: la debe estar presente en un sistema o
sistente y no ambigua, la cual ser- defínición de lo que se desea producir. componentes de sistema para satis-
virá como base para acuerdos Su tarea principal consiste en la facer un contrato, estándar, especi-
comunes entre todas las partes in- generación de especificaciones co- ficación u otro documento formal.
volucradas y en donde se descri- rrectas que describan con claridad, sin 3.Una representación documentada
ben las funciones que realizará el ambigüedades, en forma consistente y de una condición o capacidad como
sistema"'. compacta, el comportamiento del sis- en 1 ó 2. Se dividen en funcionales y
"El proceso por el cual se trans- tema; de esta manera, pretende mini- no funcionales.
forman los requerimientos declarados mizarse los problemas relacionados Funcionales: condición o capaci-
por los clientes, ya sean hablados o con el desarrollo de sistemas. dad de un sistema requerida por el

52 Tom ReWsta Técnica de la Empresa de Telecomunicadones de Cuba S.A.


usuario para resolver un problema o •Necesario: un requerimiento es necesario si su omisión provoca
alcanzar un objetivo. una deficiencia en el sistema a construir y, además, su capacidad,
No funcionales: condición o capa- características físicas o factor de calidad no pueden ser reempla-
cidad que debe poseer un sistema zados por otras capacidades del producto o del proceso.
para satisfacer un contrato, un es- •Conciso: un requerimiento es conciso si es fácil de leer y enten-
tándar, una especificación u otro der. Su redacción debe ser simple y clara para aquellos que vayan a
documento formalmente impuesto. consultarlo en el futuro.
Son propiedades que debe tener el •Completo: un requerimiento está completo si no necesita ampliar
sistema. detalles en su redacción, es decir, si se proporciona la información
• Usabilidad: la interíaz de usuario suficiente para su comprensión.
deberá ser familiar a los usuarios •Consistente: un requerimiento es consistente si no es contradictorio
que han utilizado otras aplicacio- con otro requerimiento.
nes Web o aplicaciones de escri- • No ambiguo: un requerimiento no es ambiguo cuando tiene una sola
torio de Windows. interpretación. El lenguaje usado en su definición no debe causar
•Seguridad: el acceso se realiza- confusiones al lector.
rá a través de nombres de usua- • Verificable: un requerimiento es verificable cuando puede ser cuan-
rio y contraseñas, dejar huellas de tificado de manera que permita bacer uso de los siguientes métodos de
confirmación de operaciones. verificación: inspección, análisis, demostración o pruebas.
• Desempeño y escaiabilidad: Sin embargo, a pesar de ser conocidas estas características, se presen-
el sistema deberá ser fácilmen- tan dificultades en el momento de definirlos, de las cuales pueden
te adaptable a cualquier cam- señalarse:
bio en el entorno de trabajo. Es •Los requerimientos no son obvios y vienen de muchas fuentes.
la capacidad del sistema de • Son difíciles de expresar en palabras —el lenguaje es ambiguo—,
cambiar su tamaño o configu- • Existen muchos tipos de requerimientos y diferentes niveles de
ración para adaptarse a las cir- detalle.
cunstancias cambiantes. •La cantidad de requerimientos en un proyecto puede ser difícil de
• Mantenimiento y actualización: manejar.
entrega de nuevas versiones del • Los requerimientos nunca son iguales. Algunos son más difíciles, más
producto a bajo costo para el riesgosos, más importantes o más estables que otros.
cliente en un mínimo de tiempo. •Los requerimientos están relacionados entre sí y, a la vez, se relacionan
• Soporte: proveer soporte téc- con otras partes del proceso.
nico eficiente, por ejemplo, !a •Cada requerimiento tiene propiedades únicas y abarcan áreas
guía de resolución de proble- funcionales específicas.
mas y una lista de información. • Un requerimiento puede cambiara lo largo del ciclo de desarrollo.
•Hardware: requisitos de plata- • Son difíciles de cuantificar, pues cada conjunto de requerimientos es
forma de hardware, por ejemplo, particular a cada proyecto.
los tipos de servidores. Para lograr mayor claridad de este tema, se representan en la figura 1
• Software: requisitos de plata- los tipos de requerimientos a considerar.
forma de software —^S.O. servi-
dor: Windows NT 4.0, S.O. clien-
Tipos de requerimiento
te: Windows NT 4.0, Software de
aplicación PHP. Gestor de BD
MySQL—. Interfaz
Características de los
requerimientos
Aseguramiento
Las características de un reque- de calidad
rimiento son sus propiedades
principales. Un conjunto de re-
querimientos en estado de madu-
rez, debe presentar características
individualmente y en grupo. A
continuación se presentan las
más importantes: Figura 1 Tipos de requerimientos

Tono Rtn'ista Técnica de hi Empresa de Telecomunicaciones de C.ulv.i S.A.


Desde et punto de vista de los recursos humanos, son muchas las per- sido percibido a un nivel de riesgo
sonas involucradas en el desarrollo de los requerimientos de un sistema aceptable sin perder de visla las
y cada una tiene intereses diversos y realiza roles específicos dentro de factibilidades técnicas y económi-
la planificación del proyecto. El conocimiento de cada papel desem- cas, a la vez que se buscan resultados
peñado asegura que se involucren a las personas correctas en las completos, correctos y sin ambigüe-
diferentes fases del ciclo de vida, y en las diferentes actividades de la dades.
IR. Los roles más importantes a considerar son los que siguen, y
Especiricación: es la actividad en
aparecen en la GPSW v-2, vigente en ETECSA:
la cual se genera el documenlo, con
Usuario final: son las personas que utilizarán el sistema desarrollado. el mismo nombre, que contiene una
Están relacionadas con la usabilidad, disponibilidad y fiabilidad del descripción completa de las necesi-
sistema; están familiarizadas con los procesos específicos que debe dades y funcionalidades del sistema
realizar el software, dentro de los parámetros de su ambiente laboral. que será desarrollado; describe el
Serán quienes utilicen las interfaces y los manuales de usuario. alcance de! sistema y la forma como
Usuario líder: son los individuos que comprenden el ambiente del hará sus funciones, con la defini-
sistema o el dominio del problema en donde será empleado el software ción de los requerimientos funcio-
desarrollado. Ellos proporcionan al equipo técnico los detalles y nales y los no funcionales. Definen
requerimientos de las interfaces del sistema. todos los requerimientos de hard-
Equipo de administración y soporte: para proyectos que requieran un ware y software, diagramas, mode-
mantenimiento eventual, estas personas son las responsables de la los de sistemas y cualquier otra
administración de cambios, de la implementación y resolución de las información que sirva de soporte y
anomalías. Su trabajo consiste en revisar y mejorar los procesos del
guía para fases posteriores. Es el
producto finalizado.
resultado final de las actividades de
Equipo de desarrollo e implementación: son los responsables del análisis y evaluación de requeri-
desarrollo del producto en sí e interactúan directamente con el cliente. mientos. Este documento resultante
Personal de pruebas: se encarga de elaborar y ejecutar el plan de será utilizado como fuente básica de
pruebas para asegurar que las condiciones presentadas por el sistema comunicación enlre los clientes,
sean las adecuadas. Son quienes validan si los requerimientos satis- usuarios finales, analistas de sistema,
facen las necesidades del cliente. personal de pruebas, y todos los
Otras personas que pueden estar involucradas, dependiendo de la involucrados en la implementación
magnitud del proyecto, pueden ser el líder informático, lider funcional, del sistema.
personal encargado de documentar el proyecto, los diseñadores de base
Validación: permite demostrar que
de datos, entre otros.
los requerimientos definidos en el
Actividades de la Ingenicria de Requerimientos: en el proceso de IR sistema son los que realmente desea
son esenciales diversas actividades. Se presentarán en un orden se- el cliente. Además, revisa que no .se
cucncial, sin embargo, en un proceso de ingeniería de requerimientos haya omitido ninguno, que no sean
efectivo, estas actividades son aplicadas de manera continua y en orden ambiguos, inconsistentes o redun-
variado. dantes, garantiza que todos los re-
En dependencia del tamaño del proyecto y del modelo de proceso de querimientos presentes en el docu-
software utilizado para el ciclo de desarrollo, las actividades de la IR mento de especificación cumplan
varían en número y en nombres. con los estándares de calidad. No
La tabla I muestra algunos ejemplos de las actividades identificadas para cada debe confundirse la actividad de
proceso. evaluación de requerimientos con la
A pesar de las diferentes interpretaciones que cada desarrollador tenga en validación de requerimientos. La
relación con el conjunto de actividades mostradas, pueden identificarse y evaluación verifica las propiedades
extraerse cinco actividades principales: de cada requerimiento, mientras que
Análisis del problema: el objetivo de esta actividad es entender las la validación revisa el cumplimiento
verdaderas necesidades del negocio, que se comprendan los problemas de las características de la especi-
del negocio, se evalúen las necesidades iniciales de todos los involu- ficación de requisitos.
crados en el proyecto y se proponga una solución de nivel elevado para Evolución: planear cambios posi-
su solución. bles a los requerimientos cuando el
Evaluación y negociación: la diversa gama de fuentes de la cual provienen sistema sea desarrollado y utilizado.
los requerimientos, hace necesaria una evaluación de los mismos antes de La actividad de evolución es un pro-
definir si son adecuados para el cliente. El término adecuado significa que ha ceso extemo que ocurre a lo largo

54 Tom Re\nsia Técnica de la Empresa de Telecomunicadones de Cuba S.A.


Modelo Oliver and EIA / IS-632 IEEE Std CMM nivel RUP
Steiner, 1996 1220-1994 Repetitivo

Evaluar la Análisis de Análisis de Identificación de Análisis del


información requerimientos requerimiento requerimientos problema
disponible

Definir métricas Análisis Estudios de los Identificación de Comprender


efectivas funcional requerimientos restricciones las necesidades
del sistema délos
a desan-ollar involucrados

Crear un Validación de Análisis de los Definir el


modelo del Síntesis requerimientos requerimientos sistema
comportamiento
del sistema
Representación Analizar el
Crear un modelo Análisis y control Análisis délos alcance
Actividades de los objetos del proyecto
del sistema funcional requerimientos
Ejecutar el Evaluación y Comunicación de los Modificar la
análisis estudio de requerimientos definición del
funciones sistema

Crear un plan Verificación de Validación de Administrar los,


secuencial funciones requerimientos cambios de
de construcción requerimientos
V pruebas
Sintesis

Estudio y
evaluación
del diseño

Verificación
fisica

Control

Tabla 1 Actividades de la IR para diferentes modelos de procesos de Ingeniería de Software

del ciclo de vida del proyecto. Tener versiones de los requerimientos es


tan importante como tener versiones del código, porque evita tener
requerimientos emparchados en un proyecto. Algunos de los beneficios
que proporciona el control de versiones está prevenir cambios no
autorizados, guardar revisiones de los documentos de requerimientos,
recuperar versiones previas de los documentos, administrar una estrategia
de releases, prevenir la modificación simultánea a los requisitos, entre
otras. Es importante señalar que estas peticiones de cambios provienen de
muchas fuentes, por lo tanto, deben serenrutadas en un solo proceso con la
finalidad de evitar problemas y conseguir estabilidad en los requerimientos.
Conclusiones
A pesar de su importancia, al proceso de ingeniería de requerimientos, no se
le presta la atención adecuada. Quedan muchos desafíos por ser mejorados,
como la integración de requerimientos funcionales y no funcionales, la
evaluación de especificaciones alternativas, la formalización de la SRS, entre
otras.
Cada actividad y técnica de la IR utilizada individualmente, ofrecerá
soluciones diferentes para proyectos diversos, incluso aquellos casos en los

Tono Revista Técnica de la Fimpresa de Teiecomunicacioncs de Cuba S.A. 55


que el dominio y el área del problema son el mismo. Por tal razón, se considera
que, aunque no existe un modelo de proceso ideal para la IR, cada método y
técnica ofrece diferentes soluciones ante un problema.
La ingenieria de requerimientos es una actividad que involucra a clientes,
usuarios, equipo de desarrollo, jefe de proyecto, entreoíros. Por lo tanto, el
proceso de IR no depende solamente de la forma como se percibe el problema,
sino también, del nivel de experiencia que tengan !o.s involucrados.
Los principales beneficios que se obtienen de la ingenieria de reque-
rimientos están relacionados con la gestión de las necesidades del proyecto
en forma estructurada, mejoras en la capacidad de realización de cronogramas
de proyectos, asi como sus resultados, disminución de los costos y retrasos
del proyecto, mejoras en la calidad del software y en la comunicación entre
equipos, y otros.
Entregar software de calidad, a tiempo y dentro del presupuesto, hará que
nuestros clientes confíen y asegurará el crecimiento y la madurez de la
relación de n i ^ ^

Citas bibliográficas
' Boehm, B. W. Guidelines for Verifying and Validating Software Requirements and Design
Specifications. EURO IFIP79. 1979. pages 711-719. Disponible en; http://www.
infolab.Stanford.edu/~burfaack/water_sluice/sluice6.25.97/ws/nodel'í4.html. (ConsulU; abri)/
2006).
' Southwell, K.. James, K., Clarke, B. A., Andrews. B.. Ashworth, C , Norris. M. y Patel. V
'Requirements Definrtion and Design'. The STARTS Guide. Second Edition, Vol. I. National
Computing Center, 1987. Disponible en: http://www,inf puc-rio.br/werOI/Mod-Req-1 .pdf,
(Consultado; abril/2006).
' Rational Software Corporation Rational Unified Process. Versión 5.5 Rational Software
Corporation. Software basado en UML.

Bibliografía
Hofmann, Hubert. Requirements Engineering. Suiza, Zurich: Institute for Informatics.
University of Zurich. 1993,
IEEE Task Force on Requirements Engineering, Disponible en: http;/Avww.shu,ac.ufi/tfre/
web.links.html (Consulta: abril/2006)
Lista de publicaciones de un grupo de Ingeniería de Software. Disponible en: http://
www,soi.city.ac.uk/-gespan/sw_group__pub.html (Consulta: abril/2006)
Oberg, Roger; Probasco, Leslee. Ericsson, Maria. Applying Requirements Management with
Use Cases. EE.UU,; Rational Software Corporation, 1998.
OMG Unified Modeling Language Specification. Object Management Group. 1999,
Publicaciones de Elsevier Science. Disponible en; http://wviw.elsevier.nl/ (Consulta:abril/
2006).
Saiedian, H. y Dale. R. Requirements Engineenng: Making the Connection Between the
Software Developer and Customer. EE.UU.; Department of Computer 5cience. University of
Nebraska. 1999.
Senn. James A. Análisis y diseño de sistemas de infonnación. Ed. 2'^. Colombia' McGraw
Hill. 1992,
Engineering Resources by Roger S. Pressman & Associates Inc. Disponible en;
http;//www.rspa.com/spi/index.html (Consulta: abril/2006)

S6 Tom Revista Tccmca de la Hmpresa de Teleeomunicaciones de Cuba S.A.

You might also like