Professional Documents
Culture Documents
Ingeniera de Requisitos
Ingeniera de Requisitos
Lo ms difcil en la construccin de un sistema software es decidir precisamente qu construir... No existe tarea con mayor capacidad de lesionar al sistema, cuando se hace mal... Ninguna otra tarea es tan difcil de rectificar a posteriori... Frederick Phillips Brooks, Jr., 1987
Ingeniera de Requisitos
La evidencia emprica demuestra que:
Los requisitos contienen demasiados errores Muchos de estos errores no se detectan al principio Muchos de estos errores podran ser detectados al principio.
Ingeniera de Requisitos
La evidencia emprica demuestra que:
No detectar estos errores incrementar los costes (tiempo, dinero) de forma exponencial Adems, los programadores obedecen los requisitos (cuando existen).
Ingeniera de Requisitos
Consecuencias
El sistema resultante no satisfar a los usuarios Se producirn desacuerdos entre usuarios y desarrolladores Puede ser imposible demostrar si el software cumple, o no, los requisitos Se gastar tiempo y dinero en construir el sistema equivocado
Ingeniera de Requisitos
Complejidad
No estamos hablando de sistemas de 15 30 requisitos. Tambin hay:
Sistemas de cientos de requisitos Sistemas de miles de requisitos Sistemas de 5.000 requisitos Sistemas de ms de 10.000 Sistemas de incluso 60.000 (!) requisitos
Ingeniera de Requisitos
1995/2001: The Chaos Report
http://www.standishgroup.com Gasto anual en EEUU: $250 mil millones en unos 175.000 proyectos.
31,1% (23%) son cancelados 52,7% (49%) cuestan un 190% ms de lo estimado Un 16,2% (28%) ser finalizado a tiempo y dentro del presupuesto, pero el producto final poseer (aprox.) la mitad de los requisitos iniciales
Ingeniera de Requisitos
La crisis del software y los requisitos
Boehm, 1975: 45% de los errores tienen su orgen en los requisitos y en el diseo preliminar. DeMarco, 1984: 56% de los errores que tienen lugar en un proyecto Sw. Se deben a una mala Especificacin de Requisitos Chaos Report: Los factores principales que conducen al fracaso en los proyectos Sw. Son:
Falta de comunicacin con los usuarios Requisitos incompletos Cambios a los requisitos
Ingeniera de Requisitos
Problema
Acumulacin de errores
Especificacin Incorrecta
ESP. REQUISITOS
DISEO
Especificacin Correcta
Diseo Correcto
Diseo Errneo
IMPLEMENTACIN
PRUEBA
PRODUCTOS IMPERFECTOS
Ingeniera de Requisitos
Solucin?
No se ha encontrado solucin universalmente vlida Hay serias dudas acerca de si dicha solucin existe
Nos movemos en la frontera socio-tcnica de los sistemas: borrosa, voluble e inconsistente Los requisitos es donde lo formal se encuentra con lo informal (M. Jackson) Los requisitos estn vivos: emergen, interactan, cambian, desaparecen...
Ingeniera de Requisitos
Qu es?
La Ingeniera de Requisitos ayuda a los ingenieros de software a entender mejor el problema en cuya solucin trabajarn. Incluye el conjunto de tareas que conducen a comprender cul ser el impacto del software sobre el negocio, qu es lo que el cliente quiere y cmo interactuarn los usuarios finales con el software.
Pressman, 2006: 155
La Ingeniera de Requisitos es el proceso de desarrollar una especificacin de software. Las especificaciones pretender comunicar las necesidades del sistema del cliente a los desarrolladores del sistema.
Sommerville, 2005: 82
Ingeniera de Requisitos
Qu son los requisitos?
Una condicin o necesidad de un usuario para resolver un problema o alcanzar un objetivo Una condicin o capacidad que debe estar presente en un sistema o componentes de sistema para satisfacer un contrato, estndar, especificacin u otro documento formal
Std 610.12-1900, IEEE: 62
Ingeniera de Requisitos
Tipos de requisitos:
Funcionales
Describe los servicios (funciones) que se esperan del sistema. Definen las funciones que el sistema realizar. Describen el qu?, no el Cmo?. Se convertirn en algoritmos, reglas de negocio y cdigo del sistema.
Ejemplo:
El sistema aceptar pagos con VISA
Ingeniera de Requisitos
Tipos de requisitos:
No funcionales
Son restricciones sobre los requisitos funcionales. Son caractersticas que limitan al sistema en rendimiento, interfaces de usuario, fiabilidad, mantenimiento, seguridad, portabilidad, etc.
Ejemplo:
El sistema aceptar pagos con VISA
de forma segura y con un tiempo de respuesta menor de 5 segundos
Ingeniera de Requisitos
Caractersticas:
Especificado por escrito Como todo contrato o acuerdo entre ambas partes. Posible de probar o verificar
Ingeniera de Requisitos
Caractersticas:
Completo
Ingeniera de Requisitos
Dificultades para definir:
Los requisitos no son obvios y vienen de distintas maneras. Son difciles de expresar con palabras. La cantidad de requisitos en un proyecto es demasiado grande. Un requisito puede cambiar a los largo del ciclo de desarrollo.
Ingeniera de Requisitos
Dificultades para definir:
El usuario no puede explicar bien lo que quiere. Hablan de lo que no funciona. Los usuarios y clientes tienen distinto vocabulario que los desarrolladores.
Aceptacin del sistema ligada con la satisfaccin del cliente en los requisitos descubiertos. Obtener requisitos: a travs de entrevistas o comunicacin con clientes o usuarios, para saber cules son sus expectativas.
Analizar requisitos detectar y corregir las falencias comunicativas, transformando los requisitos obtenidos de entrevistas y requisitos, en condiciones apropiadas para ser tratados en el diseo.
Documentar requisitos igual que todas las etapas, los requisitos deben estar debidamente documentados.
3. 4. 5.
6.
Dependencia o Instanciacin
Es una forma muy particular de relacin entre clases, en la cual una clase depende de otra, es decir, se instancia (se crea). Dicha relacin se denota con una flecha punteada.
Resumen