Problem to solve:
Design a student university-enrolment application
Create an application to act as a University student management system.
You should create classes to model students and papers.
The system should store the following information about each
• Student – name, birthdate, ID number, an address and a collection of papers they are enrolled in.
The system should also store the following information about each paper name
• Paper code, course coordinator and a list of students enrolled in the paper. All data members should be private and any properties should be read only.
The application should store a collection of students and a collection of papers,
System should also have the functionality to add a new student to the university, add a new paper to the university and enrol a student in a paper. A separate form should be used to perform each of these functions.
As output, the application should be able to display a list of all the students enrolled in the university, a list of all the papers taught,
Allow the user to select a student and display all the papers that student is enrolled in and finally allow the user to select a paper and display all of the students enrolled in it.
Once you have developed a working program, refactor it in order to make it even better and thus gain maximum marks.
Software Development Requirements:
Another requirement of the application is that all input and operations in the application should have any possible errors handled appropriately. Careful consideration is to be given to the overall architecture, variable/procedure naming conventions (as discussed in class) as well as variable scoping. The software must make thorough use of user-defined methods and be readable. All non-event handler procedures are to be developed using TDD. The unit tests are expected to perform 100% code coverage and be written for every method. Therefore, your entire software must be designed in such a way that it is decoupled from the presentation layer and is testable.
Half of the marks will be awarded for correct behaviour of the program. The remaining marks will be allocated for the architectural design of the application and for using TDD (with automated unit tests), together with the general quality of the code. Code that does not compile will receive zero marks.