41 Glossary
This glossary defines core terms used throughout the book.
41.1 Algorithm
A finite, explicit procedure that transforms inputs into outputs while meeting stated guarantees.
41.2 Asymptotic Complexity
A description of how runtime or memory grows as input size grows (for example: O(1), O(log n), O(n), O(n log n), O(n^2)).
41.3 Class Invariant
A condition that must hold for every valid object state of a class.
41.4 Contract
A precise behavioral agreement in code, usually expressed with preconditions (require), postconditions (ensure), and invariants.
41.5 Coupling
The degree to which one module depends on details of another.
41.6 Data Model
A structured representation of entities, relationships, and constraints in a problem domain.
41.7 Deduplication by Ancestor Class
When combining inherited items (such as invariants), each ancestor class contributes once even in multiple-inheritance graphs.
41.8 Encapsulation
A design principle that hides internal representation and exposes stable behavior through clear interfaces.
41.9 Feature (Method)
A callable behavior defined on a class.
41.10 Inheritance
A mechanism where a class reuses and extends behavior or structure from one or more parent classes.
41.11 Invariant
A property that must remain true across allowed state transitions.
41.12 Multiple Inheritance
A form of inheritance where a class has more than one immediate parent class.
41.13 Postcondition (ensure)
A condition that must be true after successful feature execution.
41.14 Precondition (require)
A condition that must be true before feature execution is valid.
41.15 Recursive Inheritance Merge
A rule where inherited contracts are collected transitively across parent classes.
41.16 Refactor
A structural code change that preserves externally visible behavior while improving design qualities.
41.17 Reliability
The ability of software to behave correctly under expected load and adverse conditions over time.
41.18 Scaling
The behavior of a system as data volume, traffic, or operational complexity grows.
41.19 Search Space
The set of candidate states or paths an algorithm may need to inspect.
41.20 Time Complexity
How execution steps grow as input size grows.
41.21 Transition Rule
A rule that defines which state changes are legal for an entity.