home themes babyIDE
DCI Documentation
Recommended reading:
- For introduction to DCI, see this Wikipedia article
Data, Context, and Interaction, an architectural pattern in computer software development: http://en.wikipedia.org/wiki/DCI
- Jim and Gertrude's excellent book on Lean Architecture: (2010)
Coplien, J. O.; Bjørnvig, G.: Lean Architecture for Agile Software Development. Building Software as if people mattered.;
Wiley, Chichester, UK 2010;ISBN 978-0-470-68420-7
There are several 5-star reviews both at http://www.amazon.co.uk and at http://www.amazon.com.
- Reenskaug and Coplien: "The DCI Architecture: A New Vision of Object-Oriented Programming" (2009)
is a high level article by Reenskaug and Coplien starting a new blog on Aritma:
(14pp) The response indicated that the article was taking too much for granted so that it lead to many misunderstandings. The article should clearly be read after the Wikipedia introduction.
http://www.artima.com/articles/dci_vision.html
- DCI from a programmer's point of view: Reenskaug: "The Common Sense of Object Oriented Programming" (April 2009)
This report includes motivation, basic principles, and lots of actual code. The code is richly commented so that the article can be read without prior knowledge of Squeak (Smalltalk) programming.
http://folk.uio.no/trygver/2009/commonsense.pdf
- A technical detail of DCI: "DCI Execution model" (Oct. 2010)
http://folk.uio.no/trygver/2012/DCIExecutionModel-2.1.pdf
- OOram role modeling, synthesis, and system architecture: Reenskaug: "Working with objects. A three-model architecture for the analysis of information systems".
(Oct. 1995)
The presentation discusses advanced role modeling. It would be fun to implement this example with its databases and end user tools using DCI. The old example illustrates the merging of object oriented technology with the well established data base technology in a third generation client server architecture. The architecture is based on three kinds of models: information models, organization model, and tool model.
http://folk.uio.no/trygver/1995/95Article/951010-paper.pdf
- The "DCI Glossary":(April 2011)
Many new terms are needed to describe the runtime behavior of a system of interacting objects:
http://folk.uio.no/trygver/2011/DCI-Glossary.pdf
- History: Reenskaug: "The Roots of DCI". (July 2010)
DCI can trace its history far back in the seventies. The highlights are in
http://folk.uio.no/trygver/2010/DCI-Origin.pdf
----------------
Inspired by Jim Coplien, many developers are working on DCI implementations in various languages (C++, C#, Ruby, Python, Groovy, Qi4J, Scala). We had a great event at the Øredev 2009 Conference in Malmø, Sweden, on Friday, 6 Nov 2009. Three of us gave talks at the conference:
10:15 - 12:10: DCI: Re-thinking the foundations of object orientation and of programming: by Trygve Reenskaug. Video here. (November 2009)
13:10 - 14:00: The DCI Architecture: Supporting the Agile Agenda in your Software Architecture by Jim Coplien. Video here. (November 2009)
14:15 - 15:05:DCI in practice by Rickard Öberg. Video here. (November 2009)
----------------
Other reading material: