La ingeniería de requisitos es una disciplina importante en el desarrollo de software que ayuda a identificar las necesidades exactas de los usuarios y stakeholders de un sistema. Existen varias técnicas para la recolección y análisis de requisitos como entrevistas, cuestionarios y prototipos. Un proceso de ingeniería de requisitos efectivo incluye las fases de extracción, análisis, especificación y validación de requisitos para producir una lista clara y completa de requisitos funcionales y no funcionales que servirán como base para
libro para colorear de Peppa pig, ideal para educación inicial
Ingeniería de requisitos y la ingeniería de requerimientos
1. República Bolivariana de Venezuela
Ministerio del Poder Popular para la Educación Superior
I.U.P “Santiago Mariño”-Ext. Porlamar
Especialidad: Sistemas
Materia: Sistemas II
Integrante:
Marlev Boadas
C.I: 22.652.874
2. La Ingenieríade Software, se considera la rama de la ingeniería que
aplica los principios de la ciencia de la computación y las
matemáticas para lograr soluciones costo-efectivas a los problemas
de desarrollo de software, es decir, permite elaborar
consistentemente productos correctos,utilizables y costos-efectivos.
La misma requiere llevar a cabo varias tareas, una de ellas es el
análisis de requisitos. El análisis de requisitos permite extraer los
requisitos de un producto de software. La Ingeniería de Software es
una tecnología que indica "CÓMO" construir técnicamente un
software: económico, fiable y que funcione eficientemente.
(Jacobson, 2000)(Booch; 2000 ) .
La ingeniería de requisitos es una disciplina de la Ingeniería de
software. Esta disciplina considera diferentes líneas de trabajo, pero
una de las más importantes es la gestión de requisitos, la cual se
encarga de proveerladireccióny alcance del proyecto.Los requisitos
deben ser la base de cualquier desarrollo de software. La obtención
de una especificación de requisitos de alta calidad es fundamental
para asegurar que el software se corresponde con las necesidades
delcliente.En el análisis de requisitos se investigala parte delmundo
real (también llamado universo de discurso o minimundo) que se va
a modelarpara teneren cuenta todas las necesidadesde los usuarios
finales y así dejarlas documentadas de la forma más completa
posible.
En la actualidad aún prevalece la alta incidencia de fallos en los
proyectos de software, existen muchos proyectos de software
3. víctimas de retrasos,presupuestossobregiradosy con problemas de
calidad, lo que no permite tener una producción o una economía de
calidad .A pesar de los avances que ha dado la tecnología, aún
existen procesos de producción informales, parciales y en algunos
casos no confiables. Aquí es donde entra en juego la ingeniería de
requerimientos cumpliendo un papel primordial en el proceso de
producción de software, ya que enfoca un área fundamental: la
definiciónde lo que se deseaproducir.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 delsistema; de esta manera, se pretende minimizar
los problemas relacionados al desarrollo de sistemas.
4. 1. Ingenieríade Requisitos: “Laingeniería de requisitos es la rama
de la ingeniería delsoftware o ingeniería de sistemas que se encarga
de la realización de actividades en el intento de entender las
necesidades exactas de los usuarios de un sistema y traducir éstas
a precisas funciones y acciones que subsecuentemente serán
usadas en el desarrollo delsistema” (Loucopoulos,P (1995). System
Requirements Engineering. McGraw-Hill)
2. Definición de Requerimientos: “En algunos casos un
requerimiento es simplemente una declaración abstracta de alto nivel
de un servicio que debe proporcionarel sistema o una restricciónde
este .En el otro extremo es una definición detallada y formal de una
función del sistema” (Ian Sommerville, Ingeniería del software,
Madrid ,2005)
3. Características de los Requerimientos:
Necesario: Un requerimiento es necesario si su omisión
provoca una deficienciaen el sistemaa construir, y además su
capacidad,características físicas o factorde calidad no pueden
ser reemplazados por otras capacidades del producto o del
proceso.
Conciso: Un requerimiento es conciso si es fácil de leer y
entender. Su redacción debe ser simple y clara para aquellos
que vayan a consultarlo en un futuro.
Completo: Un requerimiento está completo si no necesita
ampliar detalles en su redacción, es decir, si se proporciona la
información suficiente para su comprensión.
5. Consistente: Un requerimiento es consistente si no es
contradictorio con otro requerimiento.
No ambiguo: Un requerimiento no es ambiguo cuando tiene
una sola interpretación. El lenguaje usado en su definición, no
debe causar confusiones al lector.
Verificable: Un requerimiento es verificable cuando puede ser
cuantificado de manera que permitahacer uso de los siguientes
métodos de verificación: inspección, análisis, demostración o
pruebas.
4. Ingeniería de Requerimientos: “Es el proceso de descubrir,
analizar, documentar y verificar los servicios proporcionados
por el sistema y las restricciones operativas” (Ian Sommerville,
Ingeniería del software, Madrid ,2005)
5. Técnicas principales aplicadas en la Ingeniería de
Requisitos:
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.
6. Grabaciones de video y de audio: Básicamente existen
dos formas de utilizar las grabaciones:como registro yapoyo
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.
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.
6. Fases de la Ingeniería de requerimientos:
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 deseaconstruir, además,se debe identificarcuáles son
los servicios que prestará el sistema, su rendimiento, sus
necesidades y restricciones, y cuáles son los objetivos
esperados.
7. 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 necesidadesque debe satisfacerel sistemaa
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óny controlde los cambios de
cada una de los requisitos, sean estos requisitos estables
(corresponden al estado del sistema) o volátiles (representan
eventos que hacen que el sistema realice una función dada).
7. Requerimientos de software de la Ingeniería de
Requerimientos: 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 describentodas
las interacciones que se prevén que los usuarios tendrán con 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). Los requisitos se dividen en tres:
8. Funcionales: son los que el usuario necesita que efectúe el
software.
No funcionales: son los "recursos" para que trabaje el
sistema de información (redes, tecnología).
Empresariales u Organizacionales: son el marco contextual
en el cual se implantará el sistema para conseguir un objetivo
macro.
8. Actividades de la Ingeniería de Requerimientos:
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 descubrirel problemaque 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 seaefectiva,ya que la aceptacióndelsistema
dependerá de cuan bien éste satisfaga las necesidades del
cliente.
Análisis: Sobre labase de laextracciónrealizada 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
9. soluciones,y luego se van fijando reuniones con el cliente para
discutir los requerimientos.
Especificación: En esta fase se documentan los
requerimientos acordados conel 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 lanotació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 basadaencasos de uso se utiliza cada vez más
para la obtención de requerimientos.
Validación:Lavalidació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
implicaverificar que los requerimientos seanconsistentes yque
estén completos.
9. 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:
Los requerimientos no son obvios y vienen de muchas fuentes.
Son difícilesde expresaren palabras (el lenguaje es ambiguo).
10. La cantidad de requerimientos en un proyecto puede ser difícil
de manejar.
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.
Usan el mismo término con distinto significado
10. Técnicas y herramientas utilizadas en la Ingeniería de
Requerimientos:
Entrevistas y Cuestionarios: Las entrevistas y cuestionarios
se emplean para reunir informaciónproveniente 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énrelacionados con
el sistema a ser construido. Por un lado, podemos analizar las
interfaces de usuario, observando eltipo de informaciónque se
maneja y cómo es manejada, por otro lado, también es útil
analizar las distintas salidas que los sistemas producen
(listados, consultas, etc.), porque siempre pueden surgir
nuevas ideas sobre la base de estas.
11. 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. La ingeniería de requisitos es una disciplina que ayuda en la
construcción de sistemas del tipo software, hardware,
productos o servicios y digamos que es la etapa preliminar
dentro de ese proceso de construcción de esos productos
.Cuando esas primeras etapas deldesarrollo de esosproductos
,servicios o sistemas se hacen mal entonces los errores que se
comenten al principio se van a reflejar en el resto del proceso
de desarrollo y habrá una repercusión muy importante en el
resto del proceso de desarrollo de esos productos o servicios .
La ingeniería de requisitos puede tornarse como un proceso
largo y difícil para el que por lo general se requiere mucha
psicología. Es importante identificar a todos los actores
involucrados en el sistema, considerar sus necesidades y
asegurar que entienden las implicaciones de los nuevos
sistemas. Los analistas pueden emplear varias técnicas
tradicionales como entrevistas talleres, etc. Para obtener los
requisitos del cliente y posteriormente crear las listas de
requisitos. Las 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,paraproducir
un sistema que resuelva las necesidades del negocio.
La ingeniería de requisitos investiga técnicas y herramientas
que complementan los métodos de ingeniería del software.
13. La disciplina de requisitos es la materia prima para la mayoría
de otras disciplinas que serán aplicadas en el proyecto.
La consecuencia de la baja calidad de los requisitos retrasa el
cronograma, costo adicional para el presupuesto y lo más
importante la insatisfacción del cliente.
El desafío de la ingeniera de requisitos es entender
continuamente las necesidadesdel cliente para entregarnos la
opción que cumpla con los objetivos del negocio .La
satisfacción del cliente es la mejor medida de exito del
proyecto. De nada sirve entregar el proyecto en tiempo y
presupuesto programados si no cumple con las necesidades
del cliente.
La Ingeniería de requerimientos está dirigida hacia un área
fundamental que es la producción ya que esta genera las
especificaciones correctas que describan de manera objetiva
sin confusiones y sólidamente las necesidades delcliente para
lograr un proyecto que disminuirá problemas en la misión de
estos requerimientos como costos y retrasos del proyecto. Es
sabido que reparar errores porun mal desarrollo no descubierto
a tiempo, es sumamente caro.
La ingenieríade requerimientos es una de las etapas de mayor
importancia en el ciclo de desarrollo de software y de las
primeras en llevarse a cabo ya que mejora la calidad del
software.
14. La ingeniería de requerimientos mejorala comunicacióny hace
que lleguen a un consenso los clientes y desarrolladores.
La ingeniería de requerimientos evita rechazos de usuarios
finales obligando al cliente a considerar sus requerimientos
cuidadosamente y revisarlos dentro del marco del problema,
por lo que se le involucra durante todo el desarrollo del
proyecto.
La deficiencia de trabajo en los requerimientos es la principal
causa del fracaso en los proyectos .Casi la mitad de los
proyectos que fracasan tienen como una de sus causas
principales problemas en la ingeniera de requisitos .Esto se
manifiesta por causas como: el crecimiento no controlado del
alcance ,falta de comunicación ,poca participación de los
interesados o soporte deficiente del patrocinador .Además de
ser la causa principal de fracasos en proyectos los requisitos
son una causa principal de efectos en el software .