In: Computer Science
Objective: The purpose of this assignment is to test student skills to determine functional and non-functional requirements for ticket-issuing system.
An automated ticket-issuing system sells rail tickets. The system is secured enough because only authenticated users are able to access. The system is developed with high performance speed and storage.
Users select their destination and input a credit card and a personal identification number. The rail ticket is issued and their credit card account charged. When the user presses the start button, a menu display of Potential destinations is activated, along with a message to the user to select a destination. Once a destination has been selected, users are requested to input their credit card. Its validity is checked and the user is then requested to input a personal identifier. When the credit transaction has been validated, the ticket is issued. The system is working 7 days 24 hours per day.
Write a set of functional and non-functional requirements for the ticket-issuing system, setting out it Expected reliability and response time.
Below could be the possible functional and non-functional requirements for the given railway ticket issuing system software.
Functional Requirements :-
These are the description of requirements which are the expectations of software or an application as what that software or application should do. Given set of functional requirements could be possible for us -
1) The overall system to process the railway tickets must be secure enough that no breakdown of data is possible anywhere.
2) User must be able to access to system effectively.
3) User should be able to login with no issues on initiation. The connection through users credential with respective database must be quickly processed with no delayed frequencies.
4) Appropriate options such as start button display, destination selection etc are displayed with quick time response to the user once he/she become logged in.
5) Proper pop-up messages are being displayed to help the user with a selection over the desired path such as selecting destination, origin, arrival time, departure time, passengers' details (name,age gender, birth preference), journey type, desired journey class, payment options i.e. choose the appropriate credit card through various available options, mobile number / Email communications (to which the tickets could be mailed) etc.
6) User could also be able to re-plan his/her journey options in case the any incorrect options have been placed while previous selections.
7) Once the appropriate selections done, a collectively filled form must be brought to the user window to confirm his selections before proceeding for payment options.
8) Payment options i.e. credit card information must be protected at display window to go with proper encryption techniques before communicating to finance-party(Banking) payment options.
9) Once the credit card information entered into the system, it must be the process running behind to capture the validity of credit card and compare with the finance database while communicating with them through a session. If in case, any of the information being incorrectly filled, the proper indicative message with error type must be displayed to the user.
10) If the validity and other initial credentials for the credit card being entered correctly after the validation through respective finance ends, the user must be asked to enter his PID number. A proper display window must be bring in front to the user that he/she must not be pressed any key or backspace/refresh the window while the transaction is in progress.
11) Once the transaction is done, the proper ticket must be displayed to the user if booked successfully. if in case not booked due to any unexpected circumstances i.e. payment failure, seats not available or might have booked while the transaction was in place, too many wrong attempts for incorrect PIDs etc happen, then the user must also be displayed with a proper reason and with an option whether user could think of initiating the booking process again or logged out of the system.
12) Ticket must be mailed to the user's mail account also with an option for sending the journey details to his/her mobile number if has been provided while creation of account (Booking for himself) or giving this data while selection of ticketing details (Booking for others).
Non - Functional Requirements :-
These are the description of requirements which could put certain constraints as how that software or application should do. Given set of Non - functional requirements could be possible for us -
1) Software must be accessible through 24/7 timely basis with no downtime.
2) Email for ticket confirmation should be sent with a proper communication.
3) Proper maintenance of the overall system being set out on a certain intervals and this maintenance information must be communicated to the users in prior. Ideally the maintenance window should be taken on the time when frequencies of users being analysed to be low i.e. during night 3 AM - 5 AM probably.
4) The resource information must be displayed to the software/application initially, such that "This application is visible better in version x.y internet browser.
5) Real-time must also be displayed to the bottom-right corner of system's software, this would help the user to plan the journey date.
6) After logged in, if the user is no more active for an inbound time limit i.e. 2 or 3 minutes, then the user must be logged out to avoid its credentials being misused. The proper idle-session time must be displayed with a counter.
7) Proper use of captcha must be placed to avoid the misuse of system through other automated services which could down the performance and effectiveness of system.
8) User could be able to save his/her preferences over the system and may plan the journey later.
9) System must be able to handle large number of users in its peak time and there should be crash/downtime brought to it when this user bandwidth been taken place to high.
10) User could be able to report bugs, system should be able to collect the logs.
11) User should be able to find the respective contact information easily and also may be able to provide his/her valuable feedback.
12) Disaster recovery & fault tolerance options must also be in place to avoid any emergencies when the system suddenly stops working appropriately.