Executable UML
   HOME

TheInfoList



OR:

Executable UML (xtUML or xUML) is both a software development method and a highly abstract software language. It was described for the first time in 2002 in the book "Executable UML: A Foundation for Model-Driven Architecture". The language "combines a subset of the UML (
Unified Modeling Language The Unified Modeling Language (UML) is a general-purpose, developmental modeling language in the field of software engineering that is intended to provide a standard way to visualize the design of a system. The creation of UML was originally m ...
) graphical notation with executable semantics and timing rules." The Executable UML method is the successor to the Shlaer–Mellor method. Executable UML models "can be run,
tested ''Tested'' is a live album by punk rock band Bad Religion. It was recorded in the USA, Canada, Germany, Estonia, Denmark, Italy and Austria, in 1996, and released in 1997. It is Bad Religion's second live album. Instead of using crowd microphon ...
, debugged, and measured for performance.", and can be
compiled In computing, a compiler is a computer program that translates computer code written in one programming language (the ''source'' language) into another language (the ''target'' language). The name "compiler" is primarily used for programs tha ...
into a less abstract
programming language A programming language is a system of notation for writing computer programs. Most programming languages are text-based formal languages, but they may also be graphical. They are a kind of computer language. The description of a programming ...
to target a specific
implementation Implementation is the realization of an application, or execution of a plan, idea, model, design, specification, standard, algorithm, or policy. Industry-specific definitions Computer science In computer science, an implementation is a real ...
. Executable UML supports
model-driven architecture Model Driven Architecture (MDA) is a software design approach for the development of software systems. It provides a set of guidelines for the structuring of specifications, which are expressed as models. Model Driven Architecture is a kind of doma ...
(MDA) through specification of
platform-independent model A platform-independent model (PIM) in software engineering is a model of a software system or business system that is independent of the specific technological platform used to implement it. The term platform-independent model is most frequently ...
s, and the compilation of the
platform-independent model A platform-independent model (PIM) in software engineering is a model of a software system or business system that is independent of the specific technological platform used to implement it. The term platform-independent model is most frequently ...
s into
platform-specific model A platform-specific model is a model of a software or business system that is linked to a specific technological platform (e.g. a specific programming language, operating system, document file format or database). Platform-specific models are indi ...
s.


Overview

Executable UML is a higher level of
abstraction Abstraction in its main sense is a conceptual process wherein general rules and concepts are derived from the usage and classification of specific examples, literal ("real" or " concrete") signifiers, first principles, or other methods. "An abst ...
than
third-generation programming language A third-generation programming language (3GL) is a high-level computer programming language that tends to be more machine-independent and programmer-friendly than the machine code of the first-generation and assembly languages of the second-gene ...
s. This allows
developer Developer may refer to: Computers *Software developer, a person or organization who develop programs/applications * Video game developer, a person or business involved in video game development, the process of designing and creating games * Web de ...
s to develop at the level of abstraction of the application. The Executable UML aims for
separation of concerns In computer science, separation of concerns is a design principle for separating a computer program into distinct sections. Each section addresses a separate '' concern'', a set of information that affects the code of a computer program. A concern ...
. This is supposed to increase ease of
reuse Reuse is the action or practice of using an item, whether for its original purpose (conventional reuse) or to fulfill a different function ( creative reuse or repurposing). It should be distinguished from recycling, which is the breaking down of u ...
and to lower the cost of
software development Software development is the process of conceiving, specifying, designing, programming, documenting, testing, and bug fixing involved in creating and maintaining applications, frameworks, or other software components. Software development invo ...
. This also enables Executable UML domains to be
cross-platform In computing, cross-platform software (also called multi-platform software, platform-agnostic software, or platform-independent software) is computer software that is designed to work in several computing platforms. Some cross-platform software ...
. That means it is not tied to any specific programming language, platform or technology. Executable UML also allows for translation of
platform-independent model A platform-independent model (PIM) in software engineering is a model of a software system or business system that is independent of the specific technological platform used to implement it. The term platform-independent model is most frequently ...
s (PIM) into
platform-specific model A platform-specific model is a model of a software or business system that is linked to a specific technological platform (e.g. a specific programming language, operating system, document file format or database). Platform-specific models are indi ...
s (PSM). The Executable UML method enables valuing the model as
intellectual property Intellectual property (IP) is a category of property that includes intangible creations of the human intellect. There are many types of intellectual property, and some countries recognize more than others. The best-known types are patents, co ...
, since the model is a fully executable solution for the problem space. Actions are specified in
action language In computer science, an action language is a language for specifying state transition systems, and is commonly used to create formal models of the effects of actions on the world. Action languages are commonly used in the artificial intelligen ...
. This means that the automatic generation of implementation code from Executable UML models can be output in an optimized form. Executable UML is intended to serve as executable code as well as documentation. The models are a graphical, executable specification of the problem space that is compiled into a target
implementation Implementation is the realization of an application, or execution of a plan, idea, model, design, specification, standard, algorithm, or policy. Industry-specific definitions Computer science In computer science, an implementation is a real ...
. They are also intended to be
human-readable A human-readable medium or human-readable format is any encoding of data or information that can be naturally read by humans. In computing, ''human-readable'' data is often encoded as ASCII or Unicode text, rather than as binary data. In m ...
.


Executable UML building blocks

A
system A system is a group of interacting or interrelated elements that act according to a set of rules to form a unified whole. A system, surrounded and influenced by its environment, is described by its boundaries, structure and purpose and express ...
is composed of multiple subject matters, known as ''domains'' in Executable UML terms. Executable UML is used to model a domain at the level of
abstraction Abstraction in its main sense is a conceptual process wherein general rules and concepts are derived from the usage and classification of specific examples, literal ("real" or " concrete") signifiers, first principles, or other methods. "An abst ...
of its subject matter independent of implementation concerns. The resulting domain model is represented by the following elements: * The ''domain chart'' provides a view of the
domain Domain may refer to: Mathematics *Domain of a function, the set of input values for which the (total) function is defined ** Domain of definition of a partial function ** Natural domain of a partial function **Domain of holomorphy of a function * ...
being modeled, and the dependencies it has on other domains. * The ''class diagram'' defines the
class Class or The Class may refer to: Common uses not otherwise categorized * Class (biology), a taxonomic rank * Class (knowledge representation), a collection of individuals or objects * Class (philosophy), an analytical concept used differently ...
es and class associations for the domain. * The ''statechart diagram'' defines the
state State may refer to: Arts, entertainment, and media Literature * ''State Magazine'', a monthly magazine published by the U.S. Department of State * ''The State'' (newspaper), a daily newspaper in Columbia, South Carolina, United States * ''Our S ...
s, events, and state transitions for a class or class instance. * The ''action language'' defines the actions or operations that perform processing on model elements.


Domain Chart

Executable UML requires identification of the domains (also known as:
aspect Aspect or Aspects may refer to: Entertainment * ''Aspect magazine'', a biannual DVD magazine showcasing new media art * Aspect Co., a Japanese video game company * Aspects (band), a hip hop group from Bristol, England * ''Aspects'' (Benny Carter ...
s or concerns) of the system. "Each domain is an autonomous world inhabited by conceptual entities" Each domain can be modeled independent of the other domains in the system, enabling a
separation of concerns In computer science, separation of concerns is a design principle for separating a computer program into distinct sections. Each section addresses a separate '' concern'', a set of information that affects the code of a computer program. A concern ...
. As an example, domains for an automated teller system may include the following: * The application domain model of the automated teller's
business logic In computer software, business logic or domain logic is the part of the program that encodes the real-world business rules that determine how data can be created, stored, and changed. It is contrasted with the remainder of the software that might ...
. * The
security" \n\n\nsecurity.txt is a proposed standard for websites' security information that is meant to allow security researchers to easily report security vulnerabilities. The standard prescribes a text file called \"security.txt\" in the well known locat ...
domain model of various issues regarding system security (such as
authentication Authentication (from ''authentikos'', "real, genuine", from αὐθέντης ''authentes'', "author") is the act of proving an assertion, such as the identity of a computer system user. In contrast with identification, the act of indicatin ...
and
encryption In cryptography, encryption is the process of encoding information. This process converts the original representation of the information, known as plaintext, into an alternative form known as ciphertext. Ideally, only authorized parties can d ...
). * The data access domain model of methods for external
data In the pursuit of knowledge, data (; ) is a collection of discrete values that convey information, describing quantity, quality, fact, statistics, other basic units of meaning, or simply sequences of symbols that may be further interpret ...
usage. * The
logging Logging is the process of cutting, processing, and moving trees to a location for transport. It may include skidding, on-site processing, and loading of trees or logs onto trucks or skeleton cars. Logging is the beginning of a supply cha ...
domain model of the various methods through which the system can or must log information. * The
user interface In the industrial design field of human–computer interaction, a user interface (UI) is the space where interactions between humans and machines occur. The goal of this interaction is to allow effective operation and control of the machine f ...
domain model of the user interactions with the system. * The
architecture Architecture is the art and technique of designing and building, as distinguished from the skills associated with construction. It is both the process and the product of sketching, conceiving, planning, designing, and constructing buildings ...
domain model of the implemented of the Executable UML model on the system's hardware and
software Software is a set of computer programs and associated documentation and data. This is in contrast to hardware, from which the system is built and which actually performs the work. At the lowest programming level, executable code consist ...
platforms. The ''separation of concerns'' enables each domain to be developed and verified independently of the other domains in the system by the respective domain experts. The connections between domains are called ''bridges''. "A bridge is a layering dependency between domains". This means that the domains can place requirements upon other domains. It is recommended that bridges are agreed upon by the different domain experts. A domain can be marked as ''realized'' to indicate that the domain exists and does not need to be modeled. For example, a data access domain that uses a
MySQL MySQL () is an open-source relational database management system (RDBMS). Its name is a combination of "My", the name of co-founder Michael Widenius's daughter My, and "SQL", the acronym for Structured Query Language. A relational database ...
database would be marked as realized.


Class diagram

Conceptual entities, such as tangible things, roles, incidents, interactions, and specifications, specific to the domain being modeled are abstracted into ''classes''. Classes can have ''attributes'' and ''operations''. The relationships between these classes will be indicated with ''associations'' and ''generalizations''. An association may require further abstraction as an ''Association Class''. Constraints on the class diagram can be written in both Action Language and
Object Constraint Language The Object Constraint Language (OCL) is a declarative language describing rules applying to Unified Modeling Language (UML) models developed at IBM and is now part of the UML standard. Initially, OCL was merely a formal specification language ex ...
(OCL). The Executable UML method limits the UML elements that can be used in an Executable UML class diagram. An Executable UML class diagram is meant to expose information about the domain. Too much complexity in the statechart diagrams is a good indicator that the class diagram should be reworked.


Statechart Diagram

Classes have lifecycles which are modeled in Executable UML with a statechart diagram. The statechart diagram defines the ''states'', ''transitions'', ''events'', and ''procedures'' that define a class' behaviour. Each state has only one procedure that is executed upon entry into that state. A procedure is composed of actions, which are specified in an action language.


Action Language

The class and state models by themselves can only provide a static view of the domain. In order to have an executable model, there must be a way to create class instances, establish associations, perform operations on attributes, call state events, etc. In Executable UML, this is done using an action language that conforms to the UML Action Semantics. Action Semantics was added to the UML specification in 2001. The Action Semantics RFP was based on previous work in action languages supporting the Shlaer–Mellor method. Existing action languages are Object Action Language (OAL), Shlaer–Mellor Action Language (SMALL), Action Specification Language (ASL), Model Action Specification Language (MASL), That Action Language (TALL), Starr's Concise Relational Action Language (SCRALL), Platform-independent Action Language (PAL) and PathMATE Action Language (PAL). SCRALL is the only one that is a graphical action language.


Model testing and execution

Once a domain is modeled, it can be
tested ''Tested'' is a live album by punk rock band Bad Religion. It was recorded in the USA, Canada, Germany, Estonia, Denmark, Italy and Austria, in 1996, and released in 1997. It is Bad Religion's second live album. Instead of using crowd microphon ...
independent of the target
implementation Implementation is the realization of an application, or execution of a plan, idea, model, design, specification, standard, algorithm, or policy. Industry-specific definitions Computer science In computer science, an implementation is a real ...
by executing the model. Each domain can be verified and validated independent of any other domain. This allows
error An error (from the Latin ''error'', meaning "wandering") is an action which is inaccurate or incorrect. In some usages, an error is synonymous with a mistake. The etymology derives from the Latin term 'errare', meaning 'to stray'. In statistics ...
s detected to be associated with the domain and independent of other system concerns.
Verification Verify or verification may refer to: General * Verification and validation, in engineering or quality management systems, is the act of reviewing, inspecting or testing, in order to establish and document that a product, service or system meets ...
will involve such things as human
review A review is an evaluation of a publication, product, service, or company or a critical take on current affairs in literature, politics or culture. In addition to a critical evaluation, the review's author may assign the work a rating to indi ...
of the models, performed by experts in the relevant domain, and automated checking of the Executable UML semantics. i.e., checking that the Executable UML model complies with the Executable UML
meta Meta (from the Greek μετά, '' meta'', meaning "after" or "beyond") is a prefix meaning "more comprehensive" or "transcending". In modern nomenclature, ''meta''- can also serve as a prefix meaning self-referential, as a field of study or end ...
model. Validation will typically involve use of an Executable UML tool to execute the model. The execution can occur either before or after model compilation.


Model compilation

In order to support execution on the target
implementation Implementation is the realization of an application, or execution of a plan, idea, model, design, specification, standard, algorithm, or policy. Industry-specific definitions Computer science In computer science, an implementation is a real ...
, the domain model must be translated into a less abstract form. This translation process is called ''model compilation''. Most model
compiler In computing, a compiler is a computer program that translates computer code written in one programming language (the ''source'' language) into another language (the ''target'' language). The name "compiler" is primarily used for programs tha ...
s target a known
programming language A programming language is a system of notation for writing computer programs. Most programming languages are text-based formal languages, but they may also be graphical. They are a kind of computer language. The description of a programming ...
, because this allows reuse of existing
compiler In computing, a compiler is a computer program that translates computer code written in one programming language (the ''source'' language) into another language (the ''target'' language). The name "compiler" is primarily used for programs tha ...
technologies.
Optimizing Mathematical optimization (alternatively spelled ''optimisation'') or mathematical programming is the selection of a best element, with regard to some criterion, from some set of available alternatives. It is generally divided into two subfi ...
the domain models for target
implementation Implementation is the realization of an application, or execution of a plan, idea, model, design, specification, standard, algorithm, or policy. Industry-specific definitions Computer science In computer science, an implementation is a real ...
reasons will reduce the level of
abstraction Abstraction in its main sense is a conceptual process wherein general rules and concepts are derived from the usage and classification of specific examples, literal ("real" or " concrete") signifiers, first principles, or other methods. "An abst ...
, adversely affect domain independence, and increase the cost of
reuse Reuse is the action or practice of using an item, whether for its original purpose (conventional reuse) or to fulfill a different function ( creative reuse or repurposing). It should be distinguished from recycling, which is the breaking down of u ...
. In executable UML,
optimization Mathematical optimization (alternatively spelled ''optimisation'') or mathematical programming is the selection of a best element, with regard to some criterion, from some set of available alternatives. It is generally divided into two subfi ...
s are done by the model
compiler In computing, a compiler is a computer program that translates computer code written in one programming language (the ''source'' language) into another language (the ''target'' language). The name "compiler" is primarily used for programs tha ...
either automatically or through ''marking''. Marking allows specific model elements to be targeted for specific lower-level
implementation Implementation is the realization of an application, or execution of a plan, idea, model, design, specification, standard, algorithm, or policy. Industry-specific definitions Computer science In computer science, an implementation is a real ...
s, and allows for broader architectural decisions, such as specifying that collections of objects should be implemented as a
doubly linked list In computer science, a doubly linked list is a linked data structure that consists of a set of sequentially linked records called nodes. Each node contains three fields: two link fields (references to the previous and to the next node in the s ...
. In MDA terms, the model
compiler In computing, a compiler is a computer program that translates computer code written in one programming language (the ''source'' language) into another language (the ''target'' language). The name "compiler" is primarily used for programs tha ...
creates the PSM. The separation between the PIM and PSM in Executable UML disables the ability to round-trip engineer the model, and deters modifications to the PSM.


Executable UML Key Aspects

Executable UML defines execution semantics for a subset of the UML. Key aspects of the Executable UML subset include the following: * No support for implementation specific constructs, like aggregation and composition. * Generalizations are always notated as . * Associations between classes are ''always'' named, have verb phrases on both ends specifying the roles, and have multiplicity specified on both ends. * Multiplicities on association ends are restricted to 0..1 (zero to one), * (zero to many), 1 (exactly one), or 1..* (one to many). *
Data type In computer science and computer programming, a data type (or simply type) is a set of possible values and a set of allowed operations on it. A data type tells the compiler or interpreter how the programmer intends to use the data. Most progra ...
s are restricted to the following core data types: boolean, string, integer, real, date, timestamp, and arbitrary_id, or one of the following domain-specific data types: numeric, string, enumerated, and composite. Domain-specific numeric and string data types can represent subsets of the core data types. The domain-specific composite data type is to always be treated as a single unit within the domain. e.g., a ''MailingAddress'' composite data type could be declared, but city information couldn't be extracted from it. * Constraints on the Executable UML models can either be represented as
Object Constraint Language The Object Constraint Language (OCL) is a declarative language describing rules applying to Unified Modeling Language (UML) models developed at IBM and is now part of the UML standard. Initially, OCL was merely a formal specification language ex ...
(OCL) or action language.


fUML and ALF

The
Object Management Group The Object Management Group (OMG) is a computer industry standards consortium. OMG Task Forces develop enterprise integration standards for a range of technologies. Business activities The goal of the OMG was a common portable and interoperab ...
has standardized the Foundational UML (fUML), which was strongly influenced by Executable UML. Action Language for Foundational UML (ALF), is a standard action language specification by the
Object Management Group The Object Management Group (OMG) is a computer industry standards consortium. OMG Task Forces develop enterprise integration standards for a range of technologies. Business activities The goal of the OMG was a common portable and interoperab ...
.


See also

*
Aspect (computer programming) An aspect of a program is a feature linked to many other parts of the program, but which is not related to the program's primary function. An aspect crosscuts the program's core concerns, therefore violating its separation of concerns that tries ...
*
Automatic programming In computer science, the term automatic programming identifies a type of computer programming in which some mechanism generates a computer program to allow human programmers to write the code at a higher abstraction level. There has been little ...
*
Code generation (compiler) In computing, code generation is part of the process chain of a compiler and converts intermediate representation of source code into a form (e.g., machine code) that can be readily executed by the target system. Sophisticated compilers typical ...
*
Model-driven architecture Model Driven Architecture (MDA) is a software design approach for the development of software systems. It provides a set of guidelines for the structuring of specifications, which are expressed as models. Model Driven Architecture is a kind of doma ...
(MDA) *
Model-driven engineering Model-driven engineering (MDE) is a software development methodology that focuses on creating and exploiting domain models, which are conceptual models of all the topics related to a specific problem. Hence, it highlights and aims at abstract ...
(MDE) * Shlaer–Mellor method *
Unified Modeling Language The Unified Modeling Language (UML) is a general-purpose, developmental modeling language in the field of software engineering that is intended to provide a standard way to visualize the design of a system. The creation of UML was originally m ...
(UML)


Publications

* Gerry Boyd (2003) "Executable UML: Diagrams for the Future." published at ''devx.com'', February 5, 2003. * Shayne Flint, and Clive Boughton (2003) "Executable/translatable UML and Systems Engineering." ''Practical Approaches for Complex Systems (SETE 2003)''. * Shayne Flint, Henry Gardner, and Clive Boughton (2004). "Executable/Translatable UML in computing education." ''Proceedings of the Sixth Australasian Conference on Computing Education-Volume 30''. Australian Computer Society, Inc. * * Chapter 1 online * ''Executable and Translatable UML'' * Stephen J. Mellor (2004), Introduction to Executable and Translatable UML * Stephen J. Mellor (2004), A Framework for Aspect-Oriented Modelling * *


References


External links

* http://executableumlbook.com The official web site for "Executable UML: A Foundation for Model-Driven Architecture". {{DEFAULTSORT:Executable Uml Unified Modeling Language