Lecture overview -- Keyboard shortcut: 'u'  Previous page: Kind of Classes -- Keyboard shortcut: 'p'    Lecture notes - all slides and notes together  slide -- Keyboard shortcut: 't'  Help page about these notes  Alphabetic index  Course home  Lecture 6 - Page 4 : 4
Notes about C++
Design Using C++
Quotes

  • Every successful large system is a redesign of a somewhat smaller working system. I know of no exceptions to this rule

    • Page 709 on the use of models. In the broader context of 'The development process'

  • Maybe the most important criterion for a prototype is that it has to be so incomplete that it is obviously an experimental vehicle and cannot be turned into a product without a major redesign and reimplementation.

    • 711 on experimentation and prototyping

  • Most organizations reward individuals and groups that choose to re-invent the wheel

    • Page 714 on reusability

  • If productivity is measured in terms of number of lines of code produced, a sucessful application of reuse will appear to cause negative performance of programmers

    • 716-717, in a discussion on individuals and reusability

  • Some problems are best solved writing a set of procedures

    • Page 727, in the context of ignoring classes and 'design and programming language'

  • Forcing everything into a single hierarchy can introduce artificial similarities and obscure real ones

    • page 732, using class hierarchies exclusively. Class Object...

  • Naturally, a derived class depends on its base classes

    • It is less often appreciated that [...] if a class has a virtual function, the class depends on derived classes [as well].

    • Page 737 in the context of dependencies within a class hierarchy.

  • A one-to-one mapping between the design concepts and the programming language concepts should be used whereever possible

    • Page 747. As an example: delegatation.

  • A major concern of a class design is to get an object [of that class] into a well-defined state

    • The simple act of defining invariants and using them during debugging is an invaluable help in getting the code right

    • 748 - 750 in the context of invariants