Christian W. Damus
The Eclipse Modeling Framework (EMF) is the foundation for model-based development and data integration at Eclipse. It provides a Java framework and code generation facility for building tools and other applications based on structured models. Given a model, e.g., an XML Schema or a UML class diagram, EMF can generate a corresponding set of Java interfaces and implementation classes. You can edit these generated classes to add methods and instance variables and still regenerate from the model as needed: your additions will be preserved during the regeneration. EMF also provides a capability to work with dynamic models (which do not require generating Java classes) via an efficient reflective API for manipulating any EMF object generically.
EMF consists of three fundamental aspects:
The Eclipse Modeling Framework Technology project (EMFT) extends these basic facilities to support a flexible validation framework for expressing constraints, including OCL as a constraint language, as well as transactional APIs for fine grained control of model changes, including roll back support when important model validity constraints are violated.
This tutorial will provide an introduction into EMF, describing EMF's components, EMF's meta-model (Ecore), as well as some of the newer and advanced capabilities available in EMF and EMFT today. Concrete examples and demos will motivate the use of EMF to help you understand how to carry out your day to day tasks using EMF most effectively. It will include the following:
This tutorial will include several hands-on exercises to reinforce and build on the presented material. In order to work on these exercises, you will need to bring a laptop with the latest milestones of the Eclipse SDK, EMF, EMFT Query/Transaction/Validation, and MDT OCL.
The easiest way to get everything you'll need is to download and install the Eclipse SDK 3.3M5eh and then install all of the features from the following Update Manager site:
Note that a Java 5.0 or later virtual machine is required to run these features. Please keep watching the site, as it will be updated in the days leading up to EclipseCon.
Ed Merks is the project lead of the Eclipse Modeling Framework project and a co-lead of the top-level Modeling project. He has many years of in-depth experience in the design and implementation of languages, frameworks, and application development environments. He holds a Ph.D. in computing science and is a co-author of the authoritative "Eclipse Modeling Framework, A Developer's Guide" (Addison-Wesley 2003). He works for IBM Rational Software at the Toronto Lab.
Dave Steinberg is a software developer at the IBM Toronto Lab. He has worked with Eclipse and modeling technologies since joining the company in 2001, and has been a committer on the EMF project since its debut at Eclipse.org in 2002. He has designed and implemented numerous pieces of the framework, with a particular focus on the code generation tools and EMF.Edit, and is a co-author of the authoritative EMF book, "Eclipse Modeling Framework, A Developer's Guide" (Addison-Wesley 2003).
Kenn Hussey is a senior software developer for Rational Software, IBM Software Group in Ottawa, Canada. He is a Project Management Committee (PMC) member of the top-level Modeling project, lead of the Model Development Tools (MDT) project, and a committer on the Eclipse Modeling Framework (EMF) project at Eclipse.
Christian's professional experience consists almost entirely of building modeling software with Java and related technologies, from spatial data modeling with RDBMS for web-based GIS applications to software modeling with UML at IBM Rational Software. His last 3+ years have been spent in building modeling frameworks on EMF, lately as component lead for OCL and a subset of EMFT in the Eclipse Modeling Project. Other activities that he enjoys in and around his Ottawa, Canada home are woodworking, canoe-camping, and music.