Ingeniería de requisitos

13
TÉCNICAS QUE SE IMPLEMENTAN EN LAS TAREAS DE LA INGENIERÍA DE REQUISITOS. ASIGNATURA: Fundamentos de Ingeniería de Software UNIDAD II: Introducción 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” INSTITUTO TECNOLOGI CO DE TUXTEPEC

Transcript of Ingeniería de requisitos

Page 1: Ingeniería de requisitos

TÉCNICAS QUE SE IMPLEMENTAN EN LAS

TAREAS DE LA INGENIERÍA DE REQUISITOS.

ASIGNATURA: Fundamentos de Ingeniería

de Software

UNIDAD II: Introducción

INTEGRANTES:Alba Nidya Soto DomínguezAraceli Hernández CastroArlethe Tenorio MartínezJulio Franco Elías CelisMónica Moreno OrtizZuleima 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.

INSTITUTO

TECNOLOGICO DE

TUXTEPEC

Page 2: Ingeniería de requisitos

INDICE

INTRODUCCIÓN

INGENIERÍA DE REQUISITOS

CONCLUSIÓN

REFERENCIAS

Page 3: Ingeniería de requisitos

INTRODUCCIÓN

La ingeniería de requerimientos, 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.

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.

Page 4: Ingeniería de requisitos

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

Page 5: Ingeniería de requisitos

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.

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.

Page 6: Ingeniería de requisitos

- 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.

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 de manera 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 analizar los 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:

Page 7: Ingeniería de requisitos

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:

- 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

Page 8: Ingeniería de requisitos

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 (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.

Page 9: Ingeniería de requisitos

3. Administración del cambio de los requerimientos.

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.

Page 10: Ingeniería de requisitos

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.