Abstract
The DCI architectural pattern for software, introduced by Reenskaug, contains three parts: Data, Context and Interaction. Data represent domain knowledge while Context and Interaction represent the business logic by implementing communication between objects. Context dynamically injects roles into objects. This design pattern is especially appropriate for agile software development. The goal of our paper is to present some practical experiences with the DCI design pattern. We used the DCI pattern in an exemplary application. We proposed and described the association and cooperation between the DCI and MVC (Model View Controller) pattern. Some remarks on the usage of the DCI design pattern in the software development are also given.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Alexander, C., Ishikawa, S., Silverstein, M.: A Pattern Language. Oxford University Press, New York (1977)
Beck, K., Cunningham, W.: Using Pattern Languages for Object-Oriented Program. In: OOPSLA 1987 Workshop on Specification and Design for Object-Oriented Programming (September 1987)
Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Software. Addison-Wesley, Reading (1995)
Portland pattern repository, http://c2.com/ppr/ (access 2014)
Shalloway, A., Trott, J.R.: Design Patterns Explained: A New Perspective on Object-Oriented Design, 2nd edn. Addison-Wesley (2007)
Meyer, B., Arnout, K.: Componentization: The Visitor Example. IEEE Computer (IEEE) 39(7), 23–30, doi:10.1109/MC.2006.227
Reenskaug, T.: http://heim.ifi.uio.no/trygver/ (access 2013)
Reenskaug, T.: The Common Sense of Object Orientated Programming, version of September 11 (2008)
Reenskaug, T.: A DCI Execution Model, v 1.0 (2012)
The DCI Architecture: A New Vision of Object-Oriented Programming, http://www.artima.com/articles/dci_vision.html (access 2012)
Reenskaug, T., Coplien, J.O.: DCI as a New Foundation for Computer Programming, draft v.1.7 (2014)
Coplien, J.O., Reenskaug, T.: The Data, Context and Interaction Paradigm. In: SPLASH 2012, Tucson, Arizona, USA, October 19-26, p. 227, ACM 978-1-4503-1563-0/12/10 (2012)
Coplien, J.O.: Reflections on Reflection. In: SPLASH 2012, Tucson, Arizona, USA, October 19-26, pp. 7–9, ACM 978-1-4503-1563-0/12/10 (2012)
Coplien, J.O.: Objects of the People, By the People, and For the People. In: AOSD 2012, Potsdam, Germany, March 25-30, pp. 3–4, ACM 978-1-4503-1092-5/12/03 (2012)
Reenskaug, T., Coplien, J.O.: The DCI Architecture: A New Vision of Object-Oriented Programming (March 2009)
DCI – Data Context Interaction, http://fulloo.info/ (access 2014)
MVC: http://en.wikipedia.org/wiki/Model-view-controller (access 2014)
Coplien, J.O., Bjørnvig, G.: Lean Architecture for Agile Software Development. Wiley (2010)
Bluemke, I., Stepień, A.: DCI implementation in C++ and JAVA - case study. In: Madeyski, L., Ochodek, M. (eds.) Soft. Eng. from Research and Practice Perspectives, ch. 9, Nakom, pp. 154–163, ISBN 978-83-63919-16-0 (2014)
Qing, C., Zhong, Y.: A Seamless Software Development Approach Using DCI, pp. 139–142, IEEE 78-1-4673-2008-5/12 (2012)
Mahlen, P.: Blog [online]: DCI Architecture – Good, not Great, or Both, http://pettermahlen.com/2010/09/10/dci-architecture-good-not-great-or-both/ (access 2014)
Oberg, R.: Blog [online], http://java.dzone.com/articles/implementing-dci-qi4j (access 2014)
Parson, C.: Blog [online]: A fresh take on DCI with C++ (with example), http://chrismdp.com/2012/04/a-fresh-take-on-dci-with-c-plus-plus/ (access 2014)
Hasso, S., Carlson, C.: Design Patterns as First-Class Connectors. In: RIIT 2013, Orlando, Florida, USA, October 10-12, pp. 36–42, ACM 978-1-4503-2494-6/13/10 (2013)
Jackson, M.: The meaning of requirements. Annals of Software Engineering 3, 5–21 (1997)
Jackson, M.: Problems & Requirements. In: Proc. IEEE Second Int. Symp. on Requirements Engineering, pp. 2–8. ACM Press (1995)
Hayata, T., Han, J., Beheshti, M.: Facilitating Agile Software Development with Lean Architecture in the DCI Paradigm. In: Ninth International Conference on Information Technology-New Generations, pp. 343–348 (2012), doi:10.1109/ITNG.2012.157
Stepień, A.: DCI – Data Context Interaction – evaluation of usability. BA thesis, Institute of Computer Science, Warsaw University of Technology (2013) (in Polish)
Ruby: http://www.ruby-lang.org/ (access 2013)
Ruby on Rails: http://rubyonrails.org/ (access 2013)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2015 Springer International Publishing Switzerland
About this paper
Cite this paper
Bluemke, I., Stepień, A. (2015). Experiences with DCI Pattern. In: Silhavy, R., Senkerik, R., Oplatkova, Z., Prokopova, Z., Silhavy, P. (eds) Software Engineering in Intelligent Systems. Advances in Intelligent Systems and Computing, vol 349. Springer, Cham. https://doi.org/10.1007/978-3-319-18473-9_9
Download citation
DOI: https://doi.org/10.1007/978-3-319-18473-9_9
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-18472-2
Online ISBN: 978-3-319-18473-9
eBook Packages: EngineeringEngineering (R0)