The "Prova Finale di Ingegneria del Software 2022" is the final test of the Software Engineering course at Politecnico di Milano.
Teacher: Gianpaolo Cugola
Group: GC42
AA: 2021/22
Grade: 30L
The goal of the project is to program a Java version of the board game Eriantys, by Cranio Creations.
The project includes:
- Initial UML diagram
- Final UML diagram, generated from the code by automated tools
- Working game implementation
- Source code of the implementation
- Source code of unit tests
- Arturo Benedetti - 10747545
arturo.benedetti@mail.polimi.it - Luca Romanò - 10656514
luca8.romano@mail.polimi.it - Lorenzo Rossi - 10698834
lorenzo17.rossi@mail.polimi.it
Functionality | State |
---|---|
Basic rules | 🟢 |
Complete rules | 🟢 |
Socket | 🟢 |
CLI | 🟢 |
GUI | 🟢 |
All Characters | 🟢 |
Multiple games | 🟢 |
Persistence | 🟢 |
🟢 Implemented
🟡 In progress
🔴 Not implemented
Extensive testing was performed on all parts of the software, both by writing unit tests and with manual QA.
Coverage criteria: code lines
Package | Tested Class / Subpackage | Coverage |
---|---|---|
Controller | Game | 231/242 (95%) |
Model | Global Package | 363/398 (91%) |
Model | Board | 130/144 (90%) |
Model | Characters | 209/223 (93%) |
To run the tests and compile the software:
- Install Java SE 17
- Install Maven
- Clone this repo
- In the cloned repo folder, run:
mvn clean package
- The compiled artifact (
Eriantys.jar
) will be inside thetarget
folder.
There is a unique jar file for both the client and the server. Therefore, you have to select which one you want to launch in the arguments.
In order to play, you'll have to launch at least one server and two clients (either CLI or GUI).
In order to play multiplayer from different locations, port forwarding is needed.
It is possible to set the IP and the port you want to connect to by using the optional argument port and IP.
Requirement: a terminal window of at least 150 columns by 55 rows.
In the terminal, run:
java -jar Eriantys.jar cli [port <port number>] [ip <ip address>]
In the terminal, run:
java -jar Eriantys.jar gui [port <port number>] [ip <ip address>]
It is possible to set the port you want to use. In the terminal, run:
java -jar Eriantys.jar server [port <port number>]
- AstahUML: UML Diagrams
- IntelliJ IDEA Ultimate: Main IDE
- SonarQube: Code analysis