Jump to: navigation, search

AM3/Use Cases/Linux Package Dependencies

< AM3
Revision as of 10:40, 17 November 2010 by Hugo.bruneliere.inria.fr (Talk | contribs) (Formatting upgrade)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
< To: MDT
< To: MoDisco

This AM3 use case titled Linux Package Dependencies has been implemented by Guillaume Doux and initially published in April 2009.


AM3, Global Model Management, Dependencies Management , GraphML, Prefuse, Linux


This use case describes how AM3 can be used to manage packages dependencies in distributions of Debian Linux based systems. It can be divided in two parts:

  • Discovery and Transformation to AM3 part, consisting in injecting the distribution package list into a model using TCS and then transforming the injected model into an AM3 megamodel. For this part, a specific AM3 extension has been created.
  • Visualization part, consisting in extracting the content of the megamodel to a GraphML model and then generate the visualization for this graph.

An overview of this use case is presented in next figure:

Linux Package Dependencies Use Case

The main reason for using AM3 in this kind of use cases is that it allows managing them in a homogeneous way. With this approach we can use AM3 base features (e.g.: navigation between links), and also some specific features like visualization generation that can then be used for other use cases.

This use case is provided by INRIA AtlanMod and its development has been supported by the french IDM++ project (ANR-07-TLOG-IdM++) and by the IST European MODELPLEX project (MODELing solution for comPLEX software systems, FP6-IP 34081).

Debian Package List Discoverer

The aim of this discoverer is to allow the injection of a Debian based distribution packages lists into a model and then to an AM3 megamodel. An overview of this process in presented in the following figure:

Discovery and Transformation to AM3

Visualization Generation

The aim of this part is to allow the visualization of the package dependencies graph. So, we choose to project the contents of the megamodel into a GraphML file. Then, this file can be used for rendering by a tool like Prefuse.

To reach this aim, we use a generic transformation chain that can be used with any AM3 megamodel. This transformation chain allows the transformation of any megamodel containing entities and directed relationships into a graph. This process is shown in next figure:

Vizualisation Generation


The next figure show the result of the rendering of a megamodel containing dependencies between packages:

Sample Rendered Graph