1 Ingeniería de Requisitos
2 Temario Definiciones Requisitos Funcionales y No FuncionalesTipos de Requisitos Ingeniería de Requisitos Proceso de los Requisitos Obtención de Requisitos - Técnicas Modelado del Sistema - Técnicas Especificación de Requisitos - Documentos de Requisitos Validación – Técnicas Administración de los Requisitos Administración del cambio Medición Metodologías de Desarrollo Especificación Formal - Z 1:50
3 Bibliografía Pfleeger: Capítulo 4Ingeniería de SW - Sommerville (7ma. edición): Capítulos 6 – Requisitos del software 7 – Procesos de la Ing. de Requisitos 10 – Especificación formal IEEE Recommended Practice for Software Requirements Specifications – Std Casos de uso: Larman: Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and the Unified Process (2nd Edition) Artículos en la página: Capítulo 6 del libro de Craig Larman: Applaying UML and Patterns – 2nd Edition Capítulo 19 del libro de Alistair Cockbourn: Writting Effective Use Cases Is the clock an actor? Artículo de la revista Rational Edge UML: Introducción a UML - Artículo de la revista Rational Edge Diagramas de Actividad - Artículo de la revista Rational Edge
4 Motivación
5 Definiciones Requisitos: Ingeniería de RequisitosDescripción de los servicios que debe brindar un sistema y sus restricciones. Ingeniería de Requisitos Proceso de descubrir, analizar, documentar y verificar esos servicios y restricciones.
6 Definiciones Sistema Requisitos del Sistema Requisitos del SoftwareIncluye hardware, software, firmware, personas, información, técnicas, servicios, y otros elementos de soporte Requisitos del Sistema Son los requisitos para el sistema entero Requisitos del Software Se refieren solo al SW
7 Requisitos vs. Diseño Requisitos definen el Qué (el problema) del sistema El Diseño define el Cómo (la solución)
8 Reporte CHAOS de Standish Group `94350 orgs., 8000 proyectos (Standish Gr.1994) Causas Causas % Respuestas Requisitos incompletos 13.10% Falta de involucramiento de usuarios 12.40% Falta de Recursos 10.60% Expectativas no realistas 9.90% Falta de Soporte de Ejecutivos 9.30% Requisitos y Especificaciones cambiantes 8.70% Falta de planificación 8.10% Sistema no se precisaba más 7.50%
9 Costos de Errores en los RequisitosCosto de corregir un error en los requisitos (Boehm-Papaccio,1988)
10 Requisitos Funcionales y No FuncionalesServicios o funciones que proveerá el sistema Describen la interacción entre el sistema y su entorno Ejemplos: Se deben ingresar cédula, nombre y teléfono de cada cliente Se quiere un listado de los clientes por zona No-funcional: Restricciones a los servicios o funciones ofrecidos por el sistema Describen restricciones que limitan las elecciones para construir una solución Las consultas deben resolverse en menos de 3 segundos El lenguaje de programación debe ser Java
11 Requisitos No FuncionalesDel Producto: Especifican restricciones al comportamiento del producto Ejemplos: desempeño, confiabilidad, portabilidad, usabilidad De la Organización: Se derivan de las políticas y procedimientos existentes en la organización del cliente y en la del desarrollador Ejemplos: estándares, lenguajes de programación, método de diseño Externos: Se derivan de factores externos, como: Interoperabilidad: con otros sistemas Legislativos: privacidad, seguridad Éticos: dependen del contexto, las personas, etc
12 Requisitos - Tipos (1) Al describir requisitos se deben tener en cuenta los siguientes aspectos: Ubicación y Entorno Físicos dónde, uno o varios, restricciones ambientales Interfaces Entrada de 1 o + sistemas, Salida a 1 o + sistemas, restricciones de formato, soporte Usuarios y Factores Humanos capacidad de cada tipo de usuario, tipo de entrenamiento, facilidad de uso, posibilidad de mal uso Funcionalidad y Restricciones asociadas qué debe hacer, cuándo, modos de operación, cómo y cuándo se puede modificar el sistema, restricciones de velocidad, tiempo de respuesta, capacidad de proceso
13 Requisitos - Tipos (2) Documentación Datos Recursoscuánta, formato, para quién Datos formatos E/S, frecuencia, fuentes, destinos, calidad requerida, precisión en cálculos, flujo en el sistema Recursos materiales, personal y otros para construir, usar y mantener el sistema, habilidades de los desarrolladores, necesidades de espacio y ambientales, calendario prescrito, limitaciones en presupuesto
14 Requisitos - Tipos (3) Seguridad Aseguramiento de la Calidadcontrol de acceso a las funciones/datos, aislamiento de los programas, respaldos-frecuencia, disponibilidad-, seguridad física Aseguramiento de la Calidad Confiabilidad – tiempo medio entre fallas, robustez, tolerancia a fallas Disponibilidad - tiempo para estar operativo luego de falla- mantenimiento estando activo- tiempo máximo de no disponibilidad Mantenibilidad Portabilidad
15 Ingeniería de Requisitos
16 Ingeniería de RequisitosProceso de los Requisitos Administración de los Requisitos Línea Base de Requisitos Planificación Obtención Análisis Especificación Verificación Validación Línea base corregida Trazabilidad Administración del Cambio Planificación Línea base actual SCM Cambios en requisitos Cambios en el proyecto
17 Especificación de RequisitosProceso de Requisitos Actividades Planificación Obtención Análisis Especificación Verificación Validación Artefactos Documento de Visión Documento de Requisitos Modelo del Sistema Especificación de Requisitos
18 Participantes en el Proceso de RequisitosCliente y Usuarios Requisitos adecuados a sus necesidades Diseñadores Comprenderlos para lograr diseño que los satisfaga Supervisores del Contrato, sugieren: Hitos de Control, cronogramas Gerentes del Negocio, entienden: Impacto en la Organización Verificadores Comprenderlos para poder verificar si el sistema los satisface
19 Obtención de Requisitos
20 Especificación de RequisitosProceso de Requisitos Actividades Planificación Obtención Análisis Especificación Verificación Validación Artefactos Documento de Visión Documento de Requisitos Modelo del Sistema Especificación de Requisitos
21 Requisitos - Fuentes Necesidades del cliente, usuario, otros interesados Modelos del dominio Revisar la situación actual Organización actual y sistemas Versión actual del sistema Desarrolladores de versión anterior Documentos existentes (antecedentes) Sistemas análogos ya existentes (antecedentes)
22 Obtención & Análisis de RequisitosSe trabaja en conjunto con los usuarios y clientes Problemas comunes: No saben lo que quieren del sistema, sólo en términos generales, no conocen el costo de sus peticiones Los requisitos están en sus términos y con conocimiento implícito de su propio trabajo Distintos usuarios tienen distintos requisitos, se deben encontrar todas las fuentes Influyen factores políticos La prioridad que se da a los requisitos varía con el tiempo Aparecen nuevos requisitos
23 Brecha en la Comunicación (Scharer ’90)Según desarrolladores, los usuarios... Según usuarios, los desarrolladores... no saben lo que quieren no captan las necesidades operativas no pueden articular lo que quieren ponen excesivo énfasis en aspectos meramente técnicos muchas necesidades por motivos políticos pretenden indicarnos cómo hacer nuestro trabajo quieren todo ya no son capaces de traducir necesidades claramente establecidas en un sistema son incapaces de definir prioridades entre sus necesidades siempre dicen que no rehúsan asumir responsabilidades por el sistema siempre están pasados del presupuesto incapaces de dar un enunciado utilizable de sus necesidades siempre están atrasados no están comprometidos con los proyectos de desarrollo nos exigen tiempo y esfuerzo aún a costa de las obligaciones esenciales no aceptan soluciones de compromiso establecen estándares no realistas para la definición de requisitos no pueden mantener el cronograma son incapaces de responder rápidamente a cambios en las necesidades Debemos utilizar métodos de obtención que tengan en cuenta este “gap” en la comunicacion
24 Obtención & Análisis de Requisitos (Modelo Genérico)Priorización y negociación de requisitos Clasificación y Organización de Requisitos Relevamiento de Requisitos Documentación de Requisitos
25 Qué relevar Requerimientos del negocio:Objetivos del negocio de alto nivel. Responden a la pregunta: ¿cómo será el mundo mejor para una determinada comunidad? Categorías: beneficios financieros mejora de las operaciones de negocio posicionamiento estratégico / competitivo adoptar una nueva ley nivelado / desarrollo tecnológico. product vision statement beneficios para los stakeholders descripción de la funcionalidades en alto nivel prioridades del proyecto limitaciones del producto Documento de visión. Sirve para establecer una visión común con el cliente y para difusión del proyecto.
26 Qué relevar Reglas de negocio. - Existen independientemente del software. Aplican aunque se haga manualmente. políticas de la organización estándares algoritmos leyes y regulaciones Requisitos funcionales Requisitos no funcionales: atributos de Q interfaces externas restricciones Criterios de éxito. Pe.: que puedan desarrollar bien tareas significativas manejo de errores que satisfaga expectativas de calidad
27 Obtención de Requisitos – TécnicasInvestigar antecedentes Entrevistas individuales/grupales Encuestas/Cuestionarios Tormenta de ideas Workshop Casos de Uso Observación/Participación Prototipado
28 Investigar antecedentesEstudio, muestreo, visitas,… Buena forma de comenzar un proyecto Interna: estructura de la organización, políticas y procedimientos, formularios e informes, documentación de sistemas Externa: publicaciones de la industria y comercio, Encuentros profesionales, visitas, literatura y presentaciones de vendedores Ventajas Ahorra tiempo de otros Prepara para otros enfoques Puede llevarse a cabo fuera de la organización Desventajas Perspectiva limitada Desactualizado Demasiado genérico
29 Entrevista Individual / GrupalPasos para las Entrevistas Seleccionar participantes Aprender tanto como sea posible de antemano Preparar la entrevista Utilizar un patrón de estructura Conducirla Apertura, desarrollo, conclusión Enviar un memo con resultado Seguimiento Usar para: Entender el problema de negocio Entender el ambiente de operación Evitar omisión de requisitos Mejorar las relaciones con el cliente Ventajas Orientado a las personas Interactivo/flexible Rico Desventajas Costoso Depende de las habilidades interpersonales
30 Entrevista – Patrón para conducirlaDatos de las Personas: usuarios, interesados, disparador del proyecto ¿Qué trabajo realizan? ¿Para quién? ¿Qué interfiere con su trabajo? ¿Qué cosas hacen su trabajo mas fácil o mas difícil? Datos: entradas y salidas clave, datos ya existentes Listar las entradas y salidas ¿Cuál es el problema? ¿Cómo se resuelve ahora? ¿Como le gustaría que se resolviera? Procesos: propósito, objetivos y metas ¿Quién necesita la aplicación? ¿Cuántos usuarios la van a usar y de qué tipo? Ubicaciones: lugares involucrados, contexto de los usuarios Entorno de los usuarios, computadoras, plataformas Aplicaciones relevantes existentes Experiencia de los usuarios con este tipo de aplicación, expectativas de tiempo de entrenamiento
31 Entrevista – Patrón para conducirla (2)Evaluar confiabilidad, desempeño y soporte necesario: ¿Cuáles son las expectativas respecto a la confiabilidad? ¿Y respecto a la performance? ¿Qué tipo de mantenimiento se espera? ¿Qué nivel de control y seguridad? ¿Qué requisitos de instalación existen?, ¿cómo se distribuye el software? , ¿debe ser empaquetado? Otros ¿Existen requisitos legales, regulatorios u otros estándares que deban ser tenidos en cuenta? Factores críticos de éxito: ¿Qué se considera una buena solución? Tener en cuenta: Si el entrevistado comienza a hablar sobre los problemas existentes, no cortarlo con una próxima pregunta Luego de la entrevista y mientras los datos aún están en mente, resumir los principales req. (aprox. 3) de este entrevistado
32 Encuesta / CuestionarioNo substituye la entrevista Antes de usar el enfoque: Determinar la información que se precisa Determinar el enfoque más adecuado: Abierto, cerrado, combinado Múltiple opción, valor en escala, orden relativo Desarrollar cuestionario Probarlo con perfil típico Analizar resultado de las pruebas Su principal uso es para validar asunciones y obtener datos estadísticos sobre preferencias Ventajas Economía de escala Conveniente para quien contesta Respuestas anónimas Desventajas Menos rico Problemas por no-respuesta Esfuerzo de desarrollo
33 Observación / ParticipaciónPoco utilizado… Antes de usarlo Determinar información necesaria Comunicar a los involucrados Considerar períodos normales y atípicos Planificar las anotaciones Ventajas Confiable Muy rico Desarrolla empatía Desventajas Efecto Hawthorne Cuidado con generalizar demasiado (sesgo particular/local) Efecto hawthorneTeoria que proviene de la psicología experimental, que mantiene que una persona modficará su actitud si se siente observada, intentando comportarse de la forma que supone que el observador espera. empatía. Identificación mental y afectiva de un sujeto con el estado de ánimo de otro.
34 Tormenta de Ideas (Brainstorming)Objetivo: Lograr consenso sobre los requisitos Ayuda a la participación de todos los involucrados Permite pensar en otras ideas Un secretario saca notas de todo lo discutido Reglas No se permite criticar ni debatir Dejar volar la imaginación Generar tantas ideas como sea posible Mutar y combinar ideas
35 Tormenta de Ideas – Fase de GeneraciónLos principales stakeholders se juntan en un cuarto. Se explican las reglas. Se establece el objetivo: ¿Qué características esperan en el producto? ¿Qué servicios esperan que provea? Los objetivos permiten decidir cuando terminar. Se pide que cada participante escriba sus ideas, luego las ideas son leídas para que otros piensen en ideas relacionadas y de esa forma las ideas mutan y se combinan.
36 Tormenta de Ideas – Fase de ReducciónEl secretario lee cada idea y pregunta si es válida Si hay cualquier desacuerdo, la idea se queda Agrupamiento de ideas Nombrar los grupos Definición Se escribe una breve descripción de lo que la idea significa para la persona que la escribió Ayuda a tener un entendimiento común del requerimiento Lleva unos minutos por idea Priorización (opcional) Test de los $100: Cada persona tiene dinero para comprar ideas, se ordena según ideas más compradas Solo se puede hacer una vez Se debe limitar la cantidad a gastar en 1 sola idea
37 Sesiones de Trabajo (Workshop)Ámbito para las tormentas de ideas Preparación Venderlo a los posibles miembros de la reunión Asegurarse que asisten los stakeholders correctos Estructurar la invitación, el lugar, etc. Enviar material previo a la reunión Doc de requisitos Entrevistas, defectos de los sistemas existentes, etc. Asegurarse de enviar lo necesario, sin exagerar Organizar la Agenda Introducción Tormenta de ideas – generación Tormenta de ideas – reducción Priorización Resumen
38 Casos de Uso Formato simple y estructurado donde los usuarios y desarrolladores pueden trabajar juntos No son de gran ayuda para identificar aspectos no funcionales Mientras se definen los casos de uso, puede ser un buen momento para definir pantallas u otros objetos con los que el usuario interactúa Pueden ser usados en el diseño y en el testing del sistema No son la mejor elección: Sistemas sin usuarios y con pocas interfaces Sistemas dominados primariamente por requisitos no funcionales y restricciones de diseño Usarlo Cuando el sistema está orientado a la funcionalidad, con varios tipos de usuarios Cuando la implementación se va a hacer OO y con UML
39 Prototipado Implementación parcial, permite a los desarrolladores y usuarios: entender mejor los requisitos cuáles son necesarios, deseables acotar riesgos Prototipo desechable: El propósito es solo establecer que algo se puede hacer, luego se parte de cero en la construcción, quedando el conocimiento aprendido Prototipo evolutivo: Es implementado sobre la arquitectura del producto final, el sistema final se obtiene de evolucionar el prototipo Aspectos para los que es frecuente construir prototipos: Apariencia y percepción de la interfaz de usuario Arquitectura (riesgos tecnológicos, tiempos de respuesta) Otros aspectos riesgosos
40 Mismos datos, pero… Ingrese año: ____ mes: ____ día: ____ Julio 19982025 1 31 Ene Dic Martes 16 Oct. 2002
41 Análisis de Requisitos
42 Especificación de RequisitosProceso de Requisitos Actividades Planificación Obtención Análisis Especificación Verificación Validación Artefactos Documento de Visión Documento de Requisitos Modelo del Sistema Especificación de Requisitos
43 Análisis de RequisitosAnalizar stakeholders / clientes / usuarios Crear vistas Detallar Negociar prioridades Buscar reqs que faltan Evaluar factibilidad técnica - Prototipos Evaluar riesgos de requerimientos – En el Plan
44 Stakeholders / Clientes / UsuariosDefinir responsable de: resolución de conflictos validación Planificar reuniones de revisión de avance con el responsable. Definir proceso de resolución de conflictos pe. en alcance. Usuarios: dividirlos en clases definir representantes definir prototipos acordar responsabilidades y estrategias de colaboración con representantes
45 Especificación de RequisitosProceso de Requisitos Actividades Planificación Obtención Análisis Especificación Verificación Validación Artefactos Documento de Visión Documento de Requisitos Modelo del Sistema Especificación de Requisitos
46 Modelos o Vistas del SistemaGlosario Modelos gráficos: Modelo conceptual Diagramas de estado – para entidades complejas que pasen por distintos estados. Diagramas de Flujo de Datos (DFD) Prototipos de interfaz gráfica. – Definir docs del prototipo (reqs, diseño, CP) Casos de Prueba Tablas de Decisión Redes de Petri Casos de Uso
47 Diagramas UML UML Diagramas de Casos de Uso Diagramas de ActividadDiagramas de Estado Diagrama de Clases Modelo Conceptual
48 Tablas de Decisión Descripción dinámicaConjunto de condiciones posibles en un cierto instante Estados donde se verifica una combinación determinada de las condiciones Acciones a tomar Nro estados = 2^nro condiciones => tablas extensas Estados 1 2 3 4 5 Importe > 1000 F V Buenos Antecedentes Ya operó antes - Autorizar Crédito X Analizar antecedentes Condiciones Acciones
49 Redes de Petri Descripción dinámica Permiten describir:Concurrencia Sincronización Grafo dirigido con dos tipos de nodos: Lugares y Transiciones Arcos sólo pueden unir lugares con transiciones y transiciones con lugares
50 Redes de Petri (2) El estado inicial de una red de Petri se le llama marca, está dado por los Tokens (marcas) iniciales Significado: Transiciones: Modelan eventos o acciones Lugares con marca: Cumplimiento de una condición Transición activada: Ocurrencia del evento o ejecución de la acción L1 -Lugar con marca L2 -Lugar Transición
51 Redes de Petri (3) Transición habilitada: Existe al menos un token en cada uno de sus lugares de entrada Estado pronto para activar la transición Al activarse una transición, los tokens que activaron la transición desaparecen de los lugares de entrada y se generan tokens en los lugares de salida de la transición L3 L2 L1 L4 L5 L3 L2 L1 L4 L5 T1
52 Redes de Petri – Algunas PrimitivasConflicto L2 L1 L3 T1 T2 Secuencia Concurrencia T6 T7 T8 T9 L5 L6 L7 L8 L9 L10 L11 T10 Sincronización
53 Redes de Petri – Ejemplo: Máquina DispensadoraL2- pronta T1-Inserta moneda L1- Tiene moneda T2- rechaza moneda T4-dispensa T3- acepta moneda L3- pronto para dispensar Se dispararon las transiciones: t1,t3,t4 Otra secuencia posible seria t1,t2
54 Diagrama de Flujo de Datos (DFD)Descripción dinámica Proviene de Metodología de Análisis y Diseño Estructurado Fin de la década del 70 Usados en versión original de OMT (Rumbaugh 91), no incorporados a UML Antes de los Casos de Uso era una de las formas más usadas para describir un sistema Elementos Proceso del sistema que recibe datos y genera otros Archivo de datos (almacenamiento) Flujo de Datos Entidad Externa al sistema a modelar (actor) Proceso Datos que entran Archivo Datos que salen
55 DFD - Ejemplo Examen Médico Contabilidad Historia Clínica PacienteExperiencia y conocimiento Síntomas Examen Diagnóstico Medicación Médico Lista de exámenes y servicios brindados Diagnóstico Contabilidad Factura Exámenes y servicios Historia Clínica Precios Paciente Registro Contable
56 DFD Permite visualizar cómo fluye la información por el sistemaestá asociado a una realización particular del sistema El diagrama no es suficiente para precisar el comportamiento: por un flujo que entra a un proceso desde un archivo, ¿fluye un registro o todo el archivo? No estipula sincronización, un flujo llega a una entidad externa y otro sale ¿Están relacionados? ¿Uno es respuesta del otro? No permite definir procesos (bucles, condiciones, etc.) Se complementa con un diccionario de datos que describe: estructura de los flujos y otros detalles los procesos (lenguaje natural estructurado) con lo que el comportamiento queda determinado Permite distintos niveles de abstracción, anidando DFDs A menudo sistemas legados están documentados con DFD
57 Casos de Uso Técnica para entender y describir requisitosLos casos de uso son requisitos, describen requisitos funcionales Pone el acento en el uso del producto Describen como el sistema debe comportarse desde el punto de vista del usuario Casos de Uso como caja negra: Especifican que es lo que el sistema debe hacer sin especificar cómo debe hacerlo Se describen mediante documentos de texto Introducido por Ivar Jacobson (1992) 1:28
58 <
59 Cajero Automático - EjemploRetirar Cliente Servicio de Cajeros Actor principal: Cliente Actores: Servicio de Cajeros Caso de Uso: Retirar Descripción: Un cliente de un banco retira dinero de una cuenta a través del cajero automático utilizando una tarjeta bancaria, el Servicio de Cajeros verifica que el PIN sea válido y que el monto de la cuenta sea suficiente para realizar el retiro
60 Caso de Uso Escenario: Secuencia de acciones e interacciones entre los actores y el sistema, dando un resultado de valor observable para un actor particular También se conoce como instancia de caso de uso Es una forma particular de usar el sistema, un camino a través de un caso de uso. Caso de uso: conjunto de escenarios posibles que puede encarar un actor (o varios) con el sistema para el logro de cierto objetivo. “Un resultado observable de valor” se basa en entregar sistemas que hagan lo que las personas realmente necesitan.
61 Caso de Uso: Retirar Flujo principal:Cliente inserta una tarjeta bancaria en el lector del CA. El CA lee el código de la tarjeta y verifica que es correcto El CA pide el código de PIN de 4 dígitos EL Cliente ingresa el PIN El CA envía código de Tarjeta y PIN al SC El SC verifica que el PIN sea correcto y contesta: OK El CA despliega las distintas alternativas disponibles: retiro, depósito, consulta El Cliente elige Retiro El CA pide cuenta y monto El Cliente los ingresa CA envía código de Tarjeta, PIN, cuenta y monto al SC El SC contesta: OK El CA dispensa el dinero El CA devuelve la tarjeta El CA imprime el recibo
62 Caso de Uso : Retirar Flujo principal: (otra forma) Cliente SistemaServicio de Cajeros 1. Inserta una tarjeta bancaria en el lector del CA. 2. Lee el código de la tarjeta y verifica que es correcto 3 Pide el código de PIN de 4 dígitos 4 Ingresa el PIN 5 – Envía Id. De tarjeta y PIN 6 – Verifica que el PIN sea correcto 7- Despliega las distintas alternativas disponibles 8- Elige la opción: Retiro 9. Pide cuenta y monto 10- Ingresa cuenta y monto 11. Envía al SC el Id. Tarjeta, PIN, cuenta y monto 12 Contesta: Continuar (OK) 13 Dispensa el dinero 14 Devuelve la tarjeta 15 Imprime recibo
63 Casos de Uso Forma de encontrarlos: Mirar cada uno de los actores del sistema y preguntarse que es lo que buscan cuando usan el sistema. Recomendación: Identificarlos con un verbo. Cada caso de uso modela partes de la dinámica. Diagrama de Casos de Uso – descripción estática. 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, no son parte del análisis OO, pero son una excelente entrada para ello. Los casos de uso pueden dirigir el proceso de desarrollo. Guían el diseño, la implementación y la prueba del sistema.
64 Casos de Uso - ConceptosPrecondiciones: Establece que cosas deben ser siempre verdaderas antes de comenzar un caso de uso. No se verifican dentro del caso de uso ya que se asume que son verdaderas dentro de él. Poscondiciones: Establece que cosas ocurren al completar el caso de uso. Flujo principal: Describe el escenario del caso de uso de mayor interés para el actor. Típicamente no incluye condiciones ni bifurcaciones. Flujos alternativos: Son todos los otros escenarios; son bifurcaciones en el flujo principal. Requisitos Especiales: Son los requisitos no funcionales, atributos de calidad o restricciones específicas relacionadas con el caso de uso.
65 Caso de Uso : Retirar Flujos Alternativos :2A. La tarjeta no es válida 1. El CA devuelve la tarjeta con el mensaje “tarjeta no válida” 2. Fin CU 6A. PIN inválido y menos de 3 intentos El Cliente puede realizar tres intentos para ingresar el PIN válido. Sino, el CA retiene la tarjeta. 1. El SC contesta indicando PIN inválido 2. El CA muestra el mensaje “PIN incorrecto” y sigue en punto 3 6B. PIN inválido y 3 intentos El CA debe retener la tarjeta 2. El CA muestra el mensaje “Se le retiene la tarjeta” 3. Fin CU 9A. El CA no tiene dinero 1.La opción “Retiro” en esta situación no es una alternativa posible, y el CA despliega la advertencia: “Sin dinero”.
66 Caso de Uso : Retirar Flujos Alternativos (cont.):11A. Monto insuficiente para el cajero El monto indicado por el cliente no puede obtenerse a partir de los billetes de que dispone el CA 1 El CA despliega el mensaje “No se cuenta con ese monto en este cajero” 2 Vuelve a 9. 12A. No hay suficiente saldo en la cuenta. 1. CA despliega mensaje “Su saldo no permite extraer ese monto” 2. El CA devuelve la tarjeta 3. Fin CU 12B. No hay contacto con el Servicio de Cajeros (SC) 1. CA despliega el mensaje “sin conexión a la red de cajeros” 2 . El CA devuelve la tarjeta 12C. Enlace con el computador central se cae durante la transacción Hay que asegurar que el SC considera sólo los retiros efectivamente realizados 14A. El dinero no es retirado de la bandeja. 1. Si después de YY segundos el dinero está todavía en la bandeja, el CA lo recupera y lo deja en el depósito de dinero usado 1. Sigue en 14 14B. La tarjeta se tranca al intentar devolverla. 1. CA trata de devolverla durante xx segundos. 2. Si en ese tiempo no puede devolverla, CA avisa a mantenimiento
67 Diagrama de Casos de UsoUML provee notación para los casos de uso para ilustrar los actores, los casos de uso y las relaciones entre ellos Permite realizar un Diagrama del Contexto del Sistema Muestra los bordes del sistema Retirar Depositar Cliente Servicio de Cajeros Transferir
68 Construcción del Modelo - PasosDefinir frontera Identificar Actores Para cada Actor, identificar qué cosas quiere hacer cada uno va a determinar un caso de uso darle un nombre Dado un caso de uso Identificar si participan otros actores Describirlo brevemente de forma narrativa, centrándose en el flujo principal (distintas variantes de presentación y contenido) Una vez definido el conjunto de casos de uso relevante: Refinarlos incluyendo condiciones especiales Identificar casos de uso comunes y particulares (“incluye” y “extiende”), generalización
69 Relaciones entre CU – IncludeEscenarios comunes a más de un caso de uso El caso de uso incluído no depende del caso de uso base Cuando una instancia del caso de uso «llega al lugar» donde el comportamiento de otro caso de uso debe ser incluido, ejecuta todo el comportamiento descrito por el caso de uso incluído y luego continúa de acuerdo a su caso de uso original. El caso de uso incluido representa comportamiento encapsulado que puede ser reusado en varios casos de uso En el caso del cajero: Desconoce la existencia de los que lo usan El Caso de Uso incluído no depende del Caso de Uso base. En este sentido, el Caso de Uso incluído representa comportamiento encapsulado que puede ser reusado en varios Casos de Uso. Identificar Cliente <
70 Caso de Uso: Retirar Flujo principal:Incluye el caso de uso: Identificar Cliente El CA despliega las distintas alternativas disponibles: retiro, depósito, consulta El Cliente elige Retiro El CA pide cuenta y monto El Cliente los ingresa CA envía código de Tarjeta, PIN, cuenta y monto al SC El SC contesta: OK El CA dispensa el dinero El CA devuelve la tarjeta El CA imprime el recibo
71 Caso de Uso: Identificar ClienteDescripción Breve: Verifica que la tarjeta y el PIN sean válidos Flujo Principal: Cliente inserta una tarjeta bancaria en el lector del CA. El CA lee el código de la tarjeta y verifica que es correcto El CA pide el código de PIN de 4 dígitos EL Cliente ingresa el PIN El CA envía código de Tarjeta y PIN al SC El SC verifica que el PIN sea correcto y contesta: OK Flujos Alternativos: 2A. La tarjeta no es válida 1. El CA devuelve la tarjeta con el mensaje “tarjeta no válida” 2. Fin CU 6A. PIN inválido y menos de 3 intentos El Cliente puede realizar tres intentos para ingresar el PIN válido. Sino, el CA retiene la tarjeta. 1. El SC contesta indicando PIN inválido 2. El CA muestra el mensaje “PIN incorrecto” 3. Sigue en punto 3 6B. PIN inválido y 3 intentos El CA debe retener la tarjeta 2. El CA muestra el mensaje “Se le retiene la tarjeta” 3. Fin CU
72 Relaciones entre CU – ExtendEs un fragmento de un caso de uso, que agrega comportamiento a otro caso de uso. Se usan para explicar escenarios que sería complejo presentar como flujo alternativo, o que se desea destacar. Representan una parte de la funcionalidad del caso que no siempre ocurre (condicional). Se ejecuta solo si la condición se cumple. El caso de uso extendido referencia a su caso de uso base. Punto de extensión: Punto dentro del caso de uso, donde se puede insertar comportamiento adicional. Al terminar el caso de uso extendido, se vuelve al caso de uso base, en la sentencia siguiente al punto de extensión.
73 Extend - Ejemplo El cliente puede querer retirar monedas además de billetes <
74 Caso de Uso : Retirar Flujo principal: Puntos de Extensión:Incluye el caso de uso: Identificar Cliente El CA despliega las distintas alternativas disponibles: retiro, depósito, consulta El Cliente elige Retiro El CA pide cuenta y monto El Cliente los ingresa CA envía código de Tarjeta, PIN, cuenta y monto al SC El SC contesta: OK El Cliente pide dispensar el dinero El CA dispensa el dinero El CA devuelve la tarjeta El CA imprime el recibo Puntos de Extensión: Retiro de Monedas: En el punto 8 del flujo principal
75 Caso de Uso: Retirar MonedasDescripción Breve: El cliente opcionalmente puede querer retirar monedas Flujo Principal: Extensión de Retirar en el punto Retirar Monedas, el cliente también puede elegir “monedas”, en ese caso: El Cliente elige retirar monedas, especificando tipos de monedas y la cantidad de rollos para cada uno. El CA calcula el importe a retirar para cada moneda y el total y lo muestra El Cliente confirma Flujos Alternativos: 3A El cliente puede querer cambiar la selección, se vuelve a 1 G1 El cliente cancela el retiro de monedas. Fin CU Retirar Monedas Punto de extensión indicado por un nombre
76 Relaciones entre CU – GeneralizaciónAlgunas veces existe más de un escenario principal para un caso de uso Se puede crear un caso de uso abstracto, crear un caso de uso para cada escenario principal y que estos hereden del caso abstracto El caso de uso hijo hereda los escenarios, puntos de extensión y relaciones definidos en el caso de uso padre El caso de uso hijo puede definir nuevas operaciones, como también redefinir o enriquecer con nuevas secuencias de acciones operaciones ya existentes en el caso de uso padre El Caso de Uso hijo puede definir nuevas operaciones, como también redefinir o enriquecer con nuevas secuencias de acciones operaciones ya existentes en el Caso de Uso padre. Para distinguir si la especialización está redefiniendo una operación del padre o agregándole secuencias de acciones, sugerimos la inclusión de un estereotipo (elemento de UML) <
77 Actividades Encontrar actores y casos de usoPriorizar los casos de uso Detallar un caso de uso Estructurar el modelo de casos de uso
78 Casos de Uso - Nivel de detalle¿A qué nivel se deben expresar los CU en el análisis de requerimientos? Enfocarse en CU al nivel de Proceso de Negocio Elemental (elementary business process (EBP)): Una tarea ejecutada por una persona en un lugar en un determinado momento, en respuesta a un evento del negocio, que agrega valor de negocio mesurable y deja los datos en estado consistente. Que cumpla un objetivo del usuario. Error común: definir muchos CU a nivel demasiado bajo: por cada paso o subtarea dentro de un EBP. Excepciones: Pe. casos de uso incluidos
79 UML Unified Modeling LanguageObjetivo: Proveer un lenguaje común que puede ser usado para el desarrollo de software Lenguaje que permite: Visualizar: La comunicación es a través de gráficos Especificar: construyendo modelos para el análisis, diseño, implementación Construir: Permite la generación de código a partir de un modelo UML, y la construcción de un modelo a partir del código (ingeniería reversa) Documentar: Permite la documentación completa de todo el sistema Aprobado como estándar por la OMG en 1997 Actualmente se encuentra en la versión (nov 2007)
80 Diagramas en UML
81 Tipos de Diagramas Modelo Estático Modelo DinámicoConstruye y documenta los aspectos estáticos de un sistema. Refleja la estructura básica y estable de un sistema software. Crea una representación de los principales elementos del dominio del problema Modelo Dinámico Crea los diagramas que muestran el comportamiento de un sistema Para requisitos se utilizan los siguientes diagramas: Diagrama de Casos de Uso Diagrama de Clases (Modelo Conceptual) Diagrama de Actividad Diagramas de Estados
82 Diagrama de Casos de UsoPermite visualizar en una forma compacta los casos de uso del sistema y que actores participan en cada caso de uso Presenta las relaciones que existen entre los casos de uso Muestra los límites del sistema Visión estática de los Casos de Uso de un sistema Consta de los siguientes elementos: Actor Caso de Uso Relaciones Include Extend Generalización
83 Diagrama de Casos de Uso - Ejemplo<
84 Diagrama de Clases Muestra las clases e interfaces que componen el sistema y las relaciones que existen entre ellas Muestra aspectos estáticos Clase: conjunto de objetos que comparten: Atributos Operaciones Relaciones Semántica Modelo de Dominio (Conceptual): ayudan a entender los conceptos del dominio del problema y el vocabulario del mismo. Se excluyen detalles referentes a la implementación o al lenguaje de programación. Diagramas de clases de implementación: muestran todos los métodos y atributos necesarios para implementar cada clase. Es un diagrama dependiente de la implementación y del lenguaje.
85 Modelo del Dominio (Conceptual)Permite describir las entidades que conforman el dominio, sus relaciones y atributos Se representan los conceptos del dominio Muestra aspectos estáticos
86 Diagrama de Actividad Se construye para modelar el flujo del control (workflow) Elementos: Permite modelar el flujo del trabajo En un sistema En una organización Estado de Actividad (o de Acción) Estado Inicial Estado Final Transiciones Actividades concurrentes Bifurcaciones Condiciones de la bifurcación [ guarda ] Andariveles
87 Diagrama de Actividad - EjemploGuarda de decisión Se abren Flujos Paralelos Sincronización
88 Diagrama de Estados Muestra el comportamiento de un objeto representando los estados en que se puede encontrar y los eventos que le hace pasar de uno a otro. Se utiliza para: Modelar el estado interno de una entidad Modelar el estado de un caso de uso Da una vista dinámica del sistema Permite: Anidamiento: un estado con subestados Estados paralelos: reduce el nro. de estados necesarios en el modelo Condiciones de bifurcación
89 Diagrama de Estados – Ejemplo 1
90 Diagrama de Estados –Ejemplo 2
91 Elección de una Técnica para Modelar RequisitosNo existe un único enfoque aplicable a todos los sistemas, depende de cada proyecto Puede ser necesario combinar varios enfoques
92 Especificación de Requisitos
93 Especificación de RequisitosProceso de Requisitos Actividades Planificación Obtención Análisis Especificación Verificación Validación Artefactos Documento de Visión Documento de Requisitos Modelo del Sistema Especificación de Requisitos
94 Lenguajes de Notación Lenguaje NaturalComprensible para el Cliente/Usuario Ambiguo (glosario) Poca legibilidad (plantilla, formateo del texto) Difícil de tratar (Verificar correctitud, consistencia, completitud) Notaciones Especiales (más formales) Poca o ninguna ambigüedad Facilita tratamiento Necesidad de entrenamiento en la notación Dificultades de comprensión por Cliente/Usuario
95 Notaciones EspecialesGráficas vs. Basadas en texto Estáticas vs. Dinámicas Descripciones Estáticas Se especifican entidades y sus atributos, los requisitos se pueden ver como las relaciones entre las entidades. No describe como cambian las relaciones con el tiempo Descripciones Dinámicas Especifican estados y las transiciones entre estados en el tiempo
96 Documentación de requisitosQué documentar: lo que hace el sistema actual lo que el cliente pide lo que el sistema va a hacer criterios de aceptación criterios de verificación Recomendaciones: agrupar por temas formular los reqs como reqs positivos y no negativos expresarlos en voz activa y no pasiva indicar si se está documentando solo lo que va en el alcance o todo lo que se pidió. representar reqs. con múltiples vistas (ejemplo de los ciegos y el elefante).
97 Documentos de RequisitosDefinición de Requisitos: lista completa de lo que el cliente espera que el sistema haga, escrita de forma que el cliente la pueda entender Se debe proveer un medio para acceder a archivos externos creados por otras herramientas Especificación de Requisitos (SRS): reformula la definición en términos técnicos para que los diseñadores puedan comenzar el diseño 1.1 Se proveerá al usuario los recursos para definir el tipo de archivo externo 1.2 Cada tipo de archivo tendrá una herramienta asociada y un ícono que lo identifica 1.3 Cuando el usuario seleccione el ícono que representa un archivo externo, el efecto es aplicar la herramienta asociada con ese tipo de archivo al archivo seleccionado
98 Documentos de Requisitos (2)Usar un mismo documento: Entendimiento común entre Cliente, usuario, analistas, desarrolladores Usar dos documentos: Se debe aplicar Gestión de Configuración: necesaria para asegurar la correspondencia entre ambos (si existen por separado) Permite seguir la pista y correspondencia entre: Definición de Requisitos Especificación de Requisitos Módulos de Diseño Código que implementa los módulos Pruebas para verificar la funcionalidad Documentos que describen el sistema
99 Documento Definición de RequisitosRegistrar los requisitos en los términos del cliente 1. Delinear el propósito general del sistema: Incluir referencias a otros sistemas, glosario y abreviaciones 2. Describir el contexto y objetivos del desarrollo del sistema 3. Delinear visión global del sistema: Incluir restricciones generales 4. Definir en detalle las características del sistema propuesto, definir la frontera del sistema e interfaces. 5. Discutir el ambiente en el que el sistema va a operar (hardware, comunicaciones, personal).
100 Características de una Buena Especificación SRS (IEEE 830)Correcta / Válida: Todos los req. son requeridos en el sistema. No existe herramienta que asegure esto. Validado por el cliente (que efectivamente refleje sus necesidades). Revisar que sea consistente contra otros documentos existentes (pe. especificación de reqs. del sistema). No Ambigua: Todo req tiene una única interpretación. Incluir glosario. No ambigua para quienes lo crearon y para quienes lo usan. Completa: Incluye: Todos los requisitos asociados con funcionalidad, desempeño, restricciones de diseño, atributos o interfaces externas. Definición de respuestas del sw a todo posible datos de entrada (válidos o inválidos) en toda clase de situaciones realizables. No hay referencias sin definir en la especificación. La frase “a determinar” indica SRS no completa. Ocasionalmente necesaria; describir: condiciones que causan que no se sepa aún. qué se debe hacer para determinar lo que falta, quién y cuándo.
101 Características de una Buena Especificación SRS (IEEE 830)Consistente internamente: Los requisitos no son contradictorios entre sí. Probables conflictos: entre características de entidades. Pe. color de las luces, formatos distintos conflicto lógico o temporal entre dos acciones. Pe. multiplicar o sumar; en forma simultánea o consecutiva. diferentes términos para describir el mismo objeto. Ordenados por grado de importancia y/o estabilidad – identificador. Importancia: esencial / deseado Estabilidad: cantidad de cambios esperados Necesidad: esencial / condicional / opcional Esencial (condiciona aceptación del sw) Condicional (valor agregado) Opcional (puede o no valer la pena; se aceptan propuestas alternativas).
102 Características de una Buena Especificación SRS (IEEE 830)Verificable: Un requerimiento es verificable si existe un proceso finito de costo accesible para determinar que el sistema lo cumple Usar términos concretos y cantidades mesurables. Preparar pruebas para demostrar que se cumplen. Si no se puede, eliminar o revisar el requisto. Modificables: Su estructura y estilo son tales que cualquier cambio en los requisitos puede ser hecho fácilmente en forma completa y consistente. Organización coherente y fácil de usar (tablas, índices, refs. cruzadas No redundante. Ventajas de redundancia: lo hace más legible. Desventajas: difícil de mantener Si la uso: referencias cruzadas Expresar cada req. separadamente.
103 Características de una Buena Especificación SRS (IEEE 830)Trazables: El origen de cada requerimiento es claro, y es posible seguirle la pista en futuros desarrollos o mejora de la documentación Trazabilidad hacia atrás: en versiones previas Trazabilidad hacia adelante: documentos posteriores: requiere IDENTIFICADOR ÚNICO. Realistas / Factibles Ej.: tiempo de respuesta local=remoto Ej.: El cliente quiere adelantarse a la tecnología Entendibles: Tanto por los usuarios como por los desarrolladores
104 Verificación de Requisitos
105 Especificación de RequisitosProceso de Requisitos Actividades Planificación Obtención Análisis Especificación Verificación Validación Artefactos Documento de Visión Documento de Requisitos Modelo del Sistema Especificación de Requisitos
106 Verificación de RequisitosSe verifica en el documento de requisitos: Consistencia: que no haya contradicciones Completitud: que no falte nada. Chequear por: Omisiones. Hacer árboles de decisión para ver que estén todas las opciones detalladas. Límites. Más claro con tabla, ahí se ve que no falta ninguno. Necesidad Ambigüedades Realismo o Factibilidad: que se puedan implementar con la tecnología, presupuesto y calendario existentes. Verificabilidad: que se pueda diseñar conjunto de pruebas para demostrar que el sistema cumple esos requisitos. Cuidado con adjetivos y adverbios. Comprensibilidad: que los usuarios finales lo entiendan Adaptabilidad: que el requisito se pueda cambiar sin afectar a otros. Trazabilidad: que esté establecido el origen. Incluye verificar trazabilidad entre la especific. y el doc. de requisitos.
107 Verificación de Requisitos NO FuncionalesSon difíciles de verificar Se deben expresar de manera cuantitativa utilizando métricas que se puedan probar de forma objetiva (esto es IDEAL) Para los usuarios es difícil especificarlos en forma cuantitativa Propiedad Medida Rapidez Transacciones por seg Tamaño KB Fiabilidad Tiempo promedio entre fallas Portabilidad Número de sistemas, especificar Facilidad de uso Tiempo de capacitación
108 Verificación de requisitosDefinir quiénes, cómo, cuándo. Cómo: revisiones formales (en grupo) revisiones por pares listas de comprobación
109 Validación de Requisitos
110 Especificación de RequisitosProceso de Requisitos Actividades Planificación Obtención Análisis Especificación Verificación Validación Artefactos Documento de Visión Documento de Requisitos Modelo del Sistema Especificación de Requisitos
111 Validación de RequisitosProceso por el cual se determina si la especificación es consistente con las necesidades del cliente Se verifica en el documento de requisitos: Validez: que el usuario valide qué es lo que quiere Planificar quién (qué stakeholder) va a validar qué artefacto cómo (técnica). Ejecutar Registrar – Reporte de validación / Firma
112 Validación de RequisitosTécnicas de Validación: Manuales Lectura, Referencias cruzadas Manuales Instancias de validación formal: Entrevistas, Revisiones. Listas de Comprobación Modelos Manuales para verificar funciones y relaciones Escenarios Generación de Casos de Prueba Pruebas Matemáticas: Si se usó un lenguaje formal, por ejemplo Z Automatizadas Referencias cruzadas automáticas: Si los requisitos se expresan formalmente, las herramientas CASE verifican su consistencia Ejecución de Modelos Construcción de Prototipos
113 Revisión de RequisitosProceso manual. Se revisa el documento de requisitos buscando anomalías y omisiones: Revisiones informales: discusión informal Revisiones formales: se hace una “recorrida” del doc de req con el cliente, explicando implicancias de cada requisito. Participan representantes: del cliente: operadores, quienes realicen entradas, utilicen salidas, y sus gerentes del equipo de desarrollo: analistas de requisitos, diseñadores, encargados de pruebas y gestión de configuración Incluye: revisar objetivos del sistema evaluar alineamiento de requisitos con los objetivos (necesidad) revisar el ambiente de operación y las interfaces con otros sistemas funciones completas, restricciones realistas evaluar riesgos considerar: pruebas del sistema cambios en los requisitos en el proyecto, su verificación y validación ¿Cómo asegurar que la reunión es efectiva? Moderador, secretario y responsables por acciones
114 Ingeniería de RequisitosProceso de los Requisitos Administración de los Requisitos Línea Base de Requisitos Planificación Obtención Análisis Especificación Verificación Validación Línea base corregida Trazabilidad Administración del Cambio Planificación Línea base actual SCM Cambios en requisitos Cambios en el proyecto
115 Administración de los RequisitosLos requisitos cambian, debido a: Muchos usuarios Quienes pagan por el sistema y los usuarios no son las mismas personas Cambios en el negocio Cambios en la tecnología Proceso de comprender y controlar los cambios en los requisitos del sistema Se hace en paralelo con el Proceso de Requisitos. Tres etapas: Planificación: Se realiza al comenzar el análisis de requisitos Administración del cambio: Comienza una vez que se tiene una primera versión del documento de requisitos Trazabilidad: Se mantiene a lo largo del proceso de requisitos
116 Planificación Muchas actividades son tomadas de las técnicas de SCMSe debe decidir sobre: Identificación de Requisitos: Cada requisito debe identificarse en forma única, para poder ser referenciado por otros. Ejemplo:
117 Trazabilidad Información de rastreo que se debe mantenerLa fuente: Quién propuso el requerimiento y porqué Requisitos dependientes: Vincula los requisitos dependientes entre sí, se usa para el análisis del cambio Trazabilidad entre artefactos distintos, qué versión se corresponde con cuál. Pe.: Rastreo reqs - CU Rastreo al diseño: Vincula el req con los módulos de diseño que lo implementan Uso de matrices de trazabilidad
118 Administración del CambioEl cambio va a ocurrir. Objetivos del control de cambios: Manejar el cambio y asegurar que el proyecto incorpora los cambios correctos por las razones correctas. Anticipar y acomodar los cambios para producir la mínima disrupción y costo. Si los reqs cambian mucho dp de LB relevamiento incompleto/inefectivo o acuerdo prematuro
119 Administración del CambioCuando se propone un cambio, debe evaluarse el impacto. Etapas: Especificación del cambio Evaluar impacto - Análisis del cambio y costo: Se usa la información del rastreo Se calcula el costo en términos de modificaciones a: Docs de requisitos Diseño e implementación Discutir costo con cliente. Implementar el cambio: se modifican los artefactos necesario Siguiendo estos pasos se logra Todos los cambios se tratan en forma consistente Los cambios a los docs de requisitos se hacen en forma controlada
120 Procedimiento de control de cambiosEstablecer procedimiento de control de cambios: quién - Comité de Control de Cambios (CCC) documentar: integración del CCC alcance de autoridad procedimientos operativos (pe. evaluar impacto) proceso de toma de decisiones
121 Gestión de la Configuración de los RequisitosTiene que haber un responsable Control de versiones: Definir: Ítems de configuración Procedimientos Línea Base. Definición: Conjunto de especificaciones y /o productos que han sido revisados formalmente y acordados, que sirven de base para desarrollo futuro, y que solo pueden ser cambiados a través de procedimientos formales de control de cambios.
122 Línea Base de RequisitosLB de reqs, arranca cuando se decide que son suficientemente buenos como para arrancar diseño y construcción. Sobre LB planifico cronograma y costo. Asociada a la liberación de un producto. Debo poder recomponer la liberación. Definir: qué artefactos van en Línea Base cuándo entran
123 Medir y Evaluar RequisitosMedir características de los requisitos para obtener detalles Proceso de los Requisitos Calidad de los Requisitos Las mediciones van a estar relacionadas con: Producto (de los requisitos) tamaño, calidad, atributos técnicos, .... Proceso actividades,... Recursos personas, equipos, tiempo, dinero,...
124 Medir y Evaluar RequisitosEntrada para estimación del producto # Cambios introducidos Requisitos Agregados, Modificados, Desechados en el tiempo Estabilidad # Requisitos por tipo de requisitos Permite luego ver en qué parte se encuentra el cambio # Requisitos validados Tamaño del producto y del proyecto (ej.:PF, LoC) planificar
125 Metodologías de Desarrollo
126 Metodologías de DesarrolloLos métodos ágiles fueron desarrollados en respuesta a la necesidad de tener una alternativa a los procesos de desarrollo de software pesados, “guiados por documentos” (AgileAlliance 2002) Cada metodología trata distinto los requisitos Ejemplo de metodología ágil: eXtreme Programming (XP) Ejemplo de metodología pesada: Rational Unified Process
127 eXtreme Programming Cliente en el lugar Historias de usuarioUn cliente real debe sentarse en el lugar, disponible para escribir historias, contestar preguntas, resolver disputas y prioridades de pequeña escala. Historias de usuario Su propósito es análogo al de los casos de uso Son escritas por el cliente, son las cosas que el sistema debe hacer No son casos de uso, pero describen escenarios Su formato son tres sentencias de texto escritas por el cliente, en su terminología sin sintaxis técnica. Cuando llega el momento de implementarla, los dasarrolladores van con el cliente y reciben una descripción detallada de los requisitos, cara a cara Se usan para planificar el proyecto: se estiman y el cliente las prioriza definiendo el alcance
128 Rational Unified Process – Disciplina de Requisitos
129 RUP – Detalle de Actividades
130 Especificación FormalVentajas: Permite detectar omisiones e inconsistencias en los requisitos Detección temprana de defectos Necesario para demostrar que un programa es correcto Desventajas: Exige entrenamiento En general no es comprensible para el cliente Funcionan bien en escalas reducidas, pero se complican a medida que crece la escala del producto Su aplicación suele estar restringida a sistemas críticos Los metodos formales no son exitosos debido a: * Cambios en el mercado * Alcance limitado de los metodos formales * interfaces * interacciones * Problemas de Escalabilidad ( se usa solo para nucleo critico)
131 Sistema crítico, un ejemploBomba personal de insulina que intenta emular el comportamiento del páncreas (alternativa frente a inyecciones de insulina) Un sensor mide el nivel de azúcar en la sangre Requisitos relativos a la criticidad Disponibilidad – el sistema debe funcionar cuando el paciente necesite insulina Confiabilidad – debe proveer insulina en momento y cantidad adecuada Seguridad (safety) – una dosis excesiva podría poner en riesgo la vida del paciente Many safety-critical systems such as the control system for a chemical plant or a nuclear reactor, the control software on aircraft, etc. are not price sensitive. That is, they are part of larger installations that are very expensive and that are produced in relatively small numbers. Therefore, adding to the cost through redundant hardware and software is not usually a problem. Medical devices, on the other hand, are often mass-produced devices and so have to be price-sensitive. Furthermore, they are often portable devices and so are weight sensitive and power-sensitive. They are battery powered rather than mains powered. All of this has implications for the hardware and software. The chip count must be minimised as chips add weight, cost and power drain. There is unlikely to be scope for hardware replication and software redundancy.
132 Bomba de Insulina - ComponentesFuente de Energía Controlador aguja bomba Sensor Alarma Pantalla reloj Depósito Conectado a la bomba, inyecta insulina en el cuerpo Bombea insulina del depósito a la aguja Mide nivel de azúcar en la sangre Suena en caso de problemas Muestra la ultima lectura de azúcar y mensajes de estado Controla todo el sistema The arrows in this diagram means that there is some communication between these components. The controller is a software component. In fact, as we shall see later, the system has two displays plus buttons that signal the controller to take certain actions. The pump delivers a single increment of insulin on receipt of a signal pulse from the controller. Therefore, to deliver 6 insulin increments, 6 pulses are sent to the pump unit. The pump unit includes a pressure sensor so that if the needle assembly is blocked then insulin delivery will be halted
133 Concepto de Operación A partir de la lectura del sensor, el sistema evalúa el nivel de glucosa en sangre del paciente El sistema compara lecturas consecutivas para detectar una posible tendencia al crecimiento del nivel. En este caso inyecta insulina para actuar en contra de esa tendencia La situación ideal es que el nivel de azúcar se encuentre sistemáticamente en la banda de seguridad Niveles de azúcar en sangre: Inseguro – menos de 3 unidades (posible coma) Seguro- entre 3 y 7 unidades No deseable (más de 7 unidades) Nota: los valores mencionados sólo son a título ilustrativo
134 Inyección de Insulina Según nivel de azúcar, tendencia e inyecciones anteriores Escenarios relativos al nivel de azúcar en sangre: en la banda insegura No inyectar Alarma para el paciente en las otras dos bandas cayendo En banda segura – no inyectar En banda no deseable – si cae tasa de descenso, inyectar estable En banda no deseable – inyectar de acuerdo a lo indeseado del nivel creciendo En la banda segura – inyectar si tasa de crecimiento constante o creciente En banda no deseable –inyectar de acuerdo a la tasa de crecimiento
135 Lenguaje de Especificación ZSe han desarrollado diversos lenguajes y herramientas para la especificación (y verificación) de software. Z (Hayes 87, Spivey 92) está basado en la teoría de conjuntos tipados modela un sistema en base a conjuntos y sus relaciones introduce elementos que facilitan la especificación de pre y post condiciones asociadas a estados los modelos se construyen a partir de “esquemas” Esquema: Introducen variables de estado y definen restricciones y operaciones sobre los estados Una especificación es representada como un conjunto de esquemas Los esquemas pueden ser combinados y usados en otros esquemas
136 Lenguaje de Especificación ZSchema signature: Declara nombres y tipos de las entidades Schema predicate: Define relaciones entre las entidades de la signature mediante expresiones lógicas que deben ser verdaderas (invariantes) contents <= capacity Container contents: capacity: Schema name Schema signature Schema predicate Si el esquema define una operación, el predicado define las pre y post condiciones
137 Lenguaje de Especificación ZNombres seguidos por ? son entradas y por ! , salidas Nombre seguido por ‘ significa el valor después de la operación X precediendo a un nombre significa que los valores no son cambiados por la operación D precediendo a un nombre significa que los valores son cambiados por la operación Incluir el esquema A en el esquema B significa que B hereda los nombres y predicados de A
138 Z para la bomba de insulinaConjunto de variables de estado: reading? : Lectura del sensor de glucosa en la sangre dose, cumulative_dose: dosis a suministrar y dosis acumulada en un período r0, r1, r2: 3 últimas lecturas, se usa para calcular la razón del cambio de glucosa en la sangre Capacity: capacidad del depósito alarm!: alarma pump!: señal de control enviada a la bomba display1!, display2! : msg de estado y dosis a administrar Para la bomba de insulina: dosis<=contenido del depósito dosis<=5 unidades y suma de dosis en período <=50 display1! muestra el estado del depósito
139 Esquema para la bomba de insulina_ p m r e a d i n g ? : o s , c u m l t v _ 1 2 / p y ! { f } S T R I N G Ù 5 4 Þ = " 3 9 na baja” a muy baja” para registrar las 3 últimas lecturas tomadas <= >=
140 ‘ aplicado a una variableCálculo de la dosis ( r - 1 ) Ú d o s e = 2 * 4 Ù > c a p i t y ' u m l v _ + D O S A G E I n P < >= <= Delta indica que cambia el estado El programa: Compara el valor actual del nivel de azúcar con los dos anteriores si está subiendo, la bomba inyecta insulina mantiene total de insulina inyectada para controlar el máximo seguro ‘ aplicado a una variable refiere al valor luego de cambiar el estado = r 2
141 Esquemas de Salida D I S P L A Y n s u l i _ m p d a y 2 ! ' = N t o rModelan lo que despliega el sistema: La pantalla muestra la dosis calculada y un mensaje de advertencia La alarma suena si el azúcar en la sangre es muy baja -debe ingerir azúcar D I S P L A Y n s u l i _ m p d a y 2 ! ' = N t o r g ( e ) Ù ? < 3 Þ 1 " Azúcar baja” Ú > O K >= <= Azúcar muy baja” Nat_to_string: función de conversión A L R M D I n s u l i _ P m p ( r e a d g ? < 3 Ú > ) Þ ! ' = o Ù f >= <=