Common Policies
1 Common Requirements
The aim of this semester project is to consolidate the knowledge and skills gained during the study of the subject "Programming Basics". The semester project should include design and creation of a program that implements a simple computer game (such as a puzzle or a board game) with the obligatory use of 3D graphics. The following key functions are required:
- new game field creation (window cleaning and initial state setting)
- game element choosing using keyboard and mouse manipulator
- game elements manipulations according to the rules of the game
- game field turning
- scaling
- counting and storing game statistics.
The implementation of the program should be done using object-oriented technologies. In particular, you need to create classes to represent the main elements of the game
The semester project supervisor tasks you with your individual assignment, accomplishes control over your work, and allows you to represent your program and to defend your semester project.
2 Stages of Development
2.1 Studying the Task and Research of Programming Technologies Necessary for its Solution
On this stage you should obtain your individual assignment. Then you should study necessary programming technologies. The understanding of ground concepts of Unified Modeling Language (UML) is required.
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 included in or extend primary use cases.
You should also implement detailed description of game's rules.
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.
2.3 Development of Software Structure. Realization and Testing of Particular Classes
On this stage, you should develop classes according to UML class model. These classes should represent entities of your domain (scene, shapes, etc.). Usage of inheritance mechanism is recommended. Each essential class should be separately tested.
As a rule, creation and test of classes requires changes in UML model.
2.4 Implementation of the Program as a Whole. Debug the Program
This stage includes the implementation of graphical user interface. You should implement the keyboard input and support the use of mouse. In addition, the functionality of the program can be expanded in accordance with the task specified by the project supervisor. Execution of an additional task requires the reproduction of previous stages of execution at a higher level, including clarification of requirements, modification of diagrams as well as additional software implementation and testing.
This stage is completed by assembling all modules into a single project for its further testing.
2.5 Testing
t is necessary to prepare different tests that provide different sequences of interaction with software for testing. Test variants and the results obtained should be formally recorded and then presented in the project paper.
Insufficient results of testing require reimplementation of some previous steps of program 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.
3 Semester Project Defence
The semester project defence is carried out in two stages:
- Demonstration of program work
- Final defence
Two (or more) weeks before the final project defence you should demonstrate your software.
Members of the examining board 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:
- project paper, signed by your project supervisor;
- presentation of work in the form of slide show; the required slides are
- problem statements
- rules of the game
- requirements
- class diagram
- sequence diagram
- results obtained
- conclusions
Diagrams should be prepared in accordance with the Unified Modeling Language (UML) standard.
In your oral report (about five minutes long) you should discover problem statement, stages of development, structure of your software and obtained results. Members of the examining board should ask you about your software and its development process, as well as common concepts and specific of software design and program development (see Quiz).
The final mark should be determined regarding on both previous and final presentation. In case of unsatisfactory assessment, semester project should be represented again, or completely executed again, depending on the decision of the examining board.
If you defend your semester project after the end of semester, your mark will be one level lower.