Object Oriented Software Development:
Object-Oriented Analysis
Almost any experienced software developer will tell you that you need to know what you want your software to do long before you begin to worry about how you are going to make your software do whatever it is supposed to do. This leads naturally to asking what the "behavior" of the software is supposed to be, and pushes developers to talk to the end users before proceeding too far and making too many assumptions it will be difficult to back away from.
This viewpoint, in turn, also naturally, encourages a developer to think of pieces of software as "things" that "behave" in certain ways and have certain "properties", just like real "objects" in the "real world". At the risk of oversimplification, then, one might say that an object-oriented analysis of a problem would be one that attempted to view the problem as a collection of objects, each with its own behavior and properties, and with all objects "communicating" with one another in whatever ways are necessary to accomplish the task at hand.
Question:
What use cases can you identify (and describe)
for the game of Mastermind?