How Do You Translate An Abstract Idea Into A Software Object?
A major responsibility of a software team’s project manager is to communicate with the customer. The goal of this communication is to probe the customer’s understanding of the problem. The project manager codifies the problem in unambiguous terms and presents it to the software team. The software engineers who comprise the team then translate the codified problem into the programming style of the object-oriented language of choice. Use abstraction to encapsulate complexity. Highlight the important aspects of the problem. Suppress the unimportant aspects of the problem. Structure the concepts in a way that leads to the best solution. Make wise structuring decisions now, because later it will be too late to undo the interpretation. Modularize around entities–for example, “Window,” “Product” or “Robot”–not according to processes or interactions. Take one module at a time and define its range of behavior, the number of possible states it can have and its interfaces with other modules. Th