Upload
almondris-gonzalez-aleman
View
241
Download
0
Embed Size (px)
Citation preview
Ingeniera de Software
Unidad 1
Anlisis de Requerimientos
Sergio Snchez Rios.
Ingeniero en Informtica Licenciado en Informtica
Introduccin
Cada uno de los modelos del proceso de desarrollo delsoftware propuestos, incluye actividades que apuntan ala captura de requerimientos.
Por lo tanto, la comprensin del propsito y la funcindel sistema comienza con un atento examen de losrequerimientos.
Definicin de Requerimiento
Cuando el Cliente solicita que se desarrolle un sistematiene algunas nociones de lo que debe hacer.
Por est razn cada sistema basado en software tieneun propsito, usualmente expresado con algo que elsistema debe hacer.
Un Requerimiento es una caracterstica delsistema o una descripcin de algo que el sistemaes capaz de hacer con el objeto de satisfacer elpropsito del sistema.
Definicin de Requerimiento
Es decir, los requerimientos son lo que losclientes/usuarios esperan que haga el sistema.
Los analistas, por lo tanto, deben entender el problemade los usuarios en SU cultura y con SU lenguaje yconstruir el sistema que resuelve sus necesidades.
En si el objetivo del anlisis de requerimientos esresolver el problema.
Requerimientos v/s Diseo
Los requerimientos definen el Qu (el problema) delsistema.
El Diseo define el Cmo (la solucin).
Durante el anlisis de requerimientos no se considerandescripciones especificas de la implementacin comorequerimientos, a menos que el cliente lo pida (Ej.:bases de datos especificas, lenguajes de programacin,etc.).
Los requerimientos, por lo tanto deben centrarse en elcliente/usuario y el problema.
Importancia de los requerimientos
En 1994 el Standish Group hizo un estudio sobre 350compaas y cerca de 8000 proyectos de software paraaveriguar los avances de sus proyectos. Los resultadosfueron desencantadores:
El 31% de los proyectos de software fueron canceladosantes de tiempo (2480 proyectos).
En las grandes compaas, slo el 9% de los proyectos fueentregado en el termino de tiempo y dentro del costo quese presupuestaron; el 16% satisfizo estos requerimientosen las compaas pequeas.
En 1995 Standish pidi a los participantes queespecificarn las causas. Los resultados fueron lossiguientes:
Requerimientos incompletos (13,1%).
Falta de compromiso del usuario (12,4%).
Falta de recursos (10,6%).
Expectativas no realistas (9,9%).
Falta de soporte ejecutivo (9,3%).
Requerimientos y especificaciones cambiantes (8,7%).
Falta de planeamiento (8,1%).
Fin de la necesidad del sistema (7,5%).
Importancia de los requerimientos
Documentos de Requerimientos
Existen dos documentos que emanan del anlisis derequerimientos:
Definicin de requerimientos
Es un documento que debe escribirse en trminosque el cliente pueda entender. Es decir, estedocumento es un listado completo de todas las cosasque el cliente espera que haga el sistema propuesto.
Este documento es escrito en forma conjunta por elcliente y el desarrollador.
Documentos de Requerimientos
Especificacin de requerimientos
Documento que reitera la definicin de los requerimientosen los trminos tcnicos apropiados para el desarrolladordel diseo de un sistema.
Es la contrapartida tcnica al documento de definicin derequerimientos y es escrito por los analistas derequerimientos.
A veces un nico documento puede servir para ambospropsitos, lo que lleva a un entendimiento comn entreclientes, analistas de requerimientos y diseadores.
Pero a menudo se necesitan ambos documentos.
Documentos de Requerimientos
Es muy importante, que al usar ambos documentosexista un correspondencia directa entre cadarequerimiento del documento de definicin y aquellosdocumentos en la especificacin.
Esto para que la visin del cliente este unida a la de losdesarrolladores (esto se logra gracias a la gestin deconfiguracin).
Clasificacin de Requerimientos
Segn el Tipo los requerimientos se clasifican en:
Requerimientos funcionales.
Requerimientos no funcionales.
Requerimientos del Dominio.
Segn a quien van dirigidos se clasifican en:
Requerimientos del Usuario.
Requerimientos del Sistema.
Clasificacin de Requerimientos
Requerimientos funcionales
Describen la funcionalidad o los servicios que se esperaque el sistema proveer. Dependen del tipo desoftware, del sistema que se desarrollo y de losposibles usuarios.
Cuando se expresan como Requerimientos delusuarios, se definen de forma general.
Cuando se expresan como requerimiento del sistemadescriben con detalle la funcin de ste, sus entradasy salidas, excepciones, etc.
Clasificacin de Requerimientos
Requerimientos no funcionales
Son los requerimientos que no se refieren directamentea las funciones especficas que entrega el sistema, sino alas propiedades emergentes de ste, como la fiabilidad, larespuesta en el tiempo y la capacidad de almacenamiento.
Muchos requerimientos no funcionales se refieren al sistemacomo un todo ms que a rasgos particulares del mismo.
A menudo son mas crticos que los funcionales. Mientras queun incumplimiento de un requerimiento funcional degrada elsistema, el de un requerimiento no funcional del sistema loinutiliza.
Clasificacin de Requerimientos
Requerimientos no funcionales
Los requerimientos no funcionales se clasifican segn suimplicancia:
Del producto: especifican comportamiento del producto. Ej.:de desempeo en la rapidez de ejecucin del sistema, cuantamemoria se requiere; los de fiabilidad que fijan la tasa de fallaspara el sistema sea aceptable, los de portabilidad y deusabilidad.
Organizacionales: se derivan de las polticas yprocedimientos existentes en la organizacin del cliente y deldesarrollador. Ej.: estndares en los procesos que debenutilizarse, requerimientos de implementacin como loslenguajes de programacin o el mtodo de diseo a utilizar.
Clasificacin de Requerimientos
Requerimientos no funcionales
Externos: cubre todos los requerimientos que se derivande los factores externos al sistema y de su proceso dedesarrollo. Ej.: requerimientos de interoperabilidad,requerimientos legales, requerimientos ticos.
Un problema comn con los requerimientos no funcionales esque algunas veces son difciles de verificar.
De forma ideal los requerimientos no funcionales se debenexpresar de manera cuantitativa utilizando mtricas que sepuedan probar de forma objetiva. En la prctica, es difcil. Elcosto es muy alto.
Clasificacin de Requerimientos
Requerimientos del dominio
Se derivan del dominio del sistema ms que de lasnecesidades especificas del usuario.
Son importantes debido a que a menudo reflejan losfundamentos del dominio de la aplicacin. Si estos no sesatisfacen es imposible que el sistema trabaje de formasatisfactoria.
Estos se expresan utilizando un lenguaje especifico deldominio de la aplicacin que a menudo es difcil decomprender. Ej.: operacin para calcular desaceleracindel tren, para un sistema de control de trenes.
Caractersticas de los requerimientos
Es importante sealar que los requerimientos puedenservir a tres propsitos:
Permitir que el desarrollador explique como haentendido lo que el cliente pretende del sistema.
Indican a los diseadores que funcionalidades ycaractersticas va a tener el sistema resultante.
Los requerimientos indican al equipo de pruebas quedemostraciones llevar a cabo para convencer al cliente deque el sistema que se le entrega es de hecho lo quehaba ordenado.
Caractersticas de los requerimientos
Los requerimientos deben ser de alta calidad para la buenacomprensin de clientes y desarrolladores.
Con este fin debe comprobarse que los requerimientosposean las caractersticas que se desprenden de lassiguientes preguntas:
los requerimientos son correctos?. Cliente ydesarrollador deben revisarlos para asegurarse que notienen errores.
los requerimientos son consistentes?. Es decir, losrequerimientos planteados son no conflictivos niambiguos?. Dos requerimientos son inconsistentes cuandoes imposible satisfacerlos simultneamente.
Caractersticas de los requerimientos
los requerimientos son completos?. El conjunto derequerimientos es completo si todos los estados posibles,cambios de estado, entradas, productos, restricciones estndescritos en alguno de los requerimientos.
los requerimientos son realistas?.El sistema puedehacer realmente lo que el cliente esta pidiendo que haga?.Todos los requerimientos deben ser revisados para asegurarseque son posibles.
describe cada requerimiento algo que es necesariopara el cliente?. Los requerimientos deben ser revisados paraconservar slo aquellos que inciden directamente en laresolucin del problema del cliente.
los requerimientos son verificables?. Debemos prepararpruebas que demuestren que se han cumplido losrequerimientos.
Caractersticas de los requerimientos
los requerimientos son rastreables?. Se puederastrear cada funcin del sistema hasta el conjunto derequerimientos que la establece?. Resulta fcil encontrarel conjunto de requerimientos que coinciden a un aspectoespecifico del sistema?.
Fuentes de Requerimientos
Requerimientos
Deseos y necesidad
De los interesados
Modelo del Dominio
Modelo de la situacin actual
Requerimientos
Reutilizables
Tipo de Requerimientos recomendados
Documentos existentes
Organizacin y sistemas actuales
Plantilla de Requerimientos
Biblioteca de Reutilizacin
Robertson y Robertson 1999
Proceso: Ingeniera de Requerimientos
La Ingeniera de Requerimientos (IR) es un procesoque comprende todas las actividades requeridas paracrear y mantener un documento de requerimientos delsistema.
Proceso: Ingeniera de Requerimientos
Estudio de factibilidad
Obtencin y Anlisis de
Requerimientos
Especificacin de
Requerimientos
Validacin de
Requerimientos
Informede
factibilidad
Actividades
Especificacin de
Requerimientos
Documento de
Requerimientos
Modelo del Sistema
Artefactos
Proceso: Ingeniera de Requerimientos
Estudio de factibilidad
Obtencin y Anlisis de
Requerimientos
Especificacin de
Requerimientos
Validacin de
Requerimientos
Informede
factibilidad
Actividades
Especificacin de
Requerimientos
Documento de
Requerimientos
Modelo del Sistema
Artefactos
Proceso: Ingeniera de RequerimientosEstudio de Factibilidad
La entrada de este es una descripcin resumida delsistema y como se utiliza dentro de una organizacin.
El resultado del estudio es un informe que recomiendasi es conveniente llevar a cabo la ingeniera derequerimientos y el proceso de desarrollo del sistema.Adems permite proponer cambios al alcance,presupuesto, calendarizacin, etc.
Este es un estudio corto para resolver si es posible yconveniente construir el sistema con la tecnologaexistente, las restricciones de costo y tiempo, etc.
Proceso: Ingeniera de Requerimientos
Estudio de factibilidad
Obtencin y Anlisis de
Requerimientos
Especificacin de
Requerimientos
Validacin de
Requerimientos
Informede
factibilidad
Actividades
Especificacin de
Requerimientos
Documento de
Requerimientos
Modelo del Sistema
Artefactos
Proceso: Ingeniera de RequerimientosObtencin y Anlisis de requerimientos
Se trabaja en conjunto con los usuarios y los clientes.
Problemas Comunes:
No saben lo que quieren del sistema , slo en trminosgenerales, no conocen el costo de sus peticiones.
Los requerimientos estn en sus trminos y conconocimientos implcitos de su propio trabajo.
Distintos usuarios tienen distintos requerimientos, sedeben encontrar todas las fuentes.
Influyen factores polticos.
La importancia de los requerimientos varia en el tiempo.
Aparecen nuevos requerimientos.
Proceso: Ingeniera de RequerimientosObtencin y Anlisis de requerimientos
Proceso de Obtencin y Anlisis de requerimientos.
Comprensin del dominio
Recoleccin de Requerimientos Clasificacin
Resolucin deConflictos
PriorizacinVerificacin
de Requerimientos
Proceso: Ingeniera de RequerimientosObtencin y Anlisis de requerimientos
Fases:
1. Comprensin del Dominio: el analista debe desarrollar su
propia comprensin del dominio de la aplicacin. Ej.: Si
fuera un sistema para un supermercado este debe evaluar
como funciona un supermercado.
2. Recoleccin de Requerimientos: ste es el proceso de
interactuar con los clientes y usuarios para descubrir sus
requerimientos . Aqu se desarrolla la compresin del
dominio.
3. Clasificacin: considera la recoleccin no estructurada de
requerimientos y los organiza en grupos coherentes.
Proceso: Ingeniera de RequerimientosObtencin y Anlisis de requerimientos
4.Resolucin de conflictos: de forma inevitable, cuandoexisten muchos stakeholders involucrados, los requerimientosestarn en conflicto. Est actividad se refiere a resolver estosconflictos.
5.Priorizacin: Descubrir la importancia de cadarequerimiento.
Es til separar los requerimientos en tres categoras:
Requerimientos que deben ser absolutamente satisfechos.
Requerimientos que son muy deseables pero noindispensables.
Requerimientos que son posibles, pero que podran eliminarse.
6.Verificacin de Requerimientos: Los requerimientos severifican para descubrir si estn completos, son consistentes yacorde con lo que realmente quieren los stakeholders.
No existe un enfoque perfecto ni universal aplicable a laobtencin y anlisis de requerimientos .
Proceso: Ingeniera de Requerimientos
Estudio de factibilidad
Obtencin y Anlisis de
Requerimientos
Especificacin de
Requerimientos
Validacin de
Requerimientos
Informede
factibilidad
Actividades
Especificacin de
Requerimientos
Documento de
Requerimientos
Modelo del Sistema
Artefactos
Proceso: Ingeniera de RequerimientosEspecificacin de Requerimientos
Lenguaje Natural
Comprensible para el Cliente/Usuario.
Ambiguo (glosario).
Poca legibilidad (plantilla, formateo del texto).
Difcil de tratar (Verificar correctitud, consistencia,completitud).
Notaciones Especiales (ms formales)
Poca o ninguna ambigedad.
Facilita tratamiento.
Necesidad de entrenamiento en la notacin.
Dificultades de comprensin por Cliente/Usuario
Proceso: Ingeniera de RequerimientosEspecificacin de Requerimientos
Notaciones Especiales.
Grficas vs. Basadas en texto
Estticas vs. Dinmicas
Descripciones Estticas.
Se especifican entidades y sus atributos, losrequerimientos se pueden ver como las relaciones entrelas entidades.
No describe como cambian las relaciones con el tiempo
Descripciones Dinmicas
Especifican estados y las transiciones entre estados enel tiempo.
Proceso: Ingeniera de Requerimientos
Estudio de factibilidad
Obtencin y Anlisis de
Requerimientos
Especificacin de
Requerimientos
Validacin de
Requerimientos
Informede
factibilidad
Actividades
Especificacin de
Requerimientos
Documento de
Requerimientos
Modelo del Sistema
Artefactos
Proceso: Ingeniera de RequerimientosValidacin de Requerimientos
Proceso por el cual se determina si la especificacin esconsistente con las necesidades del cliente.
Incluye verificar trazabilidad entre la especificacin y eldocumento de requerimientos.
Se trabaja con un bosquejo completo del documento a diferenciade la verificacin del Anlisis.
Se realizan las siguientes verificaciones en el documento derequerimientos:
Validez: compromiso con el usuario, que valide que es lo quequiere.
Consistencia: que no haya contradicciones.
Realismo: que se puedan implementar (incluye: tecnologa,presupuesto y calendario).
Verificabilidad: Disear conjunto de pruebas para demostrar queel sistema cumple esos requerimientos.
Proceso: Ingeniera de RequerimientosValidacin de Requerimientos
Verificacin de Requerimientos no funcionales.
Son difciles de verificar.
Se deben expresar de manera cuantitativa utilizando mtricasque se puedan probar de forma objetiva ( esto es IDEAL).
Propiedad MedidaRapidez Transacciones por seg.
Tamao KB.
Fiabilidad Tiempo promedio entre fallas.
Robustez Probabilidad de datos corruptos despus de la falla.
Portabilidad Nmero de sistemas.
Facilidad de uso Tiempo de capacitacin.
Para los usuarios es difcil especificarlos en forma cuantitativa.
Entre los participantes en el proceso de requerimiento puedenincluirse:
Supervisor del contrato: quienes sugieren hitos de control ycronogramas que restringen el desarrollo del sistema.
Clientes y Usuarios: quienes deben comprender losrequerimientos de modo que puedan estar seguros de que elsistema satisface sus necesidades.
Gerentes de negocios: pueden comprender las probablesconsecuencias de construir y utilizar el sistema.
Diseadores: quienes utilizan los requerimientos como basepara el desarrollo de una solucin aceptable, que seimplementara como un sistema basado en software.
Verificadores: desarrollan datos de prueba y sesiones deprueba para asegurar que el sistema de software satisface cadauno de los requerimientos.
Proceso: Ingeniera de RequerimientosParticipantes en el proceso de requerimientos.