Está en la página 1de 141

Ingeniera del Software 1

UN EJEMPLO: EL PROCESO
UNIFICADO DE DESARROLLO
(1 parte)
The unified software development process, Ivar Jacobson, Grade
Booch, James Rumbaug, Ed. Addison Wesley, 1999
El proceso unificado de desarrollo, Ivar Jacobson, Grade Booch, James
Rumbaug, Ed. Addison Wesley, 1999
Ingeniera del Software 2
Un ejemplo: el Proceso Unificado
Caractersticas del Proceso Unificado
Flujos de trabajo fundamentales
Iteracin genrica
Planificar
Gestionar los riesgos
Recursos
Evaluar
Ingeniera del Software 3
Un ejemplo: el Proceso Unificado
Caractersticas del Proceso Unificado
UML
Basado en casos de uso
Centrado en la arquitectura
Iterativo-Incremental
Modelos del proceso
Flujos de trabajo fundamentales
Iteracin genrica
Planificar
Gestionar los riesgos
Recursos
Evaluar
Ingeniera del Software 4
El Proceso Unificado (UP)
Unificacin de tres metodologas de desarrollo
basadas en el paradigma orientado a objetos.
OOSE: Object Oriented Software Engineering (Casos de Uso)
Jacobson, I.
Booch (Diseo) Booch, G.
OMT: Object Modeling Technique (Anlisis) Rumbaugh, J.
Ingeniera del Software 5
El Proceso Unificado (UP)
Es ms que un proceso de desarrollo software
un marco de trabajo que puede especializarse
Basado en componentes conectados a travs de
interfaces
Utiliza UML - Unified Modeling Language
Dirigido por casos de uso
Centrado en la arquitectura
Iterativo e incremental
Ingeniera del Software 6
UML
UML es un lenguaje de modelado
Permite la construccin de distintos modelos
Diagramas de Clase, Diagramas de Casos de Uso, etc.
Es autodescriptivo porque puede especificarse por medio de
un diagrama de clases de UML.
Bloques de construccin:
Elementos: bloques bsicos
Relaciones: ligan los elementos
Diagramas: agrupan colecciones de elementos ligados,
aportando un significado adicional
Ingeniera del Software 7
UML - Elementos y relaciones
Elementos:
Estructurales: Clases, Casos de Uso,
Comportamiento: Interaccin, Estados...
Agrupacin: Paquetes
Anotacin: Notas
Relaciones:
Dependencia (Relacin de Uso)
Asociacin (Relacin estructural)
Generalizacin (Representacin de la herencia.)
Realizacin
Ingeniera del Software 8
Estticos(estructura)
D. de Clases
D. de Objetos
D. de Componentes
D. de Despliegue
Dinmicos(comportamiento)
Casos de Uso
Secuencia
Colaboracin
Estados
Actividades
UML - Diagramas
Ofrecen distintas perspectivas de una abstraccin de
la realidad
Un mismo elemento puede aparecer en distintos
diagramas
En el modelo de un sistema no hay motivo para que
aparezcan obligatoriamente todos los elementos.
Interaccin
Ingeniera del Software 9
Diagrama de clases
Avin militar
Avin comercial
Avin de carga Avin de pasajeros
Mot or
Avin
1..4
1
Piloto
Vendedor de billetes
Reserva
*
1
Vuelo
* 1
1..2
*
* 1
Lnea area
1
*
1
1..4
1..2
*
1
*
1 * 1 *
*
1
{ disj unta, completa }
{ disjunta, completa }
Ingeniera del Software 10
Control y Anlisis
Comment
Acceso a BD
Comment
Rutinas de Coneccion
Comment
Interfaz de Terminal
Comment
Gestin de Cuentas
Comment
Diagramas de Componentes
Ingeniera del Software 11
Diagramas de Despliegue
Punto de Venta
Servidor Central
Terminal de Consulta
Gestin de Cuentas
Comment
Interfaz de Terminal
Comment
Rutinas de Coneccion
Comment
Rutinas de Coneccion
Comment
Interfaz de Terminal
Comment
Rutinas de Coneccion
Comment
Acceso a BD
Comment
Control y Anlisis
Comment
Ingeniera del Software 12
Cliente
Venta Normal
Venta en Rebajas
Vendedor
Venta en Oferta
Diagrama de casos de uso
Ingeniera del Software 13
Esperando
t arj eta
Leyendo
tarjeta
tarjeta int roducida
Esperando
PIN
Validando
PIN
PIN introducido( PIN )
Recogiendo
tarjeta
Es perando
opcin
[ incorrec to ]
[ > 3 intentos ]
[ correcto ]
Ingresando
i ngreso( importe )
Reintegrando
reintegro( importe )
Transferencia
transferencia( cuenta, importe )
Expulsando
dinero
[ OK ]
Expulsar
tarjeta
dinero retirado
[ Not OK ]
Diagrama de estados
Ingeniera del Software 14
: Cliente del banco : Interfaz de cajero : Transaccin
cuentaOrigen : Cuenta
cuentaDestino : Cuenta
1: transferencia
2: teclee cant idad
3: cantidad
4: teclee cuenta destino
5: cuenta dest ino
12: transferencia realizada
6: t rans ferenci a (cuenta, canti dad)
11: OK
7: r ei ntegro (canti dad)
8: OK
9: ingreso (cantidad)
10: OK
Diagrama de colaboracin
Ingeniera del Software 15
Diagramas de Secuencia
: Socio : Encargado
: Libro : Ficha libro : Ficha socio : Prstamo
Coger libro
Solicitar prstamo
Verificar situacin socio
Sit uaci n socio ok
Verificar situacin libro
Situacin libro ok
Introducir prstamo
Aut orizar prst amo
Ingeniera del Software 16
Emitir billete
Pasajero
Vendedor Airline
Solicitar pago Reservar plazas
Confirmar
plaza reservada
Pagar pasaje
Informar alternativas
y precios
Verificar
existencia vuelo
Dar detalles vuelo
Solicitar pasaje
Seleccionar vuelo
Diagramas de actividad
Ingeniera del Software 17
Dirigido por casos de uso
Usuario: alguien o algo.
Una interaccin con el usuario es un caso de uso.
Un caso de uso:
Es una funcin del sistema que da al usuario un resultado til.
Captura los requisitos funcionales.
Qu debe hacer el sistema para cada usuario?
Modelo de casos de uso.
Conducen el proceso de desarrollo:
Modelos de diseo e implementacin.
Pruebas.
Se desarrollan y evolucionan junto a la arquitectura del
sistema.
Ingeniera del Software 18
Centrado en la arquitectura
Edificio: estructura, servicios, electricidad, fontanera,...
Agrupa aspectos estructurales y dinmicos
significativos
Influencias: plataforma (BBDD, SO, protocolo de
comunicacin,...), aspectos legales, componentes
reusables disponibles, requisitos no funcionales,...
Es una vista del diseo completo que hace visibles las
caractersticas principales.
Cmo se relacionan casos de uso y arquitectura?
Funcin y forma
Ingeniera del Software 19
Centrado en la arquitectura
Tareas:
Crear una arquitectura inicial no especfica de los casos de
uso.
Trabajar con un conjunto seleccionado de casos de uso que
representan las tareas clave del sistema.
Caso de uso - subsistemas, clases y componentes.
Evolucin.
Ingeniera del Software 20
Iterativo - Incremental
Divisin del proyecto.
Una iteracin produce un incremento.
Iteraciones controladas.
Factores para la seleccin en una iteracin:
La iteracin trata un grupo de casos que extienden la
funcionalidad.
La iteracin trata los riesgos ms importantes.
Incremento no siempre es aditivo.
Cada iteracin:
casos relevantes-diseo quiado por arquitectura-
implementar-verificar
Beneficios.
Ingeniera del Software 21
...
Enfrego
CicIos
Concepcion EIoborocion Tronsicion Consfruccion
Ifer.
I
Ifer.
Z
... ... ... ... ... ...
Ifer.
n
Foses
Iferoc.
Iterativo - Incremental
Varios ciclos que concluyen con un producto.
Cdigo fuente, manuales y documentos.
Hitos por fases (Milestones)
Ingeniera del Software 22
Diseo de
Arquitectura
Implementacin
de Arquitectura
Estructura Modelo
de Casos de Uso
Descubre Actores
y Casos de Uso
Analista de
Sistemas
Detalla un
Caso de Uso
Especifica
Casos de Uso
Prototipo del
Interfaz de Usuario
Diseador de
Interface de Usuario
Anlisis de
Arquitectura
Prioriza
Casos de Uso
Arquitecto
Disea un
Caso de Uso
Analiza un
Caso de Uso
Ingeniero de
Casos de Uso
Ingeniero de
Componentes
Disea
una clase
Analiza
un
Paquete
Analiza
una Clase Disea un
Subsistema
Implementa
una clase
Implementa
Subsistema
Ejecuta Test
Unitario
Implementa
Test
Evalua
Test
Disea
Test
Ingeniero de
pruebas
Planifica
Test
Integrador de
Sistemas
Integra
Sistema
Ejecuta Test
de Integracin
Ejecuta test
del sistema
El proceso
Papeles y actividades
Ingeniero de
pruebas de
integracin
Ingeniero de
pruebas de
sistema
Ingeniera del Software 23
El proceso
El producto (salidas)
ModeIo de
onoIisis
ModeIo de
diseo
ModeIo de
despIiegue
ModeIo de
impIemenfocion
ModeIo de
pruebos
ModeIo de
cosos de uso
Especificodo por
PeoIi;odo por
Disfribuido por
ImpIemenfodo por
Verificodo por
- Pefino Ios cosos de uso
oforgondoIes mos defoIIe
- Asigno Io funcionoIidod o
un grupo de objefos
- Define Io esfrucfuro
esfofico deI sisfemo.
- PefIejo Ios cosos de uso
como coIoborociones
- Define Io configurocion
de Ios nodos de
procesomienfo y Ios
correspondencios enfre
eIIos.
- IncIuye Ios componenfes
(codigo fuenfe) y Ios
reIociones enfre Ios
mismos
- Define Ios cosos de
pruebo poro voIidor Ios
cosos de uso
Ingeniera del Software 24
El proceso
Fases, iteraciones y actividades
Requisitos
Diseo
ImpIuntucin
Pruebu
AnIisis
PIonificocion
AnoI. Piesgos
Preporocion
EIoborocion Consfruccion
Verificocion
Tronsicion
FASES
WorkfIow
Iferocion-es
InicioI-es
Ifer.
#I
Ifer.
#Z
Ifer.
#3
Ifer.
#4
Ifer.
#b
Ifer.
#o
Ifer.
#7
(Adopfodo de Jocobson, I999)
Iterucin en
Fuse de EIuborucin
Ingeniera del Software 25
El proceso
Fases, iteraciones y actividades
Una Fase es un intervalo de tiempo entre dos hitos importantes del
proceso donde:
Se cumple un conjunto definido de objetivos
Se completan artefactos
Se toman decisiones de continuar o no
Iniciacin, Elaboracin, Construccin, Transicin
Dentro de cada fase hay varias iteraciones
Una iteracin representa un ciclo de desarrollo completo.
El nfasis en cada flujo de trabajo es diferente dependiendo de la
fase
Ingeniera del Software 26
El proceso
Fases, iteraciones y actividades
Ingeniera del Software 27
Un ejemplo: el Proceso Unificado
Caractersticas del Proceso Unificado
Flujos de trabajo fundamentales
Requisitos
Anlisis
Diseo
Implementacin
Pruebas
Iteracin genrica
Planificar
Gestionar los riesgos
Recursos
Evaluar
Ingeniera del Software 28
Captura de requisitos
La captura de requisitos es complicada
Creamos cdigo para otros
Los usuarios no los conocen y les cuesta especificarlos de
forma precisa
Suelen ser varios usuarios sin una visin global
Los requisitos cambian
Las condiciones en las que se especifico un requisito varian
Ingeniera del Software 29
Captura de requisitos
Objetivo: guiar el desarrollo hacia el sistema correcto
El cliente debe ser capaz de leer y comprender el
resultado de la captura
El resultado ayuda al jefe de proyecto a planificar las
iteraciones y los recursos
Usuarios muy diferentes
Puntos de partida Diferentes
Se deben reducir los riesgos
Ingeniera del Software 30
Captura de requisitos
Pasos a seguir
Enumerar los requisitos candidatos
Comprender el contexto del sistema
Capturar requisitos funcionales
Capturar requisitos no funcionales
Se realizan de forma conjunta
Ingeniera del Software 31
Captura de requisitos
TAREA
Enumerar requisitos
candidatos
Entender el contexto
del sistema
Capturar requisitos
funcionales
Capturar requisitos no
funcionales
PRODUCTOS (artifact)
Lista de caractersticas
Modelo de negocio o de
dominio
Modelo de casos de uso
Requisitos suplementarios
o casos individuales
Ingeniera del Software 32
Artefactos de requisitos
Modelo de casos de uso
Actores
Casos de uso
Varios diagramas para diferentes perspectivas
Descripcin de la arquitectura
Glosario
Prototipo de la interfaz de usuario
Sistema de casos de uso
Caso de uso
Modelo de casos de uso
1
*
*
Acfor
Ingeniera del Software 33
Artefactos de requisitos
Glosario Actor
Analista de
sistemas
Modelo casos
de uso
EspeciIicador
de casos de uso
Caso de uso Descripcion de
la arquitectura
Arquitecto Diseador de
interIaz de usuario
Prototipo
de interIaz
de usuario
Ingeniera del Software 34
Flujo de trabajo de la captura de
requisitos funcionales (Actividades)
Analista
Arquitecto
EspeciIicador
Diseador
Encontrar actores y
casos de uso
Priorizar los casos de
uso
Detallar un caso de
uso
Estructurar el modelo
de casos de uso
Prototipar la interIaz
de usuario
Ingeniera del Software 35
Flujo de trabajo de la captura de
requisitos funcionales (Actividades)
Encontrar actores y casos de uso
Analista
Encontrar actores y
casos de uso
Glosario
Modelo del
negocio
Modelo de
casos de uso
(esbozado)
Requisitos
adicionales
Lista de
caracterist.
Ingeniera del Software 36
Flujo de trabajo de la captura de
requisitos funcionales (Actividades)
Priorizar casos de uso
Arquitecto
Priorizar casos de
uso
Descripcion de la
arquitectura (vista del
modelo de casos de uso)
Modelo de
casos de uso
Requisitos
adicionales
Glosario
Ingeniera del Software 37
Flujo de trabajo de la captura de
requisitos funcionales (Actividades)
Detallar un caso de uso
EspeciIicador de
casos de uso
Detallar un caso de
uso
Modelo de
casos de uso
Requisitos
adicionales
Glosario
Caso de uso
(detallado)
Ingeniera del Software 38
Flujo de trabajo de la captura de
requisitos funcionales (Actividades)
Prototipar la interfaz de usuario
Diseador de
interIaz de usuario
Prototipar la interIaz
de usuario
Modelo de
casos de uso
Requisitos
adicionales
Glosario
Prototipo
de interIaz
de usuario
Caso de uso
(descrito)
Ingeniera del Software 39
Flujo de trabajo de la captura de
requisitos funcionales (Actividades)
Estructurar el modelo de casos de uso
Analista de
sistemas
Estructurar el
modelo de casos
de uso
Modelo de
casos de uso
Requisitos
adicionales
Glosario
Caso de uso
(descrito)
Modelo de
casos de uso
(estructurado)
Ingeniera del Software 40
Caso de uso Validar usuario
Flujo de eventos
RESPUESTA DEL SISTEMA
2. Pide la clave de identificacin
4. Comprueba la clave
5. Si es vlida presenta las opciones
disponibles y se termina el caso de
uso
ACCIN DEL ACTOR
1. Este caso de uso empieza
cuando un Cliente introduce una
tarjeta en el cajero
3. Introduce la clave
CAMINOS ALTERNATIVOS
Lnea 3. El cliente cancela la transaccin
Lnea 4. La clave no es vlida y se reinicia el caso de uso. Si ocurre tres
veces se cancela la transaccin y no se devuelve la tarjeta
HAY QUE DEFINIR ESTOS DOS FLUJOS DE EVENTOS!!
Ingeniera del Software 41
Caso de uso Sacar dinero
Flujo de eventos
RESPUESTA DEL SISTEMA
1. Este caso de uso empieza cuando
un Cliente ha sido identificado
Presenta las opciones de
operaciones disponible
3. Pide la cantidad a retirar.
5. Procesa la peticin y da el dinero
solicitado.
Devuelve la tarjeta y genera un
recibo
ACCIN DEL ACTOR
2. Selecciona la operacin de
Reintegro
4. Introduce la cantidad requerida
6. Recoge la tarjeta.
7. Recoge el recibo
8. Recoge el dinero y termina el CU
Ingeniera del Software 42
Caso de uso Sacar dinero
Flujo de eventos
CAMINOS ALTERNATIVOS
Lnea 5: La cantidad solicitada supera el saldo. Se indica el error y se
cancela la operacin.
Lnea 5: La cantidad solicitada supera el lmite diario. Se indica el error y
se vuelve a pedir otra cantidad.
Lnea 5: En el cajero no hay dinero.
HAY QUE DEFINIR ESTOS TRES FLUJOS DE EVENTOS!!
Podramos definir diagramas de estados
Requisito no funcional asociado al caso de uso Sacar dinero:
El tiempo de respuesta para un cliente debe ser <30 sg en el 90% de los
casos
Ingeniera del Software 43
Ejemplo. Cajero automtico
Socor
dinero
Ingresor
dinero
Tronsf.
ConsuIfor
soIdo
VoIidor
usuorio
Peponer
dinero
Pecoger
dinero
CIienfe
deI bonco
EmpIeodo
sucursoI
Socor
con viso
Usuorio
exfends
PI
P4,...
PZ, P3,...
Ingeniera del Software 44
Anlisis
Se trabaja con conceptos
Especificacin ms precisa de los requisitos
Se utiliza el lenguaje de desarrolladores
Facilita comprensin, preparacin,
modificacin y mantenimiento de requisitos
Primera aproximacin al modelo de diseo
Ingeniera del Software 45
Artefactos de anlisis
Descripcion de la
arquitectura
Realizacion caso
de uso -Analisis
Clase del
analisis
Arquitecto
Modelo de
analisis
Paquete del
analisis
Ingeniero de
componentes
Ingeniero de
casos de uso
Ingeniera del Software 46
Artefacto: Modelo de Anlisis
Sistema de
analisis
*
*
Realizacion caso
de uso -Analisis
Clase del
analisis
Paquete del
analisis
*
* *
*
Ingeniera del Software 47
Artefacto: Clases de Anlisis
Una clase de anlisis representa una abstraccin de
una o mas clases del diseo del sistema
Se centra en el tratamiento de los requisitos
funcionales
Son evidentes en el dominio del problema.
Sus atributos, operaciones y relaciones estn a un
nivel mayor de abstraccin.
Pueden clasificarse fcilmente en clases de entidad,
interfaz y de control.
Ingeniera del Software 48
Artefacto: Clases de Anlisis
Clase del
analisis
Clase de
control
Clase de
entidad
Clase de
interIaz
Ingeniera del Software 49
Artefacto: Realizacin de caso de uso-
anlisis
Define como se lleva a cabo y se ejecuta un caso de
uso en trminos de clases del anlisis y de sus
objetos de anlisis en colaboracin.
Una realizacin de caso de uso queda definida por:
Diagramas de clases del anlisis
Diagramas de interaccin de objetos del anlisis
Una descripcin textual del flujo de sucesos
Ingeniera del Software 50
Artefacto: Realizacin de caso de uso-
anlisis (Diag. De Clases)
Ingeniera del Software 51
Artefacto: Realizacin de caso de uso-
anlisis (Diag. De Colaboracin)
Ingeniera del Software 52
Artefacto: Realizacin de caso de uso-
anlisis: (Desc. Textual)
El comprador consulta a travs del IU Solicitud
de Pago las facturas gestionadas por el sistema
para encontrar las recibidas (1,2). El IU Solicitud
de Pago utiliza el Gestor de Pedidos para
comprobar las facturas con sus correspondientes
confirmaciones de pedido
Ingeniera del Software 53
Artefacto: Paquete del anlisis
Proporcionan un medio para organizar los artefactos
del modelo de anlisis en piezas manejables.
Son cohesivos y dbilmente acoplados
Basados en los requisitos funcionales y en el dominio
del problema.
Generan subsistemas del diseo
Realizacion
caso de uso -
Analisis
Clase del
analisis
Paquete del
analisis
*
*
*
Ingeniera del Software 54
Artefacto: Descripcin de la Arquitectura
Contiene una Vista de la arquitectura del modelo de
anlisis
Descomposicin del modelo en paquetes
Clases fundamentales:
De entidad, importante en dominio
De interfaz, comunicacin importante
De control, con amplia cobertura
Generales, centrales y con muchas relaciones
Realizaciones de casos de uso
Ingeniera del Software 55
Flujo de trabajo del anlisis
1. Anlisis de la arquitectura
Identificar paquetes de anlisis
Identificar clases de entidad
Requisitos comunes
2. Analizar (refinar) un caso de uso
Identificar clases de anlisis
Describir interacciones entre los objetos del anlisis
Capturar req. especiales sobre la realizacin del CU
3. Analizar una clase
Identificar responsabilidades y atributos
Identificar relaciones: asoc., agreg. y gener.
Capturar req. especiales sobre la realizacin del CU
4. Analizar un paquete
Ingeniera del Software 56
Actividades
Analizar un caso de
uso
Arquitecto
Ingeniero de
componentes
Ingeniero de
casos de uso
Analisis de la
arquitectura
Analizar una clase Analizar un paquete
Ingeniera del Software 57
Actividades: Anlisis de la Arquitectura
Arquitecto
Analisis de la
arquitectura
Modelo de
casos de uso
Requisitos
adicionales
Descripcion de la
arquitectura (vista del
modelo de casos de uso)
Paquete del
analisis (esbozo)
Clase del
analisis (esbozo)
Descripcion de la
arquitectura (vista del
modelo de analisis)
Ingeniera del Software 58
Actividades: Analizar un caso de uso
Ingeniero de casos
de uso
Analizar un
caso de uso
Modelo de
casos de uso
Requisitos
adicionales
Descripcion de la
arquitectura (vista del
modelo de analisis)
Clase del
analisis (esbozo)
Realizacion caso
de uso - analisis
Ingeniera del Software 59
Actividades: Analizar una clase
Ingeniero de
componentes
Analizar una
clase
Clase del
analisis (esbozo)
Realizacion caso
de uso - analisis
Clase del analisis
(terminada)
Ingeniera del Software 60
Actividades: Analizar un paquete
Ingeniero de
componentes
Analizar un
paquete
Descripcion de la
arquitectura (vista del
modelo de analisis)
Paquete del
analisis(esbozo)
Paquete del
analisis
(terminado)
Ingeniera del Software 61
Vali dar usuario
Reali zaci n en anli sis
UsuariosDelBanco
(from Logi cal Vi ew)
Autenti car
(fr om L ogi cal Vie w)
Interfaz de caj ero
Anlisis del caso de uso: Validar usuario
Ingeniera del Software 62
Anlisis del caso de uso: Validar usuario
Secuencia correcta
: Interfaz de cajero : Cliente del banco
1: introducir tarjeta
2: teclear cdigo
3: cdigo
: Autenticar
4: autentica (datos, cdigo)
: UsuariosDelBanco
5: valida (datos, codigo)
6: OK
7: visualiza (opciones)
8: seleccioneOpcion (opciones)
Ingeniera del Software 63
Anlisis del caso de uso: Validar usuario.
Cdigo incorrecto
: Interfaz de cajero : Cliente del banco
1: introducir tarjeta
2: teclear cdigo
3: cdigo
: Autenticar
4: autentica (datos, cdigo)
: UsuariosDelBanco
5: valida (datos, codigo)
6: Error
7: visualiza (error)
8: teclear cdigo
Ingeniera del Software 64
- Suponemos que el usuario ya ha sido identificado (se ha ejecutado
el caso de uso anterior).
- Ahora selecciona la opcin transferencia. Consideramos que la
cuenta origen es la de la tarjeta y hay que teclear la destino.
- El importe y el nmero de cuenta destino deben darse juntos. Evitar
condiciones de carrera: mirar primero si hay saldo y luego sacar.
Anlisis del caso de uso: Transferencia
Realizacin en anlisis
Interfaz de cajero
Cuenta
Transaccin
Transferencia
Ingeniera del Software 65
Anlisis del caso de uso: Transferencia
Secuencia correcta
: Cliente del banco : Interfaz de cajero : Transaccin
cuentaOrigen : Cuenta
cuentaDestino : Cuenta
1: transferencia
2: teclee cantidad
3: cantidad
4: teclee cuenta destino
5: cuenta destino
12: transferencia realizada
6: transferencia (cuenta, cantidad)
11: OK
7: reintegro (cantidad)
8: OK
9: ingreso (cantidad)
10: OK
Ingeniera del Software 66
Anlisis del caso de uso: Transferencia
No hay saldo en la cuenta origen
: Cliente del banco
: Interfaz de cajero : Transaccin
cuentaOrigen : Cuenta
1: transferencia
2: teclee cantidad
3: cantidad
4: teclee cuenta destino
5: cuenta destino
10: no hay fondos
6: transferencia (cuenta, cantidad)
9: no hay fondos
7: reintegro (cantidad)
8: no hay saldo
Ingeniera del Software 67
Anlisis del caso de uso: Transferencia
No se puede acceder a la cuenta destino
: Cliente del banco : Interfaz de cajero : Transaccin
cuentaOrigen : Cuenta
cuentaDestino : Cuenta
11: rollback
1: transferencia
2: teclee cantidad
3: cantidad
4: teclee cuenta destino
5: cuenta destino
13: error
6: transferencia (cuenta, cantidad)
12: error
7: reintegro (cantidad)
8: OK
9: ingreso (cantidad)
10: error
Ingeniera del Software 68
Modelo de clases de anlisis
Cliente del banco
Interfaz de cajero Cuenta
Transaccin
UsuariosDelBanco
Autenticar
Ingeniera del Software 69
Anlisis de las clases
CLASE CUENTA.
Interviene en tres casos de uso:
- sacar dinero
reintegro (importe)
- ingresar dinero
ingreso (importe)
- transferencia
las dos operaciones anteriores
atributos - - > saldo
Ingeniera del Software 70
Anlisis de las clases
CLASE TRANSACCIN
Interviene en cuatro casos de uso:
- validar usuario
autentica (datos, cdigo)
atributos - - > cdigo cuenta
- sacar dinero
retirarDinero (importe)
- ingresar dinero
ingresarDinero (importe)
- transferencia
transferencia (cuenta, cantidad)
rollback
Ingeniera del Software 71
Diseo
Se modela el sistema para que de soporte a los requisitos
funcionales y no funcionales.
Su entrada esencial es el modelo de anlisis (una comprensin
detallada de los requisitos)
Propsitos:
Profundizar en la requisitos no funcionales y restricciones
dependientes de la plataforma.
Crear una entrada apropiada para la implementacin
Descomponer los trabajos de implementacin en partes mas
manejables y que permitan concurrencia.
Capturar las interfaces entre los subsistemas.
Es el centro de atencin final de la fase de elaboracin e
iteraciones iniciales de la fase de construccin
Ingeniera del Software 72
Artefactos de diseo
Descripcion de
la arquitectura
Realizacion
caso de uso -
diseo
InterIaz
Arquitect
o
Modelo de
diseo
Subsistema de
diseo
Ingeniero de
componentes
Ingeniero de
casos de uso
Modelo de
despliegue
Clases
del
diseo
Ingeniera del Software 73
Artefactos de diseo: modelo de diseo
Sistema de
diseo
*
Realizacion caso
de uso - diseo
*
*
*
*
Clases
del
diseo
InterIaz
*
Subsistema de
diseo
*
*
Modelo de objetos UML que contiene el diseo de la
aplicacin.
Describe la realizacin fsica de los casos de uso:
como afectan los requisitos funcionales, no
funcionales y otras restricciones.
Ingeniera del Software 74
Artefactos de diseo: Clase de diseo
Sintaxis del lenguaje de programacin
Visibilidad de atributos y operaciones (public, private,
protected)
Traduccin de las relaciones
Mtodos por pseudocdigo
Estereotipos que se correspondan con
construcciones del lenguaje de programacin.
Pueden realizar interfaces
Clases del
diseo
InterIaz
> realiza
Ingeniera del Software 75
Artefactos de diseo: Realizacin de un
caso de uso-diseo
Es una colaboracin en el modelo de diseo que
describe como se realiza un caso de uso en termino
de clases y objetos de diseo
Contenido:
Diagramas de clases de realizacin
Diagramas de interaccin (clases, subsistemas, interfaces)
Flujo de sucesos-diseo
Requisitos de implementacin
Realizacion caso
de uso - diseo
Realizacion caso
de uso - analisis
trace
Ingeniera del Software 76
Artefactos de diseo: Subsistema de
Diseo
Para organizar los artefactos del diseo en piezas
mas manejables.
Debe ser cohesivo y dbilmente acoplado
> realiza
*
Realizacion caso
de uso - diseo
*
*
Clases del
diseo
InterIaz
*
Subsistema de
diseo
*
Ingeniera del Software 77
Artefactos de diseo: Interfaz
Se utilizan para especificar las operaciones que
proporcionan las clases y subsistemas de diseo
Separan la especificacin de funcionalidad en
trmino de operaciones de sus implementaciones en
trminos de mtodos
Clases del
diseo
InterIaz
> realiza
Subsistema de
diseo
> realiza
*
*
Ingeniera del Software 78
Artefactos de diseo: Descripcin de la
Arquitectura
Descomposicin en subsistemas
Traza con clases de anlisis
Clases fundamentales (abstractas)
Clases generales y centrales
Realizaciones de caso de uso
Modelo de
diseo
Descripcion de
la arquitectura
Ingeniera del Software 79
Artefactos de diseo: Modelo de
Despliegue
Representa una correspondencia entre la
arquitectura del Hardware y la arquitectura
del Software
Describe la distribucin fsica del sistema en
nodos de computo.
Cada nodo representa un recurso de
computo
Las relaciones entre nodos representan
medios de comunicacin entre ellos.
La funcionalidad de un nodo se determina
por los componentes que se le asignan
Modelo de
despliegue
Nodo
*
Ingeniera del Software 80
Diseo: Actividades
Disear un caso de
uso
Arquitecto
Ingeniero de
componentes
Ingeniero de
casos de uso
Diseo de la
arquitectura
Disear una clase Disear un
subsistema
Ingeniera del Software 81
1. Diseo de la arquitectura
Identificar nodos y configuracin, subsistemas, clases
2. Disear un caso de uso
Identificar clases de diseo y subsistemas
Distribuir comportamiento del CU
Capturar requisitos de implementacin
3. Disear una clase
4. Disear un subsistema
Diseo: Actividades
Ingeniera del Software 82
Actividades: Diseo de la Arquitectura
Arquitecto
Diseo de la
arquitectura
Modelo de
casos de uso
Requisitos
adicionales
Descripcion de la
arquitectura (vista del
modelo de analisis)
Modelo de
analisis
Subsistema
InterIaz
Modelo de
despliegue
Clase de
diseo
Descripcion arquitectura
(vista de modelo de
diseo y despliegue)
Ingeniera del Software 83
Actividades: Diseo de un caso de uso
Disear un caso de
uso
Ingeniero de
casos de uso
Modelo de
casos de uso
Requisitos
adicionales
Modelo de
despliegue
Subsistema
InterIaz
Clase de
diseo
Modelo de
analisis
Modelo de
diseo
Realizacion caso
de uso - diseo
Ingeniera del Software 84
Actividades: Diseo de una clase
Ingeniero de
componentes
Disear una clase
InterIaz
Clase de
diseo
Realizacion caso
de uso - diseo
Clase de diseo
(completa)
Clase del analisis
(completa)
Ingeniera del Software 85
Actividades: Diseo de un Subsistema
Ingeniero de
componentes
Disear un
subsistema
InterIaz
(terminada)
Subsistema
(terminado)
Descripcion arquitectura
(vista modelo de diseo)
InterIaz
(esbozada)
Subsistema
(esbozado)
Ingeniera del Software 86
Val idar usuario
(from Use Case Vi ew)
Realizacin en diseo
LectorDeTarjetas
Pantalla
Teclado
GestorDeCliente
Us uariosDelBanco
Transaccin
Diseo del caso de uso: Validar usuario
Ingeniera del Software 87
: Cliente del banco
:
Lect orDeTarj etas
: Pantal la : Teclado
: GestorDeCliente : Transaccin : UsuariosDelBanco
2: i ntroduci rTarj eta (tarjet a)
3: datosTarjeta (tarjeta)
4: vis ualizar (Introduci r PIN)
1: l eerTarj eta
5: OK
6: leerPIN
7: introduci rPIN (PIN)
8: datosPIN (PIN)
9: autent ic a (datos , PIN)
10: valida (datos, PIN)
11: OK
13: vi sual iza (opciones)
12: almacenaDatos (datos)
14: visualizar (opciones)
Diseo del caso de uso: Validar usuario
Secuencia correcta
Ingeniera del Software 88
: Cliente del banco
:
Lect orDeTarj etas
: Pantal la : Teclado
: GestorDeCliente : Transaccin : UsuariosDelBanco
2: i ntr oduci rTarj eta (tarjet a)
7: introduci rPIN ( PIN)
3: datosTarjeta (tarjeta)
4: vis ualizar ( Introduci r PIN)
1: l eerTarj eta
5: OK
6: leerPIN
8: datosPIN (PIN)
9: autent ic a (datos , PIN)
10: valida (datos, PIN)
11: Error
12: visualiza (error PIN)
13: visuali zar (error PIN)
Hay ms escenarios: anular transaccin y tres intentos
Diseo del caso de uso: Validar usuario
Cdigo incorrecto
Ingeniera del Software 89
- Suponemos que el usuario ya ha sido identificado (se ha ejecutado
el caso de uso anterior). Ahora selecciona la opcin transferencia.
Transferencia
(from Use Case Vi ew)
Realizacin en diseo,
transferenc ia
Teclado
Pantalla
GestorDeCliente Transaccin
Cuenta Cuentas
2
Diseo del caso de uso: Transferencia
Ingeniera del Software 90
: Cliente del banco
: Teclado : Pantalla
: GestorDeCliente : Transaccin : Cuentas : Cuenta
1: opcion (transferencia)
4: IntroducirImporte
2: transferencia
3: visualizar ( Tecl ee import e)
5: importe
19: vis ualizar (Transferenci a real izada)
20: visuali zar ( Reti re su tar jet a)
6: vi sual izar (Teclee cuent a desti no)
9: t ransferencia (cuentaOrigen, cuentaDestino,import e)
10: reintegro (cuentaOrigen, importe)
11: reintegro (importe)
12: OK
13: OK
18: OK
7: cuentaDes ti no ( cuent a)
8: cuentaDestino (cuenta)
14: ingreso (cuentaDestino, importe)
15: ingreso (importe)
16: OK
17: OK
Diseo del caso de uso: Transferencia
Secuencia correcta
Ingeniera del Software 91
: Cliente del banco
: Teclado : Pantalla
: GestorDeCliente : Transaccin : Cuentas : Cuenta
1: opcion (transferencia)
4: IntroducirImporte
7: cuentaDes ti no (cuent a)
2: transferencia
3: visualizar (Tecl ee import e)
5: importe
15: visualiz ar ((No hay fondos))
16: visuali zar (Reti re su tarjet a)
6: vi sual izar (Teclee cuent a desti no)
8: cuentaDestino (cuenta)
9: t ransferencia (cuentaOrigen, cuentaDestino,import e)
14: no hay fondos
10: reintegro (cuentaOrigen, importe)
13: no hay saldo
11: reintegro (importe)
12: no hay saldo
Diseo del caso de uso: Transferencia
No hay saldo en la cuenta origen
Ingeniera del Software 92
Modelo de clases de diseo
CajonDinero
Impresora
LectorDeTarjetas
Pantalla
Teclado
DarDinero
Cliente del banco
GestorDeCliente
Cuenta
UsuariosDelBanco
Transaccin
Cuentas
Ingeniera del Software 93
CajonDinero
crearCajon() : CajonDi nero
abrirCajon()
cerrarCajon()
contarCantidad() : Dinero
LectorDeTarjetas
crearLec tor() : Lect orDeTarj etas
leerTarjeta() : datosTarj eta
Pantalla
vis uali zar(mensaj e : St ri ng)
c rearPantall a() : Pantal la
Teclado
crearTeclado() : Teclado
leerPIN() : unPIN
leerOpcion() : unaOpcion
leerCantidad() : Dinero
leerNumCuenta() : unIDCuenta
DarDinero
crear() : DarDinero
expulsar(importe : Dinero)
GestorDeCli ente
crear() : GestorDeCliente
creaCajeroVi rtual()
inici arSesion()
Impresora
crearImpresora() : Impres ora
imprimir(mensaje : String)
Diseo de las clases
Ingeniera del Software 94
Diseo de las clases
GestorDeCliente
miTransaccion : Transaccin
crear() : GestorDeCliente
creaCajeroVirtual()
iniciarSesion()
visualizar(resultados : String)
Transaccin
miCliente : GestorDeCliente
datosTarjeta : DatosTarjeta
numIntentosFallidos : 1..3 = 0
cuentas : Cuentas
usuarios : UsuariosDelBanco
almacenarDatos(datos : DatosTarjeta)
validar(importe : Dinero, cantidad : Dinero)
autenticar(datos : DatosTarjeta, PIN : UnPIN) : Boolean
retirarDinero(importe : Dinero) : Boolean
ingresarDinero(importe : Dinero) : Boolean
trasnsferencia(cuentaOrigen : Cuenta, cuentaDestino : Cuenta, importe : Dinero) : Boolean
UsuariosDelBanco
usuarios : Dictionary
validar(datos : DatosTarjeta, PIN : UnPIN) : Boolean
Cuentas
cuentas : Dictionary
reintegro(cuenta : Cuenta, importe : Dinero) : Boolean
ingreso(cuenta : Cuenta, importe : Dinero) : Boolean
Cuenta
datos : DatosCuenta
limiteDiario : Dinero = 50000
reintegro(importe : Dinero) : Boolean
ingreso(importe : Dinero) : Boolean
Ingeniera del Software 95
Esperando
t arj eta
Leyendo
tarjeta
tarjeta int roducida
Esperando
PIN
Validando
PIN
PIN introducido( PIN )
Recogiendo
tarjeta
Es perando
opcin
[ incorrec to ]
[ > 3 intentos ]
[ correcto ]
Ingresando
i ngreso( importe )
Reintegrando
reintegro( importe )
Transferencia
transferencia( cuenta, importe )
Expulsando
dinero
[ OK ]
Expulsar
tarjeta
dinero retirado
[ Not OK ]
Clase GestorDeCliente
Ingeniera del Software 96
Implementacin
Se implementa el sistema en trminos de
componentes: ficheros de cdigo fuente, scripts,
ficheros de cdigo binarios, ejecutables y similares.
Objetivos:
planificar las integraciones de sistema necesarias en cada
iteracin
distribuir el sistema asignando componentes ejecutables a
nodos en el diagrama de despliegue
implementar las clases y subsistemas encontrados durante el
diseo
probar los componentes individualmente, integrarlos
(compilandolos y enlazandolos en uno o ms ejecutables)
Ingeniera del Software 97
Artefactos de implementacin
Descripcion de la
arquitectura
InterIaz
Arquitecto
Modelo de
implementac.
Implementac.
subsistema
Ingeniero de
componentes
Integrador de
sistemas
Modelo de
despliegue
Componente
Integracion de
sistema
Ingeniera del Software 98
Artefactos de implementacin: Modelo de
Implementacin
Cmo los elementos del modelo de diseo (clases) se
implementan en trminos de componentes (ficheros de
cdigo fuente, ejecutables...)
Cmo se organizan los componentes (de acuerdo con
los mecanismos de estructuracin y modularizacin del
entorno de implementacin y los lenguajes de
programacin utilizados)
Cmo dependen los componentes unos de otros
Ingeniera del Software 99
Artefactos de implementacin: Modelo de
Implementacin
Sistema de
implementac.
*
*
*
InterIaz
*
Subsistema de
implementac.
*
*
Componente
Ingeniera del Software 100
Artefactos de implementacin:
Componente
Empaquetamiento fsico de los elementos de un
modelo cada uno puede implementar varios elementos
dependiendo del lenguaje que se utilice.
Proporcionan las mismas interfaces que los elementos
que implementan.
Tienen:
relaciones de traza con los elementos del diseo que
implementan.
dependencias de compilacin entre ellos (unos deben haberse
compilado antes para poder compilar otros).
Ingeniera del Software 101
Artefactos de implementacin:
Componente
<<executable>> programa que puede ser ejecutado en
un nodo
<<file>> fichero que contiene cdigo fuente o datos
<<library>> librera esttica o dinmica
<<table>> una tabla de base de datos
<<document>> un documento
Componente
trace
Clase de
diseo
InterIaz InterIaz
Ingeniera del Software 102
Artefactos de implementacin:
Subsistema de Implementacin
Forma de organizar los artefactos del
modelo de implementacin en trozos ms
manejables.
Un subsistema puede estar formado por:
componentes
interfaces
otros subsistemas (recursivamente)
Se manifiestan a travs de un mecanismo
de empaquetamiento concreto de un
entorno de implementacin determinado.
Paquete en Java
Proyecto en VB
Etc.
> realiza
*
*
InterIaz
*
Subsistema de
implementac.
*
*
Componente
Ingeniera del Software 103
Artefactos de implementacin: Interfaz
Un componente que implementa una interfaz debe
implementar correctamente todas las operaciones del
interfaz.
Un subsistema que implementa una interfaz debe
contener componentes que proporcionen la interfaz u
otros subsistemas que la proporcionen.
InterIaz
> realiza
Subsistema de
implementac.
> realiza
*
*
Componente
Ingeniera del Software 104
Artefactos de implementacin:
Descripcin de la arquitectura
La descomposicin del modelo de implementacin en
subsistemas, sus interfaces y las dependencias entre
ellos (cmo vienen dados por los equivalentes del
modelo de diseo suele ser innecesario
representarlos)
Componentes clave (los que tienen traza a clases de
diseo significativas arquitectnicamente, y los
ejecutables)
Ingeniera del Software 105
Artefactos de implementacin: Plan de
Integracin de las Construcciones
Describe la secuencia de construcciones necesarias
en una iteracin.
Para cada construccin debe describir:
funcionalidad que se espera que sea implementada en esa
construccin (lista de casos de uso o escenarios o parte de
ellos, tambin puede incluir requisitos adicionales)
partes del modelo de implementacin afectadas por la
construccin (lista de los subsistemas y componentes
necesarios para implementar esa funcionalidad)
Ingeniera del Software 106
Implementacin: Actividades
Integrar sistemas
Arquitecto
Ingeniero de
componentes
Integrador de
sistemas
Implementacion de la
arquitectura
Implementar una
clase
Implementar un
subsistema
Realizar prueba de
unidad
Ingeniera del Software 107
Actividades: Implementacin de la
Arquitectura
Arquitecto
Implementacion de la
arquitectura
Modelo de
casos de uso
Modelo de
analisis
Descripcion arquitectura
(vista de modelo de
diseo y despliegue)
Componente
(esbozado y asignado
a un nodo)
Descripcion arquitectura
(vista de modelo de
implement. y despliegue)
Ingeniera del Software 108
Actividades: Integrar el Sistema
Integrar sistemas
Integrador de
sistemas
Modelo de
casos de uso
Requisitos
adicionales
Modelo de
implementac.
Modelo de
implementac.
Modelo de
diseo
Plan de integracion
de construcciones
Ingeniera del Software 109
Actividades: Implementar un Subsistema
Ingeniero de
componentes
Implementar un
subsistema
Descripcion arquitectura
(vista de modelo de
implementacion)
Plan de integracion
de construcciones
Subsistema de
diseo
InterIaz
Subsistema de
implementac.
InterIaz
Ingeniera del Software 110
Actividades: Implementar una Clase
Ingeniero de
componentes
Implementar una
clase
Componente
(implementado)
InterIaz
Clase de diseo
(diseada)
Ingeniera del Software 111
Actividades: Realizar una Prueba de
Unidad
Ingeniero de
componentes
Realizar prueba de
unidad
Componente
(unidades probadas)
InterIaz
Clase de diseo
(implementada)
Ingeniera del Software 112
Prueba
Verificamos el resultado de la implementacin
probando cada construccin
Objetivos de la prueba
Planificar las pruebas necesarias para cada iteracin (pruebas
de sistema y pruebas de integracin)
Disear e implementar las pruebas diseando los casos de
prueba
Realizar las diferentes pruebas.
Ingeniera del Software 113
Artefactos de pruebas
Modelo de pruebas
Casos de prueba
Procedimientos de prueba
Componentes de prueba
Plan de prueba
Defectos
Evaluacin de la prueba
Sistema de pruebas
Componente
de prueba
*
Caso de prueba
X
X
Procedimiento
de prueba
Ingeniera del Software 114
1. Planificar prueba
2. Disear prueba
Describir casos de prueba de cada construccin
Identificar y estructurar los procedimientos de prueba
3. Implementar prueba
4. Realizar pruebas de integracin
5. Realizar prueba de sistema
6. Evaluar prueba
Flujo de trabajo de pruebas
Ingeniera del Software 115
Caso de uso
Realizacin
en anlisis
<<trace>>
Realizacin
en diseo
<<trace>>
Resumiendo...
Ingeniera del Software 116
Resumiendo...
<<trace>> (1:1)
Realizacin
en diseo
Realizacin
en implementacin
<<trace>>
<<implem. subsystem>>
<<file>>
<<file>>
<<desing subsystem>>
Ingeniera del Software 117
Un ejemplo: el Proceso Unificado
Caractersticas del Proceso Unificado
Flujos de trabajo fundamentales
Iteracin genrica
Divisin del trabajo en fases
Planificar
Gestionar los riesgos
Recursos
Evaluar
Ingeniera del Software 118
Iteracin genrica
Incluye:
Planificacin
Flujos de trabajo fundamentales
Requisitos
Anlisis
Diseo
Implementacin
Pruebas
Evaluacin
El contenido vara para adaptarse al objetivo de cada
fase.
Ingeniera del Software 119
Divisin del trabajo en fases
Fase de inicio: establecer viabilidad
Objetivo:
Anlisis del negocio: casos de uso fundamentales para el
negocio
Actividades:
1. Delimitar el mbito (interfaces con otros sistemas)
2. Proponer una arquitectura especialmente en lo nuevo, arriesgado
o difcil (expresada en funcin de algunos modelos)
3. Identificar riesgos crticos (los que afecten a la viabilidad)
4. Demostrar a usuarios y clientes un prototipo (exploratorio)
Ingeniera del Software 120
Divisin del trabajo en fases
Fase de elaboracin: factibilidad
Objetivo
Arquitectura estable para guiar el sistema
Estimacin de de costes para fases sisguientes con precisin
Actividades:
1. Lnea base de la arquitectura. Consiste en: modelos, descripcin
de la arquitectura e implementacin ejecutable de la arquitectura.
2. Identificacin de riesgos que pueden perturbar los planes y
costes posteriores.
3. Especificar niveles para los atributos de calidad: fiabilidad y
tiempo de respuesta.
4. Recopilar casos de uso para el 80% de los requisitos funcionales
para planificar la fase de construccin.
5. Planificacin: personal, coste.
Ingeniera del Software 121
Divisin del trabajo en fases
Fase de construccin
Objetivo
Versin beta
Actividades:
1. Terminar la identificacin, descripcin y realizacin de todos los
casos de uso.
2. Finalizar el anlisis, el diseo la implementacin y pruebas.
3. Mantener la integridad de la arquitectura.
4. Monitorizar los riesgos crticos.
Ingeniera del Software 122
Divisin del trabajo en fases
Fase de transicin: en el entorno del usuario
Objetivo
Producto final
Actividades:
1. Preparar las actividades, por ejemplo, el lugar.
2. Aconsejar sobre el entorno de funcionamiento.
3. Manuales y documentos para la entrega.
4. Ajustar el software al entorno del usuario.
5. Corregir los defectos detectados en la versin beta.
Lecciones aprendidas
Asuntos tiles para la versin siguiente
Ingeniera del Software 123
Un ejemplo: el Proceso Unificado
Caractersticas del Proceso Unificado
Flujos de trabajo fundamentales
Iteracin genrica
Planificar
Las fases
Las iteraciones
Los criterios de evaluacin
Gestionar los riesgos
Recursos
Evaluar
Ingeniera del Software 124
Planificar
Varias iteraciones
en cuatro fases
Planificar
Experiencia
pasada
Plan de proyecto
Plan de iteracin
Informacin sobre
el sistema propuesto
Informacin
del dominio
Ingeniera del Software 125
Planificar las fases
Establecer:
Asignaciones de tiempo y fecha de entrega por cada fase
(inestable hasta fin de elaboracin)
Hitos principales y criterios de aceptacin
Iteraciones por fase y qu se realiza en ellas. Depende de la
complejidad del sistema.
Plan de proyecto: fechas y criterios de objetivos principales y
divisin de fases en iteraciones
Pensar a largo plazo
Ingeniera del Software 126
Planificar las iteraciones
Definimos:
Planificacin de la Iteracin: cuanto tiempo, fecha de terminacin.
Contenido de la Iteracin: Contenido. Ya est esbozado en el plan del
proyecto pero al comenzar cada iteracin se debe detallar:
Casos de uso
Riesgos tcnicos que se deben identificar en forma de casos de uso
Cambios que han sufrido los requisitos o defectos encontrados
Subsistemas que se deben implementar
Personal
El plan de la iteracin siguiente se va detallando.
El nmero de iteraciones de cada fase esta determinado por la
complejidad del sistema.
Ingeniera del Software 127
Planificar las iteraciones
La 1 iteracin suele ser ms difcil
Ajustar el PU al proyecto y seleccionar herramientas
Seleccionar personal y crear equipo.
Familiarizarlo con el proyecto y las herramientas
Entender el dominio
Lista de riesgos
Ingeniera del Software 128
Planificar los criterios de evaluacin
Criterios para establecer la satisfaccin de los
objetivos de cada iteracin (medidos u observados):
Requisitos funcionales en casos de uso
Requisitos no funcionales de esos requisitos funcionales
Requisitos no funcionales sueltos
Requisitos verificables (pruebas)
Requisitos generales (prototipo)
Productos intermedios para determinar el progreso del
trabajo
Ingeniera del Software 129
Un ejemplo: el Proceso Unificado
Caractersticas del Proceso Unificado
Flujos de trabajo fundamentales
Iteracin genrica
Planificar
Gestionar los riesgos
Priorizar los casos de uso
Categoras de riesgos
Recursos
Evaluar
Ingeniera del Software 130
Riesgos
Lista de riesgos:
Identificador
Descripcin
Prioridad (crtico, significativo, rutinario)
Impacto: qu parte del proyecto se ve afectada
Monitor: responsable del seguimiento
Responsabilidad: reponsable de eliminarlo
Contingencia: qu hacer si se materializa
BD
Jefe de proyecto celebra reuniones peridicas para
revisar el estado de los riesgos
Ingeniera del Software 131
Riesgos
Influencia en el plan de iteraciones
Desarrollar prototipo para conocer riesgo
Incrementar el esfuerzo
Prolongar la planificacin
Calidad o rendimiento
Planificar acciones sobre los riesgos
En cada fase o iteracin se eliminan o se prepara plan de
contingencia
No planificarlos: modificaciones, retrasos
A veces no se descubren
Ingeniera del Software 132
Priorizar los casos de uso
Los casos de uso (escenarios) guan las iteraciones
Se ordenan segn el riesgo que conllevan
Evitar:
cambiar la arquitectura
no satisfacer los requisitos (producto no correcto)
Los riesgos se transforman en casos de uso que se
priorizan
Ej:
Riesgo: Dar dinero sin haber saldo
Caso de uso: habr un escenario en que se solicite una
cantidad mayor que el saldo.
Ingeniera del Software 133
Priorizar los casos de uso
Primeras iteraciones
Riesgos relacionados con el mbito del sistema y arquitectura
ltimas iteraciones
Aadir ms funciones
Categoras de riesgos:
Especficos
Arquitectnicos
De requisitos
Ingeniera del Software 134
Categoras de riesgos
Especficos de un producto
Tcnicos
Implementar un caso de uso mitiga el riesgo
Deben tratarse uno a uno (no est en el PU)
De requisitos
Puede crecer
Estamos desarrollando el producto correcto?
Qu casos de uso aseguran que el sistema puede
evolucionar?
Solucin: requisitos, modelo de negocio
uso real en prototipos
Ingeniera del Software 135
Categoras de riesgos
Arquitectnicos
No establecer una arquitectura flexible
Fases de inicio y elaboracin
Cmo determinar casos de uso importantes para la
arquitectura correcta?
Casos de uso crticos (los ms importantes para los usuarios del
sistema y los que tienen requisitos no funcionales como
rendimiento, tiempo de respuesta,...)
Otras categoras de casos de uso: secundarios, auxiliares,
opcionales
80% de casos de uso descritos en elaboracin para hacer la
planificacin detallada y estar seguros de haber considerado
lo importante para la arquitectura
Ingeniera del Software 136
Un ejemplo: el Proceso Unificado
Caractersticas del Proceso Unificado
Flujos de trabajo fundamentales
Iteracin genrica
Planificar
Gestionar los riesgos
Recursos
Evaluar
Ingeniera del Software 137
Recursos
Cunto cuestan las fases de inicio y elaboracin?
Quin las costea? Cunto duran?
Depende del proyecto
Considerar:
Hay experiencia?
Cmo es la base de componentes?
Es una nueva entrega?
Es distribuido?
...
Ingeniera del Software 138
Recursos
Tiempo:
Inicio 5%, elaboracin 20%, construccin 65%, transicin 10%
Recursos
Inicio 10%, elaboracin 30%, construccin 50%, transicin
10%
Ms incgnitas, ms tiempo y recursos en inicio y
elaboracin.
Ingeniera del Software 139
Un ejemplo: el Proceso Unificado
Caractersticas del Proceso Unificado
Flujos de trabajo fundamentales
Iteracin genrica
Planificar
Gestionar los riesgos
Recursos
Evaluar
Las fases
Las iteraciones
Ingeniera del Software 140
Evaluar iteraciones y fases
Jefe de proyecto (documento)
Objetivos:
evaluar iteraciones segn criterios: presupuesto, tiempo, requisitos
de calidad, resultados de las pruebas
reconsiderar el plan de la siguiente iteracin
modificar el proceso
evaluar y modificar criterios
Es frecuente no alcanzar los criterios. Prolongar el trabajo a la
iteracin siguiente:
Modificar o extender el modelo de casos de uso
Modificar o extender la arquitectura
Modificar o extender los subsistemas desarrollados
Buscar otros riesgos
Incorporar ciertas habilidades al equipo
Puede que solo falte tiempo
Ingeniera del Software 141
La siguiente iteracin
A partir de la evaluacin anterior, el jefe de proyecto:
Determina si se puede pasar a la siguiente iteracin
Si hay que rehacer, cundo
Planificar en detalle siguiente iteracin
Actualizar el plan de las iteraciones posteriores a la siguiente
Actualizar riesgos y plan del proyecto
Evolucin del conjunto de modelos

También podría gustarte