Title: Working with objects in computer and mind Speaker: Trygve Reenskaug Thu, August 21, 12:00pm – 12:30pm Description Abstract: The essence of object orientation is that objects interact to achieve a goal. This interaction can be observed by making a trace of the runtime flow of messages through the system. It is sometimes hard to get a mental picture of this interaction from reading the class code. I will present a two-dimensional programming paradigm where the interaction is explicitly specified in a new dimension. The paradigm is called DCI - Data, Context, and Interaction. In the Data projection,what-the-system-is, objects are observed from inside and system state is specified by classes. In the Context projection,what-the-system-does, objects are observed from outside together with their collaborators. System behavior in the form of object interaction is here visible and tangible. Participating objects are named according to the role they play in the interaction. The behavior that an object needs to sustain its role is attached to the object only while it is needed. The DCI object oriented concepts can become a unifying foundation for programming since they are closely tied to a code reader's mental model of program execution. BabyIDE, the Squeak implementation of DCI, is non-intrusive in that it does not constrain regular Squeak programming. DCI has a wide application area and lead to code that is more readable due to its better concepts for separation of concern. Bio: Trygve Reenskaug is professor emeritus of informatics at the University of Oslo. He has nearly 60 years experience in software engineering research and in the development of industrial strength software products. He has extensive teaching and speaking experience including keynotes, talks and tutorials. His firsts include: * 1950s: Learn computer programing (language: binary) * 1960s: The Autokon system for ship CAD/CAM. The word's first database-centric system architecture, end user programmming, and software-as-a-product. * 1970s: OO, distributed systems, MVC. * 1980s: OOram, Role modeling of object interaction. * 1990s: Member of the UML Core Team, contributed the notion of Collaborations. * 2000s: DCI, his retirement project. * 2010s: The next 'Dynabook'? Video: https://www.youtube.com/watch?v=-m1vwTe0mEo