Вы находитесь на странице: 1из 92

Modelamiento de

Software y Negocios
Jorge Maturana Ortiz
Septiembre 2004
Tabla de Contenidos
PARTE I: ModeIamiento de Software
1. Por qu modelar?
2. Qu es UML?
3. Elementos de Orientacin a Objetos
4. Estructura de UML
5. Diagramas de UML
6. Trazabilidad
PARTE II: ModeIamiento de Negocios
7. Modelamiento de Negocios con DEF
8. Modelamiento de Negocios con UML (Eriksson-Penker)
9. Diagramas UML para Modelamiento de Negocios
PARTE III: Herramientas
10. Demostracin de Enterprise Architect (UML)
11. Demostracin de AllFusion BPWin (DEF)
Por qu modelar?
Casas de perro y rascacielos
Qu es un Modelo?
Representacin simplificada de la realidad
Recoge slo aspectos de inters
Promueve entendimiento
til para:
Comprender
Describir
Predecir
Responder preguntas
SW: Modelar es disear aplicaciones de SW
antes de codificarlas
Modelos de Software: para qu?
Disminuye costos de falla
mportancia del modelamiento aumenta
con el tamao de los proyectos de SW
(casas de perro - rascacielos)
Aspectos de Calidad de SW:
Externa (observable)
nterna (no observable)
Principios de modelado
1. Elegir los modelos a utilizar que sirvan al
propsito deseado
2. Los modelos pueden ser expresados en
distintos niveles de precisin
3. Mientras ms coherente sea un modelo con
la realidad, mejor
4. Cualquier sistema no trivial se aborda mejor
con varios modelos casi independientes
Qu es UML?
Se come?
Qu es UML?
Lenguaje para especificar, visualizar, y
documentar modelos de sistemas de software
Orientado a Objetos
Lenguaje, NO mtodo de desarrollo
Diagramas se agrupan en 5 perspectivas:
Usuario
Estructura
Comportamiento
mplementacin
Despliegue
Historia de UML
1970-1980: Aparecen varios lenguajes OO
1994: Ms de 50 Lenguajes de modelamiento diferentes
Lenguajes se empiezan a mezclar, emergiendo los ms
predominantes
Booch, Rumbaugh y Jacobson se unen bajo el alero de Rational
1996: UML 0.9
1997: UML 1.0 (UML Partners Consortium)
1997: UML 1.1
1998: UML 1.2
1999: UML 1.3
2000: UML 1.4
Fines de 2004: UML 2.0
Elementos de
Orientacin a Objetos
Acercndose al paradigma
Clases y Objetos
"reloj
Variables: hora
minuto
Mtodos: fijar hora
dar hora
Relacin entre clases
Reloj
Reloj de
manecillas
Reloj
digital
Herencia: establece una
jerarqua de clases. Se heredan
las caractersticas de los padres
pertenece a
(asociacin)
tiene
(agregacin)
Asociacin: relacin simple entre clases
Agregacin: relacin estrecha entre clases
Estructura de UML
4 + 1 = 5
Diagrama de Clases
Diagrama de objetos
Diagrama de Casos de Uso
Diagrama de Secuencia
Diagrama de Colaboracin
Diagrama de Actividades
Diagrama de Estados
Diagrama de Deployment
Diagrama de componentes
Vistas de UML Modelo 4+1
Diagramas de Clase
La estructura
Diagrama de Clases: Para qu?
"Corazn de un Modelo UML
Muestra estructura esttica de clases en un sistema
Representa:
Clases con sus variables y mtodos
nterfaces
Colaboraciones y relaciones entre clases
Utilizado para modelar la realidad o un sistema
computacional a construir
Diferentes perspectivas: desde conceptual a
implementacin
Diagrama de Clases: Elementos (1/2)
Clase: Abstraccin de entidad que indica
variables y mtodos
Herencia: relacin de especializacin entre
clases
Asociacin: relacin entre clases, puede
poseer navegabilidad y multiplicidad
Persona ReIoj
1 *
ReIoj
- hora: int
- minuto: int
+ fijarHora() : void
+ darHora() : hora
ReIoj
ReIoj_ManeciIIas
Diagrama de Clases: Elementos (2/2)
ReIoj_ManeciIIas ManeciIIa
Composicin: Relacin fuerte entre objetos
"compuesto de
nterfaz: Comportamiento estndar que es
implementado (realizado) por una clase
Clase asociada: Clase que nace de la
asociacin entre otras dos, y que no tiene
sentido sin ella
Int_Reloj
realize
ReIoj
Arrendatario Departamento
Contrato
Diagrama de Clases: Ejemplo
CIiente
- rut: int
- nombre: string
- renta_mensual: int
Cuenta
- numero: int
- saldo: int
- cliente: Cliente
- estado:
+ abonar() : void
+ creditar() : void
+ retornar_saldo() : void
+ transferir_dinero() : void
+ abonar_a_cuentas() : void
Cta_Corriente
- sobregiro: int
+ calcular_multas() : void
Cta_Ahorro
- giros_anuales: int
- tasa_inters: int
+ calcular_interes() : void
Interfaz_Cuenta
Transaccin_Redbanc
+ girar_dinero() : void
+ consultar_saldo() : void
+ pagar_cuentas() : void
+ depositar_dinero() : void
Transaccin_Web
+ consultar_saldo() : void
+ pagar_cuentas() : void
+ transferir_fondos() : void
Contrato
- fecha_nicio: date
- ejecutivo_responsable: string
- plan: Plan_de_contrato
PIan_de_contrato
- nombre_plan: string
- inters_extra: float
- adicionales_gratis: int
1 0..*
realize
herencia
interfaz
cIase asociada
composicin
navegabiIidad
asociacin
muItipIicidad
atributos
mtodos
cIase
reaIizacin
Tarjetas CRC
dentificando clases
CRC: Clase-Responsabilidad-
Cooperacin
Mtodo para facilitar la identificacin de
clases
Repositorio Cuentas
Repositorio Usuarios
Datos de transaccin
Usuario actuaI
Giro de dinero
Abono de dinero
ConsuIta de saIdo
Transaccin bancaria
nombre cIase
datos y acciones
coIaboradores
Diagramas de Objetos
Clases en accin
Diagrama de Objetos: Para qu?
Muestra la estructura de los objetos en
tiempo de ejecucin
lustra un caso particular: una "foto
Muestra:
Objetos vivos
Relaciones entre objetos
Diagrama de Objetos: Elementos
Juan:Persona Boby:Perro
Objetos: nstancias de clases. Objetos "vivos
Enlace: Relacin entre dos objetos vivos
Juan:Persona
Diagrama de objetos: Ejemplo
Renato Ruiz :
CIiente
1203332 :
Cta_Corriente
103 :Contrato
PreferenciaI :
PIan_de_contrato
objeto
enIace
enlace Asociacin
Objeto Clase
Diagrama de objetos Diagrama de cIases
Diagramas de
Casos de Uso
Entendiendo al cliente
Diagrama de CU: Para qu?
Muestra el comportamiento desde un punto de
vista externo (cliente)
Se enfoca en QU, no CMO
til para organizar y modelar el comportamiento
de un sistema
Tambin sirve para modelar sistemas existentes
Diagrama de CU: Elementos (1/2)
Actor: Entidad que interacta con el sistema
(personas / otros sistemas)
Caso de Uso: Secuencia de acciones que
produce un resultado til y observable para un
actor
Lmite: Barrera que define el interior y el
exterior del sistema
CIiente
Compra combo
Diagrama de CU: Elementos (2/2)
Compra combo Pago
include
Compra combo
Agranda combo
extend
Compra Compra Combo
CIiente
Compra
Asociacin: Relacin de uso entre un actor y
un Caso de Uso
nclusin: Comportamiento de un caso de uso
"invocado por otro
Extensin: Comportamiento alternativo de un
Caso de Uso, se pone aparte
Herencia: Relacin de especializacin entre
Casos de Uso.
Diagrama de Casos de Uso: Ejemplo
cIiente
ConsuItar saIdo
vaIidar usuario
soIicitar prstamo
reaIizar
transaccin
extend
include
actor
caso de uso
asociacin
extensin
incIusin
herencia
Imite deI sistema
Diagramas de Anlisis
de Robustez
De las ideas a la estructura
Diagrama de Robustez: Para qu?
Sirve como un puente para pasar del anlisis al
diseo
Ayuda a identificar principales bloques de la
estructura
Muestra diferencias entre tipos de elementos
que constituirn el sistema
Diagrama de Robustez: Elementos
nterfaz
Motor Clientes
Repositorio OT
Actor: Entidad que interacta con el sistema
Clase lmite: Representa una interfaz con un
actor
Clase Control: Representa un elemento con
lgica del sistema
Clase Entidad: Representa un elemento con
conocimiento de los datos
Lmite: Define interior y exterior del sistema
CIiente
Diagrama de Robustez: Ejemplo (1/3)
cIiente
ConsuItar saIdo
vaIidar usuario
soIicitar prstamo
reaIizar
transaccin
extend
include
CIiente
nterfaz Redbanc
Motor transacciones
Motor Usuarios Repositorio Usuarios
Repositorio Cuentas
Diagrama de Robustez: Ejemplo (2/3)
CIiente
nterfaz Redbanc
Motor transacciones
Motor Usuarios Repositorio Usuarios
Repositorio Cuentas
Redbanc
Usuario
Cuenta
Transaccion
CIiente
Diagrama de Robustez: Ejemplo (3/3)
CIiente
nterfaz Redbanc
Motor transacciones
Motor Usuarios Repositorio Usuarios
Repositorio Cuentas
cIase Imite
cIase entidad
cIase controI
asociacin
actor
Imite
Diagramas de Secuencia
Lneas de vida
Diagrama de Secuencia: Para qu?
Describe vista dinmica de un sistema
Resalta la ordenacin temporal de los
mensajes
Muestra creacin y destruccin de objetos
Describe un escenario concreto
Diagrama de Secuencia: Elementos
Motor
mtodo(parmetro)
ack
Objeto: nstancia de una clase que participa en la
accin
Lnea de Vida: Lnea que indica el tiempo
durante el cual el objeto vive
Mensaje: nvocacin de un objeto a un mtodo
propio o de otro objeto
Respuesta: Mensaje de respuesta a una
invocacin
Muerte: Trmino de la vida de un objeto,
provocado por un mensaje
Diagrama de Secuencia: Ejemplo
Cliente
Cta_Corriente Cta_Ahorro Redbanc
Transaccin
traspasar dinero
nicia transaccin
traspaso(monto)
consulta saldo
saldo
saldo suficiente
debita(monto)
ok
abona(monto)
ok
transaccin ok
transaccin ok
Inea de vida
mensaje
respuesta
muerte
objeto
Diagramas de Colaboracin
Aydeme usted compadre
Diagrama de colaboracin: Para qu?
Propsito similar al diagrama de secuencia: mostrar
interaccin entre objetos
Resalta la organizacin estructural de los objetos que
interactan
Muestra Objetos, Enlaces y Mensajes
En UML 2.0 se llama "Diagrama de Comunicacin
Diagrama de colaboracin: Elementos
Objeto: nstancia de una clase que participa en la
accin
Enlace: Lnea que indica relacin estructural
entre objetos
Mensaje: nvocacin de un objeto a un mtodo
propio o de otro objeto, posee un nmero de
secuencia para reconocer el orden
CIiente Cuenta
1: mtodo()
CIiente
Diagrama de colaboracin: Ejemplo
Transaccin Cta_Corriente
Cta_Ahorro
1: consulta saldo
1.1: saldo
1.2: saldo suficiente
1.3: debita(monto)
1.4: ok
1.5: abona(monto)
1.6: ok
objeto
mensaje
enIace
Secuencia o Colaboracin?
Colaboracin Muchos objetos
Secuencia
Preferible
Colaboracin
Pocos objetos
Muchos
Mensajes
Pocos
Mensajes
Diagramas de Actividad
Pasos a seguir
Diagrama de Actividades: Para qu?
Muestra flujo de actividades de un sistema
Parecido a diagramas de flujo
Admite semntica de concurrencia y sincronizacin
Permite modelar decisiones
Se puede utilizar para modelar negocios
Diagrama de Actividades: Elementos
Actividad
nicio: Punto en donde se inician las actividades
Actividad: Accin o conjunto de acciones a ejecutarse
Barra de sincronizacin: ndica el comienzo (fork) o
sincronizacin (join) de actividades concurrentes
Transicin: Denota traspaso del control desde una
actividad a otra
Decisin: Flujos de control alternativos
Fin: Denota trmino de actividades
Diagrama de Actividad: Ejemplo
inicio
fin
actividad
fork
join
decisin
transicin
ConsuIta a Dicom ConsuIta a BD cIientes
RecopiIar informacion de
cIiente
Rechazar cIiente
abrir cuenta
cliente apto?
s no
Diagramas de Estados
Cmo ests?
Diagrama de Estado: Para qu?
Mquina de estados que describe el ciclo de
vida de un sistema o un objeto del sistema
dentifica estados posibles y qu causas
provocan los cambios de un estado a otro
Resalta comportamiento en funcin de eventos
Diagrama de Estado: Elementos
nicio: Punto en donde se inician las actividades
Estado: Condicin reconocible dentro de un conjunto
finito en los que se puede hallar un sistema u objeto
Transicin: Paso de un estado a otro gatillado por un
evento
Fin: Denota trmino de ciclo de vida
esperando
evento
Diagrama de Estados: Ejemplo
activa congeIada
congelada durante una ao
apertura por cliente
reapertura por cliente
inutilizacin durante un ao
cierre por cliente
inicio
fin
estado
transicin
cuenta cerrada
Diagramas de
Componentes
De lo lgico a lo fsico
Diagrama de Componentes:Para qu?
Muestra los componentes fsicos del software
(archivos, BD's)
Muestra tipos de componentes y relaciones
entre ellos
Normalmente se relaciona con diagramas de
clase
Diagramas de Componentes:
Elementos
realize
<<dll>>
Transacciones
Interfaz Clientes
Componente: Parte fsica de software: archivo
Dependencia: Relacin de necesidad de un
componente por otro
nterfaz: Comportamiento estndar que es
implementado (realizado) por un componente
Realizacin: ndica que un componente implementa
el comportamiento definido por la interfaz
Diagrama de Componentes: Ejemplo (1/2)
Redbanc
Usuario
Cuenta
Transaccion
CIiente
Redbanc
Motor CIientes
Motor Cuentas
Interfaz Clientes
Interfaz Cuentas
realize
realize
Diagrama de Componentes: Ejemplo (2/2)
Redbanc
Motor CIientes
Motor Cuentas
Interfaz Clientes
Interfaz Cuentas
realize
realize
componente
interfaz
reaIizacin
dependencia
Diagramas de Despliegue
Cada cosa en su lugar
Diagrama de Despliegue: Para qu?
Muestra informacin del Hardware (PC's, PDA's,
servidores, etc.) y sus conexiones
Modela el mapeo SW / HW
Al igual que los Diagramas de componentes,
muestra dependencia entre componentes
Diagrama de Despliegue: Elementos
Servidor UNX
Servidor
ApIicaciones
CIient DB
CIient Server
Nodo: Recurso de Hardware en donde se aloja algn
componente
Enlace: Conexin entre nodos
Componente: Parte fsica de software: archivo
Dependencia: Relacin de necesidad de un
componente por otro
Diagrama de Despliegue: Ejemplo
Mquina Redbanc unix
Servidor Banco
Motor CIientes
Motor Cuentas
Interfaz Clientes
Interfaz Cuentas
Redbanc
realize
realize
nodo
componente enIace
dependencia
Diagramas de paquetes
Agrupando la multitud
Diagrama de Paquetes: Para qu?
Agrupa elementos de un diagrama para
facilitar su comprensin
Aplicable a todos los diagramas de UML
Diagrama de Paquetes: Elementos
Repositorios
+ Repositorio Cuentas
+ Repositorio Usuarios
Paquete: Recurso de Hardware en donde se aloja
algn componente
Dependencia: Relacin de necesidad de un paquete
por otro (Nace de la relacin de elementos que se
encuentran en distintos paquetes)
Diagrama de Paquetes: Ejemplo
CIiente
nterfaz Redbanc
Motor transacciones
Motor Usuarios Repositorio Usuarios
Repositorio Cuentas
Interfaces
+ nterfaz Redbanc
Lgica de Negocio
+ Motor transacciones
+ Motor Usuarios
Repositorios
+ Repositorio Cuentas
+ Repositorio Usuarios
paquete
dependencia
Trazabilidad
De dnde sali esto?
Trazabilidad: Para qu?
ndica el "porqu de diagramas o
elementos de un diagrama
Relaciona elementos de diagramas en
distintos niveles de abstraccin
til para la gestin de cambios
Trazabilidad: Elementos
realize
Realizacin: ndica que un elemento de un diagrama
corresponde a otro, en distintos niveles de
abstraccin.
Trazabilidad: Ejemplo
PC
Redbanc
UNX
Servidor Banco
ReaIizar
transaccin CIiente
VaIidar Usuario
Redbanc
Transaccin
Interfaz Usuario
Usuario
Componete
Redbanc
Componente
Transaccin
Componente
Usuario
include
realize
realize
realize
realize
realize
realize
realize
Modelamiento Bsico
de Negocios
Del software a los negocios
Por qu modelar negocios?
Objetivo ltimo de los sistemas de software:
apoyar correcta y completamente el negocio
Entonces, es necesario modelar el negocio:
Para comprender sus mecanismos principales
Para identificar sus flaquezas
Para tener una base sobre la que construir
innovaciones
Para apreciar cmo los cambios afectarn el negocio
Diferentes enfoques
Principio de diseo #1: Elegir modelos
adecuados a lo que se desea modelar
Los negocios tienen aspectos ajenos al
software: metas, equipos de trabajo, recursos no
computacionales, etc.
UML "puro presenta dificultades para modelar
negocios
DEF
Nacido para los negocios
Qu es DEF?
DEF: Integrated Definition
Lenguaje de modelamiento para describir
operaciones
Creado por la USAF
Desarrollado por KBS (Knowledge Based
Systems nc.)
Conjunto de diagramas DEF 0 - DEF 14
Paradigma estructurado
DEF: Para qu?
Facilidad para modelar negocios
Sintaxis ms rigurosa que UML
Modelamiento de Negocios:
DEF 0: Para modelar QU se hace
DEF 3: Para modelar CMO se hace
DEF 0: Elementos
Actividad
Actividad: Accin o conjunto de acciones a ejecutarse
Flecha de precedencia: ndica flujo de distintos tipos
dependiendo de su posicin:
Borde Superior: Control
Borde zquierdo: Recurso (nsumo)
Borde Derecho: Resultado
Borde nferior: Recurso (catalizador)
DEF 0: Ejemplo (1/2)
DEF 0: Ejemplo (2/2)
DEF 3: Elementos
Unidad de Trabajo: Accin a ejecutarse
AND sncrono y asncrono: "y lgico entre actividades
concurrentes
OR sncrono y asncrono: "o lgico entre actividades
concurrentes
XOR: "o exclusivo lgico entre actividades
concurrentes
Trabajo
1.1
& &
O O
X
DEF 3: Ejemplo
Modelando Negocios
con UML
Eriksson-Penker
Dialectos de UML
Extensiones de UML para algn propsito particular
Mecanismos de extensin:
Estereotipos: etiquetas del tipo <<negocio>>, o modificacin de
elementos grficos)
Tagged values: par variable-valor del tipo {cargo=gerente}
Restricciones: Expresiones booleanas del tipo {edad<40}
Dialecto Eriksson-Penker:
Extensin orientada al modelamiento de negocios
Similar en cierto aspecto a DEF 0
Sintaxis ms libre
Dialecto Eriksson-Penker
Conceptos principales para definir negocio:
Recursos: objetos en el negocio
Procesos: actividades que se realizan
Metas: propsito del negocio
Reglas: frase que define o restringe algn aspecto del negocio,
representa el conocimiento del negocio

Vistas utilizadas:
De visin de negocio: expresa objetivos
De procesos de negocio: expresa actividades y creacin de valor
De estructura de negocio: expresa recursos y su estructura
De comportamiento de negocio: expresa comportamiento
individual de recursos de inters
Diagrama de Visin de Negocio
Disminuir_tiempo_de_atencin :
Meta_cuantitativa
Reducir_nmero_de_trmites :
Meta_cuantitativa
Aumentar_nmero_de_ejecutivos :
Meta_cuantitativa
Conseguir_aumento_de_presupuesto :
Meta_cuantitativa
Aumentar_horario_atencin :
Meta_cuantitativa
objeto: meta cuantitativa
dependencia
Diagrama de Procesos de Negocio
Ejeutivo de Negocio Depto.Proyectos
EIaboracin Anteproyecto
Necesidad
del Cliente
entregable
Documento
Visin
trabajador
Ejecutivo
Negocio
procedimiento
CVPS
trabajador
FuncionaI
PIanificacin
objetivo
definir marco de
proyecto y
formaIizar su inicio
trabajador
Director de
Proyecto
objetivo
Definir proyecto y
estimar costo
entregable
Informe de
FactibiIidad
control
cumple
recurso
recurso recurso recurso
cumple
control
meta
proceso de negocio
recurso
evento
controI
Diagrama de Estructura de Negocio
Unidad
Empresa
Trabajador
1
1..*
1
1..*
1
0..*
CodeIco :Empresa
GC TIC :Unidad
VP
ComerciaIizacin :
Unidad
VP Servicios
Compartidos :
Unidad
VP DesarroIIo y
Proyectos :Unidad
GC
Abastecimientos :
Unidad
gerente corporativo
Juan ViIIarz :
Trabajador
diagrama de cIase de estructura diagrama de objetos de estructura
Diagrama de Comportamiento de
Negocio
Recibida
Confirmada
CanceIada
En producin Entregada
Recepcin de Orden
Fin
verificacin de orden
envo a produccin
Entrega a cliente
cancelacin de orden
cancelacin de orden
Diagramas en esta Vista:
De Estados
De Colaboracin
De Secuencia
Herramientas
Manos a la obra
Herramientas
UML:
AllFusion
Rational Rose
Enterprise Architect
Poseidon
System Architect
Magic Draw
Visio
.
DEF:
AllFusion (BPWin)
A0 Win
ProSim
System Architect
WorkFlow Modeler
DEFine
.
Referencias
Dnde sigo?
Referencias
Libros
Booch, Rumbaugh, Jacobson, "El lenguaje Unificado de
Modelado, Addison-Wesley
Fowler, Scott "UML Gota a Gota, Addison-Wesley
Eriksson, Penker, "UML Business Patterns at Work, OMG Press
Jacobson, Ericsson, Jacobson, "The Object Advantage :
Business Process Reengineering with Object Technology",
Addison-Wesley
Websites
http://www.uml.org
http://usecasedriven.com/UML.htm
http://www.idef.com
http://www.umlderby.org/
Papers
Eriksson, Penker, "Business Modeling with UML

Вам также может понравиться