You are on page 1of 65

Diseo: Particionamiento de Dominio

Lic. Csar Alcntara Loayza

Particionando El Dominio

Particionar el dominio es un proceso de dividir un dominio de problema en unidades cohesivas antes de proceder al diseo detallado. El dominio del problema se ha definido en las dos primeras fases usando los modelos de casos de uso, el modelo de objetos y el modelo dinmico.
2

CAL/Fundamentos

Particionando El Dominio

Para una revisin de Paquetes vea la PPT. UML - Paquetes

CAL/Fundamentos

Particionando El Dominio
Modelo de Casos de Uso Define espectativas del usuario por el sistema Identifica caractersticas requeridas del sistema Identifica dependencias entre caractersticas

Cada uno de los modelos Revelan algunas cosas diferentes Acerca del dominio del problema

Modelo de Objetos Define recursos usados por el dominio del problema Define la estructura de los recursos Define las relaciones entre recursos

El dominio del problema fue Definido durante la iniciacin del proyecto y El anlisis del problema

Modelo Dinmico Define como los recursos interactan uno con otro Define las interfaces entre los objetos del dominio Define las dependencias entre objetos del dominio

CAL/Fundamentos

Particionando El Dominio

El modelo de casos de uso describe lo que los usuarios esperan ver cuando interacten con el sistema. Estas espectativas son expresadas en objetivos. Como Retirar dinero y transferir fondos estos objetivos implican funcionalidad. Por ejemplo, el usuario debe ser capaz de proporcionar un nmero de cuenta bancario y el monto de dinero a retirar. Los casos de uso proveen la base para el particionamiento funcional.
5

CAL/Fundamentos

Particionando El Dominio

El modelo de objetos define los recursos del dominio del problema. Estos recursos son la informacin que el sistema debe manejar para soportar los casos de uso. Los casos de uso pueden crear o alterar recursos o simplemente acceder a la informacin que el objeto posee. Consecuentemente, el modelo de objetos es particionado para coincidir con las particiones funcionales.
6

CAL/Fundamentos

Particionando El Dominio

El modelo dinmico incluye dos tipos de diagramas de interaccin: el diagrama de secuencia y el diagrama de colaboracin. Ambos diagramas ilustran la conversacin de los objetos. Describen la comunicacin entre los objetos participantes y de este modo proporcionan informacin valiosa acerca de los atributos e interfaces de los objetos del dominio participantes.
7

CAL/Fundamentos

Particionando El Dominio

Cuando se particiona el modelo de objetos, las asociaciones entre objetos deben preservarse porque ellas se traducen en dependencias entre particiones.

CAL/Fundamentos

Paquetes

Los paquetes proporcionan una herramienta genrica para agrupar informacin y modelar elementos. Los contenidos de un paquete son enteramente definidos por el usuario, de modo que los paquetes constituyen una herramienta conveniente para definir las particiones.
9

CAL/Fundamentos

Paquetes

Ejemplo
Icono de Paquete

<<Domain Package>> Ventas

Nombre del Paquete y Estereotipo

Flecha de dependencia: La particin ventas depende de la particin Gestin de Presentaciones

<<Domain Package>> Gestion de Presentaciones

CAL/Fundamentos

10

Estereotipos Estndares

Ver documento de:

Estereotipos

CAL/Fundamentos

11

Paquetes y Subsistemas

Los paquetes pueden representar subsistemas. El objetivo de particionar el dominio es colocar todos los elementos del modelo que definen el comportamiento y sus recursos para el sistema en paquetes cohesivos. Cada paquete representa un subsistema un subconjunto de la funcionalidad completa del sistema.
12

CAL/Fundamentos

Dependencias De Paquetes

Una dependencia indica que el paquete fuente requiere la asistencia del paquete objetivo, tal como un acceso a un objeto creado y mantenido por el paquete objetivo, o funcionalidad poseida por el paquete objetivo. En el sistema de reserva, por ejemplo, Ud. no puede vender boletos para presentaciones hasta que los asientos de la presentacin se hayan definido y cotizado.
13

CAL/Fundamentos

Dependencias De Paquetes

Consecuentemente, el subsistema de ventas podra depender de la Gestin de Asientos, el cual pone los asientos dentro del auditorio. El subsistema de ventas podra tambin depender de la Gestin de presentaciones, el cual define las presentaciones, y Poner precios, el cual asigna los precios a los sitios de cada presentacin.
14

CAL/Fundamentos

Dependencias De Subsistemas
Requiere que los sitios ya esten definidos en el sistema con una localidad vlida <<Domain Package>> Ventas Ventas Necesita los precios asignados a cada asiento en la presentacin

Requiere acceso a los asientos dentro de la presentacin

<<Domain Package>> Gestion De Sitios

<<Domain Package>> Gestin De Presentaciones

<<Domain Package>> Poner Precio A Presentaciones

Este subsistema definir las ubicaciones de los asientos en el auditorio


CAL/Fundamentos

Este subsistema rastrea cuales sitios estan disponibles para la venta en cada presentacin

Este subsistema asigna precios a los asientos dentro de cada presentacin

15

El Proceso De Particionar

Tomando los recursos del dominio como fuente, se puede dividir el proceso de particionar el dominio en tres pasos.

Dividir los casos de uso en grupos cohesivos de uno o mas casos de uso que juntos describan una funcin del sistema. Identificar los objetos que utilizan los casos de uso y poner las clases representativas en los paquetes/particiones con los casos de uso.
16

CAL/Fundamentos

El Proceso De Particionar

Identificar las dependencias entre los paquetes/ particiones evaluando las asociaciones entre las clases participantes y las interacciones que toman lugar entre los objetos asociados.

CAL/Fundamentos

17

El Proceso De Particionar

Recuerde que como cualquier proceso de modelamiento, las tareas son iterativas. agrupe los casos de uso que tengan sentido. Muevase al siguiente paso y trate de asignar clases. Este intento revelar algunos errores o le har pensar diferente acerca del particionamiento. Continue hasta que est satisfecho y ellos representen la solucin deseada.
18

CAL/Fundamentos

El Proceso De Particionar

Puede continuar el proceso de refinamiento solicitando input de otros. Use los diagramas para comunicar ideas y para capturar visiones obtenidas a travs de revisiones. Esta prctica mantendr los diagramas actualizados con la comprensin de los requerimientos y los diseos realizados durante el proceso.
19

CAL/Fundamentos

El Proceso De Particionar

Trate de evitar el hbito de tomar notas y luego actualizar diagramas. Los diagramas se convertirn en otra tarea de documentacin molesta y perder su valor como herramienta para asistir en el proceso de modelado.

CAL/Fundamentos

20

Particin De Casos De Uso

Los casos de uso definen la funcionalidad del dominio del problema estableciendo los objetivos que el sistema debe ayudar a lograr para los usuario. En un aplicacin finalizada, los casos de uso se traducen en opciones de men, transacciones y otras unidades de trabajo discretas.
21

CAL/Fundamentos

Particin De Casos De Uso

Cuando se refinan los casos de uso puede encontrar algunos que definen piezas de una tarea mayor. En este caso, puede hallar multiples casos de uso que podran necesitar combinarse para proporcionar una unidad de trabajo completa.
22

CAL/Fundamentos

Particin De Casos De Uso

Dividir la funcionalidad del sistema basado en casos de uso es probablemente la parte mas subjetiva del proceso de particionamiento. Cuando Ud. sigue hacia los diagramas de clases e interaccin ser ms claramente visible y podr probar su efectividad.
23

CAL/Fundamentos

Particin De Casos De Uso

Unidades de trabajo: En algunos casos, un caso de uso define una unidad de trabajo que puede incluirse enteramente en el. Otras veces un grupo de casos de uso definen una unidad de trabajo.

CAL/Fundamentos

24

Particin De Casos De Uso


<<subsystem>> Manejar PlanDePrecios
Para crear el plan de Precios Tiene primero que crear el Nivel de precios y descuento De donde pueda escoger.

La nica razn para crear un Nivel de precio es para utilizarse en el mismo subsistema donde el usuario pueda usarlo.

Crear Plan De Precio

Crear Nivel De Precio

Crear Descuento

CAL/Fundamentos

De igual forma, los descuentos se crean solo porque son utilizados como parte del plan de precios. Se mantienen juntos con las funciones de plan de precios de manera que se puedan manejar como una unidad. 25

Particin De Casos De Uso

Mantenga las siguientes preguntas en mente cuando particione:


Podra este caso de uso estar solo? Sera razonable para un usuario completar su tarea o hacer algo mas? Si es as, trate de aislar el caso de uso en su propia particin.

CAL/Fundamentos

26

Particin De Casos De Uso

Podra un usuario usar juntas un grupo de funciones?, si es as, entonces trate de poner los casos de uso juntos en la misma particin. El resultado de una funcin influye las opciones de otra funcin? Existe tipo de relaciones de reconciliacin, balanceo o ensamble de relaciones entre las funciones?
27

CAL/Fundamentos

Particin De Casos De Uso

Tenga cuidado de copiar solamente la forma en que los usuarios actualmente hacen su trabajo. Haga preguntas de prueba acerca de porque la tarea puede o no, ejecutarse como una unidad. Muy frecuentemente, las personas simplemente hacen cosas de la manera en que las han aprendido, exista o no beneficio substancial o cualquier dependencia fundamental entre las tareas.
28

CAL/Fundamentos

Modelo de Objetos - Particin

El modelo de objetos en el particionamiento del dominio.

Los casos de uso definen el objetivo. Para llevar a cabo el objetivo, los casos de uso necesitan recursos. Los recursos de los casos de uso son objetos definidos por las clases en el modelo de objetos.

CAL/Fundamentos

29

Modelo de Objetos - Particin

Para asignar clases a particiones de dominio se necesita examinar recursos en dos niveles:

qu recursos son creados o controlados por la particin de dominio? Qu recursos son referenciados por la particin de dominio pero creados o controlados en otra parte?
30

CAL/Fundamentos

Modelo de Objetos - Particin

Cada recursos objeto debe ser creado. La pregunta que necesita responder cuando intenta asignar objetos a particiones es, quin es responsable de la creacin del objeto? tipicamente, ud. debera asignar la clase que define los objetos a los casos de uso que crea los objetos. Usualmente hay solo uno o muy pocos casos de uso que crean el mismo tipo de objetos.
31

CAL/Fundamentos

Modelo de Objetos - Particin

Una vez que se crea el objeto, este puede ser accedido por otros casos de uso en otras particiones a travs de la base de datos (repositorio persistente) o a travs de cualquier nmero de componentes servidor de objetos. Los casos de uso creadores y referenciadores no tienen que conocerse uno al otro.
32

CAL/Fundamentos

Modelo de Objetos - Particin

Cada clase en el modelo de objetos debe estar asignada a una particin. Este proceso proporciona una medida de la integridad (completness) en la transicin entre el anlisis y diseo.

CAL/Fundamentos

33

Modelo de Objetos - Particin

Recursos Referenciados Cuando una particin de dominio requiere acceso a un recurso ste puede o crear el recurso o buscarlo. Un recurso referenciado puede ser consultado o actualizado. En un lenguaje como Java, este arreglo puede verse como una clase importada. En otras palabras, la definicin de clase reside en un paquete pero se usa en el otro paquete. Por esta razn, algunas herramientas soportan el uso de un icono diferente para las clases referenciadas o importadas.
34

CAL/Fundamentos

Modelo de Objetos - Particin

Ejemplo 1 Particin de dominio Planear precio.


Planear Precio

Actualizar PlanPrecio Actualizar NivelPrecio Actualizar Descuento


CAL/Fundamentos

35

Modelo de Objetos - Particin

Actualiza NivelPrecio crea y mantiene los objetos NivelPrecio


Planear Precio

Actualizar PlanPrecio Actualizar NivelPrecio Actualizar Descuento


CAL/Fundamentos

NivelPrecio

36

Modelo de Objetos - Particin

Actualiza descuento crea y mantiene los objetos descuento.


Planear Precio
NivelPrecio

Actualizar PlanPrecio Actualizar NivelPrecio


DescuentoVolumen Descuento

DescuentoGrupo

Actualizar Descuento
CAL/Fundamentos

DescuentoCantidad

DescuentoValor

37

Modelo de Objetos - Particin

Actualizar PlanPrecio crea y mantiene los objetos PlanPrecio.


Planear Precio

Actualizar PlanPrecio Actualizar NivelPrecio


DescuentoVolumen

PlanDePrecios 0..* 0..* 0..* Descuento 1..* NivelPrecio

{criterio de calificacin} DescuentoGrupo

Actualizar Descuento
CAL/Fundamentos

{criterio de volumen} DescuentoCantidad DescuentoValor

38

Modelo de Objetos - Particin

Ningn otro objeto es requerido para establecer y mantener un PlandePrecio, de este modo que no hay referencias adicionales a objetos. La definicin completa del subsistema en el siguiente cuadro

CAL/Fundamentos

39

Modelo de Objetos - Particin


<<subsystem>> Planear Precio
Actualizar PlanPrecio
PlanDePrecios 0..* 0..* 0..* Descuento 1..* NivelPrecio

Actualizar NivelPrecio
{criterio de calificacin} DescuentoVolumen DescuentoGrupo

Actualizar Descuento
{criterio de volumen} DescuentoCantidad DescuentoValor

CAL/Fundamentos

40

Modelo de Objetos - Particin

Ejemplo 2: Particin de dominio Poner precio a la presentacin. Este ejemplo es diferente pues no crea objetos solo enlaces.

Identificar las clases que el caso de uso Poner precio a la presentacin referencia. Para hacerlo deber leer la descripcin narrativa del caso de uso. El primer paso en Poner precio a la presentacin es seleccionar una presentacin. Se indica con un sombreado sobre la clase que sta pertenece a otra particin pero est referenciando aqu.
41

CAL/Fundamentos

Modelo de Objetos - Particin

Poner precio a presentacin

Presentacin

CAL/Fundamentos

42

Modelo de Objetos - Particin

El siguiente paso es seleccionar el PlanDePrecio para la presentacin.

Poner precio a presentacin

Presentacin

PlanDePrecios

CAL/Fundamentos

43

Modelo de Objetos - Particin

Crear el enlace entre Presentacin y PrecioDelPlan.

Poner precio a presentacin

PlanDePrecios 0..1 0..*

Presentacin

CAL/Fundamentos

44

Modelo de Objetos - Particin

Una vez que ha seleccionado la presentacin y el PlanDePrecios, debe seleccionar un conjunto de AsientoPresentacin para poner precio.
Poner precio a presentacin
PlanDePrecios 0..1 0..* Presentacin

AsientoPresentacion

CAL/Fundamentos

45

Modelo de Objetos - Particin

Seleccione el NivelPrecio para asignar al AsientoPresentacin

Poner precio a presentacin


PlanDePrecios 0..1 0..* 0..* Presentacin

1..* NivelPrecio

AsientoPresentacion

CAL/Fundamentos

46

Modelo de Objetos - Particin

Cree un enlace entre NivelPrecio y cada uno de los objetos AsientoPresentacin seleccionados.

Poner precio a presentacin


PlanDePrecios 0..1 0..* 0..* Presentacin

1..* NivelPrecio 0..1 0..*

AsientoPresentacion

CAL/Fundamentos

47

Modelo de Objetos - Particin


Definicin del Subsistema Final
<<Subsystem>> Poner Precio Presentacin

Poner precio a presentacin


PlanDePrecios 0..1 0..* 0..* Presentacin

1..* NivelPrecio 0..1 0..*

AsientoPresentacion

CAL/Fundamentos

48

Particin De Casos De Uso

Ejercicio Ver documento Word:

Diseo Particionar Casos de Uso.

CAL/Fundamentos

49

Particionar Dependencias

Las dependencias describen una relacin entre particiones. Ud. puede deducir las dependencias evaluando las asociaciones. Una clase est asociada con otra clase porque existe alguna forma de comunicacin entre ellas. Los objetos de una clase podran consultar por informacin de otra clase. P.e. El AsientoPresentacin podra pedir a Asiento el detalle de sus ubicaciones para imprimir en el boleto.
50

CAL/Fundamentos

Particionar Dependencias

Una forma de hallar la direccin de las dependencias es buscas la direccin de la comunicacin entre los objetos. En los diagramas de secuencia y colaboracin se ha documentado la forma que los objetos conversan.

CAL/Fundamentos

51

Particionar Dependencias

En el siguiente diagrama. Busque los diagramas de interaccin donde los dos tipos de objetos se comunican. Ver si la flecha de evento va en una sola direccin o en ambas. La(s) direccin(es) de la flecha de evento le dir la direccin de la dependencia.

CAL/Fundamentos

52

Particionar Dependencias

Vea el Subsistema Gestin de Eventos y el subsistema Gestin de Facilidades. Existen tres asociaciones para examinar entre ellas.

CAL/Fundamentos

53

Particionar Dependencias
Evento 0..* 1 se hace en 1 1 0..1 PlanPisoEvento 0..* 1 0..* se basa en 0..* Auditorio

Gestin de Eventos

1 PlanPisoAuditorio

Gestin de facilidades

0..*

0..* Asiento

CAL/Fundamentos

54

Particionar Dependencias

Encontrar los diagramas de secuencia o colaboracin que muestren la comunicacin de los objetos asociados. Aqu tenemos dos diagramas de secuencia que contienen los objetos asociados. Por simplicidad se ha combinado en un solo diagrama con notas en ambos lados.
55

CAL/Fundamentos

Particionar Dependencias

Determine la direccin de comunicacin entre los dos objetos en cuestin.

CAL/Fundamentos

56

Particionar Dependencias

Actualice el diagrama de paquetes para indicar la direccin de la dependencia.

CAL/Fundamentos

57

Particionar Dependencias
<<subsystem>> Gestion de Eventos <<subsystem>> Gestion de Facilidades

Evento 0..* 1 0..1 PlanPisoEvento

se hace en 1

Auditorio 1

0..* se basa en 0..* 0..*

1 PlanPisoAuditorio

0..*

0..* Asiento

Dependencia paquetes
58

CAL/Fundamentos

Particionar Dependencias

Dependencia funcional. Una dependencia puede existir entre una funcin y una clase u objeto. Por ejemplo, el modelo de objetos le dice que las presentaciones deben formar parte de un evento (composicin). Para crear un objeto presentacin debera invocar el objeto evento, pedir que cree una nueva presentacin y agregar el nuevo objeto presentacin a su composicin. ...
59

CAL/Fundamentos

Particionar Dependencias

...La funcin gestin de presentaciones (caso de uso) inicia la adicin, cancelacin y reprogramacin de presentaciones. Pero gestin de presentaciones depende, para hacer el trabajo, del objeto evento que se encuentra en Gestin de Eventos

CAL/Fundamentos

60

Particionar Dependencias

Dependencia de tiempo. Otra forma de identificar dependencias es determinar cual objeto debe existir primero. Por ejemplo, en el subsistema Poner Precios no hay interaccin de objeto que pudiera decirle explcitamente en que direccin dibujar la dependencia. Tanto el objeto presentacin como el objeto PlanDePrecio han de existir antes que el subsistema de poner precios pueda hacer su trabajo.
61

CAL/Fundamentos

Particionar Dependencias

Dependencia entre particiones

<<subsystem>> Poner precios a Presentacin

<<subsystem>> Gestin de Presentaciones

<<subsystem>> Planear Precios

CAL/Fundamentos

62

Particionar Dependencias

Ejercicio:

Ver documento word

Diseo Asignar dependencias

CAL/Fundamentos

63

Resumen

El particionamiento del dominio proporciona una divisin del sistema completo en unidades cohesivas de trabajo. En las aplicaciones culminadas estas unidades se pueden combinar para soportar diferentes flujos de trabajo (workflows) o deberes. El particionamiento de dominio tambin fija la fase de particionamiento arquitectural pues cada tipo de trabajo o funcionalidad podra implicar una solucin arquitectural diferente.
64

CAL/Fundamentos

Resumen

cmo dividira el particionamiento de dominio? Debe primero asignar cada caso de uso y cada clase de sus modelos de anlisis a una particin de dominio y todas las asociaciones del modelo de objetos deben preservarse. Nada debe perderse en la transicin del anlisis al diseo.
65

CAL/Fundamentos

You might also like