Domain specific modeling and UML

September 16th, 2009

These days, I’m about to prepare a presentation on a project we concluded recently. In that project, we validated a prototype implementation of some graphical editors for a more or less domain specific modeling language. While thinking about some possible introductory slides, I remembered a similar presentation not too long ago, where I tried to present the benefits of using domain specific modeling languages.

I well remember the looks of doubt on most of the audience faces, with comments along the lines of “Now we spent years of coming up with a standard like UML and you tell us DSLs are better.” Well, the thing with UML in my opinion is that it has grown into a rather bloated standard which tries to address all possible modeling domains. Add to that the ongoing debate whether it’s better to use profiling or metamodeling to customize it. And on top of it, at OMG, tool-vendors typically try to standardize what they have already implemented. I’m not saying UML is a bad thing, it’s just that this evolution has created an opposite trend.

What I also recall are the days back in the 90s, when CASE was the silver bullet for all kinds of software problems and where we had a plethora of methods and notations. Obviously, at that time, standardization was the only solution to get out of that universe of notational solar systems which were floating around in virtual space. The time has come, though where that standardization effort has developed a momentum of its own, which in a lot of cases is more and more disconnected from end-users. An electrical engineer which needs to collaborate with a software engineer will simply not want to learn UML – which is really just some fancy software thing.

Enter DSLs. On the presentation layer, DSLs most importantly attempt to pick up the user (who is typically an expert in his domain) by using a visualization (aka notation) and a terminology she’s used to. On the storage, and more importantly the interchange layer, the data which is collected and modeled by the expert is however mapped to a metamodel which is ideally common to many different DSLs. Although this common mapping is far from being in use everywhere and is certainly very challenging to design in the beginning, from an overall perspective, such a common metamodel is the big step forward. This is where DSLs have learned from UML and its standardization based on MOF and this is where DSLs significantly differ from the notation universe from the 90s – provided the DSLs are built on a common foundation.

That common foundation is also a technical aspect and in this area, we find another reason why nowadays DSLs can reach a higher level of maturity. With frameworks such as EMF and GMF which in turn build on a proven platform like Eclipse, the technical challenges of creating DSL tools become much more manageable. So much, that these tools are more often built by end-users themselves and less and less by typical tool-vendors. As a result, what used to be proprietary know-how of tool vendors some years ago, now shifts more and more to end-users.

The challenge for tool vendors and consultants in this evolving eco-system is now to focus more on the back-end frameworks and be less dogmatic on how modeling has to be properly done. But that’s a topic for another article …

Scheduling tasks with CodeBeamer

September 15th, 2009

We’ve been running Intland’s CodeBeamer on the OpenAmeos community platform scopeset.de for quite a while now. Overtime, we’ve made some extensions which we’d like to share here. This article is the first in a series which will highlight some of these customizations.

Scheduling tasks, the challenge

Typically, in any issue tracking system, you work with a list of tasks. This list might be categorized or might be broken down hierarchically, but when it comes to scheduling tasks, you typically do that by moving around task bars in a Gantt chart. This is where the idea started to integrate a project management tool into CodeBeamer so that it would allow to schedule (and monitor) tasks which had previously been created in CodeBeamer. CodeBeamer’s API is well suited to provide the necessary hooks.

The workflow

The following diagram illustrates the workflow which is used for task scheduling with CodeBeamer and GanttProject:

task_workflow

Implementation

As project management tool, we chose GanttProject, for the primary reason that it suffices for the scheduling activity and that it has a relatively simple XML storage format. The required Java code is a straight forward implementation which uses CodeBeamer’s remote API to export all tasks for a given milestone into GanttProject’s XML format.

The following data is exported into the Gantt chart:

  • Estimated hours
  • Spent hours
  • Assignee
  • Hierarchical breakdown
  • Dependencies

Additionally, task bars can be color coded for different assignees (or red for over-time).

After having scheduled the tasks in GanttProject, the XML file is then imported back into CodeBeamer, task start and end dates as well as task dependencies and parent child relationships are updated.

Noteworthy to mention on the implementation is the usage of a task-type-independent and task-type-specific layer of DTOs on top of the API DTOs. This allows to share common functionality for different exporters and importers.

Source code

The source code for this integration is available on javaforge.com

Next in this series will be an article on a Wiki ChangeLog plugin.

OpenAmeos 10.2 features and progress

September 9th, 2009

The next version of OpenAmeos is presently in early QA. The 2 major new features are SQLite and Unicode support.

SQLite can replace MS-Jet as repository storage engine on Windows and will typically improve the overall performance of OpenAmeos. On Linux, OpenAmeos can now be used without a Sybase installation.

Unicode has been partially implemented by our partner Triad in Hungary.

In addition to this, we are also considering to include support for UML profiles in various export formats like XMI (-> profiles will be added to the ACD metamodel)

OpenAmeos 10.2 is expected to be available in fall 2009.

ScopeSET als Partner im Förderprojekt VERDE

July 31st, 2009

ScopeSET ist Partner in dem Verbundprojekt VERDE, einem vom Bundesministerium für Bildung und Forschung gefördertem Projekt.

VERDE hat zum Ziel, ein methodisches Rahmenwerk zum iterativen, inkrementellen, verifikationsorientierten Entwurf komponentenbasierter Hardware/Software-Architekturen zu definieren. Über maßgeschneiderte  Schnittstellen erfolgt die Integration und Adaption von Test- und Analysewerkzeugen zur Verifikation von domänenspezifischen Anforderungen.

Gemeinsam mit Partner aus der Industrie, Forschung und Lehre wird ScopeSET entsprechende VERDE Lösungen erarbeiten. Das Projekt hat eine Laufzeit von 3 Jahren. Weitere Information werde in Kürze unter einer Projekteigenen Internetadresse veröffentlicht.

OpenAmeos 10.1 released

May 26th, 2009

We’re happy to release OpenAmeos 10.1 / build 26. The tested binary distribution includes 38 enhancements and 43 bug fixes. The distribution is available for Windows and Linux, Solaris will follow on request.

For details, see OpenAmeos 10.1 features and the OpenAmeos 10.1 ChangeLog

The source code for this release is available via SVN or as ZIPed archive