Chapter 1

Instructors' Guide

Ch 1 Ch 2 Ch 3 Ch 4 Ch 5 Ch 6 Ch 7 Ch 8 Ch 9 Ch 10 Ch 11 Ch 12
  1. Object-oriented programming stands for an approach to structure programs using the object metaphor as an abstraction device. See slide 1-themes. It is motivated by the need to manage the complexity of software.
  2. An exhaustive overview is given in slide 1-features and slide 1-benefits. The most important features are, obviously, data abstraction and polymorphism due to inheritance.
  3. The complexity referred to is not the structural complexity of the computation, that is the space and time needed to solve a problem, but the conceptual complexity of programming, the organization of the software.
  4. Contracts are a means to specify the obligations of the client and the services an object is to provide, in case these obligations are met, in a formal way.
  5. From a historical perspective, OOP is a paradigm of programming. See slide 1-paradigms. However, from a software engineering perspective, OOP is increasingly becoming important for design and analysis as well. See slide 1-respons.
  6. These include imperative languages, functional languages and logic programming languages. The essential features of OOP encapsulation and inheritance. These may be realized in a variety of language settings.
  7. An object-oriented approach blurs the distinction between analysis, design and implementation. See slide 1-lifecycle. Moreover, it allows for different software development models, such as prototyping. See slide 1-development. What is your opinion? As concerns maintenance, corrective maintenance is facilitated by the localization due to encapsulation. Adaptive maintenance is quite another matter. Polymorphism helps, but only if extensibility has been an explicit design goal.
  8. Aspects of software quality include correctness, robustness and extendibility. In particular, with regard to the cost of maintenance, a valid criterion would be maintainability. OOP contributes to maintainability by supporting a strong notion of locality.
  9. See slide 1-languages.
  10. See the discussion in section Challenges.

slide: Answers