Hello!
My name is José Carlos and I am doing research to graduate in Computer Science on PlantUML, more specifically on the Salt Wireframe, wanting to integrate every visual element generated by the Salt (for example a button, input field and so on ) with something similar to a java annotation, so this code of mine that I place above the specific element.
In this case, my job would be to add a functionality to Salt, adapting it to the software engineering concept of an Feature Model in a SPL (Software Product Line), in an SPL we define each element (feature), based on the relationships it has with other elements and we say whether that element, relative to the other, is optional, mandatory, and so on. More specifically, i want to tell in the Salt code what are the relationships between the elements.
More specifically these are the possible relationships in a Feature Model than I'm trying to make:
Relationships between a parent feature and its child features (or sub-features) are categorized as:
- Mandatory – child feature must be selected.
- Optional – child feature can be selected or not selected.
- Or – at least one of the sub-features must be selected.
- Alternative (xor) – exactly one of the sub-features must be selected.
In addition to the parental relationships between features, cross-tree constraints are allowed. The most common are:
- A requires B – The selection of A implies the selection of B.
- A excludes B – A and B cannot be part of the same product.
So I wanted each button, for example, to be able to say if this button is optional, mandatory and so on through a function that I do.The goal in the end make this code available to the community somehow, for now I'm thinking about a plugin.
I was trying to do this using the PlantUML preprocessor, but I didn't understand how to reference specific elements of the model, in the Salt code example below, I wanted the function to refer to the cancel button for example and I could put this "attribute " on that button.
@startsalt
{^"Login page" Login | "My name "
Password | "****"
CPF | "My number"
Address | "Where I live?"
!function $inc($value, $step=1)
!return $value + $step
!endfunction
[Cancel] | [ OK ] }
@endsalt
I was wondering if anyone has any ideas or tips on how to do this with a Salt UML Model. Other approaches for the problem are welcome too.
Thanks in advance for any ideas or feedback.