See Third generation language.
See Fourth generation language.
The result of emphasizing certain features of a thing while de-emphasizing other features that are not relevant. An abstraction is defined relative to the perspective of the viewer.
Expressions that read or write specific analysis data atoms.
Made up of zero or more action language statements attached to an operation, state, or transition.
A fundamental unit of behavior specification that represents some transformation or processing in the modeled system, be it a computer system or a real-world system. Actions are contained in activities, which provide their context. See Activity.
Analysis actions translated into the target language.
An expression that resolves to a sequence of actions.
The initiation of an action execution.
A specification of parameterized behavior that is expressed as a flow of execution via a sequencing of subordinate units (whose primitive elements are individual actions). See Action.
Synonym: Argument.
A class that represents the whole in an aggregation or whole-part relationship. See Aggregation.
A special form of association that specifies a whole-part relationship between the aggregate or whole and a component part. See Composition.
Development of a platform-independent UML model for the analyzed problem domains in the system. Analysis results in a model of the problem domain that is independent of implementation considerations. Analysis focuses on what to do; design focuses on how to do it. Contrast: Design.
Model specified action language associated with states, transitions, or operations.
A binding for a parameter that is resolved later. An independent variable.
The hardware where core computation is done in a computer. The term has largely replaced Central Processing Unit (CPU) because of the complexity of modern computers such that multiple discrete hardware units now interact to handle core computation.
A relationship that may occur between instances of classifiers.
A model element that qualifies an association. It is a placeholder for complex resolution of references in *:* associations. It can also capture additional problem space information about associations.
The endpoint of an association, which connects the association to a classifier.
Establishes a connection between the specified class instances.
In UML terms, a structural feature of a classifier that characterizes instances of the classifier. An attribute relates an instance of a classifier to a value or values through a named relationship.
In OOA/D terms, an attribute is a knowledge responsibility of an object or subsystem.
A mechanism for associating a particular value with a mnemonic identifier.
A descriptor containing and attribute identifier and corresponding attribute value.
The observable effects of an operation or event, including its results. It specifies the computation that generates the effects of the behavioral feature.
A behavior responsibility represents an obligation on the part of an object or subsystem to do something. Behavior responsibilities typically capture problem space rules and policies that must be executed to solve the problem in hand.
An association between two classes. A special case of an n-ary association. It defines how objects of the classes may be logically connected.
An enumeration whose values are true and false.
An expression that evaluates to a boolean value.
A logical connection between subsystems that supports communication during collaborations.
The process of compiling and linking the translated implementation code, realized code, and implementation libraries into the deliverable system.
A synchronous invocation of a behavior responsibility.
The explicit number of elements in a set. Contrast: Multiplicity.
In a generalization relationship, the specialization of another element, the parent. Contrast: Parent.
A classifier that describes of a set of objects that share the same specifications of features, constraints, and semantics.
A diagram that shows a collection of classes, their responsibilities, and their relationships.
An object that requests a service in a DbC contract for a collaboration. Contrast: Service.
An interaction between objects or subsystems manifested by a message passed between them. In an OO context, the message announces a state change in the message sender. Usually some behavior responsibility of the receiver will be invoked when the message is consumed.
Refers to something that occurs during the compilation of a software module.
An independent unit of processing with a well-defined interface that can be used with other components to build a system. A modular part of a system.
A class that is related to one or more classes by a composition relationship.
Any state with nested states (sometimes called a superstate).
A state that consists of either concurrent (orthogonal) substates or sequential (disjoint) substates. See Substate.
A technique for creating hybrid objects through generalization. The object inherits responsibilities that are logically orthogonal to its primary responsibilities in the problem space.
The occurrence of two or more activities during the same time interval. Concurrency can be achieved by interleaving or simultaneously executing two or more threads. See Thread.
Specifies whether there must always be at least one participant in an association or not. Contrast: Multiplicity.
A view of a set of related modeling elements for a particular purpose, such as specifying an operation.
The set of executable elements that constitute the software product to be verified and delivered.
A dependency relationship indicates that one class refers to another class. One class might, for example, use the definitions in another class. A dependency is always unidirectional.
In a subsystem, Component diagram dependencies represent the flow of requirements from a client to a service subsystem.
One possible implementation of a PIM on a target platform and target system topology.
The process of defining the high-level structure of a software solution. For example, OOA and OOD represent different aspects of design for a given problem solution.
eXtensible Markup Language (XML)
An open, extensible ASCII-based standard for describing data. It employs HTML-like markup tags and A-V descriptors.
A formalization of states (conditions of being), actions associated with those states, the valid transitions between them, the external triggers of the transitions, and the data that state actions use. FSMs provide a very disciplined mechanism for managing complex, asynchronous processes.
To execute a state transition. See Transition.
There are many possible definitions, but the one employed in this book is a language that is independent of particular computing space environments. That is, the language describes a problem solution in customer terms and abstracts away computing space details.
See Finite State Machine.
To create an instance of the specified event and queue it for dispatch to the specified instance.
A pointer that enables a program to access some resource, such as a library function.
A handle is a data type. It is a generic reference without a specific type. The user of a handle cannot invoke specific responsibilities of the entity being referenced.
See Integrated development environment.
Realized system components supporting a specific compiler, language, or operating system environment.
Integrated Development Environment
A suite of discrete programs that are integrated seamlessly in a common framework and presenting a single UI.
The runtime system responsible for the execution of Java bytecodes produced by compiling Java source code.
Thousand Lines Of Code; Thousand Non-Comment Lines of Code.
An obligation for an object or subsystem to know something. Note that such an obligation does not require a concrete and persistent data implementation, such as a memory register. In OOA/D the object simply needs to provide a value when queried.
Instantiate an association between instances of two objects from diffent classes.
Lines Of Code
A name-value pair that is applied to one of the elements of the PIM. A marking is a property that has a name-value pair assigned.
See Model-based software development.
See Model-driven architecture.
A model that describes the constructs of another model.
Encapsulates a cohesive behavior responsibility so that it has well-defined scope with respect to software execution.
Million Lines of Code
For software, an abstract view of a software solution that provides simplification and tailoring of various views (e.g., static structure versus dynamic).
Model-Based Software Development (MBD
A particular approach to software development that employs the OO paradigm and a translation-based version of MDA. MBD is the primary subject matter of this book.
Model-Driven Architecture (MDA)
An architectural standard for a framework based on models. In particular, MDA uses metamodels to formalize semantics that enables unambiguous transformation between models that are different views of the same software.
Model-Driven Development (MDD)
A generic description of a wide variety of approaches to software development that are based on abstract modeling. MBD is one approach. MDD is defined within the OMG framework as a container for UML, MDA, and other specific modeling standards.
The number of participants in an association. In MBD this is limited to 1 or * (many). Contrast: Cardinality, Conditionality.
Any state within a composite state (sometimes called a substate).
A software design paradigm that emphasizes problem space abstraction to ensure that large applications are maintainable in the face of volatile requirements over time. A key notion of OO development is the use of encapsulation and interfaces to decouple (eliminate dependencies among) disparate program modules or units.
OOA (Object Oriented Analysis)
A design technique that results in a problem solution that is described purely in customer terms and is independent of any particular computing environment. Generally OOA resolves only functional requirements. Contrast: OOD.
A design technique that elaborates on an OOA to address nonfunctional requirements and provide design strategies that are dependent on a particular computing environment.
OOP (Object Oriented Programming)
A design technique for elaborating OOA and OOD to resolve tactical design issues in an OOPL.
OOPL (Object Oriented Programming Language)
A third-generation, text-based computing language that provides specific constructs in support of OOA and OOD.
The UML term for an object or subsystem behavior responsibility.
Off The Shelf.
In UML, a general container of a set of model elements that are related. Packages are primarily intended to manage the configuration of the model elements to support things like version control. Contrast: Subsystem.
In a generalization relationship, the generalization of one or more elements, the children.
A formal description of an abstract solution that can be tailored to a fairly wide variety of different but related problems.
See Platform Independent Model.
An abstraction of a particular computing environment. It includes things like hardware, 3GL implementation language, operating system, realized libraries, and various computing space technologies used (e.g., J2EE, CORBA, XML, etc.).
An MDA concept: Complete specification of a problem solution in terms of the problem space itself. It is independent of specific computing space technologies like implementation language, operating system, hardware, and so forth. Maps to a traditional OOA model.
A complete specification of a problem solution that is dependent on the specific computing environment. A PSM is an elaboration of a PIM or a more general PSM that provides additional computing space detail. Examples of PSMs are a UML OOD model or a 3GL program.
In an OOA/D/P context, a characteristic of some problem space entity. That property is abstracted in terms of a responsibility to either know something or to do something. In UML a property is synonymous with a knowledge attribute of an object.
System components that have not been analyzed and are typically handwritten code generated from a specific environment (like a GUI builder or math algorithm environment) or purchased from a third party.
A specialized branch of relational theory within set theory mathematics. It applies relational theory specifically to persistent data storage where the dominant data collection entity is a table.
An object or subsystem that provides a service in a DbC contract for a collaboration. Contrast: Client.
A state with no nested states.
The organization of software, usually at the physical or executable level, which describes how the components interact to achieve the system requirements. We define logical, deployment, and physical views of the architecture.
STD (State Transition Diagram)
A graphical representation of states and transitions in a finite state machine. It is the graphical equivalent of an STT. In UML, an STD is represented as a Statechart.
A tabular representation of the various valid transitions between states in a finite state machine and the events that trigger them.
A sequence of statements with single entry and exit points.
An extension or modification of a UML modeling element beyond that defined by UML.
In a Harel finite state machine, a subdivision of a state triggered by a single event. Actions associated with both the parent state and the substate will execute when the event is consumed. Substates provide a form of generalization for state machines.
In MBD notation, substates are pure notation artifacts used solely to simpify the STD by coalescing multiple transitions to the same state into a single transition, so only a single state’s action responds to an event.
A logical unit of application partitioning that captures a single, cohesive subject matter and level of abstraction. Subsystems are related by dependencies in an directed, acyclic graph where the dependencies represent flows of requirements in roughly a client/service relation. Subsystems are encapsulated behind interfaces to decouple their implementations. In UML a subsystem is a stereotype of Component.
An independently running program.
A large set of programming languages that were defined from the late 1950s onwards. Those languages were text based, and their common characteristics were abstraction of procedural block structuring, procedural message passing, and stack-based scope.
An independently running process within a task.
The process of executing the Transformation Engine to generate the complete implementation code for all analysis models. In an MBD context, transformation is the act of producing an executable from a PIM.
Transforms platform-independent UML models into 3GL or Assembly code.
Rules used to transform platform-independent models into compilable code or executables.
A path between states in a statechart diagram.
In probability, a Type I error is rejecting a true hypothesis, while a Type II error is accepting a false hypothesis.
UML (Unified Modeling Language)
A modeling language used to specify, visualize, construct, and document the artifacts of an object-oriented software system. The Unified Modeling Language is primarily a graphical notation. When combined with a platform-independent action language (text-based) and an appropriate UML profile, it becomes a complete fourth generation language.
To break the connection between the specified class instances.
18.118.128.105