Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Patrones Anal Is Is
Patrones Anal Is Is
Paso 3: pensar una estructura simple a partir de conceptos extrados del dominio
del problema (Modelo de Dominio).
MODELO DE ANLISIS
MODELO DE DISEO
Instancias
Gente
Actor
Rol
Lugares
Lugar
Gran Lugar
Cosas
tem
tem Especfico
Ensamble
Parte
Contenedor
Contenido
Grupo
Miembro
Eventos
Transacciones
Transacciones Compuestas
Transacciones Cronolgicas
Line tem
Rol
0..*
Ejemplo
Empleado
0..1
1
Persona
Cliente
0..1
0..1
Prov eedor
cd Class Model
Lugar
GranLugar
0..1
1..*
Ejemplo
Puerto
1..*
AreaCarga
1..*
AreaDescarga
cd Class Model
Item
ItemEspecifico
1
0..*
0..*
Ejemplo
Pelicula
CopiaVideo
cd Class Model
Ensamble
Parte
0..1
1..*
Ejemplo
Computadora
Componente
cd Class Model
Contenedor
Contenido
0..1
0..*
Ejemplo
Pallet
Caj a
cd Class Model
Grupo
Miembro
0..*
0..*
Ejemplo
CategoriaProducto
Producto
cd Class Model
Rol
Transaccion
1
0..*
Ejemplo
Cliente
OrdenCompra
1
0..*
Vendedor
0..*
0..1
Transaccion
1
0..*
Ejemplo
Puerto
AreaDescarga
1
1..*
1
0..*
Deliv ery
cd Class Model
ItemEspecifico
Transaccion
1
0..*
Ejemplo
Inspeccion
Vehiculo
cd Class Model
ItemEspecifico
LineItem
1
0..*
Ejemplo
1
0..*
Productos
1
ItemsComprados
OrdenCompra
1..*
LineItem
1 1..*
Ejemplo
OrdenCompra
ItemsComprados
0..*
1..*
1
Productos
cd Class Model
Transaccion
TransaccionCronologica
1
0..*
Ejemplo
OrdenCompra
1
0..*
Env io
1
1
1..*
1..*
ItemsComprados
Env ioLineItem
0..*
0..*
1
Productos
REGLAS DE NEGOCIO
Son las restricciones que gobiernan las acciones dentro de un dominio
de negocio.
Donde ubicarlas?
Tipos de reglas
Asignacin
Asignacin de Reglas:
1. cuando se modela gente, lugares y cosas, SIEMPRE asignar las reglas a los
objetos ms especficos, locales o detallados.
2. cuando la gente, lugares y cosas interactan con un evento, son los
propietarios de sus reglas.
3. cuando existen transacciones en secuencia, la transaccin precedente es la
que chequea las reglas.
10
Patrn de colaboracin
A-R
GL-L
I-IE
E-P
C-C
G-M
T-R
T-L
T-IE
TC-LI
LI-IE
TC-T
LI, IE
TC, T
Tipo
IE
IE
LI
Multiplicidad
GL, L
I, IE
E, P
C, C
G, M
T, R
T, L
T, IE
TC, LI
Propiedad
GL, L
IE
E, P
C, C
G, M
IE
Estado
GL, L
I, IE
E, P
C, C
G, M
IE
Conflicto
IE
G, M
IE
4. En el patrn A-R las reglas dependen del contexto, por esta razn estn
asignadas al rol, ya que este es quien conoce el contexto.
5. Los patrones de agregacin (GL-L, E-P, C-C, G-M) tienen un comportamiento
similar en cuanto a las reglas que deben probar. Solo en el G-M el G debe
probar la regla que define el conflicto con otros grupos.
6. Los patrones en los que uno de los objetos es un evento o transaccin (T-R,
T-L, T-IE) la responsabilidad de la prueba de las reglas es asignada a los
objetos que participan de la transaccin. La transaccin debe cumplir con que
solo conoce al colaborador y no puede romper con l. Los objetos que
participan pueden ser interrogados acerca de si aceptan participar de la
transaccin, en ese momento prueban las reglas. (ver servicios que
conducen). En el caso de las transacciones cronolgicas se da el mismo
patrn, donde la precedente adopta el rol de la prueba de reglas.
7. En el caso de transacciones secuenciales o cronolgicas (TC-T), la precedente
prueba las reglas. Solo la multiplicidad es chequeada por la segunda
transaccin.
Tipos de Reglas
Tipo, Propiedades, Fechas, Horas, Descripciones, Estados
Patrn
setXXX(valor) solo estos mtodos aparecen en las interfaces
testXXX(valor)
doSetXXX(valor)
Ej. SetTitle(String) en Documento
Ej. makeChair() en TeamMember (no se usa setChair porque se
reservan los sets para mtodos con valores).
Validacin
11
C odigopProducto: String
Descripcion: String
RN_3
Tipos de Reglas
Reglas que son validadas con la participacin de ms de una clase, los
que forman el patrn de anlisis.
Patrn
addXXX(referencia)
testAddXXX(referencia)
doAddXXX(referencia)
removeXXX(referencia)
testRemoveXXX(referencia)
doRemoveXXX(referencia)
Validacin
Asignar validacin y director a las colaboraciones
Las validaciones se delegan:
12
Tipos de Reglas
Conflicto
Patrn
Validacin
El director las valida desde sus propias validaciones
Ej. Nominacion TestAddDocumento() > Documento
testAddNominationConflic()
Ej. Implementacin de Reglas compuestas
13
Item
ITransaccion
DatosTransaccion
Items
realize
OrdenCompra
-
costoEnvio: double
estado: Estado
monto: double
+
+
+
RN_1
RN_2
RN_4
RN_5
RN_6
ReglaNegocio
1..* +
applyRuleObject() : Result
Test
+
Accion
test(Property) : boolean
ejecutarAccion() : void
1
ReglasNegocio
Property
TIPOS DE SERVICIOS
1. conduccin del negocio
2. interrogacin (informacin del estado actual)
3. anlisis de transacciones (informacin histrica)
Asignacin
Asignacin de servicios:
14
15
Comentarios
Servicios de
Acciones: creacin de
Conduccin del objetos, asignacin de
Negocio
valores. Cambian
estados, establecen
relaciones y las rompen.
Servicios de
Respuestas a preguntas: boolean hasNominatePrivilege(), ver
TeamMemberProfile
Determinacin informacin actual, no
de Valores
cambia estados,
boolean hasValidEmail(), ver PersonProfile
devuelve valores o los
calcula en colaboracin. boolean isPublished(), ver Documento
Servicios de
Anlisis de
Transacciones
Acceso y
asignacin a
Propiedades
Propiedades: acceso a
propiedades para
obtener y asignar
Suma y
remocin de
Colaboradores
Colaboradores:
establecen relaciones y
las rompen.
Acceso a
Colaboradores
Reglas de
Colaboracin
Reglas de Negocio:
validacin de las reglas
asignadas
TeamMember
ver
Void
testAddNominationConflict(INomination
aNomination, ITeamMember
aTeamMember), ver Documento
16
Definir entidades
Delimitar agregaciones
Delimitar contextos
Definir servicios
cd Domain Model
Negocio
Aplicacin
Decisin
Mecanismo analticos
(cambios muy lentos)
Polticas
Criterios de Administracin
del Negocio (cambios lentos)
Operaciones
Actividades que reflejan la realidad
del negocio (cambios rpidos)
Servicios
Procesos soporte
(cambios moderados)
Infraestructura
Servicio: generar
evento en base a
decisin de negocio
Servicio: enviar un
mail ante un dado
evento
Servicio:
procesamiento de
informacin
17
Referencias
BIBLIOGRAFA
Libros
Streamlined Object Modeling Patterns, rules and
implementations, Jill Nicola et. al., PHPTR, 2002.
Analysis Patterns, Martin Fowler, 1997.
Domain Driven Design, Eric Evans, Addison-Wesley, 2004.
Object-Oriented Analysis and Design with Applications (2nd
Edition), Grady Booch, 1994.
18