INGENIERÍA DE REQUISITOS E INGENIERÍA DE REQUERIMIENTOS
1. República Bolivariana de Venezuela
Ministerio del Poder Popular para la Educación Superior
Instituto Universitario Politécnico
“Santiago Mariño”
Cátedra: Sistemas II
Sección “1A”
INGENIERÍA DE REQUISITOS E INGENIERÍA DE
REQUERIMIENTOS
Profesor: Autor:
Diógenes Rodríguez Jesús Rosas
C.I.V-21.578.625
Porlamar, 07 de Julio del 2017
2. INTRODUCCIÓN
La Especificación de Requerimiento es donde se definen los servicios que
un sistema debe proveer y establecer los límites y restricciones en las operaciones
del mismo. En la actualidad, el conjunto de procesos y métodos que tienen por
objetivo capturar y formalizar estos requerimientos se venido a denominar
Ingeniería de Requerimiento.
La Ingeniería de Requerimiento es un campo muy activo dentro de la
informática, y en particular dentro de la Ingeniería del Software, debido a que se
dirige a unas actividades esenciales y muy importantes en el trabajo diario de las
organizaciones. En esta área de la informática, como se ha mencionado al inicio, se
están desarrollando gran cantidad de métodos, técnicas, herramientas y estándares,
que en muchas ocasiones no son conocidos por parte de los profesionales del sector.
La Ingeniería de Requerimientos cumple un papel primordial en el proceso
de producción de software, ya que enfoca un área fundamental, la definición de lo
que se desea producir. Su principal tarea consiste en la generación de
especificaciones correctas que describan con claridad, sin ambigüedades, en forma
consistente y compacta, el comportamiento del sistema; de esta manera, se pretende
minimizar los problemas relacionados al desarrollo de sistemas.
3. INGENIERÍA DE REQUISITOS
“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.” Es decir, La meta fundamental de
la ingeniería de requisito es entregar una especificación de requerimientos de
software correcta y completa. Las especificaciones pretenden comunicar las
necesidades del sistema del cliente a los desarrolladores del sistema. De tal manera
permite gestionar las necesidades del proyecto en forma estructurada, mejora la
capacidad de predecir cronogramas de proyectos, así como sus resultados,
disminuye los costos y retrasos del proyecto, mejora la calidad del software, mejora
la comunicación entre equipos y evita rechazos de usuarios finales.
REQUERIMIENTO
“En ingeniería del software y el desarrollo de sistemas, un requerimiento es
una necesidad documentada sobre el contenido, forma o funcionalidad de un
producto o servicio. Los requerimientos son declaraciones que identifican atributos,
capacidades, características y/o cualidades que necesita cumplir un sistema (o un
sistema de software) para que tenga valor y utilidad para el usuario.” Es decir, los
requerimientos muestran qué elementos y funciones son necesarias para un
proyecto en específico.
CARACTERÍSTICAS DE LOS REQUERIMIENTOS
Las características y criterio que deberían cumplir los requerimientos son
los siguientes:
Actual: el requerimiento no debe volverse obsoleto con el paso del tiempo.
Cohesión: el requerimiento debe dirigirse a solo una única cosa.
Completo: el requerimiento debe estar completamente declarado en un
único lugar, sin información faltante.
4. Consistente: el requerimiento no debe contradecir ningún otro
requerimiento y debe ser completamente consistente con toda la
documentación.
Correcto/necesario: el requerimiento debe cumplir con la necesidad
declarada por los interesados en el sistema/software.
Factible/viable: el requerimiento debe poder ser implementado.
No ambiguo: el requerimiento debe estar concisamente declarado. Debe
expresar hechos objetivos, no opiniones subjetivas. Debe poder poder ser
interpretado de una única manera.
Obligatorio: el requerimiento debe representar una característica definida
por el grupo interesado en el desarrollo del sistema/software, su ausencia no
puede ser reemplazada.
Observable externamente: el requerimiento debe especificar una
característica observable externa o experimentable por el usuario del
producto.
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
Según Boehm; “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.” Es decir, que es el proceso de
recopilar, analizar y verificar las necesidades del cliente para un sistema de
software, el cual, recibe el nombre de Ingeniería de Requerimientos. Esta ingeniería
de requerimientos apunta a mejorar la forma en que comprendemos y definimos
sistemas de software complejos.
5. 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 nuevos sistemas cambian el entorno y
las relaciones entre la gente, así que es importante identificar a todos los actores
involucrados, considerar sus necesidades y asegurar que entienden las
implicaciones de los nuevos sistemas. 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. Cuando sea
necesario, el analista empleará una combinación de estos métodos para establecer
los requisitos exactos de las personas implicadas, para producir un sistema que
resuelva las necesidades del negocio.
FASES DE LA INGENIERÍA DE REQUERIMIENTOS
Obtención de requerimientos: búsqueda y obtención de los requerimientos
desde los grupos de interés.
Análisis: comprobación de la consistencia y completitud de los
requerimientos.
Verificación: constatación de que los requerimientos especificados son
correctos.
REQUERIMIENTOS DE SOFTWARE DE LA INGENIERÍA DE
REQUERIMIENTOS
Requerimientos de software de la Ingeniería de Requerimientos Muchos proyectos
de Software fracasan porque no se realiza un estudio previo de los requerimientos
del usuario, no se hace una definición completa del alcance del proyecto. No
realizamos el modelado del negocio antes de desarrollar el software, esto significa
que el analista no se involucra en el problema; aunque tiene claro que el sistema
6. debe desarrollarse para dar soporte a los procesos de la organización, sino se
involucra en la problemática corre el riesgo de que los requisitos identificados no
correspondan a las necesidades para lo que se debe crear. La ingeniería de
requerimientos cumple un papel primordial en el proceso productivo ya que se
enfoca en el área fundamental: "LA PRODUCCION", siendo su tarea la generación
de especificaciones correctas que describan con claridad, sin ambigüedades y en
forma compacta las necesidades del cliente, cumpliendo lo antes expresado se
obtendrá un proyecto que minimizará los problemas relacionados con la gestión de
dichos requerimientos.
ACTIVIDADES DE LA INGENIERÍA DE REQUERIMIENTOS
Existen cuatro actividades básicas en la ingeniería de requerimiento
(extracción, análisis, especificación y validación) que se tienen que llevar a cabo
para completar el proceso. Estas 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 requisitos de los clientes o usuarios.
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 requisitos del sistema.
Análisis: Sobre la base de la extracción realizada previamente, comienza
esta fase. Usualmente se hace un análisis luego de haber producido un
bosquejo inicial del documento de requisitos; aquí se leen los requisitos, 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 requisitos.
Especificación: En esta fase se documentan los requisitos acordados con el
cliente, en un nivel apropiado de detalle. En la práctica, esta etapa se va
realizando conjuntamente con el análisis, pero se podría decir que la
Especificación es el “pasar en limpio” el análisis realizado previamente
7. aplicando técnicas y/o estándares de documentación, como la notación
UML.
Validación: La validación es la etapa final de la IR. Su objetivo es verificar
todos los requisitos 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 requisitos
sean consistentes y que estén completos.
DIFICULTADES PARA DEFINIR LOS REQUERIMIENTOS
Durante la etapa de especificación de requerimientos se pueden presentar
muchos inconvenientes los cuales son importantes de identificar y prevenir, a
continuación se presenta un listado con los problemas más comunes en este
proceso:
1. Los requerimientos no son obvios y vienen de muchas fuentes.
2. Son difíciles de expresar en palabras (el lenguaje es ambiguo).
3. La cantidad de requerimientos en un proyecto puede ser difícil de manejar.
4. †Un requerimiento puede cambiar a lo largo del ciclo de desarrollo.
5. †El usuario no puede explicar lo que hace
6. Tiende a recordar lo excepcional y olvidar lo rutinario
7. Hablan de lo que no funciona
8. Los usuarios tienen distinto vocabulario que los desarrolladores.
9. Usan el mismo término con distinto significado
TÉCNICAS Y HERRAMIENTAS UTILIZADAS EN LA INGENIERÍA DE
REQUERIMIENTOS
Existen diversas técnicas y herramientas que se utilizan para llevar a cabo
cada una de las actividades del proceso de Ingeniería de Requisitos, una de las
razones por las cuales surgen los errores a la hora del levantamiento es la existencia
de una gama de herramientas. No existe una especie de guía para el uso de los
8. desarrolladores, estos utilizan incluso en la captura más de una técnica en cada de
las actividades que contiene el proceso. Herramientas más Usadas:
Entrevistas y cuestionarios: Las entrevistas y cuestionarios se emplean para reunir
información proveniente de personas o grupos, información que se obtiene
conversando con el encuestado. Las preguntas suelen distinguirse en dos categorías:
abiertas y cerradas. Las preguntas abiertas permiten que los encuestados respondan
con su propia terminología, mientras que las preguntas cerradas predeterminan
todas las posibles respuestas y el interrogado elige entre las opciones presentadas.
Grabaciones de video y de audio: Básicamente existen dos formas de utilizar las
grabaciones: como registro y apoyo de las entrevistas, y para analizar algún proceso
en particular. En cuanto a su función de apoyo, es importante porque permite centrar
la atención en la entrevista en sí, en vez de distraerse tomando notas de todo lo que
se dice. Cuando se trata de analizar algún proceso en particular, su ayuda es
inestimable (sobre todo las filmaciones de video) porque permite ver y analizar en
detalle ese proceso la cantidad de veces que sea necesario.
Brainstorming (tormenta de ideas): Este es un modelo que se usa para generar
ideas. La intención en su aplicación es la de generar la máxima cantidad posible de
requisitos para el sistema. No hay que detenerse en pensar si la idea es o no del todo
utilizable.
9. CONCLUSIÓN
La Ingeniería de Requisitos formalizarlas actividades relacionadas con
obtener la especificación de requisitos formales del sistema a desarrollar a
base de interactuar y negociar con el cliente. Especialmente en las
metodologías del desarrollo de software es crucial contar con un conjunto
de requisitos muy estables sobre los que construir el resto del proyecto.
Es importante tomarse el tiempo necesario para conocer a nuestros clientes
y usuarios, así como su ambiente de trabajo. Esto, también ayuda a
establecer una buena relación de trabajo y comunicación entre el equipo de
desarrollo y los clientes
Entregar software de calidad, a tiempo y dentro del presupuesto, hará que
nuestros clientes confíen y asegurará el crecimiento y madurez de la relación
de negocio.
10. BIBLIOGRAFÍA
Giraldo, O.P. (2007) Ingeniería de Requisitos. Volumen, 13.
Sommerville, I., Ingeniería del Software. Sétima edición. 2005, México DF.
Dávila, N.D. (2001) INGENIERÍA DE REQUERIMIENTOS. Volumen,
51.
Senn, James A. "Análisis y Diseño de Sistemas de Información". Segunda
Edición. McGraw Hill. 1992.
Roger - S. P. (1993) - Ingeniería del Software, Mc. Graw-Hill, pp. 217-218,
247.
https//revistas.ucr.ac.cr/index.php/intersedes/article/view/790/851