Skip to main content
Jump to: navigation, search

AM3/Use Cases/PetStore Navigability

< AM3
Revision as of 09:52, 17 November 2010 by (Talk | contribs) (First full version of the page)

< To: MDT
< To: MoDisco

This AM3 use case titled Pet Store Navigability has been implemented by Guillaume Doux and published in May 2009.


AM3, Global Model Management, Megamodeling, DSL, PetStore, Navigability


This complete use case presents a concrete use of the generic and extensible inter-model navigability facilities offered by AM3. It shows how a snapshot taken during a software development process can be represented by a megamodel and how global model management can be used to manage and navigate the different development artifacts. The sample application considered in this use case is the standard PetStore online application. The different models and metamodels available from this use case have been developed to figure out the situation at a given time within the software development process.

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).

Considering inter-model navigabiliy, two kinds of navigation are necessary: between models and between model elements. The next figure provides examples of the two underlying kinds of link.

AM3UseCase-PetStore Navigability-ModelLinkOverview.png Navigation Between Software Development Models

The model-level links (normal lines) are stored within the megamodel and are directly navigable.

The model element-level links (dotted lines) are considered as a refinement of the model-level links and are stored in separate weaving models. A different weaving model is required for detailing each model-level link. The navigation of the model element-level links is realized thanks to the combined use of the megamodel and the corresponding weaving models.

The next figures provide two screenshots showing how AM3 is actually used in order to navigate at both model-level and model element-level.

AM3UseCase-PetStore Navigability-ModelLevelNavigationView.png Model-level Navigation View

AM3UseCase-PetStore Navigability-ModelElementLevelNavigationView.png Model element-level Navigation View



Back to the top