In my previous blog I promised to work out a meta model to realize the DCI architecture. As explained before I've made a slight modification: a UseCase is modeled as its own entity.
A UseCase is business relevant code which needs different actors (data objects playing roles) to work on.
The context manages the UseCase an the data objects which are able to play the roles needed.
A role is an interface which can have 1..N interaction (an interaction is realized as an abstract method on the role interface).
Every role might be realized for any suitable data object. A role realization for a specific data object is called Adapter.
Setting up a context it must be determined which data object plays the roles needed.
Data objects contain members and method. Members are simple data fields an result in an appropriate getter function. The method can be freely chosen and realize a more sophisticated access to the members.