Está en la página 1de 81

Introduccin al Anlisis y

Diseo Orientado a Objetos


Tema 3

TACC II
Curso 2008/09
1
Motivacin
z Un p
proyecto
y software no consiste slo en p
programar.
g

z Necesitamos saber cules son las necesidades del cliente.


{ Identificar
Id tifi llos requisitos,
i it anotarlos,
t l analizarlos,
li l validarlos.
lid l

z Necesitamos disear una solucin,, y hacer los planos


p del
software:
{ Diseo de la arquitectura, detallado, de datos,

z Hay que asegurarse de que el software funciona:


{ Pruebas de unidad (a nivel de mtodo y clase), de integracin, del
sistema de aceptacin
sistema, aceptacin, etc.
etc

z Hay que mantener el software.


{ Documentacin (de cada una de las fases), coherencia entre los
productos de las distintas fases (ej. cdigo vs. diseos). 2
Indice

zModelos de Ciclo de Vida.


zAnlisis y Diseo Orientado a Objetos
Objetos.
zNotaciones.
zMetodologas.

3
Modelos de ciclo de vida
z Qu
Q estrategia
t t i seguimos
i para organizar
i l
las f
fases d
de
un proyecto?.

z Un modelo de ciclo de vida nos guia en las fases que


hayy q
que realizar, sus entradas y salidas, y los criterios
de transicin.

zL
La eleccin
l i de
d uno u otro depende
d d de
d las
l caractersticas
i
del proyecto.

z Con teconologas orientadas a objetos se tiende a ciclos


de vida iterativos e incrementales.
4
Modelos de Ciclo de Vida
/ Estudio de Viabilidad.
Planificacin y Estimacin.

Qu
Desventajas:
Anlisis
No
N permite
it iteraciones.
it i

Cmo
Diseo Los requisitos se
congelan al principio del
proyecto.
Codificacin
No existe un proyecto
enseable hasta el final
del proyecto.
Pruebas
e integracin
MCV en
Cascada Operacin
O y [ ti ]
[retiro]
Mantenimiento 5
Modelos de Ciclo de Vida

Iteracin de A & D [ms iteraciones]

Planificacin Anlisis Diseo

Incremento
Extraer
Eval.
Eval
Planificacin Anlisis Diseo clases Prototipo Pruebas
cliente
reutilizables

[ms iteraciones]

MCV iterativo e
incremental (RUP) 6
Indice

zModelos
M d l d de Ci
Ciclo
l dde Vid
Vida.
zAnlisis
Anlisis y Diseo Orientado a
Objetos.
{Ventajas e inconvenientes
inconvenientes.
{Anlisis.
{Diseo.
zNotaciones.
zNotaciones
zMetodologas.
7
Anlisis y Diseo
Problema vs
vs. Solucin
Anlisis (qu) Diseo (cmo)

Dominio del problema Dominio de la Solucin

Modelo del Dominio del Problema Modelo del Dominio de la Solucin


ControlTrafico
VentanaResumen VentanaMapas
p
Avin Controlador
Trafico BDPlanVuelo

Aeropuerto C t lT fi
ControlTrafico
PlanVuelo
8
Paradigma
g de Orientacin a Objetos
j
Caractersticas

z Diseos modulares
modulares.

z Efectos laterales mnimos(encapsulamiento)


( p )

z Extensibilidad.

z Fcil de modificar.

z Orientado a datos.

z Explota la herencia (jerrquico).

z Reutilizacin
R ili i dde clases.
l
9
Ventajas
z Mdulos con fuerte cohesin interna y escaso
acoplamiento externo (sin variables globales, )
z Facilita el funcionamiento en entorno
multiprocesador (objetos distribuidos)
z Correspondencia directa con el mundo real
z Prototipos rpidos
z Herramientas y bibliotecas muy amplias
z Aplicaciones construidas enganchando objetos
z Mejor comprensin y mantenimiento
z Apropiado para aplicaciones dirigidas por eventos.
10
Inconvenientes
z IImpactos
t d f
desfavorables
bl sobre
b espacio
i y tiempo
ti d
de
ejecucin.

z Forma de pensar diferente: curva de aprendizaje lenta.

z Herencia y ligadura dinmica dificultan las pruebas.

z Difcil seguir el flujo de ejecucin (e.j. llamdas implicitas


a constructores, conversiones implcitas, etc.)

z Frameworks grandes y complicados (e.j. MFCs).

11
Anlisis Orientado a Objetos
z Centrarse en el qu.

z Identificar los requisitos: documentos de anlisis.


{ Entrevistas.
{ Identificar requisitos funcionales y no funcionales (ej.: rendimiento,
fiabilidad)

z Especificar los requisitos: documento de especificacin de


requisitos.
{ Documento
D t tcnico.
t i O
Organizacin
i i y clasificacin
l ifi i dde llos requisitos.
i it

z Analizar: Modelos de anlisis


anlisis.
{ Estudio de posibles escenarios: casos de uso.
{ Otras tcnicas: fichas CRC, orientados al flujo, etc.

z Validar. 12
Anlisis Orientado a Objetos
z La especificacin de
requisitos
i it d
describe
ib ell
Obtencin
sistema, en lenguaje
de requisitos natural.
Especificacin
de requisitos:
Documento
z Sirve de comunicacin
entre desarrolladores y
Anlisis
clientes, contrato.
Modelo de
Anlisis:
Modelo z El modelo de anlisis
Diseo del usa notacin formal (ej.:
Sistema Z,, Alloy)
y) o semi-formal
Modelo del
Sistema: (ej.: UML).
Modelo

z Sirve de comunicacin
entre desarrolladores. 13
Anlisis Orientado a Objetos
Modelos de Anlisis
Modelos basados en Modelos orientados al Flujo
Escenarios
Casos de uso, texto. Diagramas de Flujo de Datos
Casos de uso, diagramas. Diagramas de Flujo de Control
Diagramas de actividad. Diagramas de Transicin de Estados
Diagramas de secuencia.

Modelo de Anlisis

Modelos basados en
Clases Modelos basados en
Comportamiento
Diagramas de Clases.
Diagramas de Paquete. Diagramas de Estado.
Modelos CRC.
CRC Diagramas de Secuencia.
Secuencia
Diagramas de Interaccin.
14

Anlisis Orientado a Objetos
Modelos de Anlisis. Basado en Escenarios.

Modelo de
Anlisis: Modelo

Modelo Funcional: Modelo de Modelo


Modelo Objetos: Modelo Dinmico: Modelo

z Modelo funcional: casos de uso y escenarios.


z Modelo de Objetos: diagramas de clases y
objetos.
z Modelo
M d l dinmico:
di i di
diagramas d
de secuencia,
i
15
Casos de uso
zD
Describen
ib qu hace
h ell sistema
i t d d ell punto
desde t de
d vista
i t
de un observador externo.

z Actores: quin interacta con el sistema?. Tambin


pueden ser otros sistemas.
p

z Un escenario es un ejemplo de lo que ocurre cuando


uno o varios
i actores interactan
i con ell sistema.
i

zC
Caso ded uso: conjunto
j t ded escenariosi (
(secuencias
i d
de
interaccin de los actores y el sistema)

16
Casos de uso

z Pasos:

{ Identificar los lmites (alcance) del sistema.

{ Identificar los actores principales.

{ Para cada uno, identificar sus objetivos.

{ Definir casos de uso que satisfagan sus objetivos.

17
Casos de Uso: Ejemplo
CASO DE USO 1: Procesar venta

Actor Primario:
{ Cajero.
C j
Interesados y objetivos:
{ Cajero: Quiere anotaciones precisas y rpidas de precios, sin errores.
{ Cliente:
Cli t Q Quiere
i que ell pago sea rpido
id con ell mnimo
i esfuerzo.
f Q i
Quiere
una prueba de compra para justificar devoluciones.
{ Compaa: Quieren almacenar las transacciones y satisfacer los
intereses de los clientes.
{ Comercial: Quiere que se le actualicen sus comisiones por venta.
{ Agencias de impuestos gubernamentales: Quieren recolectar impuestos
de cada venta. Puede que haya varias agencias (nacionales, regionales,
etc.)
t )
{ Servicios de Autorizacin de Pagos (por tarjetas de crdito): Quiere
recibir peticiones digitales de autorizaciones en el formato y protocolo
correcto.
Precondiciones:
18
{ El cajero se ha identificado y autentificado.
Casos de Uso: Ejemplo
Garanta de xito (Postcondiciones):
Se registra la compra en el sistema. Se calcula el impuesto aplicable. Se actualizan los sistemas de
inventario y de contabilidad. Se registran las comisiones. Se genera un recibo. Se registran las
aprobaciones de pago por tarjeta.
Escenario principal de Exito:
1. Llega un clienta al TPV con bienes o servicios que comprar.
2. El cajero comienza una nueva compra.
3. El cajero introduce un identificador de producto.
4 El sistema
4. i t registra
i t ell elemento
l t y presentat una descripcin
d i i del
d l mismo,
i su precio
i y
total actual. Se calcula el precio de una lista de reglas.

El cajero
j repite
p los p
pasos 3-4 hasta q
que no hayy ms elementos.

5. El sistema presenta el total con los impuestos calculados.


6. El cajero le dice el total al cliente, y le pide que pague.
7 El cliente paga y el sistema procesa el pago.
7. pago
8. El sistema registra la venta completada y manda la informacin a los sistemas
externos de inventario y contabilidad.
9. El sistema genera el recibo.
10. El cliente se va.
19
Casos de Uso: Ejemplo
Extensiones (Flujos alternativos):
a*. En cualquier momento, el sistema falla.

3a. Identificador invlido.


1. El sistema seala un error y rechaza la entrada.
7a. Pago en efectivo.
...
7b Pago con tarjeta
7b. tarjeta.
...

Requisitos especiales:
z Pantalla tctil en panel grande y plano. El texto debe ser visible desde un metro.
z Respuesta de autorizacin de crdito en menos de 30 secs, el 90% de las veces.
z Recuperacin robusta cuando el acceso a sistemas externos (tales como el inventario,
impuestos, etc.) falla.
z Posibilidades de internazionalizacin de texto.
z Reglas de negocio insertables en los pasos 3 y 7.
...

20
Casos de Uso: Ejemplo
Lista de variaciones de tecnologa y datos:
3a. Se introduce el identificador del elemento mediante escner de cdigo de barras o
mediante el teclado.
3b. Distintos esquemas de identificadores: UPC, EAN, JAN o SKU.
7a. La informacin sobre el pago con tarjeta se puede introducir mediante el teclado o
lector.
7b. Se pide firma en papel. En dos aos, creemos que muchos clientes van a querer
captura de firma digital.

Frecuencia de ocurrencia:
Puede ser casi continua.

Temas abiertos:

Cules son las posibles variaciones en las leyes sobre impuestos?


Explorar el tema de recuperacin en caso de fallo de sistemas externos.
Qu modificaciones se necesitan para negocios distintos?
Debe el cajero extraer el cajn con la recaudacin al terminar?
Puede el cliente usar directamente el lector de tarjetas o es el cajero el que lo hace?
21
Diagrama de Casos de Uso (UML)
TPV
Procesar
Venta
Servicio
caje o
cajero de Autorizacin
Procesar de Pagos
Devoluciones

actor
actor Analizar
Analizador de Actividad Calculador de
Actividad de Impuestos
p
Ventas
...
actor

Gestionar Sistema de
Seguridad contabilidad

Gestionar
Administrador Usuarios
del sistema 22
Modelos de Anlisis Basados en Clases
Identificar las clases

z Analizar los documentos de anlisis,


anlisis o casos de uso.
uso
z Clases que pertenecen al espacio de la solucin vs.
espacio
p del p
problema.
z Aislar los sustantivos:
{ Entidades externas: producen o consumen informacin que usa
el sistema.
{ Cosas (informes, seales, etc.): informacin que necesita el
sistema.
{ Sucesos o eventos que ocurren durante la operacin del
sistema.
{ Papeles que desempean los usuarios.
{ Unidades organizacionales.
{ Sitios que establecen el contexto y la funcin global del sistema.
{ Estructuras que definen una clase de objetos o clases
relacionadas.
23
Diagrama de clases
Concepto
C t u
Conceptuales Objeto del
dominio

* d
descrito-por
it 1
ElementoVenta Especific.Producto
cantidad registra-ventas-de Descripcion 3contiene
0..1 Precio 1..*
1..*
1.. 1..*
1.. ID 1
Producto 1 Catlogo
1..*
contenido-en 3 describe
1 *
1..*
3 Usado-por 1
1 *
3 almacena
Venta Tienda
* capturada-en 1
fecha Iniciada-por direccin Atributos
hora 1 nombre
1 1 1
por
pagada-p

Cliente contiene

1 1..* Asociacin
1
P
Pago R i t
Registro
Cajero
registra-ventas-en 24
cantidad
1 1
Clasificacin de clases

z Tipos de clases:
{De entidad (a.k.a. de modelo o de negocio). Son clases
que persisten
i d
durante l
la aplicacin.
li i R
Representan
informacin relevante para la aplicacin.

{De frontera (a.k.a. de contorno). Clases que crean la


interfaz que el usuario ve y con la que interacciona.
interacciona

{De control. Realizan una unidad


unidad de trabajo
trabajo:: crean o
actualizan objetos de entidad, validan datos, etc.

25
Diagrama de clases de anlisis
Caso de uso Procesar Venta

Cajero TPV GUI

actor actor actor

Sistema Servicio Calculador Registro Busqueda


Calculo
Contabilidad Autorizacin Impuestos Venta Elemento
Precio
Pagos

1..*

Venta Elemento26
Venta
Mtodo de Clase-Responsabilidad-
Colaborador (CRC)
z Clases/Responsabilidades/Colaboradores.
Clases/Responsabilidades/Colaboradores

z Facilitan la colaboracin entre desarrolladores.

z Una ficha por cada clase relevante.

z Se identifican sus responsabilidades.

z Divisin de responsabilidades, relaciones de


colaboracin.

z Jerarquas de generalizacin/especializacin.
27
Mtodo de Clase-Responsabilidad-
Colaborador (CRC)

Clase: PlanoDePlanta
Descripcin:

Responsabilidad Colaborador
Define el nombre/tipo de plano de planta

Maneja la posicin del plano de planta

Escala el plano de planta

Incorpora paredes, puertas y ventanas Pared

M
Muestra
t lal posicin
i i dde llas cmaras
d
de vdeo
d C
Camara

28
Del Anlisis al Diseo
z El modelo
d l de d anlisis
li i ddescribe
ib ell sistema
i t d
desde
d
el punto de vista de los actores.
z No
N contiene
ti iinformacin
f i dde lla estructura
t t iinterna
t
del sistema, esto es del cmo.
z Diseo
Di d dell sistema:
i t
{Objetivos de diseo que se deben optimizar (derivados
de los requisitos no funcionales)
funcionales).
{Una arquitectura software: descomposicin en
subsistemas, dependencias entre ellos, etc.
z Diseo detallado (de objetos).
{Refinamiento del diseo del sistema.
{Diseo de las clases de la solucin, interfaces. 29
Diseo Orientado a Objetos

zConceptos bsicos de DOO:


{ Encapsulamiento.
p
{ Ocultacin de informacin.
{ Herencia.
Herencia
{ Interfaces.
{ Polimorfismo.
P li fi

30
Diseo Orientado a Objetos
j
Encapsulamiento

zDesarrollador
{Objetivo:
j crear clase con interfaz clara y
comprensible
{Manera: ocultar detalles de implementacin
{Beneficios: cambio de estructuras/algoritmos
sin afectar
{Coste: clases reutilizables ms caras a corto
plazo

31
Diseo Orientado a Objetos
j
Encapsulamiento

zUsuario de las clases


{Objetivo:
j usar la clase con el mnimo esfuerzo
{Manera: usar slo las operaciones provistas
{Beneficios: interfaz comprensible
comprensible, bajo coste de
programacin
{Coste: prdida de eficiencia de ejecucin

32
Descomposicin Funcional

zMdulos construidos alrededor de las


p
operaciones
zDatos globales o distribuidos entre
mdulos
zEntrada/Proceso/Salida
zOrganigramas de trabajo y flujo de datos

33
OOD

zMdulos construidos alrededor de las


clases
zClases escasamente acopladas, sin datos
globales
zEncapsulamiento y mensajes
zDiagramas jerrquicos de clases

34
Definicin de una clase

z Identificar y nombrar la clase


z Identificar sus componentes
p
z Identificar sus atributos
z Identificar los errores
z Identificar las conexiones funcionales (qu
clases sirve/exige)
z Definir conexiones con superclase y subclases
z Identificar propiedades especiales (persistencia,
concurrencia)
z Probar la clase en un prototipo 35
Identificar atributos

zEl conjunto de atributos de una clase debe


ser:
{Completo (contienen toda la informacin
pertinente)
{General (se aplican a todos los objetos de la
clase)
{Diferenciado (cada atributo representa un
aspecto diferente de la clase)

36
Definir atributos

zTipos
Ti d
de atributos
t ib t
{Atmicos predefinidos (entero, real, carcter,
pixel...)
{Atmico enumerativo (color, da de la
semana...))
{Coleccin
{Composicin (referencias objetos)
zValor del atributo
{Comn a muchos objetos (variable de clase)
{Propio
op o de u
un objeto ((variable
a ab e de objeto)
37
Identificar Mtodos

z Mtodo: algoritmo que utiliza y modifica los


atributos de una clase
z Un mtodo es desencadenado por un mensaje
z Funcionalidad de la clase: conjunto de sus
mtodos
z El conjunto de mtodos debe ser:
{Completo (realizan toda la funcionalidad de la clase)
{General (se aplican a todos los objetos de la clase)
{Diferenciado (cada mtodo debe ser simple y realizar
una sola funcin)
38
Definir Mtodos

zTipos
Ti de
d mtodos
t d
{Modificador (asigna valor a un atributo)
{Selector (devuelve el valor de un atributo)
{Aplicable
p a la clase ((constructor))
{Aplicable al objeto
zParmetros del mtodo
{Qu informacin necesita? (argumentos de
entrada)
{Qu debe devolver? (resultado y argumentos
de sa
salida)
da)
39
Ejemplo
descrito-por
ElementoVenta EspecificacionProducto
* 1
C tid d Entero
Cantidad: E t Descripcion: Text
Precio: Dinero
getSubTotal()
ID: IDElemento
1..* ...
contenido-en 1 *
1..*
1 5contiene
1 Busca-en 1
captura Catalogo
g
Venta 1 catalogo
1 ...
Fecha: Date
hora: Time Registro getEspecificacion(...)
1
completa: Logico ...
1
Completar() finalizarVenta()
* 5usa
crearElementoVenta(..) introducirElemento(...)
crearPago() hacerNuevaCompra(...) 1
getTotal()
g () realizarPago(...)
1 Tienda
1
pagada-por Direccin: Direccion
1
nombre: Texto
P
Pago tiene 1
anyadirVenta(...)
Cantidad: Dinero 40
3Registra-completadas 1
Identificar Errores

zQu puede salir mal durante la ejecucin


de un mtodo?
zQu comprobaciones debe hacer cada
mtodo?
zCmo interceptar y corregir las
condiciones de error?

41
Patrones de Diseo
z Catlogo de soluciones que han probado ser buenas
para ciertos problemas comunes de diseo.

z Evita reinventar la rueda continuamente.

zR
Reutilizacin
tili i de
d buenas
b prcticas,
ti comn
en otras
t
ingenieras.

z Un patrn es una descripcin del problema y la esencia


de su solucin, que se puede reutilizar en casos
distintos.
distintos

z Los estudiaremos en el Tema 8.


42
Indice

zModelos de Ciclo de Vida.


zAnlisis.
zAnlisis
zDiseo.
zNotaciones.
{UML
zMetodologas.
zMetodologas

43
UML
http://uml.org

z Unified Modeling Language


Language.

z Combinar y estandarizar una notacin para la descripcin


de sistemas orientados a objetos a partir de los lenguajes
de modelado ms conocidos:
{ Booch - OOD.
OOD
{ Rumbaugh - OMT.
{ Jacobson - OOSE y Objectory.

z Combina las mejores propiedades de:


{ Conceptos de modelos de datos (ERD)
{ Modelos de negocios (workflow)
{ Modelos de Objetos
{ Modelos de Componentes
44
UML
z Es un lenguaje grfico para visualizar
visualizar, especificar
especificar,
construir y documentar las partes de un sistema de
software desde distintos puntos de vista.

z Ofrece una forma estndar de modelar sistemas


software pudiendo utilizarse:
software,
{ Con cualquier proceso de desarrollo.
{ A lo largo de todo el ciclo de vida.
{ Con
C di distintas
ti t ttecnologas
l d de iimplementacin
l t i

z Puede usarse tambin en otras reas,, como la


ingeniera de negocio, modelado de procesos, etc.

45
UML
z No es un mtodo,
mtodo ni un proceso ni una metodologa
metodologa.

z No establece qu modelos construir.

z Para un ptimo aprovechamiento, debe ser usado en un


proceso:

{ guiado por casos de uso


uso,

{ centrado en la arquitectura,

{ iterativo e

{ incremental.
46
UML

zUML es una familia de notaciones, tiles


para describir distintos aspectos
p p de un
sistema:
{Esttico. Describe los elementos del sistema y
{Esttico
sus relaciones.
{Dinmico Describe el comportamiento del
{Dinmico.
sistema a lo largo del tiempo.
zCasos de Uso
Uso. Desde el punto de vista del usuario
usuario.

47
UML

Tipos de
Diagramas

UML

Modelos 48
Vistas
z Vista
Vi t de
d C
Casos d
de U
Uso
{Funcionalidad externa del sistema
z Vista
Vi t Lgica
L i
{Estructura esttica y conducta dinmica del sistema
z Vista
Vi t de
d C
Componentes
t
{Organizacin de las componentes
z Vista
Vi t de
d C
Concurrencia
i
{Comunicaciones y sincronizacin
z Vista
Vi t de
d D
Despliegue
li
{Arquitectura fsica
49
Vista de Casos de Uso
z Dirigida
g al Anlisis de Requisitos
q ((lo q
que q
quiere hacer el
usuario)
z Describe la funcionalidad del sistema, como la perciben
los actores externos
z Dirige el desarrollo de las otras vistas
z Define los objetivos finales del sistema
z Permite validar el sistema
z Actor externo:
{ Usuario
{ Otro sistema
z Se p
plasma en diagramas
g
{ de Casos de Uso
{ de Actividad
{ de Secuencia
50
Vista de Casos de Uso
TPV
Procesar
Venta
Servicio
caje o
cajero de Autorizacin
Procesar de Pagos
Devoluciones

actor
actor Analizar
Analizador de Actividad Calculador de
Actividad de Impuestos
p
Ventas
...
actor

Gestionar Sistema de
Seguridad contabilidad

Gestionar
Administrador Usuarios
del sistema 51
Vista Lgica

zDescribe la funcionalidad interna


zDirigida a diseadores y desarrolladores
zDefine la estructura esttica
{Clases, objetos y relaciones
zDefine
Define las colaboraciones dinmicas
{Mensajes y funciones
zP i d d adicionales
zPropiedades di i l
{Persistencia y concurrencia
{Interfaces y estructura interna de las clases 52
Vista Lgica

zSe plasma en diagramas


{Estticos
zde Clases
zde Objetos
j
{Dinmicos
zde Estado
zde Secuencia
zde
de Colaboracin
zde Actividad

53
Vista Lgica
g
Diagramas estticos

Elemento

Diagrama
ag a a de
clases
Carbono Hidrgeno

:Hidrgeno :Hidrgeno

Diagrama de
Di d
objetos :Hidrgeno :Carbono :Carbono :Hidrgeno

54
:Hidrgeno :Hidrgeno
Vista Lgica
Diagrama
g de Estados
[(info=driver.detectarDisco())!=NULL]/
[not driver. disco=buscaDisco(info)
detectarAbierto()] NumActual = 1;
C actual = disco.obtenerCancion(ordenActual)
disco obtenerCancion(ordenActual)
Abierto()]

Cerrado endOfSong()/
NumActual+=1
driver.cerrar ()
[driiver.detectarA

Play()/
Pl ()/
driver.abrir ())

C
Stop driver.play(actual, 0) Play
()/
ejject ()/

[NumActual<=

pausa)
eject

disco.numCanciones()]/

p()
d
e

Tpausa = driver.stop
driver.plaay(actual, Tp
d

actual=
eject ()/
Abierto disco.obtenerCancion
driver.stop(); stop()/
(NumActual)
driver.abrir() driver.stop();
driver.play(actual,0)
NumActual=1

Pause()//
actual=

Play()/
disco.obtenerCancion(NumActual)

P
Pause

apagar ()/
driver.stop(); 55
driver.apagar()
Vista Lgica
g
Diagrama de Secuencia

56
Vista Lgica
g
Diagrama de Colaboracin (comunicacin)

realizarPago(cantidad) 1: realizarPago(cantidad)
:Registro :Venta

1.1: crear(cantidad)

:Pago

57
Vista Lgica
g
Diagrama de Actividad

Put Coffee Put Filter


in Filter in Machine
Turn on
Machine
[found
coffee] Add Water / coffeePot.turnOn
to Reservoir
Find Brew
Beverage coffee

[no coffee] Get light goes out


Cups
Pour
Coffee
[found cola] Get cans
of cola

Drink

[no cola]
58
Vista de Componentes

zDescribe los mdulos del sistema y sus


p
dependencias.
zModelar la arquitectura software.
zDirigida
Di i id a d
desarrolladores.
ll d
zSe
Se pplasma
as a e
en d
diagramas.
ag a as
{de Componentes

59
Vista de Componentes
p
Ejemplo

60

http://www.agilemodeling.com/artifacts/componentDiagram.htm
Vista de Concurrencia

z Describe la divisin del sistema en procesos y


procesadores
z Dirigida a desarrolladores e integradores
z Resuelve problemas de
{uso eficiente de los recursos
{ejecucin en paralelo (hilos)
{comunicacin y sincronizacin de hilos
z Se plasma en diagramas
{dinmicos
{de Componentes
{de Despliegue 61
Vista de Concurrencia
Ejemplo

:FactoryManager
:FactoryScheduler
job
1:start(job)
A2,B2/2:completed(job)
currentJob:TransferJob
<<local>> job :FactoryJobMgr

B2:completed A2:completed
1/B1:start(job) 1/A1:start(job)

:Robot :Oven

62
Vista de Despliegue

zMuestra
M t la
l di
distribucin
t ib i ffsica
i d dell sistema
i t
(ordenadores, dispositivos) y sus
conexiones
zDirigida
g a desarrolladores,, integradores
g y
probadores
zSe plasma en
{el diagrama de Despliegue
{el mapa de asignacin de componentes a la
arquitectura fsica

63
Vista de Despliegue
p g
Diagrama de Despliegue

64
Tipos de Diagramas

65
Tipos de Diagramas

Anlisis Diseo

D. Casos de Uso. D. Clases y Objetos.

D. Secuencia del Sistema. D. Colaboracin.

D Clases Conceptuales
D. Conceptuales. D Secuencia
D. Secuencia.

D. Clases Anlisis. D. Estados.


66
Indice

zModelos de Ciclo de Vida.


zAnlisis.
zAnlisis
zDiseo.
zNotaciones.
zMetodologas.
zMetodologas

67
Metodologas

zUna notacin no es suficiente.


zCmo se organiza el proyecto? (MCV)
zQu documentacin se genera?
zQu tcnicas se utilizan en cada fase?
zQuin las realiza?
zHerramientas de soporte?

68
Metodologas
Booch (
(OOAD)) Jacobson (OOSE)
CASEIode (CCM) Olivetti (OGROUP)

Coad-Yourdon- Martin-Odell
Ni l (OOA,OOD)
Nicola (OOA OOD) (OOIE)
NE University TASKON
(Demeter) ((OORAM))
Object Engin. Winter (OSMOSYS)
(Fresco) Rumbaugh (OMT)
Hewlett-Packard LBMS (SE/OT)
(Fusion) Shlaer/Mellor
Graham (SOMA) (OOSA)
Texas Instruments CCTA (SSADM)
(IE\O) WWirfs-Brock
s oc (RDD)
( )
ICL (MTD) Lloyds Register 69

ParcPlace (OBA) (Z++)


Rational Unified Process (RUP)
z Es un pproceso iterativo e incremental.
z Dirigido por los casos de uso.
z Centrado en la arquitectura.
arquitectura
z Fases:
{ Comienzo
Comienzo. Definir el alcance del proyecto.
proyecto
{ Elaboracin. Plan de proyecto, especificar caractersticas,
esbozar la arquitectura.
{ Construccin. Construir el producto.
{ Transicin. Entrega a los usuarios.

Comienzo Elaboracin Construccin Transicin


70
tiempo
Rational Unified Process (RUP)
( )
Hitos e Iteraciones

Comienzo Elaboracin Construccin Transicin

Visin Esbozo funcionalidad Release


de arqu. inicial del producto

Comienzo Elaboracin Construccin Transicin

Iteraciones Iteraciones de Iteraciones de Iteraciones de


preliminares arquitectura desarrollo transicin

Release Release Release Release Rel. Release ReleaseRel. Release Release 71


Rational Unified Process (RUP)
Fases workflows e iteraciones
Fases,

72
Rational Unified Process (RUP)
workflows y modelos

Modelo de Uso de diagramas UML


Requisitos Casos de
Uso

Modelo de
Anlisis Anlisis

Modelo
Modelo de
Diseo de
Despliegue
g
Diseo

Modelo de
Implementacin I l
Implementacin
t i

Modelo de
Prueba Pruebas
73
Modelo de Casos de Uso
Diagramas de
Casos de Uso

Modelo de Diagramas de Diagramas de Diagramas de


Casos de Uso Clases Objetos Paquetes

Modelo de Diagramas de
Anlisis Componentes

Modelo Diagramas d
Di de
De Diseo Despliegue

Modelo de Diagramas
g de
D
Despliegue
li Secuencia

Modelo de Diagramas de
Implementacin Colaboracin

Modelo de Diagramas de
Pruebas Estado

Diagramas de 74
Actividad
Modelo de Anlisis
Diagramas de
Casos de Uso

Modelo de Diagramas de Diagramas de Diagramas de


Casos de Uso Clases Objetos Paquetes

Modelo de Diagramas de
Anlisis Componentes

Modelo Diagramas d
Di de
De Diseo Despliegue

Modelo de Diagramas
g de
D
Despliegue
li Secuencia

Modelo de Diagramas de
Implementacin Colaboracin

Modelo de Diagramas de
Pruebas Estado

Diagramas de 75
Actividad
Modelo de Diseo
Diagramas de
Casos de Uso

Modelo de Diagramas de Diagramas de Diagramas de


Casos de Uso Clases Objetos Paquetes

Modelo de Diagramas de
Anlisis Componentes

Modelo Diagramas d
Di de
De Diseo Despliegue

Modelo de Diagramas
g de
D
Despliegue
li Secuencia

Modelo de Diagramas de
Implementacin Colaboracin

Modelo de Diagramas de
Pruebas Estado

Diagramas de 76
Actividad
Modelo de Despliegue
Diagramas de
Casos de Uso

Modelo de Diagramas de Diagramas de Diagramas de


Casos de Uso Clases Objetos Paquetes

Modelo de Diagramas de
Anlisis Componentes

Modelo Diagramas d
Di de
De Diseo Despliegue

Modelo de Diagramas
g de
D
Despliegue
li Secuencia

Modelo de Diagramas de
Implementacin Colaboracin

Modelo de Diagramas de
Pruebas Estado

Diagramas de 77
Actividad
Modelo de Implementacin
Diagramas de
Casos de Uso

Modelo de Diagramas de Diagramas de Diagramas de


Casos de Uso Clases Objetos Paquetes

Modelo de Diagramas de
Anlisis Componentes

Modelo Diagramas d
Di de
De Diseo Despliegue

Modelo de Diagramas
g de
D
Despliegue
li Secuencia

Modelo de Diagramas de
Implementacin Colaboracin

Modelo de Diagramas de
Pruebas Estado

Diagramas de 78
Actividad
Proceso dirigido por casos de uso
workflows

Requisitos Anlisis Diseo Implementacin Prueba

Los casos de uso dirigen y relacionan estos workflows

z Los casos de uso dirigen las iteraciones:


{ Creacin y validacin de la arquitectura.
{ Definicin de los casos y procedimientos de prueba.
{ Planificacin de las iteraciones.
{ Creacin de la documentacin de usuario.
{ Entrega del sistema
z Sincronizacin del contenido de los distintos modelos
79
Proceso centrado en la arquitectura
z Los modelos son el medio para visualizar,
especificar, construir, generar y documentar la
arquitectura del sistema.

z RUP prescribe el refinamiento sucesivo de la


arquitectura.
arquitectura

C i
Comienzo El b
Elaboracin
i C
Construccin
t i T
Transicin
i i
tiempo

Arquitectura

80
Bibliografa
z Applying
A l i UML and d Patterns.
P tt 2 d Edition
2nd Editi . Craig
C i
Larman, Prentice Hall, 2002.
z Applying
A l i UML ini the
th Unified
U ifi d Process.
P Ivar
I
Jacobson, Rational Software.
z Ingeniera
I i del
d l Software.
S ft U enfoque
Un f prctico
ti 6
Edicin. R.S. Pressman, McGraw Hill. 2005.
z Ingeniera
I i del
d l Software
S ft O i t d a Objetos,
Orientado Obj t
Bruegge, Dutoit, Prentice Hall. 2002.
z Anlisis
A li i y Diseo
Di Orientado
O i t d a Objetos
Obj t con UML
y el Proceso Unificado. Schach. McGraw Hill.
2005
2005.
81

También podría gustarte