Skip to main content
  • Log in
  • Manage Cookies
projects.eclipse.org
Download
  • Projects
  • Working Groups
  • Members
  • Community
    • Marketplace
    • Events
    • Planet Eclipse
    • Newsletter
    • Videos
    • Blogs
  • Participate
    • Report a Bug
    • Forums
    • Mailing Lists
    • Wiki
    • IRC
    • Research
  • Eclipse IDE
    • Download
    • Learn More
    • Documentation
    • Getting Started / Support
    • How to Contribute
    • IDE and Tools
    • Newcomer Forum
  • More
      • Community

      • Marketplace
      • Events
      • Planet Eclipse
      • Newsletter
      • Videos
      • Blogs
      • Participate

      • Report a Bug
      • Forums
      • Mailing Lists
      • Wiki
      • IRC
      • Research
      • Eclipse IDE

      • Download
      • Learn More
      • Documentation
      • Getting Started / Support
      • How to Contribute
      • IDE and Tools
      • Newcomer Forum
    • Search

  1. Home
  2. Projects
  3. Eclipse Tools Project
  4. Eclipse Object Teams
  5. Governance

Eclipse Object Teams

Primary tabs

  • Overview
  • Downloads
  • Who's Involved
  • Developer Resources
  • Governance(active tab)
  • Contact Us
Scope: 

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:

  1. The code structure within each component can be much simpler and easier to understand because original concerns can faithfully be encapsulated as teams and roles, allowing for separate evolution of concerns over time. Any crosscutting interaction can concisely be defined using the mentioned bindings.
  2. Re-use of existing components is greatly improved, because bindings between different components can create client-defined adaptations of a re-usable component in a concise and disciplined way. With Object Teams many of the compromises that are necessary with traditional approaches become obsolete.[1]

The Object Teams approach has been materialized at two levels.

  • The programming language OT/J adds the concepts of Object Teams to the Java™ programming language. Development in OT/J is supported by a comprehensive IDE, the OTDT (Object Teams Development Tooling) [2], which builds on and extends the Eclipse Java development tools.
    Development of the OTDT has started in 2003 (based on Eclipse 2.1.1) to large parts under the umbrella of the publically funded project TOPPrax. After the 1.0 release in March 2007 new release have been published roughly every 6 weeks.
  • The component runtime OT/Equinox [3] extends Equinox as to support so-called aspect bindings accross bundle boundaries. Thus, Equinox bundles (plug-ins) can be implemented in OT/J and explicit bindings connect an Object Teams bundle to other bundles in much more powerful ways than the traditional approach.
    OT/Equinox is being developed since 2006 and has been used for the implementation of the OTDT itself ever since.
Releases: 
NameDate
2.8.1 (2020-06)2020-06-17
2.8.0 (2020-03)2020-03-18
2.7.6 (2019-12)2019-12-18
2.7.4 (2019-06)2019-06-19
2.7.12018-09-19
2.7.02018-06-27
2.6.02017-06-28
2.5.02016-06-22
2.4.02015-06-24
2.3.02014-06-25
2.2.02013-06-26
2.1.22013-02-22
2.1.12012-09-29
2.1.02012-06-27
2.0.22012-02-24
2.0.12011-09-23
2.0.02011-06-22
0.7.22011-02-25
0.7.12010-09-24
0.7.02010-07-07
Reviews: 
NameDate
2.8.0 (2020-03) Release Review2020-03-18
2.7.0 Release Review2018-06-20
2.6.0 Release Review2017-06-21
2.5.0 Release Review2016-06-15
2.4.0 Release Review2015-06-10
2.3.0 Release Review2014-06-11
2.2.0 Release Review2013-06-12
2.1.0 Release Review2012-06-13
2.0.0 Release Review2011-06-08
0.7.0 Release Review2010-07-07
Creation2010-01-27

Project Links

  • Getting Started
  • Proposal
  • Website
  • Wiki
  • Documentation
  • Current Release
Eclipse Object Teams

Related Projects

Project Hierarchy:

  • Eclipse Tools Project
  • Eclipse Object Teams

Tags

Technology Types
  • Language
  • Runtime
  • Tools
Build Technologies
  • PDE Build

Eclipse Foundation

  • About Us
  • Contact Us
  • Sponsor
  • Members
  • Governance
  • Code of Conduct
  • Logo and Artwork
  • Board of Directors
  • Careers

Legal

  • Privacy Policy
  • Terms of Use
  • Copyright Agent
  • Eclipse Public License
  • Legal Resources

Useful Links

  • Report a Bug
  • Documentation
  • How to Contribute
  • Mailing Lists
  • Forums
  • Marketplace

Other

  • IDE and Tools
  • Projects
  • Working Groups
  • Research@Eclipse
  • Report a Vulnerability
  • Service Status

Copyright © Eclipse Foundation. All Rights Reserved.

Back to the top