Guía 03 - Universidad del Cauca

Anuncio
GUIA 3. Conceptos sobre Ingeniería de Requerimientos.
0. INTRODUCCIÓN. La Recolección de Requerimientos cumple un papel primordial en el proceso de desarrollo de
software: 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.
¿A qué se denomina determinacion de requerimientos?

Es el estudio de un sistema para conocer cómo trabaja y dónde es necesario efectuar mejoras.

Un requerimiento es una característica que debe incluirse en un nuevo sistema.

Vincula el estudio de un sistema existente con la recopilación de detalles relacionados con él.
1. TIPOS DE REQUERIMIENTOS.
Requerimientos Funcionales (refieren a las tareas que el sistema debe realizar) :

Definen el comportamiento del sistema.

Describen las tareas que el sistema debe realizar.

Al definir un requisito funcional es importante mantener el equilibrio entre la excesiva generalidad, insuficiencia de
detalle o ambigüedad, y el exceso de detalle con precisiones o descripciones innecesarias o redundantes.
Requerimientos NO Funcionales. Definen aspectos, que sin ser funcionalidades, resultan deseables desde el punto de
vista del usuario. Generalmente comprenden atributos de calidad:
(*) Tiempos de respuesta.
Requerimientos de Interface:
(*) Características de usabilidad.
(*) Facilidad de mantenimiento.
Definen las interacciones del sistema con su entorno.
Universidad del Cauca – Programa de Ingeniería de Sistemas
1
GUIA 3. Conceptos sobre Ingeniería de Requerimientos.
También están las RESTRICCIONES:
Los requisitos, en su definición purista definen el QUÉ, y no el CÓMO; pero en el conjunto de necesidades que debe cubrir
un sistema, no sólo hay que tener en cuenta QUÉ cosas hay que hacer, sino también en ocasiones CÓMO deben hacerse.
La clasificación entre requisitos puros (QUÉ) y restricciones (CÓMO) la debe considerar el analista para que el equipo de
trabajo sepa hasta qué punto determinados aspectos limitan sus opciones de trabajo, y poder mantener así la
trazabilidad con su origen (necesidad apuntada por el usuario, normativa legal, limitación técnica, etc.)
Con carácter general las restricciones imponen limitaciones:

En la libertad de los analistas al realizar el diseño del sistema.

En los procesos o formas de trabajar que se emplearán en el desarrollo del sistema.

El analista del sistema elige entre todas las opciones tecnológicamente posibles aquellas que según su criterio
profesional y las circunstancias del sistema, aportan mejor solución para la implementación de los requisitos
funcionales y no funcionales.
También tienen origen en la indicación por parte del cliente de instrucciones como:

Debe emplearse base de datos Oracle.

Los procesos de desarrollo deben ser conformes a la metodología Extreme Programming.

El sistema final debe ejecutarse sobre Linux Ubuntu.

Debe desarrollarse empleando Java.
Universidad del Cauca – Programa de Ingeniería de Sistemas
2
GUIA 3. Conceptos sobre Ingeniería de Requerimientos.
2. LA INGENIERÍA DE REQUERIMIENTOS (I.R.). De las definiciones que existen para requerimiento, a continuación
se presenta la definición que aparece en el glosario de la IEEE.
(1) Una condición o necesidad de un usuario para resolver un problema o alcanzar un objetivo.
(2) Una condición o capacidad que debe estar presente en un sistema o componentes de sistema para
satisfacer un contrato, estándar, especificación u otro documento formal.
(3) Una representación documentada de una condición o capacidad como en (1) o (2).
2.1. Características de los requerimientos. Las características de un requerimiento son sus propiedades principales.
Un conjunto de requerimientos en estado de madurez, deben presentar una serie de características tanto individualmente
como en grupo. A continuación se presentan las más importantes:

Necesario: Un requerimiento es necesario si su omisión provoca una deficiencia en el sistema a construir, y además
su capacidad, características físicas o factor de 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.

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 permita hacer uso de los
siguientes métodos de verificación: inspección, análisis, demostración o pruebas.
Universidad del Cauca – Programa de Ingeniería de Sistemas
3
GUIA 3. Conceptos sobre Ingeniería de Requerimientos.
2.2. 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).

Existen muchos tipos de requerimientos y diferentes niveles de detalle.

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.
2.3. Importancia (y beneficios) de la Ingeniería de Requerimientos.

Permite gestionar las necesidades del proyecto en forma estructurada: Cada actividad de la I.R. consiste de una serie
de pasos organizados y bien definidos.

Mejora la capacidad de predecir cronogramas de proyectos, así como sus resultados: La I.R. proporciona un punto de
partida para controles subsecuentes y actividades de mantenimiento, tales como estimación de costos, tiempo y
recursos necesarios.

Disminuye los costos y retrasos del proyecto: Muchos estudios han demostrado que reparar errores por un mal
desarrollo no descubierto a tiempo, es sumamente caro.

Mejora la calidad del software: La calidad en el software tiene que ver con cumplir un conjunto de requerimientos
(funcionalidad, facilidad de uso, confiabilidad, desempeño, etc.).

Mejora la comunicación entre equipos: La especificación de requerimientos representa una forma de consenso entre
clientes y desarrolladores. Si este consenso no ocurre, el proyecto no será exitoso.

Evita rechazos de usuarios finales: La I.R. obliga 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.
Universidad del Cauca – Programa de Ingeniería de Sistemas
4
GUIA 3. Conceptos sobre Ingeniería de Requerimientos.
2.4. Los defectos comunes en los requisitos y sus consecuencias.
Defecto
Consecuencia
Implicación insuficiente del cliente
Problemas en la validación del producto obtenido
Requisitos crecientes y cambiantes
Degradación de la estructura y arquitectura del producto
Requisitos ambiguos
Pérdida de tiempo en re-codificación
Requisitos innecesarios
Trabajo innecesario
Requisitos insuficientes
Problemas en la validación del producto obtenido
Error en la estimación y planificación
Omisión de las necesidades de grupos de usuarios
Usuarios insatisfechos
2.5. Personal involucrado en la Ingeniería de Requerimientos.

Usuario final: Están relacionados con la usabilidad, la disponibilidad y la fiabilidad del sistema; están familiarizados
con los procesos específicos que debe realizar el software, dentro de los parámetros de su ambiente laboral. Serán
quienes utilicen las interfaces y los manuales de usuario.

Usuario Líder: Son los que comprenden el ambiente del sistema o el dominio del problema en donde será empleado
el software desarrollado. Proporcionan al equipo técnico los detalles y requerimientos de las interfaces del sistema.

Personal de Mantenimiento: Para proyectos que requieran un mantenimiento eventual, estas personas son las
responsables de la administración de cambios, de la implementación y resolución de anomalías. Su trabajo consiste en
revisar y mejorar los procesos del producto ya finalizado.

Analistas y programadores: responsables del desarrollo del producto en sí; interactúan directamente con el cliente.

Personal de pruebas: Encargados de elaborar y ejecutar el plan de pruebas para asegurar que las condiciones
presentadas por el sistema son las adecuadas. Validan si los requerimientos satisfacen las necesidades del cliente.

Otras personas que pueden estar involucradas, dependiendo de la magnitud del proyecto, pueden ser:
administradores de proyecto, documentadores, diseñadores de base de datos, entre otros.
Universidad del Cauca – Programa de Ingeniería de Sistemas
5
GUIA 3. Conceptos sobre Ingeniería de Requerimientos.
3. Actividades de la Ingeniería de Requerimientos.
3.1. Análisis del Problema: El objetivo de esta actividad es entender las verdaderas necesidades del negocio. Antes de
describir qué pasos deben cumplirse en esta actividad, debemos tener una definición clara del término "Problema".
"Un problema puede ser definido como la diferencia entre las cosas como se perciben y las cosas como se desean". Aquí
vemos nuevamente la importancia que tiene una buena comunicación entre desarrolladores y clientes; de esta
comunicación con el cliente depende que entendamos sus necesidades. A través de la definición de problema, podemos
ver entonces que la actividad de "Análisis del Problema" tiene por objetivo que se comprendan los problemas del negocio,
se evalúen las necesidades iniciales de todos los involucrados en el proyecto y que se proponga una solución de alto nivel
para resolverlo. Durante el análisis del problema, se realizan una serie de pasos para garantizar un acuerdo entre los
involucrados, basados en los problemas reales del negocio.
Estos pasos son los siguientes:
A. Comprender el problema que se está resolviendo: Es importante determinar quién tiene el problema
realmente, considerar dicho problema desde una variedad de perspectivas y explorar muchas soluciones desde
diferentes puntos de vista. Veamos la siguiente necesidad: "El cliente se queja mucho por la enorme fila que
debe formar para realizar una transacción bancaria".
Perspectiva del cliente = Pérdida de tiempo
Perspectiva del banco = Posibles pérdidas de clientes
Posibles soluciones pueden ser, determinar por qué demoran los cajeros, colocar una nueva caja (implica
contratación de nuevos cajeros), abrir una nueva sucursal (involucra personal nuevo y estudio de mercado),
realizar transacciones por otros medios (teléfono, Internet, mediante cajeros automáticos, autobancos, etc.).
Múltiples soluciones aplican para el mismo problema, sin embargo, sólo una de ellas será la más factible. Las
soluciones iniciales, deben ser definidas tomando en cuanta tanto la perspectiva técnica como la del negocio.
Universidad del Cauca – Programa de Ingeniería de Sistemas
6
GUIA 3. Conceptos sobre Ingeniería de Requerimientos.
B. Construir un vocabulario común: Debe confeccionarse un glosario en dónde se definan todos los
términos que tengan significados comunes (sinónimos) y que serán utilizados durante el proyecto. Por
ejemplo, las palabras pignoración, retención, valor en suspenso, custodia, garantía, entre otras, son utilizadas
para referirse a la acción de dejar una prenda (puede ser cualquier forma de ahorros) como garantía de una
deuda adquirida.
La creación de un glosario es sumamente beneficiosa ya que reduce los términos ambiguos desde el principio,
ahorra tiempo, asegura que todos los participantes de una reunión están en la misma página, además de ser
reutilizable en otros proyectos.
C. Identificar a los afectados por el sistema: Identificar a todos los afectados evita que existan sorpresas
a medida que avanza el proyecto. Las necesidades de cada afectado, son discutidas y sometidas a debate
durante de ingeniería de requerimientos, aunque esto no garantiza que vaya a estar disponible toda la
información necesaria para especificar un sistema adecuado.
Para saber quiénes son las personas, departamentos, organizaciones internas o externas que se verán
afectadas por el sistema, debemos realizar algunas preguntas.
¿Quién
¿Quién
¿Quién
¿Quién
¿Quién
¿Quién
¿Quién
¿Quién
usará el sistema que se va a construir?
desarrollará el sistema?
probará el sistema?
documentará el sistema?
dará soporte al sistema?
dará mantenimiento al sistema?
mercadeará, venderá, y/o distribuirá el sistema?
se beneficiará por el retorno de inversión del sistema?
Como vemos, debe conocerse la opinión de todo aquél que de una u otra forma está involucrado con el
sistema, ya sea directa o indirectamente.
D. Definir los límites y restricciones del sistema: Este punto es importante pues debemos saber lo que se
está construyendo, y lo que no se está construyendo, para así entender la estrategia del producto a corto y
largo plazo. Debe determinarse cualquier restricción ambiental, presupuestaria, de tiempo, técnica y de
factibilidad que limite el sistema que se va a construir.
Universidad del Cauca – Programa de Ingeniería de Sistemas
7
GUIA 3. Conceptos sobre Ingeniería de Requerimientos.
3.2. Evaluación y negociación de los requerimientos. La diversa gama de fuentes de las cuales provienen los
requerimientos, hacen necesaria una evaluación de los mismos antes de definir si son adecuados para el cliente. El
término "adecuado" significa que ha sido percibido a un nivel aceptable de riesgo tomando en cuenta las factibilidades
técnicas y económicas, a la vez que se buscan resultados completos, correctos y sin ambigüedades. En esta etapa se
pretende limitar las expectativas del cliente apropiadamente, tomando como referencia los niveles de abstracción y
descomposición de cada problema presentado. Los principales pasos de esta actividad son:
A. Descubrir problemas potenciales: se identifican aquellos requerimientos ambiguos, incompletos, inconsistentes, etc.
B. Clasificar los requerimientos: se busca identificar la importancia que tiene un requerimiento en términos de
implementación. A esta característica se le conoce como prioridad y debe ser usada para establecer la secuencia en que
ocurrirán las actividades de diseño y prueba de cada requisito. La prioridad de cada requerimiento dependerá de las
necesidades que tenga el negocio. Con base en la prioridad, cada requerimiento puede ser clasificado como:
Obligatorio: si afecta una operación crítica del negocio.
Deseable: Si existe algún proceso que se quiera incluir para mejorar los procesos actuales.
Innecesario: si se trata de un requerimiento informativo o que puede esperar para fases posteriores.
Una vez hecha esta categorización, la estrategia general es: incluir los obligatorios, discutir los deseables y descartar los
innecesarios. Antes de decidir la inclusión de un requerimiento, también debe analizarse su costo y complejidad.
C. Evaluar factibilidades y riesgos: Involucra la evaluación de factibilidades técnicas (¿pueden implementarse los
requerimientos con la tecnología actual?); factibilidades operacionales (¿puede ser el sistema utilizado sin alterar el
organigrama actual?); factibilidades económicas (¿ha sido aprobado por los clientes el presupuesto?).
En la actividad de evaluación y negociación, se incrementa la comunicación entre el equipo de desarrollo y los afectados.
Para que los requerimientos puedan ser comunicados de manera efectiva, hay una serie de consideraciones que deben
tenerse en cuenta; entre las principales tenemos:
 Documentar todos los requerimientos al nivel de detalle que sea requerido.
 Mostrar todos los requerimientos a los involucrados en el sistema.
 Analizar el impacto que causen los cambios a requerimientos antes de aceptarlos.
 Establecer las relaciones entre requerimientos que indiquen dependencias.
 Negociar con flexibilidad para que exista un beneficio mutuo.
 Enfocarse en intereses y no en posiciones.
Universidad del Cauca – Programa de Ingeniería de Sistemas
8
GUIA 3. Conceptos sobre Ingeniería de Requerimientos.
3.3. Análisis y documentación de los ámbitos de los Requerimientos.
Ámbitos
Documento relacionado (norma)
Sistema
Descripción del Sistema (ConOps). Norma IEEE 1362.
Software
Especificación de Requerimientos de Software (SRS). Norma IEEE 830.
3.3.1. Descripción del Sistema (ConOps). Documento dirigido a los usuarios, que describe las características de un
sistema propuesto, desde el punto de vista del usuario. La Descripción del Sistema es el medio de comunicación que
recoge la visión general, cualitativa y cuantitativa de las características del sistema; compartido por la parte cliente y
desarrolladora. La Descripción del sistema proporciona:

La descripción de las necesidades operacionales del usuario sin entrar en detalles técnicos.

La documentación de las características del sistema y las necesidades operacionales del usuario, de forma que puedan
ser verificadas sin requerir conocimientos técnicos.

El documento que recoge los deseos del usuario, sin requerir una cuantificación medible. Por ejemplo, el usuario
puede indicar que desea que los tiempos de respuesta de las consultas sean rápidos, y las razones de su deseo, sin
necesidad de cuantificar esos términos. Más adelante, el desarrollo y análisis de los requisitos del sistema, el analista
concretará y cuantificará esos deseos.

El documento en el que, comprador y suministrador, reflejan las posibles estrategias de solución, y las restricciones
que deben respetarse.
Universidad del Cauca – Programa de Ingeniería de Sistemas
9
GUIA 3. Conceptos sobre Ingeniería de Requerimientos.
3.3.2. Especificación de Requerimientos de Software (SRS).
Un documento SRS es la especificación de las funciones que realiza un determinado producto de software, programa o
conjunto de programas en un determinado entorno. Los aspectos básicos que debe incluir son:

Funcionalidad. Descripción de lo que el software debe hacer.

Interfaces externos. Cómo debe interactuar el software con las personas, el sistema de hardware, o con otros
sistemas (software y hardware).

Rendimiento. Indicación de la velocidad, disponibilidad, tiempos de respuesta, tiempos de recuperación, tiempos de
determinadas funciones.

Atributos. Consideraciones de portabilidad, corrección, mantenibilidad, seguridad, etc.

Restricciones de diseño en la implementación. Indicación de las restricciones que puedan afectar por la
necesidad de sometimiento a estándares, lenguajes, políticas de integridad de bases de datos, límites de recursos
disponibles para el desarrollo, sistema operativo, etc.
IMPORTANTE: Las especificaciones de requisitos de software deben EVITAR requisitos de diseño o de proyecto.
Un documento SRS debe especificar el QUÉ, no el CÓMO.
La especificación de requisitos de software se centra en el producto,
no en el proceso de desarrollo del producto.
En un SRS no deben incluirse requisitos de PROYECTO
porque representan los términos contractuales entre el cliente y el proveedor,
y normalmente incluyen información relativa a los procesos de adquisición o de suministro
Universidad del Cauca – Programa de Ingeniería de Sistemas
10
GUIA 3. Conceptos sobre Ingeniería de Requerimientos.
Una descripción de requisitos del sistema limita las alternativas de diseño posibles, pero esto no significa que deba decidir
cuál debe ser la solución de diseño del sistema.
La especificación de requisitos de software determina qué funcionalidades deben realizarse, qué datos deben generarse
en cada resultado, en qué lugar y quién los debe producir. La SRS debe centrarse en los servicios que se realizarán, pero,
en general, NO DEBE ESPECIFICAR ELEMENTOS DE DISEÑO COMO LOS SIGUIENTES:

División del software en módulos.

Distribución de funciones en los módulos.

Descripción del flujo de información entre los módulos.

Elección de las estructuras de datos.
Deben centrarse únicamente en el punto de vista externo del sistema,
y no en el funcionamiento interno
Es importante destacar que la especificación de requisitos es el resultado final de las actividades de análisis y evaluación
de requerimientos; este documento resultante será utilizado como fuente básica de comunicación entre los clientes,
usuarios finales, analistas de sistema, personal de pruebas, y todo aquel involucrado en la implementación del sistema.
Los clientes y usuarios utilizan la SRS para comparar si lo que se está proponiendo, coincide con las necesidades de la
empresa. Los analistas y programadores la utilizan para determinar el producto que debe desarrollarse. El personal de
pruebas elaborará las pruebas funcionales y de sistemas en base a este documento. Para el administrador del proyecto
sirve como referencia y control de la evolución del sistema.
Existen plantillas creadas para la SRS, sin embargo, cada uno tiene la potestad de crear su propia plantilla.
Universidad del Cauca – Programa de Ingeniería de Sistemas
11
GUIA 3. Conceptos sobre Ingeniería de Requerimientos.
3.4. Validación de Requerimientos. La validación es la actividad de la IR que permite demostrar que los
requerimientos definidos en el sistema son los que realmente quiere el cliente; además revisa que no se haya omitido
ninguno, que no sean ambiguos, inconsistentes o redundantes. En este punto es necesario recordar que la SRS debe
estar libre de errores, por lo tanto, la validación garantiza que todos los requerimientos presentes en el documento de
especificación sigan los estándares de calidad. No debe confundirse la actividad de evaluación de requerimientos con la
validación de requerimientos. La evaluación verifica las propiedades de cada requerimiento, mientras que la validación
revisa el cumplimiento de las características de la especificación de requisitos.
Durante la actividad de validación pueden hacerse preguntas en base a cada una de las características que se desean
revisar. A continuación se presentan varios ejemplos:

¿Están incluidas todas las funciones requeridas por el cliente? (completa).

¿Existen conflictos en los requerimientos? (consistencia).

¿Tiene alguno de los requerimientos más de una interpretación? (no ambigua).

¿Está cada requerimiento claramente representado? (entendible).

¿Pueden los requerimientos ser implementados con la tecnología y el presupuesto disponible? (factible).

¿Está la SRS escrita en un lenguaje apropiado? (clara).

¿Existe facilidad para hacer cambios en los requerimientos? (modificable).

¿Está claramente definido el origen de cada requisito? (rastreable).

¿Pueden los requerimientos ser sometidos a medidas cuantitativas? (verificable).
La validación de requerimientos es importante pues de ella depende que no existan elevados costos de mantenimiento
para el software desarrollado.
Universidad del Cauca – Programa de Ingeniería de Sistemas
12
GUIA 3. Conceptos sobre Ingeniería de Requerimientos.
3.5. Evolución de los requerimientos (Seguimiento). Los requerimientos son una manera de comprender mejor el
desarrollo de las necesidades de los usuarios y cómo los objetivos de la organización pueden cambiar, por lo tanto, es
esencial planear posibles cambios a los requerimientos cuando el sistema sea desarrollado y utilizado. La actividad de
evolución es un proceso externo que ocurre a lo largo del ciclo de vida del proyecto.
Los requerimientos cambian por diferentes razones. Las más frecuentes son:

Porque al analizar el problema, no se hacen las preguntas correctas a las personas correctas.

Porque cambió el problema que se estaba resolviendo.

Porque los usuarios cambiaron su forma de pensar o sus percepciones.

Porque cambió el ambiente de negocios.

Porque cambió el mercado en el cual se desenvuelve el negocio.
Cambios a los requisitos involucra modificar el tiempo en el que se va a implementar una característica en particular,
modificación que a la vez puede tener impacto en otros requerimientos. Por esto, la administración de cambios involucra
actividades como establecer políticas, guardar históricos de cada requerimiento, identificar dependencias entre ellos y
mantener un control de versiones.
Tener versiones de los requerimientos es tan importante como tener versiones del código, ya que evita tener
requerimientos parchados en un proyecto.
Entre algunos de los beneficios que proporciona el control de versiones están:

Prevenir cambios no autorizados.

Guardar revisiones de los documentos de requerimientos.

Recuperar versiones previas de los documentos.

Prevenir la modificación simultánea a los requisitos.

En vista que las peticiones de cambios provienen de muchas fuentes, las mismas deben ser enrutadas en un solo
proceso. Esto se hace con la finalidad de evitar problemas y conseguir estabilidad en los requerimientos.
Universidad del Cauca – Programa de Ingeniería de Sistemas
13
GUIA 3. Conceptos sobre Ingeniería de Requerimientos.
4. TÉCNICAS DE INGENIERÍA DE REQUERIMIENTOS.
Técnica
Ventajas

Desventajas
Se obtiene una gran cantidad de información

correcta a través del usuario.
Entrevistas y
Cuestionarios

La información obtenida al principio puede
ser redundante o incompleta.
Pueden ser usadas para obtener un pantallazo del

Si el volumen de información manejado es
dominio del problema.
alto, requiere mucha organización de parte

Son flexibles.
del analista, así como la habilidad para

Permiten combinarse con otras técnicas.
tratar y comprender el comportamiento de
todos los involucrados.

Permiten expresar la intención que tiene el usuario.

Permiten extraer los requerimientos del usuario y
Escenarios
(Casos de Uso,
del sistema.

Tarjetas CRC,
Diagramas de
Flujo)
NO permiten establecer los requisitos no
funcionales.

Centran al analista en las tareas principales de
usuario.


Deben
complementarse
con
información
consignada en otros documentos.

Tienen en cuenta todos los usuarios evitando que
En sistemas grandes toman mucho tiempo
para definir todas los escenarios.
las personas especializadas en informática dirijan la
funcionalidad
del
nuevo
sistema
basándose
solamente en criterios tecnológicos.

Lluvia de Ideas
Los diferentes puntos de vista y las confusiones en

cuanto a terminología, son aclaradas por expertos.

Es necesaria una buena compenetración del
grupo participante.
Ayuda a desarrollar ideas unificadas basadas en el
conocimiento de un experto.


Prototipos
Ayudan
a
validar
y
desarrollar
nuevos

El cliente puede llegar a pensar que el
requerimientos.
prototipo es una versión del software que
Permite comprender aquellos requerimientos que
será desarrollado.
no están muy claros y que son de alta volatilidad.

A
menudo,
compromisos
objetivo
de
el
de
desarrollador
implementación
acelerar
la
hace
con
puesta
el
en
funcionamiento del prototipo.
Universidad del Cauca – Programa de Ingeniería de Sistemas
14
GUIA 3. Conceptos sobre Ingeniería de Requerimientos.
5. CONCLUSIONES Y RECOMENDACIONES.
A pesar de la importancia que tiene la Ingeniería de Requerimientos, ha costado mucho que se le preste la atención
adecuada a esta actividad. Aún quedan muchos desafíos que deben ser mejorados, tales como la integración de
requerimientos funcionales y no funcionales, la formalización de la SRS, entre otras.
Cada actividad y técnica de la I.R. utilizada individualmente, dará diferentes soluciones para diferentes proyectos,
incluyendo aquellos casos en los que el dominio y el área del problema son el mismo. Por esta razón, se considera que no
existe un modelo de proceso ideal para la I.R.; encontrar el método o la técnica perfecta es una ilusión, pues cada
método y técnica ofrece diferentes soluciones ante un problema. Cabe recordar que la Ingeniería de Requerimientos es
una actividad que involucra a clientes, usuarios, equipo de desarrollo, administradores de proyectos, etc.; por lo tanto, el
proceso de I.R. no depende solamente de la forma en cómo se percibe el problema, sino también, del nivel de
experiencia que tengan los involucrados.
Tomando en cuenta la magnitud de comunicación y el trabajo en equipo que debe existir en la I.R., se considera
necesario enfatizar más en cerrar las brechas que todavía existen, incluyendo los siguientes elementos:
 Factores sociales: involucrar al grupo para compartir sus experiencias.
 Factores de problemas específicos: el dominio de la estructura y estándares disponibles.
 Factores organizacionales: tiempo y costo presupuestados.
 Factores de diseño: por ejemplo, interfases de usuario.
Es importante tomarse el tiempo necesario para conocer a los 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. Es
realmente necesario que los clientes y usuarios participen en la definición de sus requerimientos, pues ellos son los que
deciden nuestro destino en el proyecto, deciden si les gusta o no y además financian el proyecto.
-------------------------- FIN DEL DOCUMENTO
Universidad del Cauca – Programa de Ingeniería de Sistemas
15
Descargar