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_16_5_processNodeId[label="Trial\ Checkbook\ Account\ Balance", shape=ellipse]; // Generate Process Node gId_20_5_processNodeId[label="Trial\ Statement\ Balance", shape=ellipse]; ////////////////////////////////////////////////////////// // Generate Requirement Description node ReqRow_14[label="Init:\ The\ CBS\ shall\ set\ the\ trial\ncheckbook\ account\ balance\ to\ the\nvalue\ of\ the\ checkbook\ account\nbalance.", shape=box]; // Generate output link(s) from Process (requirement) description node to Defined Name ReqRow_14 -> gId_16_5_processNodeId; // Generate link(s) from argument(s) // into the Process (requirement) description node gId_13_5_inputNodeId -> ReqRow_14; ////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////// // Generate Requirement Description node ReqRow_15[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\ntrial\ checkbook\ account\ balance.", shape=box]; // Generate output link(s) from Process (requirement) description node to Defined Name ReqRow_15 -> gId_16_5_processNodeId; // Generate link(s) from argument(s) // into the Process (requirement) description node gId_7_5_inputNodeId -> ReqRow_15; gId_8_5_inputNodeId -> ReqRow_15; gId_6_5_inputNodeId -> ReqRow_15; gId_5_5_inputNodeId -> ReqRow_15; gId_16_5_processNodeId -> ReqRow_15; ////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////// // Generate Requirement Description node ReqRow_16[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_16 -> gId_16_5_processNodeId; // Generate link(s) from argument(s) // into the Process (requirement) description node gId_9_5_inputNodeId -> ReqRow_16; gId_6_5_inputNodeId -> ReqRow_16; gId_5_5_inputNodeId -> ReqRow_16; gId_16_5_processNodeId -> ReqRow_16; ////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////// // Generate Requirement Description node ReqRow_17[label="After\ the\ adjustments\ are\ made\ to\nthe\ trial\ checkbook\ account\nbalance,\ the\ CBS\ shall\ set\ the\ set\nthe\ new\ checkbook\ account\ balance\nto\ the\ value\ of\ the\ trial\ checkbook\naccount\ balance.", shape=box]; // Generate output link(s) from Process (requirement) description node to Defined Name ReqRow_17 -> gId_3_5_outputNodeId; // Generate link(s) from argument(s) // into the Process (requirement) description node gId_16_5_processNodeId -> ReqRow_17; ////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////// // Generate Requirement Description node ReqRow_18[label="Init:\ The\ CBS\ shall\ set\ the\ trial\nstatement\ balance\ to\ the\ value\ of\nthe\ account\ balance\ shown\ on\ the\nmonthly\ statement.", shape=box]; // Generate output link(s) from Process (requirement) description node to Defined Name ReqRow_18 -> gId_20_5_processNodeId; // Generate link(s) from argument(s) // into the Process (requirement) description node gId_12_5_inputNodeId -> ReqRow_18; gId_6_5_inputNodeId -> ReqRow_18; ////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////// // Generate Requirement Description node ReqRow_19[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\ trial\nstatement\ balance.", shape=box]; // Generate output link(s) from Process (requirement) description node to Defined Name ReqRow_19 -> gId_20_5_processNodeId; // Generate link(s) from argument(s) // into the Process (requirement) description node gId_10_5_inputNodeId -> ReqRow_19; gId_5_5_inputNodeId -> ReqRow_19; gId_6_5_inputNodeId -> ReqRow_19; gId_20_5_processNodeId -> ReqRow_19; ////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////// // Generate Requirement Description node ReqRow_20[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.", shape=box]; // Generate output link(s) from Process (requirement) description node to Defined Name ReqRow_20 -> gId_20_5_processNodeId; // Generate link(s) from argument(s) // into the Process (requirement) description node gId_11_5_inputNodeId -> ReqRow_20; gId_5_5_inputNodeId -> ReqRow_20; gId_6_5_inputNodeId -> ReqRow_20; gId_20_5_processNodeId -> ReqRow_20; ////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////// // Generate Requirement Description node ReqRow_21[label="After\ the\ adjustments\ are\ made\ to\nthe\ trial\ statement\ balance,\ the\nCBS\ shall\ set\ the\ new\ statement\nbalance\ to\ the\ value\ of\ the\ trail\nstatement\ balance.", shape=box]; // Generate output link(s) from Process (requirement) description node to Defined Name ReqRow_21 -> gId_4_5_outputNodeId; // Generate link(s) from argument(s) // into the Process (requirement) description node gId_20_5_processNodeId -> ReqRow_21; ////////////////////////////////////////////////////////// }