Chapter 1

  1. Object-oriented programming stands for an approach to structure programs by employing encapsulation and inheritance. See slide 1-objects. It is motivated by the need to manage the complexity of software. See slide 1-analysis.
  2. Slides slide 1-features and slide 1-benefits give an exhaustive overview. The most important features are, obviously, data abstraction and polymorphism due to inheritance.
  3. 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?
  4. Aspects of software quality include correctness, robustness and extendibility. See slide 1-quality. In particular, with regard to the cost of maintenance, a valid criterion would be maintainabiliy. OOP contributes to maintainability by supporting a strong notion of locality.
  5. See slide 1-languages.
  6. 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.
  7. Those 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.