Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Proceso Unificado (Parte I)
Proceso Unificado (Parte I)
UNIFICADO DE DESARROLLO
(1 parte)
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
Motor
1..4
1
Avin
Vendedor de billetes
Piloto
1..2
Vuelo
Reserva
{ disjunta, completa }
1
Avin militar
Avin comercial
Lnea area
{ disjunta, completa }
Avin de carga
Avin de pasajeros
Diagramas de Componentes
Control y Anlisis
Interfaz de Terminal
Comment
Comment
Gestin de Cuentas
Comment
Rutinas de Coneccion
Comment
Acceso a BD
Comment
10
Diagramas de Despliegue
Servidor Central
Control y Anlisis
Comment
Acceso a BD
Comment
Rutinas de Coneccion
Comment
Terminal de Consulta
Rutinas de Coneccion
Comment
Punto de Venta
Interfaz de Terminal
Comment
Rutinas de Coneccion
Comment
Gestin de Cuentas
Interfaz de Terminal
Comment
Comment
11
V enta Normal
C liente
Venta en Rebajas
Vendedor
V enta en Oferta
12
Diagrama de estados
Es perando
t arj eta
tarjeta int ro ducida
Leyendo
tarjeta
E sp erando
PIN
P IN introducido( P IN )
[ incorrec to ]
Rec ogiendo
tarjeta
[ > 3 intentos ]
Validando
PIN
[ correc to ]
Es perand o
opc in
i ngres o ( im porte )
Ingre sando
Reintegrando
Transferenc ia
[ OK ]
Ex pulsando
dinero
[ Not OK ]
dinero retirado
E xpulsar
tarjeta
13
Diagrama de colaboracin
5: c u enta des t in o
3: c antidad
1: trans ferenc ia
11 : OK
: Interfaz de ca jero
2: te c lee c ant id ad
: Trans ac cin
7: r ei nteg ro (c an ti dad)
9: ingres o (c antidad)
8: OK
10: OK
c uentaOrigen : Cuenta
14
Diagramas de Secuencia
: S oc io
: E ncargado
: Lib ro
: Fic ha socio
: Fic ha libro
: P rstam o
Coger libro
15
Diagramas de actividad
Pasajero
Solicitar pasaje
Vendedor
Airline
Verificar
existencia vuelo
Dar detalles vuelo
Informar alternativas
y precios
Seleccionar vuelo
Pagar pasaje
Emitir billete
Ingeniera del Software
16
17
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.
19
Iterativo - Incremental
Beneficios.
Ingeniera del Software
20
Iterativo - Incremental
Varios ciclos que concluyen con un producto.
Cdigo fuente, manuales y documentos.
Hitos por fases (Milestones)
21
El proceso
Papeles y actividades
Analista de
Sistemas
Especifica
Casos de Uso
Diseador de
Interface de Usuario
Disea
Test
Analiza un
Caso de Uso
Analiza
una Clase
Analiza
un
Paquete
Implementacin
de Arquitectura
Ingeniero de
pruebas
Integrador de
Sistemas
Ejecuta Test
de Integracin
Prototipo del
Interfaz de Usuario
Ingeniero de
Casos de Uso
Evalua
Test
Integra
Sistema
Detalla un
Caso de Uso
Anlisis de
Diseo de
Arquitecto Prioriza
Casos de Uso Arquitectura Arquitectura
Ingeniero de
Componentes
Planifica
Test
Ingeniero de
pruebas de
integracin
Ingeniero de
Ejecuta test
pruebas de
del sistema
sistema
Disea un
Caso de Uso
Disea
una clase
Implementa
una clase
Disea un
Subsistema Implementa
Subsistema
Implementa
Test
Ejecuta Test
Unitario
22
El proceso
El producto (salidas)
#
#$
%
#!
#
#!
&
#
'
"
&
(&
#!
)
23
El proceso
*
$
*
"
#
/
'$
Ingeniera del Software
/0
/1
/2
/3
/4
6 777(
24
El proceso
25
El proceso
26
Requisitos
Anlisis
Diseo
Implementacin
Pruebas
Iteracin genrica
Planificar
Gestionar los riesgos
Recursos
Evaluar
27
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
28
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
29
Captura de requisitos
Pasos a seguir
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 suplementarios
o casos individuales
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
Artefactos de requisitos
33
34
"
#$
Ingeniera del Software
35
!
%
36
37
38
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
2. Selecciona la operacin de
Reintegro
6. Recoge la tarjeta.
7. Recoge el recibo
8. Recoge el dinero y termina el CU
Ingeniera del Software
41
42
6 06
8
+
99 :
;;
+
)
16
43
Anlisis
44
Artefactos de anlisis
'
!
&
'
'
'
45
)
'
'
'
!
&
'
46
47
'
48
49
50
51
52
*
!
'
&
'
53
54
4. Analizar un paquete
Ingeniera del Software
55
Actividades
'
56
'
!
'
'
%
'
57
(
!
&
%
'
'
'
58
!
&
'
'
'
59
(
%
'
'
'
60
Re ali z ac i n en an li sis
UsuariosDelB anc o
A utenti car
(fro m L o g i ca l V i e w)
(fr om L og i ca l V ie w)
61
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
62
3: cdigo
1: introducir tarjeta
7: visualiza (error)
2: teclear cdigo : Interfaz de cajero
: Autenticar
8: teclear cdigo
6: Error
: UsuariosDelBanco
63
Transferencia
Interfaz de cajero
Realizacin en anlisis
Transaccin
Cuenta
64
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
65
9: no hay fondos
: Interfaz de cajero
: Transaccin
7: reintegro (cantidad)
8: no hay saldo
cuentaOrigen : Cuenta
Ingeniera del Software
66
11: rollback
3: cantidad
1: transferencia
12: error
: Interfaz de cajero
: Transaccin
7: reintegro (cantidad)
8: OK
9: ingreso (cantidad)
10: error
13: error
cuentaOrigen : Cuenta
cuentaDestino : Cuenta
67
Interfaz de cajero
Transaccin
Autenticar
Cuenta
UsuariosDelBanco
68
69
70
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.
71
Artefactos de diseo
!
&
72
*
)
*
*
(
!
&
73
74
!
&
'
&
75
*
)
+
(
Ingeniera del Software
!
&
76
(
*
)
Ingeniera del Software
77
Descomposicin en subsistemas
Traza con clases de anlisis
Clases fundamentales (abstractas)
Clases generales y centrales
Realizaciones de caso de uso
78
79
Diseo: Actividades
80
Diseo: Actividades
1. Diseo de la arquitectura
Identificar nodos y configuracin, subsistemas, clases
81
'
%
'
82
!
&
(
!
'
)
(
83
!
(
&
(
'
84
(
%
(
(
85
V al id ar usuario
Realizac in en diseo
(fro m Use Ca se V i e w)
Lec torDeTarjetas
GestorDeCliente
Us uariosDelB anco
Pantalla
Teclado
Transacc in
86
:
Lect orDeTarj etas
: Pa ntal la
: Tec lado
: GestorDeCliente
: Tran s acc in
1: l eerTarj eta
2: i ntroduci rTarj eta (tarjet a)
3: datosTarjeta (tarjeta)
4: vis ualiz ar (In troduci r P IN)
5: OK
6: leerP IN
7: introduci rP IN (PIN)
8: datosP IN (P IN)
87
:
Lec t orDeTarj etas
: Pa ntal la
: Teclado
: Ges torDeCliente
: Tran sacc in
1: l eerTarj eta
2: i ntr oduci rTarj eta (tarjet a)
3: datosTarjeta (tarjeta)
4: vis ualiz ar ( In troduci r P IN)
5: OK
6: leerPIN
88
Transferenc ia
(fro m Use Ca se V i e w)
2
Teclado
Pantalla
GestorDeCliente
Trans ac cin
Cu entas
Cu enta
89
: Teclado
1: opcion (transferencia)
: P antalla
: Ges torDeCliente
: Transac cin
: Cuentas
: Cuen ta
2: trans ferenc ia
3: vis u aliz ar ( Tecl ee im port e)
4: IntroducirImporte
5: im porte
6: vi s ual izar (Te c lee cuent a des ti no)
7: c u entaDes ti no ( cuent a)
8: c uentaDestino (c uenta)
9: t ransferencia (cuentaO rigen, c uen taDestin o,impo rt e)
10: reintegro (cuentaOrigen, im porte)
11: reintegro (im porte)
12: OK
13: OK
14: ingreso (c uentaDes tino, im porte)
15: ingre so (im porte)
16: OK
17: OK
18: OK
19 : vis ualiz ar (Tra ns fe renci a real iz ada)
90
: Tec lado
1: opcion (transferencia)
: P antalla
: Ges torDeCliente
: Transacc in
: Cuentas
: Cuen ta
2: transferencia
3: visu alizar (Tecl ee im port e)
5: im porte
6: vi sual izar (Te c lee c uent a desti no)
7: cu entaDes ti no (cuent a)
8: cuentaDestino (cuenta)
9: t rans ferencia (c uentaO rigen, cuen taDes tin o,im po rt e)
10: reintegro (cuentaOrigen, im porte)
11: reintegro (im porte)
12 : no ha y saldo
13: no hay s aldo
14: no hay fondos
15: visualiz ar ((No hay fondos))
91
LectorDeTarjetas
GestorDeCliente
Transaccin
Pantalla
Cuentas
Teclado
DarDinero
Cuenta
92
Lec torDeTarjetas
c rearLec tor() : Lec t orDe Tarj eta s
leerTarjeta() : dato s Tarj eta
Tec la do
crearTec lado() : Tec lado
leerP IN() : unP IN
leerOpc ion() : unaOpcion
leerCantidad() : Dinero
leerNum Cuenta() : unIDCuenta
Im presora
c rearIm p resora() : Im pres ora
im prim ir(m ens aje : String)
DarDinero
crear() : DarDinero
ex p ulsa r(im porte : Dinero)
CajonDinero
crearCajon() : CajonDi nero
abrirCajon()
cerra rCajon()
contarCantidad() : Dinero
93
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
tarjeta int ro ducida
Leyendo
tarjeta
E sp erando
PIN
P IN introducido( P IN )
[ incorrec to ]
Rec ogiendo
tarjeta
[ > 3 intentos ]
Validando
PIN
[ correc to ]
Es perand o
opc in
i ngres o ( im porte )
Ingre sando
Reintegrando
Transferenc ia
[ OK ]
Ex pulsando
dinero
[ Not OK ]
dinero retirado
E xpulsar
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
Artefactos de implementacin
$
Ingeniera del Software
97
98
*
)
)
$
*
*
*
*
(
99
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
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
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)
*
)
$
+
*
*
(
102
(
*
)
$
Ingeniera del Software
103
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)
104
105
Implementacin: Actividades
(
(
(
106
Actividades: Implementacin de la
Arquitectura
'
%
%
107
!
(
$
$
Ingeniera del Software
108
)
$
(
)
(
(
109
110
111
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
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
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
Resumiendo...
<<trace>>
Caso de uso
<<trace>>
Realizacin
en anlisis
Realizacin
en diseo
115
Resumiendo...
<<trace>>
Realizacin
en implementacin
Realizacin
en diseo
<<desing subsystem>>
<<trace>> (1:1)
<<implem. subsystem>>
<<file>>
<<file>>
116
Planificar
Gestionar los riesgos
Recursos
Evaluar
117
Iteracin genrica
Incluye:
Planificacin
Flujos de trabajo fundamentales
Requisitos
Anlisis
Diseo
Implementacin
Pruebas
Evaluacin
118
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)
119
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
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
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
123
Planificar
Varias iteraciones
en cuatro fases
Plan de proyecto
Informacin sobre
el sistema propuesto
Informacin
del dominio
Planificar
Plan de iteracin
Experiencia
pasada
124
125
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
126
127
128
Recursos
Evaluar
129
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
Riesgos
Influencia en el plan de iteraciones
131
132
ltimas iteraciones
Aadir ms funciones
Categoras de riesgos:
Especficos
Arquitectnicos
De requisitos
133
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
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
136
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
Recursos
Tiempo:
Inicio 5%, elaboracin 20%, construccin 65%, transicin 10%
Recursos
Inicio 10%, elaboracin 30%, construccin 50%, transicin
10%
138
139
140
La siguiente iteracin
A partir de la evaluacin anterior, el jefe de proyecto:
141