Este documento describe los conceptos clave de la ingeniería de requisitos. Explica que la ingeniería de requisitos comprende las tareas relacionadas con determinar las necesidades de un nuevo o modificado software tomando en cuenta los requisitos de las partes interesadas. También describe las fases del proceso de ingeniería de requisitos como la obtención, el análisis, la especificación y la validación de requisitos. Además, explica las técnicas comúnmente utilizadas en este proceso como entrevistas, casos de uso y cuestion
Ingeniería de Requesitos e Ingeniería de Requerimientos
1. INSTITUTO UNIVERSITARIO POLITÉCNICO
“SANTIAGO MARIÑO”
EXTENSIÓN PORLAMAR
ESCUELA: INGENIERÍA EN SISTEMA
Sistema II: Ingeniería de Requisitos e Ingeniería de
Requerimientos
Realizado por:
Rivas F., Juan Carlos
C.I.: 19.116.403
Porlamar, Enero de 2017
2. INTRODUCCION
La ingeniería es el conjunto de conocimientos científicos y tecnológicos para la
innovación, invención, desarrollo y mejora de técnicas y herramientas para
satisfacer las necesidades de las empresas y la sociedad. Su estudio como campo
del conocimiento está directamente relacionado con el comienzo de la Revolución
Industrial, constituyendo una de las actividades pilares en el desarrollo de las
sociedades modernas, así como los requerimientos o requisitos fundamentales en
un proyecto de desarrollo de software. En la ingeniería de sistemas y la ingeniería
de software, la Ingeniería de requisitos o Ingeniería de requerimientos comprende
todas las tareas relacionadas con la determinación de las necesidades o de las
condiciones a satisfacer para un software nuevo o modificado, tomando en cuenta
los diversos requisitos de las partes interesadas, que pueden entrar en conflicto
entre ellos. Además, la especificación 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 están cumpliendo las
metas trazadas.
3. INGENIERÍA DE REQUISITOS
Es el proceso de desarrollar una especificación de Software. Trata de los
principios, métodos, técnicas y herramientas que permiten descubrir, documentar
y mantener los requisitos para sistemas basados en computadora, de forma
sistemática y repetible. En definitiva, facilita los mecanismos adecuados para
comprender las necesidades del cliente, analizando sus necesidades, confirmando
su viabilidad, negociando una solución razonable, especificando la solución sin
ambigüedad, validando la especificación y gestionando los requisitos para que se
transformen en un sistema operacional.
Según Giraldo, O.P. (2007) “la ingeniería de requisitos mejora la capacidad de
predecir cronogramas de proyectos, así como sus resultados, esta proporciona un
punto de partida para controles subsecuentes y actividades de mantenimiento,
tales como estimación de costos, tiempo y recursos necesarios”.
(https://www.ecured.cu/Ingenier%C3%ADa_de_requisitos)
DEFINICIÓN DE REQUERIMIENTO
Según Gelmer (2005) sostiene.
Los requerimientos son declaraciones que identifican atributos,
características, capacidades, cualidades que necesita cumplir un
sistema de información (o un software) para que tenga valor y utilidad
para el usuario. Son declaraciones que identifican atributos,
capacidades, características o cualidades que necesita cumplir un
sistema para que tenga valor y utilidad para el usuario.
(http://www.alegsa.com.ar/Dic/requerimientos.php)
Es decir, son declaraciones que identifican atributos, capacidades,
características o cualidades que necesita cumplir un sistema para que tenga valor
y utilidad para el usuario.
CARACTERÍSTICAS DE LOS REQUERIMIENTOS
Actual: el requerimiento debe ser real, preciso optimo y adaptable a las
condiciones del tiempo modo y lugar.
4. Cohesión: el requerimiento debe ser aplicado de forma específica a una
situación real.
Completo: el requerimiento debe abarcar la totalidad de una situación
problema obteniendo todos los recursos necesarios para lograr una
solución óptima recopilando toda la información necesaria.
Consistente: el requerimiento debe ser coherente con los demás
requerimientos sin entrar en conflicto entre requerimientos del mismo
sistema o contradicciones.
Correcto/necesario: el requerimiento debe cumplir con las especificaciones
técnicas de los clientes para el nuevo sistema de información.
Factible/viable: el requerimiento permite su implementación real.
No ambiguo: el requerimiento debe ser preciso, objetivo y fácil de
interpretar
Obligatorio: el requerimiento debe representar una característica definida
por el cliente.
Observable externamente: el requerimiento debe especificar una o varias
características medibles, observables por el cliente del nuevo sistema de
información.
Verificable/demostrable: La implementación del requerimiento debe poder
ser resuelta en alguno de estos cuatro métodos: inspección, análisis,
demostración o prueba.
INGENIERÍA DE REQUERIMIENTOS
Es la disciplina para desarrollar una especificación completa, consistente y no
ambigua, la cual servirá como base para acuerdos comunes entre todas las partes
involucradas y en dónde se describen las funciones que realizará el sistema. En
este workshop (taller) el instructor presentará los principios y técnicas necesarios
de la Ingeniería de Requerimientos como pieza inicial de un proyecto exitoso que
termine en un "contrato" que se pueda cumplir en un tiempo, presupuesto y
alcance inicialmente establecidos, utilizando estándares mundialmente conocidos
5. y aceptados por empresas líderes en el desarrollo de software (IEEE, CMMI,
RUP).
Según Sommerville 108 (2005) “Un requerimiento es simplemente una
declaración abstracta de alto nivel de un servicio que debe proporcionar el sistema
o una restricción de éste”.
(http://www.intersedes.ucr.ac.cr/ojs/index.php/intersedes/article/viewFile/119/118)
Analizando la definición un requerimiento es una descripción de una condición
o capacidad que debe cumplir un sistema, ya sea derivada de una necesidad de
usuario identificada, o bien, estipulada en un contrato, estándar, especificación u
otro documento formalmente impuesto al inicio del proceso.
TÉCNICAS PRINCIPALES APLICADAS EN LA INGENIERÍA DE REQUISITOS
La ingeniería de requisitos puede ser un proceso largo y arduo para el que se
requiere de habilidades psicológicas. Los analistas pueden emplear varias
técnicas para obtener los requisitos del cliente. Históricamente, esto ha incluido
técnicas tales como las entrevistas, o talleres con grupos para crear listas de
requisitos. Técnicas más modernas incluyen los prototipos, y utilizan casos de uso.
Entrevistas. Permiten tomar conocimiento del problema y comprender los
objetivos de la solución buscada.
Desarrollo de conjunto de aplicaciones. Es una práctica de grupo donde
participan usuarios, analistas, administradores del sistema, y clientes y en la que
se concretan las necesidades del sistema.
Tormenta de ideas. Consiste en la mera acumulación de ideas sin evaluar las
mismas. Ofrece una visión general de las necesidades del sistema, pero sin
ofrecer detalles concretos.
Mapa conceptual. Grafos en los que los vértices representan conceptos y las
aristas representan posibles relaciones entre dichos conceptos. Estos grafos
6. sirven para aclarar los conceptos relacionados con el sistema a desarrollar,
ofreciendo una visión general de las necesidades del sistema.
Casos de uso. Muestran el contorno (actores) y el alcance del sistema
(requisitos expresados como casos de uso). Un caso de uso describe la secuencia
de interacciones que se producen entre el sistema y los actores del mismo para
realizar una determinada función. La ventaja principal de los casos de uso es que
resultan muy fáciles de entender para el cliente, sin embargo, pueden carecer de a
precisión necesaria, es por ello que pueden acompañarse de una información
textual.
Cuestionarios. Recoge información del sistema de forma independiente de la
entrevista.
FASES DE LA INGENIERÍA DE REQUERIMIENTOS
Según Kenia Esmeralda Hernández Hernández (2013) expone:
Obtener requisitos: a través de entrevistas o comunicación con clientes o
usuarios, para saber cuáles son sus expectativas.
Analizar requisitos: detectar y corregir las falencias comunicativas,
transformando los requisitos obtenidos de entrevistas y requisitos, en
condiciones apropiadas para ser tratados en el diseño.
Documentar requisitos: igual que todas las etapas, los requisitos deben
estar debidamente documentados.
Verificar los requisitos: consiste en comprobar el correcto funcionamiento
de un requisito en la aplicación.
Validar los requisitos: comprobar que los requisitos implementados se
corresponden con lo que inicialmente se pretendía.
REQUERIMIENTOS DE SOFTWARE DE LA INGENIERÍA DE REQUERIMIENTO
Una especificación de requisitos del software es una descripción completa del
comportamiento del sistema a desarrollar. Incluye un conjunto de casos de uso
que describen todas las interacciones que se prevén que los usuarios tendrán con
7. el software. También contiene requisitos no funcionales (o suplementarios). Los
requisitos no funcionales son los requisitos que imponen restricciones al diseño o
funcionamiento del sistema (tal como requisitos de funcionamiento, estándares de
calidad, o requisitos del diseño).
Las estrategias recomendadas para la especificación de los requisitos del
software están descritas por IEEE 830-1998. Este estándar describe las
estructuras posibles, contenido deseable, y calidades de una especificación de
requisitos del software.
Los requisitos se dividen en tres:
Funcionales: son los que el usuario necesita que efectúe el software.
Normalmente se identifican como los requisitos que responden a la
pregunta ¿qué hace?. El sistema debe emitir un comprobante al asentar la
entrega de mercadería.
No funcionales: son los "recursos" para que trabaje el sistema de
información (redes, tecnología). Ej: el soporte de almacenamiento a usar
debe ser MySQL. Normalmente se identifican como los requisitos que
responden a la pregunta ¿cómo lo hace? rápido, fácil etc.
Empresariales u Organizacionales: son el marco contextual en el cual se
implantará el sistema para conseguir un objetivo macro.
Según JAMES A. SENN (2000)
Los requerimientos de un sistema de software, cuando se ven en su
conjunto son extensos y detallados, y además contienen múltiples
relaciones entre sí. Lo que nos da a concluir, que el conjunto de
requerimientos de un sistema computacional es complejo. Obtenemos
la posibilidad de especificar sistemas complejos al documentar
especificaciones simples y concisas para el sistema. Esto se logra
mediante al clasificar, estructurar y organizar todo lo que el sistema
debe de hacer. En otras palabras, al analizar sus requerimientos.
(http://requerimientos.galeon.com/)
8. Finalmente se puede decir que, la especificación de requerimientos suministra
al técnico y al cliente, los medios para valorar la calidad de los programas, una vez
que se haya construido.
ACTIVIDADES DE LA INGENIERÍA DE REQUERIMIENTOS
Actividades ayudan a reconocer la importancia que tiene para el desarrollo de
un proyecto de software realizar una especificación y administración adecuada de
los requerimientos de los clientes o usuarios. Las cuatro actividades son:
Extracción: Esta fase representa el comienzo de cada ciclo. Extracción es el
nombre comúnmente dado a las actividades involucradas en el
descubrimiento de los requerimientos del sistema. Aquí, los analistas de
requerimientos deben trabajar junto al cliente para descubrir el problema
que el sistema debe resolver, los diferentes servicios que el sistema debe
prestar, las restricciones que se pueden presentar, etc. Es importante, que
la extracción sea efectiva, ya que la aceptación del sistema dependerá de
cuan bien éste satisfaga las necesidades del cliente.
Análisis: Sobre la base de la extracción realizada previamente, comienza
esta fase en la cual se enfoca en descubrir problemas con los
requerimientos del sistema identificados hasta el momento. Usualmente se
hace un análisis luego de haber producido un bosquejo inicial del
documento de requerimientos; en esta etapa se leen los requerimientos, se
conceptúan, se investigan, se intercambian ideas con el resto del equipo, se
resaltan los problemas, se buscan alternativas y soluciones, y luego se van
fijando reuniones con el cliente para discutir los requerimientos.
Especificación: En esta fase se documentan los requerimientos acordados
con el cliente, en un nivel apropiado de detalle. En la práctica, esta etapa se
va realizando conjuntamente con el análisis, se puede decir que la
especificación es el "pasar en limpio" el análisis realizado previamente
aplicando técnicas y/o estándares de documentación, como la notación
UML (Lenguaje de Modelado Unificado), que es un estándar para el
modelado orientado a objetos, por lo que los casos de uso y la obtención de
9. requerimientos basada en casos de uso se utiliza cada vez más para la
obtención de requerimientos-
Validación: La validación 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 descripción, por lo menos, aceptable del sistema que se debe
implementar. Esto implica verificar que los requerimientos sean
consistentes y que estén completos.
DIFICULTADES PARA DEFINIR UN REQUERIMIENTO
Uno de los problemas principales que podemos encontrar a la hora de
especificar los requerimientos, es la necesidad de un entendimiento de los
problemas del cliente, deseos y ambiente en el cual el sistema será instalado.
Según [Booch], “uno de los factores principales de problemas es la
complejidad del dominio, en el cual se encuentran los requerimientos. También
tenemos que tener en cuenta, que el análisis de requerimientos es una actividad
de intensa comunicación”.
Siempre que existe comunicación, se pueden producir malas interpretaciones,
omisiones, etc. que pueden producir problemas tanto al analista como al cliente.
Normalmente, los clientes y desarrolladores tienen diferentes perspectivas de la
naturaleza del problema y hacen suposiciones diferentes sobre la naturaleza de la
solución. Por lo tanto, el alcance de la especificación de requerimientos hace de
su producción una tarea especializada que es más difícil de hacer por ciertos
factores, entre los cuales se incluye:
Poca calidad en la comunicación
Uso de herramientas y/o técnicas no adecuadas.
La tendencia a reducir el tiempo del análisis de requerimientos.
La no-consideración de alternativas antes de especificar el software.
10. Cambios de los requerimientos debidos a las variaciones en el ambiente y
en la comprensión tanto del cliente como del desarrollador conforme
progresa el desarrollo.
Un enfoque organizado para el desarrollo de software es esencial para reducir
estos factores de dificultad. Hay muchas oportunidades para cometer errores por
requerimientos mal interpretados en el camino hacia una implantación incorrecta.
TÉCNICAS Y HERRAMIENTAS UTILIZADAS EN LA INGENIERÍA DE
REQUERIMIENTOS
El proceso de Ingeniería de Requerimientos describe de manera detallada y
precisa cada uno de los aspectos del ciclo de vida de un conjunto de
requerimientos la cual se clasifican en:
Técnicas utilizadas en las actividades de IR: Existen varias técnicas para la
IR propuestas para ingeniería de requerimientos (Herrera, 2003: 12), y de las
cuales en este artículo solo se abarcarán cinco de ellas. Es importante resaltar
que estas técnicas pueden ser aplicables a las distintas fases del proceso de la IR,
haciendo la salvedad de que hay que tomar en cuenta las características propias
del proyecto en particular que se esté desarrollándose para aprovechar al máximo
su utilidad.
Entrevistas y Cuestionarios: Las entrevistas y cuestionarios se emplean
para reunir información proveniente de personas o de grupos. Durante la
entrevista, el analista converso con el encuestado; el cuestionario consiste en una
serie de preguntas relacionadas con varios aspectos de un sistema. El éxito de
esta técnica, depende de la habilidad del entrevistador y de su preparación para la
misma.
Sistemas existentes: Esta técnica consiste en analizar distintos sistemas ya
desarrollados que estén relacionados con el sistema a ser construido. Por un lado,
podemos analizar las interfaces de usuario, observando el tipo de información que
se maneja y cómo es manejada, por otro lado, también es útil analizar las distintas
11. 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 intención de este ejercicio es generar, en una primera instancia, muchas
ideas. Luego, se irán eliminando en base a distintos criterios como, por ejemplo,
"caro", "impracticable", "imposible", etc.
Prototipos: Los prototipos son simulaciones del posible producto, que luego
son utilizados por el usuario final, permitiéndonos conseguir 8 una importante
retroalimentación en cuanto a si el sistema diseñado con base a los
requerimientos recolectados le permite al usuario realizar su trabajo de manera
eficiente y efectiva.
12. CONCLUSION
Se presentó en este trabajo unas series de actividades y técnicas de
requerimientos de software ya que es de suma importancia ya que permite
conocer a los clientes y usuarios así como el ambiente de trabajo, esto ayuda a
establecer una buena relación de trabajo y comunicación entre el equipo de
desarrollo y los clientes. Es necesario que para cada desarrollo los clientes y
usuarios se involucren en la definición de sus requerimientos, pues ellos son los
que deciden el destino del proyecto.
13. BIBLIOGRAFÍA
Herrera, L.J. Ingeniería De Requerimientos, Ingeniería De Software. Volumen, 22.
Disponible en: https://www.ecured.cu/Ingenier%C3%ADa_de_requisitos
Análisis y desarrollo de sistemas de información, viernes, 5 de junio de 2009.
Disponible en: http://desasof2004.blogspot.com/2009/06/definicion-de-
requerimientos.html
Universidad Nacional de Ingeniería Disponible en:
http://www.sistemasuni.edu.pe/dworkshops/ingenieria_requerimientos.html
[Christel, M. 92]: Christel, M. G. Kang, K. C. Issues in Requirements Elicitation.
Disponible: http://www.sei.cmu.edu
Andrew Stellman and Jennifer Greene (2005). Applied Software Project
Management. Cambridge, MA: O'Reilly Media. ISBN 0-596-00948-8. Disponible
en:
https://es.wikipedia.org/wiki/Ingenier%C3%ADa_de_requisitos#Especificaci.C3.B3
n_de_requisitos_del_software
JAMES A. SENN, Análisis y Diseño de Sistemas de Información, Segunda
Edición, Mc Graw Hill, abril 2000. Disponible en: http://requerimientos.galeon.com/
Kenia Esmeralda Hernández Hernández, 13 de Marzo de 2013. Disponible en:
http://unidad2requerimientos.blogspot.com/2013/03/ingenieria-de-
requerimientos.html