AF3 issueshttps://git.fortiss.org/af3/af3/-/issues2021-04-26T09:41:57Zhttps://git.fortiss.org/af3/af3/-/issues/3958Migrate GlossaryEntry editor to FX or integrate in owerview2021-04-26T09:41:57ZAndreas BayhaMigrate GlossaryEntry editor to FX or integrate in owerviewThe editor for GlossaryEntries is still swt.
There are two options:
1.) Improve the overview editor to edit entries immediately in the
list
2.) Convert the entry editor
*(from redmine: issue id 3958, created on 2020-03-20)*The editor for GlossaryEntries is still swt.
There are two options:
1.) Improve the overview editor to edit entries immediately in the
list
2.) Convert the entry editor
*(from redmine: issue id 3958, created on 2020-03-20)*AF3 2.19 ReleaseJohannes EderJohannes Ederhttps://git.fortiss.org/af3/af3/-/issues/4357Include Java Binaries in the Nightly Build2024-02-12T14:36:17ZTiziano MunaroInclude Java Binaries in the Nightly BuildThe AF3 build shall be "portable", i.e., no longer require users to install the correct Java version on their system.
## Implementation
It might be sufficient to unzip the correct Java binaries in a `jre/` folder in the AF3 root direct...The AF3 build shall be "portable", i.e., no longer require users to install the correct Java version on their system.
## Implementation
It might be sufficient to unzip the correct Java binaries in a `jre/` folder in the AF3 root directory. This is where the binaries are looked for first. No other file changes should be necessary.
## Deployment
The bundling shall be done in the `deploy` step. Here, the ZIP files built by Maven shall be unzipped, modified, and zipped again.
## Licensing
The classpath exception of Java's GNU GPL licence should allow bundling.
## Testing
1. Run the "Bundled Build" pipeline (see https://git.fortiss.org/af3/maven-releng/-/pipeline_schedules). This pipeline is set up to build the 4357 branch (this must be changed to `master` once the branch is merged) with the `JRE_TYPE` variable set accordingly. As it is "inactive", it only runs when executed manually: ![grafik](/uploads/2184383697f943a939aa8944195ab3fe/grafik.png)
2. Download the pipeline's artifacts. The resulting build shall be tested on Windows and Linux systems with (1) no Java installation, (2) an incompatible Java installation, and (3) the correct Java installation.AF3 2.25 - New Feature HackathonTiziano MunaroTiziano Munarohttps://git.fortiss.org/af3/af3/-/issues/4353Update the routes of a platform architecture on creation of the DSE model sna...2024-01-11T12:16:06ZTiziano MunaroUpdate the routes of a platform architecture on creation of the DSE model snapshotAs of now, when creating a DSE model snapshot the routes of a platform architecture are updated only if there are none. If the selected platform architecture already contains routes, they are not modified. At the same time, the routes of...As of now, when creating a DSE model snapshot the routes of a platform architecture are updated only if there are none. If the selected platform architecture already contains routes, they are not modified. At the same time, the routes of a platform architecture are not automatically updated when it has been changed (e.g., by removing a bus).
This has led to incorrect results when performing bus bandwidth optimizations.
### How to Reproduce & Test
1. Import this model: [training_assignment3.af3_23](/uploads/2e17a37e317ad6d4b3b9f02bc610cd04/training_assignment3.af3_23). It contains a platform architecture with an outdated set of routes, created when it still contained two buses.
2. Perform a DSE with both memory constraints as well as a bus bandwidth optimization objective.
3. Notice that the optimal bus bandwidth of the only bus available is 0.0 even though the tasks are distributed across multiple ECUs. This is because all signals are allocated to routes using the no longer existing bus.
**NOTE 1:** It is likely that this test does not work with other models out of the box as the look-up mechanism for message sizes requires the existence of a memory allocation table. In apparent absence of a respective editor, such a table was instantiated in the attached model by setting WCETs in the task architectures WCET table. The handling of memory allocation tables will be discussed and investigate in another issue.
**NOTE 2:** The message size lookup mechanism also works only for models where the data types referenced in the architectures are still correctly linked to the respective entries in the data dictionary. Due to the bug https://git.fortiss.org/af3/af3/-/issues/4208, this is not the case for many existing models. In the attached model, the references were manually repaired.AF3 2.24 - ReleaseTiziano MunaroTiziano Munarohttps://git.fortiss.org/af3/af3/-/issues/4352Categories in the Model Elements Navigator shall be collapsed by default2024-01-11T12:15:54ZTiziano MunaroCategories in the Model Elements Navigator shall be collapsed by defaultTo avoid clutter (particularly in the the platform architecture), categories in the Model Elements Navigator shall be collapsed by default.
Distinction per viewpoint, i.e. for some it makes sense that they are expanded by default (LA, ....To avoid clutter (particularly in the the platform architecture), categories in the Model Elements Navigator shall be collapsed by default.
Distinction per viewpoint, i.e. for some it makes sense that they are expanded by default (LA, ...?)
![grafik](/uploads/6c3ab31eb2f25c8faadcfbf3c2ccca52/grafik.png)AF3 2.24 - ReleaseSebastian BergemannSebastian Bergemannhttps://git.fortiss.org/af3/af3/-/issues/4351Investigate the crash of the DSE visualization2024-01-11T08:38:11ZTiziano MunaroInvestigate the crash of the DSE visualization## Steps to Reproduce:
1. Import the following AF3 model: [training_assignment3.af3_23](/uploads/d4ad2c2aa5e27ab77366c7aff60cd9fe/training_assignment3.af3_23)
2. Switch to the DSE view and import the predefined DSE.
3. Run a deployment ...## Steps to Reproduce:
1. Import the following AF3 model: [training_assignment3.af3_23](/uploads/d4ad2c2aa5e27ab77366c7aff60cd9fe/training_assignment3.af3_23)
2. Switch to the DSE view and import the predefined DSE.
3. Run a deployment synthesis with all constraints and objectives defined.
4. Once completed, switch to the DSE visualization.
## Testing
### Notes:
It is not sufficient to just compare the `IExpressions` of all `IExplorationObjectives` as `ArithmeticProperityLiterals` are only evaluated once transformed to SMT.
### Steps:
1. Import the following AF3 model: [4351.af3_23](/uploads/a82c673aec5907a55f306953e2e4d469/4351.af3_23)
2. Switch to the DSE view and import the predefined DSE.
3. Notice the four objective rule sets: "OK" contains no duplicates, the others do.
4. Try to run explorations with each of the rule sets.AF3 2.24 - ReleaseTiziano MunaroTiziano Munarohttps://git.fortiss.org/af3/af3/-/issues/4349PlatformArchitecture editor freezes2023-12-05T15:30:39ZAndreas BayhaPlatformArchitecture editor freezesThe Platform Architecture editor freezes for several secends after adding platform elements.
Steps to reproduce:
- Add an element via drag and drop
- Select any element in the platform editor
OR:
- Add an element via the context menu
O...The Platform Architecture editor freezes for several secends after adding platform elements.
Steps to reproduce:
- Add an element via drag and drop
- Select any element in the platform editor
OR:
- Add an element via the context menu
Observe: The UI freezes for some time and the model elements view has multiple duplicated sub-categories for raspberry.
Testing instructions: Try to reproduce again and observe no issues as describes above.MbSE-TrainingAndreas BayhaAndreas Bayhahttps://git.fortiss.org/af3/af3/-/issues/4348Variability: Constraints are not checked in variant configuration dialog2023-11-24T17:55:33ZAndreas BayhaVariability: Constraints are not checked in variant configuration dialogAF3 2.24 - ReleaseAndreas BayhaAndreas Bayhahttps://git.fortiss.org/af3/af3/-/issues/4346Remove references to DataDictionary before storing an element in a library2023-11-24T17:23:39ZAndreas BayhaRemove references to DataDictionary before storing an element in a libraryTesting instructions:
1. Import the standard ACC example.
2. Add the (sub-)component AdaptiveCruiseControl/AccelerationControl to a reuse library.
3. Create a new AF3 project with a component architecture.
4. Add the AccelerationControl ...Testing instructions:
1. Import the standard ACC example.
2. Add the (sub-)component AdaptiveCruiseControl/AccelerationControl to a reuse library.
3. Create a new AF3 project with a component architecture.
4. Add the AccelerationControl from the library to this component architecture.
5. Save
6. Open the .af3_23 file in a text editor.
7. Observe: The type _AccMode _of InputPort _AccMode_ has a type without a reference to any definition.AF3 2.24 - Releasehttps://git.fortiss.org/af3/af3/-/issues/4345Adding new platform architecture elements for to be used within the reuse lib...2023-11-21T10:41:45ZKonstantin BlaschkeAdding new platform architecture elements for to be used within the reuse libraryFor the MbSE training we would need the reuse library functionality to include Nodes with specific annotations. The user then does not have to put in all the annotations themselves in the training but can just drag and drop elements that...For the MbSE training we would need the reuse library functionality to include Nodes with specific annotations. The user then does not have to put in all the annotations themselves in the training but can just drag and drop elements that already contain sufficient semantics to produce a pareto front within a suitable DSE.AF3 2.24 - ReleaseSebastian BergemannSebastian Bergemannhttps://git.fortiss.org/af3/af3/-/issues/4344Remove PresenceConditions before storing an element in a library2023-11-21T10:41:30ZAndreas BayhaRemove PresenceConditions before storing an element in a libraryWhen reusing any kind of model element, all possible presence conditions should be removed since they generally do not make sense in other projects.
To enable this for components, states and requirements (i.e. the elements which can be ...When reusing any kind of model element, all possible presence conditions should be removed since they generally do not make sense in other projects.
To enable this for components, states and requirements (i.e. the elements which can be optional), the reuse provider should provide a mechanism to apply any kind of preprocessing to the copy of the model element before adding it to the library.
Already a base implementation could remove all OptionalVariationPointSpecifications from the reuse element.AF3 2.24 - ReleaseSebastian BergemannSebastian Bergemannhttps://git.fortiss.org/af3/af3/-/issues/4343Minor technical issues in AF3 help2023-11-02T13:38:15ZAndreas BayhaMinor technical issues in AF3 helpThere are minor technical issues in the AF3 help:
- [x] No header on SysML exporter page
- [x] ToC SysML exporter missing
- [x] ToC variability outdatedThere are minor technical issues in the AF3 help:
- [x] No header on SysML exporter page
- [x] ToC SysML exporter missing
- [x] ToC variability outdatedAF3 2.24 - ReleaseAndreas BayhaAndreas Bayhahttps://git.fortiss.org/af3/af3/-/issues/4342Update help pages for variability2023-10-25T11:53:17ZAndreas BayhaUpdate help pages for variabilityThe help pages on variability are partly outdated since product-line analysis was added.The help pages on variability are partly outdated since product-line analysis was added.AF3 2.24 - ReleaseAndreas BayhaAndreas Bayhahttps://git.fortiss.org/af3/af3/-/issues/4341Change samplingTime Parameter used for FMU Generation into uppercase version ...2023-10-24T15:17:48ZSebastian BergemannChange samplingTime Parameter used for FMU Generation into uppercase version to handle the new naming convention warning for itThe FMU Generation in AF3 needs a value for the sampling time. Currently, it looks for a function in the data dictionary of an AF3 model with the name "samplingTime". However, such functions will now always trigger a naming warning, beca...The FMU Generation in AF3 needs a value for the sampling time. Currently, it looks for a function in the data dictionary of an AF3 model with the name "samplingTime". However, such functions will now always trigger a naming warning, because it is a constant and should therefore be uppercase.
Goal: it should be possible to have a function called "SAMPLING_TIME" in the data dictionary that is used from now on instead of the prior "samplingTime".
Testing:
1. Create AF3 Project
2. Create Data Dictionary
3. Create Component Architecture with one Component with a State Automaton (everything standard/dummy)
4. Generate Task Architecture and Allocations from this Component
5. Generate FMUs for the Component->Task Allocation
6. Observe: Since there is now SAMPLING_TIME function yet, it tells you that in a wizard (and tells you the right name: SAMPLING_TIME() and not anymore samplingTime())
7. Now go into the Data Dictionary and create a SAMPLING_TIME function with a constant return
8. Redo step 5 and observe that now it detects the new (correctly named) function
9. Optional: do it with samplingTime() instead of SAMPLING_TIME() and observe that it does not work anymoreAF3 2.24 - ReleaseSebastian BergemannSebastian Bergemannhttps://git.fortiss.org/af3/af3/-/issues/4340Function / Constant Naming Convention Code Checker: avoid erroneous warnings2023-10-24T13:10:07ZSimon BarnerFunction / Constant Naming Convention Code Checker: avoid erroneous warningsFunction / Constant Naming Convention Code Checker creates warnings also for correct names.
E.g., in the ACC example from the file menu, the functions min, max, abs have perfectly fine names, but appear in the list (with a suspicius emp...Function / Constant Naming Convention Code Checker creates warnings also for correct names.
E.g., in the ACC example from the file menu, the functions min, max, abs have perfectly fine names, but appear in the list (with a suspicius empty reason why the naming convention is wrong)
![grafik](/uploads/f1219311a49783a8ccff2c92e2bfcd36/grafik.png)AF3 2.24 - ReleaseSimon BarnerSimon Barnerhttps://git.fortiss.org/af3/af3/-/issues/4339Crash in MarkerService2023-10-24T11:56:21ZSimon BarnerCrash in MarkerService**Problem**: Presumably https://git.fortiss.org/af3/af3/-/issues/4240 introduced the following crash in the `MarkerService`.
`!STACK 0
java.util.ConcurrentModificationException
at java.base/java.util.ArrayList$Itr.checkForComodificati...**Problem**: Presumably https://git.fortiss.org/af3/af3/-/issues/4240 introduced the following crash in the `MarkerService`.
`!STACK 0
java.util.ConcurrentModificationException
at java.base/java.util.ArrayList$Itr.checkForComodification(ArrayList.java:1043)
at java.base/java.util.ArrayList$Itr.next(ArrayList.java:997)
at org.fortiss.tooling.kernel.ui.internal.MarkerService$CacheEntry$1.runInUIThread(MarkerService.java:268)
at org.eclipse.ui.progress.UIJob.lambda$0(UIJob.java:95)
at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:40)
at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:185)
at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3963)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3590)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1160)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1049)
at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:155)
at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:660)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:559)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:154)
at org.fortiss.af3.rcp.application.AF3Application.start(AF3Application.java:49)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:203)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:137)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:107)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:401)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:255)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:657)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:594)
at org.eclipse.equinox.launcher.Main.run(Main.java:1465)
at org.eclipse.equinox.launcher.Main.main(Main.java:1438)`
**Steps-to-repeat**:
- Not 100% reproducible since the concurrent modification exception within the MarkerService depends on the timing behavior (e.g., order in which plugins are started, time that is required for the constraint checks, ...)
- The stack trace was collected when starting AutoFOCUS in a workspace with a number of models.
**Suggested fix**:
Create copies of lists before iterating over them.AF3 2.24 - ReleaseSimon BarnerSimon Barnerhttps://git.fortiss.org/af3/af3/-/issues/4338Release 2.242024-01-11T12:43:41ZAndreas BayhaRelease 2.24Prepare and build release 2.24.Prepare and build release 2.24.AF3 2.24 - ReleaseAndreas BayhaAndreas Bayhahttps://git.fortiss.org/af3/af3/-/issues/4337Fix duplicate error in data dictionary when two separate enumerations have to...2024-01-10T11:01:32ZSebastian BergemannFix duplicate error in data dictionary when two separate enumerations have to same enumeration member nameAn error occurs when you add a second enumeration (with different name) to your data dictionary and this enumeration has a member that is called identical like a member of another enumeration.
This should not be recognized as an error. ...An error occurs when you add a second enumeration (with different name) to your data dictionary and this enumeration has a member that is called identical like a member of another enumeration.
This should not be recognized as an error. A duplicate error should only appear of the members within the same enumeration have identical names, but not across enumerations (as long as the enumerations have different names).
![image](/uploads/46240f5fed74c4265e04636a10420423/image.png)
Test:
1. Create an AF3 model with a data dictionary
2. Add two enumerations. You should have now MyEnum{First, Second} and MyEnum{First, Second}.
3. There should only be one error that complains about the identical enumeration name of "MyEnum", but no other error (like about duplicated "First" or "Second").
4. Optional: if you change one enumeration to MyEnum2{First, Second}, there should be none error at all.Sebastian BergemannSebastian Bergemannhttps://git.fortiss.org/af3/af3/-/issues/4330VariantConfigurationDialog: Constraints are not checked correctly2024-02-09T13:06:18ZAndreas BayhaVariantConfigurationDialog: Constraints are not checked correctlyAF3 2.25 - Feature FreezeAndreas BayhaAndreas Bayhahttps://git.fortiss.org/af3/af3/-/issues/4329Bug: Property section for FeatureModel is not correctly initialized2023-10-11T13:37:57ZAndreas BayhaBug: Property section for FeatureModel is not correctly initializedFor FeatureModels, the HasPresenceConditionPropertySection die not correctly display the _optional_ tag.For FeatureModels, the HasPresenceConditionPropertySection die not correctly display the _optional_ tag.AF3 2.24 - Feature FreezeAndreas BayhaAndreas Bayhahttps://git.fortiss.org/af3/af3/-/issues/4328Product-line Analysis: Remove deprecated old analysis2023-10-19T08:30:45ZAndreas BayhaProduct-line Analysis: Remove deprecated old analysisAF3 2.24 - Feature FreezeAndreas BayhaAndreas Bayha