ion suffices ("decide which type you want and provide a full set of operations for each type"). If the application domain is, say, the administration of a university, then the students and university employees are represented by objects, and the concepts of student, graduate student, teaching assistant, professor, and so forth, are represented by classes of an inheritance hierarchy. This modeling-based approach improves the productivity and quality of software development together with various forms of reuse, both at the level of an individual class and at the level of a group of classes, (such as a library or a framework). An application domain for which object orientation has been particularly successful is that of graphical interfaces. Following an OO programming approach, concepts like window, mouse, and button are represented by object classes. A distributed system is just another example: it can be viewed as the application domain for which we should identify and classi...