Skip to content
This repository was archived by the owner on Jun 3, 2025. It is now read-only.

Analysis Annotations for created WebDFDs#20

Merged
01Parzival10 merged 33 commits intomainfrom
annotations
Oct 16, 2024
Merged

Analysis Annotations for created WebDFDs#20
01Parzival10 merged 33 commits intomainfrom
annotations

Conversation

@01Parzival10
Copy link
Contributor

Adding Annotations for created WebDFDs.

Currently there are 3 options:
Default: Analyze DFD and annotate the propagated Labels
Constraints: Analyze DFD, check for constraint violations and annotate Labels and violations
Custom TFG Finder: Same as Constraints but allows for handing over a custom finder

@01Parzival10
Copy link
Contributor Author

Requires the SimpleDFD PR in DataFlowAnalysis to be merged first

@01Parzival10 01Parzival10 added the enhancement New feature or request label Sep 11, 2024
@01Parzival10 01Parzival10 marked this pull request as ready for review September 17, 2024 11:52
@01Parzival10
Copy link
Contributor Author

Requires DataFlowAnalysis/DataFlowAnalysis#209 to be merged first

@01Parzival10
Copy link
Contributor Author

01Parzival10 commented Oct 2, 2024

@Nicolas-Boltz @uuqjz
Ready to merge.

@uuqjz your changes from fix-web-converter are in. But this also means multi flow into one input pin wont work until the delimiter is changed in the WebEditor. I'm currently working on that but not 100% sure whether I can do it

@01Parzival10
Copy link
Contributor Author

^^
I managed to do it: DataFlowAnalysis/WebEditor#46

@uuqjz
Copy link
Collaborator

uuqjz commented Oct 2, 2024

If you look at #193 we wanted to use a pipe as delimiter

@uuqjz
Copy link
Collaborator

uuqjz commented Oct 3, 2024

This PR lacks any testing regarding the new features.
As this commit changes how behavior is parsed and how flow names are dealt with, i really think we should do a complex test json now to validate correct conversion.

@01Parzival10
Copy link
Contributor Author

01Parzival10 commented Oct 6, 2024

I am currently working on the tests for the changes and ran into an issue that makes me question how much sense it makes to continue work on the converter without adjusting the WebEditor Assignment creation.

The behavior string "set TypeA.ValueA = a2d.TypeA.ValueA && b2d|c2d.TypeA.ValueA" is a valid string in the WebEditor. It describes sending out the ValueA label if and only if it arrives on both the a2d and b2d|c2d Input pins.
To create this behavior in the MetaModel one would have to create 3 Assignments.

  • One that sets the label to true should it arrive on one of the two pins.
  • And two that set the label to false should it arrive on only one pin but not the other.

With more complex behavior strings this gets even worse.

I suggest changing the webEditor behavior strings to something like:

  • Assignment({inputPins}, Term, {outLabels})
  • ForwardingAssignment({inputPins})
    short term and then add a creation wizard long term.

This would make MetaModel and WebEditor semantically equivalent too

@uuqjz
Copy link
Collaborator

uuqjz commented Oct 7, 2024

I suggest changing the webEditor behavior strings to something like:

* Assignment({inputPins}, Term, {outLabels})

* ForwardingAssignment({inputPins})
  short term and then add a creation wizard long term.

This would make MetaModel and WebEditor semantically equivalent too

We should discuss that in the next dfa meeting.

@01Parzival10
Copy link
Contributor Author

01Parzival10 commented Oct 9, 2024

  • Assignment({inputPins}, Term, {outLabels})

  • Forwarding({inputPins})

    These changes have now been implemented and the tests adjusted. I will add some tests for the annotation creation then
    it will be ready to merge.

@01Parzival10
Copy link
Contributor Author

@uuqjz @Nicolas-Boltz Tests for annotations have been added. Ready for review

@uuqjz
Copy link
Collaborator

uuqjz commented Oct 9, 2024

@uuqjz @Nicolas-Boltz Tests for annotations have been added. Ready for review

Does the new minimal.json contain every legal thing in the webeditor?
Eg. forwarding multiple flows from required and optional pins

So we can now, if the webconverter finally behaves as intended?

@uuqjz
Copy link
Collaborator

uuqjz commented Oct 11, 2024

Could you add some complexer terms that use labels to the minimal json?
The most complex one you use is TRUE || FALSE

@01Parzival10
Copy link
Contributor Author

Could you add some complexer terms that use labels to the minimal json?
The most complex one you use is TRUE || FALSE

Sure, but complex terms are already tested in the Behaviour Test.

@01Parzival10
Copy link
Contributor Author

Could you add some complexer terms that use labels to the minimal json?
The most complex one you use is TRUE || FALSE

Sure, but complex terms are already tested in the Behaviour Test.

Done @uuqjz

Copy link
Member

@Nicolas-Boltz Nicolas-Boltz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I really like that there is a lot more regarding tests.
Looking at everything, I think it looks good and can be merged (@01Parzival10)

@Nicolas-Boltz
Copy link
Member

@01Parzival10 Please resolve conflicts and merge

@01Parzival10 01Parzival10 merged commit 85a9144 into main Oct 16, 2024
@01Parzival10 01Parzival10 deleted the annotations branch October 16, 2024 12:47
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

WebEditor and Converter Pin behaviour WebEditor enhance default json

3 participants