Integrate Consistency Checker and AF3 Consistency Adapter into AF3
The current AF3 consistency adapter (https://git.fortiss.org/af3/af3-consistency-adapter) is already formatted as AF3 plugin, but occurs still as an external repository. It needs to be added to AF3 as actual plugin (to have it on the AF3 master) based on this guide: https://git.fortiss.org/af3/af3/-/wikis/Adding_a_new_plugin The central consistency checker (https://git.fortiss.org/af3/consistency) should also be added to the AF3 repositories - we have decided to put it into the kernel (but theoretically still below it, as it does not have any dependencies on anything from AF3 or the kernel!). Test procedure: 1. Make sure that you have pulled the 4362 branch for af3 as well as kernel. 2. Open AF3 and import/open this test AF3 model: [ConsistencyTesting.af3_23](/uploads/5b005ed1354ba3a7f4ce2d6e125a3661/ConsistencyTesting.af3_23) 3. In normal mode, you should not see anything special/different. 4. Go into the expert mode. 5. Test 1: Can you see the new context menu entry "Consistency Manager" when clicking on any model element inside the Model Navigator? 6. If yes, you can now test several test consistency rules that I have provided. 7. Test 2: Rule "Defined behavior of components": "A component should either have further sub components that describe its behavior or it needs to have an own behavior specification like a state automaton or code segment." --> Click on a component and execute the trigger check action of the consistency manager. You should see some terminal output in Eclipse and in the end you should get the feedback that two consistency rules were executed and no violations were found. Now, remove a behavior specification or the sub-component and repeat the check. You should get now an inconsistency. 8. Test 3: Rule "Components must have at least on port": "A component should either have at least on input port or one output port, because otherwise the component is useless for the overall behavior/logic." --> Click on another component and execute the trigger check action of the consistency manager. You should see some terminal output in Eclipse and in the end you should get the feedback that two consistency rules were executed and no violations were found. Now, remove all present ports of the component and repeat the check. You should get now an inconsistency. 9. Test 4: Rule "Cost sum requirement fulfillment": "If a cost sum requirement exists, it should be fulfilled by the existing platform." --> Click on the MaxCost requirement and execute the trigger check action of the consistency manager. You should see some terminal output in Eclipse and in the end you should get the feedback that one consistency rule was executed and no violations were found. Now, reduce the 700€ in the description to, e.g., 500€, or increase the hardware cost of some of the ECUs in the platform architecture, and repeat the check. You should get now an inconsistency. 10. Test 5: Rule "Tasks must have a component with the same name": "If a task exists than a component must exists that has the same name (without the prefix 'Task_')." --> Click on the task architecture and execute the trigger check action of the consistency manager. You should see some terminal output in Eclipse and in the end you should get the feedback that one consistency rule was executed and no violations were found. Now, add a new task manually or change the name of an existing task, and repeat the check. You should get now an inconsistency. 11. Test 6: Click on the whole project or, e.g, on the component architecture, and execute the check trigger. You should get the information that no consistency rule is defined for this model element (which is correct).
issue