1. INSTITUTO TECNOLOGICO
DE TUXTEPEC
TÉCNICAS QUE SE IMPLEMENTAN EN LAS TAREAS DE LA
INGENIERÍA DE REQUISITOS.
ASIGNATURA:
Fundamentos de Ingeniería de Software
UNIDAD II:
Ingeniería de Requisitos
INTEGRANTES:
Alba Nidya Soto Domínguez
Araceli Hernández Castro
Arlethe Tenorio Martínez
Julio Franco Elías Celis
Mónica Moreno Ortiz
Zuleima Pérez Ibáñez
DOCENTE:
L.I. María de los Ángeles Martínez Morales
ESPECIALIDAD:
I.S.C
SEMESTRE Y GRUPO:
5° “A”
San Juan Bautista Tuxtepec, Oax., a 19 de Septiembre de 2012.
3. INTRODUCCIÓN
La ingeniería de requerimientos, tiene como objeto disminuir la distancia entre
usuario y programas, de tal forma que el software, comoproducto final refleje
fielmente las necesidades delusuario.
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 sobrecostos en el proceso de desarrollo.
En cuanto al tratamiento de los requerimientos, los analistas usan diferentes
técnicas para recolectar, separar y clasificar los requerimientos.
Existen muchas técnicas disponibles para la aplicación de la Ingeniería de
Requerimientos, con el fin de asegurar que los requerimientos obtenidos cuenten,
al final del proceso de Ingeniería de Requerimientos, con las características
necesarias para ser implementados.
A continuación se describe de manera detallada y precisa cada uno de los
aspectos del ciclo de vida de un conjunto de requerimientos.
4. TÉCNICAS QUE SE IMPLEMENTAN EN LAS TAREAS DE LA
INGENIERÍA DE REQUISITOS
DEFINICIÓN:
Un requerimiento puede definirse como un atributo necesario dentro de un
sistema, que puede representar una capacidad, una característica o un factor de
calidad del sistema de tal manera que le sea útil a los clientes o a los usuarios
finales.
Los requerimientos son una especificación de lo que debe ser implementado.
Estos son descripciones de cómo el sistema se debe comportar, de las
propiedades y atributos del mismo. Deben ser una restricción del proceso de
desarrollo del sistema (SOMMERVILLE, Ian y SAWYER, Peter).
INGENIERÍA DE REQUERIMIENTOS:
La ingeniería de requerimientos es un conjunto de actividades en las cuales,
utilizando técnicas y herramientas, se analiza un problema y se concluye con la
especificación de una solución [Ortas 1997].
"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" (BOEHM).
Por tanto, la Ingeniería de Requerimientos se utiliza para definir todas las
actividades involucradas en el descubrimiento, documentación y mantenimiento de
los requerimientos para un producto determinado. El uso del término de
“Ingeniería” implica que se deben utilizar técnicas sistemáticas y repetibles para
asegurar que los requerimientos del sistema estén completos y sean consistentes
y relevantes. Tiene como objeto disminuir la distancia entre usuario y programas,
de tal forma que el software, como producto final refleje fielmente las necesidades
del usuario.
DOCUMENTOS DE REQUERIMIENTOS
Existen dos documentos que emanan del análisis de requerimientos:
Definición de requerimientos: Es un documento que debe escribirse en
términos que el cliente pueda entender. Es decir, este documento es un
listado completo de todas las cosas que el cliente espera que haga el
sistema propuesto. Este documento es escrito en forma conjunta por el
cliente y el desarrollador.
5. Especificación de requerimientos: Documento que reitera la definición de
los requerimientos en los términos técnicos apropiados para el
desarrollador del diseño de un sistema. Es la contrapartida técnica al
documento de definición de requerimientos y es escrito por los analistas de
requerimientos. A veces un único documento puede servir para ambos
propósitos, lo que lleva a un entendimiento común entre clientes, analistas
de requerimientos y diseñadores. A menudo se necesitan ambos
documentos.
Es muy importante, que al usar ambos documentos exista una correspondencia
directa entre cada requerimiento del documento de definición y aquellos
documentos en la especificación. Esto para que la visión del cliente este unida a la
de los desarrolladores (esto se logra gracias a la gestión de configuración).
CLASIFICACIÓN DE REQUERIMIENTOS
Requerimientos funcionales: Describen la funcionalidad o los servicios
que se espera que el sistema proveerá. Dependen del tipo de software, del
sistema que se desarrollo y de los posibles usuarios. Cuando se expresan
como Requerimientos de usuarios, se definen de forma general. Cuando se
expresan como requerimiento del sistema describen con detalle la función
de éste, sus entradas y salidas, excepciones, etc.
Requerimientos no funcionales:Son los requerimientos que no se refieren
directamente a las funciones específicas que entrega el sistema, sino a las
propiedades emergentes de éste, como la fiabilidad, la respuesta en el
tiempo y la capacidad de almacenamiento. Muchos requerimientos no
funcionales se refieren al sistema como un todo más que a rasgos
particulares del mismo. A menudo son más críticos que los funcionales.
Mientras que un incumplimiento de un requerimiento funcional degrada el
sistema, el de un requerimiento no funcional del sistema lo inutiliza. Según
su importancia se clasifican en:
- Del producto: especifican comportamiento del producto. Ej.: de
desempeño en la rapidez de ejecución del sistema, cuanta memoria se
requiere; los de fiabilidad que fijan la tasa de fallas para el sistema sea
aceptable, los de portabilidad y de usabilidad.
- Organizacionales: se derivan de las políticas y procedimientos
existentes en la organización del cliente y del desarrollador. Ej.:
estándares en los procesos que deben utilizarse, requerimientos de
implementación como los lenguajes de programación o el método de
diseño a utilizar.
- Externos: cubre todos los requerimientos que se derivan de los factores
externos al sistema y de su proceso de desarrollo. Ej.: requerimientos de
interoperabilidad, requerimientos legales, requerimientos éticos.
6. Un problema común con los requerimientos no funcionales es que algunas
veces son difíciles de verificar. De forma ideal se deben expresar de
manera cuantitativa utilizando métricas que se puedan probar de forma
objetiva. En la práctica, es difícil. El costo es muy alto.
Requerimientos del dominio: Se derivan del dominio del sistema más que
de las necesidades específicas del usuario. Son importantes debido a que a
menudo reflejan los fundamentos del dominio de la aplicación. Si estos no
se satisfacen es imposible que el sistema trabaje de forma satisfactoria.
Estos se expresan utilizando un lenguaje específico del dominio de la
aplicación que a menudo es difícil de comprender. Ej.: operación para
calcular desaceleración del tren, para un sistema de control de trenes.
CARACTERÍSTICAS DE LOS REQUERIMIENTOS
Los requerimientos permiten que el desarrollador explique como ha entendido lo
que el cliente pretende del sistema. Indican a los diseñadores que funcionalidades
y características va a tener el sistema resultante. Indican al equipo de pruebas que
demostraciones llevar a cabo para convencer al cliente de que el sistema que se
le entrega es de hecho lo que había ordenado.
TECNICAS DE LA INGENIERIA DE REQUISITOS
El proceso de Ingeniería de Requerimientos describe demanera detallada y
precisa cada uno de los aspectos del ciclo de vida de un conjunto de
requerimientos. Este proceso presenta dos grandes ramas:
Desarrollo de requerimientos.
Administración de requerimientos.
DESARROLLO DE REQUERIMIENTOS:
Que tiene como propósito producir y analizarlos requerimientos de cliente, de
producto y de componente de producto, incluye las siguientes actividades:
Recolección, Análisis, Especificación y Verificación.
Recolección: Es el Proceso a través del cual los clientes (compradores y/o
usuarios) y el desarrollador (contratista) de un sistema de software; descubren,
revisan, articulan, y entienden las necesidades de los usuarios del sistema y las
restricciones que se dan sobre el software y el desarrollo del mismo.
Algunas de las técnicas y herramientas más importantes para llevar a cabo la
recolección de requerimientos son:
Entrevistas: método para descubrir hechos y opiniones que tienen los posibles
usuarios y otros participantes dentro del sistema que se está desarrollando. A su
vez se clasifican en:
7. - Entrevistas cerradas:las preguntas ya están previstas, tienen un orden y
una forma de ser planteadas que no pueden ser modificadas por el
entrevistador. Es en realidad un cuestionario.
- Entrevistas abiertas: en las cuales no se preparan preguntas concretas,
y, por el contrario, se discute con el entrevistado las expectativas que
este tiene del sistema.
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. Los
escenarios son ejemplos de sesiones de interacción entre el sistema y el usuario,
donde un solo tipo de interacción entre los dos participantes es simulada y
descrita.
Observación y análisis social: La observación permite a los investigadores
observar lo que los usuarios hacen actualmente en un determinado contexto. Esto
permite superar problemas con los participantes del proyecto que realizan
descripciones idealizadas o demasiado simplificadas de los procesos que se
llevan a cabo en sus trabajos.
Lluvia 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 no sean criticadas. Durante la
evaluación de las ideas, las propuestas de solución deben ser evaluadas desde
diferentes perspectivas.
Prototipos: 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.
Existen dos grandes tipos de prototipos. Los prototipos no funcionales o
desechables (Throw away), que sirven para entender la dificultad y aclarar los
requerimientos; y los prototipos funcionales o evolutivos (Evolutionary) que
permiten construir una aproximación del sistema de manera que se pueda proveer
cierta funcionalidad del sistema final y usualmente se convierten en parte del
mismo.
Análisis: Es el proceso de analizar las necesidades de los clientes y los usuarios
para llegar a una definición de los requerimientos de software.
Dentro de las prácticas principales se encuentra:
JAD (Joint Application Development): Esta práctica se basa en la creación de
espacios que permitan celebrar sesiones o reuniones en donde los participantes y
directos interesados dentro del desarrollo del proyecto buscan obtener o generar
conocimiento alrededor del desarrollo que se va a llevar a cabo.
En estas sesiones se trabaja bajo un enfoque común que permite el fácil
entendimiento de los temas expuestos por parte de los invitados a la sesión
8. (usualmente un enfoque de análisis estructurado), y se persiguen como propósito
diferentes aspectos: definir niveles de detalle del proyecto, diseñar una solución,
monitorear el proyecto, etc.
Priorización de requerimientos: Un potencial remedio para este dilema es la
priorización de requerimientos, que permite manejar la situación descrita
anteriormente. Esto permite controlar las decisiones que se realicen teniendo en
cuenta a la fuente generadora de las necesidades.
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. Existen
dos tipos de modelos.
- Modelo conceptual: Es el utilizado en la especificación del sistema,
representa los conceptos más significativos en el dominio del problema….
Nos describe la parte estática del problema, es una fotografía del mundo
real.
- Modelo de Comportamiento: Utilizado en la parte de diseño del sistema,
define la parte dinámica, es decir, cual debe ser el comportamiento en cada
situación y la forma de proceder. Los diagramas de secuencia y de estados
son parte de este modelo.
Especificación: Consiste en el desarrollo de un documento que de manera clara y
precisa contenga y especifique cada uno de los requerimientos del sistema de
software.
Verificación: Es el proceso de asegurar que la especificación de requerimientos
de software sea acorde con los requerimientos del sistema, conforme a los
estándares de documentación de la fase de requerimientos, y que a su vez este
documento sea una base sólida para la arquitectura y el diseño.
Esta actividad representa un punto de control interno y externo; interno,porque se
debe verificar internamente lo que se está haciendo, y externo, porque se debe
validar con el cliente.
Administración de requerimientos:
Es un proceso que tiene por objetivo comprender y controlar los requerimientos.
Como todo proceso de administración, inicia con la planeación a la par de la
identificación inicial de requerimientos. Este proceso tiene diferentes formas que
dependen del proceso de desarrollo de software que se esté empleando,
independientemente de esto se deben considerar las siguientes etapas:
1. Requerimientos duraderos y volátiles.
2. Planeación de la administración de requerimientos.
3. Administración del cambio de los requerimientos.
9. CONCLUSIÓN
Como conclusión a esta investigación se puede observar la importancia que tiene
el conocimiento de la Ingeniería de Requerimiento sin dejar de mencionar que el
resultado satisfactorio depende de una intensa comunicación entre clientes y
analistas de requerimientos. La Ingeniería se encarga de establecer y mantener un
acuerdo en qué el sistema debe hacer, demás proporciona al equipo de desarrollo
un entendimiento de los requisitos, hasta definir los límites del sistema.
En cuanto a la investigación realizada de la técnica de Casos de Uso para la
Ingeniería de Requerimientos, puede decirse que los casos de uso son
independientes del método de diseño que se utilice, y por lo tanto, del método de
programación.
Con la administración de Requerimientos se busca encontrar una descripción más
apropiada de las actividades involucradas, a la vez de enfatizar la importancia de
mantener una buena relación entre los afectados y el equipo del proyecto.
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. REFERENCIAS
Libros proporcionados por la maestra:
o Aranguren, S. M. (2012). Técnicas para una mejor Ingeniería de Requerimientos.
o Ceria, S. (s.f.). Ingeniería de Software I.
o ZAMBRANO, A. N. (Junio, 2005). HERRAMIENTA PARA EL ANÁLISIS DE
REQUERIMIENTOS. Bogotá D.C.