Documente Academic
Documente Profesional
Documente Cultură
Ingeniera de Sistemas
Qu porcentaje de proyectos concluyen con xito? Un estudio realizado por Standish Group analiz el desarrollo de 8000 proyectos de software, realizados por 350 empresas diferentes y concluy que slo el 16% de los proyectos de software se realizan con xito. El estudio identific como principales causas de los problemas: Requisitos deficientes La planificacin de agendas y estimaciones de costes no se realizaron en base a los requisitos Deficiencias en la aplicacin de procesos y desconocimiento del ciclo de vida del proyecto
Sin desviaciones en las fechas previstas. Sin desviaciones en los costes estimados. Que el producto final cubra las expectativas y necesidades del
cliente. Que funcione correctamente.
Estimacin
Planificacin
Diseo
Construccin
V&V
Los errores en los requisitos se comportan como una enfermedad contagiosa que siempre repercute en todas las fases del proyecto. Estimacin: No es posible estimar con rigor costes y recursos necesarios para desarrollar algo que no se conoce. Planificacin No se puede confiar en la planificacin para el desarrollo de algo que no se sabe bien como es. Diseo: Los errores en requisitos, las modificaciones frecuentes, las deficiencias en restricciones o futuras evoluciones, producen arquitecturas que ms tarde se confirmarn como errneas y sern modificadas.
Estimacin
Planificacin
Diseo
Construccin
V&V
La evolucin de los requisitos durante el desarrollo de los proyectos puede incrementar o modificar funcionalidades ya implementadas, desbordando los costes y agendas planificados.
Concrecin
etc.) Ms all de funcionalidades precisas, los requisitos recogen atributos de calidad necesarios que en ocasiones son desconocidos por los desarrolladores, produciendo finalmente sistemas sobredimensionados o con serias deficiencias de rendimiento. en el consumo de recursos: reduccin de la re-codificacin, reduccin de omisiones y malentendidos. Tener un conocimiento preciso de lo que hay que hacer evita la prueba y error, repeticin de partes ya desarrolladas, etc.
Eficiencia
Un requisito es
Requisitos son una especificacin de lo que debera ser implementado. [] -- Ian Sommerville & Pete Sawyer Una condicin o capacidad necesaria para un usuario para solucionar un problema o alcanzar un objetivo [] [IEEE Std 610.12, IEEE Standard Glossary of Software Engineering Terminology]
Procesos
mbitos
Obtencin
Anlisis
Especif.
V&V
Gestin
Sistema
Software
La ingeniera del software y la ingeniera de requisitos son ingenieras muy recientes. En la actualidad acaba de cerrarse la versin 1.0 de SWEBOK, que constituye el esfuerzo ms serio y consensuado hasta la fecha para definir las reas de conocimiento que la integran. En este estado de cosas no es extrao encontrar que, diferentes autores clasifican o presentan los conceptos clave de forma diferente, si bien los conceptos bsicos siempre son los mismos: Obtencin, anlisis, especificacin, validacin y verificacin y gestin. As por ejemplo, Karl Wiegers centra su inters clasificatorio en la diferencia entre el desarrollo de lo requisitos y su posterior gestin. SWEBOK plantea una representacin esquemtica plana (no distingue entre gestin y desarrollo) y centra su inters slo en los requisitos del software. IEEE carga el peso de la clasificacin en la diferencia entre requisitos del sistema y del software. Nuestro punto de vista contempla las 5 reas clave, que se trabajan tanto en el mbito de los requisitos del sistema como en los requisitos del software.
Requisito Condicin o aptitud necesaria para resolver un problema o alcanzar un objetivo. Condicin o facilidad que debe proporcionar un sistema o algunos de sus subsistemas para satisfacer un contrato, norma, especificacin o cualquier otra condicin impuesta formalmente a travs de un documento.
Obtener informacin
OBTENCIN
ANLISIS
ESPECIFICACIN
GESTIN
Obtencin (elicitacion) El primer paso consiste en conocer y comprender las necesidades y problemas del cliente. En la obtencin se identifican todas las fuentes de requisitos implicadas en el sistema y, en funcin de las caractersticas del entorno y del proyecto se emplean las tcnicas ms apropiadas para la identificacin de las necesidades que deben satisfacerse. Anlisis Una vez obtenida la informacin necesaria del entorno, es necesario sintetizarla, darle prioridades, analizar posibles contradicciones o conflictos, descomponer el sistema y distribuir las necesidades de cada parte, delimitar los lmites del sistema y definir su interaccin con el entorno.
Gestin
Los requisitos cambiarn durante el desarrollo del sistema, y es necesario poder trazar en cada cambio todas las partes afectadas, as como poder medir el impacto que cada modificacin implica en la planificacin del proyecto.
La documentacin de las caractersticas del sistema y las necesidades operacionales El documento que recoge los deseos del usuario, sin requerir una cuantificacin
del usuario, de forma que puedan ser verificadas sin requerir conocimientos tcnicos. medible. Por ejemplo, el usuario puede indicar que desea que los tiempos de respuesta de las consultas sean rpidos, y las razones de su deseo, sin necesidad de cuantificar esos trminos. Ms adelante, el desarrollo y anlisis de los requisitos del sistema, el analista concretar y cuantificar esos deseos. de solucin, y las restricciones que deben respetarse.
ANALIZAR EL PROBLEMA COMPRENDER LAS NECESIDADES DE LOS USUARIOS DEFINIR EL SISTEMA DESARROLLAR LOS REQUISITOS DEL SOFTWARE GESTIONAR LOS REQUISITOS
Analizar el problema
Definir el sistema
Analizar el problema
Consiste en comprender los problemas reales de los usuarios, y proponer soluciones que cubran sus necesidades. El objetivo del anlisis es conseguir la mayor comprensin posible antes de que empiece el desarrollo. El analista de requisitos es en realidad un solucionador de problemas. Durante el anlisis debe comprender las necesidades de los usuarios, y proponer soluciones. En esta tarea es necesario explorar y comprender el entorno del cliente. Al realizar el anlisis hay que Evitar la tendencia frecuente a los prejuicios creyendo que ya conocemos las necesidades del cliente, y que su principal problema en realidad es que no entiende cul es su problema. Tener en cuenta que siempre hay varias maneras de abordar un problema, y que en ocasiones, cambiar la perspectiva del usuario puede generar la solucin ms eficiente y rentable, aunque no siempre es posible. Comenzar el anlisis sin ideas preconcebidas y teniendo presente el objetivo: conseguir la mayor comprensin posible del problema. El anlisis del problema comprende 1.2.3.4.Identificacin del problema. Identificacin de las partes implicadas. Delimitacin de la solucin. Identificacin de las restricciones.
Definir el sistema
La descripcin del sistema marca el punto intermedio entre el anlisis del problema, y la descripcin detallada de los requisitos del software. Es el documento que ofrece una visin general, y ofrece la idea global del sistema en su conjunto. Marca una pausa antes de seguir avanzando hacia los detalles, para evitar que los rboles nos impidan ver el bosque.
El resultado de esta fase es el documento de Definicin del sistema, frecuentemente llamado tambin ConOps (Concept of Operations).
Descripcin del sistema o de la situacin actual. Descripcin de las necesidades que han motivado el desarrollo de un sistema nuevo, o de la necesidad de modificar el actual. Modos de operacin propuestos para el nuevo sistema. Tipos de usuarios y caractersticas. Funcionalidades propuestas. Restricciones que debe respetar el sistema.
Por Definir el sistema no consideramos slo la redaccin por el ingeniero de requisitos. Tambin comprende la verificacin y validacin del documento. Por verificacin se entiende la supervisin del documento para garantizar que resulta formalmente correcto. Validacin implica la conformidad de las partes afectadas por el sistema (usuarios, clientes, etc.).
Problema: inestabilidad
Los requisitos son inestables y cambian durante el desarrollo y tras la entrada en servicio del sistema. La solucin para evitar problemas radica en el proceso de gestin de requisitos.
[1] Goodrich, Victoria, and Olfman, Lorne. An experimental Evaluacion of Task annd Methodology Variables for Requirements Definition Phase Success. In Bruce D. Shriver (editor), Proceedings of the twenty-third Annnual Hawaii International Conference on System Sciences, p. 201-209. IEEE Computer Society, January 1990
ESCENARIOS
TCNICAS
PROTOTIPOS
Prototipos rpidos prototipos evolutivos
OBSERVACIN
Requisitos funcionales
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 ambigedad, y el exceso de detalle con precisiones o descripciones innecesarias o redundantes.
Requisitos no funcionales
Definen aspectos, que sin ser funcionalidades, (tareas que el sistema debe realizar) resultan deseables desde el punto de vista del usuario. Generalmente comprenden atributos de calidad:
Describen las restricciones del sistema o del proceso de desarrollo: Niveles de servicio, interfaz, atributos de calidad, etc. En general, los requisitos no funcionales son ms difciles de cuantificar.
Requisitos de interfaz
Definen las interacciones del sistema con su entorno:
A Entendemos
Este bloque pertenece a los requisitos que conocemos y sabemos que son aplicables al problema
B
Este bloque pertenece a los requisitos que conocemos pero no conocemos, es decir que sabemos que existen pero no hemos realizado su anlisis.
Prototipado
C No Entendemos
Este bloque pertenece a los requisitos que sabemos que son aplicables al problema pero que no entendemos
D
Este bloque pertenece a los requisitos que no conocemos y tampoco sabemos que no conocemos
A B C
Requisitos
Especificados
B
Revisin y aprobacin
Requisitos Correctos
Objetos
Lgicos
Trminos
RF 10 Informe A cierre de caja RF 50 Informe A cierre diario de operaciones
C=A+B
C=A*B
Conclusiones
Los requisitos contienen demasiados errores Muchos de estos errores no se detectan al principio. Muchos de estos errores podran ser detectados al principio. No detectar estos errores incrementar los costes (tiempo, dinero) de forma exponencial Recuerde siempre el efecto bola de nieve Los requisitos son un CONTRATO La satisfaccin de los clientes se considera la mejor mtrica de la calidad de un sistema. Si un analista hace exactamente lo que el cliente le indica y el sistema no satisface realmente las necesidades con toda seguridad NO es responsabilidad del cliente