The first step to apply the proposed simulation approach is to build the system configuration and package models. In MDE terminology we need model injectors, apt to extract models from existing artifacts. Evoss uses a specic model injection architecture that is implemented by using the Eclipse Modeling Framework (EMF). As shown in the following figure this architecture has a layered structure. The most specialized layer, which is in charge of querying the concrete system configuration, is distribution-specific and needs to be re-targeted to each new distribution; the other two layers are distribution independent. The Mancoosi Model Management consists of Java code which provides the infrastructure necessary to manipulate models conforming to specifically conceived metamodel named Configuration and Package metamodels. The Mancoosi Injection Instractucture contains a set of Java classes devoted to gather specific aspects of Linux distributions, like the file system, packages, alternatives, etc. This layer is distribution independent and makes use of distribution-dependent injectors defined in the uppermost layer of the figure. The outcome of the system injection is a model that represents, in a homogeneous form, different aspects of a running system, such as installed packages, users and groups, mime type handlers, alternatives, implicit dependencies, etc.
A particular attention is required for the injection of packages since they have both static and dynamic parts. The outcome of package injection is shown in the following figure, where the distinction between static and dynamic package parts can be appreciated. The resulting model contains modeling elements encoding both the considered package and its scripts (as DSL statements).
For more information please refer to http://dx.doi.org/10.1016/j.scico.2010.11.001 or http://mancoosi-uda.googlecode.com/files/scp_draft.pdf