Due date: November, 30
All source code should be stored in a version control system (Git or Mercurial).
You will need to provide the following:
- a term paper in paper form;
- a term paper in electronic form;
- a zip archive containing your source code repository with full commit history.
Please not that the zip file GitHub offers to download is not the whole repo but only the latest revision. In order to download the repository with full commit history you will need to clone it.
Bonuses
You can get a bonus by doing one of the following:
- Finish the term project before the deadline: 1 point per week;
- Write an automated deploy/installation script (it should be described in the term paper): up to 10 points (depending on the complexity of the script)
- Localize your program (the approach and instruments should be described in the term paper): up to 10 points (depending on quality of localization and quantity of translated strings)
Term paper structure
Title page
1 page
Contents
1 page
Introduction
1 page
A short introduction to the domain. Describe the tools you used for development.
1. Software Requirements
8 pages
Purpose of the program.
Area of application.
Problems that the program is supposed to solve.
A structured list of functional and non-functional requirements to the program (see chapter 3).
You may write user stories with scenarios (see slides, article).
Use cases (see chapters 4, 5).
Use case diagram (or diagrams) with specifications for at least five most important of them: short description, actors, preconditions, flow of events, postconditions, alternative flows.
2. Analysis (chapter 6)
8 pages
-
Analysis classes: a diagram with description (chapters 7-10).
-
Sequence diagrams for use cases with instances of analysis classes their operations (chapter 12).
-
Activity diagrams that describe the system behaviour.
-
Statecharts for analysis classes.
3. Design (part 4)
8 pages
-
Design classes.
-
Sequence diagrams for operations of design classes.
-
Statecharts for design classes.
-
Components, subsystems and interfaces.
4. Implementation and deployment(part 5)
8 pages
Testing
- Unit testing;
- Integration testing;
- System testing.
-
UI testing
Continuous Integration
-
Describe how you implemented build automation, include config file for build automation with your comments.
-
Describe the process of configuring the continous integration system (e.g., Jenkins, Travis).
Deployment
- Describe the process of deployment of the system, include a deployment diagram.
5. Documentation
8 pages
- Write a user guide with screenshots. It should show how the requirements described in section 1 are implemented.
Conclusion
1 page
References
1 page
Each diagram should be accompanied with a text description.
Each figure should be labeled and numbered using automatic numbering.
Each figure should be referenced from the text.
A figure should not immediately follow a caption.
Text on figures should be readable. Split big diagrams into smaller ones.
All captions of the same level should be formatted identically (font, intervals, alignment). Do not use empty lines to adjust intervals before captions or after them.
Main text should have the same formatting over the paper (font, intervals, alignment).
All captions, except "Contents", "Introduction", "Conclusion", "References", should be numbered using automatic numbering.
Table of contents should be created automatically and update before printing.
Each page except the title page should be numbered.
Do not use multiple spaces or line feeds in a row for formatting.