tema 8: análisis y especificación de requisitos · análisis y especificación de requisitos...
TRANSCRIPT
Tema 8: Análisis y Especificación de Requisitos
Departamento de Lenguajes y Sistemas Informáticos II
www.kybele.urjc.es
Análisis y especificación de requisitos www.kybele.urjc.es
Requisitos
Análisis
Diseño
Implementación
Pruebas
Concepción Elaboración Construcción Transición
Iteración
preliminarItera.
#1
Itera.
#2
Itera.
#n
Itera.
#n+1
Itera.
#n+2
Itera.
#m
Itera.
#m+1
Flujos de Trabajo
Fases
Iteraciones
Introducción
3
Análisis y especificación de requisitos www.kybele.urjc.es
Índice
Introducción
ArtefactosModelo de análisis
Clases de análisis
Realización en análisis de los casos de uso
Paquetes de análisis
ActividadesAnálisis de los casos de uso
Análisis de las clases
Análisis de los paquetes
4
Análisis y especificación de requisitos www.kybele.urjc.es
Introducción
Durante la captura de requisitos:Lenguaje del cliente
Buscar acuerdo
Pueden quedar aspectos sin resolver Los CU deben mantenerse tan independientes unos de otros
como sea posible
Los CU deben describirse en el lenguaje del cliente
Cada CU debe formar una especificación de funcionalidad completa e intuitiva
Objetivo del análisis:Analizar los requisitos en profundidad
En el lenguaje de los desarrolladores
5
Análisis y especificación de requisitos www.kybele.urjc.es
Introducción
En el análisis:Tratamos aspectos internos
Resolvemos problemas de interferencia, etc. de CU
Usamos un lenguaje más formal
Es decir, refinamos los requisitos, para facilitarComprensión
Preparación
Modificación
Mantenimiento…
Mediante: clases de análisis y paquetesTrazabilidad
6
Análisis y especificación de requisitos www.kybele.urjc.es
Introducción
Utilizaremos diferentes diagramas para expresar el modelo de análisis
Modelo de casos de uso Modelo de análisis
Lenguaje del cliente Lenguaje del desarrollador
Vista externa del sistema Vista interna del sistema
Estructurado en casos de uso Estructurado en clases de análisis y paquetes
Como contrato Como precursor del diseño
Puede contener redundancias, inconsistencias (entre requisitos)
No debería contener redundancias inconsistencias (entre requisitos)
Captura la funcionalidad del sistema Da forma a la arquitectura para soportar tal funcionalidad
7
Análisis y especificación de requisitos www.kybele.urjc.es
Introducción
En los requisitos
Pensamos en el sistema desde fuera
En el análisis
Pensamos en el sistema desde dentro
Primera aproximación al modelo de diseño e implementación
Pero no siempre se puede conservar, ya que los aspectos de la plataforma de implementación se abordan en el diseño
Es importante tener una comprensión completa y precisa de los requisitos antes del diseño
8
Análisis y especificación de requisitos www.kybele.urjc.es
Introducción
Ejemplos de cuándo hacer análisis y cómo usarlo
Para poder planificar diseño e implementación de cada incremento analizado
Proporciona una visión general del sistema, incluso a posteriori
Para llevar a cabo diseños e implementaciones alternativas
Para hacer reingeniería con un sistema heredado
9
Análisis y especificación de requisitos www.kybele.urjc.es
Introducción
Modelo de análisis
Modelo de diseño
Modelo de despliegue
Modelo de implementación
Modelo de pruebas
Modelo de casos de uso
Especificado por
Soportado por
Distribuido por
Implementado por
Verificado por
Modelo de análisis
Modelo de análisis
Modelo de diseño
Modelo de despliegueModelo de despliegue
Modelo de implementación
Modelo de implementación
Modelo de pruebas
Modelo de casos de usoModelo de
casos de uso
Especificado por
Soportado por
Distribuido por
Implementado por
Verificado por
10
Análisis y especificación de requisitos www.kybele.urjc.es
Requisitos
Pruebas
Implementación
Diseño
Análisis
Modelo de
Despliegue
Modelo de
Análisis
Modelo de
Diseño
Modelo de
Implementación
Modelo de
Pruebas
Modelo de
Casos de Uso
dependencia de traza
Introducción
Relación externa al modelo,
entre dos elementos,
que representan el mismo
concepto con niveles de
significado diferentes y
con reglas específicas
para derivar uno de otro.El modelo
de análisis
se realiza
a partir de
los
casos
de uso
11
Análisis y especificación de requisitos www.kybele.urjc.es
Modelo de
Caso de Uso
Modelo de
Análisis
Modelo de
Diseño
Modelo de
Pruebas
Modelo de
Despliegue
Modelo de
Implementación
Diagramas de
Casos de Uso
Diagramas de
Clases
Diagramas de
Componentes
Diagramas de
Despliegue
Diagramas de
Secuencias
Diagramas de
Colaboraciones
Diagramas de
Estados
Diagramas de
Actividad
Diagramas de
Objetos
Incluidos paquetes
Diagramas de
Interacción
Introducción
12
Análisis y especificación de requisitos www.kybele.urjc.es
Gestionar asignaturas Realización en análisis
UI asignaturas Gestor de asignaturas Asignatura
participante
Introducción
Modelo de análisis:
Especificación detallada (precisa) de requisitos.
Refina los casos de uso como colaboraciones entre clasificadores:
Clasificadores: clases de análisis, paquetes
Colaboraciones: realizaciones de los casos de uso.
13
Análisis y especificación de requisitos www.kybele.urjc.es
Índice
Introducción
ArtefactosModelo de análisis
Clases de análisis
Realización en análisis de los casos de uso
Paquetes de análisis
ActividadesAnálisis de los casos de uso
Análisis de las clases
Análisis de los paquetes
14
Análisis y especificación de requisitos www.kybele.urjc.es
Artefactos. Modelo de análisis
Representa la estructura global del sistema (subsistemas y/o capas en el modelo de diseño).
*
Clase de análisis
Paquete de análisis
Realización
en análisis
Modelo de análisis
*
**
* *
Diagramas de clases
Diagramas de interacción
Descripción textual
Interfaz Control Entidad
Responsabilidades
Atributos
Relaciones
Descripción
arquitectónica
15
Análisis y especificación de requisitos www.kybele.urjc.es
Índice
Introducción
ArtefactosModelo de análisis
Clases de análisis
Realización en análisis de los casos de uso
Paquetes de análisis
ActividadesAnálisis de los casos de uso
Análisis de las clases
Análisis de los paquetes
16
Análisis y especificación de requisitos www.kybele.urjc.es
Clase de análisis
Interfaz Control Entidad
Resposabilidades
Atributos
Relaciones
Artefactos. Clases de análisis
Representa una abstracción de lo que serán una o varias clases en diseño.
Se centra en los requisitos funcionales.
17
Análisis y especificación de requisitos www.kybele.urjc.es
Utilizamos el ejemplo….
Un sistema de enseñanza virtual
Actor: Estudiante
Caso de Uso: Matricularse
…
Estudiante
Matricularse
Sist. de enseñanza virtual
Matricularse
18
Análisis y especificación de requisitos www.kybele.urjc.es
Artefactos. Clases de análisis
Clases límite o interfaz
Modelan la interacción entre el sistema y los actores u otros sistemas
IU Matriculación
IU Matriculación
<<boundary>>
IU Matriculación
19
Análisis y especificación de requisitos www.kybele.urjc.es
Artefactos. Clases de análisis
Clases límite o interfaz
Representan la interfaz del sistema (ventanas, formularios, ...), pero con poco detalle.
Describen la información presentada al actor y las peticiones que hace el actor al sistema
Estudiante UI Matriculacion
20
Análisis y especificación de requisitos www.kybele.urjc.es
Artefactos. Clases de análisis
Clases Entidad
Representan la información significativa para el sistema.
Modelan la información de larga vida (persistencia).
Pueden provenir de las entidades del dominio o de las del negocio, pero no tienen por qué corresponderse completamente
Alumno
AlumnoAlumno
<<entity>>
21
Análisis y especificación de requisitos www.kybele.urjc.es
Artefactos. Clases de análisis
Clases Entidad
Pueden ser pasivas o activas (comportamiento complejo).
Encapsulan información y operaciones asociadas.
Por ejemplo: repositorios de información.
Estudiante UI Matriculacion AlumnoGestorMatricula
22
Análisis y especificación de requisitos www.kybele.urjc.es
Artefactos. Clases de análisis
Clases Control
Se usan para representar el control de un caso de uso concreto
Representan la coordinación entre objetos
GestorMatriculaGestorMatricula
<<control>>
GestorMatricula
23
Análisis y especificación de requisitos www.kybele.urjc.es
Artefactos. Clases de análisis
Clases Control
Lógica del negocio, cálculos que no se puede asignar a una información concreta .
No representan ni interacciones con el usuario ni problemas de almacenamiento de información.
Estudiante UI Matriculacion GestorMatricula
24
Análisis y especificación de requisitos www.kybele.urjc.es
Índice
Introducción
ArtefactosModelo de análisis
Clases de análisis
Realización en análisis de los casos de uso
Paquetes de análisis
ActividadesAnálisis de los casos de uso
Análisis de las clases
Análisis de los paquetes
25
Análisis y especificación de requisitos www.kybele.urjc.es
Artefactos. Realización en análisis de los casos de uso
Es una colaboración que describe cómo se realiza en análisis un caso de uso en términos de clases de análisis y sus interacciones.
Modelo de casos
de uso
Modelo de análisis
Use case Realización en análisis
<<trace>>
26
Análisis y especificación de requisitos www.kybele.urjc.es
Artefactos. Realización en análisis de los casos de uso
La realización en análisis de un caso de uso incluye:
Diagramas de clases: clases participantes
Diagramas de interacción: escenarios del CU
Descripción textual del flujo de eventos
Requisitos no funcionales si aparecen (si no se deja para el diseño)
27
Análisis y especificación de requisitos www.kybele.urjc.es
Artefactos. Realización en análisis de los casos de uso. Diagramas de clases
Una clase de análisis puede participar en varias realizaciones
Algunas responsabilidades, atributos y asociaciones suelen ser relevantes para una única realización de un caso de uso.
Diagrama de clases para la realización del caso de uso “Matricularse”
Estudiante UI Matriculación Gestor
Matricula
Alumno
28
Análisis y especificación de requisitos www.kybele.urjc.es
Artefactos. Realización en análisis de los casos de uso
La realización en análisis de un caso de uso incluye:
Diagramas de clases: clases participantes
Diagramas de interacción: escenarios del CU
Descripción textual del flujo de eventos
Requisitos no funcionales si aparecen (si no se deja para el diseño)
30
Análisis y especificación de requisitos www.kybele.urjc.es
Artefactos. Realización en análisis de los casos de uso. Diagramas de interacción
La secuencia de acciones en un caso de uso comienza cuando un actor envía un mensaje a un objeto límite.
Se utilizan diagramas de colaboración
: Profesor : UI Profesor : GPub : Asignatura
1: publicar notas
2: visualizar (“¿asignatura?")
3: seleccionar (asignatura, ficheroNotas)
4: publicar (asignatura, ficheroNotas)
5: Notas (ficheroNotas)
6: OK7: OK
8: visualizar (notas publicadas)
31
Análisis y especificación de requisitos www.kybele.urjc.es
Artefactos. Realización en análisis de los casos de uso. Flujo de eventos y Requisitos no
funcionales
La realización en análisis de un caso de uso incluye:
Diagramas de clases: clases participantes
Diagramas de interacción: escenarios del CU
Descripción textual del flujo de eventos Para clarificar los diagramas de colaboración: descripción
textual
Si es muy complejo ¿no será mejor dividir el caso de uso?
Requisitos no funcionales si aparecen (si no se deja para el diseño) Asignados a casos de uso.
Se recogen si aparecen.
32
Análisis y especificación de requisitos www.kybele.urjc.es
Índice
Introducción
ArtefactosModelo de análisis
Clases de análisis
Realización en análisis de los casos de uso
Paquetes de análisis
ActividadesAnálisis de los casos de uso
Análisis de las clases
Análisis de los paquetes
33
Análisis y especificación de requisitos www.kybele.urjc.es
Artefactos. Paquetes de análisis
Para organizar los artefactos de análisis: clases de análisis, realización de casos de uso y otros paquetes.
34
*
Clase de análisis
Paquete de análisis
Realización
en análisis
* *
Análisis y especificación de requisitos www.kybele.urjc.es
Artefactos. Paquetes de análisis
Fuertemente cohesionados y débilmente acoplados.
La cohesión es la medida cualitativa de lo estrechamente relacionados que están los elementos internos de un módulo
El acoplamiento es un concepto abstracto que nos indica el grado de interdependencia entre módulos.
No existen en tiempo de ejecución.
35
Análisis y especificación de requisitos www.kybele.urjc.es
Artefactos. Paquetes de análisis
Analizarse de forma separada por diferentes desarrolladores con diferente conocimiento del dominio.
Los paquetes de análisis se deben crear basándonos en requisitos funcionales y en el dominio del problema y deberían ser reconocibles por las personas con conocimiento del dominio. No deben basarse en requisitos no funcionales o en el dominio de la solución.
Los paquetes de análisis probablemente se convertirán en subsistemas en diseño
36
Análisis y especificación de requisitos www.kybele.urjc.es
Índice
Introducción
ArtefactosModelo de análisis
Clases de análisis
Realización en análisis de los casos de uso
Paquetes de análisis
ActividadesAnálisis de los casos de uso
Análisis de las clases
Análisis de los paquetes
37
Análisis y especificación de requisitos www.kybele.urjc.es 38
Actividades del análisis en el PU
La creación del modelo de análisis comienza identificando:los paquetes de análisis
las clases de entidad evidentes
los requisitos comunes.
Esta identificación se realiza de forma continua a medida que el modelo de análisis evoluciona.
Después se realiza cada caso de uso en términos de clases de análisis exponiendo los requisitos de comportamiento de cada clase (creando responsabilidades), atributos y relaciones.
Según se avanza se refinan y mantienen los paquetes de análisis
Análisis y especificación de requisitos www.kybele.urjc.es
Actividades del análisis en el PU
Para ilustrar las actividades, utilizaremos el ejemplo del cajero automático.
39
Análisis y especificación de requisitos www.kybele.urjc.es
Índice
Introducción
ArtefactosModelo de análisis
Clases de análisis
Realización en análisis de los casos de uso
Paquetes de análisis
ActividadesAnálisis de los casos de uso
Análisis de las clases
Análisis de los paquetes
40
Análisis y especificación de requisitos www.kybele.urjc.es
Actividades. Análisis casos de uso
Identificar las clases de análisis necesarias para la realización del caso de uso.
Distribuir el comportamiento del caso de uso entre las clases de análisis.
Capturar/asignar requisitos no funcionales a clases de análisis.
41
Análisis y especificación de requisitos www.kybele.urjc.es
Actividades. Análisis casos de uso. Identificar las clases de análisis
Identificar las clases de análisis
Clases entidad se derivan de la descripción del caso de uso o de las clases del modelo del dominio.
Una clase interfaz por cada actor (protocolo de comunicación).
Una clase de control que gobierne en flujo del caso de uso
Representar las clases de análisis en un diagrama de clases
Considerar las clases ya existentes
42
Análisis y especificación de requisitos www.kybele.urjc.es
Análisis del caso de uso: “Validar usuario”
43
Análisis y especificación de requisitos www.kybele.urjc.es
Actividades. Análisis casos de uso
Identificar las clases de análisis necesarias para la realización del caso de uso.
Distribuir el comportamiento del caso de uso entre las clases de análisis.
Capturar/asignar requisitos no funcionales a clases de análisis.
44
Análisis y especificación de requisitos www.kybele.urjc.es
Actividades. Análisis casos de uso. Distribuir el comportamiento entre las clases
Describir las interacciones entre objetos
Utilizar diagramas de colaboración
instancias y enlaces
1 diagrama de colaboración por cada camino del caso de uso (Escenarios)
Sobre los diagramas de colaboración:
inicia un actor
expresión de las interacciones: mensajes
45
Análisis y especificación de requisitos www.kybele.urjc.es
Actividades. Análisis casos de uso
Identificar las clases de análisis necesarias para la realización del caso de uso.
Distribuir el comportamiento del caso de uso entre las clases de análisis.
Capturar/asignar requisitos no funcionales a clases de análisis.
Incorporar a la realización los requisitos especiales, para tratarlos en el diseño (persistencia, transacciones por hora…)
46
Análisis y especificación de requisitos www.kybele.urjc.es
Análisis del caso de uso: “Validar usuario” Camino Básico
Caminos alternativos:
“Anular transacción”
“código incorrecto” *
si 3 veces error: cancelar y quedarse con la tarjeta
47
Análisis y especificación de requisitos www.kybele.urjc.es
Caso de Uso: Validar Usuario
Camino alternativo: supera los 3 intentos de validación
49
Análisis y especificación de requisitos www.kybele.urjc.es
Análisis del caso de uso: “Sacar dinero”
50
Análisis y especificación de requisitos www.kybele.urjc.es
Análisis del caso de uso: “Sacar dinero”Camino básico
* MagicDraw: Opción: Show stereotypesText and Icon
51
Análisis y especificación de requisitos www.kybele.urjc.es
Análisis del caso de uso: “Sacar dinero”Camino Alternativo: No hay saldo
Falta
en el cajero no hay dinero.
se ha superado el límite diario
* MagicDraw: Opción: Show stereotypesShape Image
52
Análisis y especificación de requisitos www.kybele.urjc.es
Análisis del caso de uso: “Ingresar dinero”
55
Análisis y especificación de requisitos www.kybele.urjc.es
Análisis del caso de uso: “Transferencia”
Suponemos que el usuario ya ha sido identificado.
La cuenta origen es la de la tarjeta y hay que teclear la de destino.
Comprobar primero si hay saldo y luego sacar
58
Análisis y especificación de requisitos www.kybele.urjc.es
Índice
Introducción
ArtefactosModelo de análisis
Clases de análisis
Realización en análisis de los casos de uso
Paquetes de análisis
ActividadesAnálisis de los casos de uso
Análisis de las clases
Análisis de los paquetes
63
Análisis y especificación de requisitos www.kybele.urjc.es
Actividades. Análisis de las clases
Identificar las responsabilidades
Identificar atributos
Identificación de asociaciones y agregaciones
Identificación de generalizaciones
Capturar requisitos especiales
64
Análisis y especificación de requisitos www.kybele.urjc.es
Actividades. Análisis de las clases
Identificar responsabilidades
En cada caso de uso, ver qué papel juega (diagramas de colaboración).
Combinar papeles y describirlos juntos.
65
Análisis y especificación de requisitos www.kybele.urjc.es
Análisis de las clases. Identificar responsabilidades. “Validar usuario”. Secuencia correcta
66
IU Cajero
Usuario
Mostrar (Ingrese Clave)
Mostrar (Seleccione Opción)
Leer Tarjeta
Validar (DatosTarjeta, Clave)
Leer Clave
Gestor de Autenticación
Validar (DatosTarjeta, Clave)
Mostrar (Mensaje)
Análisis y especificación de requisitos www.kybele.urjc.es
Análisis de las clases. Identificar responsabilidades“Validar usuario”. Código incorrecto
67
IU Cajero
Usuario
Leer Tarjeta
Validar (DatosTarjeta, Clave)
Leer Clave
Gestor de Autenticación
Validar (DatosTarjeta, Clave)
Mostrar (Mensaje)
IU Cajero
Usuario
Leer Tarjeta
Validar (DatosTarjeta, Clave)
Leer Clave
Gestor de Autenticación
Validar (DatosTarjeta, Clave)
Mostrar (Mensaje)
Análisis y especificación de requisitos www.kybele.urjc.es
Análisis de las clases. Identificar responsabilidades“Sacar dinero”. Secuencia correcta
68
IU Cajero
UsuarioLeer Tarjeta
Validar (DatosTarjeta, Clave)
Leer Clave
Gestor de Autenticación
Validar (DatosTarjeta, Clave)
Mostrar (Mensaje)
Entregar Dinero (Cantidad)
Leer importe
Usuario
Validar (DatosTarjeta, Clave)
Gestor de Autenticación
Entregar Tarjeta
Cuenta
Egreso (Cantidad)
Sacar (Cantidad)
Gestor de Sacar Dinero
Análisis y especificación de requisitos www.kybele.urjc.es
Actividades. Análisis de las clases
Identificar las responsabilidades
Identificar atributos
Identificación de asociaciones y agregaciones
Identificación de generalizaciones
Capturar requisitos especiales
69
Análisis y especificación de requisitos www.kybele.urjc.es
Actividades. Análisis de las clases
Identificar atributos
Suelen ser nombres.
Los tipos son conceptuales
Clases entidad: derivados del dominio.
Clases interfaz con actores humanos: campos de texto, etiquetas, etc
Clases interfaz con subsistemas externos: propiedades de la interfaz de comunicación.
Clases control: estado de la sesión actual.
70
Análisis y especificación de requisitos www.kybele.urjc.es
Análisis de las clases. Identificar atributos“Validar usuario”. Secuencia correcta
71
IU Cajero
Gestor de Autenticación
Usuario
DatosTarjeta
DatosTarjeta, Clave
Análisis y especificación de requisitos www.kybele.urjc.es
Análisis de las clases. Identificar atributos“Transferencia”. Secuencia correcta
72
Interfaz de cajero Gestor de Autenticación
UsuariosDelBanco
DatosTarjeta
DatosTarjeta,Clave
Gestor de Transf.
Cantidad
Cuenta
Saldo
Análisis y especificación de requisitos www.kybele.urjc.es
Análisis de las clases
Clase Atributos Responsabilidades
IU Cajero “Definir IU” Mostrar (mensaje)
Leer (tarjeta); leer (clave)
Leer (cantidad)
Entregar Dinero (cantidad)
ContarBilletes
Validar (Cantidad)Leer (opciones)
Usuario DatosTarjeta, Clave Validar (DatosTarjeta, Clave)
Cuenta Saldo
Límite diario
Validar (DatosTarjeta, Clave)
Gestor de Autenticación Nro de Cuenta Validar (DatosTarjeta, Clave)
Gestor de Sacar Dinero Cantidad Sacar (Cantidad)
Gestor de Transferencia Cantidad transferencia (NroCuenta, Cantidad)
… … …
73
Análisis y especificación de requisitos www.kybele.urjc.es
Actividades. Análisis de las clases
Identificar las responsabilidades
Identificar atributos
Identificación de asociaciones y agregaciones
Definir multiplicidad y papeles
Agregación y composición
Identificar generalizaciones y/o especializaciones entre clases
Identificación de generalizaciones
Capturar requisitos especiales
74
Análisis y especificación de requisitos www.kybele.urjc.es
Actividades. Análisis de las clases
Identificar las responsabilidades
Identificar atributos
Identificación de asociaciones y agregaciones
Identificación de generalizaciones
Para extraer comportamiento compartido y común entre clases de análisis, a nivel alto
Capturar requisitos especiales
Requisitos no funcionales asociados a una clase de análisis que se tratarán en diseño e implementación
75
Análisis y especificación de requisitos www.kybele.urjc.es
Índice
Introducción
ArtefactosModelo de análisis
Clases de análisis
Realización en análisis de los casos de uso
Paquetes de análisis
ActividadesAnálisis de los casos de uso
Análisis de las clases
Análisis de los paquetes
76
Análisis y especificación de requisitos www.kybele.urjc.es
Actividades. Análisis de los paquetes
Con el objetivo de refinarlos
Paquetes débilmente acoplados
Elementos cohesionados
Se identifican las clases que tienen la dependencia con clases de otros paquetes para:
estimar el efecto de cambios futuros
reubicar clases contenidas en paquetes que son demasiado dependientes de otros paquetes.
77