set diag [CAD new ApplicationUI "Messages" "Analysis" "Analysis" "VB_Prototype" "1" "" 1]
set node1 [$diag addNode cad_class 1768.0 1984.0 120.0 33.3333]
$node1 setLabel "name" "CancelButton"
$node1 setProp "is_folded" "1"
$node1 setScope "name" "cl" "scopePhase"
$node1 setProp "freeText" "REQ004: The CancelButton is used to \ncancel the message by clearing both \nthe TxMessageField and the \nDestinationAddressField." "name" "cl"
set node2 [$diag addNode cad_class 1768.0 1928.0 120.0 33.3333]
$node2 setLabel "name" "SendButton"
$node2 setProp "is_folded" "1"
$node2 setScope "name" "cl" "scopePhase"
$node2 setProp "freeText" "REQ004: The SendButton is used to \nsend the message to the destination \naddressee(s) .\n" "name" "cl"
set node3 [$diag addNode cad_class 1768.0 1872.0 200.0 33.3333]
$node3 setLabel "name" "DestinationAddressField"
$node3 setProp "is_folded" "1"
$node3 setScope "name" "cl" "scopePhase"
$node3 setProp "freeText" "REQ003: The DestinationAddressField \nis used to compose the address to \nwhich the message will be sent.\nREQ010: The DestinationAddressField \ncan specify a list of addresses." "name" "cl"
set node4 [$diag addNode cad_class 1768.0 1816.0 138.666 33.3333]
$node4 setLabel "name" "TxMessageField"
$node4 setProp "is_folded" "1"
$node4 setScope "name" "cl" "scopePhase"
$node4 setProp "freeText" "REQ002: The TxMessageField is used \nto compose the body text of the \nmessage." "name" "cl"
set node5 [$diag addNode cad_class 1768.0 1728.0 120.0 33.3333]
$node5 setLabel "name" "ClearButton"
$node5 setProp "is_folded" "1"
$node5 setScope "name" "cl" "scopePhase"
$node5 setProp "freeText" "REQ008: The ClearButton clears both \nthe RxMessageField and the \nOriginAddressField." "name" "cl"
set node6 [$diag addNode cad_class 1768.0 1672.0 124.0 33.3333]
$node6 setLabel "name" "ReceiveButton"
$node6 setProp "is_folded" "1"
$node6 setScope "name" "cl" "scopePhase"
$node6 setProp "freeText" "REQ008: The ReceiveButton fetches \nthe next message from the message \nqueue and displays it in the \nRxMessageField." "name" "cl"
set node7 [$diag addNode cad_class 1768.0 1616.0 161.333 33.3333]
$node7 setLabel "name" "OriginAddressField"
$node7 setProp "is_folded" "1"
$node7 setScope "name" "cl" "scopePhase"
$node7 setProp "freeText" "REQ009: The OrignAddressField \ndisplays the origin address of the \nreceived message." "name" "cl"
set node8 [$diag addNode cad_class 1768.0 1560.0 138.666 33.3333]
$node8 setLabel "name" "RxMessageField"
$node8 setProp "is_folded" "1"
$node8 setScope "name" "cl" "scopePhase"
$node8 setProp "freeText" "REQ005: The RxMessageField \ndisplays the body text of the received \nmessage." "name" "cl"
set node9 [$diag addNode cad_class 2064.0 1816.0 122.667 33.3333]
$node9 setLabel "name" "MessageBody"
$node9 setProp "is_folded" "1"
$node9 setScope "name" "cl" "scopePhase"
set attribute50 [$node9 addAttrib]
$attribute50 setLabel "name_type" "text"
set method51 [$node9 addMethod]
$method51 setLabel "name_type" "create()\n"
$method51 setProp "has_parmlist" "1"
set method52 [$node9 addMethod]
$method52 setLabel "name_type" "encrypt()\n"
$method52 setProp "has_parmlist" "1"
set method53 [$node9 addMethod]
$method53 setLabel "name_type" "decrypt()"
$method53 setProp "has_parmlist" "1"
set node10 [$diag addNode cad_class 2064.0 1616.0 126.666 33.3333]
set node11 [$diag addNode cad_class 2064.0 1560.0 122.667 33.3333]
$node11 setLabel "name" "MessageBody"
$node11 setProp "is_folded" "1"
$node11 setScope "name" "cl" "scopePhase"
set node12 [$diag addNode cad_class 2120.0 1872.0 165.333 33.3333]
$node12 setLabel "name" "DestinationAddress"
$node12 setProp "is_folded" "1"
$node12 setScope "name" "cl" "scopePhase"
set attribute56 [$node12 addAttrib]
$attribute56 setLabel "name_type" "Addresses"
set method57 [$node12 addMethod]
$method57 setLabel "name_type" "create()\n"
$method57 setProp "has_parmlist" "1"
set method58 [$node12 addMethod]
$method58 setLabel "name_type" "addToList()"
$method58 setProp "has_parmlist" "1"
set node13 [$diag addNode cad_class 1440.0 1928.0 173.333 99.9999]
$node13 setLabel "name" "SendWindow"
$node13 setScope "name" "cl" "scopePhase"
$node13 setProp "freeText" "REQ002: The SendWindow is used \nto compose and send messages.\n" "name" "cl"
set method59 [$node13 addMethod]
$method59 setLabel "name_type" "clear()"
$method59 setProp "has_parmlist" "1"
set node14 [$diag addNode cad_class 1440.0 1672.0 173.333 114.667]
$node14 setLabel "name" "ReceiveWindow"
$node14 setScope "name" "cl" "scopePhase"
$node14 setProp "freeText" "REQ005: The ReceiveWindow \nallows the receipt and display of \nmessages from other nodes." "name" "cl"
set method60 [$node14 addMethod]
$method60 setLabel "name_type" "show()\n"
$method60 setProp "has_parmlist" "1"
$method60 setProp "freeText" "Show causes the RxMessage to be \ndisplayed in the RxMessageField." "name_type" "pe"
set param61 [$method60 addParam]
$param61 setLabel "name_type" "RxMessage"
$param61 setScope "name_type" "de" "scopeFile"
set method62 [$node14 addMethod]
$method62 setLabel "name_type" "clear()"
$method62 setProp "has_parmlist" "1"
set node15 [$diag addNode cad_class 1240.0 1504.0 132.0 114.667]
$node15 setLabel "name" "ApplicationUI"
$node15 setScope "name" "cl" "scopePhase"
$node15 setProp "freeText" "The ApplicationUI provides an\ninterface for the users of the \nMessages system to write, send, \nreceive and read messages. " "name" "cl"
set diag [CAD new Carrier "Messages" "Analysis" "Analysis" "VB_Prototype" "1" "" 1]
set node66 [$diag addNode cad_class 1168.0 1088.0 120.0 33.3333]
$node66 setLabel "name" "Socket"
$node66 setProp "is_folded" "1"
$node66 setScope "name" "cl" "scopePhase"
$node66 setProp "freeText" "Implementation of Carrier.receive and Carrier.send." "name" "cl"
set method79 [$node66 addMethod]
$method79 setLabel "name_type" "streamIn()\n"
$method79 setProp "has_parmlist" "1"
set method80 [$node66 addMethod]
$method80 setLabel "name_type" "streamOut()\n"
$method80 setProp "has_parmlist" "1"
set method81 [$node66 addMethod]
$method81 setLabel "name_type" "broadcast()"
$method81 setProp "has_parmlist" "1"
set node68 [$diag addNode cad_class 888.0 800.0 120.0 99.9999]
$node68 setLabel "name" "Node"
$node68 setScope "name" "cl" "scopePhase"
set attribute82 [$node68 addAttrib]
$attribute82 setLabel "name_type" "nodeID"
set node69 [$diag addNode cad_class 832.0 1160.0 120.0 33.3333]
$node69 setLabel "name" "Queue"
$node69 setProp "is_folded" "1"
$node69 setScope "name" "cl" "scopePhase"
set node70 [$diag addNode cad_class 1208.0 864.0 172.0 129.333]
$node70 setLabel "name" "Carrier"
$node70 setScope "name" "cl" "scopePhase"
$node70 setProp "actor_type" "system" "name" "cl"
$node70 setProp "freeText" "The Carrier provides an interface that is \ncapable of transporting messages \nbetween nodes. The Carrier can \nalso queue incoming messages at the \ndestination node until requested by the \nReader." "name" "cl"
set node71 [$diag addNode cad_class 1308.0 1088.0 120.0 33.3333]
$node71 setLabel "name" "TCP_IP"
$node71 setProp "is_folded" "1"
$node71 setScope "name" "cl" "scopePhase"
$node71 setProp "freeText" "Implementation of Carrier.receive and Carrier.send." "name" "cl"
set method86 [$node71 addMethod]
$method86 setLabel "name_type" "streamIn()\n"
$method86 setProp "has_parmlist" "1"
set method87 [$node71 addMethod]
$method87 setLabel "name_type" "streamOut()\n"
$method87 setProp "has_parmlist" "1"
set method88 [$node71 addMethod]
$method88 setLabel "name_type" "broadcast()"
$method88 setProp "has_parmlist" "1"
set node72 [$diag addNode cad_class 800.0 936.0 208.0 129.333]
$node72 setLabel "name" "MessageMgr"
$node72 setScope "name" "cl" "scopePhase"
$node72 setProp "freeText" "The MessageMgr has responsibilities \nto send and receive messages carried \nby the Carrier.\n\nWhen a Message is ready to be sent \nfeeds the Message to the Carrier via its \nstreamOut interface. \n\nThe MessageMrg listens to the Carrier's \nstreamIn channel and when it receives \na new stream, it creates a new Message \nand pushes it onto its Queue." "name" "cl"
set node104 [$diag addNode cad_class 744.0 728.0 120.0 33.3333]
$node104 setLabel "name" "List"
$node104 setProp "is_folded" "1"
$node104 setScope "name" "cl" "scopePhase"
set method159 [$node104 addMethod]
$method159 setLabel "name_type" "add\n"
set method160 [$node104 addMethod]
$method160 setLabel "name_type" "remove\n"
set method161 [$node104 addMethod]
$method161 setLabel "name_type" "first\n"
set method162 [$node104 addMethod]
$method162 setLabel "name_type" "last"
set node105 [$diag addNode cad_class 1320.0 736.0 120.0 99.9999]
$node105 setLabel "name" "Node"
$node105 setScope "name" "cl" "scopePhase"
set attribute163 [$node105 addAttrib]
$attribute163 setLabel "name_type" "nodeID"
set node106 [$diag addNode cad_class 1360.0 1216.0 122.667 129.333]
$node106 setLabel "name" "MessageBody"
$node106 setScope "name" "cl" "scopePhase"
set attribute164 [$node106 addAttrib]
$attribute164 setLabel "name_type" "text"
set method165 [$node106 addMethod]
$method165 setLabel "name_type" "create()\n"
$method165 setProp "has_parmlist" "1"
set method166 [$node106 addMethod]
$method166 setLabel "name_type" "encrypt()\n"
$method166 setProp "has_parmlist" "1"
set method167 [$node106 addMethod]
$method167 setLabel "name_type" "decrypt()"
$method167 setProp "has_parmlist" "1"
set node107 [$diag addNode cad_class 1896.0 1040.0 132.0 114.667]
$node107 setLabel "name" "ApplicationUI"
$node107 setScope "name" "cl" "scopePhase"
$node107 setProp "freeText" "The ApplicationUI provides an\ninterface for the users of the \nMessages system to write, send, \nreceive and read messages. " "name" "cl"
set node109 [$diag addNode note 736.0 1048.0 182.666 40.0]
$node109 setLabel "note_text" "Should be persistent."
set node110 [$diag addNode cad_class 1600.0 768.0 208.0 129.333]
$node110 setLabel "name" "MessageMgr"
$node110 setScope "name" "cl" "scopePhase"
$node110 setProp "freeText" "The MessageMgr has responsibilities \nto send and receive messages carried \nby the Carrier.\n\nWhen a Message is ready to be sent \nfeeds the Message to the Carrier via its \nstreamOut interface. \n\nThe MessageMrg listens to the Carrier's \nstreamIn channel and when it receives \na new stream, it creates a new Message \nand pushes it onto its Queue." "name" "cl"
set diag [CAD new PackageDiagram "Messages" "Analysis" "Analysis" "VB_Prototype" "1" "" 1]
set node185 [$diag addNode cad_class 568.0 1032.0 120.0 77.3333]
$node185 setLabel "name" "\nTransport\n\n"
$node185 setProp "is_folded" "1"
$node185 setScope "name" "cl" "scopePhase"
$node185 setProp "freeText" "The Transport package provides \ninterfaces for inter process and inter\nnode communications." "name" "cl"
set node186 [$diag addNode cad_class 424.0 896.0 120.0 77.3333]
$node186 setLabel "name" "\nVisual\nBasic\n"
$node186 setProp "is_folded" "1"
$node186 setScope "name" "cl" "scopePhase"
$node186 setProp "freeText" "VB is used to construct and animate \nthe user interface for the application." "name" "cl"
set node187 [$diag addNode cad_class 960.0 864.0 120.0 77.3333]
$node187 setLabel "name" "\nAddresses\n\n"
$node187 setProp "is_folded" "1"
$node187 setScope "name" "cl" "scopePhase"
$node187 setProp "freeText" "The Addresses package is part of \nthe Information Domain. Its classes \nconstitute the address information \n(for example, node URLs) needed \nby the Messages Application \npackage." "name" "cl"
set node188 [$diag addNode cad_class 712.0 864.0 120.0 79.3333]
$node188 setProp "freeText" "The Application package contains \nclasses that implement the essential \nrequirements of the application. Most \nof these classes, in turn, are dependent \non classes in other packages, as \nindicated." "name" "cl"
set node189 [$diag addNode cad_class 568.0 736.0 121.333 79.3333]
$node189 setLabel "name" "\nMessages\nUI\n"
$node189 setProp "is_folded" "1"
$node189 setScope "name" "cl" "scopePhase"
$node189 setProp "freeText" "The UI package provides the classes \nneeded for the user interface and \nto animate the application." "name" "cl"
set node190 [$diag addNode note 368.0 640.0 317.333 62.6667]
$node190 setLabel "note_text" "The CD Class symbol is used here \nto represent Packages. Packages appear \nelsewhere in the Project as Systems."
set node191 [$diag addNode cad_class 960.0 1032.0 120.0 77.3333]
set diag [COD new Reception:fetch_next_message "Messages" "Analysis" "Analysis" "VB_Prototype" "1" "" 1]
set node251 [$diag addNode instance 1260.0 796.0 120.0 40.0]
$node251 setLabel "name_type" ":Queue"
$node251 setScope "name_type" "cl" "scopePhase"
set node252 [$diag addNode instance 1124.0 651.999 120.0 40.0017]
$node252 setLabel "name_type" ":MessageMgr"
$node252 setScope "name_type" "cl" "scopePhase"
$node252 setProp "freeText" "The MessageMgr has responsibilities \nto send and receive messages carried \nby the Carrier.\n\nWhen a Message is ready to be sent \nfeeds the Message to the Carrier via its \nstreamOut interface. \n\nThe MessageMrg listens to the Carrier's \nstreamIn channel and when it receives \na new stream, it creates a new Message \nand pushes it onto its Queue." "name_type" "cl"
set node253 [$diag addNode note 1088.0 1016.0 365.333 40.0]
$node253 setLabel "note_text" "{ CurrentMessage exists prior to this interaction. }"
set node254 [$diag addNode instance 969.332 898.665 157.336 58.6691]
set node255 [$diag addNode instance 726.67 652.0 146.67 40.0]
$node255 setLabel "name_type" ":ReceiveButton"
$node255 setScope "name_type" "cl" "scopePhase"
$node255 setProp "freeText" "REQ008: The ReceiveButton fetches \nthe next message from the message \nqueue and displays it in the \nRxMessageField." "name_type" "cl"
set node256 [$diag addNode cod_actor 529.0 639.0 30.0 50.0]
$node256 setLabel "name" "Reader"
$node256 setScope "name" "cl" "scopePhase"
$node256 setProp "freeText" "The Reader uses the Messaging system \nto retreive and read messages sent by Writers on \nother nodes." "name" "cl"
set node257 [$diag addNode instance 490.67 892.0 138.66 40.0]
$node257 setLabel "name_type" "ApplicationUI:"
$node257 setScope "name_type" "de" "scopeFile"
set node258 [$diag addNode instance 725.33 892.0 149.34 40.0]
$node258 setLabel "name_type" ":ReceiveWindow"
$node258 setScope "name_type" "cl" "scopePhase"
$node258 setProp "freeText" "REQ005: The ReceiveWindow \nallows the receipt and display of \nmessages from other nodes." "name_type" "cl"
set node259 [$diag addNode instance 958.668 777.335 162.664 61.3307]
$node288 setProp "freeText" "The Carrier provides an interface that is \ncapable of transporting messages \nbetween nodes. The Carrier can \nalso queue incoming messages at the \ndestination node until requested by the \nReader." "name_type" "cl"
$node288 setScope "name_type" "de" "scopeFile"
set node289 [$diag addNode instance 1060.0 1116.0 120.0 40.0]
$node289 setProp "freeText" "The Carrier provides an interface that is \ncapable of transporting messages \nbetween nodes. The Carrier can \nalso queue incoming messages at the \ndestination node until requested by the \nReader." "name_type" "cl"
$node289 setScope "name_type" "de" "scopeFile"
set node290 [$diag addNode instance 1060.0 952.0 120.0 48.0]
$node290 setProp "freeText" "The MessageMgr has responsibilities \nto send and receive messages carried \nby the Carrier.\n\nWhen a Message is ready to be sent \nfeeds the Message to the Carrier via its \nstreamOut interface. \n\nThe MessageMrg listens to the Carrier's \nstreamIn channel and when it receives \na new stream, it creates a new Message \nand pushes it onto its Queue." "name_type" "cl"
$node290 setScope "name_type" "de" "scopeFile"
set node291 [$diag addNode instance 852.0 1014.67 120.0 50.6666]
$node299 setProp "freeText" "The MessageMgr has responsibilities \nto send and receive messages carried \nby the Carrier.\n\nWhen a Message is ready to be sent \nfeeds the Message to the Carrier via its \nstreamOut interface. \n\nThe MessageMrg listens to the Carrier's \nstreamIn channel and when it receives \na new stream, it creates a new Message \nand pushes it onto its Queue." "name_type" "cl"
$node299 setScope "name_type" "de" "scopeFile"
set conn302 [$diag addConn link $node297 $node296 1672.0 976.0 1800.0 976.0]
$conn302 setProp "link_end_stereotype" ""
$conn302 setProp "link_start_stereotype" ""
set segm303 [$conn302 getFirstSegm]
set conn304 [$diag addConn link $node297 $node298 1616.0 960.0 1480.0 832.0]
set node342 [$diag addNode etd_timing_constr 568.0 840.0 4.0 4.0]
$node342 setLabel "timing_constraint" "The Writer places the cursor \nin the message text field, \nclicks the mouse then enters \nor edits text."
set node343 [$diag addNode etd_object 1147.5 752.0 3.0 270.668]
$node343 setLabel "name_type" "ClearButton"
$node343 setProp "interact_type" "control"
$node343 setScope "name_type" "de" "scopeFile"
set node344 [$diag addNode etd_object 990.5 752.0 3.0 260.0]
$node344 setLabel "name_type" "TxMessage"
$node344 setScope "name_type" "de" "scopeFile"
set node345 [$diag addNode etd_initiator 782.5 768.0 3.0 248.001]
$node345 setLabel "name_type" ":Writer"
$node345 setScope "name_type" "cl" "scopePhase"
$node345 setProp "freeText" "The Writer uses the Messaging system \nto compose messages and dispatch them \nto Readers on other nodes." "name_type" "cl"
set node346 [$diag addNode etd_object 1405.5 752.0 3.0 278.001]
set diag [ETD new Encrypt:request_encryption "Messages" "Analysis" "Analysis" "VB_Prototype" "1" "" 1]
set node363 [$diag addNode note 879.0 935.0 274.667 62.6667]
$node363 setLabel "note_text" "Encryption occurs as part\nof message transmission. See COD\n- message passing mechanism."
set node364 [$diag addNode note 456.0 552.0 350.667 62.6667]
$node364 setLabel "note_text" "The message may be encypted for security \nby setting the Secure Message CheckBox. This\noperation is reversible (unset). "
set node365 [$diag addNode etd_object 854.5 704.0 3.0 214.668]
set node366 [$diag addNode etd_initiator 662.5 712.0 3.0 205.335]
$node366 setLabel "name_type" ":Writer"
$node366 setScope "name_type" "cl" "scopePhase"
$node366 setProp "freeText" "The Writer uses the Messaging system \nto compose messages and dispatch them \nto Readers on other nodes." "name_type" "cl"
set diag [UCD new Overview "Messages" "Analysis" "Analysis" "VB_Prototype" "1" "" 1]
set node473 [$diag addNode note 376.0 760.0 213.333 47.9999]
$node473 setLabel "note_text" "Show properties to read \ndescriptions of objects."
set node474 [$diag addNode note 744.0 936.0 220.0 47.9999]
$node474 setLabel "note_text" "Double click or open to see\ncollaboration diagrams."
set node475 [$diag addNode note 928.0 576.0 220.0 47.9999]
$node475 setLabel "note_text" "Double click or open to see\na detailed use case."
set node476 [$diag addNode note 432.0 560.0 256.0 47.9999]
$node476 setLabel "note_text" "Analysis of project requirements\nFirst pass 9/97."
set node477 [$diag addNode ucd_actor 1041.0 743.0 30.0 50.0]
$node477 setLabel "name" "MessageMgr"
$node477 setScope "name" "cl" "scopePhase"
$node477 setProp "freeText" "The MessageMgr has responsibilities \nto send and receive messages carried \nby the Carrier.\n\nWhen a Message is ready to be sent \nfeeds the Message to the Carrier via its \nstreamOut interface. \n\nThe MessageMrg listens to the Carrier's \nstreamIn channel and when it receives \na new stream, it creates a new Message \nand pushes it onto its Queue." "name" "cl"
set node478 [$diag addNode use_case 764.0 852.0 120.0 40.0]
$node478 setLabel "name" "Reception"
$node478 setScope "name" "cl" "scopePhase"
set node479 [$diag addNode use_case 756.0 748.0 120.0 40.0]
$node479 setLabel "name" "Transmission"
$node479 setScope "name" "cl" "scopePhase"
$node479 setProp "alternateAct" "If the Carrier is unavailable, the message may be \nqueued for later dispatch." "name" "cl"
$node479 setProp "basicAct" "Using the Carrier interface, the \nmessage is dispatched to the \nreceiver nodes." "name" "cl"
$node479 setProp "postcond" "The message is dispatched." "name" "cl"
$node479 setProp "precond" "A message is ready for dispatch." "name" "cl"
$node479 setProp "reqText" "<rephrase>\nThe message shall be sent to the \naddressee(s) specified in the address \nfield." "name" "cl"
$node479 setProp "req_ID" "REQ004" "name" "cl"
set node480 [$diag addNode use_case 756.0 644.0 120.0 40.0]
$node480 setLabel "name" "Composition"
$node480 setScope "name" "cl" "scopePhase"
$node480 setProp "alternateAct" "The Writer forwards an existing message to \nother receivers' nodes." "name" "cl"
$node480 setProp "basicAct" "The Writer composes a new message and \naddresses it to the receivers' nodes. The \nmessage may be encrypted for security." "name" "cl"
$node480 setProp "postcond" "The message is ready for dispatch." "name" "cl"
$node480 setProp "precond" "none" "name" "cl"
$node480 setProp "reqText" "<rephrased>The sender should be able to compose \na new message and address it to its destination." "name" "cl"
$segm494 setProp "freeText" "Dispatch means to send an \noutgoing message to the origin's \nCarrier for transmission \nto the destination's Carrier." "name" "pe"
$node505 setProp "freeText" "The Carrier provides an interface that is \ncapable of transporting messages \nbetween nodes. The Carrier can \nalso queue incoming messages at the \ndestination node until requested by the \nReader." "name" "cl"
set node506 [$diag addNode ucd_actor 537.0 639.0 30.0 50.0]
$node506 setLabel "name" "Writer"
$node506 setScope "name" "cl" "scopePhase"
$node506 setProp "freeText" "The Writer uses the Messaging system \nto compose messages and dispatch them \nto Readers on other nodes." "name" "cl"
set node507 [$diag addNode use_case 716.0 828.0 120.0 40.0]
$node507 setLabel "name" "Pack"
$node507 setScope "name" "cl" "scopePhase"
set node508 [$diag addNode use_case 828.0 764.0 120.0 40.0]
$node508 setLabel "name" "Send"
$node508 setScope "name" "cl" "scopePhase"
set node509 [$diag addNode use_case 604.0 764.0 120.0 40.0]
$node509 setLabel "name" "Encrypt"
$node509 setScope "name" "cl" "scopePhase"
set node510 [$diag addNode use_case 705.33 645.33 141.33 53.333]