Top Banner
Visual Programming in C# Ripple Primary School Math Tutor
41

Sample Course Work

Jul 21, 2016

Download

Documents

asus130183

clubt tbz
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Sample Course Work

Visual Programming in C#Ripple Primary School Math Tutor

Page 2: Sample Course Work

Table of ContentsPart 1: introduction and acknowledgement.......................................................................3

Acknowledgement:.........................................................................................................3

Introduction:...................................................................................................................3

Requirement Analysis:...................................................................................................3

Functional requirements: (System must do)..................................................................3

Non-functional requirements:.........................................................................................5

Part 2: Logic Implementation/ Code Implementation.........................................................6

Class diagram for Math Tutor Software:........................................................................6

Student table screen shot:.............................................................................................6

SQL CODE for student table:.........................................................................................7

Implementation of user data capturing in C#:................................................................7

Public Variables for random numbers and results:........................................................9

Random Number generator for addition and multiplication:...........................................9

Random Number generator for Subtraction and Division:.............................................9

Arithmetic operation class:...........................................................................................10

Assignment of random number to labels in forms:.......................................................11

Result of random numbers:..........................................................................................11

Home Screen...............................................................................................................11

Code to check if answer box is empty:.........................................................................12

Code to check if entered answer is numeric or not:.....................................................13

}....................................................................................................................................13

Discussion on user Interfaces of Math Tutor software and importance of good user experience...................................................................................................................14

Structure principle:.......................................................................................................14

Visibility principle:.........................................................................................................14

Simplicity principle:......................................................................................................14

Feedback principle:......................................................................................................14

Tolerance principle:......................................................................................................15

Reuse principle:...........................................................................................................15

Page 3: Sample Course Work

Addition: Form..............................................................................................................15

Subtraction: Form........................................................................................................17

Division: Form..............................................................................................................20

Multiplication: Form......................................................................................................23

Main form:form.............................................................................................................25

Finish form:..................................................................................................................29

Software testing...............................................................................................................29

Importance of testing:..................................................................................................29

Types of software testing:............................................................................................30

System security:...........................................................................................................31

Conclusion:......................................................................................................................31

Bibliography.....................................................................................................................31

Documentation of this project is structured in three parts, which are introduction and acknowledgement, Requirement Analysis, Logic implementation and Testing against user requirements.

Part 1: introduction and acknowledgement

Acknowledgement:Thank to lecturer of our visual programming subject Mr. Ematchandirane Vasu for valuable guidance and advice.

Introduction:Ripple Primary School, a school in London wants to motivate students to learn mathematics by creating math-teaching software called Math Tutor. The primary goal is to make the experience fun while the students learn basic arithmetic operations such as Addition, Subtraction, Multiplication and Division.

Requirement Analysis:This section will focus on use requirements capturing and detailed discussion on what system must achieve in order to be successful; to do this functional and non-functional requirements will be captured.

Page 4: Sample Course Work

Functional requirements: (System must do)List of functional requirements for Ripple Primary School

Store student personal details such as name, class, password, description and ID.

Three tasks for each arithmetic operation (Addition, Multiplication, Subtraction, Multiplication).

System must generate Random numbers for each task System must not allow student to proceed to the next challenge until successful

completion of current arithmetic tasks. System must generate new numbers if student is failing to answer current tasks. System must give positive feedback on students progress System must give encouraging feedback on student’s failure. System must provide sufficient help to complete the task.

For graphical illustration of functional requirements Use case diagram has been used to simplify student’s interaction with math tutor system. Three actors have been identified in the system, which are listed below.

Student:

Primary user of the system who will take basic arithmetic quizzes.

Random Number:

It is a library in C# programming which generates Random numbers from a minimum value to maximum value.

Arithmetic system:

This is a class in Math tutor application, which compares student answer with actual answer of the task.

Figure 1.1: Use case Diagram for Math Tutor software

Jeyaprabhavathi Perumal, 10/06/14,
Contents removed here
Page 5: Sample Course Work

Non-functional requirements:List of non-functional requirements for proposed software system

Use of appropriate images for nursery students Use of easily readable font and size.

Part 2: Logic Implementation/ Code Implementation

Class diagram for Math Tutor Software:Fig 2.1: Class diagram for Math Tutor software

Student table screen shot:“Students” database have been created to store student information in MySQL server.

Fig 2.2: student login detail table description for Math Tutor software

Jeyaprabhavathi Perumal, 10/06/14,
Contents Removed Here
Page 6: Sample Course Work

SQL CODE for student table:CREATE TABLE logDetails(ID varchar(55),FirstNamevarchar(55),std_classvarchar(10),passwordvarchar(55),descritionvarchar(255),PRIMARY KEY (ID));

Implementation of user data capturing in C#: A class called CDBC(C# Database Connector) is created in Visual Studio 2013 professional edition.

Method dbmsConnector is created to store student details in database. Input parameters for this method are String ID, String Name, String stdClass and descrition . Class is instantiated in Math tutor Home form (form1).

using System;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;usingMySql.Data.MySqlClient;usingSystem.Windows.Forms;

namespaceMathAcademy{classCDBC {publicvoidDbmsConnector( string id, string Name, stringstdClass, stringpassword, stringdescrition) {

stringConnectorString = "Server=localhost; port =3306; Database=students; Uid=root; password=1234567890";

try {MySqlConnection connector = newMySqlConnection(ConnectorString);connector.Open();MySqlCommandInscommand = connector.CreateCommand();

Page 7: Sample Course Work

Inscommand.CommandText = "INSERT INTO logdetails(ID, firstName, std_class,password,descrition) VALUES(@firstName, @std_class, @password, @descrition, @id)";Inscommand.Prepare();

Inscommand.Parameters.AddWithValue("@firstName", Name);Inscommand.Parameters.AddWithValue("@std_class", stdClass);Inscommand.Parameters.AddWithValue("@password", password);Inscommand.Parameters.AddWithValue("@descrition", descrition);Inscommand.Parameters.AddWithValue("@id",id);

Inscommand.ExecuteNonQuery();

}catch(MySqlException ex) {

MessageBox.Show(ex.Message);

}finally {

} }

} }

Instantiation in Math tutor home screen in order to capture user data from 4 text boxes and one rich text box.

CDBC conn = newCDBC();

conn.DbmsConnector(textBox1.Text, textBox2.Text, textBox3.Text, textBox4.Text, textBox5.Text);

Addition add = newAddition();add.Show();this.Hide();

Public Variables for random numbers and results:publicint val1, val2, val3, val4, val5, val6;

Page 8: Sample Course Work

int result1, result2, result3;

Random numbers are assigned to above variables (val1, val2, val3, val4, val5, val6). Data type for variables is int.

Random Number generator for addition and multiplication:Six random numbers has been assigned for each task. In case of failure to answer questions successfully student can regenerate new numbers.

Random rand = newRandom();val1= rand.Next(4, 10);val2 = rand.Next(6, 12);val3 = rand.Next(8, 14);val4 = rand.Next(10, 16);val5 = rand.Next(12, 18);val6 = rand.Next(14, 20);

Random library is used to generate random number for quizzes. From val2 to val6 each value is greater than one before, this technique is used to make a perfect pair of random numbers.

Random Number generator for Subtraction and Division:Random rand = newRandom();val1 = rand.Next(11, 20);val2 = rand.Next(1, 10);val3 = rand.Next(15, 22);val4 = rand.Next(9, 15);val5 = rand.Next(25, 30);val6 = rand.Next(1, 10);

Again same random number generator library is used; but combination of random number must be different for these two arithmetic operations that is why I have kept first random number bigger that next consecutive value.

Arithmetic operation class:using System;using System.Collections.Generic;

Page 9: Sample Course Work

using System.Linq;using System.Text;using System.Threading.Tasks;

namespace MathAcademy{ class ArithmaticOperations { int result;

public int Addition(int val1,int val2) { result = val1 + val2; return result; }

public int Multiplication(int val1, int val2) { result = val1 * val2; return result;

}

public int Division(int val1, int val2) { result = val1 / val2; return result;

} public int Substraction(int val1, int val2) { result = val1 - val2; return result;

}

}}

Above code is for arithmetic operation on randomly generated values. As we discussed there are four arithmetic operations we have to do in our math tutor software.

Page 10: Sample Course Work

Assignment of random number to labels in forms:

label1.Text = Convert.ToString(val1);label3.Text = Convert.ToString(val2);label5.Text = Convert.ToString(val3);label7.Text = Convert.ToString(val4);label9.Text = Convert.ToString(val5);label11.Text = Convert.ToString(val6);

Above code is used in all four forms. Random numbers will be assigned to all labels.

Result of random numbers:int result1, result2, result3 will hold the answer of two values for each arithmetic operation.

Home Screen

Home screen is divided in groups of object, one is Sign Up and other one is Login. The form is instantiated using CDBC conn = newCDBC(); Method.

Signup: will take user input from students in textboxes and eventually store that data in provided database.

CDBC conn = newCDBC();

conn.DbmsConnector(textBox1.Text, textBox2.Text, textBox3.Text, textBox4.Text, textBox5.Text);

Page 11: Sample Course Work

Addition add = newAddition();add.Show();this.Hide();

Above code will take data from textBox1, textBox2, textBox3, textBox4 and textBox5 and store it into MySQL Database.

Code to check if answer box is empty:if (String.IsNullOrEmpty(textBox1.Text) && string.IsNullOrEmpty(textBox2.Text) && String.IsNullOrEmpty(textBox3.Text)) {

MessageBox.Show("Answer field cannot be empty"); return;

}

Above code notifies user if it is left empty. If answer fields are empty then system will not go further. Screen shot of that is attached below.

Page 12: Sample Course Work

Code to check if entered answer is numeric or not:

private void textBox2_KeyPress(object sender, KeyPressEventArgs e) { char keypress = e.KeyChar; if (char.IsDigit(keypress) || e.KeyChar == Convert.ToChar(Keys.Back)) {

} else { MessageBox.Show("You Can Only Enter A Number!"); e.Handled = true; }

}Above code checks entered answer is numeric or not if answer is not in numeric format system will show error message on the screen which is included below.

Page 13: Sample Course Work

Discussion on user Interfaces of Math Tutor software and importance of good user experience Any user interface must be based on six principles; but before discussing those principles I would like to include a quote by interface expert Jeff Rasking according to him “As far as the customer is concerned, the interface is the product.” Now discussing six principles

Structure principle:User interface must be designed in purposeful way. Putting related elements together and separating irrelevant ones. Structure principle is foundation for all user interfaces architecture.

Visibility principle:A good design should make all options visible for given task any confusing elements in user interface must be eliminated in early stages. A good design must not give user alternatives or unneeded information.

Simplicity principle:Design must look simple, make tasks easy, communicating and most importantly must provide user shortcuts.

Feedback principle:A good user interface should keep its users informed on their actions or errors they would face during tasks.

Page 14: Sample Course Work

Tolerance principle:The user interface should be tolerant and flexible. Reducing cost of mistakes by allowing undoing are redoing is very important too.

Reuse principle:A good user interface design must reuse internal, external elements and behaviours. Maintaining consistency is very important in this task.

During design of Math tutor software all principles are considered and implemented very carefully.

Addition: Form

Control and properties used for this form:

Name Purpose Number of time used

Text boxes To get user input for answers

3

Buttons To generate random numbers and check answers

2

Labels To show random numbers generated by Random library.

14

private void button1_Click(object sender, EventArgs e)

Page 15: Sample Course Work

{ Random rand = new Random();val1= rand.Next(4, 10);val2 = rand.Next(6, 12);val3 = rand.Next(8, 14);val4 = rand.Next(10, 16);val5 = rand.Next(12, 18);val6 = rand.Next(14, 20);

label1.Text = Convert.ToString(val1);label3.Text = Convert.ToString(val2);label5.Text = Convert.ToString(val3);label7.Text = Convert.ToString(val4);label9.Text = Convert.ToString(val5);label11.Text = Convert.ToString(val6);

result1 = arith.Addition(val1, val2);result2 = arith.Addition(val3, val4);result3 = arith.Addition(val5, val6);label14.Text = "";label13.Text = "";

}

private void button2_Click(object sender, EventArgs e) {

int answer1 = Convert.ToInt32(textBox1.Text);int answer2 = Convert.ToInt32(textBox2.Text);int answer3 = Convert.ToInt32(textBox3.Text);

if (result1 == answer1 || result2 == answer2 || result3 == answer3) {label13.ForeColor = Color.Green;

label13.Text = "WOW!! You Got it right" + " Now yo're ready to take Substraction challenge";MessageBox.Show(label13.Text);Substraction subs = new Substraction();subs.Show();this.Hide();

Page 16: Sample Course Work

}else {label14.ForeColor = Color.Red;label14.Text = "Wrong answer, but always remember practice makes man perfect " + "Please try again";MessageBox.Show(label14.Text);this.Show();

}

In above code random numbers are getting assigned to labels when user clicks on generate numbers (Label 1, 3, 5, 7, 9, 11). The form instantiates the Arithmetic operation class in order to get answer and that answer is checked with the actual user input.

Subtraction: FormControl and properties used for this form:

Control and properties used for this form:

Name Purpose Number of times usedText boxes To get user input for

answers 3

Page 17: Sample Course Work

Buttons To generate random numbers and check answers

2

Labels To show random numbers generated by Random library.

14

using System;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;usingSystem.Windows.Forms;

namespaceMathAcademy{public partial class Substraction : Form {ArithmaticOperationsarith = new ArithmaticOperations();publicint val1, val2, val3, val4, val5, val6;int result1, result2, result3;publicSubstraction() {InitializeComponent(); }

private void button1_Click(object sender, EventArgs e) { Random rand = new Random();val1 = rand.Next(11, 20);val2 = rand.Next(1, 10);val3 = rand.Next(15, 22);val4 = rand.Next(9, 15);val5 = rand.Next(25, 30);val6 = rand.Next(1, 10);

label1.Text = Convert.ToString(val1);label3.Text = Convert.ToString(val2);label5.Text = Convert.ToString(val3);label7.Text = Convert.ToString(val4);

Page 18: Sample Course Work

label9.Text = Convert.ToString(val5);label11.Text = Convert.ToString(val6);

result1 = arith.Substraction(val1, val2);result2 = arith.Substraction(val3, val4);result3 = arith.Substraction(val5, val6);

}

private void button2_Click(object sender, EventArgs e) {int answer1 = Convert.ToInt32(textBox1.Text);int answer2 = Convert.ToInt32(textBox2.Text);int answer3 = Convert.ToInt32(textBox3.Text);

if (result1 == answer1 || result2 == answer2 || result3 == answer3) {label13.ForeColor = Color.Green;

label13.Text = "WOW!! You Got it right" + " Now yo're ready to take Division challenge";MessageBox.Show(label13.Text); Division div = new Division();div.Show();this.Hide();

}else {label14.ForeColor = Color.Red;label14.Text = "Wrong answer, but always remember practice makes man perfect " + "Please try again";MessageBox.Show(label14.Text);

} } }}

In above code random numbers are getting assigned to labels when user clicks on generate numbers (Label 1, 3, 5, 7, 9, 11). The form instantiates the Arithmetic operation class in order to get answer and that answer is checked with the actual user input.

Page 19: Sample Course Work

Division: FormControl and properties used for this form:

Name Purpose Number of times usedText boxes To get user input for

answers 3

Buttons To generate random numbers and check answers

2

Labels To show random numbers generated by Random library.

14

using System;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;usingSystem.Windows.Forms;

Page 20: Sample Course Work

namespaceMathAcademy{public partial class Division : Form {ArithmaticOperationsarith = new ArithmaticOperations();publicint val1, val2, val3, val4, val5, val6;int result1, result2, result3;public Division() {InitializeComponent(); }

private void button1_Click(object sender, EventArgs e) { Random rand = new Random();val1 = rand.Next(15, 25);val2 = rand.Next(1,10);val3 = rand.Next(15, 25);val4 = rand.Next(1,10);val5 = rand.Next(15, 25);val6 = rand.Next(1,10);

label1.Text = Convert.ToString(val1);label3.Text = Convert.ToString(val2);label5.Text = Convert.ToString(val3);label7.Text = Convert.ToString(val4);label9.Text = Convert.ToString(val5);label11.Text = Convert.ToString(val6);

result1 = arith.Division(val1, val2);result2 = arith.Division(val3, val4);result3 = arith.Division(val5, val6); }

private void button2_Click(object sender, EventArgs e) {int answer1 = Convert.ToInt32(textBox1.Text);int answer2 = Convert.ToInt32(textBox2.Text);int answer3 = Convert.ToInt32(textBox3.Text);

if (result1 == answer1 || result2 == answer2 || result3 == answer3) {label13.ForeColor = Color.Green;

Page 21: Sample Course Work

label13.Text = "WOW!! You Got it right" + " Now yo're ready to take multiplication challenge";MessageBox.Show(label13.Text); Multiplication multi = new Multiplication();

multi.Show();this.Hide();

}else {label14.ForeColor = Color.Red;label14.Text = "Wrong answer, but always remember practice makes man perfect " + "Please try again";MessageBox.Show(label14.Text);

} } }}

In above code random numbers are getting assigned to labels when user clicks on generate numbers (Label 1, 3, 5, 7, 9, 11). The form instantiates the Arithmetic operation class in order to get answer and that answer is checked with the actual user input.

Page 22: Sample Course Work

Multiplication: Form

Control and properties used for this form:

Name Purpose Number of times usedText boxes To get user input for

answers 3

Buttons To generate random numbers and check answers

2

Labels To show random numbers generated by Random library.

14

using System;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;

Page 23: Sample Course Work

usingSystem.Threading.Tasks;usingSystem.Windows.Forms;

namespaceMathAcademy{public partial class Multiplication : Form {ArithmaticOperationsarith = new ArithmaticOperations();publicint val1, val2, val3, val4, val5, val6;int result1, result2, result3;public Multiplication() {InitializeComponent(); }

private void button1_Click(object sender, EventArgs e) { Random rand = new Random();val1 = rand.Next(2, 10);val2 = rand.Next(2, 12);val3 = rand.Next(2, 14);val4 = rand.Next(2, 16);val5 = rand.Next(2, 18);val6 = rand.Next(2, 20);

label1.Text = Convert.ToString(val1);label3.Text = Convert.ToString(val2);label5.Text = Convert.ToString(val3);label7.Text = Convert.ToString(val4);label9.Text = Convert.ToString(val5);label11.Text = Convert.ToString(val6);

result1 = arith.Multiplication(val1, val2);result2 = arith.Multiplication(val3, val4);result3 = arith.Multiplication(val5, val6);label14.Text = "";label13.Text = "";

}

private void button2_Click(object sender, EventArgs e) {int answer1 = Convert.ToInt32(textBox1.Text);int answer2 = Convert.ToInt32(textBox2.Text);int answer3 = Convert.ToInt32(textBox3.Text);

Page 24: Sample Course Work

if (result1 == answer1 || result2 == answer2 || result3 == answer3) {label13.ForeColor = Color.Green;

label13.Text = "WOW!! You Got it right" + " Now yo're ready to take multiplication challenge";MessageBox.Show(label13.Text); Finish finish = new Finish();finish.Show();this.Hide();

}else {label14.ForeColor = Color.Red;label14.Text = "Wrong answer, but always remember practice makes man perfect " + "Please try again";MessageBox.Show(label14.Text);this.Show();

} } }}

In above code random numbers are getting assigned to labels when user clicks on generate numbers (Label 1, 3, 5, 7, 9, 11). The form instantiates the Arithmetic operation class in order to get answer and that answer is checked with the actual user input.

Main form:formControl and properties used for this form:

Name Purpose Number of times usedText boxes To get user input for

answers 7

Buttons To generate random numbers and check answers

2

Group Box To group all related elements at one place

2

Labels To show random numbers generated by Random library.

8

Page 25: Sample Course Work

using System;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;usingSystem.Windows.Forms;

namespaceMathAcademy{public partial class Form1 : Form {public Form1() {InitializeComponent(); }

private void Form1_Load(object sender, EventArgs e) {

Page 26: Sample Course Work

}

private void button1_Click(object sender, EventArgs e) { CDBC conn = new CDBC();

conn.DbmsConnector(textBox1.Text, textBox2.Text, textBox3.Text, textBox4.Text, textBox5.Text);

Addition add = new Addition();add.Show();this.Hide();

}

private void button2_Click(object sender, EventArgs e) { CDBC conn = new CDBC();

} }}

Code in the above table helps user to make registration in the system. On successful registration or login, user can take arithmetic challenges. The form instantiates the CDBC class to make connection with MySQL server.

Checking user input code:

if (result1 == answer1 || result2 == answer2 || result3 == answer3) {label13.ForeColor = Color.Green;

label13.Text = "WOW!! You Got it right" + " Now yo're ready to take multiplication challenge";MessageBox.Show(label13.Text); Finish finish = new Finish();finish.Show();this.Hide();

Page 27: Sample Course Work

}else {label14.ForeColor = Color.Red;label14.Text = "Wrong answer, but always remember practice makes man perfect " + "Please try again";MessageBox.Show(label14.Text);this.Show();

Code above checks user input with actual answer. If user input is wrong system will not allow user to go for the next challenge.

Finish form:

Page 28: Sample Course Work

Software testing

Importance of testing:A software developer can commit errors during development stage. Some errors are not does not impact functionality of the software but some errors can break entire software. So, in these kind of situations taking care of errors is very important before deploying software in working environment.

Lets take a real world example of Internet banking, if a bank customer transfers some amount to other account and gets confirmation of transfer; but person at the other end who was supposed get the money did not received it. Now to settle this dispute both account holders will go to the bank because of errors in Internet banking software.

This is one situation where testing cannot be ignored. Deployment of software system before testing can impact end user of the software very badly.

But the testing is not just about getting errors out. Testing also validates standards of the software system. Below are some examples, which are included in testing standards.

User requirement verification: checking developed system components against user requirement specification document.

Validation: it assures all components developed are meeting user requirements and is it what customer is looking for?

Types of software testing:

Black box testing : in this testing tests are based on functionality and user requirements.

White box testing : in this testing tests are based on internal logic of the software i.e. statements, branches, paths and conditions. Another name for this testing is glass box testing.

Unit testing: this is testing of individual components of the software (Sprints in agile Scrum environment). Testing typically done by programmers not by testers.

Incremental integration testing: Also called continues testing, this is typically done when new functionality is added in the software. Can be done by developer or tester.

Integration testing : this is testing of all combined modules (or sprints) after integration testing. Typically done in distributed systems and server applications.

Functional testing : this testing completely ignores internal functionality of the software and focuses on the actual output given by software and checks if they are meeting user requirements.

System testing: Entire system is tested as per end user requirements.

Page 29: Sample Course Work

End-to-end testing: This testing is similar to system testing; but it involves real world use i.e. interacting with databases, hardware, communication devices and network systems.

Sanity testing: this testing is to ensure software is performing well to accept major testing efforts. If system is not performing well or not stable enough it can be assigned to fix.

Stress testing : in this testing system is stretched beyond specification to check how and when system is reaching crashing point and when it fails. i.e. Complex database queries and large amount of storage load.

Performance testing: this testing is to check whether system is meeting performance requirements or not.

Usability testing: this testing checks user friendliness of the system. I.e. proper documentation help of the system. In other words system navigation is checked in this testing.

Reference (http://www.softwaretestinghelp.com/types-of-software-testing/).

User/System Action Output Comment(s)Validate and capture user data from registration form

User data successfully stored in MySQL database

Goal achieved

Generate random numbers if user clicks on generate random numbers button

Numbers Generated using Random library

Goal achieved

Do not proceed if answer is wrong

Positive and encouraging message

Goal achieved

Help menu Information about how to use system

Goal achieved

Check answer when user clicks on check answer button

If answer is right proceed to next task

Goal achieved

If answer box is empty notify user

Show pop up message field cannot be empty.

Goal achieved

Check if user input is other than numbers

Show warning message for wrong input

Goal achieved

System security:

In math tutor software security is top priority that’s why all student data is stored in password-protected database. Unregistered user is not allowed to take quizzes in our math tutor software.Moreover students cannot take any quizzes without logging in to the system. For login in username and password fields are provided for all users.

Page 30: Sample Course Work

Conclusion:In math tutor software all functional and non-functional requirements are achieved according to instruction provided in assignment brief. This software can be improved in many ways, especially in User interface and user experience.

However, I really enjoyed learning experience, which I have encountered during development of Math tutor software.

Bibliography1. http://www.softwaretestinghelp.com/types-of-software-testing/ 2. http://bokardo.com/principles-of-user-interface-design/