Back to Root Glossary
System Design Glossary
Our world consists of objects. These objects exist everywhere, in nature, in our work place and in the products that we use.
These objects can be created, destroyed, categorized, organized and manipulated. Perhaps, it is due to all pervasiveness of objects in our real world that an object-oriented view was proposed for the creation of computer software. This approach enables us to model our real world into the computer world in ways that helps us to understand and navigate it better than perhaps, other approaches.
- Abstract class
- A class that cannot be instantiated because a complete implementation has not been specified for all operations of the class.
- Abstract data type
- A class created to encapsulate a type of information common to an application. Often used for items such as addresses, which contain a number of individual fields combined in a specific way and edited according specific rules unique to that combination.
- Abstract operation
- An operation signature without an associated implementation.
- Abstraction
- A unique representation of a real-world entity. The intent of the representation is not a comprehensive description, but rather a description that is useful for a specific application or purpose.
- Action
- A response to an event in a statechart diagram, typically part of the transition from one state to another and typically atomic (cannot be broken into subtasks).
- Action state
- An object state that represents the execution of an action, typically the invocation of an operation.
- Activation
- The execution of an operation on an object or other call to an object to initiate a behavior on that object.
- Active object
- An object in control of a thread or process that can initiate control activity. In a sequence diagram, this is identified by widening the vertical timeline into a narrow rectangle. In an object diagram, this is signified by making the object icon bold.
- Activity
- Processing that an object performs particular to a specific state. An activity is typically nonatomic, that is, it may be composed of any number of subtasks.
- Activity diagram
- The UML version of a flowchart with added features to model concurrent activities.
- Actor
- A person, system, or device that interacts with a system in a use case diagram.
- Agent
- An object that can be the source and destination of an interaction.
- Aggregate
- A class that represents the whole in a whole-part relationship. See also: Composite
- Aggregation
- An asymmetric type association used to model a whole-part relationship between classes. Usually used to model assemblies of objects to create new objects. See also: Composition
- Ancestor
- Any class that resides higher than the reference class in a generalization hierarchy. See also: Superclass
- Architectural analysis
- The first phase of design in which the system is partitioned functionally and strategic decisions are made regarding the choice of technology and the distribution of functionality in that technology.
- Architectural partitioning
- Assigns technological layers to a domain partition
- Architecture
- Architecture refers to the way in which components fit together. Can be used to describe any complex system, for example, "software architecture", or "network architecture"
- ARP cache
- Known hardware address mappings. These can be static (lasting until re-start) or dynamic (lasting between 2 and 10 minutes).
- Association
- A relationship between classes that specifies the type of links that may be created between objects of the associated classes.
- Association class
- Information about an association that has been abstracted into its own class.
- Assumptions
- Behaviors that must be handled by another use case prior to allowing anyone access to the use case in question.
- Asynchronous event or action
- A type of message that does not require a response and does not require the sending object to wait.
- Attribute
- A class member used to define a unit of information owned by the containing class, including such details as type and domain of values.
- Automatic transition
- A transition triggered by the completion or termination of a state activity. See also: Transition
- Balking event
- A message type in which the client can pass a message only if the supplier is immediately ready to accept the message. The client abandons the message if the supplier is not ready.
- Base class
- A root class in a generalization hierarchy.
- Bound element
- A class resulting from the specification of parameters in a template class.
- Category
- A form of package in a logical view; a category encapsulates classes.
- Class
- An abstraction of a set of related information, behaviors, and relationships that describes an entity. A definition used to create objects. See also: Object
- Class method
- An operation/method that is specific to a class rather than to objects of the class.
- Class variable
- An attribute that is specific to a class rather than to objects of the class.
- Classification
- The process of finding common information, behaviors, and relationships among objects. See also: Class and Object
- Client
- An object that initiates a request.
- Cohesion
- Cohesion is a measure of the degree to which all the parts of an object support a single purpose. High cohesion means that all the elements in the object support the same purpose. Low cohesion means that different elements support different purposes.
- Collaboration
- An interaction between objects.
- Collaboration diagram
- One of the two UML standard interaction diagrams designed to model the communication between objects.
- Component
- A physical unit of software that may reside in memory on a processor and realizes (implements) a set of interfaces.
- Component view
- A view dedicated to the description of software implementation units; may be used in combination with the deployment view.
- Composite
- A whole in composition type whole-part relationship between classes.
- Composite state
- See also: Superstate
- Composition
- A special case of the whole-part relationship between classes where the life span of the part is dependent on the life of the whole. When the whole is terminated, the part no longer exists.
- Concrete class
- A class that may be instantiated because an implementation (method) has been specified for every operation inherited or owned
by the class. See also: Abstract class
- Concurrency
- The occurrence of multiple activities at the same time either by executing multiple threads or by multiple processes.
- Constraint
- The UML extension of the definition of a model element that allows you to add new rules or modify existing ones.
- Context
- The set of model elements that defines the frame of reference for the interpretation and implementation of a particular model
element.
- Contract
- An agreement between classes regarding the handling of responsibilities and implementation in the class definitions.
- Coupling
- A measure of the degree of dependency between model elements.
- Data dictionary
- A data dictionary defines the vocabulary of the problem domain. Entries in the data dictionary can and will change over the
course of a project, but they should change only when everyone involved in the project agrees to the change. Use a data dictionary to ensure
consistent, high-quality communication.
- Data type
- The format of information allowed for an attribute, for example, integer, address, character.
- Decomposition
- Separating an entity or process into smaller functional units.
- Delegation
- Passing responsibility for a task to another entity, typically hiding the implementation of the task from the requestor.
- Dependency
- A relationship between two model entities in which a change to one (the independent model element) will affect the other (the dependent model element).
- Deployment diagram
- The UML diagram used to model the hardware of the implementation environment.
- Deployment view
- A view dedicated to the description of hardware architectures; may be used in combination with the component view.
- Derived association
- An association created by shortcutting a series of associations.
- Derived attribute
- An attribute whose value can be determined by examining one or more other attribute values.
- Domain
- A subject area with an associated vocabulary and semantics.
- Domain partitioning
- The first of two activities during architectural analysis when the system is partitioned according to the functionality that it must provide.
- Element
- A unit of information used to build a model.
- Encapsulation
- The ability to provide users with a well-defined interface to a set of functions in a way which hides their internal
workings. In object-oriented programming, the technique of keeping together data structures and the methods (procedures) which act on them.
- Event
- A system stimulus, often in the form of a message from one object to another.
- Exceptional flow of events
- A condition that changes the normal flow of control in a system.
- Factorization
- The process of finding and extracting common elements between classes. See also: Generalization
- Factory pattern
- A design pattern that addresses that need to de-couple client objects from the knowledge of how to construct the objects that they want to use.
- Generalization
- 1. The process of factoring classes to define a hierarchy of shared elements organized into classes. 2. The class hierarchy that is the end result of the factoring process. 3. A type of association used to relate classes in a class hierarchy. See also: Inheritance
- Guard condition
- A condition associated with a state transition and that must test true before the transition may take place.
- Implementation inheritance
- The sharing of both the interface and the implementation of a method. See also: Interface inheritance
- Import
- A dependency between packages where one package obtains access to the other's contents by adding the imported package
contents to its own.
-
Inheritance
-
A relationship between classes that allows the sharing of elements. See also: Generalization
-
Instance
-
The implementation of a class as an object.
-
Instance method
-
A method that is unique to an object. See also: Class method
-
Instance variable
-
An attribute that is unique to an object.
-
Interaction diagram
-
A generic term referring to the two UML diagrams that model object interaction (communication), namely the sequence and
collaboration diagrams.
-
Interface
-
The visible part of a class. Typically used to describe the public signatures of operations in a class.
-
Interface inheritance
-
The sharing of only the interface or declaration of an element, not the implementation.
-
Iteration
-
To perform a function or set of functions more than once. The repetition may be used on a value, a count, time, completion of
a task, or any other type of condition.
-
Link
-
A relationship between two objects. See also: Association
-
Link attribute
-
A unit of information about a link. See also: Association class
-
Logical view
-
A view dedicated to the description of design options for a software solution.
-
Main flow of events
-
The normal flow of control in a system.
-
Merge of control
-
To synchronize or coordinate the completion of multiple threads or processes and pass control to a single thread or process.
Merge of control does not require the completion of all threads or processes. Merge may be conditional on the completion of one or more of a set
of threads, time, or other conditions.
-
Message
-
A communication between objects.
-
Metamodel
-
1. The specification of a language for describing object-oriented models. 2. A model that describes the elements, and the
relationships between those elements, that make up a specified domain.
-
Method
-
The implementation of an operation.
-
Methodology
-
An organised, documented set of procedures and guidelines for one or more phases of the software life cycle, such as analysis
or.design. Many methodologies include a diagramming notation for documenting the results of the procedure; a step-by-step "cookbook"
approach for carrying out the procedure; and an objective (ideally quantified) set of criteria for determining whether the results of the
procedure are of acceptable quality.
-
Model
-
A representation of a domain in another form, usually designed to simplify and facilitate understanding of the domain.
-
Model element
-
The smallest unit of semantic definition in a model. The same model element may appear in multiple diagrams. For example, an
event appears in sequence diagrams, collaboration diagrams and statechart diagrams. In all three contexts it provides the same semantic
information.
-
Model-View-Controller (MVC) pattern
-
One of the first patterns documented. Its purpose was to de-couple the different functions found in many applications, thus
improving overall design. The pattern distinguishes between three fundamental types of functionality: Model - the representation of and access to
the data; View - the presentation of the data to a user or another system; and the Controller - the logic that decides how to direct the behavior
of the application.
- Multiplicity
- A constraint on the number of objects that may participate in one end of an association.
-
N-tier architecture
-
The application of multiple technological layers of technology to support the distribution of the technological and
functional responsibilities within an application, typically found in distributed systems.
- Navigability
- A specification of the allowed direction of communication along an association.
- Node
- A single unit of hardware capable of containing and executing software. See also: Deployment view
- Notation
- Any particular system of characters, symbols, or abbreviated expressions used in art or science, to express briefly technical
facts, quantities, etc. Esp., the system of figures, letters, and signs used in arithmetic and algebra to express number, quantity, or
operations.
- Object
- A uniquely identifiable entity composed of information, behaviors, and relationships with other entities.
- Object activation
- An object in control of a thread or process that can initiate control activity. In a sequence diagram, this is identified by
widening the vertical timeline into a narrow rectangle. In an object diagram, this is signified by making the object icon bold. See also: Active
object
- Object Constraint Language
- A formal language used to express side effects from constraints in the UML models.
- Object design
- The fourth phase of the project life cycle in which the objects that represent the software are added to the analysis-level model to support the functionality expected by the use cases.
-
Object Management Group
-
The standards group currently overseeing the development and acceptance standards related to object-oriented software
development.
-
Object model
-
For many people this phrase is synonymous with class diagram. However, the model in a larger sense also includes the object
diagram and package diagram.
-
Object termination
-
The end of an object's lifecycle, usually denoting object destruction. Identified by a large X at the bottom of a
sequence diagram timeline for the specified object.
-
Object-Oriented Analysis and Design Task Force
-
The group assigned by the OMG to generate and oversee the RFP for a metamodel for object design.
-
Operation
-
The declaration of unit of behavior within a class. See also: Method
-
Overloading
-
Used to describe methods where a method name is shared but the arguments vary in number and/or type. See also:
Polymorphism
-
Package
-
A general-purpose mechanism for grouping models and model elements, typically by similar functions or uses within the context
of a system. See also: Component
-
Pattern
-
A recurring design solution containing a set of cooperating classes.
-
Polymorphism
-
Use to refer to methods where the method signature is the same but the implementation is different. See also:
Overloading
-
Post-condition
-
A condition that must test true at completion of the owning task.
-
Pre-condition
-
A condition that must test true before execution of the owning task.
-
Primitive data type
-
The smallest unit of data definition provided by the implementation environment. See also: Abstract data type
-
Private
-
A form of visibility constraint that prevents access to a model element from outside of the owning class. See also:
Public
-
Problem analysis
-
This is the second phase of the project life cycle in which the analyst researches the resources of the problem domain and
defines their purpose and interfaces.
-
Problem domain
-
The area of the business that is under evaluation during a discussion or project.
-
Problem statement
-
A concise description of the project problem or challenge.
-
Process
-
A particular course of action intended to achieve a result.
-
Project initiation
-
The first phase of the project life cycle in which the clients establish their expectations for the system.
-
Property
-
A named value describing a characteristic of an element.
-
Protected
-
A type of model element visibility that allows only subclasses to have access to the protected model element, for example,
operation or attribute.
-
Public
-
A form of visibility constraint that allows access to a model element from outside the owning class. See also: Private
-
Qualifier
-
An association modeling element that identifies a descriptive attribute(s) used to navigate an association. Synonymous with
keys or indexes in a database or data modeling domain.
-
Realization
-
When a class implements an interface specified by another class (or interface, as in Java).
-
Refactoring
-
Process for (1) evaluating a model or process in terms of the problems that it causes, and (2) applying common solutions to
mitigate those problems. The solutions are revisions to the models or processes themselves.
-
Reflexive association
-
An association that relates objects within the same class to one another. See also: Association
- Reverse engineering
- The process of translating code into modeling elements.
- Role
-
A way of specifying the nature of the participation of an object in an association.
-
Scenario
-
A single logical path through a use case, often used as a test case. See also: Use case view
-
Send event
-
A message or signal sent to another object from within a statechart diagram.
-
Sequence diagram
-
The UML diagram designed to model the interaction between objects overtime. The scope of the diagram is typically a single
scenario.
-
Server
-
An object that acts only as a respondent in an interaction. Note that the same object may act as a client in another
interaction.
-
Signal
-
An asynchronous stimulus sent from one object to another.
-
Signature
-
The interface of an operation described as the name, number, type, and order of arguments, sometimes the return data type
(implementation languages vary on their interpretation). See also: Polymorphism, Overloading, and Interface
-
Specialization
-
The opposite of generalization. See also: Generalization and Factorization
-
Split of control
-
To initiate multiple threads or processes from a single thread or process.
-
State
-
The condition of an object at a point in time.
-
State design pattern
-
A design pattern that addresses the need to control an object's behavior differently depending on the state of the
object.
-
Statechart diagram
-
The UML diagram used to model object states, state transitions, and the behavior of an object during the state changes and
during each state.
-
Stereotype
-
A UML extension that provides a means of further describing or qualifying a model element without defining its
implementation.
-
Strategy pattern
-
A design pattern that addresses the need to provide multiple ways to control the behavior of an application or system.
-
Subclass
-
A specialized class connected to a more general class or "parent class" in a generalization class hierarchy.
-
Substate
-
A state that is part of or inside another state (composite or superstate).
-
Superclass
-
A generalized class connected to a more specialized class or "child class" in a generalization class
hierarchy.
-
Superstate
-
A state that contains other states, for instance, a state defined at a higher level of abstraction.
-
Synchronous event or action
-
A form of communication that requires an acknowledgement of receipt of the request.
-
System
-
System refers to the set of all functions and resources that supports the goal of the users.
-
Tagged value
-
An extension of the properties of a UML element that allows you to add new information to an element's
specification.
-
Technological partitioning
-
The distribution of software behavior across different technologies within an application design.
-
Template or template class
-
A parameterized class that serves as a model for building other classes.
-
Three-tier architecture
-
A partitioning within a system that corresponds to the distribution of presentation, business logic, and data access.
-
Time event
-
An event that specifies an amount of time elapsed since the current state was entered.
-
Transition
-
A change from one state to another state within an object.
-
Triggering event
-
Event that initiates the use case. The event could be a point in time (for example, month's end), a condition in the
system (for example, account is overdrawn), or a request by an actor (for example, selecting an option).
-
Try it
-
Each time you click a glossary term, you'll see a window like this displaying the term and its definition. To see the
entire glossary, click Show All Terms.
-
UML
-
The Unified Modeling Language is used to specify, visualise, construct and document the components comprising an
object-oriented system under development.
-
Use case
-
A use case is a goal that a system must achieve to be considered successful.
-
Use case model
-
The UML model used to represent clients' expectations about how they will interact with the system.
- Use case view
- A view dedicated to the description of user requirements.
- View
- A grouping of diagrams for a particular function in the overall process for developing software.
- Visibility
- A constraint on the access to attributes and operations within a class specifying the scope of use by objects of other classes. See also: Public, Private, Protected, and Package
Domain Driven Design