Object Oriented Programming

  • OOP
  • Aquarium simulation
  • Solid principles
  • Design patterns

An aquarium simulation built in BlueJ, incorporating SOLID design principles & patterns

Firetime game logo
  • Java language logo


  • BlueJ logo



Let me begin by saying that this lesson was one of the hardest of them all, the lecturer admitted as much during the second semester in comparison with other Universities. However, having spent many hours learning, testing, toying with BlueJ, and getting to grips with OOP & SOLID principles and designs, I also came to realise that I actually really enjoy software design.

Object Oriented Aquarium class diagram

Although I'd made progress making a game for the 1st Year Game module, this was on a totally different level and really opened my eyes to design patterns and software considerations. I found the challenge of balancing module requirements along with SOLID OOP principles really interesting. And once up to speed with that and Java, I really enjoyed building something that was both maintainable and adaptable as it evolved and grew throughout the semester.

Divide & Conquer

As in most cases, there were some additional animations and features I would have liked to of included, flocking behaviour and additional physics would have improved the simulation considerably. Priority was put toward completing the module's objectives however, and making sure that it would compile and run. Putting those missing details aside however, I understand from the lecturer that my project is used as a showcase to other prospective students to view during open days, which is really neat!