The VDM-PlantUML plugin is integrated into the VDM-VSCode extension, which provides VDM language support for Visual Studio Code (VS Code). The plugin enables bi-directional translations between VDM models and the textually based diagram tool, PlantUML. The object-oriented (OO) structure of the VDM models are represented in UML as PlantUML class diagrams.
For information about using the plugin on VS Code see the VDM-VSCode wiki, as well as the wiki for this plugin.
Component | VDM | PlantUML |
---|---|---|
Class Declarations | Class A ... End A | class A{ ... } |
Instance Variable Definitions | instance variables var1 : Type; |
var1 : Type |
Value Definitions | values val1 : Type = value1 |
val1 : Type «value» |
Type Definitions | types type1 = Type |
type1 : Type «type» |
Operation Definitions | operations op1 : Type ==> Type; op1() == ( ... ); |
op1() : Type |
Function Definitions | functions func1 : Type ==> Type; func1() == ( ... ); |
func1() : Type «function» |
Associations | class A ... instance variables asoc1 : B; |
A --> B : asoc1 |
Associative set | asoc1 : set of B | A --> "0..*" B : asoc1 |
Associative set1 | asoc1 : set1 of B | A --> "1..*" B : asoc1 |
Associative seq | asoc1 : seq of B | A --> "(0..*)" B : asoc1 |
Associative seq1 | asoc1 : seq1 of B | A --> "(1..*)" B : asoc1 |
Associative map | asoc1 : map Type to B; | A "[Type]" --> B : asoc1 |
Associative inmap | asoc1 : inmap Type to B; | A "[(Type)]" --> B : asoc1 |
Static Keyword (not implemented) | static member1 ... | {static} : member1 |
Visibility | private member1 protected member2 public member3 |
- member1 # member2 + member3 |
In Keyword | operations op1 : type1 * type2 ==> Type; op1(in t1: type1, in t2: type2) == ( ... ); |
op1(in t1: type1, in t2: type2) : Type |