SlideShare ist ein Scribd-Unternehmen logo
1 von 132
Ingeniería de Requisitos
Temario
 Definiciones
 Requisitos Funcionales y No Funcionales
 Tipos 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 y Verificación– Técnicas
    Administración de los Requisitos
       Planificación
       Trazabilidad
       Administración del cambio
       Medición
  Metodologías de Desarrollo
2 Especificación Formal - Z
Bibliografía
 Pfleeger: Capítulo 4
 Ingenierí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
  830-1998.
 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:
     http://www.uml.org/
     Artículos en la página:
       Introducción a UML - Artículo de la revista Rational Edge
       Diagramas de Actividad - Artículo de la revista Rational Edge
3
Motivación




4
Definiciones

     Requisitos:
       Descripció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.




5
Definiciones
     Sistema
       Incluye 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




6
Requisitos vs. Diseño

     Requisitos definen el Qué (el problema) del sistema


     El Diseño define el Cómo (la solución)




7
Reporte CHAOS de Standish Group
    `94
 350 orgs., 8000 proyectos                            Causas
    (Standish Gr.1994)                                                                %
                                                            Causas                Respuestas
                                                 Requisitos incompletos            13.10%
                                      16.2       Falta de involucramiento de
        31.1
                                                 usuarios                          12.40%
                                                 Falta de Recursos                 10.60%
                                      52.7
                                                 Expectativas no realistas          9.90%

               Proyecto terminado en tiempo
                                                 Falta de Soporte de Ejecutivos     9.30%
               Proyecto terminado con retrasos   Requisitos y Especificaciones
               Proyecto cancelado
                                                 cambiantes                         8.70%
                                                 Falta de planificación             8.10%
                                                 Sistema no se precisaba más        7.50%
                                                                                   39.2 %



8
Costos de Errores en los
       Requisitos
 Costo de corregir un error en los requisitos (Boehm-
  Papaccio,1988)
                                                 Costo en USD


               250                                                                     200
               200
               150
               100
                50                       5            10              20
                            1
                 0




                                                                     Prueba Unitaria




                                                                                       Producción
                                                      Codificación
                                        Diseño
                     Requerimientos
                      Análisis y Esp.




 9
Requisitos Funcionales y No Funcionales
  Funcionales:
    Servicios 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
      Ejemplos:
        Las consultas deben resolverse en menos de 3 segundos
        El lenguaje de programación debe ser Java



10
Requisitos No Funcionales
      Del 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



11
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


12
Requisitos - Tipos (2)
      Documentación
        cuá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


13
Requisitos - Tipos (3)
      Seguridad
        control 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
         Seguridad
         Portabilidad




14
Ingeniería de Requisitos

 Ingeniería de Requisitos es un enfoque sistémico para
recolectar, organizar y documentar los requerimientos
   del sistema; es también el proceso que establece y
        mantiene acuerdos sobre los cambios de
   requerimientos, entre los clientes y el equipo del
                        proyecto
Ingeniería de Requisitos
                                              Ingeniería de Requisitos



      Proceso de los Requisitos                                         Administración de los Requisitos




                                                                                      Requisitos
                                                                                      Línea Base de
            Obtención   Análisis       Especificación   Validación    Verificación




                                                                                             Línea base corregida

                                                         Medición y
                                   Trazabilidad                                                                Administración
                                                         Evaluación
     Planificación                                                                                               del Cambio
                                                                                           Línea base actual




                                                           SCM

16                                                                                   Cambios en                     Cambios
                                                                                     requisitos                     en el proyecto
Proceso de Requisitos

                                                                             Actividades


Planificación    Obtención     Análisis    Especificación        Validación      Verificación




                                                                              Artefactos

     Documento        Documento
         de               de              Modelo del        Especificación
       Visión          Requisitos          Sistema          de Requisitos



17
Participantes en el Proceso
       de Requisitos
  Cliente 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



18
Obtención de Requisitos
                                 Elicitation

se identifican todas las fuentes de requisitos implicadas en el sistema y, en
función de las características del entorno y del proyecto se emplean las
técnicas más apropiadas para la identificación de las necesidades que deben
satisfacerse
Proceso de Requisitos

                                                                             Actividades


Planificación    Obtención     Análisis    Especificación        Validación      Verificación




                                                                              Artefactos

     Documento        Documento
         de               de              Modelo del        Especificación
       Visión          Requisitos          Sistema          de Requisitos



20
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)




21
Obtención & Análisis de
       Requisitos
  Se 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



22
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    siempre dicen que no
sus necesidades
rehúsan asumir responsabilidades por el       siempre están pasados del presupuesto
sistema
incapaces de dar un enunciado utilizable de   siempre están atrasados
sus necesidades
no están comprometidos con los proyectos      nos exigen tiempo y esfuerzo aún a costa de las
de desarrollo                                 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
                                                                                       23
Obtención & Análisis de
     Requisitos (Modelo Genérico)


           Clasificación y   Priorización y
           Organización      negociación de
           de Requisitos     requisitos




            Relevamiento       Documentación
            de Requisitos      de Requisitos




24
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.
25
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
26
    que satisfaga expectativas de calidad
Obtención de Requisitos –
Técnicas
      Investigar antecedentes
      Entrevistas individuales/grupales
      Encuestas/Cuestionarios
      Tormenta de ideas
      Workshop
      Casos de Uso
      Observación/Participación
      Prototipado




27
Investigar antecedentes
  Estudio, 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                               Desventajas
      Ahorra tiempo de otros                  Perspectiva limitada
      Prepara para otros enfoques             Desactualizado
      Puede llevarse a cabo fuera             Demasiado genérico
       de la organización
28
Entrevista Individual / Grupal
 Usar para:                                      Pasos para las Entrevistas
        Entender el problema de negocio            Seleccionar participantes
        Entender el ambiente de operación             Aprender tanto como sea posible de
        Evitar omisión de requisitos
        Mejorar las relaciones con el cliente           antemano
 Ventajas                                           Preparar la entrevista
      Orientado a las personas                        Utilizar un patrón de estructura
      Interactivo/flexible                          Conducirla
      Rico                                            Apertura, desarrollo, conclusión
 Desventajas                                        Enviar un memo con resultado
      Costoso
                                                     Seguimiento
      Depende de las habilidades interpersonales




29
Entrevista – Patrón para
        conducirla
  Datos 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

30
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
31
Encuesta / Cuestionario
  No 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                                           Desventajas
       Economía de escala                                   Menos rico
       Conveniente para quien contesta                      Problemas por no-respuesta
32     Respuestas anónimas                                  Esfuerzo de desarrollo
Observación / Participación
  Poco utilizado…
  Antes de usarlo
      Determinar información necesaria
      Comunicar a los involucrados
      Considerar períodos normales y atípicos
      Planificar las anotaciones



  Ventajas                                Desventajas
       Confiable                             Efecto Hawthorne
       Muy rico                              Cuidado con generalizar
       Desarrolla empatía                     demasiado (sesgo
                                               particular/local)
33
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



34
Tormenta de Ideas – Fase de
Generación
      Los 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.



35
Tormenta de Ideas – Fase de
Reducción
  El 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

36
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

37
Casos de Uso
      Técnica para entender y describir requisitos
      Los 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 qué es lo que el
         sistema debe hacer, sin especificar cómo debe hacerlo
        Se describen mediante documentos de texto
        Introducido por Ivar Jacobson (1992)


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




  Usarlo                                 No son la mejor elección:
      Cuando el sistema está                 Sistemas sin usuarios y con
       orientado a la funcionalidad,           pocas interfaces
       con varios tipos de usuarios           Sistemas dominados
      Cuando la implementación se             primariamente por requisitos
       va a hacer OO y con UML                 no funcionales y restricciones
39
                                               de diseño
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                                                    Julio 1998
               año:    ____

               mes:    ____

               día:    ____




                               1998                   2025


                               1                          31


                              Ene                         Dic
                                    Martes 16 Oct. 2002

41
Análisis de Requisitos

Una vez obtenida la información 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 límites del sistema y definir su interacción
                      con el entorno
Proceso de Requisitos

                                                                             Actividades


Planificación    Obtención     Análisis    Especificación        Validación      Verificación




                                                                              Artefactos

     Documento        Documento
         de               de              Modelo del        Especificación
       Visión          Requisitos          Sistema          de Requisitos



43
Análisis de Requisitos
      Analizar 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 / Usuarios

                                     Usuarios


                                                Clientes

                                             Stakeholders

  Clientes:                                          •     Usuarios:
      Definir responsable de:
                                                               dividirlos en clases
         resolución de conflictos
         validación
                                                               definir representantes
      Planificar reuniones de revisión de
                                                               definir prototipos
       avance con el responsable.                              acordar responsabilidades y
      Definir proceso de resolución de                         estrategias de colaboración
       conflictos pe. en alcance.                               con representantes

45
Proceso de Requisitos

                                                                             Actividades


Planificación    Obtención     Análisis    Especificación        Validación       Verificación




                                                                              Artefactos

     Documento        Documento
         de               de              Modelo del        Especificación
       Visión          Requisitos          Sistema          de Requisitos



46
Modelos o Vistas del Sistema
      Glosario
      Modelos gráficos:
          Modelo conceptual
          Diagramas de estado – para entidades complejas que pasen por
           distintos estados.
      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 Actividad
       Diagramas de Máquinas de Estado
       Diagrama de Clases
         Modelo Conceptual




48
Casos de Usos

  Un Caso de Uso es una descripción de un
conjunto de secuencia de acciones, incluyendo
variantes, que ejecuta un sistema para producir
un resultado observable de valor para un actor
Casos de Uso
 Técnica para entender y describir requisitos
 Los casos de uso describen requisitos funcionales
 Describen como el sistema debe comportarse desde el punto
    de vista del usuario
   Pone el acento en el uso del producto
   Casos de Uso como caja negra: Especifican qué es lo que el
    sistema debe hacer, sin especificar cómo debe hacerlo
   Se describen mediante documentos de texto
   Introducido por Ivar Jacobson (1992)



                                                                 50
Actor
 Entidad externa que interactúa con el sistema (persona identificada
    por un rol o sistema externo)
   Actor principal: Sus objetivos son cumplidos al realizar el caso de
    uso
   Los actores son externos al sistema que vamos a desarrollar.
   Al identificar actores estamos delimitando el sistema
   Usuario: persona que cuando usa el sistema, asume un rol.




                                              <<actor>>
                                               Sistema
                                                                          51
                       Actor
Cajero Automático - Ejemplo


                          Retirar
         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
                                                           52
Caso de Uso                                          Ca so d e Uso
 Escenario:
   Secuencia de acciones e interacciones entre los actores y el sistema,
    dando un resultado de valor observable para un actor particular
   Es una instancia de un 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.



                                                                            53
Caso de Uso: Retirar
Flujo principal:
2.    Cliente inserta una tarjeta bancaria en el lector del CA.
3.    El CA lee el código de la tarjeta y verifica que es correcto
4.    El CA pide el código de PIN de 4 dígitos
5.    EL Cliente ingresa el PIN
6.    El CA envía código de Tarjeta y PIN al SC
7.    El SC verifica que el PIN sea correcto y contesta: OK
8.    El CA despliega las distintas alternativas disponibles: retiro,
      depósito, consulta
9.    El Cliente elige Retiro
10.   El CA pide cuenta y monto
11.   El Cliente los ingresa
12.   CA envía código de Tarjeta, PIN, cuenta y monto al SC
13.   El SC contesta: OK
14.   El CA dispensa el dinero
15.   El CA devuelve la tarjeta
16.   El CA imprime el recibo                                           54
Caso de Uso : Retirar
     Flujo principal: (otra forma)
                Cliente                                Sistema                            Servicio 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
                                                                                                                     55
                                        15 Imprime recibo
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.
   Nombre del CU: Verbo activo.
   Cada caso de uso modela partes de la dinámica.
   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.



                                                                       56
Casos de Uso - Conceptos
 Precondiciones: 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.

                                                                              57
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
   1. El SC contesta indicando PIN inválido
   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”.
   2. Fin CU
                                                                                          58
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
    3. Fin CU
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
   3. Fin CU

                                                                                                            59
Diagrama de Casos de Uso
 UML provee notación para los casos de uso para ilustrar los actores, los casos de uso
  y las relaciones entre ellos
 Muestra los bordes del sistema. Permite realizar un Diagrama del Contexto del
  Sistema
 Descripción estática




                                        Retirar




                   Cliente             Depositar
                                                            Servicio de Cajeros



                                                                                      60
                                       Transferir
Construcción del Modelo -
Pasos
 Definir 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

                                                                              61
Relaciones entre CU –
Include
 Escenarios 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
                                                                Desconoce la
 En el caso del cajero:
                                                              existencia de los
                               Identificar Cliente                       que lo usan
                 <<include>>
                                                     <<include>>
                                 <<include>>



               Retirar
                                                                   Transferir          62
                                    Depositar
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
                                                           63
Caso de Uso: Identificar
     Cliente
Descripción Breve:
      Verifica que la tarjeta y el PIN sean válidos
Flujo Principal:
      r    Cliente inserta una tarjeta bancaria en el lector del CA.
      u    El CA lee el código de la tarjeta y verifica que es correcto
      i    El CA pide el código de PIN de 4 dígitos
      d    EL Cliente ingresa el PIN
      s    El CA envía código de Tarjeta y PIN al SC
      g    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
   1. El SC contesta indicando PIN inválido
   2. El CA muestra el mensaje “Se le retiene la tarjeta”
   3. Fin CU

                                                                                                       64
Relaciones entre CU – Extend
 Es 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.
                                                                          65
Extend - Ejemplo
 El cliente puede querer retirar monedas además de billetes



                 <<include>>


                               Identificar Cliente
         Retirar <<extend>>




                            Retirar Monedas

                                                               66
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 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                   67
Caso de Uso: Retirar
Monedas
Descripción Breve: El cliente opcionalmente puede querer
   retirar monedas                      Punto de extensión
                                      indicado por un nombre
Flujo Principal:
Extensión de Retirar en el punto Retirar Monedas, el cliente
    también puede elegir “monedas”, en ese caso:
4.   El Cliente elige retirar monedas, especificando tipos de monedas y la cantidad
     de rollos para cada uno.
5.   El CA calcula el importe a retirar para cada moneda y el total y lo muestra
6.   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


                                                                                68
Relaciones entre CU –
      Generalización
 Algunas 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


                                      Validar Cliente




                    Validar con PIN             Validar con Scaner de Retina   69
Actividades
 Encontrar actores y casos de uso
 Priorizar los casos de uso
 Detallar un caso de uso
 Estructurar el modelo de casos de uso




                                          70
Casos de Uso - Nivel de
detalle
  ¿ qu é nivel se d eben expresar los CU en el an álisis d e
   A
  requerim ientos?

 E nfocarse en CU al nivel d e Proceso d e N egocio E lem ental
  (elementary business process (E BP)):

    U na tarea ejecutad a por una persona en un lugar en un d eterm inad o
    m om ento, en respuesta a un evento d el negocio, que agrega valor d e
    negocio m esurable y d ej los d atos en estad o consistente.
                             a

 Que cum pla un obj   etivo d el usuario.
 E rror com ún: d efinir m uchos CU a nivel d em asiad o baj por
                                                             o:
  cad a paso o subtarea d entro d e un E BP.
 E xcepciones: Pe. casos d e uso incluid os



                                                                       71
UML

  Un lenguaje de modelado para la especificación,
visualización, construcción y documentación de los
   artefactos de un proceso de software intensivo
UML
 Unified Modeling Language
 Objetivo: 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 2.1.2 (nov 2007)




                                                                                 73
Diagramas en UML




                   74
Tipos de Diagramas
 Modelo Estático
   Construye 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 Máquinas de Estado


                                                                           75
Diagrama de Casos de Uso
 Permite 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




                                                                  76
Diagrama de Casos de Uso -
Ejemplo


                    <<extend>>

                                    Retirar Monedas

                         <<include>>
          Retirar                                        Validar con PIN

Cliente               <<include>>
                                       Validar Cliente
          Depositar
                         <<include>>
                                                   Validar con Scaner de Retina



            Transferir

                                                                           77
Nombre Clase

                                                                     Atributos



Diagrama de Clases
                                                                   Operaciones




 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.

                                                                                  78
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

     Cliente.                          Banco                        Cajero.
      nombre                           Nombre                        saldo
                                                    1         n

           0..1      expide                1                               1
     usa                           1
                                                                     realiza
          0..n                            n
                    n                                                      n
     Tarjeta
                                       Cuenta      1      n       Transacción
     Número             tiene          s aldo                     monto
     PIN          0.. 1     0..n




                                                Retiro.                         Transferencia.
                                                                   Depósito.
                                                                                                 79
Diagrama de Actividad
 Se construye para modelar el flujo del control (workflow)
 Elementos:
           Estado de Actividad (o de Acción)
           Estado Inicial
           Estado Final
           Transiciones
           Actividades concurrentes
           Bifurcaciones
           Condiciones de la bifurcación       [ guarda ]
           Andariveles
 Permite modelar el flujo del trabajo
   En un sistema
   En una organización

                                                              80
Diagrama de Actividad -
 Ejemplo

Guarda de
 decisión



                        Se abren Flujos
                           Paralelos




                   Sincronización

                                          81
Diagrama de Máquinas 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 durante su ciclo de vida
      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



                                                                             82
Diagrama de Estados
 Transición.
   la etiqueta tiene tres partes optativas: Evento {Guardia} / Acción
 Los estados:
   pueden tener actividades asociadas. Etiqueta con la sintaxis hace / Actividad.
   estado inicial o de creación
   estado final – aquél que no tiene transiciones de salida
 Las acciones:
   se asocian con las transiciones
   se consideran como procesos que suceden con rapidez y no
    se pueden interrumpir.
 Las actividades:
   se asocian con los estados
   pueden tardar más.
   Una actividad puede ser interrumpida por algún evento.


                                                                               83
Diagrama de Estados




                      84
Diagrama de Estados
 Una transición sin evento en su etiqueta se da tan pronto como se
  completa cualquier actividad asociada con el estado dado.
 Guardias:
   Un guardia es una condición lógica que devuelve "verdadero" o "falso." Una
    transición de guardia ocurre sólo si el guardia es "verdadera".
   Transición no guardada: la transición ocurrirá siempre que tenga lugar el
    evento.
   Sólo se puede tomar una transición de un estado dado, por lo que los
    guardias deben mutuamente excluyentes para cualquier evento.
   No es necesario que formen un conjunto completo.




                                                                                85
Diagrama de Estados




                      86
Diagrama de Estados -
Superestados
                         Los subestados
                          heredan todas las
                          transiciones sobre
                          el superestado.
                         A menos que haya
                          un estado inicial.




                                    87
Diagrama de Estados –
      Ejemplo 1
                   ingreso PIN [PIN incorrecto]




Esperar    ingreso tarjeta     Pedir PIN
 Tarjeta

                     ingresar PIN[ PIN correcto ]



                              Seleccionar                              Verificar       fondos insuficientes     Devolver   retiro de tarjeta
                             cuenta y monto   ingreso cuenta y monto    fondos                                   Tarjeta


                                                      contesta[ fondos suficientes ]


                                                                                                efect ivo retirado
                                                                            Dar Dinero

                                                           Contar        dinero suficiente    Dispensar




                                                                                                                                      88
Diagrama de Estados
 Si un estado responde a un evento con una acción que no produzca
  una transición, se coloca nombreEvento/nombreAcción en el cuadro de
  estado.
 Existen también dos eventos especiales, entrada y salida.
   Cualquier acción que esté vinculada al evento entrada se ejecuta siempre que se
    entre al estado. Sintaxis entry/nombreAcción
   La acción asociada con el evento salida se ejecuta siempre que se sale del estado.
    Sintaxis exit/nombreAcción
  El poder indicar acciones al entrar o salir de un estado es útil porque
  evita documentar la misma acción para cada transición de entrada o
  salida del estado.
 En una autotransición se ejecuta:
     la acción de salida
     la acción de transición
     la acción de entrada.
     actividad asociada al estado
                                                                                         89
Diagrama de Estados




                      90
Diagrama de Estados – Estados
concurrentes
                       Los diagramas de estados
                        concurrentes son útiles cuando un
                        objeto dado tiene conjuntos de
                        comportamientos independientes.
                       Recomendación:
                        Si se tienen varios diagramas de
                        estados concurrentes complicados
                        para un solo objeto, considerar la
                        división del objeto en varios.




                                               91
Diagrama de Estados
   Son buenos para describir el comportamiento de un objeto
    a través de varios casos de uso.
   No son tan buenos para describir un comportamiento que
    involucra cierto número de objetos que colaboran entre
    ellos.




                                                          92
Elección de una Técnica para
     Modelar Requisitos

 No existe un único enfoque aplicable a todos los sistemas,
  depende de cada proyecto

 Puede ser necesario combinar varios enfoques




                                                               93
Especificación de Requisitos
       Cuando ya se conoce el entorno del cliente y sus necesidades, es
     necesario plasmarlas en forma de requisitos en los documentos que
  sirven de base de entendimiento y acuerdo entre cliente y desarrollador,
      y que establecerán tanto la guía desarrollo como los criterios de
        validación del producto final. Documentar los requisitos es la
         condición más importante para gestionarlos correctamente.
Proceso de Requisitos

                                                                            Actividades


Planificación   Obtención     Análisis    Especificación        Validación       Verificación




                                                                             Artefactos

   Documento         Documento
       de                de              Modelo del        Especificación
     Visión           Requisitos          Sistema          de Requisitos



                                                                                        95
Lenguajes de Notación
 Lenguaje Natural
     Comprensible 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


                                                                96
Notaciones Especiales
 Grá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.




                                                                                  97
Documentación de requisitos
 Qué 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).



                                                                               98
Documentos de Requisitos
   Definición de Requisitos: lista completa de lo que el cliente
    espera que el sistema haga, escrita de forma que el cliente la pueda
    entender. Ejemplo:
    1.   “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. Ejemplo:
    “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.”

                                                                                         99
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 la Configuración:
   Es 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

                                                                                100
Documento Definición de
     Requisitos
 Registrar 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).




                                                                          101
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.

                                                                                       102
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).


                                                                                        103
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.



                                                                                  104
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

                                                               105
Validación de Requisitos

Los requisitos deben ser formal y técnicamente
    correctos (verificación), y satisfacer las
 necesidades del sistema, sin omitir ninguna ni
      incluir funcionalidades innecesarias
                  (validación).
Proceso de Requisitos

                                                                            Actividades


Planificación   Obtención     Análisis    Especificación        Validación       Verificación




                                                                             Artefactos

   Documento         Documento
       de                de              Modelo del        Especificación
     Visión           Requisitos          Sistema          de Requisitos



                                                                                      107
Validación de Requisitos
 Proceso por el cual se determina si los requisitos relevados son
  consistentes con las necesidades del cliente.
 Objetivo:
   Asegurar que se esté construyendo el sistema correcto.
 Requisitos sirven como:
   contrato con el cliente
   guías para los diseñadores.
 Proceso:
   Planificar quién (qué stakeholder) va a validar qué (artefacto) cómo
    (técnica).
   Ejecutar
   Registrar – Reporte de validación / Firma



                                                                           108
Validación de Requisitos
 Se chequea en el documento de requisitos:
   Validez: que el usuario valide qué es lo que quiere.
   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.


                                                                                                  109
Validación de Requisitos NO
    Funcionales
 Son difíciles de validar.
 Se deben expresar de manera cuantitativa utilizando métricas que se
  puedan probar de forma objetiva (esto es IDEAL).

       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
 Para los usuarios es difícil especificarlos en forma cuantitativa.



                                                                        110
Técnicas de Validación
 Manuales
   Lectura por parte del cliente.
   Recorridas. Útiles con muchos stakeholders que no lo leerían de otra manera.
   Entrevistas.
   Chequeo manual de referencias cruzadas.
   Instancias de validación formal:
      Revisiones - Stakeholders revisan por separado y se reúnen para discutir problemas.
      Inspecciones formales – roles y reglas.
   Listas de comprobación.
   Escenarios.
   Generación de Casos de Prueba.
 Automatizadas
   Chequeo automático de referencias cruzadas: Si los requisitos se expresan formalmente, las
    herramientas CASE verifican su consistencia.
   Ejecución de Modelos para verificar funciones y relaciones.
   Construcción de Prototipos.
   Simulaciones.
                                                                                             111
Revisión de Requisitos
 Proceso 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 cómo se harán:                                       ¿Cómo asegurar que la reunión
        pruebas del sistema.                                                es efectiva? Moderador,
                                                                             secretario y responsables por
        cambios en los requisitos en el proyecto, su verificación y validación.
                                                                        acciones

                                                                                                      112
Verificación de Requisitos

  El criterio básico que los diferencia es que verificación se refiere a
 la calidad formal, en este caso de los documentos de requisitos (no
son ambiguos, no son incompletos, son posibles, verificables, etc.) y
  validación comprende la adecuación en el entorno de producción,
  en el caso de la documentación de requisitos, la conformidad por
            parte del cliente de que reflejan lo que él quiere
Proceso de Requisitos

                                                                            Actividades


Planificación   Obtención     Análisis    Especificación        Validación       Verificación




                                                                             Artefactos

   Documento         Documento
       de                de              Modelo del        Especificación
     Visión           Requisitos          Sistema          de Requisitos



                                                                                       114
Verificación de requisitos
 Objetivo:
   Asegurar que se esté construyendo el sistema correctamente.
   Se verifica que un artefacto (salida) sea conforme a otro
    (entrada).
 Usualmente es solo chequeo de trazabilidad de la
  especificación al documento de reqs.
 Para sistemas críticos: demostrar que la especifición realiza
  los requisitos:
   usamos SRS + asunciones sobre el comportamiento del
    ambiente (¡documentarlas!)


                                                                  115
Verificación de requisitos
 Chequeos:
     chequeo de referencias cruzadas
     chequeos de consistencia
     chequeos de completitud
     chequeos por estados o transiciones inalcanzables.
 Técnicas:
     revisiones formales (en grupo)
     revisiones por pares
     listas de comprobación
     modelos
     Pruebas Matemáticas: Si se usó un lenguaje formal, pe. Z.

                                                                  116
Ingeniería de Requisitos
                                                   Ingeniería de Requisitos



        Proceso de los Requisitos                                            Administración de los Requisitos




                                                                                           Requisitos
                                                                                           Línea Base de
Planificación    Obtención   Análisis       Especificación   Validación    Verificación




                                                                                                  Línea base corregida

                                                              Medición y
                                        Trazabilidad                                                                Administración
                                                              Evaluación
      Planificación                                                                                                   del Cambio
                                                                                                Línea base actual




                                                                SCM
                                                                                          Cambios en                           117
                                                                                                                         Cambios
                                                                                          requisitos                     en el proyecto
Administración de los
Requisitos
 Los 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


                                                                            118
Planificación
 Muchas actividades son tomadas de las técnicas de SCM.
 Se debe decidir sobre:
   Identificación de Requisitos: Cada requisito debe identificarse en forma única,
    para poder ser referenciado por otros.
       Ejemplo:
          <Tipo> < nro> donde Tipo: F – Funcional, D- Datos, etc.
          Ejemplo: F12
    Procedimiento de Administración del Cambio: Actividades que evalúan el
     impacto y costo del cambio.
    Políticas de Trazabilidad: Definen qué relaciones entre reqs. y con el diseño se
     deben registrar y cómo se van a mantener.
    Herramientas CASE: De soporte para:
       Almacenar los requisitos
       Administrar el cambio
       Administrar de la trazabilidad

                                                                                  119
Trazabilidad
 Información de rastreo que se debe mantener
   La 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


                                                                           120
Administración del Cambio
    El 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



                                                                      121
Administración del Cambio
    Cuando se propone un cambio, debe evaluarse el impacto.
    Etapas:
     1.   Especificación del cambio.
     2.   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
     3.   Discutir costo con cliente.
     4.   Implementar el cambio: se modifican los artefactos necesarios.
    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.


                                                                               122
Procedimiento de control de cambios
     Establecer 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




                                                            123
Gestión de la Configuración de los Requisitos
      Tiene 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.



                                                                     124
Línea Base de Requisitos
 LB 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



                                                        125
Medir y Evaluar Requisitos
 Medir 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,...




                                                              126
Medir y Evaluar Requisitos
 Medir
   # Requisitos
     Entrada 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



                                                                   127
Metodologías de Desarrollo
Metodologías de Desarrollo
 Los 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




                                                              129
eXtreme Programming
 Cliente en el lugar
   Un 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.


                                                                                         130
Rational Unified Process –
Disciplina de Requisitos




                             131
RUP – Detalle de Actividades




                           132

Weitere ähnliche Inhalte

Was ist angesagt?

Vistas Arquitectonicas Ingenieria de Software
Vistas Arquitectonicas Ingenieria de SoftwareVistas Arquitectonicas Ingenieria de Software
Vistas Arquitectonicas Ingenieria de SoftwareRoberth Loaiza
 
Metodología para el desarrollo del sistemas de información y comunicación seg...
Metodología para el desarrollo del sistemas de información y comunicación seg...Metodología para el desarrollo del sistemas de información y comunicación seg...
Metodología para el desarrollo del sistemas de información y comunicación seg...travesuras79
 
Descomposición modular y estilos de control
Descomposición modular y estilos de controlDescomposición modular y estilos de control
Descomposición modular y estilos de controlJuan Pablo Bustos Thames
 
Transformación de Modelo E-R a Modelo Relacional Ejemplo y Reporte
Transformación de Modelo E-R a Modelo Relacional Ejemplo y ReporteTransformación de Modelo E-R a Modelo Relacional Ejemplo y Reporte
Transformación de Modelo E-R a Modelo Relacional Ejemplo y ReporteNeoinquisidor
 
Normalizacion de bases de datos
Normalizacion de bases de datosNormalizacion de bases de datos
Normalizacion de bases de datosCaro_Noirgean
 
Diagramas UML
Diagramas UMLDiagramas UML
Diagramas UML1da4
 
2 1 1_diseño arquitectónico
2 1 1_diseño arquitectónico2 1 1_diseño arquitectónico
2 1 1_diseño arquitectónicolandeta_p
 
Herramientas CASE
Herramientas CASEHerramientas CASE
Herramientas CASEI R
 
Bitácora de base de datos
Bitácora de base de datosBitácora de base de datos
Bitácora de base de datosLalo Osorio
 
Paradigmas de ingenieria del software
Paradigmas de ingenieria del softwareParadigmas de ingenieria del software
Paradigmas de ingenieria del softwareTensor
 
Sistemas arquitectónicos centralizados, descentralizados e híbridos.
Sistemas arquitectónicos centralizados, descentralizados e híbridos.Sistemas arquitectónicos centralizados, descentralizados e híbridos.
Sistemas arquitectónicos centralizados, descentralizados e híbridos.Universidad de Guadalajara
 
Ingenieria de requerimientos
Ingenieria de requerimientosIngenieria de requerimientos
Ingenieria de requerimientosTensor
 
Introducción al Análisis Orientado a Objetos
Introducción al Análisis Orientado a ObjetosIntroducción al Análisis Orientado a Objetos
Introducción al Análisis Orientado a ObjetosWilfredo Mogollón
 
Power designer-presentación
Power designer-presentaciónPower designer-presentación
Power designer-presentaciónskrapy95
 

Was ist angesagt? (20)

Analisis y diseño de sistemas
Analisis y diseño de sistemasAnalisis y diseño de sistemas
Analisis y diseño de sistemas
 
Vistas Arquitectonicas Ingenieria de Software
Vistas Arquitectonicas Ingenieria de SoftwareVistas Arquitectonicas Ingenieria de Software
Vistas Arquitectonicas Ingenieria de Software
 
Fundamentos de ingenieria del software (2)
Fundamentos de ingenieria del software (2)Fundamentos de ingenieria del software (2)
Fundamentos de ingenieria del software (2)
 
Metodología para el desarrollo del sistemas de información y comunicación seg...
Metodología para el desarrollo del sistemas de información y comunicación seg...Metodología para el desarrollo del sistemas de información y comunicación seg...
Metodología para el desarrollo del sistemas de información y comunicación seg...
 
Descomposición modular y estilos de control
Descomposición modular y estilos de controlDescomposición modular y estilos de control
Descomposición modular y estilos de control
 
Transformación de Modelo E-R a Modelo Relacional Ejemplo y Reporte
Transformación de Modelo E-R a Modelo Relacional Ejemplo y ReporteTransformación de Modelo E-R a Modelo Relacional Ejemplo y Reporte
Transformación de Modelo E-R a Modelo Relacional Ejemplo y Reporte
 
09 guiados spinner Java
09 guiados spinner Java09 guiados spinner Java
09 guiados spinner Java
 
Normalizacion de bases de datos
Normalizacion de bases de datosNormalizacion de bases de datos
Normalizacion de bases de datos
 
Ingenieria de software
Ingenieria de softwareIngenieria de software
Ingenieria de software
 
Diagramas UML
Diagramas UMLDiagramas UML
Diagramas UML
 
2 1 1_diseño arquitectónico
2 1 1_diseño arquitectónico2 1 1_diseño arquitectónico
2 1 1_diseño arquitectónico
 
Herramientas CASE
Herramientas CASEHerramientas CASE
Herramientas CASE
 
Diseño arquitectónico
Diseño arquitectónicoDiseño arquitectónico
Diseño arquitectónico
 
Bitácora de base de datos
Bitácora de base de datosBitácora de base de datos
Bitácora de base de datos
 
Paradigmas de ingenieria del software
Paradigmas de ingenieria del softwareParadigmas de ingenieria del software
Paradigmas de ingenieria del software
 
Sistemas arquitectónicos centralizados, descentralizados e híbridos.
Sistemas arquitectónicos centralizados, descentralizados e híbridos.Sistemas arquitectónicos centralizados, descentralizados e híbridos.
Sistemas arquitectónicos centralizados, descentralizados e híbridos.
 
UML - Analisis de Sistemas
UML - Analisis de SistemasUML - Analisis de Sistemas
UML - Analisis de Sistemas
 
Ingenieria de requerimientos
Ingenieria de requerimientosIngenieria de requerimientos
Ingenieria de requerimientos
 
Introducción al Análisis Orientado a Objetos
Introducción al Análisis Orientado a ObjetosIntroducción al Análisis Orientado a Objetos
Introducción al Análisis Orientado a Objetos
 
Power designer-presentación
Power designer-presentaciónPower designer-presentación
Power designer-presentación
 

Ähnlich wie Ingeniería derequerimientos

Software Requiments
Software RequimentsSoftware Requiments
Software RequimentsCúmar Cueva
 
Requisitos
RequisitosRequisitos
RequisitosNorerod
 
Documentación
DocumentaciónDocumentación
DocumentaciónFSILSCA
 
Analisis
AnalisisAnalisis
AnalisisFSILSCA
 
Traduccion de a.s.i requerimientos segundo corte
Traduccion de a.s.i requerimientos segundo corteTraduccion de a.s.i requerimientos segundo corte
Traduccion de a.s.i requerimientos segundo cortejamr2
 
Traduccion de a.s.i requerimientos segundo corte
Traduccion de a.s.i requerimientos segundo corteTraduccion de a.s.i requerimientos segundo corte
Traduccion de a.s.i requerimientos segundo cortejamr2
 
Traduccion de a.s.i requerimientos segundo corte
Traduccion de a.s.i requerimientos segundo corteTraduccion de a.s.i requerimientos segundo corte
Traduccion de a.s.i requerimientos segundo cortejamr2
 
Ingeniería de requisitos-UDO MONAGAS
Ingeniería de requisitos-UDO MONAGASIngeniería de requisitos-UDO MONAGAS
Ingeniería de requisitos-UDO MONAGASfernandoUDO
 
2. requerimientos del software
2. requerimientos del software2. requerimientos del software
2. requerimientos del softwareuniv of pamplona
 
Análisis y diseño de sistemas sesion 09 - validacion de requisitos ii
Análisis y diseño de sistemas   sesion 09 - validacion de requisitos iiAnálisis y diseño de sistemas   sesion 09 - validacion de requisitos ii
Análisis y diseño de sistemas sesion 09 - validacion de requisitos iiGianfrancoEduardoBra
 
Unidad13analisisderequerimientos 13026971308524-phpapp01
Unidad13analisisderequerimientos 13026971308524-phpapp01Unidad13analisisderequerimientos 13026971308524-phpapp01
Unidad13analisisderequerimientos 13026971308524-phpapp01duberlisg
 
Unidad 1.3 Analisis De Requerimientos
Unidad 1.3 Analisis De RequerimientosUnidad 1.3 Analisis De Requerimientos
Unidad 1.3 Analisis De RequerimientosSergio Sanchez
 

Ähnlich wie Ingeniería derequerimientos (20)

Software Requiments
Software RequimentsSoftware Requiments
Software Requiments
 
Pepita
PepitaPepita
Pepita
 
Requerimientos del software
Requerimientos del softwareRequerimientos del software
Requerimientos del software
 
11271320110505163923 (1)
11271320110505163923 (1)11271320110505163923 (1)
11271320110505163923 (1)
 
Requisitos
RequisitosRequisitos
Requisitos
 
Introducción gerencia de requerimientos
Introducción gerencia de requerimientosIntroducción gerencia de requerimientos
Introducción gerencia de requerimientos
 
Requisitos
RequisitosRequisitos
Requisitos
 
Documentación
DocumentaciónDocumentación
Documentación
 
Analisis
AnalisisAnalisis
Analisis
 
Traduccion de a.s.i requerimientos segundo corte
Traduccion de a.s.i requerimientos segundo corteTraduccion de a.s.i requerimientos segundo corte
Traduccion de a.s.i requerimientos segundo corte
 
Traduccion de a.s.i requerimientos segundo corte
Traduccion de a.s.i requerimientos segundo corteTraduccion de a.s.i requerimientos segundo corte
Traduccion de a.s.i requerimientos segundo corte
 
Traduccion de a.s.i requerimientos segundo corte
Traduccion de a.s.i requerimientos segundo corteTraduccion de a.s.i requerimientos segundo corte
Traduccion de a.s.i requerimientos segundo corte
 
02 captura de requisitos
02 captura de requisitos02 captura de requisitos
02 captura de requisitos
 
Ingeniería de requisitos-UDO MONAGAS
Ingeniería de requisitos-UDO MONAGASIngeniería de requisitos-UDO MONAGAS
Ingeniería de requisitos-UDO MONAGAS
 
2. requerimientos del software
2. requerimientos del software2. requerimientos del software
2. requerimientos del software
 
Taller en clases 1
Taller en clases 1Taller en clases 1
Taller en clases 1
 
Análisis y diseño de sistemas sesion 09 - validacion de requisitos ii
Análisis y diseño de sistemas   sesion 09 - validacion de requisitos iiAnálisis y diseño de sistemas   sesion 09 - validacion de requisitos ii
Análisis y diseño de sistemas sesion 09 - validacion de requisitos ii
 
Unidad13analisisderequerimientos 13026971308524-phpapp01
Unidad13analisisderequerimientos 13026971308524-phpapp01Unidad13analisisderequerimientos 13026971308524-phpapp01
Unidad13analisisderequerimientos 13026971308524-phpapp01
 
Unidad 1.3 Analisis De Requerimientos
Unidad 1.3 Analisis De RequerimientosUnidad 1.3 Analisis De Requerimientos
Unidad 1.3 Analisis De Requerimientos
 
Capacitacitación Tester - QA 2
Capacitacitación Tester - QA 2Capacitacitación Tester - QA 2
Capacitacitación Tester - QA 2
 

Mehr von Kaddy Hernandez

Mehr von Kaddy Hernandez (13)

Circular externa 000014
Circular externa 000014Circular externa 000014
Circular externa 000014
 
Segundo en cuentro
Segundo en cuentroSegundo en cuentro
Segundo en cuentro
 
Interfaz de shwish max
Interfaz de shwish maxInterfaz de shwish max
Interfaz de shwish max
 
Producciones textuales
Producciones textualesProducciones textuales
Producciones textuales
 
El cuento infantil
El cuento infantilEl cuento infantil
El cuento infantil
 
Kiara cuento
Kiara cuentoKiara cuento
Kiara cuento
 
Polimorfismo
PolimorfismoPolimorfismo
Polimorfismo
 
De todo un poco elvis copia[1]
De todo un poco elvis   copia[1]De todo un poco elvis   copia[1]
De todo un poco elvis copia[1]
 
Polimorfismo
PolimorfismoPolimorfismo
Polimorfismo
 
Repositorios cecar
Repositorios cecarRepositorios cecar
Repositorios cecar
 
Repositorios
RepositoriosRepositorios
Repositorios
 
Topologias de red
Topologias de redTopologias de red
Topologias de red
 
Plataformas virtuales objeto de aprendizaje
Plataformas virtuales objeto de aprendizajePlataformas virtuales objeto de aprendizaje
Plataformas virtuales objeto de aprendizaje
 

Kürzlich hochgeladen

EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfJulian Lamprea
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 

Kürzlich hochgeladen (10)

EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 

Ingeniería derequerimientos

  • 2. Temario  Definiciones  Requisitos Funcionales y No Funcionales  Tipos 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 y Verificación– Técnicas  Administración de los Requisitos  Planificación  Trazabilidad  Administración del cambio  Medición  Metodologías de Desarrollo 2 Especificación Formal - Z
  • 3. Bibliografía  Pfleeger: Capítulo 4  Ingenierí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 830-1998.  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:  http://www.uml.org/  Artículos en la página:  Introducción a UML - Artículo de la revista Rational Edge  Diagramas de Actividad - Artículo de la revista Rational Edge 3
  • 5. Definiciones  Requisitos:  Descripció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. 5
  • 6. Definiciones  Sistema  Incluye 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 6
  • 7. Requisitos vs. Diseño  Requisitos definen el Qué (el problema) del sistema  El Diseño define el Cómo (la solución) 7
  • 8. Reporte CHAOS de Standish Group `94  350 orgs., 8000 proyectos  Causas (Standish Gr.1994) % Causas Respuestas Requisitos incompletos 13.10% 16.2 Falta de involucramiento de 31.1 usuarios 12.40% Falta de Recursos 10.60% 52.7 Expectativas no realistas 9.90% Proyecto terminado en tiempo Falta de Soporte de Ejecutivos 9.30% Proyecto terminado con retrasos Requisitos y Especificaciones Proyecto cancelado cambiantes 8.70% Falta de planificación 8.10% Sistema no se precisaba más 7.50% 39.2 % 8
  • 9. Costos de Errores en los Requisitos  Costo de corregir un error en los requisitos (Boehm- Papaccio,1988) Costo en USD 250 200 200 150 100 50 5 10 20 1 0 Prueba Unitaria Producción Codificación Diseño Requerimientos Análisis y Esp. 9
  • 10. Requisitos Funcionales y No Funcionales  Funcionales:  Servicios 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  Ejemplos:  Las consultas deben resolverse en menos de 3 segundos  El lenguaje de programación debe ser Java 10
  • 11. Requisitos No Funcionales  Del 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 11
  • 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 12
  • 13. Requisitos - Tipos (2)  Documentación  cuá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 13
  • 14. Requisitos - Tipos (3)  Seguridad  control 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  Seguridad  Portabilidad 14
  • 15. Ingeniería de Requisitos Ingeniería de Requisitos es un enfoque sistémico para recolectar, organizar y documentar los requerimientos del sistema; es también el proceso que establece y mantiene acuerdos sobre los cambios de requerimientos, entre los clientes y el equipo del proyecto
  • 16. Ingeniería de Requisitos Ingeniería de Requisitos Proceso de los Requisitos Administración de los Requisitos Requisitos Línea Base de Obtención Análisis Especificación Validación Verificación Línea base corregida Medición y Trazabilidad Administración Evaluación Planificación del Cambio Línea base actual SCM 16 Cambios en Cambios requisitos en el proyecto
  • 17. Proceso de Requisitos Actividades Planificación Obtención Análisis Especificación Validación Verificación Artefactos Documento Documento de de Modelo del Especificación Visión Requisitos Sistema de Requisitos 17
  • 18. Participantes en el Proceso de Requisitos  Cliente 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 18
  • 19. Obtención de Requisitos Elicitation se identifican todas las fuentes de requisitos implicadas en el sistema y, en función de las características del entorno y del proyecto se emplean las técnicas más apropiadas para la identificación de las necesidades que deben satisfacerse
  • 20. Proceso de Requisitos Actividades Planificación Obtención Análisis Especificación Validación Verificación Artefactos Documento Documento de de Modelo del Especificación Visión Requisitos Sistema de Requisitos 20
  • 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) 21
  • 22. Obtención & Análisis de Requisitos  Se 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 22
  • 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 siempre dicen que no sus necesidades rehúsan asumir responsabilidades por el siempre están pasados del presupuesto sistema incapaces de dar un enunciado utilizable de siempre están atrasados sus necesidades no están comprometidos con los proyectos nos exigen tiempo y esfuerzo aún a costa de las de desarrollo 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 23
  • 24. Obtención & Análisis de Requisitos (Modelo Genérico) Clasificación y Priorización y Organización negociación de de Requisitos requisitos Relevamiento Documentación de Requisitos de Requisitos 24
  • 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. 25
  • 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 26  que satisfaga expectativas de calidad
  • 27. Obtención de Requisitos – Técnicas  Investigar antecedentes  Entrevistas individuales/grupales  Encuestas/Cuestionarios  Tormenta de ideas  Workshop  Casos de Uso  Observación/Participación  Prototipado 27
  • 28. Investigar antecedentes  Estudio, 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  Desventajas  Ahorra tiempo de otros  Perspectiva limitada  Prepara para otros enfoques  Desactualizado  Puede llevarse a cabo fuera  Demasiado genérico de la organización 28
  • 29. Entrevista Individual / Grupal  Usar para:  Pasos para las Entrevistas  Entender el problema de negocio  Seleccionar participantes  Entender el ambiente de operación  Aprender tanto como sea posible de  Evitar omisión de requisitos  Mejorar las relaciones con el cliente antemano  Ventajas  Preparar la entrevista  Orientado a las personas  Utilizar un patrón de estructura  Interactivo/flexible  Conducirla  Rico  Apertura, desarrollo, conclusión  Desventajas  Enviar un memo con resultado  Costoso  Seguimiento  Depende de las habilidades interpersonales 29
  • 30. Entrevista – Patrón para conducirla  Datos 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 30
  • 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 31
  • 32. Encuesta / Cuestionario  No 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  Desventajas  Economía de escala  Menos rico  Conveniente para quien contesta  Problemas por no-respuesta 32  Respuestas anónimas  Esfuerzo de desarrollo
  • 33. Observación / Participación  Poco utilizado…  Antes de usarlo  Determinar información necesaria  Comunicar a los involucrados  Considerar períodos normales y atípicos  Planificar las anotaciones  Ventajas  Desventajas  Confiable  Efecto Hawthorne  Muy rico  Cuidado con generalizar  Desarrolla empatía demasiado (sesgo particular/local) 33
  • 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 34
  • 35. Tormenta de Ideas – Fase de Generación  Los 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. 35
  • 36. Tormenta de Ideas – Fase de Reducción  El 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 36
  • 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 37
  • 38. Casos de Uso  Técnica para entender y describir requisitos  Los 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 qué es lo que el sistema debe hacer, sin especificar cómo debe hacerlo  Se describen mediante documentos de texto  Introducido por Ivar Jacobson (1992) 38
  • 39. 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  Usarlo  No son la mejor elección:  Cuando el sistema está  Sistemas sin usuarios y con orientado a la funcionalidad, pocas interfaces con varios tipos de usuarios  Sistemas dominados  Cuando la implementación se primariamente por requisitos va a hacer OO y con UML no funcionales y restricciones 39 de diseño
  • 40. 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
  • 41. Mismos datos, pero… Ingrese Julio 1998 año: ____ mes: ____ día: ____ 1998 2025 1 31 Ene Dic Martes 16 Oct. 2002 41
  • 42. Análisis de Requisitos Una vez obtenida la información 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 límites del sistema y definir su interacción con el entorno
  • 43. Proceso de Requisitos Actividades Planificación Obtención Análisis Especificación Validación Verificación Artefactos Documento Documento de de Modelo del Especificación Visión Requisitos Sistema de Requisitos 43
  • 44. Análisis de Requisitos  Analizar 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
  • 45. Stakeholders / Clientes / Usuarios Usuarios Clientes Stakeholders  Clientes: • Usuarios:  Definir responsable de:  dividirlos en clases  resolución de conflictos  validación  definir representantes  Planificar reuniones de revisión de  definir prototipos avance con el responsable.  acordar responsabilidades y  Definir proceso de resolución de estrategias de colaboración conflictos pe. en alcance. con representantes 45
  • 46. Proceso de Requisitos Actividades Planificación Obtención Análisis Especificación Validación Verificación Artefactos Documento Documento de de Modelo del Especificación Visión Requisitos Sistema de Requisitos 46
  • 47. Modelos o Vistas del Sistema  Glosario  Modelos gráficos:  Modelo conceptual  Diagramas de estado – para entidades complejas que pasen por distintos estados.  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
  • 48. Diagramas UML  UML  Diagramas de Casos de Uso  Diagramas de Actividad  Diagramas de Máquinas de Estado  Diagrama de Clases  Modelo Conceptual 48
  • 49. Casos de Usos Un Caso de Uso es una descripción de un conjunto de secuencia de acciones, incluyendo variantes, que ejecuta un sistema para producir un resultado observable de valor para un actor
  • 50. Casos de Uso  Técnica para entender y describir requisitos  Los casos de uso describen requisitos funcionales  Describen como el sistema debe comportarse desde el punto de vista del usuario  Pone el acento en el uso del producto  Casos de Uso como caja negra: Especifican qué es lo que el sistema debe hacer, sin especificar cómo debe hacerlo  Se describen mediante documentos de texto  Introducido por Ivar Jacobson (1992) 50
  • 51. Actor  Entidad externa que interactúa con el sistema (persona identificada por un rol o sistema externo)  Actor principal: Sus objetivos son cumplidos al realizar el caso de uso  Los actores son externos al sistema que vamos a desarrollar.  Al identificar actores estamos delimitando el sistema  Usuario: persona que cuando usa el sistema, asume un rol. <<actor>> Sistema 51 Actor
  • 52. Cajero Automático - Ejemplo Retirar 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 52
  • 53. Caso de Uso Ca so d e Uso  Escenario:  Secuencia de acciones e interacciones entre los actores y el sistema, dando un resultado de valor observable para un actor particular  Es una instancia de un 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. 53
  • 54. Caso de Uso: Retirar Flujo principal: 2. Cliente inserta una tarjeta bancaria en el lector del CA. 3. El CA lee el código de la tarjeta y verifica que es correcto 4. El CA pide el código de PIN de 4 dígitos 5. EL Cliente ingresa el PIN 6. El CA envía código de Tarjeta y PIN al SC 7. El SC verifica que el PIN sea correcto y contesta: OK 8. El CA despliega las distintas alternativas disponibles: retiro, depósito, consulta 9. El Cliente elige Retiro 10. El CA pide cuenta y monto 11. El Cliente los ingresa 12. CA envía código de Tarjeta, PIN, cuenta y monto al SC 13. El SC contesta: OK 14. El CA dispensa el dinero 15. El CA devuelve la tarjeta 16. El CA imprime el recibo 54
  • 55. Caso de Uso : Retirar Flujo principal: (otra forma) Cliente Sistema Servicio 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 55 15 Imprime recibo
  • 56. 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.  Nombre del CU: Verbo activo.  Cada caso de uso modela partes de la dinámica.  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. 56
  • 57. Casos de Uso - Conceptos  Precondiciones: 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. 57
  • 58. 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 1. El SC contesta indicando PIN inválido 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”. 2. Fin CU 58
  • 59. 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 3. Fin CU 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 3. Fin CU 59
  • 60. Diagrama de Casos de Uso  UML provee notación para los casos de uso para ilustrar los actores, los casos de uso y las relaciones entre ellos  Muestra los bordes del sistema. Permite realizar un Diagrama del Contexto del Sistema  Descripción estática Retirar Cliente Depositar Servicio de Cajeros 60 Transferir
  • 61. Construcción del Modelo - Pasos  Definir 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 61
  • 62. Relaciones entre CU – Include  Escenarios 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 Desconoce la  En el caso del cajero: existencia de los Identificar Cliente que lo usan <<include>> <<include>> <<include>> Retirar Transferir 62 Depositar
  • 63. 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 63
  • 64. Caso de Uso: Identificar Cliente Descripción Breve: Verifica que la tarjeta y el PIN sean válidos Flujo Principal: r Cliente inserta una tarjeta bancaria en el lector del CA. u El CA lee el código de la tarjeta y verifica que es correcto i El CA pide el código de PIN de 4 dígitos d EL Cliente ingresa el PIN s El CA envía código de Tarjeta y PIN al SC g 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 1. El SC contesta indicando PIN inválido 2. El CA muestra el mensaje “Se le retiene la tarjeta” 3. Fin CU 64
  • 65. Relaciones entre CU – Extend  Es 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. 65
  • 66. Extend - Ejemplo  El cliente puede querer retirar monedas además de billetes <<include>> Identificar Cliente Retirar <<extend>> Retirar Monedas 66
  • 67. 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 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 67
  • 68. Caso de Uso: Retirar Monedas Descripción Breve: El cliente opcionalmente puede querer retirar monedas Punto de extensión indicado por un nombre Flujo Principal: Extensión de Retirar en el punto Retirar Monedas, el cliente también puede elegir “monedas”, en ese caso: 4. El Cliente elige retirar monedas, especificando tipos de monedas y la cantidad de rollos para cada uno. 5. El CA calcula el importe a retirar para cada moneda y el total y lo muestra 6. 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 68
  • 69. Relaciones entre CU – Generalización  Algunas 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 Validar Cliente Validar con PIN Validar con Scaner de Retina 69
  • 70. Actividades  Encontrar actores y casos de uso  Priorizar los casos de uso  Detallar un caso de uso  Estructurar el modelo de casos de uso 70
  • 71. Casos de Uso - Nivel de detalle ¿ qu é nivel se d eben expresar los CU en el an álisis d e A requerim ientos?  E nfocarse en CU al nivel d e Proceso d e N egocio E lem ental (elementary business process (E BP)): U na tarea ejecutad a por una persona en un lugar en un d eterm inad o m om ento, en respuesta a un evento d el negocio, que agrega valor d e negocio m esurable y d ej los d atos en estad o consistente. a  Que cum pla un obj etivo d el usuario.  E rror com ún: d efinir m uchos CU a nivel d em asiad o baj por o: cad a paso o subtarea d entro d e un E BP.  E xcepciones: Pe. casos d e uso incluid os 71
  • 72. UML Un lenguaje de modelado para la especificación, visualización, construcción y documentación de los artefactos de un proceso de software intensivo
  • 73. UML  Unified Modeling Language  Objetivo: 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 2.1.2 (nov 2007) 73
  • 75. Tipos de Diagramas  Modelo Estático  Construye 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 Máquinas de Estado 75
  • 76. Diagrama de Casos de Uso  Permite 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 76
  • 77. Diagrama de Casos de Uso - Ejemplo <<extend>> Retirar Monedas <<include>> Retirar Validar con PIN Cliente <<include>> Validar Cliente Depositar <<include>> Validar con Scaner de Retina Transferir 77
  • 78. Nombre Clase Atributos Diagrama de Clases Operaciones  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. 78
  • 79. 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 Cliente. Banco Cajero. nombre Nombre saldo 1 n 0..1 expide 1 1 usa 1 realiza 0..n n n n Tarjeta Cuenta 1 n Transacción Número tiene s aldo monto PIN 0.. 1 0..n Retiro. Transferencia. Depósito. 79
  • 80. Diagrama de Actividad  Se construye para modelar el flujo del control (workflow)  Elementos: Estado de Actividad (o de Acción) Estado Inicial Estado Final Transiciones Actividades concurrentes Bifurcaciones Condiciones de la bifurcación [ guarda ] Andariveles  Permite modelar el flujo del trabajo  En un sistema  En una organización 80
  • 81. Diagrama de Actividad - Ejemplo Guarda de decisión Se abren Flujos Paralelos Sincronización 81
  • 82. Diagrama de Máquinas 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 durante su ciclo de vida  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 82
  • 83. Diagrama de Estados  Transición.  la etiqueta tiene tres partes optativas: Evento {Guardia} / Acción  Los estados:  pueden tener actividades asociadas. Etiqueta con la sintaxis hace / Actividad.  estado inicial o de creación  estado final – aquél que no tiene transiciones de salida  Las acciones:  se asocian con las transiciones  se consideran como procesos que suceden con rapidez y no se pueden interrumpir.  Las actividades:  se asocian con los estados  pueden tardar más.  Una actividad puede ser interrumpida por algún evento. 83
  • 85. Diagrama de Estados  Una transición sin evento en su etiqueta se da tan pronto como se completa cualquier actividad asociada con el estado dado.  Guardias:  Un guardia es una condición lógica que devuelve "verdadero" o "falso." Una transición de guardia ocurre sólo si el guardia es "verdadera".  Transición no guardada: la transición ocurrirá siempre que tenga lugar el evento.  Sólo se puede tomar una transición de un estado dado, por lo que los guardias deben mutuamente excluyentes para cualquier evento.  No es necesario que formen un conjunto completo. 85
  • 87. Diagrama de Estados - Superestados  Los subestados heredan todas las transiciones sobre el superestado.  A menos que haya un estado inicial. 87
  • 88. Diagrama de Estados – Ejemplo 1 ingreso PIN [PIN incorrecto] Esperar ingreso tarjeta Pedir PIN Tarjeta ingresar PIN[ PIN correcto ] Seleccionar Verificar fondos insuficientes Devolver retiro de tarjeta cuenta y monto ingreso cuenta y monto fondos Tarjeta contesta[ fondos suficientes ] efect ivo retirado Dar Dinero Contar dinero suficiente Dispensar 88
  • 89. Diagrama de Estados  Si un estado responde a un evento con una acción que no produzca una transición, se coloca nombreEvento/nombreAcción en el cuadro de estado.  Existen también dos eventos especiales, entrada y salida.  Cualquier acción que esté vinculada al evento entrada se ejecuta siempre que se entre al estado. Sintaxis entry/nombreAcción  La acción asociada con el evento salida se ejecuta siempre que se sale del estado. Sintaxis exit/nombreAcción El poder indicar acciones al entrar o salir de un estado es útil porque evita documentar la misma acción para cada transición de entrada o salida del estado.  En una autotransición se ejecuta:  la acción de salida  la acción de transición  la acción de entrada.  actividad asociada al estado 89
  • 91. Diagrama de Estados – Estados concurrentes  Los diagramas de estados concurrentes son útiles cuando un objeto dado tiene conjuntos de comportamientos independientes.  Recomendación: Si se tienen varios diagramas de estados concurrentes complicados para un solo objeto, considerar la división del objeto en varios. 91
  • 92. Diagrama de Estados  Son buenos para describir el comportamiento de un objeto a través de varios casos de uso.  No son tan buenos para describir un comportamiento que involucra cierto número de objetos que colaboran entre ellos. 92
  • 93. Elección de una Técnica para Modelar Requisitos  No existe un único enfoque aplicable a todos los sistemas, depende de cada proyecto  Puede ser necesario combinar varios enfoques 93
  • 94. Especificación de Requisitos Cuando ya se conoce el entorno del cliente y sus necesidades, es necesario plasmarlas en forma de requisitos en los documentos que sirven de base de entendimiento y acuerdo entre cliente y desarrollador, y que establecerán tanto la guía desarrollo como los criterios de validación del producto final. Documentar los requisitos es la condición más importante para gestionarlos correctamente.
  • 95. Proceso de Requisitos Actividades Planificación Obtención Análisis Especificación Validación Verificación Artefactos Documento Documento de de Modelo del Especificación Visión Requisitos Sistema de Requisitos 95
  • 96. Lenguajes de Notación  Lenguaje Natural  Comprensible 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 96
  • 97. Notaciones Especiales  Grá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. 97
  • 98. Documentación de requisitos  Qué 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). 98
  • 99. Documentos de Requisitos  Definición de Requisitos: lista completa de lo que el cliente espera que el sistema haga, escrita de forma que el cliente la pueda entender. Ejemplo: 1. “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. Ejemplo: “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.” 99
  • 100. 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 la Configuración:  Es 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 100
  • 101. Documento Definición de Requisitos  Registrar 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). 101
  • 102. 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. 102
  • 103. 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). 103
  • 104. 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. 104
  • 105. 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 105
  • 106. Validación de Requisitos Los requisitos deben ser formal y técnicamente correctos (verificación), y satisfacer las necesidades del sistema, sin omitir ninguna ni incluir funcionalidades innecesarias (validación).
  • 107. Proceso de Requisitos Actividades Planificación Obtención Análisis Especificación Validación Verificación Artefactos Documento Documento de de Modelo del Especificación Visión Requisitos Sistema de Requisitos 107
  • 108. Validación de Requisitos  Proceso por el cual se determina si los requisitos relevados son consistentes con las necesidades del cliente.  Objetivo:  Asegurar que se esté construyendo el sistema correcto.  Requisitos sirven como:  contrato con el cliente  guías para los diseñadores.  Proceso:  Planificar quién (qué stakeholder) va a validar qué (artefacto) cómo (técnica).  Ejecutar  Registrar – Reporte de validación / Firma 108
  • 109. Validación de Requisitos  Se chequea en el documento de requisitos:  Validez: que el usuario valide qué es lo que quiere.  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. 109
  • 110. Validación de Requisitos NO Funcionales  Son difíciles de validar.  Se deben expresar de manera cuantitativa utilizando métricas que se puedan probar de forma objetiva (esto es IDEAL). 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  Para los usuarios es difícil especificarlos en forma cuantitativa. 110
  • 111. Técnicas de Validación  Manuales  Lectura por parte del cliente.  Recorridas. Útiles con muchos stakeholders que no lo leerían de otra manera.  Entrevistas.  Chequeo manual de referencias cruzadas.  Instancias de validación formal:  Revisiones - Stakeholders revisan por separado y se reúnen para discutir problemas.  Inspecciones formales – roles y reglas.  Listas de comprobación.  Escenarios.  Generación de Casos de Prueba.  Automatizadas  Chequeo automático de referencias cruzadas: Si los requisitos se expresan formalmente, las herramientas CASE verifican su consistencia.  Ejecución de Modelos para verificar funciones y relaciones.  Construcción de Prototipos.  Simulaciones. 111
  • 112. Revisión de Requisitos  Proceso 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 cómo se harán: ¿Cómo asegurar que la reunión  pruebas del sistema. es efectiva? Moderador, secretario y responsables por  cambios en los requisitos en el proyecto, su verificación y validación. acciones 112
  • 113. Verificación de Requisitos El criterio básico que los diferencia es que verificación se refiere a la calidad formal, en este caso de los documentos de requisitos (no son ambiguos, no son incompletos, son posibles, verificables, etc.) y validación comprende la adecuación en el entorno de producción, en el caso de la documentación de requisitos, la conformidad por parte del cliente de que reflejan lo que él quiere
  • 114. Proceso de Requisitos Actividades Planificación Obtención Análisis Especificación Validación Verificación Artefactos Documento Documento de de Modelo del Especificación Visión Requisitos Sistema de Requisitos 114
  • 115. Verificación de requisitos  Objetivo:  Asegurar que se esté construyendo el sistema correctamente.  Se verifica que un artefacto (salida) sea conforme a otro (entrada).  Usualmente es solo chequeo de trazabilidad de la especificación al documento de reqs.  Para sistemas críticos: demostrar que la especifición realiza los requisitos:  usamos SRS + asunciones sobre el comportamiento del ambiente (¡documentarlas!) 115
  • 116. Verificación de requisitos  Chequeos:  chequeo de referencias cruzadas  chequeos de consistencia  chequeos de completitud  chequeos por estados o transiciones inalcanzables.  Técnicas:  revisiones formales (en grupo)  revisiones por pares  listas de comprobación  modelos  Pruebas Matemáticas: Si se usó un lenguaje formal, pe. Z. 116
  • 117. Ingeniería de Requisitos Ingeniería de Requisitos Proceso de los Requisitos Administración de los Requisitos Requisitos Línea Base de Planificación Obtención Análisis Especificación Validación Verificación Línea base corregida Medición y Trazabilidad Administración Evaluación Planificación del Cambio Línea base actual SCM Cambios en 117 Cambios requisitos en el proyecto
  • 118. Administración de los Requisitos  Los 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 118
  • 119. Planificación  Muchas actividades son tomadas de las técnicas de SCM.  Se debe decidir sobre:  Identificación de Requisitos: Cada requisito debe identificarse en forma única, para poder ser referenciado por otros.  Ejemplo:  <Tipo> < nro> donde Tipo: F – Funcional, D- Datos, etc.  Ejemplo: F12  Procedimiento de Administración del Cambio: Actividades que evalúan el impacto y costo del cambio.  Políticas de Trazabilidad: Definen qué relaciones entre reqs. y con el diseño se deben registrar y cómo se van a mantener.  Herramientas CASE: De soporte para:  Almacenar los requisitos  Administrar el cambio  Administrar de la trazabilidad 119
  • 120. Trazabilidad  Información de rastreo que se debe mantener  La 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 120
  • 121. Administración del Cambio  El 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 121
  • 122. Administración del Cambio  Cuando se propone un cambio, debe evaluarse el impacto.  Etapas: 1. Especificación del cambio. 2. 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 3. Discutir costo con cliente. 4. Implementar el cambio: se modifican los artefactos necesarios.  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. 122
  • 123. Procedimiento de control de cambios  Establecer 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 123
  • 124. Gestión de la Configuración de los Requisitos  Tiene 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. 124
  • 125. Línea Base de Requisitos  LB 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 125
  • 126. Medir y Evaluar Requisitos  Medir 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,... 126
  • 127. Medir y Evaluar Requisitos  Medir  # Requisitos  Entrada 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 127
  • 129. Metodologías de Desarrollo  Los 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 129
  • 130. eXtreme Programming  Cliente en el lugar  Un 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. 130
  • 131. Rational Unified Process – Disciplina de Requisitos 131
  • 132. RUP – Detalle de Actividades 132

Hinweis der Redaktion

  1. 1:50
  2. Debemos utilizar métodos de obtención que tengan en cuenta este “gap” en la comunicacion
  3. Efecto hawthorne Teoria 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.
  4. 1:28
  5. 1:28
  6. 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.
  7. 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) &lt;&lt; redefine &gt;&gt; para el primer caso o &lt;&lt; enrichment &gt;&gt; para el segundo, en la operación en cuestión.