digraph G { rankdir=LR; overlap=scale; concentrate=true; // Generate Node Definitions // Generate Output Node { rank=sink; gId_3_5_outputNodeId[label="New\ Checkbook\ Account\ Balance", shape=ellipse,peripheries=2]; } // Generate Output Node { rank=sink; gId_4_5_outputNodeId[label="New\ Statement\ Balance", shape=ellipse,peripheries=2]; } // Generate Input Node { rank=source; gId_5_5_inputNodeId[label="Checkbook", shape=ellipse,peripheries=2]; } // Generate Input Node { rank=source; gId_6_5_inputNodeId[label="Monthly\ Statement", shape=ellipse,peripheries=2]; } // Generate Input Node { rank=source; gId_7_5_inputNodeId[label="Service\ Charges", shape=ellipse,peripheries=2]; } // Generate Input Node { rank=source; gId_8_5_inputNodeId[label="Deductions", shape=ellipse,peripheries=2]; } // Generate Input Node { rank=source; gId_9_5_inputNodeId[label="Credits", shape=ellipse,peripheries=2]; } // Generate Input Node { rank=source; gId_10_5_inputNodeId[label="Deposits", shape=ellipse,peripheries=2]; } // Generate Input Node { rank=source; gId_11_5_inputNodeId[label="Withdrawals", shape=ellipse,peripheries=2]; } // Generate Input Node { rank=source; gId_12_5_inputNodeId[label="Account\ Balance", shape=ellipse,peripheries=2]; } // Generate Input Node { rank=source; gId_13_5_inputNodeId[label="Checkbook\ Account\ Balance", shape=ellipse,peripheries=2]; } // Generate Process Node gId_14_5_processNodeId[label="Trial\ Checkbook\ Account\ Balance", shape=ellipse]; // Generate Process Node gId_16_5_processNodeId[label="Trial\ Statement\ Balance", shape=ellipse]; ////////////////////////////////////////////////////////// // Generate Requirement Description node ReqRow_14[label="REQ1:\ If\ there\ are\ any\ service\ncharges\ or\ other\ deductions\ that\nare\ on\ the\ monthly\ statement\ but\nnot\ recorded\ in\ the\ checkbook,\ the\nCBS\ shall\ subtract\ them\ from\ the\ncheckbook\ account\ balance\ to\ create\nthe\ trial\ checkbook\ account\ balance.", shape=box]; // Generate output link(s) from Process (requirement) description node to Defined Name ReqRow_14 -> gId_14_5_processNodeId; // Generate link(s) from argument(s) // into the Process (requirement) description node gId_7_5_inputNodeId -> ReqRow_14; gId_8_5_inputNodeId -> ReqRow_14; gId_6_5_inputNodeId -> ReqRow_14; gId_5_5_inputNodeId -> ReqRow_14; gId_13_5_inputNodeId -> ReqRow_14; ////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////// // Generate Requirement Description node ReqRow_15[label="REQ2:\ If\ there\ are\ any\ credits\ that\nare\ on\ the\ monthly\ statement\ but\nnot\ recorded\ in\ the\ checkbook,\ the\nCBS\ shall\ add\ them\ to\ the\ trial\ncheckbook\ account\ balance\ to\ create\nthe\ new\ account\ checkbook\ balance.", shape=box]; // Generate output link(s) from Process (requirement) description node to Defined Name ReqRow_15 -> gId_3_5_outputNodeId; // Generate link(s) from argument(s) // into the Process (requirement) description node gId_9_5_inputNodeId -> ReqRow_15; gId_6_5_inputNodeId -> ReqRow_15; gId_5_5_inputNodeId -> ReqRow_15; gId_14_5_processNodeId -> ReqRow_15; ////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////// // Generate Requirement Description node ReqRow_16[label="REQ3:\ If\ there\ are\ any\ deposits\nlisted\ in\ the\ checkbook\ that\ are\nnot\ on\ the\ monthly\ statement,\ the\nCBS\ shall\ add\ them\ to\ the\ account\nbalance\ shown\ on\ the\ monthly\nstatement\ to\ create\ the\ trial\nstatement\ balance.", shape=box]; // Generate output link(s) from Process (requirement) description node to Defined Name ReqRow_16 -> gId_16_5_processNodeId; // Generate link(s) from argument(s) // into the Process (requirement) description node gId_10_5_inputNodeId -> ReqRow_16; gId_5_5_inputNodeId -> ReqRow_16; gId_6_5_inputNodeId -> ReqRow_16; gId_12_5_inputNodeId -> ReqRow_16; ////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////// // Generate Requirement Description node ReqRow_17[label="REQ4:\ If\ there\ are\ any\ withdrawals\nlisted\ in\ the\ checkbook\ that\ are\nnot\ on\ the\ monthly\ statement,\ the\nCBS\ shall\ subtract\ them\ from\ the\ntrial\ statement\ balance\ shown\ on\nthe\ monthly\ statement\ to\ create\ the\nnew\ statement\ balance.", shape=box]; // Generate output link(s) from Process (requirement) description node to Defined Name ReqRow_17 -> gId_4_5_outputNodeId; // Generate link(s) from argument(s) // into the Process (requirement) description node gId_11_5_inputNodeId -> ReqRow_17; gId_5_5_inputNodeId -> ReqRow_17; gId_6_5_inputNodeId -> ReqRow_17; gId_16_5_processNodeId -> ReqRow_17; ////////////////////////////////////////////////////////// }