Professional Documents
Culture Documents
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
UML
Basado en casos de uso
Centrado en la arquitectura
Iterativo-Incremental
Modelos del proceso
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
Relaciones:
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.
Estticos(estructura)
D. de Clases
D. de Objetos
D. de Componentes
D. de Despliegue
Dinmicos(comportamiento)
Casos de Uso
Secuencia
Colaboracin
Estados
Actividades
Interaccin
Diagrama de clases
Mot or
1..4
1
Avin
1..2
Vuelo
*
1
Avin militar
ercial
Vendedor de billetes
Piloto
Avin com
Lnea area
{ disjunta, completa }
Avin de carga
Avin de pasajeros
Reserva
Diagramas de Componentes
Control y Anlisis
Interfaz de Terminal
Comm
Comm
Gestin de Cuentas
Comm
Rutinas de Coneccion
Comm
Acceso a BD
Comm
10
10
Diagramas de Despliegue
Servidor Central
Control y Anlisis
Acceso a BD
C
Rutinas de Coneccion
Terminal de Consulta
Rutinas de Coneccion
Punto de Venta
Rutinas de Coneccion
Gestin de Cuentas
Interfaz de Terminal
Interfaz de Terminal
V enta Norm
al
C liente
V enta en Re ba ja
s
V e nd ed or
Diagrama de estados
Es
perando
t arj eta
tar jeta int ro duc
ida
Ley endo
t arjet a
Esp
erando
P IN
P IN introduc ido( P IN
)
Rec ogiendo
t arjeta
[ inc orrec to ]
V alidando
IN [ > 3 int ent os ]
P
[ c orrec t o
]
Es perand o
opc in
i ngres o ( im por te
)
Ingre sando
Trans ferenc ia
Reint egrando
[ OK ]
[ Not O K ]
E x puls
ando
dinero
dinero retirado
Diagrama de estados
Ingeniera del Software
E x puls ar
tarjeta
13
Diagrama de colaboracin
5: c u enta des t in o
3: c antidad
1: t rans ferenc ia
11 : OK
: Interfaz de ca jero
2: te c lee c ant id
ad
: Trans ac c in
7: r ei nteg ro (c an ti
dad)
9: ingres o (c antidad)
8: O K
10: O K
12: tr ans ferenc ia r ealiz
ada
Diagrama de colaboracin
Ingeniera del Software
14
Diagramas de Secuencia
: S o c io
a rg a d o
: E nc
: L i b ro
: F ic h a s o c
io
Coger libro
: F ic ha
li b ro
: P r s t a m o
Diagramas de actividad
Pasajero
Solicitar pasaje
Vendedor
Airline
Verificar
existencia vuelo
Dar detalles vuelo
Informar alternativas
y precios
Seleccionar vuelo
Pagar pasaje
Emitir billete
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
18
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.
Iterativo - Incremental
Beneficios.
Ingeniera del Software
20
20
Iterativo - Incremental
Varios ciclos que concluyen con un producto.
Cdigo fuente, manuales y documentos.
Hitos por fases (Milestones)
21
21
Iterativo - Incremental
22
22
22
El proceso
El producto (salidas)
#
#$
%
#!
#
!
#!
&
#
'
&
(&
23
23
El proceso
El producto (salidas)
"
#!
)
24
24
El proceso
Fases, iteraciones y actividades
$+ +
*
$
*
"
#
#
'$
6 777(
Requisitos
Anlisis
Diseo
Implementacin
Pruebas
Iteracin genrica
Planificar
Gestionar los riesgos
Recursos
Evaluar
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
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
Captura de requisitos
Pasos a seguir
30
30
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 suplementario s
o casos individuales
31
31
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
1
*
Ingeniera del Software
*
Caso de uso
32
33
33
34
34
35
35
36
36
37
37
38
38
39
39
3. Introduce la clave
4. Comprueba la clave
5. Si es vlida presenta las opciones
disponibles y se termina el caso de
uso
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
40
40
2. Selecciona la operacin de
Reintegro
6. Recoge la tarjeta.
7. Recoge el recibo
8. Recoge el dinero y termina el CU
CAMINOS ALTERNATIVOS
6 06
8
99 :
+
;;
+
)
16
Anlisis
Artefactos de anlisis
!
'
&
'
'
'
)
'
'
!
'
&
'
'
50
50
51
52
52
*
!
&
'
Ingeniera del Software
'
53
53
54
54
4. Analizar un paquete
Ingeniera del Software
55
55
Actividades
'
(
Ingeniera del Software
56
56
60
60
Re ali z ac i n en an li s is
A utenti c
ar
(fro m L o g i ca l V i e
w)
(fr om L og i ca l V ie
w)
61
61
Secuencia correcta
3: cdigo
1: introducir tarjeta
7: visualiza (opciones)
2: teclear cdigo : Interfaz de cajero
: Autenticar
5: valida (datos, codigo)
8: seleccioneOpcion (opciones)
6: OK
: UsuariosDelBanco
: Autenticar
5: valida (datos, codigo)
8: teclear cdigo
6: Error
: UsuariosDelBanco
63
63
Transferencia
Interfaz de cajero
Realizacin en anlisis
Transaccin
Cuenta
Secuencia correcta
5: cuenta destino
3: cantidad
1: transferencia
: Interfaz de cajero
11: OK
: Transaccin
7: reintegro (cantidad)
2: teclee cantidad
9: ingreso (cantidad)
4: teclee cuenta destino
8: OK
10: OK
cuentaOrigen : Cuenta
cuentaDestino : Cuenta
9: no hay fondos
: Interfaz de cajero
: Transaccin
7: reintegro (cantidad)
8: no hay saldo
cuentaOrigen : Cuenta
11: rollback
3: cantidad
1: transferencia
12: error
: Interfaz de cajero
: Transaccin
7: reintegro (cantidad)
9: ingreso (cantidad)
8: OK
10: error
13: error
cuentaOrigen : Cuenta
cuentaDestino : Cuenta
Interfaz de cajero
Transaccin
Autenticar
Cuenta
UsuariosDelBanco
70
70
Diseo
71
71
Artefactos de diseo
!
&
(
Ingeniera del Software
)
72
72
Artefactos de diseo
73
73
*
)
*
(
!
&
&
'
&
*
)
+
!
&
76
)
Ingeniera del Software
77
77
78
78
Descomposicin en subsistemas
Traza con clases de anlisis
Clases fundamentales (abstractas)
Clases generales y centrales
Realizaciones de caso de uso
Diseo: Actividades
80
80
Diseo: Actividades
1. Diseo de la arquitectura
Identificar nodos y configuracin, subsistemas, clases
81
81
82
82
83
83
84
84
85
85
V al id ar usuar
io
Realiz ac in en dis eo
(fro m Use Ca se V i e
w)
Lec torDeTarjetas
G es torDeCliente
P antalla
Tec lado
Trans ac c in
86
86
Secuencia correcta
: C lie n t e d e l b a n c
o
:
L ec t o rD e Ta rj
e ta s
: P a n ta l l a
la d o
: Te c
: G e s t o rD e C li e n t e
: Tran s a c c i n
: U s u a rio s D el B a n c
1: l eerTarj
eta
2: i ntr oduc i rTarj eta (t
arjet a)
11: O K
12: alm ac enaDatos
(dat
os )
:
L ec t o rD e Ta rj
e ta s
: P a n ta l l a
l a do
: Te c
: G e s t o rD e C l i e n t e
o
: Tran s a c c i n
: U s u a ri o s D e l B a n c
1: l eerTarj eta
2: i ntr oduc i rTarj eta (tarjet
a)
11: E rror
Trans ferenc
ia
(fro m Use Ca se V i e
w)
Realiz ac in en dis
eo, trans ferenc
ia
2
Tec lado
P antalla
G es torDeCliente
in
Trans ac c
Cu entas
Cu enta
: Te c l a d o
: P antalla
: G e s t o rD e Cli en t e
: Tran s a c c i n
: C ue n t a s
: C u e n ta
18: O K
19 : vis ualiz ar ( Tra ns fe renc i a real iz
ada)
90
90
: Te c l a d o
a lla
: P an t
: G e s t o rD e C lie n t e
: Tra n s a c c i n
: C uen t a s
: C u e n ta
2: trans ferenc ia
3: vis u aliz ar ( Tecl ee im port
e)
4: Introduc irIm
porte
5: im por te
6: vi s ual iz ar (Te c lee c uent a des ti
no)
7: c u entaDes ti no ( cuent a)
e)
8: c uentaDes tino (c
uenta)
n, im porte)
o
rte)
LectorDeTarjetas
GestorDeCliente
Transaccin
Pantalla
Cuentas
Teclado
DarDinero
Cuenta
92
92
Lec torDeTarjetas
c rearLec tor() : Lec t orDe Tarj
eta s leerTar jeta( ) : dato s Tarj
eta
T ec la do
c rearTec lado() : Tec
lado leerP IN() : unP IN
leerO pc ion() : unaO pc
ion leerCantidad() :
Dinero
leerNum Cuenta() : unIDCuenta
Im pres ora
c r earIm p res ora() : Im pres ora
im prim ir(m ens aje : S tring)
DarDinero
c rear() : DarDinero
G es to rDeCli ente
c rear() : G es torDeClie
nte c reaCajeroVi rtual()
inic i arS es ion()
CajonDinero
c rearCajon() : CajonDi
nero abr irCajon()
cer ra rCajon()
c ontarCantidad() : Dinero
GestorDeCliente
miTransaccion : Transaccin
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
Cuentas
crear() : GestorDeCliente
creaCajeroVirtual()
iniciarSesion()
visualizar(resultados : String)
cuentas : Dictionary
UsuariosDelBanco
usuarios : Dictionary
Cuenta datos
: DatosCuenta limiteDiario :
Dinero = 50000
reintegro(importe : Dinero) : Boolean
Ingeniera del
Software : Dinero) : Boolean
ingreso(importe
94
Clase GestorDeCliente
Es
perando
t arj eta
tar jeta int ro duc
ida
Ley endo
t arjet a
Esp
erando
P IN
P IN introduc ido( P IN
)
Rec ogiendo
t arjeta
[ inc orrec to ]
V alidando
IN [ > 3 int ent os ]
P
[ c orrec t o
]
Es perand o
opc in
i ngres o ( im por te
)
Ingre sando
Trans ferenc ia
Reint egrando
[ OK ]
[ Not O K ]
E x puls
ando
dinero
dinero retirado
Clase GestorDeCliente
Ingeniera del Software
E x puls ar
tarjeta
95
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)
96
96
Artefactos de implementacin
(
$
(
97
97
*
)
$
)
$
*
(
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).
100
1001
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
,
(
Ingeniera del Software
(
101
1011
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)
*
)
$
+
*
*
(
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)
Implementacin: Actividades
(
106
1061
Actividades: Implementacin de la
Arquitectura
107
1071
108
1081
109
1091
110
1101
111
1111
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.
112
1121
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
Caso de prueba
Ingeniera del Software
X
Procedimiento
de prueba
Componente
de prueba
113
3. Implementar prueba
4. Realizar pruebas de integracin
5. Realizar prueba de sistema
6. Evaluar prueba
114
1141
Resumiendo...
<<trace>>
Caso de uso
<<trace>>
Realizacin
en anlisis
Realizacin
en diseo
115
1151
<<trace>>
Realizacin
en diseo
Realizacin
en implementacin
<<desing subsystem>>
<<trace>> (1:1)
<<implem. subsystem>>
<<file>>
<<file>>
Planificar
Gestionar los riesgos
Recursos
Evaluar
Iteracin genrica
Incluye:
Planificacin
Flujos de trabajo fundamentales
Requisitos
Anlisis
Diseo
Implementacin
Pruebas
Evaluacin
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)
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.
120
1201
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.
121
1211
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
122
1221
123
1231
Planificar
Varias iteraciones
en cuatro fases
Plan de proyecto
Informacin sobre
el sistema propuesto
Informacin
del dominio
Planificar
Plan de iteracin
Experiencia
pasada
124
1241
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
Recursos
Evaluar
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
130
1301
Riesgos
Influencia en el plan de iteraciones
131
1311
132
1321
ltimas iteraciones
Aadir ms funciones
Categoras de riesgos:
Especficos
Arquitectnicos
De requisitos
133
1331
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
134
1341
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,...)
135
1351
136
1361
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?
...
137
1371
Recursos
Tiempo:
Inicio 5%, elaboracin 20%, construccin 65%, transicin 10%
Recursos
Inicio 10%, elaboracin 30%, construccin 50%, transicin
10%
138
1381
139
1391
140
1401
La siguiente iteracin
A partir de la evaluacin anterior, el jefe de proyecto:
141
1411