The banks in Australia (and most of the other countries having a modern banking system) provide the customers to transfer money between two accounts in real-time. In most of the Australian banks, the transfer software/app, popularly known as Real-time Money Transfer (RMT), has an identical flow. As for example, a transfer starts after the usual log in and standard authentication. After that, the user selects a recipient for the transfer. Having proper authentication (if required), if the total amount to transfer is less than the current balance of the user, the system transfers the money immediately to the recipient. Some of the systems allow the sender to send an email to the recipient to let him know about the transfer. Although the transfer seems to be a straight-forward one, most of the bank enforce additional authentication to ensure the smooth and safe transfer of the money. You are now the in-charge of the development of this software in a new Bank. Your task is to oversee the development of this Real-time system required to ensure secure money transfer.
The RMT should work according to the following rules:
Step-1: Sender enters the interface after successful authentication
Step-2: Selects the account (multiple accounts may be linked in one interface) and amount to transfer
Step-3: Select the recipient of the transfer either
a) from an already Save info and move to Step-6, OR
b) by entering the recipient name and account info
Step-4: The bank sends an SMS code in the sender’s mobile number (which is already stored in the bank database)
Step-5: Sender retrieve that code from SMS and enter the code in the website/ app and resume the transfer
Step-6: Transfer is completed and a confirmation message is shown
Special Remark: Note that the code is valid for 5 minutes only and if you click on: “Send SMS again with Code” for 5 times within a minute, the account will be blocked for an hour. In addition, if the user requests to send multiple SMSs with different codes, only the final one will work.
Your task is to do a Real-Time Structured Analysis for the RMT considering the aforementioned steps and the Special Remark. You are to present your analysis including the following information:
1. An External Entity-Relationship Diagram (ERD) indicating relationships of the RMT and the other external entities in the system.
2. Data and Control Flow Diagrams (DFD/CFDs) - to sufficient detail that only a single task is carried out by each process at the lowest level. You should show the control events that occur on the same diagrams. Use the real-time extensions for control flows etc. shown in the lecture notes. You need to determine when and where events will occur. For example, whenever a piece of data becomes available it may need a control event to let the system know that it is available. These events must be clearly shown in these DFD/CFD diagrams and then handled in the Control Specification (CSPEC).
3. Control Specifications (Cspec) - use combinational or sequential FSMs as required, presented in an appropriate format. The idea is that the Cspec will completely describe how each and every event or control flow is handled in the system. Note you need to provide both "Process Activation Table" and "State Machine Diagram".
4. A Data Dictionary is required to adequately describe each name or special term used in the analysis, which includes process names, data flow names, control flow names etc. If you think further information is required make reasonable assumptions and clearly state these in the submission.