Track: Agile Architecture
Sometime in the last 40 years, object-oriented programming got lost. Instead of producing code that can be understood by reading, it produces code that can be explored only by tests. In this talk, the inventor of the DCI (Data, Collaborations, and Interactions) architecture will describe its motivations and origins: how it can produce source code that maps directly from end user mental models, making it easier to understand and evolve.
Trygve is prof. em. of informatics at the Univ. of Oslo. He has 50 years experience in SE R&D for industrial strength SW products. His firsts include end user programming, structured programming, and data base oriented architecture (1960); OO applications and role modeling (1973); MVC (1979); OOram role modeling (1983). Member of the UML Core Team(1997). The goal of his current research is to create a new, high level discipline of programming for readable code the mastery of our software.
The vision of object-oriented programming was to capture the end user mental model in the code. Until recently, programming languages weren't able to do that. With DCI, we can now use most professional programming languages to achieve the object vision—which is curiously similar to the goals of Agile software development. We now can capture both domain structure and structures from user experience analysts. Learn how in this seminar—and learn more in Rickard Öberg's associated presentation!
Jim Coplien is an old C++ shark who now does world-wide consulting on Agile software development methods and architecture. He is one of the founders of the software pattern discipline, and his organizational patterns work is one of the foundations of both Scrum and XP. He is a Certified Scrum Trainer. He currently works for Gertrud&Cope in Denmark, and is a partner in the Scrum Training Institute. He is working on a new book on Lean Software Architecture and Agile software deployment.
In this session we explore how the DCI concepts can be applied in practice using the Qi4j Java framework and Composite Oriented Programming model. You will learn how COP concepts map to DCI, and how DCI can be implemented. We will look at a practical example, and how DCI helps making the code easier to read and also enables a number of powerful features.
Rickard has worked on several OpenSource projects that involve J2EE development, such as JBoss, XDoclet and WebWork. He has also been the principal architect of the SiteVision CMS/portal platform, where he used AOP as the foundation. Now he works for JayWay, developing the Qi4j framework and Composite Oriented Programming paradigm.
Modeling is not the preserve of plan-driven methods, and the problems sometimes encountered lie not with modeling per se but with overdosing on models and failing to use modeling as an opportunity for communication. Models that become an end in themselves and are drawn up by individuals in isolation from one another are often the culprit. Typically, the secret to effective modeling is more in the -ing than the model.
Kevlin Henney is an independent consultant and trainer based in Bristol, UK. His work focuses on software architecture, patterns, development process and programming languages.
Kevlin has been a columnist for various magazines and online publications, including Better Software, The Register, Java Report and C++ Report. He is coauthor of A Pattern Language for Distributed Computing and On Patterns and Pattern Languages.