Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Esto no me vale!
FUNCIONA!
Cliente
- Sus requisitos de usuario incluyen 400 funcionalidades. - Es consciente de que ningn ser humano podr utilizar un producto tan complejo? - Buena observacin! Debera aadir fcil de utilizar
Desarrollador
Diferencia de expectativas
pero funciona!
tiempo
Un requisito es
Requisitos son una especificacin de lo que debera ser implementado. []
-- Ian Sommerville & Pete Sawyer
Qu es la Ingeniera de Requisitos?
una especificacin que el sistema o producto debe cumplir
Es la disciplina utilizada para descubrir los requisitos, analizarlos, entenderlos, especificarlos y validarlos de forma colaborativa, gestionando los cambios a lo largo del ciclo de vida. Permite alinear a los stakeholders en: Una visin compartida Unos objetivos Unas expectativas. Reduce el riesgo de que un sistema sea rechazado por los usuarios una vez desarrollado Una Gestin y Definicin de Requisitos eficiente permite: Mostrar un nivel de disciplina en el proceso de desarrollo Dar un mejor soporte a la Gestin de Cambios Ganar una mayor eficiencia en las pruebas Reducir los problemas de mantenimiento.
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]
Requisitos
RDM
Gestin y Definicin de Requisitos
INGENIERA DE REQUISITOS
DEFINICIN DE REQUISITOS Captura de requisitos Anlisis de requisitos Especificacin de requisitos Validacin de requisitos GESTIN DE REQUISITOS
2.
Fuente: TynerBlain.com
Project Analyzed 0- 5% invested in Req. Management results in 80-200% overcost 8-14% invested in Req. Management results in 0-60% overcost
% Overcost
15
20
25
Qu es un Requerimiento ? Un requerimiento es una condicin o capacidad a la que el sistema (siendo construido) debe conformar [ Rational ]. Un requerimiento de software puede ser definido como : Una capacidad del software necesaria por el usuario para resolver un problema o alcanzar un objetivo. Una capacidad del software que debe ser reunida o poseda por un sistema o componente del sistema para satisfacer un contrato, especificacin, estndar, u otra documentacin formal.
Anlisis y Diseo de Software Mg. Richard Y. Mercado Rivas
Socios
Clientes
Analistas Reporte de Problemas Req. De Cambio Dominio del Problema Expertos Dominio Analistas Industria Visitas al WEB Modelo de Negocios
Mg. Richard Y. Mercado Rivas
Usuarios
Rol de Requerimientos
Si un producto no es lo que el cliente o los usuarios quieren, entonces la calidad de la construccin es irrelevante. El rol clave de los requerimientos es mostrar a los desarrolladores y usuarios que se necesita de un sistema. Proveer los requerimientos forma parte de un lenguaje que todos comprenden, ya que todos estn involucrados, incluyendo los clientes. El primer y bsico rol de los requerimientos es por lo tanto la comunicacin.
Cmo identificamos los Requerimientos ? Los Requerimientos toman vida desde que realizamos nuestro primer encuentro de interlocucin con usuarios o clientes. Este puede desarrollarse utilizando cualquiera de una variedad de tcnicas como entrevistas para intercambiar opiniones, brainstorming, prototipeo, cuestionarios, etc. Cuando los requerimientos se logran redactar a un significativo nivel de detalle, tendremos listo el documento denominado Especificacin de Requerimientos.
Requerimientos Funcionales
Describen la funcionalidad o los servicios que se espera proveer el sistema. Estos dependen del tipo de software y del sistema que se desarrolle y de los posibles usuarios del software. Cuando se expresan como requerimientos del usuario, habitualmente se describen de forma general mientras que los requerimientos funcionales del sistema describen con detalle la funcin de ste, sus entradas y salidas, excepciones, etc.
Un Proceso es el conjunto total de actividades de ingeniera necesarias para transformar dentro de software los requerimientos de usuarios Managing the Process, Humphrey, 1989
Ejemplo
Requerimientos No Funcionales Son aquellos requerimientos que no se refieren directamente a las funciones especficas que entrega el sistema, sino a las propiedades emergentes de ste como la fiabilidad, la respuesta en el tiempo y la capacidad de almacenamiento. De forma alternativa, definen las restricciones del sistema, como la capacidad de los dispositivos de entrada/salida y la representacin de datos que se utiliza en las interfaces del sistema. Sin embargo, estos requerimientos no siempre se refieren al sistema de software a desarrollar.
Anlisis y Diseo de Software Ing. Richard Y. Mercado Rivas
Ejemplo
Cadena de Responsabilidades Es la cadena funcional que se establece para la atencin de un requerimiento. Una cadena involucra las interacciones producto de los requerimientos de un actor externo al negocio (cliente o proveedor) con las responsabilidades de un trabajador de negocio.
CADENA DE RESPONSABILIDADES
La cadena eslabona a las unidades organizacionales de los trabajadores de negocio, que intervienen como consecuencia de las responsabilidades de cada uno y a travs de la interaccin entre ellos (cumpliendo un rol) y de estos con el actor de negocio externo (cliente o proveedor).
Casos de Uso de Negocio Un caso de uso es la cadena de interacciones entre un actor de negocio (cliente, proveedor o trabajador) y el sistema (la empresa, una unidad organizacional o un proceso del negocio) con la finalidad de satisfacer un requerimiento o alcanzar un objetivo. Una secuencia de acciones que produce un resultado de valor para un particular actor de negocio.
Identificar afectados
Para determinar quienes se vern afectados por el sistema, debemos realizar algunas preguntas.
Quin usar el sistema que se va a construir? Quin desarrollar el sistema? Quin probar el sistema? Quin documentar el sistema? Quin dar soporte al sistema? Quin dar mantenimiento al sistema? Quin mercadear, vender, y/o distribuir el sistema? Quin se beneficiar por el retorno de inversin del sistema?
Perspectivas y soluciones
Necesidad: "El cliente se queja mucho por la enorme fila que debe formar para realizar una transaccin bancaria". Perspectiva: del cliente = Prdida de tiempo del banco = Posibles prdidas de clientes Posibles soluciones:
determinar por qu demoran los cajeros colocar una nueva caja (implica contratacin de nuevos cajeros) abrir una nueva sucursal (involucra personal nuevo y estudio de mercado) realizar transacciones por otros medios (telfono, internet, mediante cajeros automticos, autobancos, etc).
Validacin Evitar elevados costos de mantenimiento Validar requerimientos definidos y del cliente Verificar caractersticas del SRS Diferencias entre Evaluacin y Validacin
Evolucin
Comprender y controlar los cambios en los req. Propuesta de cambio o problema identificado Anlisis de costos (rastreo y modificaciones) Razones del cambio: Porque al analizar el problema no se hacen las preguntas correctas a las personas correctas Porque los usuarios cambiaron su forma de pensar o sus perspectivas etc.
Tcnicas utilizadas en las actividades de IR Su objetivo es obtener los requisitos Se eligen segn el proyecto a desarrollarse 1) 2) 3) 4) Entrevistas y Cuestionarios Tormenta de Ideas Prototipos Casos de Uso
1) Entrevistas y Cuestionarios
- Consiste en que el analista formule preguntas relacionadas con varios aspectos de sistemas. - En general a: usuarios de sistemas existentes futuros usuarios gerentes empleados - Son tiles las Preguntas Abiertas
1 2 3 4 5
1) Entrevistas y Cuestionarios
Ejemplos de Preguntas Abiertas:
Del Usuario Quin es el cliente? Quin es el usuario? Son sus necesidades diferentes? Cules son sus habilidades, capacidades, ambiente? Del Proceso Cul es la razn por la que se quiere resolver este problema? Cul es el valor de una solucin exitosa? Cmo usted resuelve el problema actualmente? Qu retrasos ocurren o pueden ocurrir? Del Producto Qu problemas podra causar este producto en el negocio? En qu ambiente se usar el producto? Cules son sus expectativas para los conceptos fcil de usar, confiable, rendimiento? Qu obstculos afectan la eficiencia del sistema?
3) Prototipos
Es un modelo del Software que debe ser construido
Se capturan requerimientos Se definen los objetivos globales Se disea rapidamente, centrndose en la parte visible al usuario (ej: entradas y salidas) Se construye el prototipo Clientes y usuarios evalan el prototipo, refinando los requerimientos
3) Prototipos
Tipos de prototipos:
Prototipo rpido:
4) Casos de Uso
- Un caso de uso es la especificacin del comportamiento del sistema y de algo externo (personas, hardware, otros software) que usa sus servicios. - Ej: en sistema de Ventas -Servicio: Permitir ingresar nuevos pedidos -Evento: Cliente hace pedido -Caso de Uso: Ingresando pedido (se ejecuta cuando se produce el evento).
Mecanismo para lograr validacin pre-compromiso Es una tctica para que antes del diseo e implementacin aparezcan requerimientos:
desconocidos mal entendidos nuevos
y se validen
Prototipo evolutivo:
Todo el ciclo de vida del un producto puede ser visto como una serie incremental de prototipos. Elimina la distincin entre desarrollo y mantenimiento (mantener un sistema es tomar como prototipo el ya desarrollado).
4) Casos de Uso
Representacin:
Sistema de ventas
Crear un modelo del comportamiento del sistema Crear un modelo de los objetos Ejecutar el anlisis
Sntesis
Analizar el alcance del proyecto Modificar la definicin del sistema Administrar los cambios de requerimientos
Usa
Ingresando Pedido
Empleado de Ventas
Hereda
Obteniendo Ventas
Sistema de Estadsticas
Hereda
Sntesis
Control
Entrevistas y Cuestionarios
X X X X X X
X X
Lluvia de Ideas El cliente puede llegar a pensar que el prototipo es una versin del software que ser desarrollado. A menudo, el desarrollador hace compromisos de implementacin con el objetivo de acelerar la puesta en funcionamiento del prototipo En sistemas grandes, toma mucho tiempo definir todos los casos de uso. El anlisis de calidad depende de la calidad con que se haya hecho la descripcin inicial.
Prototipos
Casos de Uso
Representan los requerimientos desde el punto de vista del usuario. Permiten representar ms de un rol para cada afectado. Identifica requerimientos estancados, dentro de un conjunto de requerimientos.
Anlisis Jerrquico
X X
Casos de Uso
Herramientas:
Importar requerimientos de documentos Definir los atributos de los requerimientos Definir los valores de los atributos Definir links de seguimiento entre requerimientos Generar documentos en base a los requerimientos Crear grupos de usuarios con permisos para acceder a las diferentes funciones
Centradas en base de datos: Almacenan los requerimientos, atributos y seguimiento en una BD. Centradas en documentos: Usan un procesador de texto como contenedor y guardan datos en una BD
Herramientas automatizadas
RequisitePro: De IBM Rational Software
Integracin con Microsoft Word Infraestructura de base de datos Seguimiento y anlisis de requerimientos Acceso web Generacin de reportes Sealiza los requerimientos que cambiaron y los afectados por el cambio
Herramientas automatizadas
Doors: De Quality Systems and Software
Enlaces a reportes de cada requerimiento Identificacin de inconsistencias Permite compartir requerimientos entre proyectos Notificacin via mail cuando los requerimientos son revisados Estadsticas a traves de graficos Importa sus documentos a Office, HTML, texto, etc
Qu es JAD?
Podemos entenderlo como: Desarrollo compartido de aplicaciones entre usuarios e ingenieros de software. El principal elemento es la sesin reunin de gente para planificar un proyecto, disear un sistema o tomar decisiones de negocio. La sesin involucra: Agenda detallada. Ayuda visual. Facilitador. Escritor (llamado Notario). El resultado es un Documento final.
5.
Hay que asegurarse de incluir a las personas que usan los procesos (los que leen reportes, entran los datos y ven las pantallas). Cuntas personas deben asistir a la sesin?
Entre 7 y 15.
58
LOGO
6 5 4 Horas 3 por PF 2 1 0
Proyectos
Anlisis y Diseo de Software Mg. Richard Y. Mercado Rivas
10