speaker details
Stephan Herrmann
Stephan Herrmann received his Ph.D. at Technische Universit├Ąt Berlin in 2002 for his work on applying new techniques for separation of concerns to the development of a multi-view software engineering environment. Since then his focus is on developing the concepts of Object Teams, the language OT/J and its tools. He is the lead of the recently created Eclipse Object Teams Project. He has been teaching OT/J in class since 2003 and in tutorials at international conferences (NODe'05, AOSD'06. ECOOP'09). Stephan has organized the 2007-edition of the European Conference on Object-Oriented Programming (ECOOP) and several workshops. He has been a speaker at international conferences like OOPSLA, TOOLS, AOSD, JAX and EclipseCon.


Object Teams: The Next Dimension of Modularity

Object Teams is a new approach towards modular architectures, which recently moved from the research labs to Object Teams takes on where object-orientation leaves the developer with difficult trade-offs. This regards typical tensions between modularity, re-use, encapsulation, extensibility, maintenance and evolution. Architectures that are bloated by the use of complex design patterns are another sign of insufficient capabilities of the object-oriented toolbox.

With Object Teams, architects are no longer forced to choose between a textbook version of OOP, where bloated business objects carry all their state and behavior, or a pragmatic use of OOP, where monolithic use cases are the central focus and entities degrade to mere data records. Neither approach provides for good modularity regarding objects AND use cases. In order to mediate between both views Object Teams introduces "roles" as a new kind of classes and objects. A role represents that slice of an object that contributes to a given use case. A role is bound to a base object which defines the intrinsic properties of an entity. Roles can be added to/removed from a base object as the object enters or leaves the context of a use case. This context is furthermore modeled as a "team". A team contains all roles contributing to the given use case. By means of declarative method bindings between a role and its base, adding a new use case to an application becomes a purely additive task. This significantly raises the evolvability of an application without compromising its crisp modular architecture.


»  complete list of sponsors