Content deleted Content added
RandFreeman (talk | contribs) Importing Wikidata short description: "Software development method and a highly abstract software language" |
|||
(30 intermediate revisions by 23 users not shown) | |||
Line 1:
{{Short description|Software development method and a highly abstract software language}}
'''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".<ref>Mellor and Balcer 2002</ref> The language "combines a subset of the UML ([[Unified Modeling Language]]) graphical notation with executable semantics and timing rules."<ref>Starr 2002, p. 3.</ref> The Executable UML method is the successor to the [[
Executable UML models "can be run, [[software testing|tested]], debugged, and measured for performance.",<ref>Starr 2002, p. 3.</ref> and can be [[
== Overview ==
Executable UML is a higher level of [[abstraction (computer science)|abstraction]] than [[third-generation programming language]]s. This allows [[software developer|
Executable UML also allows for translation of
Actions are specified in [[
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 [[human-readable]].
Line 14 ⟶ 15:
== Executable UML building blocks ==
A [[application software|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 (computer science)|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 [[aspect (computer
* The ''class diagram'' defines the [[class (computer
* The ''statechart diagram'' defines the [[
* The ''action language'' defines the actions or operations that perform processing on model elements.
===Domain
Executable UML requires identification of the domains (also known as: [[aspect (computer
* The application ___domain model of the automated teller's [[business logic]].
* The [[computer security|security]] ___domain model of various issues regarding system security (such as [[authentication]] and [[encryption]]).
Line 26 ⟶ 27:
* The [[data logging|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 [[
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.
Line 46 ⟶ 47:
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
{{See also|Finite-state
Classes have lifecycles which are modeled in Executable UML with a [[state diagram|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 [[Moore machine|entry into that state]]. A procedure is composed of actions, which are specified in an action language.
===Action
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 [[
===Model testing and execution===
Once a ___domain is modeled, it can be [[software testing|tested]] independent of the target [[implementation]] by executing the model. Each ___domain can be [[verification and validation|verified and validated]] independent of any other ___domain. This allows [[software bug|
[[static testing|Verification]] will involve such things as human [[peer review|review]] 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
[[dynamic testing|Validation]] will typically involve use of an Executable UML tool to execute the model. The execution can occur either before or after model compilation.
Line 67 ⟶ 68:
In order to support execution on the target [[implementation]], the ___domain model must be translated into a less [[abstraction (computer science)|abstract]] form. This translation process is called ''model compilation''. Most model [[compilation (programming)|compiler]]s target a known [[programming language]], because this allows reuse of existing [[compiler]] technologies.
[[Program optimization
In [[model-driven architecture|MDA]] terms, the model [[compilation (programming)|compiler]] creates the [[
==Executable UML
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.<ref>Mellor and Balcer 2002, p. xxx.</ref>
Line 77 ⟶ 78:
* 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
* [[Constraint (information theory)|
== fUML and ALF ==
The [[Object Management Group]] has
Action Language for Foundational UML (ALF),<ref>{{Cite web|url=https://www.omg.org/spec/ALF/|title=Action Language for Foundational UML™ (ALF™)|website=www.omg.org|access-date=2016-12-21}}</ref> is a
==See also==
* [[Aspect (computer
* [[
* [[
* [[Model-driven architecture]] (MDA)
* [[Model-driven
* [[Shlaer–Mellor method]]
* [[Unified Modeling Language]] (UML)▼
▲* [[Unified Modeling Language]]
== Publications ==
* Gerry Boyd (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). "
* {{cite book | author=H.S. Lahman| title=Model-Based Development: Applications | publisher=Addison-Wesley Professional | year=2011 | isbn=0-321-77407-8}}
* {{cite book | author=[[Stephen J. Mellor]] & Marc Balcer | title=Executable UML: A Foundation for Model-Driven Architecture | publisher=Addison Wesley | year=2002 | isbn=0-201-74804-5}}
* ''Executable and Translatable UML''
*
* Stephen J. Mellor (2004), A Framework for Aspect-Oriented Modelling
* {{cite book | author=Chris Raistrick
* {{cite book | author=Leon Starr | title=Executable UML:How to Build Class Models | publisher=Prentice-Hall | year=2002 | isbn=0-13-067479-6}}
==References==
{{reflist|
==External links==
* http://executableumlbook.com The official web site for "Executable UML: A Foundation for Model-Driven Architecture".
{{UML}}
|