Unified Modeling Language
The Unified Modeling Language (UML) has emerged as the standard notation for OOAD.
UML has many types of diagrams, each aimed to either describe the structure or the behavior of the software system. The most commonly used is the Class diagram employed to illustrate a software system's necessary classes and their relationships.

You must produce a UML Class diagram for your project and keep it updated at each iteration. The diagram gives us an overall view of your software system more effectively than either a natural language or a programming language can.
IntelliJ IDEA Ultimate Edition comes with a diagramming utility that can convert your code to UML diagram. You may use this tool if you wish.
If you use a tool to automatically generate UML class diagram from your source code, make sure you can read and understand it. We will be using UML for describing design principles in lecture and related design questions on the exam (quiz).