Thank you for your interest in ADOxx. There are more than one solution to realize your SWOT scenario. Through our observations of your request, the following two approaches should give you an initial impression about how you can develop your own modelling language for the SWOT scenario. Of course you can adapt and modify one of these approaches as proposals to your requirements and needs.
1)
The above modelling language design of the first approach consist of one abstract, five concrete classes, and 3 relation classes that has to be created additionally to the predefined ADOxx metamodel.
This Approach allows you to have restrictions for the relation classes. E.g., ‘Relation a’ can only connect instances of class Strength with instances of Opportunities, ‘Relation b’ can only connect instances of class Weakness instances of Opportunities, a.s.o.
You have also to consider that these relations (‘Relation a’, ’Relation b’, ’Relation c’) have to have a meaning in the naming. E.g. ‘has Opportunity’.
The class ‘Category’ is inherited from the abstract class __D_aggregation__ and act as a grouping class for the different _SWOT_Elements_ classes.
2)
The second approach considers only one ‘SWOT element’ where you can define a type attribute of the SWOT element. This attribute is of type ‘ENUMERATION’ with the EnumerationDomain; Stengths@Weaknesses@Opportunities@Threats.
If you define relation classes from ‘SWAT Element’ to ‘SWAT Element’ you do not have any restrictions to these relations. I.e. you can connect ‘SWAT Element’ of any type with ‘SWAT Element’ of any type.
The category type is defined like in approach 1.
For both approaches you have to define in the library attribute ‘Modi’ of the Dynamic library a MODELTYPE, where you have to include all the classes and the relation classes. You can find the documentation at the following link:
http://www.adoxx.org/live/model-types The following figure, which can be realized with both approaches, shows the example that you have sent us.
Concerning to your questions:
- if I should make eg a class Strengths and a class Object_Strengths (which will be sub-class of Strengths)?
o The above defined class are types of instances in the development toolkit. And the Instances are objects of type e.g. “Strength” in the modelling toolkit.
- How can I make the category to be resizable when I add more objects?
o You can define in the GRAPHREP definition of the class ‘Category’ that it can be symmetrically or asymmetrically.
You can find the GRAPHREP documentation and the Syntax at the following link:
http://www.adoxx.org/live/adoxx-notation-language-graphrep - Can I create one class (in development toolkit) for all the objects (Stengths, Weaknesses, Opportunities, Threats)?
o See approach 2.
- If yes, how can i realise the restrictions?
o You can work with mechanisms and algorithms. You can implement restrictions with AdoScript, which are triggered for example after a certain event (e.g. ‘AfterCreateModelingConnector’).
You can find the AdoScript documentation at the following link:
http://www.adoxx.org/live/adoscript-documentation