1 Common Requirements
It is necessary to design and implement a graphical user interface application that allows solving a specific data processing problem. The program must be created using a universal object-oriented programming language. It is necessary to implement data input from an XML file, edit and save data in another XML file, as well as generate a report on the results of the program as HTML or PDF file.
Note: JSON files can be used instead of XML files.
The program should be implemented as a graphical user interface application. A graphical interpretation of the solution should be made.
The creation of a GUI application must be preceded by the development of a console application in which all implemented functions are demonstrated except for graphical interpretation.
The implementation of the program should be done using object-oriented technologies. The use of polymorphism is mandatory. An exception handling mechanism must be used to improve program reliability. To check the functionality of classes that are responsible for storing and processing data, a separate console application should be implemented. When designing classes, the principles of object-oriented design and the design patterns should be completed.
The execution of both programs (GUI application and console application) must be based on the use of a common class library.
The semester project director tasks you with your individual assignment, accomplishes control over your work, and allows you to defend your semester project.
2 Stages of Development
2.1 Research of Numerical Methods and Programming Technologies Used in Semester Project
On this stage you should obtain your individual assignment. Then you should study necessary numerical methods and programming technologies. The understanding of ground concepts of Unified Modeling Language (UML) is required.
Note: for a better understanding of mathematical methods, it is advisable to create small console applications that carry out the implementation of individual algorithms; this code can be used in further software development.
2.2 Requirements Setting. Analysis and Design
In UML notation, requirements on the software should be represented on the Use Case diagram. You should define primary and additional use cases. Additional use cases must be either included in or extend primary use cases.
At this stage, it is necessary to study the mathematical methods of solving the problem.
To identify the basic entities of the subject area, it is necessary to develop a class diagram from a conceptual point of view. Sequence diagrams must represent system's behavior by implementation of different use cases.
Software classes should be designed, object interaction and algorithms for individual operations are determined. The structure and composition of packages (modules) that provide the program implementation are being developed. The structure of classes and packages (modules) must meet the requirements of the Model-view-controller (MVC) pattern design: you should create independent parts such as model (model, classes responsible for processing domain data regardless of user interaction), external view (user interaction tools that include windows and visual components of the graphical user interface) and controller (usually a separate class responsible for the interaction of graphical user interface tools with model classes). It is also advisable to apply other design patterns.
Prior to the implementation of the software, you must determine the format of the source data. Since one of the software requirements is to represent the source data in XML format, a document schema should be created. You should also design data sets to verify the correctness of the program and prepare them in the form of source XML files. The simplest variants should be checked manually and graphically interpreted manually.
2.3 Implementation and Testing of the Computational Part of the Software
According to the previously designed diagram classes are created that provide the representation of the necessary mathematical functions for solving the problem. It is necessary to provide mechanisms for independent testing of individual classes.
During the implementation of classes that are responsible for the computational part of the project, it may be necessary to make changes to the diagrams that were previously designed, including class diagrams.
The implementation of the computational part of the software ends with the creation of a console application for checking the functionality of all functions that can be performed without graphical tools. The work of the program should be demonstrated on different sets of source data that involve both general behavior and specific cases.
Demonstration of computational part, in addition to implementing direct data processing, involves reading data from an XML document and writing it to an XML document, as well as generating a report in HTML or PDF format.
2.4 Implementation of GUI Application
This stage includes implementation of graphic user interface. It is reasonable to use program means of visual design. The main window of a program should contain a main menu, tables, text fields for data input and output, buttons for performing the most important functions, elements for displaying results, and other visual controls.
In a separate part of the main window (or in a separate window), a graphical interpretation of the solution of the problem is implemented.
Debugging of modules that implement user interface can be done independently. You should allocate so called "stubs" instead of invocations of numeric algorithms.
This phase ends with the assembly of all modules into a single application for further testing.
Note: for implementing a GUI application in C#, using the Windows.Forms library is not recommended; more modern tools such as WPF should be preferred.
2.5 Testing
Testing the program as a whole consists in preparing several (at least six) sets of source data that reflect the general and particular cases of solving the problem, various dimensions, various ranges of numbers (or other data). Testing variants should be prepared in separate files before implementation starts.
Negative test results cause the re-implementation of one or more stages of development.
2.6 Preparing a Project Paper and Presentation
At this stage, a project paper and a presentation are prepared. You can use Microsoft Office PowerPoint or OpenOffice.org Impress to prepare your presentation. You can also create a sequence of HTML pages. The presentation should reflect the following aspects of the work:
- topic of the work, performer;
- problem statement;
- UML diagrams (use cases, classes, etc.);
- screen forms:
- the data on which the testing was carried out;
- conclusions.
It should de 6-8 slides totally.
3 Semester Project Defence
One week before the final project defence you should demonstrate your software.
Semester project director should assess the quality of the program, the level of compliance with the task and the degree of autonomy of the work. In the case of a getting satisfactory rating (or better), the student begins to prepare project paper. In case of unsatisfactory evaluation, additional time of demonstration of the software product is assigned to the expanded examining board.
Before the final representation (defence) of your work you should prepare the following artifacts:
- writing paper, signed by your project supervisor and include his feedback;
- presentation of work in the form of slide show;
- software developed.
While defending the semester project, the student should report the task statement, the main stages of software design and the main results obtained during the work on the project, demonstrate the work of the software product and the results of its testing. The report should not exceed 5 minutes. In answering the questions, the student should demonstrate knowledge of the basics of computer science, programming and software design, including object-oriented programming, mathematical methods and tools that were used in the semester project. Regardless of the degree of use in the project, the student must demonstrate knowledge of theoretical concepts answering test questions from Quiz section.
In case of unsatisfactory assessment, semester project should be represented again, or completely executed again, depending on the decision of the semester project director.
If you defend your semester project after the end of semester, your mark will set with a decline.
.