It is acceptable to make B a subclass of A only if, for every public method with identical signatures in both A and B, the preconditions for A are no stronger than the preconditions for B and the postconditions for A are no weaker than the postconditions for B.
Software entities, including code and data, should not be duplicated.
You can pick your friends, and you can pick your nose, but you can’t pick your friend’s nose.
A class should have only one reason to change.
Many client-specific interfaces are better than one general-purpose interface.
Code and design should be easy for another programmer to understand.
Software should deal with unusual situations gracefully and avoid crashing.
Software should perform correctly and efficiently when problems grow in size by several orders of magnitude.
Software defects can be found and fixed without introducing new defects.
New features can be added without breaking existing features.
These conditions document what should be true before and after executing a method.
This quality means that few internal comments are needed to understand method code.
All code within a method should be at a similar __________.
A method that does just one thing (and does it well) has this quality.
This principle states that a method should either change object state or return a value, but not both.
The process of revising code to make it more elegant without changing its functionality.
Planning Poker is a game for accomplishing this software development task.
These cards are used to design classes and their relationships.
Git is an example of this general category of tools.
A contrast to the Waterfall Model, this kind of software development process involves brief iterations through the entire software development cycle
Like an interface, this kind of class cannot be instantiated.
Both of these Java keywords should be used when defining a constant.
This term describes when a class has two methods with the same name but different parameters.
This process means that the Java runtime environment, when asked to invoke a method on an object. looks at the actual class of the object to find the method implementation to execute.
This property allows objects of different classes to share a common type.
What is the Liskov Substitution Principle?
What is the DRY Principle (Don't Repeat Yourself)?
What is the Law of Demeter?
What is the Single Responsibility Principle?
What is the Interface Segregation Principle?
What is readability?
What is robustness?
What is scalability?
What is maintainability?
What is extensibility?
What are preconditions and postconditions?
What is self-documenting code?
What is level of abstraction?
What is cohesion?
What is the Command-Query Separation Principle?
What is refactoring?
What is estimation?
What are Class-Responsibility-Collaborator (CRC) cards?
What is a Version (or Revision) Control System?
What is agile software development?
What is an abstract class?
What are static and final?
What is overloading?
What is dynamic method invocation?
What is subtype polymorphism?