User Tools

Site Tools


what_is_dci

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

what_is_dci [2014/07/23 12:47]
mbrowne
what_is_dci [2015/04/05 13:47] (current)
mbrowne
Line 1: Line 1:
-Object-oriented programming was supposed to unify the perspectives of the programmer and the end user in computer code: a boon both to usability and program comprehension. While objects capture structure well, they fail to capture system behavior. DCI is a programming paradigm through which the end user mental model is more fully reflected in readable code. The vision of DCI is to become a unifying foundation for programming in both introductory and advanced programming education, and to bridge the gap between programmer and everyday user through concepts that everyone can understand.+====== What is DCI? ======
  
-To quote from the article [[http://fulloo.info/Documents/CommSenseCurrentDraft.pdf|Working with objects—in computer and mind]], the primary goals of DCI are as follows:+Object-oriented programming was supposed to unify the perspectives of the programmer and the end user in computer code: a boon both to usability and program comprehension. While objects capture structure well, they fail to capture system behavior. DCI (Data-Context-Interaction) is a programming paradigm through which the end user mental model is more fully reflected in readable code. The vision of DCI is to become a unifying foundation for programming in both introductory and advanced programming education, and to bridge the gap between programmer and everyday user through concepts that everyone can understand. 
 + 
 +To quote from the article [[http://folk.uio.no/trygver/2015/​CommSense-1.14.1.pdf|Working with objects—in computer and mind]], the primary goals of DCI are as follows:
  
 MENTAL MODELS. To reflect the way different users conceptualize the objects of their world so that a program feels like an extension of its user's mind. MENTAL MODELS. To reflect the way different users conceptualize the objects of their world so that a program feels like an extension of its user's mind.
Line 24: Line 26:
  
 **Interaction**\\ **Interaction**\\
-At runtime, the environment will trigger the Context to start the //​Interactions//​ between the role-playing objects. These Role Players will send messages to each other in order to fulfill the system operation. Runtime parameters might vary the topology of interactions within a Contexte.g. if a use case has various scenarios. The interactions form a structure that closely reflects our human mental model of the behavior of our domain.+At runtime, the environment will trigger the Context to start the //​Interactions//​ between the role-playing objects. These Role Players will send messages to each other in order to fulfill the system operation. Runtime parameters might vary the topology of interactions within a Contexte.g. if a use case has various scenarios. The interactions form a structure that closely reflects our human mental model of the behavior of our domain.
  
-In traditional class-based programming,​ “storing” and “processing” code is placed together in the same class, and the code for “communicating” (communication between objects) is often scattered across many different classes. DCI is more truly “object-oriented”; it focuses on //objects at runtime//. By clearly delineating the storing, processing, and communicating capabilities of objects, DCI avoids the often incorrect assumption that system behavior shares the same structure as the data model, and clarifies ​how objects ​will behave ​and collaborate ​with each other at runtime.+In traditional class-based programming,​ “storing” and “processing” code is placed together in the same class, and the code for “communicating” (communication between objects) is often scattered across many different classes. DCI is more truly “object-oriented”objects ​still contain both data and behavior ​at runtime, ​but DCI avoids the often incorrect assumption that system behavior shares the same structure as the data model. This is accomplished by clearly delineating the storing, processing, and communicating capabilities in the code, allowing the programmer to orchestrate ​how these elements ​will combine to form //objects at runtime// ​and their interactions ​with each other.
  
 Encoding behavior as a first class citizen in the Context firmly consolidates our ability to reason about what the code will do at runtime without having to study a plethora of classes or prototypes of role-playing objects. This has an array of advantages: Encoding behavior as a first class citizen in the Context firmly consolidates our ability to reason about what the code will do at runtime without having to study a plethora of classes or prototypes of role-playing objects. This has an array of advantages:
Line 38: Line 40:
 In many ways, DCI builds on the same concepts that underly MVC (both were invented by Trygve Reenskaug). In MVC, the Model is intended to make the computer feel like an extension of the user's mind, made accessible by supporting Views and Controllers. In other words, MVC transforms the Model data into a physical form that can readily be assimilated by the user’s brain. DCI is about creating a program that faithfully represents the human mental model. The two meet when MVC is used to bridge the gap between the human mind and the model implied by the DCI-based computer system. In many ways, DCI builds on the same concepts that underly MVC (both were invented by Trygve Reenskaug). In MVC, the Model is intended to make the computer feel like an extension of the user's mind, made accessible by supporting Views and Controllers. In other words, MVC transforms the Model data into a physical form that can readily be assimilated by the user’s brain. DCI is about creating a program that faithfully represents the human mental model. The two meet when MVC is used to bridge the gap between the human mind and the model implied by the DCI-based computer system.
  
-History and common sense argue that users can reap the full value of software only when they understand how the system works, the ideal being that stakeholders can understand critical parts of the program and that some can even write code themselves. DCI makes this goal practical and acheivable ​today. Store, process, and communicate:​ so simple that everybody can understand it, so universal that it can form the nucleus of computing in business and school.+History and common sense argue that users can reap the full value of software only when they understand how the system works, the ideal being that stakeholders can understand critical parts of the program and that some can even write code themselves. DCI makes this goal practical and achievable ​today. Store, process, and communicate:​ so simple that everybody can understand it, so universal that it can form the nucleus of computing in business and school.
  
 For more information,​ see these introductory articles:\\ For more information,​ see these introductory articles:\\
-http://fulloo.info/Documents/CommSenseCurrentDraft.pdf\\+http://folk.uio.no/trygver/2015/​CommSense-1.14.1.pdf\\
 http://​www.artima.com/​articles/​dci_vision.html http://​www.artima.com/​articles/​dci_vision.html
what_is_dci.1406119633.txt.gz · Last modified: 2014/07/23 12:47 by mbrowne