In any software development that involves a certain level of complexity, is based on re-usable components and evolves over a significant period of time, there are typically some tensions between different people and sub-projects contributing to the overall code base. E.g., framework developers have to balance the flexibility of their framework with the safety provided by strong and strictly enforced encapsulation. Framework users (developers of components using the framework) will normally desire more (or just other) options for adapting the framework's behavior than what the framework already provides. Also, different developers may simply focus on different concerns that in the final code crosscut each other due to intricate dependencies. Put simply, these tensions tend to result from the necessity to create systems from a single coherent object oriented design.
In order to overcome much of these tensions the Eclipse Object Teams (OT) programming model has been developed, which is centrally based on the concepts of roles and teams. Roles have first been introduced for role modeling, where different perspectives are expressed by different models which then relate to a shared set of base abstractions (classes). Roles in Object Teams bring this power of multi-perspective modeling to the level of programming. Each role model is mapped to the implementation as a team class, whose contained roles implement those facets of objects that are relevant to the given perspective. In this approach explicit bindings between a role and its base entity provide powerful means for integrating a system from components. Here integration clearly means more than just creating a system as the sum of its components, but those bindings define significant parts of the communication in the resulting system.
The benefits of developing in the Object Teams approach are twofold:
The Object Teams approach has been materialized at two levels.
Repo | Commits | Reviews | Issues |
---|---|---|---|
https://gitlab.eclipse.org/eclipse/objectteams/objectteams | 154 | 0 | 14 |
There have been 154 commits made by 1 people on 1 repositories over the last 12 months.
There have been 14 issues submitted by 1 people on 1 repositories over the last 12 months.
There have been 0 reviews submitted by 0 people on 0 repositories over the last 12 months.
The EMO oversees the lifecycle of Eclipse projects, trademark and IP management, and provides a governance framework and recommendations on open source best practices.
See the project’s PMI page at https://projects.eclipse.org/projects/tools.objectteams