Datos, contexto e interacción


Datos, contexto e interacción ( DCI ) es un paradigma utilizado en software de computadora para programar sistemas de objetos comunicantes . Sus objetivos son:

El paradigma separa el modelo de dominio (datos) de los casos de uso (contexto) y los roles que juegan los objetos (interacción). DCI es complementario al modelo-vista-controlador (MVC). MVC como lenguaje de patrones todavía se usa para separar los datos y su procesamiento de la presentación.

Los datos siguen siendo "lo que es el sistema ". La parte de datos de la arquitectura DCI es su modelo de datos (relativamente) estático con relaciones. El diseño de datos generalmente se codifica como clases convencionales que representan la estructura de dominio básica del sistema. Estas clases son apenas datos inteligentes y explícitamente carecen de la funcionalidad que es peculiar para admitir cualquier caso de uso particular . Estas clases comúnmente encapsulan el almacenamiento físico de los datos. Estos datos implementan una estructura de información que proviene del modelo mental de los usuarios finales, expertos en el dominio, programadores y otras personas en el sistema. Pueden corresponder estrechamente a los objetos modelo de MVC.

Un ejemplo de un objeto de datos podría ser una cuenta bancaria. Su interfaz tendría operaciones básicas para aumentar y disminuir el saldo y para consultar el saldo actual. Es probable que la interfaz no ofrezca operaciones que involucren transacciones, o que de alguna manera involucren otros objetos o cualquier interacción del usuario. Entonces, por ejemplo, si bien una cuenta bancaria puede ofrecer una primitiva para aumentar el saldo, no tendría un método llamado deposit. Tales operaciones pertenecen en cambio a la parte de interacción de DCI.

Los objetos de datos son instancias de clases que pueden provenir del diseño basado en dominios , y dichas clases pueden usar relaciones de subtipificación para organizar los datos del dominio. Aunque al final se reduce a clases, DCI refleja un modelo computacional dominado por el pensamiento de objetos en lugar del pensamiento de clases. Por lo tanto, al pensar en "datos" en DCI, significa pensar más en las instancias en tiempo de ejecución que en las clases desde las que se instanciaron.

El contexto es la clase (o su instancia) cuyo código incluye los Roles para un algoritmo, escenario o caso de uso determinado, así como el código para asignar estos Roles a objetos en tiempo de ejecución y promulgar el caso de uso. Cada Rol está vinculado a exactamente un objeto durante cualquier promulgación de caso de uso dado; sin embargo, un solo objeto puede desempeñar simultáneamente varios Roles. Se crea una instancia de un contexto al comienzo de la promulgación de un algoritmo, escenario o caso de uso. En resumen, un contexto comprende casos de uso y algoritmos en los que los objetos de datos se utilizan a través de roles específicos.