UML Class Diagram
Object
Concrete member of a class
Physical
Deployment diagram
Dynamic
State machine, activity diagram, sequence diagram, communication diagram, timing diagram, and interaction overview diagram
Overriding
a method would be inherited from a superclass, but a subclass contains a new version of the method instead
Occurence
a set of related objects that share common information but also differ from each other in important ways
generalization
a taxonomic relationship between a more general and more specific element. The more specific element is fully consistent with the more general element and contains additional information.
modifier
alter the state of an object
polymorphism
an abstract operation may be performed in different ways in different classes, requires that there be multiple methods of the same name, reduces the need for programmers to code many if-else or switch statements
association
basic relationship, an object can only interact with another object with which it has an explicit or implicit relationship
Structural
class diagram, object diagram, composite structure diagram, component diagram, and use case diagram
Modularity
code can be constructed entirely from a set of classes
constructor
create, build, and initialize an object
class
data abstraction that contains procedural abstractions that operate on its instances(objects)
class diagram
defines all possible sets of runtime instances and their relationships
Class
description for a set of similar objects that have the same structure and behavior(i.e. its instances).
destructor
destroy an object
type of variable
determines what classes of objects it may contain
Interface
essentially an abstract class, but cannot have executable statements, defines a set of operations that make sense in several classes
isa rule - inheritence
ex. A checkingAccount is an Account but a province is not a country!
iterator
for objects that encapsulate a collection of other objects, access all parts of a composite object, and apply some action to each of the parts
method
implementation of an operation
Encapsulation
in addition to abstraction, leads to information hiding, which allows for more maintainable, evolvable systems
Object
is instantiated, a conscious decision by a software engineer designates this as an instance of a class, they interact with each other at runtime
identity
key concept of object orientation: each object is distinct from each other object, and can be referred to. 2 objects(twins) are distinct even if they have the same data
private, protected, public, package(default)
levels of visibility
abstract class
like a regular class but it cannot be instantiated(name indicated in italics)
dynamic binding
occurs when the decision about which method to run can only be made at runtime, needed when: a variable is declared to have a superclass as its type and there is more than one possible polymorphic method that could be run among the type of the variable and its subclasses
Model Management
package diagrma
Aggregation
part-whole relationship, not tied to life cycle, transitive and antisymmetric
Composition
part-whole relationship; life-cycles of children objects are tied to their parent, so when the parent is destroyed so are the children; transitive and antisymmetric
Association
represents a relationship between 2 classes, bi directional
reasons for overriding
restriction, extension, optimization
an object class
result of physical composition/aggreggation
observer
retrieve information about the state of an object
Class Variable
shared by all instances, useful for default values or constants, useful for lookup tables or similar structures used by operations
Attribute
simple piece of data, exists when the object exists (has no instance on its own)
class vs. instance
something belongs to a class if it could have instances. In general, something should be an instance if it is clearly a single member of the set defined by a class
operation
specification of a transformation or query that an object may be called to execute
enumeration
specifies a predefined list of choices, defined within the class that needs this
Multiplicity(m)
specifies how many instances of one class relate to how many instances of another class
life cycle of an object
the identity of an object never changes during its lifetime, an attribute of an object doesn't have identity
inheritance
the mechanism by which more specific elements incorporate structure and behavior defined by more general elements. ie implicit possession by a subclass of features defined in a superclass
Reification
the process of making out of a concept an object(class), often applied to non physical composition/aggregation
Association Class
use when an attribute that relates to 2 associated classes cannot be placed into either one of them.
Instance Variable
variables used to implement attributes and those used to implement associations
field
what an association is implemented as