executable uml 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 modeldriven architecture executable uml models can be run tested debugged and measured for performance overview executable uml is a higher level of abstraction than thirdgeneration programming languages this allows developers to develop at the level of abstraction of the application the executable uml aims for separation of concerns this is supposed to increase ease of reuse and to lower the cost of software development this also enables executable uml domains to be crossplatform that means it is not tied to any specific programming language platform or technology executable uml also allows for translation of platformindependent models pim into platformspecific models psm the executable uml method enables valuing the model as intellectual property since the model is a fully executable solution for the problem space actions are specified in action language 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 they are also intended to be humanreadable executable uml building blocks a system 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 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 being modeled and the dependencies it has on other domains the class diagram defines the classes and class associations for the domain the statechart diagram defines the 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 each domain can be modeled independent of the other domains in the system enabling a separation of concerns as an example domains for an automated teller system may include the following the application domain model of the automated tellers business logic the security domain model of various issues regarding system security such as authentication and encryption the data access domain model of methods for external data usage the logging domain model of the various methods through which the system can or must log information the user interface domain model of the user interactions with the system the architecture domain model of the implemented of the executable uml model on the systems hardware and software 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 database would be marked as realized class diagram see also 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 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 see also finitestate machine and state 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 shlaermellor method existing action languages are object action language oal shlaermellor action language small action specification language asl that action language tall starrs concise relational action language scrall platformindependent 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 independent of the target implementation by executing the model each domain can be verified and validated independent of any other domain this allows errors detected to be associated with the domain and independent of other system concerns verification will involve such things as human review of the models performed by experts in the relevant domain and automated checking of the executable uml semantics ie checking that the executable uml model complies with the executable uml metamodel 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 the domain model must be translated into a less abstract form this translation process is called model compilation most model compilers target a known programming language because this allows reuse of existing compiler technologies optimizing the domain models for target implementation reasons will reduce the level of abstraction adversely affect domain independence and increase the cost of reuse in executable uml optimizations are done by the model compiler either automatically or through marking marking allows specific model elements to be targeted for specific lowerlevel implementations and allows for broader architectural decisions such as specifying that collections of objects should be implemented as a doubly linked list in mda terms the model compiler creates the psm the separation between the pim and psm in executable uml disables the ability to roundtrip 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 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 01 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 arbitraryid or one of the following domainspecific data types numeric string enumerated and composite domainspecific numeric and string data types can represent subsets of the core data types the domainspecific composite data type is to always be treated as a single unit within the domain eg a mailingaddress composite data type could be declared but city information couldnt be extracted from it constraints on the executable uml models can either be represented as object constraint language ocl or action language fuml and alf the object management group has recently standardized the foundational uml fuml which is strongly influenced by executable uml action language for foundational uml alf is a new standard action language proposed by the object management group aspect computer programming automatic programming code generation compiler modeldriven architecture mda modeldriven engineering mde shlaermellor method unified modeling language uml publications gerry boyd 2003 executable uml diagrams for the future published at devxcom february 5 2003 shayne flint and clive boughton 2003 executabletranslatable uml and systems engineering practical approaches for complex systems sete 2003 shayne flint henry gardner and clive boughton 2004 executabletranslatable uml in computing education proceedings of the sixth australasian conference on computing educationvolume 30 australian computer society inc hs lahman 2011 modelbased development applications addisonwesley professional isbn0321774078 stephen j mellor marc balcer 2002 executable uml a foundation for modeldriven architecture addison wesley isbn0201748045 chapter 1 online executable and translatable uml archived from the original on 20100209 retrieved 20150825 stephen j mellor 2004 introduction to executable and translatable uml techonline retrieved 20060425 stephen j mellor 2004 a framework for aspectoriented modelling pdf project technology inc retrieved 20060425 chris raistrick et al 2004 model driven architecture with executable uml cambridge university press isbn0521537711 leon starr 2002 executable umlhow to build class models prenticehall isbn0130674796 httpexecutableumlbookcom the official web site for executable uml a foundation for modeldriven architecture httpxtumlorg the official web site for bridgepoint the tool used in the book executable uml a foundation for modeldriven architecture executableuml yahoo groups executable uml tools yahoo groups animated introduction executable uml through mda explained 4 minutes at pathfindermdacom vteunified modeling languageactors organizations object management group uml partners persons grady booch ivar jacobson james rumbaugh conceptsobject oriented objectoriented programming objectoriented analysis and design objectoriented modeling structure actor attribute artifact class component interface object package profile diagram behavior activity event message method state use case relationships association composition dependency generalization or inheritance extensibility profile stereotype other multiplicity diagramsstructure class component composite structure deployment object package behaviour activity state machine use case interaction communications sequence interaction overview timing derived languages systems modeling language sysml uml exchange format uxf xml metadata interchange xmi executable uml xuml other topics glossary of uml terms rational unified process list of unified modeling language tools object modeling in color 