Documentos de Académico
Documentos de Profesional
Documentos de Cultura
UNIFICADO DE DESARROLLO
(1ª parte)
The unified software development process, Ivar Jacobson, Grade
Booch, James Rumbaug, Ed. Addison Wesley, 1999
• Elementos:
– Estructurales: Clases, Casos de Uso,
– Comportamiento: Interacción, Estados...
– Agrupación: Paquetes
– Anotación: Notas
• Relaciones:
– Dependencia (Relación de Uso)
– Asociación (Relación estructural)
– Generalización (Representación de la herencia.)
– Realización
Estáticos(estructura) Dinámicos(comportamiento)
D. de Clases Casos de Uso
D. de Objetos Secuencia
Interacción
D. de Componentes Colaboración
D. de Despliegue Estados
Actividades
1..4 1..2 1
1 * *
Avión 1 * Vuelo 1 * Reserva
*
{ disjunta, completa }
1
Avión militar Avión comercial Línea aérea
{ disjunta, completa }
Control y Análisis
Interfaz de Terminal
Comm
Comm
Acceso a BD C
Rutinas de Coneccion
C
Terminal de Consulta
Interfaz de Terminal
Rutinas de Coneccion
C C
Punto de Venta
Rutinas de Coneccion
C
C C
V enta Normal
V enta en Rebajas
C liente V endedor
V enta en Oferta
Ingeniería del Software 12
Diagrama de estados
E s perando
t arj eta
E s p erando
PIN
P IN introducido( P IN )
[ inc orrec to ]
Rec ogiendo V alidando
tarjeta PIN
[ > 3 intentos ]
[ c orrec to ]
Es perand o
opc ión
[ OK ]
Ex puls ando
dinero
[ Not OK ]
dinero retirado
E x puls ar
Ingeniería del Software tarjeta 13
Diagrama de colaboración
5: c u enta dest in o
3: c antidad
11 : OK
: Cliente del banc o : Interfaz de ca jero : Trans acc ión
10: OK
12: transferencia realizada
Coger libro
S it uac i ón s o cio ok
S ituación libro ok
Solicitar pasaje
Verificar
existencia vuelo
Informar alternativas
y precios
Seleccionar vuelo
Confirmar
Pagar pasaje plaza reservada
Emitir billete
• Tareas:
– Crear una arquitectura inicial no específica 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.
– Evolución.
Entrega
Ciclos ...
Implementa
Analiza Diseña una clase
una Clase Analiza Diseña un Implementa
una clase
Ingeniero de un Subsistema Implementa Ejecuta Test Test
Componentes Paquete Subsistema Unitario
- Define la estructura
Realizado por Modelo de estática del sistema.
diseño - Refleja los casos de uso
como colaboraciones
Modelo de Distribuido por
casos de uso - Define la configuración
Modelo de de los nodos de
despliegue procesamiento y las
correspondencias entre
Implementado por ellos.
- Incluye los componentes
Modelo de
(código fuente) y las
implementación relaciones entre los
mismos
FASES
Planificación
Workflow Anál. Riesgos
Elaboración Construcción Transición
Verificación
Preparación
Requisitos
Iteración en
Fase de Elaboración
Análisis
Diseño
Implantación
Prueba
• Pasos a seguir
– Enumerar los requisitos candidatos
– Comprender el contexto del sistema
– Capturar requisitos funcionales
– Capturar requisitos no funcionales
* *
Encontrar actores y
Estructurar el modelo
Analista casos de uso
de casos de uso
Detallar un caso de
Especificador uso
Prototipar la interfaz
Diseñador de usuario
Glosario
Lista de
característ.
Ingeniería del Software 35
Flujo de trabajo de la captura de
requisitos funcionales (Actividades)
• Priorizar casos de uso
Modelo de Arquitecto
casos de uso
Glosario
Ingeniería del Software 36
Flujo de trabajo de la captura de
requisitos funcionales (Actividades)
• Detallar un caso de uso
Modelo de Especificador de
casos de uso casos de uso
Glosario
Modelo de
casos de uso Diseñador de
interfaz de usuario
Requisitos
adicionales
Prototipar la interfaz
Prototipo
de usuario
de interfaz
de usuario
Caso de uso
(descrito)
Glosario
Ingeniería del Software 38
Flujo de trabajo de la captura de
requisitos funcionales (Actividades)
• Estructurar el modelo de casos de uso
Modelo de
casos de uso Analista de
sistemas
Requisitos
adicionales
Estructurar el
Modelo de
modelo de casos
casos de uso
de uso
(estructurado)
Caso de uso
(descrito)
Glosario
Ingeniería del Software 39
Caso de uso “Validar usuario”
Flujo de eventos
ACCIÓN DEL ACTOR RESPUESTA DEL SISTEMA
CAMINOS ALTERNATIVOS
Validar
R2, R3,...
usuario
Usuario
Sacar <<extends>>
dinero Sacar
con visa
Ingresar
dinero
Transf. R4,...
Cliente
del banco
Consultar
saldo
Reponer
dinero
R1
Empleado Recoger
sucursal dinero
* *
* * *
*
Clase del
análisis
Confirmación
de Pedido
Gestor de
Pedidos
Factura
IU Solicitud
de Pago
Comprador
Planificador Solicitud
de Pagos de Pago
:Confirmación
4: Obtener de Pedido
:Gestor de
Pedidos
3: Comprobar Factura
2: Mostrar
:Factura
1: Mostrar Facturas
9: establecerEstado(Planificado)
6: Planificar pago de Factura
:Comprador
8: Obtener
:Planificador :Solicitud
de Pagos de Pago
*
Paquete del
análisis
*
*
Clase del Realización
análisis caso de uso -
Análisis
Análisis de la
Arquitecto arquitectura
Analizar un caso de
Ingeniero de
uso
casos de uso
Descripción de la
Descripción de la
arquitectura (vista del
arquitectura (vista del
modelo de análisis)
modelo de casos de uso)
Modelo de
casos de uso Ingeniero de casos
de uso
Realización caso
Requisitos de uso - análisis
adicionales
Analizar un
caso de uso
Clase del
Descripción de la
análisis (esbozo)
arquitectura (vista del
modelo de análisis)
Ingeniero de
Realización caso
componentes
de uso - análisis
Analizar una
clase Clase del análisis
(terminada)
Clase del
análisis (esbozo)
Ingeniero de
Descripción de la componentes
arquitectura (vista del
modelo de análisis)
Analizar un
Paquete del
paquete
análisis
(terminado)
Paquete del
análisis(esbozo)
7: visualiza (opciones)
: Cliente del banco 2: teclear código : Interfaz de cajero : Autenticar
8: seleccioneOpcion (opciones)
6: OK
: UsuariosDelBanco
7: visualiza (error)
: Cliente del banco 2: teclear código : Interfaz de cajero : Autenticar
6: Error
: UsuariosDelBanco
3: cantidad
11: OK
: Cliente del banco : Interfaz de cajero : Transacción
9: ingreso (cantidad)
8: OK
4: teclee cuenta destino
10: OK
12: transferencia realizada
3: cantidad
9: no hay fondos
: Cliente del banco : Interfaz de cajero : Transacción
cuentaOrigen : Cuenta
3: cantidad
12: error
: Cliente del banco : Interfaz de cajero : Transacción
9: ingreso (cantidad)
8: OK
4: teclee cuenta destino
10: error
13: error
Autenticar UsuariosDelBanco
- ingresar dinero
ingreso (importe)
- transferencia
las dos operaciones anteriores
- sacar dinero
retirarDinero (importe)
- ingresar dinero
ingresarDinero (importe)
- transferencia
transferencia (cuenta, cantidad)
rollback
Ingeniería del Software 70
Diseño
• Se modela el sistema para que de soporte a los requisitos
funcionales y no funcionales.
• Su entrada esencial es el modelo de análisis (una comprensión
detallada de los requisitos)
• Propósitos:
• Profundizar en la requisitos no funcionales y restricciones
dependientes de la plataforma.
• Crear una entrada apropiada para la implementación
• Descomponer los trabajos de implementación en partes mas
manejables y que permitan concurrencia.
• Capturar las interfaces entre los subsistemas.
• Es el centro de atención final de la fase de elaboración e
iteraciones iniciales de la fase de construcción
Realización
caso de uso -
diseño
* *
Sistema de Subsistema de
diseño diseño
* * * *
* *
Interfaz
Clases Realización caso
del de uso - diseño
diseño
► realiza
Interfaz
Clases del
diseño
Ingeniería del Software 74
Artefactos de diseño: Realización de un
caso de uso-diseño
• Es una colaboración en el modelo de diseño que
describe como se realiza un caso de uso en termino
de clases y objetos de diseño
• Contenido:
– Diagramas de clases de realización
– Diagramas de interacción (clases, subsistemas, interfaces)
– Flujo de sucesos-diseño
– Requisitos de implementación
«trace»
Subsistema de
diseño
► realiza
* * * *
► realiza *
Interfaz
Clases del *
diseño
► realiza
Subsistema de
diseño
Ingeniería del Software 77
Artefactos de diseño: Descripción de la
Arquitectura
• Descomposición en subsistemas
• Traza con clases de análisis
• Clases fundamentales (abstractas)
• Clases generales y centrales
• Realizaciones de caso de uso
Descripción de
la arquitectura
Modelo de
diseño
Ingeniería del Software 78
Artefactos de diseño: Modelo de
Despliegue
• Representa una correspondencia entre la
arquitectura del Hardware y la arquitectura
del Software Modelo de
• Describe la distribución física del sistema en despliegue
nodos de computo.
• Cada nodo representa un recurso de
computo *
Diseño de la
Arquitecto arquitectura
Diseñar un caso de
Ingeniero de uso
casos de uso
1. Diseño de la arquitectura
Identificar nodos y configuración, subsistemas, clases
2. Diseñar un caso de uso
Identificar clases de diseño y subsistemas
Distribuir comportamiento del CU
Capturar requisitos de implementación
3. Diseñar una clase
4. Diseñar un subsistema
Subsistema
Modelo de Interfaz
Arquitecto
casos de uso
Clase de
diseño
Requisitos
adicionales Diseño de la
arquitectura
Modelo de
despliegue
Modelo de
análisis Descripción de la Descripción arquitectura
arquitectura (vista del (vista de modelo de
modelo de análisis) diseño y despliegue)
Realización caso
Modelo de de uso - diseño
casos de uso Ingeniero de
casos de uso
Requisitos
adicionales Clase de
diseño
Diseñar un caso de
uso
Modelo de
análisis Subsistema
Realización caso
de uso - diseño Ingeniero de
componentes
Clase de
diseño
Diseñar una clase Clase de diseño
(completa)
Interfaz
Ingeniero de
Descripción arquitectura
componentes
(vista modelo de diseño)
Subsistema
(terminado)
Subsistema
(esbozado) Diseñar un
subsistema
Interfaz
Interfaz (terminada)
(esbozada)
LectorDeTarjetas
P antalla
Tec lado
Transac ción
1: l eerTarj eta
5: OK
6: leerP IN
7: introduc i rP IN (PIN)
8: datos P IN (P IN)
11: OK
1: l eerTarj eta
5: OK
6: leerP IN
7: introduc i rP IN (PIN)
8: datosP IN (P IN)
11: E rror
2
Tec lado
P antalla
1: opcion (transferencia)
2: trans ferencia
4: IntroducirIm porte
5: im porte
7: cu entaDes ti no (cuent a)
12: OK
13: OK
16: OK
17: OK
18: OK
4: IntroducirIm porte
5: im porte
7: c u entaDes ti no (cuent a)
12 : no ha y saldo
CajonDinero
UsuariosDelBanco
Impresora
GestorDeCliente Transacción
Pantalla
Cuentas
Teclado
DarDinero
Cuenta
vis uali zar(m ensaj e : S t ri ng) crearLec tor() : Lect orDe Tarj eta s
c rearP antall a() : P antal la leerTarjeta() : dato sTarj eta
Tecla do
crearTeclado() : Teclado
leerP IN() : unP IN
leerOpcion() : unaOpcion Gesto rDeCli ente
leerCantidad() : Dinero
leerNum Cuenta() : unIDCuenta crear() : GestorDeClie nte
creaCajeroVi rtual()
inici arS esion()
Im presora
Transacción
miCliente : GestorDeCliente
datosTarjeta : DatosTarjeta
numIntentosFallidos : 1..3 = 0 GestorDeCliente
cuentas : Cuentas miTransaccion : Transacción
usuarios : UsuariosDelBanco
crear() : GestorDeCliente
almacenarDatos(datos : DatosTarjeta) creaCajeroVirtual()
validar(importe : Dinero, cantidad : Dinero) iniciarSesion()
autenticar(datos : DatosTarjeta, PIN : UnPIN) : Boolean visualizar(resultados : String)
retirarDinero(importe : Dinero) : Boolean
ingresarDinero(importe : Dinero) : Boolean
trasnsferencia(cuentaOrigen : Cuenta, cuentaDestino : Cuenta, importe : Dinero) : Boolean
Cuentas UsuariosDelBanco
cuentas : Dictionary usuarios : Dictionary
reintegro(cuenta : Cuenta, importe : Dinero) : Boolean validar(datos : DatosTarjeta, PIN : UnPIN) : Boolean
ingreso(cuenta : Cuenta, importe : Dinero) : Boolean
Cuenta
datos : DatosCuenta
limiteDiario : Dinero = 50000
E s p erando
PIN
P IN introducido( P IN )
[ inc orrec to ]
Rec ogiendo V alidando
tarjeta PIN
[ > 3 intentos ]
[ c orrec to ]
Es perand o
opc ión
[ OK ]
Ex puls ando
dinero
[ Not OK ]
dinero retirado
E x puls ar
Ingeniería del Software tarjeta 95
Implementación
Integración de
sistema
Interfaz
Modelo de Descripción de la Modelo de Componente Implementac.
implementac. arquitectura despliegue subsistema
* *
Sistema de Subsistema de
implementac. implementac.
*
* *
*
Componente Interfaz
Clase de
diseño Componente
Interfaz Interfaz
Ingeniería del Software 101
Artefactos de implementación:
Subsistema de Implementación
• Forma de organizar los artefactos del
modelo de implementación en trozos más
manejables.
• Un subsistema puede estar formado por:
– componentes * *
– interfaces
Subsistema de
– otros subsistemas (recursivamente) implementac.
• Se manifiestan a través de un mecanismo
de empaquetamiento concreto de un ► r
entorno de implementación determinado. *
– Paquete en Java * *
– Proyecto en VB
– Etc. Componente Interfaz
Interfaz
Componente *
► realiza
Subsistema de
implementac.
Ingeniería del Software 103
Artefactos de implementación:
Descripción de la arquitectura
• La descomposición del modelo de implementación en
subsistemas, sus interfaces y las dependencias entre
ellos (cómo vienen dados por los equivalentes del
modelo de diseño suele ser innecesario
representarlos)
• Componentes clave (los que tienen traza a clases de
diseño significativas arquitectónicamente, y los
ejecutables)
Implementación de la
Arquitecto arquitectura
Implementar un
Ingeniero de subsistema
componentes Implementar una Realizar prueba de
clase unidad
Modelo de Arquitecto
casos de uso Componente
(esbozado y asignado
a un nodo)
Modelo de
análisis Implementación de la
arquitectura
Descripción arquitectura
Descripción arquitectura (vista de modelo de
(vista de modelo de implement. y despliegue)
diseño y despliegue)
Requisitos
adicionales Integrador de
sistemas
Modelo de Plan de integración
casos de uso de construcciones
Descripción arquitectura
(vista de modelo de Ingeniero de
implementación) componentes
Subsistema de
Plan de integración implementac.
de construcciones
Implementar un
subsistema
Subsistema de Interfaz
diseño
Interfaz
Ingeniero de
componentes
Clase de diseño
(diseñada)
Implementar una
clase Componente
(implementado)
Interfaz
Ingeniero de
componentes
Clase de diseño
(implementada)
Realizar prueba de
unidad Componente
(unidades probadas)
Interfaz
Sistema de pruebas
* X
X Procedimiento Componente
Caso de prueba
de prueba de prueba
Ingeniería del Software 113
Flujo de trabajo de pruebas
1. Planificar prueba
2. Diseñar prueba
– Describir casos de prueba de cada construcción
– Identificar y estructurar los procedimientos de prueba
3. Implementar prueba
4. Realizar pruebas de integración
5. Realizar prueba de sistema
6. Evaluar prueba
<<trace>> <<trace>>
Realización Realización
en diseño en implementación
<<file>>
<<file>>
• Incluye:
– Planificación
– Flujos de trabajo fundamentales
• Requisitos
• Análisis
• Diseño
• Implementación
• Pruebas
– Evaluación
• El contenido varía para adaptarse al objetivo de cada
fase.
• Fase de construcción
– Objetivo
• Versión beta
– Actividades:
1. Terminar la identificación, descripción y realización de todos los
casos de uso.
2. Finalizar el análisis, el diseño la implementación y pruebas.
3. Mantener la integridad de la arquitectura.
4. Monitorizar los riesgos críticos.
• Lecciones aprendidas
• Asuntos útiles para la versión siguiente
Varias iteraciones
en cuatro fases
Plan de proyecto
Información sobre
el sistema propuesto Planificar
Información
del dominio Plan de iteración
Experiencia
pasada
• Establecer:
– Asignaciones de tiempo y fecha de entrega por cada fase
(inestable hasta fin de elaboración)
– Hitos principales y criterios de aceptación
– 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
división de fases en iteraciones
• Pensar a largo plazo
• Definimos:
– Planificación de la Iteración: cuanto tiempo, fecha de terminación.
– Contenido de la Iteración: Contenido. Ya está esbozado en el plan del
proyecto pero al comenzar cada iteración se debe detallar:
• Casos de uso
• Riesgos técnicos 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 iteración siguiente se va detallando.
• El número de iteraciones de cada fase esta determinado por la
complejidad del sistema.
• Lista de riesgos:
– Identificador
– Descripción
– Prioridad (crítico, 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 periódicas para
revisar el estado de los riesgos
• Primeras iteraciones
– Riesgos relacionados con el ámbito del sistema y arquitectura
• Últimas iteraciones
– Añadir más funciones
• Categorías de riesgos:
– Específicos
– Arquitectónicos
– De requisitos
• Específicos de un producto
– Técnicos
– 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?
– Solución: requisitos, modelo de negocio
» uso real en prototipos
• Arquitectónicos
– No establecer una arquitectura flexible
– Fases de inicio y elaboración
– ¿Cómo determinar casos de uso importantes para la
arquitectura correcta?
• Casos de uso críticos (los más importantes para los usuarios del
sistema y los que tienen requisitos no funcionales como
rendimiento, tiempo de respuesta,...)
– Otras categorías de casos de uso: secundarios, auxiliares,
opcionales
– 80% de casos de uso descritos en elaboración para hacer la
planificación detallada y estar seguros de haber considerado
lo importante para la arquitectura
• Tiempo:
– Inicio 5%, elaboración 20%, construcción 65%, transición 10%
• Recursos
– Inicio 10%, elaboración 30%, construcción 50%, transición
10%
• Más incógnitas, más tiempo y recursos en inicio y
elaboración.