Automated Teller Machines (ATMs) are cardholder-activated terminals that provide clients of financial institutions with access to their accounts and the ability to process financial transactions without the need for a bank clerk. Customers identify themselves at an ATM by inserting an ATM card into the terminal and entering a preselected personal identification number (PIN). The information is then verified with the card issuer and the cardholder is allowed to proceed with the transaction. An ATM is a safety-critical and real-time system that is highly complicated in design and implementation.
The function of the ATM is to support a computerised banking network. The ATM network doesn’t work independently. It has to work together with the computers software owned by banks. Each bank provides its own computer to maintain its own accounts and process transactions against them. ATMs communicate with the banks’ computers. An ATM accepts a cash card interacts with the user communicates with the bank computer to carry out the transaction dispenses cash and prints receipts. The system requires appropriate record keeping and security provisions. The banks will provide their own software for their own computers. There are clearly defined interfaces for the different systems.
In this coursework, we will give you a complete example of object-oriented analysis, design, and programming applied to a moderate size problem: the simulation of an Automated Teller Machine. All the Java source code and documents are available. These source code and documents are copyrighted by Russell C. Bjork. Permission for non-commercial reproduction for educational use is granted. You need to understand the requirements (customer and user needs) and read the material of system analysis, overall design, and detailed design. Set up the environment, review the source code, run and play with the ATM simulation program provided.
For testing purpose, we will change some parts of original program and provide you the source code with errors. You should import the project into the Eclipse environment for further testing tasks.
Task 1: Produce a quality assurance plan for the Java ATM Project (10%)
You are required to follow IEEE Standard 730 to produce a quality assurance plan for the Java ATM Project.
Include a quality assurance plan for the Java ATM Project in your final report.
Task 2: Software Quality Model (20%)
You are required to use ISO/IEC 9126 to discuss which quality characteristics and sub-characteristics you might wish to address for the ATM project. Explain each of these and if possible suggest how you might attempt to measure these.
Include your discussion in your final report.
Task 3: Software Quality Management (20%)
Imagine a department of 10 programmers (4 of them will be the testers and maintainers at a later stage) and 6 analysts (one leader), working in developing a new generation Automated Teller Machine (ATM) in the UK with new hardware and Operating System. The proposed project is planning to complete the software development portion with the following assumptions and constraints:
- this project is an ATM component of a larger ATM network project
- this project will deliver only the software components of the ATM
- the ATM hardware is being handled as a separate project and will be available in time for the installation phase
- all hardware and platform documentation will be available
They have tended to follow a traditional path of gathering user requirements. The project will involve Object-Oriented Analysis and Development process. The project shall use the waterfall software development methodology to deliver the software products. The project will kick off on 05 Oct 2015 and will go live on 05 Oct 2016, in 12 month’s time. A budget of 1 million pounds has been agreed for the project. Based on a similar project in other bank, the LOC is about 48K and each developer can write about 800 lines of code in one month on average. The staff rate is about £400/per day, per person and each function has 50 lines of code.
You are required to identify the issues you think as relevant in setting up a quality management system (QMS) in this department, and recommend an appropriate QMS.
- Include your discussion, recommendation, and justification in your final report.
Task 4: Produce a test plan for the Java ATM Project (10%)
You are required to test this ATM simulation application and produce a detailed test plan following the IEEE Standard 829. The test plan is designed to prescribe the scope, approach, resources (constraints), and schedule of all testing activities.
Include the test plan in your final report.