Visual programming is used to develop exceptional quality software and products. These are used at institutions, departments, private organizations for developing database, handling and managing various tasks. The software developed using .NET programming, advanced windows forms and classes, is implemented and tested by engineers to protect and validate the project so as to make software able to be deployed and contribute functions. The software project functional and non functional requirements are depicted by use case and class diagrams. While the software code of the project is tested for correct functioning. Later the deployment is possible with ensuring proper details and instrumentation is followed. Usability and effectiveness of a software platform develops from manual installation, test planning and performance.
Keywords: Software, math, forms, classes, objects
Software Engineering is the branch which studies the application of engineering to the design, development, and maintenance of software. Visual programming develops software programming such that textual software code is fitted with series of visual graphics elements. Thus software programming enables product as computing potential by computer hardware and vehicle for developing better products. Thus product software is basis for control of computer operating systems, communication of information with creation and control of other programs like tools and environments.
In the visual programming project the London school by name of Holborn Primary school wants to motivate new students to learn mathematics. This is expected to be done by math teaching software called math tutor. The primary goal is to make the experience fun while adding that students get to learn the new techniques of basic arithmetic operations such as Addition, Subtraction, Multiplication and Division.
This software must essentially at first ask the student to enter his/her name and welcome the student. Within this project there are functional and non functional requirements. The functional requirements to be met are – software must give student three addition tasks. If student answers all task questions correctly then s/he should be given the next level of three subtraction tasks. If student succeeds in all the three subtraction tasks, then s/he should be given another set of three multiplication tasks followed by three division tasks. After successful completion of all tasks, then the student must be congratulated. When the student is unable to meet answer requirements he should be given feedback and asked to complete a simple tutorial or feedback and try for the level questions again. The non functional requirements include a Graphical User Interface fit for the primary school students or early learners. This also includes that the GUI be attractive, colourful and appealing to the young pupils.
With the use of visual programming a set of diagram called the use case diagram is developed for the beginning of project. Using the analysis of the use case diagram the functional requirement is fulfilled. The GUI for the software design would use a specific user interface design which would include a class diagram as well. The non functional requirements are studied with the functional ones in the analysis and design part of the study. The implementation of the project happens with the software code with snippet included. The controls and their properties are presented and studied for their proper inclusion in the project. Under the software project the benefits, uses and applications of different types of testing are also included.
The conclusion to the software project determines the efficacy of the software, the documentation as a user manual for the installation and use of the software. Also one would find how the software is capable of utilizing better software as addition to learning math skills at the primary level of schooling. The bibliography provides the reference list for the project.
Analysis and Design
In order to determine the behaviour of the system all the functional requirement should be captured in a use case diagram. This use case diagram explains the route taken for the development of the project software and requirements of function. These functional requirements are diverse and follow the main need of the system to explain how the software is able to deliver a proper versatile and good maintained application for windows platform. This is explained as a diagram where the student interacting with the system is completely displayed using appropriate diagrams.
The functional requirements of the system i.e. what the system must do are as follows:
- There should be three tasks for each arithmetic operation i.e. (Addition, Subtraction, Multiplication and Division).
- System prepares random numbers for each task.
- There is time frame for each set of question to be answered as a countdown.
- If the time’s up without answering all the questions correctly, the system must generate new set of numbers by clicking on the get question button.
- Positive feedback must be given on student progress.
- Encouraging feedback must be given when student fails to answer the questions.
Non-functional requirement in software engineering is consider being the architectural aspect of the system. In this project, the non-functional requirements of the system are as follows.
- Use of attractive and appropriate images for primary school children
- Font and size must be easily readable.
- Graphical user interface (GUI) should be attractive, colourful and appealing to young pupils.
The class diagram is intentioned to be the explanatory part of the non functional requirement and completes the analysis for the visual programming project. This begins the project development framework which is exceptional with the help of visual studio tools and many more.
Using software engineering principles and those for Visual studio C# the first part of implementation of project was to develop the code for registration form, then login form, timer countdown form, accept results form, task form for addition, subtraction, multiplication and division and finally the concluding completion of exercise form. These were developed using the principles of windows forms, classes, and code principles of using arguments effectively into he code snippet as explained.
The software project development took place in stages where the steps are being highlighted below;
- In server explorer the data connection node and then the Math-Tutor.mdf node.
- Open the shortcut menu for tables and then choose Add new Table.
The table designer opens and show a grid with one default row that represent a single column in the table and by adding rows to the grid, adding columns in the table.
- In the grid, add a row for each of the following component.
- In the upper left corner of the table designer, click on the update button as you can see below and all changes are saved to the local database file.
- On the menu bar, choose view, other window, and show data source.
- In the data source window, select the Add New Data Source link. When the data source configuration wizard appears, click two times on the next button to accept the default settings.
- On the choose your data connection page, click on the box that has the name of database and select the table under it. Then I click on finish. Database has been configured. According to Turtshi (2002).
- On the registration form, you can clearly see two (2) buttons (Login, and Sign-Up), and the database grid is right under it. Now, if the student hasn’t registered, he/she must register by filling out the form and click on the sign-up button. When the sign-up button is being clicked, a small window will appear indicating that a new record has been added to the database.
- After the registration process, and after the students data has been recorded into the local database, students can now Log into Math-Tutor to perform the four mathematical operations. The form requires that students should enter their User-Name and Password to access the system.
- If all the Login details are correct, when the Login button is click on, it will take you straight to the first mathematical operation, which is Addition. On this form, there are three Addition questions that must be answered if not you will not be able to proceed to the next level. There are three major buttons on this form (Get question, check answer and next level). After answering all the questions, the student can check their answer by clicking on the check answer button. If all the questions have been answered correctly the student can continue to the next level.
- After questions have been generated and students have entered the corresponding answers, now it is important for the student to know if the answer is right or wrong. In order to know that, the second button which is check answer must be pressed. When the button is pressed, the system will automatically check whether the answers are right or wrong.
- Similarly the form for subtraction, multiplication and division are created for student. In all possibility when the student has finished all task the window for concluding the completion of the task and has been completed. It also shows login or logout function as well.
According to Dykstra (2014).
Using testing methods and techniques one can evaluate system or components to find whether it satisfies specified requirements. This results in actual, expected and the difference between the results. Testing conducts process in order to identify any gaps, errors or missing requirement to actual desired values. There is a significant difference between testing for verification and for validation. Verification is first done by developers using objective methods while validation is done for the right product by testers in a subjective way for all functionalities. While quality assurance concerns with the development testing of processes and procedures, it is process oriented, preventive and subset of Software Test Life Cycle. Quality control is about actual verification of product to specified standards, it is product oriented, corrective and subset of quality assurance. While testing is for actual identification, it is preventive, product oriented and subset of quality control.
According to Jenkins (2008), some of the myths of testing include being too expensive, time consuming, testing if possible, software tested should be bug free, testers are responsible for quality of product etc. Quality standards are being developed the world over by organizations. These are ISO/IEC 9126:, ISO/IEC 9241-11:, ISO/IEC 25000:, EE 829:,etc.
Manual testing for products is done using a manual process while automation testing includes using proper scripts and commands to test software products. The automation testing includes what, when, and how to conduct testing for products.
There are different methods for testing like Black box where tester is without any knowledge of the interior workings of the application. The tester is oblivious to the system architecture and does not have access to the source code. White box testing is the detailed investigation of internal logic and structure of the code. White box testing is also called glass testing or open box testing. In order to perform. Grey Box testing is a technique to test the application with limited knowledge of the internal workings of an application. In software testing, the term “the more you know the better” carries a lot of weight when testing an application.
Levels of testing are of two types functional and non functional. Black box testing that is based on the specifications of the software that is to be tested. The application is tested by providing input and then the results are examined that need to conform to the functionality it was intended for. Functional Testing of the software is conducted on a complete, integrated system to evaluate the system's compliance with its specified requirements. It comprises unit testing, integration testing, system testing, regression and acceptance testing. There is also the other non functional testing which includes upon the testing of the application from its non-functional attributes. It includes performance, usability, security and portability testing.
Benefits of software engineering to an institution are to be able to develop and deploy software platform for education based quick service. This helps school students are able to practise and exercise their way through popular tasks like for mathematics. In the case study project assignment we developed the multi form software and a GUI for the school and students can use it for practicing mathematical arithmetic operations.
According to Dhall, the software development project using visual studio is described within the use of software functions and principles. The procedure for using .NET applied techniques and code practices have been included therein. The implementation of the code programs as well as software was properly included with the steps being followed for the design. Visual programming techniques make it easier to develop software and windows based application for desktop which can be integrated into the school system and for use by young pupils later on. The testing phase for the project included the testing of software for performing the actions of display registration, local database storage, a processed application for arithmetic tasks (three for each mathematical operation) and a concluding window to indicate the best completion of the tasks. When the student has received feedback for the test tasks he is encouraged to try the next level or use a tutorial. The student can logout or exit from the software when he or she is able to complete tasks successfully at the given level.
There is room for improvement of the software design from GUI, colours, font size and background design. Software engineering as a branch of applied sciences has benefitted greatly the automation and service level environment of task and management functions. Without the use of Visual Studio and .NET basics to programming the level of sophistication could not be built using the advanced level techniques. Using forms, classes and strings in the project one was able to analyze the difference to software using these methods. While windows application development is integrative, one needs to assess the various procedures to fulfil the database handling within the programming itself. Various steps to the fulfilment of the software design need to be ascertained so that the completion of project is maintained in a proper and effective manner. Combining various steps to the overall development of the project the windows desktop application and the software Math Tutor are able to get applied to the primary school requirements.
The testing phase of software development includes numerous assessments. In the use of the software design by visual studio we have number of test platforms that can be used to ascertain the level of design capability. While making a test plan for automation of software is best, the use of tools like debugging in visual programming can benefit the tester. The test automation is non functional and also automated from the test plan. As a result the software testing can be conducted for the unit level performance and functionality called as Black Box testing. Also as an indication of the installation manual one would be effective to use the software according to the guidelines. Once the code and the project are obtained the individual setup of the program requires the commands from Visual studio and local storage needs.
According to Naagel (2013), Use of the important .NET techniques for developing software is based on advanced techniques in software engineering. These relate to enhancing use of available attributes, arguments, coding practices which developed into even better standards. Thus being an integral component of Windows it includes a virtual execution system called the common language runtime (CLR) and a unified set of class libraries. There are wide functionality benefits from using .NET classes for file input and output to string manipulation to XML parsing, to Windows Forms controls. Use of software engineering platform has developed from analytics to cloud computing and social computing such that there is increased harness of form factor and user interfaces for fast and effective software life cycle development. In the case study software project we applied the principles from .NET and C# to enable the use of software Math Tutor for young pupils in learning simple mathematical operations in arithmetic.
Jenkins, Nick (2008). A Software Testing Primer, An Introduction to Software Testing. USA: creative commons.
Turtschi Adrian, Werry Jasoon, Hack Greg, Albahari Joseph, Nandu Saurabh, Lee Wei Meng (2002). C#. N ET Web Developer’s Guide. USA: Syngress publishing.
Dykstra, Tom (Dec 5 2014). Getting Started with Entity Framework 6 Code First using MVC 5. Retrieved from http://www.asp.net/mvc/overview/getting-started/getting-started-with-ef-using-mvc/creating-an-entity-framework-data-model-for-an-asp-net-mvc-application
Dhall Suruchi, Sundararaman Poornima, C# and .NET Framework. Retrieved from http://www.cs.colorado.edu/~kena/classes/5448/f12/presentation-materials/dhall.pdf
Nagel Christian, Evjen Bill, Glynn Jay, Watson Karli, Skinner Morgan, (2013). Professional C# 2012 and .NET 4.5. Indiana, USA: John Wiley and sons.