Top-down development: start at implementing the most general modules
The bottom-up development: start at implementing the modules that provide specific functionality and then integrate them into more general modules
In practice, there is no pure bottom-up or pure top-down design. A problem solver attempts several approaches on the path to the final solution (Charitsis et al., 2022)
Goal: identify subsolutions, recompose the subsolutions into a working program
Problem: game of Tic-Tac-Toe
Download the TicTacToe.java
file and refactor it into multiple classes with appropriate methods. This assignment focuses on breaking a large problem down into smaller subproblems and properly incorporate encapsulation, inheritance, and polymorphism.
Now that you have classes and methods, write JUnit tests to test your game functionality.