Changes for page C2DF
Last modified by Richard Kreissig on 2023/09/14 10:08
Summary
-
Page properties (1 modified, 0 added, 0 removed)
-
Objects (1 modified, 0 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -17,10 +17,80 @@ 17 17 18 18 To work with C2DF you must be passed as the first source and a destination directory as an argument. C2DF generates then in the target directory for each annotated source file from the source directory or a subdirectory thereof a //.KAOT//-file. Also, a subdirectory called //xml// will be created in the target directory. This have to be deleted. 19 19 20 -=== (% lang="en" class="short_text hps alt-edited" %)General description(% class="short_text" lang="en" %) (% lang="en" class="short_text hps" %)of annotations(% class="short_text" lang="en" %) 20 +=== (% lang="en" class="short_text hps alt-edited" %)General description(% class="short_text" lang="en" %) (% lang="en" class="short_text hps" %)of annotations(% class="short_text" lang="en" %):(%%) === 21 21 22 22 (% class="short_text" lang="en" %) (%%)To declare annotations, you need to put in a C-comment before the annotated object. This comment will be initiated by ///*// and completed with //*///. Before the start of each content must be written the keyword //@kaom//. Then follow the individual contents. 23 23 24 +IDs must consist only of a particular character set. These are all signs of the Latin alphabet in uppercase and lowercase letters (//a-z//,//A-Z//), as well as Hindu-Arabic numerals in European notation(//0-9//). In addition, spaces and underscores are allowed. Other characters are replaced internally by underscores //_//. This also applies to the diacritical marks //ä,ö,ü// , and the ligature //ß//. Similarly,it is not allowed to write the Keywords //input:, output~://,// link~://, //content~:// and //toplevel~:// in IDs. According to the ASCII are the characters 32, 48-57, 65-90, 95 and 97-122 allowed in ids. 25 + 26 +Labels can hold all characters, except quotation marks, commas, semicolons, at sign, asterisk with a backslash and backslashes with a asterisk. 27 + 28 +The object names must be identical with the object names in the source code. 29 + 30 +There is no check if IDs are used or defined. 31 + 32 +{{code title="example of an full annotation"}} 33 +/*! @kaom 34 +input: ID_1 "label", ID_2 "label", ... ; 35 +output: ID_1 "label", ID_2 "label", ... ; 36 +link: source -> context.target, context.source -> context.target, source -> target, ... ; 37 +content: function_1:ID "label", function_2:ID "label", ... ; 38 +toplevel: ID "label"; 39 +*/ 40 +{{/code}} 41 + 42 +=== (% lang="en" class="short_text hps" %)Specification(% class="short_text" lang="en" %) (% lang="en" class="short_text hps" %)of inputs(% class="short_text" lang="en" %):(%%) === 43 + 44 +The specification of the inputs of an actor must be initiated by the keyword //input~://. Then follows the list of inputs. Each entry must have a unique ID in the actor. Optional behind the ID can be any label in quotation marks. Other entries are separated with commas. The list of all inputs must be terminated with a semicolon. 45 + 46 +{{code title="example for specifying inputs"}} 47 +input: ID_1 "label", ID_2 "label", ... ; 48 +{{/code}} 49 + 50 +=== (% lang="en" class="short_text hps" %)Specification(% class="short_text" lang="en" %) (% lang="en" class="short_text hps" %)of outputs(% class="short_text" lang="en" %):(%%) === 51 + 52 +The specification of the (% lang="en" class="short_text hps" %)outputs(% class="short_text" lang="en" %) (%%) of an actor must be initiated by the keyword //output~://. Then follows the list of outputs. Each entry must have a unique ID in the actor. Optional behind the ID can be any label in quotation marks. Other entries are separated with commas. The list of all outputs must be terminated with a semicolon. 53 + 54 +{{code title="example for specifying outputs"}} 55 +output: ID_1 "label", ID_2 "label", ... ; 56 +{{/code}} 57 + 58 +=== (% lang="en" class="short_text hps" %)Specification(% class="short_text" lang="en" %) (% lang="en" class="short_text hps" %)of (% class="short_text" lang="en" %)data flows:(%%) === 59 + 60 +(% lang="en" class="short_text hps" %)The specification of the(% class="short_text" lang="en" %) (% lang="en" class="short_text hps" %)data(% class="short_text" lang="en" %) (% lang="en" class="short_text hps" %)flows of an(% class="short_text" lang="en" %) (% lang="en" class="short_text hps" %)actor must be(% class="short_text" lang="en" %) (% lang="en" class="short_text hps" %)initiated by the keyword(% class="short_text" lang="en" %) (% lang="en" class="short_text hps" %)//link~://.(% class="short_text" lang="en" %) (% lang="en" class="short_text hps" %) Then follows the list of the(% class="short_text" lang="en" %) (% lang="en" class="short_text hps" %)data flows.(% class="short_text" lang="en" %) (% lang="en" class="short_text hps" %) (%%) For each entry must be the ID of the source and the ID of the target are given. Source and destination are separated by a right-leaning arrow indicating the direction of data flow. If source or destination are defined in a different actor than the data flow, then the ID of the actor of the source or destination must be given. The ID of the actor is placed directly in front of the ID of the source or target, separated by a dot. Actors, in which source and destination are defined, may not differ by more than one hierarchical level. Other entries are separated with commas. The list of all data flows must be terminated with a semicolon. 61 + 62 +{{code title="example for specifying data flows"}} 63 +link: source -> context.target, context.source -> context.target, source -> target, ... ; 64 +{{/code}} 65 + 66 +=== (% lang="en" class="short_text hps" %)Specification(% class="short_text" lang="en" %) (% lang="en" class="short_text hps" %)of (% class="short_text" lang="en" %)included actors:(%%) === 67 + 68 +(% lang="en" class="short_text hps short_text hps" %)The specification of the(% class="short_text hps short_text" lang="en" %) (% lang="en" class="short_text hps short_text hps" %)included actors of an(% class="short_text hps short_text" lang="en" %) (% lang="en" class="short_text hps short_text hps" %)actor must be(% class="short_text hps short_text" lang="en" %) (% lang="en" class="short_text hps short_text hps" %)initiated by the keyword(% class="short_text hps short_text" lang="en" %) (% lang="en" class="short_text hps short_text hps" %)//content~://.(% class="short_text hps short_text" lang="en" %) (% lang="en" class="short_text hps short_text hps" %) Then follows the list of the(% class="short_text hps short_text" lang="en" %) (% lang="en" class="short_text hps short_text hps" %)included actors. Each entry must be specified with the function name in the source code. Followed by a unique ID in the actor, which is separated from the function name with a colon. Optional behind the ID can be any label in quotation marks. Other entries are separated with commas. The list of all(% class="short_text hps short_text hps short_text hps short_text" lang="en" %) (% lang="en" class="short_text hps short_text hps short_text hps short_text hps" %)included actors(% lang="en" class="short_text hps short_text hps" %) must be terminated with a semicolon. 69 + 70 +{{code title="example for specifying included actors"}} 71 +content: function_1:ID "label", function_2:ID "label", ... ; 72 +{{/code}} 73 + 74 +(% class="almost_half_cell" %) 75 +((( 76 +=== (% lang="en" class="short_text hps" %)Specifying(% class="short_text" lang="en" %) (% lang="en" class="short_text hps" %)top-level(% class="short_text" lang="en" %) (% lang="en" class="short_text hps" %)actors(% class="short_text" lang="en" %):(%%) === 77 + 78 +The specification of the top-level actors of a data flow diagram must be initiated by the keyword //toplevel~://. The specification must be placed in the annotation of the represented function. The entry consists of an unique ID in the actor. Optional behind the ID can be any label in quotation marks. The entry must be terminated with a semicolon. 79 + 80 +{{code title="example for specifying top-level actors"}} 81 +toplevel:ID "label"; 82 +{{/code}} 83 + 84 +=== (% lang="en" class="short_text hps" %)Special case(%%): === 85 + 86 +It is possible to force data flows in contrary to the general specifications . This is particularly the case when there are multiple top-level actors. The specification of data flows between these actors is set to the specifications of other data flows. For the specification, all predecessors of the actor and the actor itself, which define the source and target, must be specified by IDs. For the specification the path to the source and to the destination must be specified. Both are separated by a right-leaning arrow. A path consists of the ID of the source (or destination) and the ID of the actor, in which it is defined, and the IDs of all textual comprehensive actors. The ID of the defining actors is placed in front of the ID of the source (or destination) and separated by a colon. The IDs of the textual comprehensive actors, are arranged in descending order, placed in front of the ID of the defining actor. The IDs of all actors in the path are separated by underscores another. Source and destination can differ in more than one hierarchical level. All characters that are replaced with underscores in an ID must also be replaced with underscores in the specifying. 87 + 88 +{{code title="example for specifying a special data flow"}} 89 +link: source -> ID0_ID1_ID2_..._ID:target, ... ; 90 +{{/code}} 91 + 24 24 25 25 26 -IDs must consist only of a particular character set. These are all signs of the Latin alphabet in uppercase and lowercase letters (//a-z//,//A-Z//), as well as Hindu-Arabic numerals in European notation(//0-9//). 94 +(% class="short_text" lang="en" %) 95 + 96 +)))
- Confluence.Code.ConfluencePageClass[0]
-
- Id
-
... ... @@ -1,1 +1,1 @@ 1 -88 52101 +1998867 - URL
-
... ... @@ -1,1 +1,1 @@ 1 -https://rtsys.informatik.uni-kiel.de/confluence//wiki/spaces/KIELER/pages/88 5210/C2DF1 +https://rtsys.informatik.uni-kiel.de/confluence//wiki/spaces/KIELER/pages/1998867/C2DF