Flowers
Learning Objectives
List the preferred characteristics of an object-oriented application architecture
State the definition of the Liskov Substitution Principle (LSP)
State the definition of Bertrand Meyer’s Design by Contract programming (DbC)
Describe the close relationship between the Liskov Substitution Principle and Design by Contract
State the purpose of method preconditions and postconditions
State the purpose of class invariants
Describe the effects weakening and strengthening preconditions have on subclass behavior
Describe the effects weakening and strengthening postconditions have on subclass behavior
State the purpose and use of the open-closed principle
State the purpose and use of the dependency inversion principle
Describe the characteristics of bad software architecture
Demonstrate your ability to use the three design principles in your programming projects