uml.README (3494B)
1 == UML-like class diagram == 2 3 === Usage exemple === 4 5 * uml-like: ./uml FILE | dot -Tpdf /tmp/FILE.pdf && mupdf /tmp/FILE.pdf 6 7 === syntax === 8 9 Lines start with the directive's name. 10 One directive per line. 11 Arguments and directives are separated by spaces and tabs. 12 Unknown directives are ignored. 13 Excess arguments are ignored. 14 15 List of directives: 16 17 * private 18 * public 19 * protected 20 * package 21 * class 22 * fun 23 * virtual 24 * abstract 25 * var 26 * inherit 27 * associate 28 * aggreg 29 * compose 30 * depends 31 * friend 32 * package 33 * endpackage 34 * class_font 35 * package_font 36 * link_font 37 38 ==== private ==== 39 40 New elements will have the "private" visibility. 41 No immediate effect. 42 No argument. 43 44 ==== public ==== 45 New elements will have the "public" visibility. 46 No immediate effect. 47 No argument. 48 49 ==== protected ==== 50 New elements will have the "protected" visibility. 51 No immediate effect. 52 No argument. 53 54 ==== package ==== 55 New elements will have the "package" visibility. 56 No immediate effect. 57 No argument. 58 59 ==== class ==== 60 Starts a new class. 61 Arg 1: class name. 62 63 ==== fun ==== 64 Adds a method to the current class. 65 If previous change was not a method (optionaly virtual or 66 abstract), draw a separation line before starting. 67 68 Arg 1: return type 69 Arg 2: function name 70 Arg 3 to N: (N - 2)th function parameter, type, attributes, 71 name, etc are separated by ":" instead of " ". 72 73 ==== virtual ==== 74 Adds a virtual method to the current class. 75 Otherwise identical to "fun". 76 77 ==== abstract ==== 78 Adds an abstract method to the current class. 79 Otherwise identical to "fun". 80 81 ==== var ==== 82 Adds a property to the current class. 83 If previous change was not a property, draw a separation 84 line before starting. 85 86 Arg 1: property type 87 Arg 2: property name 88 Arg 3: optional initialisation value. 89 90 ==== inherit ==== 91 Defines an inheritance relation. 92 Closes the current class. 93 94 Arg 1: sub-class 95 Arg 2: ancestor 96 97 ==== associate ==== 98 Defines an association relation. 99 Closes the current class. 100 101 Arg 1: "owner" class 102 Arg 2: target class 103 Arg 3: relation name 104 Arg 4: optional multiplicity. Either a single val, or a min:max range. 105 106 ==== aggreg ==== 107 Defines an aggregation relation. 108 Closes the current class. 109 110 Arg 1: "owner" class 111 Arg 2: target class 112 Arg 3: relation name 113 Arg 4: optional multiplicity. Either a single val, or a min:max range. 114 115 ==== compose ==== 116 Defines an composition relation. 117 Closes the current class. 118 119 Arg 1: "owner" class 120 Arg 2: target class 121 Arg 3: relation name 122 Arg 4: optional multiplicity. Either a single val, or a min:max range. 123 124 ==== depends ==== 125 Defines a dependency relation. 126 Closes the current class. 127 128 Arg 1: "owner" class 129 Arg 2: target class 130 131 ==== friend ==== 132 Defines a friendship relationt 133 Closes the current class. 134 135 Arg 1: "owner" class 136 Arg 2: target class 137 138 ==== package ==== 139 Closes the current class. 140 Starts a new package. 141 142 Arg 1: package name 143 144 ==== endpackage ==== 145 Closes the current class. 146 Closes the current package. 147 148 ==== splines ==== 149 Closes the current class. 150 Changes the edge style according to arg 1. 151 152 Arg 1: new edge style. Some possible values: true, false, 153 polyline, ortho, line. See dot(1) for all accepted values. 154 155 ==== class_font ==== 156 Closes the current class. 157 Set the font used for text inside classes. 158 159 Arg 2 to N: font name. Spaces will be merged. 160 161 ==== package_font ==== 162 Closes the current class. 163 Set the font used for package's names. 164 165 Arg 2 to N: font name. Spaces will be merged. 166 167 ==== link_font ==== 168 Closes the current class. 169 Set the font used for relation names. 170 171 Arg 2 to N: font name. Spaces will be merged.