Data, context and interaction: Difference between revisions

Content deleted Content added
FrescoBot (talk | contribs)
m Bot: links syntax and spacing
Jcoplien (talk | contribs)
Implementing DCI: Added information on the design process and expanded on implementation description.
Line 40:
 
==Implementing DCI==
DCI depends on a design process that separates use cases from the data model. The data model is often based on an informal ___domain analysis. The roles that characterize the end-user's model of system functionality come from the use cases. One approach to overall DCI design is [[Lean Architecture]]<ref>http://www.leansoftwarearchitecture.com</ref>.
Several example implementations exists: [[Smalltalk]]/[[Squeak]], [[C++]]<ref>http://object-composition.googlegroups.com/web/20090118C__DCI.tar?gda=YZxxZkQAAADrRvU1tICZInrYQGkdqcjVB9LJpDFQtNZStXvSrZaE044UiKBbjmHuWOApdsY8dkxV6u9SiETdg0Q2ffAyHU-dzc4BZkLnSFWX59nr5BxGqA 17.10.2009</ref>, [[C Sharp (programming language)|C#]]<ref>http://object-composition.googlegroups.com/web/20090504_C%23_DCI.zip?gda=KuAYkEcAAADrRvU1tICZInrYQGkdqcjVB9LJpDFQtNZStXvSrZaE07Ryyh4ndddBwXohD2r2F8gbzHe87USdioT9uNiA7PHaeV4duv6pDMGhhhZdjQlNAw 17.10.2009</ref>, [[Ruby (programming language)|Ruby]]<ref>http://groups.google.com/group/object-composition/browse_thread/thread/561f638b43f1b960# 17.10.2009</ref>, [[JavaScript]]<ref>http://groups.google.com/group/object-composition/browse_thread/thread/8ec4cf18e127cc3e# 17.10.2009</ref>, [[Python (programming language)|Python]], [[Qi4J]] ([[Java (programming language)|Java]])<ref>http://groups.google.com/group/object-composition/browse_thread/thread/fe317e615b9008fe# 17.10.2009</ref> , [[Scala (programming language)|Scala]] and [[PHP]]<ref>http://code.google.com/p/php-coredci</ref>.
 
Implementation techniques differ inacross many ways in differentprogramming languages. For [[Role-oriented_programming|roles]], method injection is usually needed. Traits<ref>scg.unibe.ch/archive/papers/Scha03aTraits.pdf</ref> are one common programming language technique to support method injection. Some languages, such as Scala, have native support for rolestraits, some other languages (e.g., Ruby and Python) allowsallow run time injection of methods,. whileIn in others (Java), pre-compiler tricks based on annotations are needed to simulatesupport DCI.
 
Several example implementations exists: [[Smalltalk]]/[[Squeak]], [[C++]]<ref>http://object-composition.googlegroups.com/web/20090118C__DCI.tar?gda=YZxxZkQAAADrRvU1tICZInrYQGkdqcjVB9LJpDFQtNZStXvSrZaE044UiKBbjmHuWOApdsY8dkxV6u9SiETdg0Q2ffAyHU-dzc4BZkLnSFWX59nr5BxGqA 17.10.2009</ref>, [[C Sharp (programming language)|C#]]<ref>http://object-composition.googlegroups.com/web/20090504_C%23_DCI.zip?gda=KuAYkEcAAADrRvU1tICZInrYQGkdqcjVB9LJpDFQtNZStXvSrZaE07Ryyh4ndddBwXohD2r2F8gbzHe87USdioT9uNiA7PHaeV4duv6pDMGhhhZdjQlNAw 17.10.2009</ref>, [[Ruby (programming language)|Ruby]]<ref>http://groups.google.com/group/object-composition/browse_thread/thread/561f638b43f1b960# 17.10.2009</ref>, [[JavaScript]]<ref>http://groups.google.com/group/object-composition/browse_thread/thread/8ec4cf18e127cc3e# 17.10.2009</ref>, [[Python (programming language)|Python]], [[Qi4J]] ([[Java (programming language)|Java]])<ref>http://groups.google.com/group/object-composition/browse_thread/thread/fe317e615b9008fe# 17.10.2009</ref> , [[Scala (programming language)|Scala]] and [[PHP]]<ref>http://code.google.com/p/php-coredci</ref>.
 
==References==