Back to Root Glossary
Object-Oriented Design Glossary
Object-oriented analysis and design (OOAD) is a software engineering approach that models a system as a group of interacting objects.
Each object represents some entity of interest in the system being modeled, and is characterised by its class, its state (data elements), and its behavior. Various models can be created to show the static structure, dynamic behavior, and run-time deployment of these collaborating objects.
There are a number of different notations for representing these models, such as the Unified Modeling Language (UML).
Object-oriented analysis (OOA) applies object-modelling techniques to analyze the functional requirements for a system.
Object-oriented design (OOD) elaborates the analysis models to produce implementation specifications. OOA focuses on what the system does, OOD on how the system does it.
-
- Abstract class
- A class that contains one or more methods that are declared but not implemented. It has a complete interface but only a partial implementation of that interface. Concrete subclasses of an abstract class are required to flesh out the implementation by overriding the abstract methods.
- Accessor method
- Public methods that allow other classes to read (but not change) the values of attributes of a class. They are also called getter methods, and merely return the value of the attribute.
- Anonymous object
- Objects for which no name is obvious or needed. Anonymous objects are commonly used in diagrams that show one object contained in another object; they can also be used to show samples of an object that may not be used in any particular part of the code.
- Argument
- One or more pieces of data passed to a method to operate upon. A method argument is indicated in a class diagram by the name of the argument inside parentheses:. Multiple arguments are separated by commas.
- Attribute
- Components of a class, also known as a field or member variable. Often determined in the design phase by asking the question "what does the class know, track, record, or maintain?"
- Base class
- The way that C++ programmers often refer to a superclass.
- Boolean
- An expression or variable that can have only a true or false value. Java provides a Boolean type and the literal values True and False.
- Class
- The highest-level element in an object-oriented programs; classes contain both functions (methods) and data.
Collaboration: A class 's interaction with other classes to carry out all its necessary responsibilities; needed when the class by itself does not know or can not do everything it needs to know or do.The final step in object-oriented analysis is to identify the class's collaborators.
- Class diagram
- A method of displaying a class and its attributes in a reasonably language-independent fashion. A class diagram is divided into compartments; the name of the class appears in bold type in the top or name compartment, and the attributes of the class, its values, are given in the bottom compartment, the attributes compartment.
- Class interface
- The class's collection of methods and attributes; access specifiers define who is allowed to see which parts of the class.
Depending on who's asking, the class presents different interfaces to the world. A class's interface defines the messages that an object of the class may receive.
- Composition
- A technique of building more complex entities from less complex ones. In class composition, classes may contain
attributes that are themselves classes. In object composition, complex objects can be constructed from more primitive objects.
- Constructor
- A method that constructs is used to create a new object, one that does not already exist; it is responsible for initializing all the attributes of an object to reasonable values before the object is used.
- CRC Modeling
- Class-Responsibility-Collaborator modeling; a style of analysis that defines classes by defining responsibilities and collaborations.
- Data flow programming
- A class of programming in which the key element is data that flows between functions; only dependency relationships that specify which operations must complete before other operations must begin are specified. Both data flow programming and OOP techniques and styles can be used in one language.
- Default constructor
- The initial value that a constructor assigns to attributes and method arguments. To specify default values for attributes in a class diagram, place an equal sign (=) and the default value after the attribute name.
- Default value
- The initial value that a constructor assigns to attributes and method arguments. To specify default values for attributes in a class diagram, place an equal sign (=) and the default value after the attribute name.
- Derived class
- The way that C++ programmers often refer to a subclass.
- Early binding
- The assumption of a programming language that everything is known at compile time. It is always obvious which method will be invoked in which class at which point in the flow of a program.
- Encapsulation
- A key principle of object-oriented design and programming. Encapsulation includes: keeping both methods and variables
together in a single clump or object; preventing code outside the object from accessing the inside of the object directly; and creating
an outside, or interface, that your class presents to the outside world and that does not change.
- Exception
- A feature in many object-oriented languages and some non-object-oriented languages.that provides a way to handle values of attributes that violate constraints you have set in the class. This is not specifically a part of object-oriented design.
- Extends
- The preferred way, among Java programmers, of indicating that one class is a subclass of another class; "class B
(the subclass) extends class A (the superclass)."
- Field
- Synonym for attribute, also known as a member variable; see attribute.
- Fourth-generation language
- A programming language, like SQL (Structured Query Language), that defines the answer that's wanted rather than the method by which the answer is generated. You neither know nor care what algorithm is used to search that data structure for the requested information.
- Friendly access
- An access type supported by some object-oriented languages that allows certain closely related classes to access another class's normally private implementation.
- Functional Programming
- A class of programming that concentrates on the evaluation of expressions rather than the execution of commands;
functional programming languages include Lisp, Scheme, and ML. The primary uses of functional programming are in teaching and artificial
intelligence.
- Getter method
- Another name for an accessor method, a public method that allows other classes to read (but not change) the values of
attributes of a class. They merely return the value of the attribute.
- Hierarchical inheritance
- Multiple levels of inheritance; that is, A can subclass B, which subclasses C, which subclasses D, which subclasses
E. A shares all the attributes and operations of E, D, C, and B.
- Immutable object
- An object that is a member of a class with a constructor but no mutators; it can be initialized but not changed.Implementation inheritance: The ability of a superclass and a subclass to share identical code for the same method; each class needs to contain only its own unique code. It inherits the rest of the code from its superclass. Implementation: The internal workings of a class; how a class does what it promises to do.
- Inheritance
- A mechanism that allows you to share truly common code for the general case, while supplementing or replacing that
code for more specific cases. Inheritance can be inferred when one class "is a kind of" another class.
- Inherits from
- Another way of saying that one class is a subclass of another class.
- Interface
- The outside of your class that is used by other classes. It's the set of things your class promises to do; the
interface of a class does not change once its design is finalized.
- Interface inheritance
- The guarantee that any message understood by the superclass will also be understood by a subclass. The subclass may respond to additional messages the superclass does not understand, and the subclass may very well do something different in response to the message, but it will understand the message.
- Late binding
- The ability of a programming language to support new classes and methods after compilation but not after the program
is first loaded and executed.
- Member variable
- Synonym for attribute, also known as a field; see attribute.
- Method
- An operation performed by members of the class; also called a function. The operations of a class say what an object
does and define a class's behavior.
- Method overloading
- A feature supported by object-oriented languages; method overloading permits two methods (or constructors) to have the same name as each other, provided they can be distinguished by their argument lists.
- Multiple inheritance
- A feature supported by some object-oriented languages that allows a single subclass to to have more than one
superclass. Typically a subclass with multiple inheritance has some attributes and behaviors in common with the one superclass and some
in common with another superclass.
- Mutator method
- A method that allows nonsibling objects to change an object's state. Also known as a setter method.Noargs constructor: Another name for a default constructor. See default constructor.
- Object
- A particular instance of a class that contains both the data that defines the object and the methods that operate on the object. When you define a class, you are setting the rules for all the objects of that class.
- Object based
- A program, such as Visual Basic, which supports classes and data abstraction but not inheritance or polymorphism.
- Object diagram
- An object diagram is similar to a class diagram. It is used to give examples of values for all the attributes or showing how an object changes as the system runs and is divided into two compartments. The top compartment holds the name of the object, followed by a colon and the name of the class. Both the name of the object and the name of the class are underlined. The bottom compartment holds the names of the object's attributes and their values.
- Object-oriented language
- Programming languages that support the inclusion of both data and methods in classes.
- OOP
- An abbreviation for Object-Oriented Programming.
- Operations compartment
- The name for the box at the bottom of the class diagram that contains method names; this course uses the convention that method names end with parentheses to distinguish between methods and attributes.
- Operator overloading
- A feature supported by some object-oriented languages; operator overloading allows you to define the behavior of operators like +, -, and * when used on instances of your class.
- Overriding a method
- Replacing a method that would otherwise be inherited from a superclass with a new method of the same name defined in the subclass. An overridden method has the same name and argument list in a superclass as it does in the subclass.
- Polymorphism
- A central concept of object-oriented design. Polymorphism applies a class's interface to many different subclasses. Through polymorphism, you can send the same message to different objects of different types and have them respond appropriately for their type. An instance of the subclass can stand in for the superclass. The superclass code is unaware of the actual type of the object it has been passed.
- Primitive
- A low-level function, operator, or data type, built into a programming language, from which higher-level, more complex objects and operations can be constructed.
- Private access
- The most restrictive type of access. When attributes of a class have been made private, other classes can no longer
read or change their values.
- Problem domain
- What the problem is that your project is supposed to help solve. Defining the problem domain is usually the first step in design, whether you use a procedural or an object-oriented design.
- Procedural language
- Structured programming requires well-defined flow control. A programming language that supports well-defined flow control because of a heavy reliance on procedures.
- Procedure
- The highest-level element in procedural, or structured design; procedures define what the program does.
- Protected access
- An access level on an attribute or method that allows subclasses public access to it; it remains private to other classes.
- Public access
- The least restrictive type of access. Public attributes of a class allow their values to be read and changed by other classes.
- Read-only properties
- Attributes with an accessor method but no mutator method; they can be gotten but not set.
- Responsibilities
- Things that a class knows or things the class does; setting a class's responsibilities is one of first steps in
defining a class.
- Return value
- The information returned by a method to whatever called it. It may be a programmer-defined data type or a primitive type. A method that does not return a value is called void.
- Siblings
- Objects of the same class. Siblings are allowed to access the private elements of each other's objects.Signature:
A method's list of argument types.
- Static object
- Objects that possess a state but no operations.
- Subclass
- One or more classes that are more specific versions of another similar class. A subclass inherits all the attributes and operations of the class it's based on.
- Superclass
- The most general class of a group of classes that share some attributes and operations.
- UML
- Unified Modeling Language, an industry-standard modeling language used to diagram the relationship of elements to oneanother, interrelated processes within a project, and code architecture.
- Very late binding
- The ability of a programming language to support the addition of new classes and methods until the very last moment, while the program is running.
- Void
- A method that does not return a value to whatever called it.
- Write-only properties
- Attributes with a mutator method but no accessor method; they can be set but not gotten.