2. Seguidamente se tienen dificultades
cuando tratamos de obtener los requisitos de
nuestros clientes, ya que se tienen problemas
al momento de comprender la información que
se adquiere. La comprensión de los requisitos
de un problema es una de las dificultades a las
que se enfrenta un ingeniero de software, ya
que el cliente no siempre sabe lo que se
requiere y los usuarios finales no siempre
entienden las características que le
proporcionan beneficios, así como también los
requisitos suelen cambiar durante el proyecto.
3. La ingeniería de requisitos constituye el enlace
entre las necesidades reales de los clientes,
usuarios y otros participantes vinculados al
sistema. La ingeniería de requisitos consiste en un
conjunto de actividades y transformaciones que
pretenden comprender las necesidades de un
sistema software y convertir la declaración de estas
necesidades en una descripción completa, precisa
y documentada de los requerimientos del sistema
siguiendo un determinado estándar.
4. 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 o
cualidades que necesita cumplir un sistema (o un
sistema de software) para que tenga valor y utilidad
para el usuario. En otras palabras, los
requerimientos muestran qué elementos y funciones
son necesarias para un proyecto.
5. a. Actual: el requerimiento no debe volverse obsoleto con el paso del
tiempo.
b. Cohesión: el requerimiento debe dirigirse a solo una única cosa.
c. Completo: el requerimiento debe estar completamente declarado
en un único lugar, sin información faltante.
d. Consistente: el requerimiento no debe contradecir ningún otro
requerimiento y debe ser completamente consistente con toda la
documentación.
e. Correcto: el requerimiento debe cumplir con la necesidad
declarada por los interesados en el sistema/software.
6. f. Factible: el requerimiento debe poder ser implementado.
g. No ambiguo: el requerimiento debe estar concisamente
declarado. Debe expresar hechos objetivos, no opiniones
subjetivas. Debe poder ser interpretado de una única manera.
h. 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.
i. Observable externamente: el requerimiento debe especificar
una característica observable externa o experimentable por el
usuario del producto.
j. Verificable: La implementación del requerimiento debe poder ser
resuelta en alguno de estos cuatro métodos: inspección, análisis,
demostración o prueba.
7. La Ingeniería de Requerimientos en si cumple un
papel primordial en el proceso de construcción y
producción de un software, es decir que, estará basado
en función de las necesidades planteadas por los
clientes en un nivel muy general, donde se descubre,
documenta, analiza y se define los servicios o
componentes de lo que se desea producir, además de
las restricciones que tendrá el producto o software. Su
principal tarea consiste en la definición del proceso a
seguir en la construcción de un software, y de facilitar
la comprensión de lo que el cliente requiera. La
obtención correcta de los requerimientos puede llegar
a describir con claridad, sin ambigüedades, en forma
consistente y compacta, el comportamiento de un
sistema.
8. Existen varias técnicas para la ingeniería de requisitos, sin
embargo, mencionaremos algunas de las mas importantes y cada
una de estas técnicas pueden ser aplicadas, pero en la practica el
uso de la técnica dependerá del proyecto a desarrollar.
1. Entrevistas y cuestionarios : Las entrevistas son un método
común. 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.
2. 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
incompletamente definidas durante la misma.
9. 3. 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.
4. Prototipos: Un prototipo es una pequeña muestra, de
funcionalidad limitada, de cómo sería el producto final una vez
terminado. Ayudan a conocer la opinión de los usuarios y rectificar
algunos aspectos antes de llegar al producto terminado.
5. Casos de uso: Un caso de uso es una técnica para
documentar posibles requisitos, graficando la relación del sistema
con los usuarios u otros sistemas. Dado que el propio sistema
aparece como una caja negra, y sólo se representa su interacción
con entidades externas, permite omitir dichos aspectos y
determinar los que realmente corresponden a las entidades
externas. El objetivo de esta práctica es mejorar la comunicación
entre los usuarios y los desarrolladores, mediante la prueba
temprana de prototipos para minimizar cambios hacia el final del
proyecto y reducir los costes finales.
10. Obtención : a través de entrevistas o comunicación con clientes o
futuros usuarios, para saber cuáles son sus expectativas.
Análisis: detectar y corregir las carencias o falencias comunicativas,
transformando los requisitos obtenidos de entrevistas y requisitos, en
condiciones apropiadas para ser tratados en el diseño.
Documentación : igual que todas las etapas, los requerimientos deben
estar debidamente documentados.
Verificación: consiste en comprobar la implementación de los
requerimientos.
Validación: comprobar que los requerimientos implementados sean
funcionales para lo que inicialmente se construyó el producto.
11. 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 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.
12. Respondiendo a la pregunta inicial entonces podemos decir
que los requerimientos son importantes debido a que son el hilo
conductor de todo desarrollo de software. Obtener
requerimientos de calidad demuestra que el trabajo realizado
culminará con éxito, esto se debe a dos factores:
1. La utilización adecuada de las técnicas de captura de
requerimientos con los clientes.
2. Las experiencias de los analistas del proyecto.
Esto sucede porque la experiencia de trabajo en el rol le
permite al equipo de Analistas del Proyecto establecer que
técnicas van a utilizar a la hora de la entrevista con el cliente
debido a que los clientes no entienden el lenguaje informático, es
por eso que se debe tener en cuenta el lenguaje el cual se va a
aplicar a la hora de la entrevista con el cliente.
13. Los procesos utilizados en Ingeniería de
Requerimientos varían dependiendo del dominio de
aplicación, de la gente implicada y de la organización
que desarrolla los requisitos.
Sin embargo, hay un número de actividades
genéricas comunes a todos los procesos:
1. Estudio de viabilidad.
2.Elicitación(extracción o captura) de Requerimientos. „
3. Análisis de Requerimientos. „
4. Validación de Requerimientos. „
5. Gestión de Requerimientos.
14. 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:
a. Los requerimientos no son obvios y vienen de muchas fuentes.
b. Son difíciles de expresar en palabras (el lenguaje es ambiguo).
c. La cantidad de requerimientos en un proyecto puede ser difícil de
manejar.
d. Un requerimiento puede cambiar a lo largo del ciclo de desarrollo.
e. 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.
15. Observación y análisis social: La observación permite a los
investigadores observar lo que los usuarios hacen actualmente en un
determinado contexto.
Lluvia de Ideas: Son sesiones donde todos los participantes brindan sus
ideas para obtener una solución a una problemática.
Modelos: Esquema teórico, generalmente en forma matemática, de un
sistema o de una realidad compleja, como la evolución económica de un
país, que se elabora para facilitar su comprensión y el estudio de su
comportamiento.
Y muchos mas antes mencionados.
16. 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.
17. Referencias Electrónicas
Técnicas principales aplicadas en la Ingeniería de Requisitos
http://tecnologicofch.blogspot.com/2013/03/22-tecnicas-de-la-ingenieria-
de.html
Dificultades para Definir los Requerimientos
http://phigux.blogspot.com/2012/03/dificultades-para-definir-los.html
Actividades de la Ingeniería de Requerimientos
http://fundamentosdeingenieriahg.blogspot.com/p/actividades-de-la-
ingenieria-de.html
Fases de implementación
https://es.wikipedia.org/wiki/Ingenier%C3%ADa_de_requisitos
Requerimientos de software de la Ingeniería de Requerimientos
https://es.wikipedia.org/wiki/Ingenier%C3%ADa_de_requisitos
La ingeniería de requisitos
https://ennovi221.wordpress.com/2011/06/10/ensayo-la-ingenieria-de-
requisitos/