AM3/Use Cases/Linux Package Dependencies
< 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:
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:
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:
The next figure show the result of the rendering of a megamodel containing dependencies between packages:
- Use Case - Linux Package Dependencies - Description: General description of the use case, its objectives, its architecture and overall process, the different metamodels and models used, etc.
- Use Case - Linux Package Dependencies - Installation & Execution Guide: How to install and execute the use case projects.
- First complete version of the Linux Package Dependencies use case. Note that all the sources contained in the archive are also available from the AM3 SVN: you must install the org.eclipse.gmt.am3.platform.extension.am3navigability plug-in for this use case to work properly.