sdf
Template
- A C++ construct representing a function or class in terms of generic types
Definition -
- A declaration that also fully specifies the entity declared
Multiple Inheritance
- A derived class inheriting class members from two or more base classes
Override
- A derived class replacing its base class' implementation of a method
Setter
- A method that changes the value of a private variable
Branch
- A second distinct development path within the same organization and often within the sameversion control system
Process
- A self-contained execution environment including its own memory space
Declaration
- A statement that introduces a name with an associated type into a scope
• Object-Oriented Programming (OOP) -
- A style of programming focused on the use of classes and class hierarchies
Class
- A template encapsulating data and code that manipulates it (C++ also has struct, which is identical other than default visibility)
• Principle of Least Astonishment†
- A user interface component should behave as the users expect it
• Validation Rules
- Algorithmically enforceable constraints on the correctness, meaningfulness, and security of input data
Encapsulation
- Bundling data and code into a restricted containe
• Data Validation -
- Ensuring that a program operates on clean, correct and useful data
• Garbage Collector†
- In managed memory systems, program that periodically runs to free unreferenced memory
Concurrency
- Performing 2 or more algorithms (as it were) simultaneously
• Agile Process†
- Prioritizing individuals and interactions, frequent delivery of working software, customer collaboration, and flexible response to change
Inheritance
- Reuse and extension of fields and method implementations from another class
• Waterfall Process†
- Separating software development into long, discrete phases such as Requirements, Design, Implementation, Verification, and Validation
Abstraction
- Specifying a general interface while hiding implementation details (sometimes listed as a 4th fundamental concept of OOP, though I believe it's common to most paradigms)
Variable
A block of memory associated with a symbolic name that contains an object instance or a primitive data value
Attribute
A class member variable
Friend
A class or a function (NOT a method!) that is granted access to its friend class' private members
• Class Library -
A collection of classes designed to be used together efficiently
• Enumerated type
A data type consisting of a fixed set of constant values called enumerators (C++ has both enum and enum class)
• Primitive type
A data type that can typically be handled directly by the underlying hardware
Method
A function that manipulates data in a class
Standard Template Library
A library of well-implemented algorithms focused on organizing code anddata as C++ templates
Reference Counter†
A managed memory technique that tracks the number of references to allocated memory, so that the memory can be freed when the count reaches zero
Getter
A method that returns the value of a private variable
Mutex
A mutual exclusion object that prevents two properly written threads from concurrently accessing a critical resource
Namespace
A named scope
• Algorithm -
A procedure for solving a specific problem, expressed in terms of an ordered set of actions to execute
Baseline†
A reference point in a version control system, using indicating completion and approval of aproduct release and sometimes used to support a fork
Operator
A short string representing a mathematical, logical, or machine control action
Destructor
A special class member that cleans up when an object is deleted
Constructor
A special class member that creates and initializes an object from the class
Iterator
A standard library abstraction for objects referring to elements of a container
Reentrant
An algorithm that can be paused while executing, and then safely executed by a different thread
Instance
An encapsulated bundle of data and code (e.g., an instance of a program is a process; an instance of a class is an object)
• Assertion†
An expression that, if false, indicates a program error (in C++, often via the assert keyword)
Thread
An independent path of execution within a process, running concurrently (as it appears) with other threads within a shared memory space
Object
An instance of a class containing a set of encapsulated data and associated methods
• Exception
An object created to represent an error or other unusual occurrence and then propagated via special mechanisms until caught by special handling code
• Class Hierarchy -
Defines the inheritance relationships between a set of classes
• Operator Overloading -
Providing a user-defined meaning to a pre-defined operator (e.g., +, ==, <<) for a user-defined type (e.g., a class)
Code
Read-only memory for machine instructions
Stack
Scratch memory for a thread of execution (in C++, e.g., int i=5;)
Tag
Tag - curly-brace-enclosed addition. Always has an =
• Base Class
The class from which members are inherited
• Derived Class
The class inheriting members
• Generalization
The process of extracting shared characteristics from two or more classes, and combining them into a generalized base class.
• Specialization†
The process of identifying and specifying derived classes from a base class.
Polymorphism
The provision of a single interface to multiple derived classes, enabling the same method call to invoke different derived methods to generate different results
Unified Modeling Language (UML)† -
The standard visual modeling language used to describe, specify, design, and document the structure and behavior of object-oriented systems
• Version Control† -
The task of keeping a system consisting of many versions well organized
Generic Programming
Writing algorithms in terms of types that are specified as parameters duringinstantiation or invocation
Constraint
curly-brace-enclosed Boolean condition, restriction, or assertion. May have a comparator, e.g., == or <.
1. Stereotype
e - guillemets-enclosed specialization
Global
memory for declarations outside of any class or function scope
Shadowing†
† - A variable declared in a narrower scope than that of a variable of the same name declared in a broader scope
• Invariant†
† - Code for which specified assertions are guaranteed to be true (often, a class in which attributes cannot change after instantiation)
• Second System Effect†
† - The common mistake of attempting to include far too many features in (typically) version 2.0, causing catastrophic schedule slips