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