Executable UML
Encyclopedia
Executable UML, often abbreviated to xtUML or xUML, "is a single language in the UML family, designed to define the semantics of subject matters precisely." Executable UML is the evolution of the Shlaer-Mellor
Shlaer-Mellor
The Shlaer-Mellor method, developed by Sally Shlaer and Stephen Mellor, is one of a number of object-oriented analysis / object-oriented design methods which arrived in the late 1980s in response to established weaknesses in the existing structured analysis and structured design techniques in...

 method to UML
Unified Modeling Language
Unified Modeling Language is a standardized general-purpose modeling language in the field of object-oriented software engineering. The standard is managed, and was created, by the Object Management Group...

. Executable UML is a profile
Profile (UML)
A profile in the Unified Modeling Language provides a generic extension mechanism for customizing UML models for particular domains and platforms...

 of the UML
Unified Modeling Language
Unified Modeling Language is a standardized general-purpose modeling language in the field of object-oriented software engineering. The standard is managed, and was created, by the Object Management Group...

, that graphically specifies a system
System
System is a set of interacting or interdependent components forming an integrated whole....

 "at the next higher level of abstraction
Abstraction (computer science)
In computer science, abstraction is the process by which data and programs are defined with a representation similar to its pictorial meaning as rooted in the more complex realm of human life and language with their higher need of summarization and categorization , while hiding away the...

, abstracting away both specific programming languages and decisions about the organization of the software." The models are testable
Software testing
Software testing is an investigation conducted to provide stakeholders with information about the quality of the product or service under test. Software testing can also provide an objective, independent view of the software to allow the business to appreciate and understand the risks of software...

, and can be compiled
Compiler
A compiler is a computer program that transforms source code written in a programming language into another computer language...

 into a less abstract programming language
Programming language
A programming language is an artificial language designed to communicate instructions to a machine, particularly a computer. Programming languages can be used to create programs that control the behavior of a machine and/or to express algorithms precisely....

 to target a specific implementation
Implementation
Implementation is the realization of an application, or execution of a plan, idea, model, design, specification, standard, algorithm, or policy.-Computer Science:...

. Executable UML supports MDA
Model-driven architecture
Model-driven architecture 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 domain engineering, and supports model-driven engineering of...

 through specification of platform-independent model
Platform-independent model
A Platform-Independent Model 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...

s, and the compilation
Compiler
A compiler is a computer program that transforms source code written in a programming language into another computer language...

 of the platform-independent model
Platform-independent model
A Platform-Independent Model 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...

s into platform-specific model
Platform-specific model
A platform-specific model is a model of a software or business system that is linked to a specific technological platform . Platform-specific models are indispensable for the actual implementation of a system.For example, a need to implement an online shop...

s.

Usage of Executable UML

A system
Application software
Application software, also known as an application or an "app", is computer software designed to help the user to perform specific tasks. Examples include enterprise software, accounting software, office suites, graphics software and media players. Many application programs deal principally with...

 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 (computer science)
In computer science, abstraction is the process by which data and programs are defined with a representation similar to its pictorial meaning as rooted in the more complex realm of human life and language with their higher need of summarization and categorization , while hiding away the...

 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
    Aspect (computer science)
    In computer science, 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 to encapsulate unrelated functions...

     being modeled, and the dependencies it has on other domains.
  • The class diagram defines the classes
    Class (computer science)
    In object-oriented programming, a class is a construct that is used as a blueprint to create instances of itself – referred to as class instances, class objects, instance objects or simply objects. A class defines constituent members which enable these class instances to have state and behavior...

     and class associations
    Association (object-oriented programming)
    In object-oriented programming, association defines a relationship between classes of objects that allows one object instance to cause another to perform an action on its behalf...

     for the domain.
  • The statechart diagram defines the states
    Finite state machine
    A finite-state machine or finite-state automaton , or simply a state machine, is a mathematical model used to design computer programs and digital logic circuits. It is conceived as an abstract machine that can be in one of a finite number of states...

    , 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: aspects
Aspect (computer science)
In computer science, 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 to encapsulate unrelated functions...

 or concern
Concern (computer science)
In computer science, a concern is a particular set of behaviors needed by a computer program, the conceptual sections. A concern can be as general as database interaction or as specific as performing a calculation, depending on the level of conversation between developers and the program being...

s) 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
Separation of concerns
In computer science, separation of concerns is the process of separating a computer program into distinct features that overlap in functionality as little as possible. A concern is any piece of interest or focus in a program. Typically, concerns are synonymous with features or behaviors...

. As an example, domains for an automated teller system may include the following:
  • The application domain model of the automated teller's business logic
    Business logic
    Business logic, or domain logic, is a non-technical term generally used to describe the functional algorithms that handle information exchange between a database and a user interface.- Scope of business logic :Business logic:...

    .
  • The security
    Computer security
    Computer security is a branch of computer technology known as information security as applied to computers and networks. The objective of computer security includes protection of information and property from theft, corruption, or natural disaster, while allowing the information and property to...

     domain model of various issues regarding system security (such as authentication
    Authentication
    Authentication is the act of confirming the truth of an attribute of a datum or entity...

     and encryption
    Encryption
    In cryptography, encryption is the process of transforming information using an algorithm to make it unreadable to anyone except those possessing special knowledge, usually referred to as a key. The result of the process is encrypted information...

    ).
  • The data access domain model of methods for external data
    Data (computing)
    In computer science, data is information in a form suitable for use with a computer. Data is often distinguished from programs. A program is a sequence of instructions that detail a task for the computer to perform...

     usage.
  • The logging domain model of the various methods through which the system can or must log information.
  • The user interface
    User interface
    The user interface, in the industrial design field of human–machine interaction, is the space where interaction between humans and machines occurs. The goal of interaction between a human and a machine at the user interface is effective operation and control of the machine, and feedback from the...

     domain model of the user interactions with the system.
  • The architecture
    Platform (computing)
    A computing platform includes some sort of hardware architecture and a software framework , where the combination allows software, particularly application software, to run...

     domain model of the implemented
    Implementation
    Implementation is the realization of an application, or execution of a plan, idea, model, design, specification, standard, algorithm, or policy.-Computer Science:...

     of the Executable UML model on the system's hardware
    Computer hardware
    Personal computer hardware are component devices which are typically installed into or peripheral to a computer case to create a personal computer upon which system software is installed including a firmware interface such as a BIOS and an operating system which supports application software that...

     and software
    Computer software
    Computer software, or just software, is a collection of computer programs and related data that provide the instructions for telling a computer what to do and how to do it....

     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
MySQL officially, but also commonly "My Sequel") is a relational database management system that runs as a server providing multi-user access to a number of databases. It is named after developer Michael Widenius' daughter, My...

 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. Some associations may require further abstraction as an Association Class.

Constraints on the class diagram can be written in both Action Language and Object Constraint Language
Object Constraint Language
The Object Constraint Language is a declarative language for describing rules that apply to Unified Modeling Language models developed at IBM and now part of the UML standard. Initially, OCL was only a formal specification language extension to UML. OCL may now be used with any Meta-Object...

 (OCL).

The Executable UML profile limits which UML elements 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

See also: Finite State Machine
Finite state machine
A finite-state machine or finite-state automaton , or simply a state machine, is a mathematical model used to design computer programs and digital logic circuits. It is conceived as an abstract machine that can be in one of a finite number of states...

, State diagram
State diagram
A state diagram is a type of diagram used in computer science and related fields to describe the behavior of systems. State diagrams require that the system described is composed of a finite number of states; sometimes, this is indeed the case, while at other times this is a reasonable abstraction...



Classes have lifecycles which are modeled in Executable UML with a statechart diagram
State diagram
A state diagram is a type of diagram used in computer science and related fields to describe the behavior of systems. State diagrams require that the system described is composed of a finite number of states; sometimes, this is indeed the case, while at other times this is a reasonable abstraction...

. 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
Moore machine
In the theory of computation, a Moore machine is a finite-state machine, whose output values are determined solely by its current state.-Name:The Moore machine is named after Edward F...

. 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. Action languages have been around much longer than that in support of the Shlaer-Mellor
Shlaer-Mellor
The Shlaer-Mellor method, developed by Sally Shlaer and Stephen Mellor, is one of a number of object-oriented analysis / object-oriented design methods which arrived in the late 1980s in response to established weaknesses in the existing structured analysis and structured design techniques in...

 method. Some existing action languages are Object Action Language(OAL), Shlaer-Mellor Action Language(SMALL), Action Specification Language(ASL), 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

See also: Software verification
Software verification
Software verification is a broader and more complex discipline of software engineering whose goal is to assure that software fully satisfies all the expected requirements.There are two fundamental approaches to verification:...

, Debugging
Debugging
Debugging is a methodical process of finding and reducing the number of bugs, or defects, in a computer program or a piece of electronic hardware, thus making it behave as expected. Debugging tends to be harder when various subsystems are tightly coupled, as changes in one may cause bugs to emerge...



Once a domain is modeled, it can be tested
Software testing
Software testing is an investigation conducted to provide stakeholders with information about the quality of the product or service under test. Software testing can also provide an objective, independent view of the software to allow the business to appreciate and understand the risks of software...

 independent of the target implementation
Implementation
Implementation is the realization of an application, or execution of a plan, idea, model, design, specification, standard, algorithm, or policy.-Computer Science:...

 by executing the model. Each domain can be verified and validated
Verification and Validation
In software project management, software testing, and software engineering, verification and validation is the process of checking that a software system meets specifications and that it fulfills its intended purpose...

 independent of any other domain. This allows errors
Software bug
A software bug is the common term used to describe an error, flaw, mistake, failure, or fault in a computer program or system that produces an incorrect or unexpected result, or causes it to behave in unintended ways. Most bugs arise from mistakes and errors made by people in either a program's...

 detected to be associated with the domain and independent of other system concerns, and lowers the cost of verification and validation
Verification and Validation
In software project management, software testing, and software engineering, verification and validation is the process of checking that a software system meets specifications and that it fulfills its intended purpose...

.

Verification
Static testing
Static testing is a form of software testing where the software isn't actually used. This is in contrast to dynamic testing. It is generally not detailed testing, but checks mainly for the sanity of the code, algorithm, or document. It is primarily syntax checking of the code and/or manually...

 will involve such things as human review
Peer review
Peer review is a process of self-regulation by a profession or a process of evaluation involving qualified individuals within the relevant field. Peer review methods are employed to maintain standards, improve performance and provide credibility...

 of the models, performed by experts in the relevant domain, and automated checking of the Executable UML semantics. e.g., whether or not the Executable UML is compilable, whether or not each class attribute has a type, etc.

Validation
Dynamic testing
Dynamic testing is a term used in software engineering to describe the testing of the dynamic behavior of code. That is, dynamic analysis refers to the examination of the physical response from the system to variables that are not constant and change with time...

 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
Implementation is the realization of an application, or execution of a plan, idea, model, design, specification, standard, algorithm, or policy.-Computer Science:...

, the domain model must be translated into a less abstract
Abstraction (computer science)
In computer science, abstraction is the process by which data and programs are defined with a representation similar to its pictorial meaning as rooted in the more complex realm of human life and language with their higher need of summarization and categorization , while hiding away the...

 form. This translation process is called model compilation. Most model compilers target a known programming language
Programming language
A programming language is an artificial language designed to communicate instructions to a machine, particularly a computer. Programming languages can be used to create programs that control the behavior of a machine and/or to express algorithms precisely....

, because this allows reuse of existing compiler
Compiler
A compiler is a computer program that transforms source code written in a programming language into another computer language...

 technologies.

Optimizing
Optimization (computer science)
In computer science, program optimization or software optimization is the process of modifying a software system to make some aspect of it work more efficiently or use fewer resources...

 the domain models for target implementation
Implementation
Implementation is the realization of an application, or execution of a plan, idea, model, design, specification, standard, algorithm, or policy.-Computer Science:...

 reasons will reduce the level of abstraction
Abstraction (computer science)
In computer science, abstraction is the process by which data and programs are defined with a representation similar to its pictorial meaning as rooted in the more complex realm of human life and language with their higher need of summarization and categorization , while hiding away the...

, adversely affect domain independence, and increase the cost of reuse
Code reuse
Code reuse, also called software reuse, is the use of existing software, or software knowledge, to build new software.-Overview:Ad hoc code reuse has been practiced from the earliest days of programming. Programmers have always reused sections of code, templates, functions, and procedures...

. In executable UML, optimizations
Optimization (computer science)
In computer science, program optimization or software optimization is the process of modifying a software system to make some aspect of it work more efficiently or use fewer resources...

 are done by the model compiler either automatically or through marking. Marking allows specific model elements to be targeted for specific lower-level implementation
Implementation
Implementation is the realization of an application, or execution of a plan, idea, model, design, specification, standard, algorithm, or policy.-Computer Science:...

s, and allows for broader architectural decisions, such as specifying that collections
Container (data structure)
In computer science, a container is a class, a data structure, or an abstract data type whose instances are collections of other objects. In other words; they are used for storing objects in an organized way following specific access rules...

 of objects should be implemented
Implementation
Implementation is the realization of an application, or execution of a plan, idea, model, design, specification, standard, algorithm, or policy.-Computer Science:...

 as a doubly linked list.

In MDA
Model-driven architecture
Model-driven architecture 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 domain engineering, and supports model-driven engineering of...

 terms, the model compiler creates the PSM
Platform-specific model
A platform-specific model is a model of a software or business system that is linked to a specific technological platform . Platform-specific models are indispensable for the actual implementation of a system.For example, a need to implement an online shop...

. The separation between the PIM
Platform-independent model
A Platform-Independent Model 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...

 and PSM
Platform-specific model
A platform-specific model is a model of a software or business system that is linked to a specific technological platform . Platform-specific models are indispensable for the actual implementation of a system.For example, a need to implement an online shop...

 in Executable UML disables the ability to round-trip engineer
Round-trip engineering
Round-trip engineering is a functionality of software development tools that synchronizes two or more related software artifacts, such as, source code, models, configuration files, and other documents...

 the model, and deters modifications to the PSM
Platform-specific model
A platform-specific model is a model of a software or business system that is linked to a specific technological platform . Platform-specific models are indispensable for the actual implementation of a system.For example, a need to implement an online shop...

.

Executable UML profile

Executable UML is a profile of the UML
Profile (UML)
A profile in the Unified Modeling Language provides a generic extension mechanism for customizing UML models for particular domains and platforms...

, defining execution semantics for a subset of the UML.

Some of notable aspects of the Executable UML profile include the following:
  • No support for implementation specific constructs, like aggregation and composition.
  • Generalizations are always notated as {complete, disjoint}.
  • 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 types 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. e.g., a MailingAddress data type could be declared, but city information couldn't be extracted from it.
  • Constraints
    Constraint (information theory)
    Constraint in information theory refers to the degree of statistical dependence between or among variables.Garner provides a thorough discussion of various forms of constraint with application to pattern recognition and psychology....

     on the Executable UML models can either be represented as Object Constraint Language
    Object Constraint Language
    The Object Constraint Language is a declarative language for describing rules that apply to Unified Modeling Language models developed at IBM and now part of the UML standard. Initially, OCL was only a formal specification language extension to UML. OCL may now be used with any Meta-Object...

     (OCL) or action language.
  • Domains are represented as a Package, and bridges are represented as a Dependency.

Advantages of Executable UML

The intended advantages of Executable UML are as follows:
  • Executable UML is a higher level of abstraction
    Abstraction (computer science)
    In computer science, abstraction is the process by which data and programs are defined with a representation similar to its pictorial meaning as rooted in the more complex realm of human life and language with their higher need of summarization and categorization , while hiding away the...

     than 3GL
    Third-generation programming language
    A third-generation programming language is a refinement of a second-generation programming language. The second generation of programming languages brought logical structure to software. The third generation brought refinements to make the languages more programmer-friendly...

    s. This allows developers
    Software developer
    A software developer is a person concerned with facets of the software development process. Their work includes researching, designing, developing, and testing software. A software developer may take part in design, computer programming, or software project management...

     to develop
    Software engineering
    Software Engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, and the study of these approaches; that is, the application of engineering to software...

     at the level of abstraction of the application.
  • The Executable UML allows for true separation of concerns
    Separation of concerns
    In computer science, separation of concerns is the process of separating a computer program into distinct features that overlap in functionality as little as possible. A concern is any piece of interest or focus in a program. Typically, concerns are synonymous with features or behaviors...

    . This significantly increases ease of reuse
    Code reuse
    Code reuse, also called software reuse, is the use of existing software, or software knowledge, to build new software.-Overview:Ad hoc code reuse has been practiced from the earliest days of programming. Programmers have always reused sections of code, templates, functions, and procedures...

     and lowers the cost of software development
    Software development
    Software development is the development of a software product...

    . This also enables Executable UML domains to be cross-platform
    Cross-platform
    In computing, cross-platform, or multi-platform, is an attribute conferred to computer software or computing methods and concepts that are implemented and inter-operate on multiple computer platforms...

     and not tied to any specific programming language, platform or technology.
  • Executable UML allows for translation of Platform-independent model
    Platform-independent model
    A Platform-Independent Model 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...

    s into Platform-specific model
    Platform-specific model
    A platform-specific model is a model of a software or business system that is linked to a specific technological platform . Platform-specific models are indispensable for the actual implementation of a system.For example, a need to implement an online shop...

    s. This eliminates the labor-intensive task of elaborating the PIM
    Platform-independent model
    A Platform-Independent Model 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...

     into a PSM
    Platform-specific model
    A platform-specific model is a model of a software or business system that is linked to a specific technological platform . Platform-specific models are indispensable for the actual implementation of a system.For example, a need to implement an online shop...

    .
  • Executable UML enables easy exchange and reuse of knowledge by using the industry standard UML
    Unified Modeling Language
    Unified Modeling Language is a standardized general-purpose modeling language in the field of object-oriented software engineering. The standard is managed, and was created, by the Object Management Group...

    . Since the final model is a fully executable solution for the problem space, it can be valued as intellectual property
    Intellectual property
    Intellectual property is a term referring to a number of distinct types of creations of the mind for which a set of exclusive rights are recognized—and the corresponding fields of law...

    .
  • Executable UML closes the disconnect between documentation and programming language
    Programming language
    A programming language is an artificial language designed to communicate instructions to a machine, particularly a computer. Programming languages can be used to create programs that control the behavior of a machine and/or to express algorithms precisely....

    , as the models are a graphical, executable specification of the problem space that is compiled into a target implementation
    Implementation
    Implementation is the realization of an application, or execution of a plan, idea, model, design, specification, standard, algorithm, or policy.-Computer Science:...

    .
  • Since actions are specified in action language, the automatic generation of implementation code from Executable UML models can leverage this complete, semantic-level knowledge of behavior to perform self-optimization
    Self-Optimization
    In cellular communications technology, Self-Optimization is a process in which the system’s settings are autonomously and continuously adapted to the traffic profile and the network environment in terms of topology, propagation and interference...

    , producing implementations that are far more efficient than other forms of code generation.

fUML

The Object Management Group
Object Management Group
Object Management Group is a consortium, originally aimed at setting standards for distributed object-oriented systems, and is now focused on modeling and model-based standards.- Overview :...

 has recently standardized the Foundational UML (fUML). See Discussion.

See also

  • Model-driven architecture
    Model-driven architecture
    Model-driven architecture 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 domain engineering, and supports model-driven engineering of...

  • Model Driven Engineering
    Model-driven engineering
    Model-driven engineering is a software development methodology which focuses on creating and exploiting domain models , rather than on the computing concepts...

  • Shlaer-Mellor
    Shlaer-Mellor
    The Shlaer-Mellor method, developed by Sally Shlaer and Stephen Mellor, is one of a number of object-oriented analysis / object-oriented design methods which arrived in the late 1980s in response to established weaknesses in the existing structured analysis and structured design techniques in...

  • Unified Modeling Language
    Unified Modeling Language
    Unified Modeling Language is a standardized general-purpose modeling language in the field of object-oriented software engineering. The standard is managed, and was created, by the Object Management Group...

  • Aspect (computer science)
    Aspect (computer science)
    In computer science, 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 to encapsulate unrelated functions...

  • Software factory
    Software factory
    In software engineering and enterprise software architecture, a software factory is an organizational structure that specializes in producing computer software applications or software components according to specific, externally-defined end-user requirements through an assembly process...

  • Code generation
    Code generation
    In computer science, code generation is the process by which a compiler's code generator converts some intermediate representation of source code into a form that can be readily executed by a machine ....

  • I-OOA
    I-OOA
    I-OOA was a software tool, developed and sold by the Kennedy Carter company, that supported the Shlaer-Mellor design method, and that generated code in C and C++. This tool could be modified to generate code of different styles, and also, to generate code in different programming languages.The...

  • Shlaer-Mellor and Executable UML References

External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK