Learning outcomes covered
- LO1.Understand the basic programming methodology
- LO2.Design a basic structured computer program
- LO3.Implement a modularized computer programme for a prepared design
- LO4.Perform software testing and documentation
Scenario and the Tasks
Billing System for SLCOM PLC
SLCOM PLC is one of the private sector telecommunications services provider in Sri Lanka. They handle around 200 customers per day. At present the SLCOM maintains customer account details manually and they need a computerized approach to maintain their billing information which contain both call usage as well as internet facility usage of customers.
Imagine that you are a software developer in this project and design and develop a system for SLCOM PLC.
The program should do the following:
- Proper authentication to the system(Login)
- Use user name and password to login
- Add new customer accounts
- Customers Account number, Name, Address, Telephone No, Connection Type, Internet Connection Type and etc.
- Display account details
- Calculate and Print Bill
- Things need to be considered while making the billing part of the system are given in below area
- Help
- System usage guidelines for new users
- Exit from the system
(More functionality can be included)
You are required to use C++ programming language to construct this application.
Create an error free, effective console application by including appropriate messages, outputs and menus. Make this as a menu driven program; show the user’s choice and allow the user to make appropriate choice. Use an appropriate data storage mechanism and suitable modularization techniques.
Calculate and Print Bill
SLCOM allows their customers to select two kind of calling plans, such like;
Name of The Package Monthly Rental
- Type A – Domestic Rs.
410.00
- Type B – Business Rs. 500.00
In addition to this service; they allow their customers to select a preferred internet package. Details of the internet packages are given below;
Home Package
- Home Starter Package Home Advance Package
- Monthly Rental – Rs. 499.00 Monthly Rental – Rs. 500.00
- Download Bandwidth – (up to) 21 Mbps Download Bandwidth – (up to) – 21 Mbps
- Upload Bandwidth – (up to) 21 Mbps Upload Bandwidth – (up to) 21 Mbps
- Monthly Usage Volume – 6 GB Monthly Usage Volume – 7 GB
- Monthly Additional Free Usage Volume – N/A Monthly Additional Free Usage Volume – 9GB
- Total Monthly Usage – 6 GB Total Monthly Usage – 16 GB
If it’s required, customers those who use above two packages can request for extra GB as well. Extra GB option will be provided according to the following manner;
Size of Extra GB Block Charges
- 1 GB Rs.250
- 2 GB Rs.500
- 5 GB Rs. 750
- Above 5 GB Rs.150 per GB
Internet Pro Internet Master
- Monthly Rental – Rs. 4890.00 Monthly Rental – Rs. 8890.00
- Download Bandwidth – (up to) 21 Mbps Download Bandwidth – (up to) – 21 Mbps
- Upload Bandwidth – (up to) 1 Mbps Upload Bandwidth – (up to) 1 Mbps
- Monthly Usage Volume – 95 GB Monthly Usage Volume – 170 GB
- Total Monthly Usage – 95 GB Total Monthly Usage – 170 GB
- Note that; Extra GB option is not allowable for above two mentioned internet packages.
- If any of the customer (including domestic and home) use CLI facility, another Rs. 50 will be charged monthly basis.
Sample output of an Invoice is given below;
- SLCOM Billing Date: 02/11/2018
- SLCOM PLC Billing Period: 01/10/2018 – 30/10/2018
- Flower Road, Colombo-03 Customer Account Number – CUS001
- NUG2489658(Rs.)
- SLCOM Type A- Domestic [Rental]410.00
- SLCOM – CLI 50.00
- SLCOM Voice Usage 1450.00
- SLCOM Home Advance [Rental] 500.00
- Extra GB Used – – – – – – – – – – – – – – – – – – – — (5GB) 750.00
- Taxes and Levies 474.00
- Total Charges for the Period 3634.00
TASKS
Task 01 – Programming methodology (LO1)-Report
- Describe the usage of basic programming methodology such as controlling structures (selection, repetition) and modularization.
- Provide appropriate examples. (10 marks)
Task 02 – System Design (LO2)-Report
- Identify the requirements of the system to be implemented and produce detailed requirements specification. Design flow charts according to the SRS.
- Use appropriate modularization to reduce the complexity of the design. (20 marks)
Task 03 – System Implementation (LO3)- Software submission
- Implement a functional C++ program to meet the requirements given in the specification, by following the design created above. (40 marks)
Task 04 – System Testing and Documentation (LO4)-Report
- Produce proper testing documentation including test plan, test cases and test results. Conduct user acceptance testing and provide feedback with sample questionnaires used.
- Proper standard documentation need to be followed throughout the report and language need to be used accordingly. (30 marks)
Assessment Criteria
Task 01 – Programming Methodology (LO1)
This submission will be assessed as follows
Criteria Total marks Allocated Marks obtained by the student for the answer provided
Out of 10 Excellent Understanding
Outstanding/Excellent answer given with strong discussion providing appropriate examples
Excellent knowledge in basic programming methodology
Evidence of Research and proper use of referencing 7-10 Good Understanding
Comprehensive answer given with very good understanding providing appropriate examples
Good knowledge in basic programming methodology
6-7 Satisfactory Understanding
A satisfactory answer with a demonstration of basic understanding of the programming methodology
Very basic answer with limited examples 4-6 Poor Understanding
lack of understanding about basic programming concepts
Task is not attempted or attempted with an insufficient, incomplete answer 0-4
Task 02 – System Design (LO2)
This submission will be assessed as follows
Criteria Total marks Allocated Marks obtained by the student for the answer provided
- Out of 20 Excellent Design
- Excellent SRS given in detail
- Highly detailed diagram
- Use of modularization concepts clearly visible
- Excellent use of symbols
- Clarity and Reduce complexity of the design
Backed by relevant assumptions 14-20 Good Design
- Detail SRS including functional and non-functional requirements, data and file structure requirements
- Flow charts following standard notations in flow charting and pseudo codes using proper structured English
- Accurate use of selection repetition structures
- Logical and continuous flow of instructions along the design 12-14 Satisfactory Design
- Basic SRS including functional requirements
- Clear identification and application of symbols in flow charts
Average level design diagrams given 8-12 Poor Design
- Evidence of lack of understanding systems requirement specification
- Poor use of design tools and symbols
- Design diagrams with invalid flows, incomplete diagrams with logical errors 0-8
Task 03 – System Implementation (LO3)
This submission will be assessed as follows
Criteria Total marks Allocated Marks obtained by the student for the answer provided
Out of 40 Excellent implementation
- Excellent use of control structures with improved coding efficiency
- Use file handling techniques for storage and backup requirements
- Excellent Modularization with effective data passing between developed modules.
- Appropriate arrays, structs(records) used
- Easy navigation between modules, accuracy, creativity and completeness of the system 28-40 Good implementation
- Use of Comments to improve code readability good use of control structures with proper understanding
- Modularize according to the given design.
Use of input validations, onscreen help options and User friendliness of the system 24-28 Satisfactory implementation
Operational system according to the requirements of the scenario
Average use of data types and operators
Average use of control structures (selection and repetition) 16-24 Poor implementation
- Poor implementation with syntax errors
- Lack of knowledge of the language basics used
- Cannot fulfill basic system requirements 0-16
Task 04 – System Testing and Documentation (LO4)
This submission will be assessed as follows
Criteria Total marks Allocated Marks obtained by the student for the answer provided
Out of 30 Excellent Documentation
- Excellent Test documentation with detail test plan and test cases
- Acceptance test with proper questionnaire samples. Well analyzed user feedback which supports recommendations.
- Testing conclusion with critical review and future recommendations
- Appropriate use of language and Standard report format followed
- Proper use of Referencing 21-30 Good Documentation
Detailed Test Plan
- Appropriate Test Cases
- Acceptance test with User feedback and test conclusion
- Good documentation
- 18-21 Satisfactory Documentation
Basic Test Plan
- Average Test Cases
- Average documentation 12-18 Poor Documentation
- Lack of test plan, poor test cases
- No proper evidence of testing
- Poor report formatting 0-12 Total Marks 100 Submission Guidelines
- Submission format Report
- Paper Size:A4
- Words:3000 words
- Printing Margins:LHS; RHS: 1 Inch
- Header and Footer:1 Inch
- Basic Font Size:12
- Line Spacing:1.5
- Font Style:Times New Roman
- Referencing should be done strictly using Harvard system
Introduction
Task 01 – Programing Methodology
– Introduction to Programing Methodology
When programs are developed to resolve real-life issues like inventory management, payroll process, student admissions, examination result process, etc. they tend to be vast and complicated. The approach to analyzing such complicated issues, coming up with for code development and dominant the event method is named programming methodology.
- Types of Programing Methodology
- Procedural Programming
Issues is broken down into procedures, or blocks of code that perform one activity each. All procedures occupied together form the entire program. It is only suitable for small programs which may have low level of complication.
- Object-oriented Programming
- Functional Programming
Introduction to Controlling Structure
Introduction to Selection IF Statement
The if statement evaluates the test expression within parenthesis. If the test expression is true, statements inside the body of if is executed. If test expression is evaluated to false, statements within the body of if is skipped. CITATION pro19 l 2057 (programiz, 2019)IF ELSE Statement
The if else executes the codes within the body of if statement if the check expression is true and skips the codes inside the body of else. If the check expression is false, it executes the codes within the body of else statement and skips the codes inside the body of if. CITATION pro19 l 2057 (programiz, 2019)NESTED IF ELSE Statement The if…else statement executes two different codes depending upon whether the test expression is true or false. Sometimes, a choice has to be made from more than 2 possibilities.
The nested if…else statement allows you to check for multiple test expressions and execute different codes for more than two conditions. CITATION pro19 l 2057 (programiz, 2019)Switch CaseA switch statement allows a variable to be tested for equality against a list of values. Each value is called a case, and the variable being switched on is checked for each case.
Conditional/Ternary Operator
A ternary operator operates on 3 operands which may be used as an alternative of an if…else statement.
CITATION Par19 l 2057 (Parewa Labs Pvt. Ltd., n.d.)RepetitionFor LoopA for loop is a repetition control structure that allows you to efficiently write a loop that needs to execute a specific number of times. CITATION Tut19 l 2057 (Tutorialspoint, n.d.)While LoopA while loop statement repeatedly executes a target statement as long as a given condition is true. CITATION Tut191 l 2057 (Tutorialspoint, n.d.)Do While LoopThis loop is similar to a while loop, apart from that a do…while loop is guaranteed to execute at least one time. CITATION Tut192 l 2057 (Tutorialspoint, n.d.)Introduction to modularization
Library Function User Defined Function