Showing posts with label CASE tool. Show all posts
Showing posts with label CASE tool. Show all posts

Saturday, July 19, 2008

The AMMA project

We have spoken formerly about the IMP project, Methods, Models, and so on... I would like today to speak about the AMMA project which is actually the umbrella project for different projects around model management.
In order to perform Model Oriented Development(MOD), or also called Model Driven Development(MDD), we need advanced tools to perform modelization, model to model transformations, model merging, etc...
It is the goal of the AMMA(Atlanmod Model Management Architecture) project developped by the INRIA AtlanMod team directed by Jean Bezivin, i.e. to propose a global platform to ensure all these tasks. It is obviouly still research projects, but some of them like the ATL project have reached a quite mature point to be used in production.
What are the main projects of the AMMA platform? We can find the following ones :
  • AM3(Atlanmod MegaModel Management): the goal is to help developpers to manage megamodels (models composed of models as elements), i.e. create, store, view, access, and modify these ones. In a domain where many models are handled, the need of such platform is obvious to reduce complexity and render their use possible
  • AMW(Atlanmod Model Weaver):when we have many models, we may want to combine them or merge them. It is done by the model weaver.
  • ATL(Atlanmod Transformation Language): this project enables the developper to transform an instance of a model into another one of another model, eg a powerpoint document into an excel sheet. ATL define also a Virtual Machine to perform the tranformations efficiently. ATL is furthermore well tooled by ADT(ATL Development toolkit) an eclipse plugin used to write transformation with the ATL language, and even debug them.
  • KM3(Kernel Meta Meta Model): it is an implementation-independent language to write metamodels, and thus to define abstract syntaxes of Domain Specific Languages
  • TCS(Textual Concrete Syntax): it is an Eclipse/GMT component that enables the specification of textual concrete syntaxes for Domain-Specific Languages (DSLs) by attaching syntactic information to metamodels. With TCS, it is possible to parse (text-to-model) and pretty-print (model-to-text) DSL sentences. Moreover, TCS provides an Eclipse editor, which features: syntax highlighting, an outline, hyperlinks, and hovers for every DSL which syntax is represented in TCS.
  • MoDisco(Model Discovery): the goal of the project is to provide a support for model-driven reverse engineering, i.e. principles, methodologies and tooling.
  • ACG(ATL VM Code Generator): it is a domain specific language designed to express the compilation of a model transformation into ASM code executable by the ATL Virtual Machine (ATL VM).
We can see that all the bricks are present in order to reach Model Driven Engineering heaven. The challenge now is to :
  • provide a well packaged set of all these tools to be usable in a simple manner
  • reduce the learning curve to be adopted by developpers
  • evangelize a lot these technos
  • give evidence that there is a quite big capital gain to switch to such a technology
Nevertheless, I find promising and well thought all these projects, and I hope you'll browse them deeply after reading this post.

Saturday, July 12, 2008

Team Concert on the Jazz Technology Platform

Rational Team Concert 1.0 was just out on jazz.net one month ago. It is the first collaborative development tool based uppon the Jazz technology platform initiated by IBM to improve collaborative agile development. An edition named Express-C is available for free.

The platform is a mix of tools as Eclipse plugins and web 2.0 pages, and offers all the basic features - as described by IBM- to:
  • Support seamless integration of tasks across the software lifecycle.
  • Facilitate team collaboration and coordination throughout the software lifecycle.
  • Provide an extensible platform.
  • Help teams build software more effectively.
  • Support globally distributed development teams.
  • Provide solutions scalable from small teams up through large enterprises.
  • Maintain audit trails and automate bookkeeping so that teams are accountable.
  • Support UI integrations (IDE, web browser, etc.) that fit the needs of customers.
  • Foster a broad ecosystem of tool providers, including independent software vendors (ISVs).
  • Make software development more enjoyable.

The Jazz Platform's principal role is to provide tool writers with mechanisms to use, and rules to follow, that lead to seamlessly-integrated lifecycle tools. These mechanisms are exposed via well-defined APIs. The Jazz Platform also provides useful building blocks and frameworks that facilitate developing new tools.

A diagram is often the best means to quickly understand an architecture :

Jazz is itself developped in an agile way by using the EclipseWay development scheme (which is expressed itself by the ECPF tool). It is called Open Commercial Software Development.

I tested Jazz as early adopter one year ago, and I thought then it was a very promising platform built uppon a solid conceptual model and prooved tools. I've not yet tested the first occurence of Team Concert, but I'll do it quite soon. My opinion is that the platform aims relative big projects with many developpers working together in a collaborative way, i.e. under a customizable agile approach. The result is a relative consequent tool which needs to be administered and planned in the company organization as we have to administer SCM tools in big organizations. It is obviously not a drawback, but you have to take this data into account.