Figure 1.1 The life cycle of software as a water wheel that can rotate from one phase to any of phase
Figure 1.2 The details of the sorting algorithm are hidden from other parts of the solution.
Figure 1.3 A digital clock
Three Principles of Object-Oriented Programming Encapsulation: Objects combine data and operations. Inheritance: Classes can inherit properties from other classes. Polymorphism: Objects can determine appropriate operations at execution time.
Figure 1.4 A structure chart showing the hierarchy of modules
Key Issues in Programming Modularity Modifiability Ease of use Fail-safe programming Style Debugging
Essential Features of Program Documentation Statement of purpose Author and date Description of the program’s input and output Description of how to use the program Assumptions such as the type of data expected Statement of exceptions Brief description of the major classes Comments in each class comments in each method Comments in the body of each method