Ingeniería de requisitos e ingeniería de requerimientos
1. REPÚBLICA BOLIVARIANA DE VENEZUELA
MINISTERIO DEL PODER POPULAR PARA LA EDUCACION UNIVERSITARIA
INSTITUTO UNIVERSITARIO POLITECNICO
“SANTIAGO MARIÑO”
INGENIERIA DE SISTEMAS
Prof: Realizado por:
Ing. Diogenes Rodríguez B. Cesar Prado 25.108.585
Ing. Sistemas
Sección: 2C
Porlamar, Julio de 2017
2. INTRODUCCIÓN
Actualmente son muchos los procesos, técnicas, actividades o herramientas que se
llevan a cabo para desarrollar un proyecto, dentro de las ramas de la ingeniería podemos
encontrar la Ing. de requisitos y la Ing. de requerimientos, ambas son usadas para mejorar
el proceso del desarrollo de software.
Cuando nos encontramos al frente de un proyecto de desarrollo de sistemas es
importante dejar claramente definidos los requerimientos del software, en forma
consistente y compacta, esta tarea es difícil básicamente porque consiste en la traducción
de unas ideas vagas de necesidades de software en un conjunto concreto de funciones y
restricciones.
La ingeniería de requisitos permite la gestión adecuada de los requisitos de un
proyecto de desarrollo software, además, mejora la capacidad para realizar
planificaciones de los procesos de proyectos, permite una efectiva proyección de las
actividades, recursos, costos, tiempos, entre otros del proyecto. El análisis de
requerimientos establece el proceso de definición de requerimientos como una serie de
tareas o actividades mediante las cuales se busca ganar conocimientos relevantes del
problema, que se utilizarán para producir una especificación formal del software
necesario para resolverlo.
3. 1. Ingeniería de Requisitos
Es el proceso de desarrollar una especificación de Software. Las especificaciones
pretenden comunicar las necesidades del sistema del cliente con los desarrolladores del
sistema. 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.
Según Pressman [Pressman 05], es un conjunto de procesos, tareas y técnicas que
permiten la definición y gestión de los requisitos de un producto de un modo sistemático.
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.
2. Definición de Requerimientos.
Un requerimiento es una necesidad documentada sobre el contenido, forma o
funcionalidad de un producto o servicio considerando las especificidades de los clientes.
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. En otras palabras, los requerimientos
muestran qué elementos y funciones son necesarias para el desarrollo de un proyecto.
3. Características de los Requerimientos.
Actual: el requerimiento debe ser real, preciso optimo y adaptable a las
condiciones del tiempo modo y lugar.
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.
4. 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.
4. Ingeniería de Requerimientos.
El proceso de recopilar, analizar y verificar las necesidades del cliente para un sistema
de software es llamado Ingeniería de Requerimientos. La meta de la ingeniería de
requerimientos es entregar una especificación de requerimientos de software correcta y
completa.
Según Leite [Leite 08], Es el proceso mediante el cual se intercambian diferentes
puntos de vista para recopilar y modelar lo que el sistema va a realizar. Este proceso
utiliza una combinación de métodos, herramientas y actores, cuyo producto es un modelo
del cual se genera un documento de requerimientos.
5. Técnicas principales aplicadas en la Ingeniería de Requisitos.
Entrevistas: por lo general no se entrevista a toda la gente que se relacionará con el
sistema, sino a una selección de personas que represente a todos los sectores críticos de
la organización, con el énfasis puesto en los sectores más afectados o que harán un uso
más frecuente del nuevo sistema.
5. Según Tamayo se define entrevista como “La relación directa establecida entre el
investigador y su objeto de estudio a través de individuos o grupos, con el fin de obtener
testimonios reales”. (p.100).
Talleres: los requisitos tienen a menudo implicaciones cruzadas desconocidas para las
personas implicadas individuales y que a menudo no se descubren en las entrevistas o
quedan incompletas durante la misma. Estas implicaciones cruzadas pueden descubrirse
realizando en un ambiente controlado, talleres facilitados por un analista del negocio, en
donde las personas implicadas participan en discusiones para descubrir requisitos,
analizan sus detalles y las implicaciones cruzadas.
Forma de contrato: en lugar de una entrevista, se pueden llenar formularios o
contratos indicando los requisitos. En sistemas muy complejos éstos pueden tener
centenares de páginas.
Según Arias Schreiber, al referirse a la forma del contrato señala que la doctrina
distingue entre la forma entendida en sentido amplio y la forma en sentido estricto.
(p.01).
Objetivos medibles: los requisitos formulados por los usuarios se toman como
objetivos generales, a largo plazo, y en cambio se los debe analizar una y otra vez desde el
punto de vista del sistema hasta determinar los objetivos críticos del funcionamiento
interno que luego darán forma a los comportamientos apreciables por el usuario.
Prototipos: Los prototipos son una representación limitada de un producto, permite a
las partes probarlo en situaciones reales o explorar su uso, creando así un proceso de
diseño de iteración que genera calidad.
Según Kendall & Kendall [2005], define prototipo como una visión preliminar del
sistema futuro que se implantara. La elaboración de prototipos de un sistema de
información es una técnica valiosa para la recopilación rápida de información específica
acerca de los requerimientos de información de los usuarios. Los prototipos efectivos
6. deben hacerse tempranamente en el ciclo de vida del desarrollo de sistemas, durante la
fase de determinación de requerimientos.
Casos de uso: es una técnica para documentar posibles requisitos, graficando la relación del
sistema con los usuarios u otros sistemas.
Según Santiago Ceria, un caso de uso es una secuencia de interacciones entre un
sistema y alguien o algo que usa alguno de sus servicios. (p.02).
6. Fases de la Ingeniería de requerimientos.
Daniel (2008), “¿Qué es Ingeniería de Requisitos (IR)?”: El proceso se cumple en cinco
fases:
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 satisfacción de los
objetivos del negocio.
Captura y Análisis: 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, además, se debe identificar cuáles
son los servicios que prestará el sistema, su rendimiento, sus necesidades y
restricciones, y cuáles son los objetivos esperados.
Especificación: Aquí se debe obtener un documento de especificación 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, además de sus respectivas restricciones (software, hardware).
Validación: 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 especificación.
Gestión: Se realiza la comprensión y control de los cambios de cada una de los
requisitos, sean estos requisitos estables (corresponden al estado del sistema) o
7. volátiles (representan eventos que hacen que el sistema realice una función dada).
7. Requerimientos de software de la Ingeniería de Requerimientos.
Un área de conocimiento de gran importancia en el desarrollo de software, es la
ingeniería de requerimientos. Esta comprende las actividades de obtención (captura,
descubrimiento y adquisición), análisis (y negociación), especificación, y validación de
requisitos. Además, establece una actividad de gestión de requerimientos para manejar
los cambios, mantenimiento y rastreabilidad de los requerimientos.
La Ingeniería de requerimientos juega un papel relevante pues ayuda, a los
responsables del proyecto a entender mejor el problema en cuya solución trabajarán y a
utilizar herramientas que les permitan disminuir los riesgos y los sobrecostos en el
proceso de desarrollo.
En cuanto al tratamiento de los requerimientos, los analistas usan diferentes técnicas
(entrevistas, prototipos, observación, estudio de documentación, cuestionario, escenarios,
etc.) para recolectar, separar y clasificar los requerimientos. Los criterios usados para la
aplicación de estas técnicas son diversos y dependen en gran medida de la experiencia del
analista.
López, (2006), “La ingeniería de requerimientos”: en el desarrollo de software se
cuenta con una ventaja proporcionada por las herramientas CASE. Las herramientas CASE
(Ingeniería 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 ingeniería de requerimientos, que se ha venido tratando en este
artículo. Estas herramientas se concentran en capturar requerimientos, administrarlos y
producir una especificación de requisitos.
8. Actividades de la Ingeniería de Requerimientos.
López, (2006), “La ingeniería de requerimientos”: dentro del mismo documento
mencionado anteriormente (Herrera, 2003: 6), se dice que dentro de la IR existen cuatro
8. actividades básicas 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 requerimientos
de los clientes o usuarios. Las cuatro actividades son: extracción, análisis, especificación y
validación.
Extracción: 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. Estudiar sobre la base de extracción los
requerimientos del cliente los problemas existentes, como solucionarlos, entre
otros puntos de interés. 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. Aquí se definen con el cliente la
documentación del requerimiento detallando muy bien cada proceso, necesidad,
mejora, en fin conocer en detalle el requerimiento. 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 requerimientos basada en casos de uso se utiliza
cada vez más para la obtención de requerimientos.
9. 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.
Se puede apreciar que el proceso de ingeniería 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 especificación de requerimientos, que es el
documento final, de carácter formal, que se obtiene de este proceso. Es necesario recalcar
que no existe un proceso único que sea válido de aplicar en todas las organizaciones. Cada
organización 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 ingeniería de requerimientos.
9. Dificultades para definir los Requerimientos.
Los requerimientos no son obvios y vienen de muchas fuentes.
Son difíciles de expresar en palabras (el lenguaje es ambiguo).
La cantidad de requerimientos en un proyecto puede ser difícil de manejar.
Nunca son iguales, algunos son más difíciles, más riesgosos, más importantes o
más estables que otros.
Los requerimientos están relacionados unos con otros y a su vez se relacionan con
otras partes del proceso.
Cada requerimiento tiene propiedades únicas y abarcan áreas funcionales
específicas.
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.
10. 10. Técnicas y herramientas utilizadas en la Ingeniería de Requerimientos.
Entrevistas: La entrevista es un método para descubrir hechos y opiniones que
tienen los posibles usuarios y otros participantes dentro del sistema que se está
desarrollando. Los errores y malentendidos pueden ser detectados y corregidos a
través de este método, por lo cual resulta muy útil dentro de esta actividad de la
ingeniería de requerimientos. Las entrevistas pueden ser clasificadas en dos
grandes grupos.
Casos de Uso y/o Escenarios: Los casos de uso describen interacciones entre los
usuarios y el sistema, enfatizando en lo que el usuario necesita del sistema. Un
caso de uso describe la posible secuencia de interacciones que se dan entre el
sistema y uno o más actores como respuesta a un estímulo inicial por parte de
alguno de los actores32. De igual manera, debe ser incluida dentro de esta
interacción, la descripción de las variantes y extensiones que el sistema debe
soportar.
Observación y análisis social: Los métodos de observación involucran a dos
participantes: el investigador observando al usuario mientras trabaja y tomando
notas de las actividades que se llevan a cabo, y al trabajador (usuario) llevando a
cabo las actividades cotidianas que su trabajo le implica realizar. La observación
puede ser realizada de manera directa, es decir que el investigador este presente
mientras el usuario realiza sus actividades; o indirecta, cuando la observación se
lleva en otro escenario, instante, o a través de otro medio que permita que el
observador no esté presente durante la realización de las actividades que está
observando (como lo permitiría el uso de una cámara de video).
Lluvia de Ideas (Brainstorm): Las lluvias de ideas son sesiones donde todos los
participantes brindan sus ideas para obtener una solución a una problemática. Una
lluvia de ideas está compuesta de dos fases: la fase de generación y la fase de
evaluación. Durante la generación las ideas son recolectadas y es importante que
11. no sean criticadas. Durante la evaluación de las ideas, las propuestas de solución
deben ser evaluadas desde diferentes perspectivas.
Prototipos: En la ingeniería de software, un prototipo es programa de computador
que implementa algunos de los requerimientos de un sistema. Este prototipo
puede ser usado para colaborar con la definición de los requerimientos, o para
facilitar la evaluación de alternativas de implementación de un sistema.
Casos de Uso: Los casos de uso son una técnica para especificar el
comportamiento de un sistema. Los casos de uso permiten entonces describir la
posible secuencia de interacciones entre el sistema y uno o más actores, en
respuesta a un estímulo inicial proveniente de un actor, es una descripción de un
conjunto de escenarios, cada uno de ellos comenzado con un evento inicial desde
un actor hacia el sistema.
12. CONCLUSIÓN
El campo de aplicación de los requerimientos es muy amplio, y áreas como lo son
el análisis y verificación de requerimientos, son elementos de vital importancia dentro del
proceso de desarrollo de software, es una actividad que involucra: clientes, usuarios,
equipos de desarrollo, administradores de proyecto, entre otros.
Es de suma importancia tomarse el tiempo necesario para conocer a los clientes y
usuarios para poder establecer una buena relación de trabajo y que exista comunicación
entre el equipo de desarrolladores para que el proyecto se pueda realizar de una manera
exitosa.
La ingeniería de requisitos permite gestionar las necesidades del proyecto en
forma estructurada mejorando la calidad del proyecto, define con la mejor calidad
posible, las características de un sistema software que satisfaga las necesidades de
negocio de clientes y usuarios y que se integre con éxito al entorno en el que se
desenvuelve.
13. REFERENCIAS BIBLIOGRÁFICAS
Ingeniería de Requisitos [Documento en Línea] Disponible en:
https://core.ac.uk/download/pdf/30046163.pdf
Definición de Requerimientos [Documento en Línea] Disponible en:
http://desasof2004.blogspot.com/2009/06/definicion-de-requerimientos.html
Características de los Requerimientos [Documento en Línea] Disponible en:
http://desasof2004.blogspot.com/2009/06/definicion-de-requerimientos.html
Ingeniería de Requerimientos [Documento en Línea] Disponible en:
http://sedici.unlp.edu.ar/bitstream/handle/10915/4057/2_-
_Ingenier%C3%ADa_de_requerimientos.pdf?sequence=4
Técnicas principales aplicadas en la Ingeniería de Requisitos.
o Entrevistas [Documento en Línea] Disponible en:
https://www.clubensayos.com/Informes-de-Libros/Investigacion-De-
Mercados/115687.html y
http://saia.psm.edu.ve/pluginfile.php?file=%2F174215%2Fmod_resource%
2Fcontent%2F1%2Fingenieria%20de%20requisitos%20y%20requerimiento.
pdf
o Talleres [Documento en Línea] Disponible en:
http://saia.psm.edu.ve/pluginfile.php?file=%2F174215%2Fmod_resource%
2Fcontent%2F1%2Fingenieria%20de%20requisitos%20y%20requerimiento.
pdf
o Forma de contrato [Documento en Línea] Disponible en:
http://saia.psm.edu.ve/pluginfile.php?file=%2F174215%2Fmod_resource%
2Fcontent%2F1%2Fingenieria%20de%20requisitos%20y%20requerimiento.
pdf y http://www.rodriguezvelarde.com.pe/pdf/libro1_parte1_cap6.pdf
o Objetivos medibles [Documento en Línea] Disponible en:
http://saia.psm.edu.ve/pluginfile.php?file=%2F174215%2Fmod_resource%
2Fcontent%2F1%2Fingenieria%20de%20requisitos%20y%20requerimiento.
pdf
o Prototipos [Documento en Línea] Disponible en:
http://tallercomplemento.blogspot.com/2011/09/8-prototipos.html
o Casos de Uso [Documento en Línea] Disponible en: http://www-
2.dc.uba.ar/materias/isoft1/2001_2/apuntes/CasosDeUso.pdf y
14. http://saia.psm.edu.ve/pluginfile.php?file=%2F174215%2Fmod_resource%
2Fcontent%2F1%2Fingenieria%20de%20requisitos%20y%20requerimiento.
pdf
Fases de la Ingeniería de requerimientos [Documento en Línea] Disponible en:
http://saia.psm.edu.ve/pluginfile.php?file=%2F174215%2Fmod_resource%2Fconte
nt%2F1%2Fingenieria%20de%20requisitos%20y%20requerimiento.pdf
Requerimientos de software de la Ingeniería de Requerimientos [Documento en
Línea] Disponible en: https://sg.com.mx/revista/17/obtencion-requerimientos-
tecnicas-y-estrategia#.WV0w8RU1_IU,
http://sedici.unlp.edu.ar/bitstream/handle/10915/19098/Documento_completo.%
20Nuevas%20estrategias.pdf?sequence=1 y
http://saia.psm.edu.ve/pluginfile.php?file=%2F174215%2Fmod_resource%2Fconte
nt%2F1%2Fingenieria%20de%20requisitos%20y%20requerimiento.pdf
Actividades de la Ingeniería de Requerimientos [Documento en Línea] Disponible
en:
http://saia.psm.edu.ve/pluginfile.php?file=%2F174215%2Fmod_resource%2Fconte
nt%2F1%2Fingenieria%20de%20requisitos%20y%20requerimiento.pdf y
http://fundamentosdeingenieriahg.blogspot.com/p/actividades-de-la-ingenieria-
de.html
Dificultades para definir los Requerimientos [Documento en Línea] Disponible en:
http://dgsa.uaeh.edu.mx:8080/bibliotecadigital/bitstream/handle/231104/415/In
genieria%20de%20requerimientos.pdf?sequence=1&isAllowed=y
Técnicas y herramientas utilizadas en la Ingeniería de Requerimientos
[Documento en Línea] Disponible en:
http://www.javeriana.edu.co/biblos/tesis/ingenieria/Tesis189.pdf
16. INGENIERÍA DE REQUISITOS E
INGENIERÍA DE
REQUERIMIENTOS
Ingeniería de Requisitos
Definición de
Requerimientos.
Ingeniería de
Requerimientos.
Técnicas principales aplicadas en
la Ingeniería de Requisitos.
Fases de la Ingeniería
de requerimientos.
Requerimientos de software de la
Ingeniería de Requerimientos.
Actividades de la Ingeniería de
Requerimientos.
Dificultades para definir los
Requerimientos.
Técnicas y herramientas utilizadas en la
Ingeniería de Requerimientos.
Métodos, técnicas
y
herramientas
Necesidad
documentada
sobre el
contenido
Características de los Requerimientos.
Actualización
Cohesión
Completo Consistente
Obligatorio
Verificable
Observable
Entrevista
s
Talleres
Prototipo
s
Casos de uso
Estudio de
viabilidad
Captura y Análisis
Validación
Ayuda, a los responsables del
proyecto a entender mejor
el problema
Especificación
Validación
Análisis
Extracción
No son obvios
Son difíciles
Nunca son iguales
Puede cambiar
Lluvia de Ideas
Observación
Casos de Uso
Entrevistas