Relación entre dos o varios bloques semánticos mediante una referencia explícita a atributos semánticos. Aquí es donde empieza lo "complejo". A base de reglas básicas y simples, podremos crear estructuras semánticas diferentes pero funcionalmente similares.
En los diagramas, la relación dinámica la demarco con una línea discontínua.
Un enlace dinámico "simplón":
La tarea se relaciona con la TodoList mediante la clave de la TodoList.
Un ejemplo:
[[TodoList::
[[IdTodoList::XXXX]]
]]
[[Tarea::
[[Ref::
[[Type::TodoList]]
[[Property::
[[Type::IdTodoList]][[Value::XXXX]]
]]
]]
[[Título::Una tarea]]
[[Descripción::Tarea que se llama igual que la primera]]
]]
[[Tarea::
[[Ref::
[[Type::TodoList]]
[[Property::
[[Type::IdTodoList]][[Value::XXXX]]
]]
]]
[[Título::Otra tarea]]
[[Descripción::Esta es otra posible tarea]]
]]
La relación es unidireccional. En el ejemplo se entiende que "IdTodoList" es la clave primaria del bloque semántico "TodoList". Se pueden añadir tareas y modificarlas sin impactar directamente en la definición de la TodoList. Las relaciones podrían llegar a ser todo lo complejas que queramos; no necesariamente serán de a través de un atributo semántico simple.
El mismo ejemplo pero con el enlace en el otro sentido:
Y el ejemplillo se queda en:
[[TodoList::
[[Ref::
[[Type::Tarea]]
[[Property::
[[Type::IdTarea]][[Value::XXXX]]
]]
]]
[[Ref::
[[Type::Tarea]]
[[Property::
[[Type::IdTarea]][[Value::YYYY]]
]]
]]
]]
[[Tarea::
[[IdTarea::XXXX]]
[[Título::Una tarea]]
[[Descripción::Tarea que se llama igual que la primera]]
]]
[[Tarea::
[[IdTarea::YYYY]]
[[Título::Otra tarea]]
[[Descripción::Esta es otra posible tarea]]
]]
Se pueden modificar tareas, pero añadir una nueva tarea implica modificar el valor del atributo semántico TodoList.


No hay comentarios:
Publicar un comentario