Para presentar el concepto de línea de tiempo, se muestran a continuación
algunos ejemplos de datos cotidianos que pueden variar a lo largo del tiempo:
- Los ingresos totales de una persona tendrán tendencia a variar a lo largo del tiempo a medida
que la persona reciba aumentos de salario o cambie de empleo. Dado que los ingresos de una persona
en un punto en el tiempo pueden representarse como un número, los ingresos variados
de una persona a lo largo del tiempo se pueden representar como una línea de tiempo de
números, que para simplificar escribiremos aquí como Línea de tiempo<Número>1;
- Independientemente de los ingresos totales, el registro de empleo de una persona tenderá
a variar a lo largo del tiempo a medida que la persona cambie de trabajo (o haya periodos de
tiempo en los que la persona no tiene trabajo). Si en algún momento una persona tiene como máximo
empleo principal, el historial del empleo principal de la persona
puede representarse como una Línea de tiempo<Empleo>, donde Empleo es alguna clase de regla
o tipo Java que contiene detalles de empleo, y durante los periodos en los que no tiene
ningún empleo principal el valor de la línea de tiempo es un valor de marcador especial como
null (para representar "sin empleo");
- Una persona puede ser propietaria de un activo que finalmente se desecha, por ejemplo
una persona puede comprar y vender un coche. En cualquier fecha, la persona es propietaria del vehículo
o no lo es, lo cual se puede modelar como un valor booleano. Con el tiempo, la condición de
que el coche sea propiedad en una fecha determinada se puede modelar como una
Línea de tiempo<Booleano>. El valor de la línea de tiempo será false antes de
la fecha de compra del coche y true a partir de la fecha de compra hasta e
incluyendo la fecha de venta (o "hasta nuevo aviso" si no se sabe si se ha vendido
el coche).
- Del mismo modo, una persona tiene una fecha de nacimiento y, finalmente, una fecha de
defunción. Las personas que siguen vivas tienen registrada una fecha de defunción en blanco. En
cualquier fecha, la persona está viva o muerta y, por lo tanto, el valor derivado para
"?está viva la persona?" se puede modelar como un valor booleano. Con el tiempo, la condición de
que la persona esté viva se puede modelar como una
Línea de tiempo<Booleano>. El valor de la línea de tiempo será
false antes de la fecha de nacimiento de la persona y
será true a partir de la fecha de nacimiento de la persona hasta e incluyendo
la fecha de defunción (o "hasta nuevo aviso" si la persona no tiene
fecha de defunción).
- Un padre puede tener muchos hijos, nacidos en fechas diferentes. En una fecha determinada, el
padre tiene una lista de hijos que están vivos en esa fecha, lo que se puede modelar como
Lista<Persona>. Con el tiempo, la lista de hijos cambiará puesto que
nacerán más hijos o los hijos llegarán a la edad madura (o con menos fortuna, morirán
en la infancia), lo cual se puede modelar como Línea de tiempo<Lista<Persona>>
Los ejemplos anteriores se muestran en formato gráfico en la figura siguiente.
Figura 1. Ejemplos de datos de línea de tiempo![Ejemplo de línea de tiempo](Images/Timeline1.JPG)