Mylyn and Tasktop provide a revolutionary approach to focusing the Eclipse UI. They work on the concept of having a task 'context', that defines a degree of interest (DOI) for resources related to a task. We can make this task context even richer and deliver efficiencies by providing first-class integration of our MDD tools with Mylyn.

When using Mylyn, developers build up their task context using their natural navigation though source code while performing the task. For example, to fix a bug a developer opens the relevant Java source files, and Mylyn will automatically add these to the task context. Based on the frequency and type of interactions with these files, Mylyn will increase or decrease the DOI.


The issue here is that developers start a task with an empty context. The context is empty because Mylyn doesn't know what the developer is doing (or what resources are related to a task), and as a result the Package Explorer and other views in Eclipse are initially empty.

Developers can get around this problem by disabling the Mylyn filter on those views, at the cost of having views filled with all kinds of information that the developer doesn't need to complete the task.

Enter MDD tooling.

MDD tools have the advantage of knowing which things are related. For example, an MDD model is typically used to generate source code. Thus the source code is related to the model. Models rarely exist in isolation: they usually have associations with other models. Thus MDD tools know which source files are related to which models, and which models are related to other models. Given a specific model, most files in a system can be related in some way with a 'degree of separation'.

How can this information be used to our advantage with Mylyn? With first-class Mylyn integration MDD tools can let Mylyn 'see' into the MDD models. Furthermore, these MDD tools can tell Mylyn which files to put into a task context based on how they are related to models in the context.



Developers can start their task by selecting the relevant MDD model, and tell the MDD tools to 'populate' the Mylyn task context. The developer starts their task with a context that already has interesting things in it.

The richer and more expressive the MDD models, the better the integration can be. For example, if the MDD models can express business requirements and methodology, development tasks and other project tasks can be created in a task repository such as Bugzilla or JIRA, prepopulated with a Mylyn context before the developer even starts.