School of Computer Science
Simple Separation of Concerns for Eclipse


[14 November 2008]Release 2.0.3 is out. Bug fixes.
[16 July 2008]Release 2.0.2 is out. Bug fixes. Faster and more responsive GUI.
[28 February 2006]OOPSLA Eclipse Technology Exchange paper on ConcernMapper now in the ACM Digital Library (see reference in the documentation section).


Do you find it hard to keep track of all the code related to your software modification task? Do you wish you could keep a permanent record of the subset of a software system associated to different concerns (requirements, design decisions, tasks, bugs, etc.)? ConcernMapper does exactly this.

ConcernMapper is a plug-in for Eclipse that allows you to organize fields and methods into arbitrary modules called concerns. In brief, ConcernMapper allows you to reorganize the modularity of a software system in a way that suits your needs, without altering its "official" structure or behavior. It also allows you to keep a permanent record of the code associated with various concerns.

ConcernMapper is useful for software developers who repeatedly find themselves having to modify source code which, although conceptually related, is scattered in multiple classes. ConcernMapper is an extremely lightweight and easy-to-use cousin of FEAT. With ConcernMapper, you create a concern representation by simply dragging and dropping Java elements of interest into a view.

ConcernMapper is useful for software engineering researchers by providing a simple and convenient format for associating code with concerns. Concerns can be programmatically generated (e.g., through various feature location algorithms) and loaded directly into the plug-in using a simple API.

Screen Shots

Click on the description to see the screen shot.


You can easily install ConcernMapper and obtain its source code through Eclipse's update mechanism. ConcernMapper is distributed under the terms of the
Eclipse Public License, v. 1.0

System requirements: Eclipse 3.2, Java 1.4. ConcernMapper is currently only tested on Windows.

To install ConcernMapper:

  1. From the Eclipse menu bar, select Help | Software Updates | Find and Install...
  2. Select "Search for new features to install" and click Next >
  3. Click on the New Remote Site... button.
  4. For the name, enter "ConcernMapper". For the URL, enter "", and click OK
  5. Select the new ConcernMapper entry in the list and click Finish
  6. In the list of features to install, select the root node of the ConcernMapper tree, and click Next >
  7. Select that you accept the terms of the license agreement, and click Next >
  8. Click Finish, and then Install
  9. Restart your workspace.

You should now have the ConcernMapper plug-in installed. To get started:

  1. Open the Java perspective.
  2. Select Window | Reset Perspective. The ConcernMapper View will appear.
  3. In the ConcernMapper View, click on the third button from the left to create a concern.
  4. Drag and drop elements into your concern...

To update an existing installation of ConcernMapper:

  1. Make sure that your version of Eclipse allows compatible updates. Select Window | Preferences | Install/Update and make sure the compatible radio button is selected under Valid updates.
  2. Select Help | Software Updates | Manage Configuration
  3. Select the ConcernMapper feature.
  4. Click on Scan for Updates, and go through the motions.

To obtain the source code of ConcernMapper:

The ConcernMapper source code is provided in the plug-in directory. To obtain the source code:

  1. Install ConcernMapper as directed above.
  2. Find the directory named ca.mcgill.cs.serg.cm_... in the plugin directory of your Eclipse installation.
  3. Access the directory src.


Detailed documentation for ConcernMapper is included in the Eclipse help. Please note two current quirks of ConcernMapper: you must save your concern models with the extension .cm to be able to load them back in, and you cannot add fields and methods from local or anonymous classes into a concern model.

How to load the concern models that you create
This is maybe the only non-obvious feature. In the Package Explorer, right click on the file containing your model and select "Load Concerns". Note that this menu will only be available if your file has the extension ".cm". Alternatively, you can simply drag a concern model file and drop it in the ConcernMapper view.

Martin P. Robillard and Frédéric Weigand-Warr. ConcernMapper: Simple View-Based Separation of Scattered Concerns. In Proceedings of the Eclipse Technology Exchange at OOPSLA, October 2005.


Search and report issues with ConcernMapper using Bugzilla (ConcernMapper product).


ConcernMapper is currently developed and maintained by
Martin Robillard and Jean-Rémi Desjardins. Past contributions by Frédéric Weigand Warr and Putra Manggala.

Contact Information

Address questions and comments to
Martin Robillard.

Copyright © Martin Robillard 2005-2007