This project is a template for the methodologists who are creating a V-SUM.
The Methodologist Template can be executed using the Maven build system. The project comes with a maven wrapper, so you can run it without installing Maven. To build the project you can run the following command:
./mvnw clean verify
Verify that all tests are passing. The tests are located in the vsum
folder.
Now you can start to modify the project to your needs. Or jump to the Tutorial section to get a quick start. First we will explain what tests are run and what they are testing.
The tests test the vsum and its reactions.
The goal is to ensure that the reactions are keeping the model consistent.
Consider the following example taken from the VSUMExampleTest.java
file:
@Test
void systemInsertionAndPropagationTest(@TempDir Path tempDir) {
VirtualModel vsum = createDefaultVirtualModel(tempDir);
addSystem(vsum, tempDir);
// assert that the directly added System is present
Assertions.assertEquals(1, getDefaultView(vsum, List.of(System.class)).getRootObjects().size());
// as well as the Root that should be created by the Reactions, see templateReactions.reactions#14
Assertions.assertEquals(1, getDefaultView(vsum, List.of(Root.class)).getRootObjects().size());
}
In this testcase a system is added to the vsum. The test checks that the system is present in the view and that a root object is created by the reaction. The reaction is defined in the consistency
folder.
To dive into the project, we recommend to follow the Tutorial that is provided in this repository. The tutorial will guide you through the process of creating a V-SUM, adding systems, and defining reactions. It will also explain how to use the provided tools and features effectively.
The model
folder contains the meta-model in the ecore format. Note that each ecore file is accompanied by a genmodel. The genmodel is used to generate the code. If you update the ecore model, you need to update the genmodel. You can easily edit ecore models with the Eclipse Modeling Framework (EMF) in Eclipse. There you can also automatically update the genmodel. For more information on how to do that please refer to this Tutorial by Lars Vogel on EMF and ecore.
This folder contains the consistency specifications, like reactions.
This folder contains the definition of the view types. These are necessary to create views of the vsum.
This folder contains the VSUM
Details about the build process and configurations can be found in the readmes of the relevant projects.