For our 4th semester software engineering course, we had to plan and implement a prototype of a standalone java application. The main aspect of the course was the planning of the app. This included requirements engineering, choosing a process model (we went with Scrumban), effort estimation, choosing a software architecture, choosing design patterns and creating UML diagrams.
For versioning we used Git and Github. The database was implemented with the H2 database engine. Testing was done with Junit and AssertJ-Swing.
What I've learned