You are on page 1of 154

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

Un ejemplo: el Proceso Unificado

Caractersticas del Proceso Unificado


Flujos de trabajo fundamentales
Iteracin genrica
Planificar
Gestionar los riesgos
Recursos
Evaluar

Ingeniera del Software

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

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

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

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

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

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

Ingeniera del Software

Dinmicos(comportamiento)
Casos de Uso
Secuencia
Colaboracin
Estados
Actividades

Interaccin

Diagrama de clases
Mot or
1..4

1
Avin

1..2

Vuelo
*

{ disj unta, completa }

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

Ingeniera del Software

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

Diagrama de casos de uso

V enta Norm
al

C liente

V enta en Re ba ja
s

V e nd ed or

Diagrama de casos de uso


V enta en Ofe
rta

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
)

t rans ferenc ia( c uent a, im port e )


reint egro( im port e )

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

6: t rans fer enc i a (c uenta, c anti dad)

11 : OK
: Interfaz de ca jero

: Cliente del banc o

2: te c lee c ant id
ad

4: t e c lee c uent a des


tino

: 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

c uentaO rigen : Cuent a

c uentaDes tino : Cuenta

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

S olic it ar prs tam o


V erific ar s ituac in s oc
io
S it uac i n s o cio
ok
V erific ar s ituac in
libro
S ituac in libro ok
Introduc ir prs tam o
A ut oriz ar p rs t amo

: 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

Solicitar pago Reservar plazas


Confirmar
plaza reservada

Pagar pasaje
Emitir billete

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.

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

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

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 arquitecturaimplementar-verificar

Beneficios.
Ingeniera del Software

20
20

Iterativo - Incremental
Varios ciclos que concluyen con un producto.
Cdigo fuente, manuales y documentos.
Hitos por fases (Milestones)

Ingeniera del Software

21
21

Iterativo - Incremental

Ingeniera del Software

22
22

Ingeniera del Software

22

El proceso
El producto (salidas)
#
#$
%
#!
#

!
#!
&

#
'

Ingeniera del Software

&
(&

23
23

El proceso
El producto (salidas)
"

Ingeniera del Software

#!
)

24
24

El proceso
Fases, iteraciones y actividades
$+ +

*
$
*

"

#
#

'$

6 777(

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

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

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

Enumerar los requisitos candidatos


Comprender el contexto del sistema
Capturar requisitos funcionales
Capturar requisitos no funcionales

Se realizan de forma conjunta

Ingeniera del Software

30
30

Captura de requisitos
TAREA
Enumerar requisitos
candidatos
Entender el contexto
del sistema
Capturar requisitos
funcionales
Capturar requisitos no
funcionales

Ingeniera del Software

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

Modelo de casos de uso

Sistema de casos de uso

*
Ingeniera del Software

*
Caso de uso

32

Ingeniera del Software

33
33

Flujo de trabajo de la captura de


requisitos funcionales (Actividades)

Ingeniera del Software

34
34

Flujo de trabajo de la captura de


requisitos funcionales (Actividades)
Encontrar actores y casos de uso

Ingeniera del Software

35
35

Flujo de trabajo de la captura de


requisitos funcionales (Actividades)
Priorizar casos de uso

Ingeniera del Software

36
36

Flujo de trabajo de la captura de


requisitos funcionales (Actividades)
Detallar un caso de uso

Ingeniera del Software

37
37

Flujo de trabajo de la captura de


requisitos funcionales (Actividades)
Prototipar la interfaz de usuario

Ingeniera del Software

38
38

Flujo de trabajo de la captura de


requisitos funcionales (Actividades)
Estructurar el modelo de casos de uso

Ingeniera del Software

39
39

Caso de uso Validar usuario


Flujo de eventos
ACCIN DEL ACTOR

RESPUESTA DEL SISTEMA

1. Este caso de uso empieza


cuando un Cliente introduce una
tarjeta en el cajero

2. Pide la clave de identificacin

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

Caso de uso Sacar dinero


Flujo de eventos
ACCIN DEL ACTOR

RESPUESTA DEL SISTEMA


1. Este caso de uso empieza cuando
un Cliente ha sido identificado
Presenta las opciones de
operaciones disponible

2. Selecciona la operacin de
Reintegro

3. Pide la cantidad a retirar.

4. Introduce la cantidad requerida

5. Procesa la peticin y da el dinero


solicitado.
Devuelve la tarjeta y genera un
recibo

6. Recoge la tarjeta.
7. Recoge el recibo
8. Recoge el dinero y termina el CU

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

Ejemplo. Cajero automtico


"

6 06

8
99 :
+

;;
+
)

16

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

Artefactos de anlisis

!
'

&

'
'

'

Artefacto: Modelo de Anlisis


*

)
'
'

!
'

&

'

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.

Artefacto: Clases de Anlisis

'

Artefacto: Realizacin de caso de usoanlisis


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

Artefacto: Realizacin de caso de usoanlisis (Diag. De Clases)

Ingeniera del Software

50
50

Artefacto: Realizacin de caso de usoanlisis (Diag. De Colaboracin)

Ingeniera del Software

51

Artefacto: Realizacin de caso de usoanlisis: (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

52
52

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
*
'

*
!

&
'
Ingeniera del Software

'
53
53

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

54
54

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

55
55

Actividades

'

(
Ingeniera del Software

56
56

Actividades: Anlisis de la Arquitectura

Actividades: Analizar un caso de uso

Actividades: Analizar una clase

Actividades: Analizar un paquete

Ingeniera del Software

60
60

Anlisis del caso de uso: Validar usuario

V ali dar usuar io

Inter faz de caj


ero

Ingeniera del Software

Re ali z ac i n en an li s is

Us uarios DelB anc


o

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

: Cliente del banco

4: autentica (datos, cdigo)

7: visualiza (opciones)
2: teclear cdigo : Interfaz de cajero
: Autenticar
5: valida (datos, codigo)

8: seleccioneOpcion (opciones)
6: OK

: UsuariosDelBanco

Anlisis del caso de uso: Validar usuario.


Cdigo incorrecto
3: cdigo
1: introducir tarjeta

: Cliente del banco

4: autentica (datos, cdigo)

2: teclear cdigo : Interfaz de cajero

: Autenticar
5: valida (datos, codigo)

8: teclear cdigo
6: Error

: UsuariosDelBanco

Ingeniera del Software

63
63

Anlisis del caso de uso: Transferencia


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

Transferencia

Interfaz de cajero

Realizacin en anlisis

Transaccin

Cuenta

Secuencia correcta
5: cuenta destino
3: cantidad
1: transferencia

6: transferencia (cuenta, cantidad)

: Interfaz de cajero

: Cliente del banco

11: OK

: Transaccin

7: reintegro (cantidad)

2: teclee cantidad

9: ingreso (cantidad)
4: teclee cuenta destino

8: OK
10: OK

12: transferencia realizada

cuentaOrigen : Cuenta

cuentaDestino : Cuenta

Anlisis del caso de uso: Transferencia


No hay saldo en la cuenta origen
5: cuenta destino
3: cantidad
1: transferencia

6: transferencia (cuenta, cantidad)

9: no hay fondos
: Interfaz de cajero
: Transaccin

: Cliente del banco


2: teclee cantidad

4: teclee cuenta destino

7: reintegro (cantidad)

8: no hay saldo

10: no hay fondos

cuentaOrigen : Cuenta

Anlisis del caso de uso: Transferencia


No se puede acceder a la cuenta destino
5: cuenta destino

11: rollback

3: cantidad
1: transferencia

6: transferencia (cuenta, cantidad)

12: error

: Interfaz de cajero

: Cliente del banco


2: teclee cantidad

: Transaccin

7: reintegro (cantidad)
9: ingreso (cantidad)

4: teclee cuenta destino

8: OK
10: error

13: error

cuentaOrigen : Cuenta

cuentaDestino : Cuenta

Modelo de clases de anlisis

Cliente del banco

Interfaz de cajero

Transaccin

Autenticar

Cuenta

UsuariosDelBanco

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

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

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

Es el centro de atencin final de la fase de elaboracin e


iteraciones iniciales de la fase de construccin

Ingeniera del Software

71
71

Artefactos de diseo

!
&

(
Ingeniera del Software

)
72
72

Artefactos de diseo

Ingeniera del Software

73
73

Artefactos de diseo: modelo 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.
*

*
)

*
(

!
&

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
+

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
,
!

&

'

&

Artefactos de diseo: Subsistema de


Diseo
Para organizar los artefactos del diseo en piezas
mas manejables.
Debe ser cohesivo y dbilmente acoplado

*
)
+

Ingeniera del Software

!
&

76

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
*

)
Ingeniera del Software

77
77

Ingeniera del Software

78
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

Artefactos de diseo: Descripcin de la


Arquitectura

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

Diseo: Actividades

Ingeniera del Software

80
80

Diseo: Actividades
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

Ingeniera del Software

81
81

Actividades: Diseo de la Arquitectura

Ingeniera del Software

82
82

Actividades: Diseo de un caso de uso

Ingeniera del Software

83
83

Actividades: Diseo de una clase

Ingeniera del Software

84
84

Actividades: Diseo de un Subsistema

Ingeniera del Software

85
85

Diseo del caso de uso: Validar usuario

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

Us uarios DelB anc o

P antalla

Tec lado
Trans ac c in

Ingeniera del Software

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)

3: datos Tarjeta (tarjet a)


4: vis ualiz ar ( In tr oduci r P
IN)
5: O K
6: leerP IN
7: intr oduc i rP IN ( PIN)
8: datos P IN (P
IN)
10: valida (dat os , P IN)
9: au tent ic a ( datos , PIN)

11: O K
12: alm ac enaDatos
(dat

os )

14: vis ualiz ar (opc iones )

13: vi s ual iz a ( opc iones)

Diseo del caso de uso: Validar usuario


Cdigo incorrecto
: C l ie nt e d e l ba nc
o

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

3: datos Tarjeta (tarjeta)


4: vis ualiz ar ( In tr oduci r P
IN)
5: O K
6: leerP IN

7: intr oduc i rP IN ( PIN)


8: datos P IN (P
IN)
10: valida (datos , P IN)
9: au tent ic a ( datos , PIN)

13: vis u ali z ar (err or P IN)

12: vis ualiz a (error P IN)

11: E rror

Diseo del caso de uso: Validar usuario


Cdigo incorrecto
Hay ms escenarios: anular transaccin y tres intentos

Diseo del caso de uso: Transferencia


- Suponemos que el usuario ya ha sido identificado (se ha ejecutado
el caso de uso anterior). Ahora selecciona la opcin transferencia.

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

Diseo del caso de uso: Transferencia


Secuencia correcta
: C l ie n t e d el ban c o

: 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

1: opc ion (trans ferenc ia)


2: trans ferenc ia
3: vis u aliz ar ( Tecl ee im port
e)

4: Introduc irIm port e


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)
8: c uentaDes tino (c uenta)
9: t rans ferenc ia (c uentaO rigen, c uen taDes tin o,im po rt e)
10: reintegro (c uentaO rigen, im porte)
11: reint egro (im porte)
12: O K
13: O K
14: ingres o (c uentaDes tino, im porte)
15: ingre s o (im porte)
16: O K
17: O K

18: O K
19 : vis ualiz ar ( Tra ns fe renc i a real iz
ada)

Ingeniera del Software

20: vis u ali zar ( Reti re s u tar jet


a)

90
90

Diseo del caso de uso: Transferencia


No hay saldo en la cuenta origen
: C li en t e d e l b a n c
o

: Te c l a d o
a lla

1: opc ion (trans ferenc


ia)

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

9: t rans ferenc ia (c uentaO rigen, c uen taDes tin o,im po


rt
reintegro
(im po
10: reintegro (c uentaO rige2 : no ha y s
ald
11:o
1
13: no hay s ald

14: no hay fondos


15: vis ualiz ar (( No hay fondos
))

o
rte)

Diseo del caso de uso: Transferencia


No hay saldo en la cuenta origen
16: vis u ali zar ( Reti re s u tar
jet a)

Modelo de clases de diseo


CajonDinero
UsuariosDelBanco
Impresora

Cliente del banco

LectorDeTarjetas
GestorDeCliente

Transaccin

Pantalla
Cuentas
Teclado

DarDinero
Cuenta

Ingeniera del Software

92
92

Diseo de las clases


P antalla
vis uali z ar (m ensaj e : S t ri ng)
c rear P antall a() : P antal la

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

Diseo de las clases


ex p uls a r(im porte : Diner
o)

c rearCajon() : CajonDi
nero abr irCajon()
cer ra rCajon()
c ontarCantidad() : Dinero

Diseo de las clases


Transaccin
miCliente : GestorDeCliente
datosTarjeta : DatosTarjeta
numIntentosFallidos : 1..3 = 0
cuentas : Cuentas
usuarios : UsuariosDelBanco

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

reintegro(cuenta : Cuenta, importe : Dinero) : Boolean


ingreso(cuenta : Cuenta, importe : Dinero) : Boolean

validar(datos : DatosTarjeta, PIN : UnPIN) : Boolean

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
)

t rans ferenc ia( c uent a, im port e )


reint egro( im port e )

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)

Ingeniera del Software

96
96

Artefactos de implementacin

(
$

Ingeniera del Software

(
97
97

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

Artefactos de implementacin: Modelo de


Implementacin

*
)
$

)
$

*
(

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

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)

Se manifiestan a travs de un mecanismo


de empaquetamiento concreto de un
entorno de implementacin determinado.
Paquete en Java
Proyecto en VB
Etc.

*
)

$
+

*
*
(

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

Artefactos de implementacin: Interfaz


$

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)

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)

Implementacin: Actividades
(

Ingeniera del Software

106
1061

Actividades: Implementacin de la
Arquitectura

Ingeniera del Software

107
1071

Actividades: Integrar el Sistema

Ingeniera del Software

108
1081

Actividades: Implementar un Subsistema

Ingeniera del Software

109
1091

Actividades: Implementar una Clase

Ingeniera del Software

110
1101

Actividades: Realizar una Prueba de


Unidad

Ingeniera del Software

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.

Ingeniera del Software

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

Flujo de trabajo de pruebas


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

Ingeniera del Software

114
1141

Resumiendo...
<<trace>>
Caso de uso

Ingeniera del Software

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

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

Iteracin genrica
Incluye:
Planificacin
Flujos de trabajo fundamentales

Requisitos
Anlisis
Diseo
Implementacin
Pruebas

Evaluacin

El contenido vara para adaptarse al objetivo de cada


fase.

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)

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

120
1201

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

121
1211

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

122
1221

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

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

Ingeniera del Software

124
1241

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

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.

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

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

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

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

130
1301

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

131
1311

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

132
1321

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

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

Ingeniera del Software

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

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

135
1351

Un ejemplo: el Proceso Unificado

Caractersticas del Proceso Unificado


Flujos de trabajo fundamentales
Iteracin genrica
Planificar
Gestionar los riesgos
Recursos
Evaluar

Ingeniera del Software

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

Ingeniera del Software

137
1371

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

138
1381

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

139
1391

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

140
1401

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

Ingeniera del Software

141
1411

You might also like