activity: create the definitive glossary of terms for the entire system (e.g., containment, energy flow, sovereignty, entity).
G-250
Ubiquitous Language v1.0
the atlas index is the literal and figurative key plan for your entire protocol. it is the core of your g-001: legend & key plan document, providing the table of contents for the entire executable blueprint.
Name | Definition | Type |
---|---|---|
AGGREGATE | a cluster of associated objects that are treated as a unit for the purpose of data changes. external references are restricted to one member of the AGGREGATE, designated as the root. a set of consistency rules applies within the AGGREGATES’s boundaries. | PATTERN |
analysis pattern | a group of concepts that represents a common construction in business modeling. may be relevant to one domain or may span many domains. | concept |
BOUNDED CONTEXT | the delimited applicability of a particular model. Bounding contexts gives team members a clear and shared understanding of what has to do consistent and what can develop independently. (context: a setting in which a word or statement appears that determines its meaning.) | PATTERN |
client | a program element that is calling the element under design, using its capabilities. | term |
cohesion | logical agreement and dependence. | term |
command (aka. modifier) | an operation that effects some change to the system (e.g. setting a variable). an operation that intentionally creates a side effect. | term |
CONCEPTUAL CONTOUR | an underlying consistency of the domain itself, which if reflection a model, can help the design accommodate change more naturally. | PATTERN |
CONTEXT MAP | a representation of the BOUNDED CONTEXTS involved in a project and the actual relationships between them and their models. | PATTERN |
CORE DOMAIN | the distinctive part of the model, central to the user’s goals, that differentiates the application and makes it valuable. | PATTERN |
declarative design | a form of programming in which a precise description of properties actually controls the software. an executable specification. | concept |
deep model | an incisive expression of the primary concerns of the domain experts and their most relevant knowledge. a deep model sloughs off superficial aspects oft he domain and naive interpretations. | term |
design pattern | a description of communicating objects and classes that are customized to solve a general design problem in a particular context. | concept |
distillation | a process of separating the components of a mixture to extreact the essence in a form that makes it more valuable and useful. in software design, the abstraction of key aspects in a model, or the partitioning of a larger system to bring the CORE DOMAIN to the fore. | term |
a sphere of knowledge, influence, or activity. | term | |
domain layer | that portion of the design and implementation responsible for domain logic within a layered architecture. the domain layer is where the software expression of the domain model lives. Domain layer or model layer: responsible for representing concepts of the business, information about the business situation, and business rules. State that reflects the business situation is controlled and used here, even though the technical details of storing it are delegated to the infrastructure. This layer is the heart of business software. | term |
ENTITY | an object fundamentally defined not by its attributes, but by a thread of continuity and identity. | PATTERN |
FACTORY | a mechanism for encapsulating complex creation logic and abstracting the type of a created object for the sake of a client. | PATTERN |
function | an operation that computes and returns a result without observable side effects. | term |
immutable | the property of never changing observable state after creation. | term |
a concept that is necessary to understand the meaning of a model or design but is never mentioned. | concept | |
INTENTION-REVEALING INTERFACE | a design in which the names of classes, methods, and other elements convey both the original developer’s purpose in creating them and their value to a client developer. | PATTERN |
invariant | an ASSERTION about some design element that must be true at all times, except during specifically transient situations such as the middle of the execution of a method, or the middle of an uncommitted database transaction. | term |
iteration | a process in which a program is repeatedly improved in small steps. | term |
large-scale structure | a set of high-level concepts, rules, or both that establishes a pattern of design for an entire system. a language that allows the system to be discussed and understood in broad strokes. | concept |
a technique for separating the concerns of a software system, isolating a domain layer, among other things. | PATTERN | |
life cycle | a sequence of states an object can take on between creation and deletion, typically with constraints to ensure integrity when changing from one state to another. may include migration of an ENTITY between systems and different BOUNDED CONTEXTS. | term |
model | a system of abstractions that describes selected aspects of a domain and can be used to solve problems related to that domain. | term |
MODEL-DRIVEN DESIGN | a design in which some subset of software elements corresponds closely to elements of a model. also, a process of codeveloping a model and an implementation that stay aligned with each other. | PATTERN |
modeling paradigm | a particular style of carving out concepts in a domain combined with tools to create software analogs of those concepts (e.g. OOP and logic programming) | concept |
REPOSITORY | a mechanism for encapsulating storage, retrieval, and search behavior which emulates a collection of objects. | PATTERN |
responsibility | an obligation to perform a task or know information. | term |
SERVICE | an operation offered as an interface that stands alone in the model, with no encapsulated state. | PATTERN |
side effect | any observable change of state resulting from an operation, whether intentional or not, even a deliberate update. | term |
STANDALONE CLASS | a class that can be understood and tested without reference to any others, except system primitives and basic libraries. | PATTERN |
stateless | the property of a design element that allows a client to use any of its operations without regard to the element’s history. a stateless element may use information that is accessible globally and may even change that global information (that is, it may have side effects) but hods no private state that affects its behavior. | term |
strategic design | modeling and design decisions that apply to large parts of the system. such decisions affect the entire proejct and have to be decided at team level. | term |
supple design | a design that puts the power inherent in a deep model into the hands of a client developer to make that clear, flexible expressions that give expected results robustly. equally important, it leverages that same deep model to make the design itself easy for the implementer to mold and reshape to accommodate new insight. | term |
UBIQUITOUS LANGUAGE | a language structured around the domain model and used by all team members to connect all the activities of the team with the software. | PATTERN |
unification | the internal consistency of a model such that each term is unambiguous and no rules contradict. | |
VALUE OBJECT | an object that describes some characteristics or attributes but carries no concept of identity. | PATTERN |
WHOLE VALUE | an object that models a single, complete concept. | PATTERN |