advertisement

Executable UML – UML2

50 %
50 %
advertisement
Information about Executable UML – UML2
Technology

Published on November 29, 2008

Author: adorepump

Source: slideshare.net

advertisement

Executable UML – UML2 The Need for xUML With Acknowledgement to Kennedy-Carter: http:// www.kc.com Moh Ibrahim, Alex Fedorec & Keith Rennolls The University of Greenwich

Why is the UML 1.x… not executable ? It is ‘ computationally ’ incomplete UML describes a system in, broadly, two ways: by specifying the desired results (use cases, sequence diagrams) by specifying the software that, when executed, will produce the desired results (classes, associations, operations, state machines) The latter specification of behaviour is the basis for implementing the system, but is missing key ingredients: the implementation of operations (methods) are specified only by a “ language dependent ” text string the actions associated with state machines (and methods) are specified either by a text string, or by using the “action” part of the UML Action Terminate Action DestroyAction Uninterpreted Action CreateAction CallAction ReturnAction SendAction

It is ‘ computationally ’ incomplete

UML describes a system in, broadly, two ways:

by specifying the desired results (use cases, sequence diagrams)

by specifying the software that, when executed, will produce the desired results (classes, associations, operations, state machines)

The latter specification of behaviour is the basis for implementing the system, but is missing key ingredients:

the implementation of operations (methods) are specified only by a “ language dependent ” text string

the actions associated with state machines (and methods) are specified either by a text string, or by using the “action” part of the UML

Action Specifications in UML 1.x Cannot be attached to methods and therefore cannot be used to specify operations Do not cover the full range of information required to model real behaviour No conditional logic Do not deal with internal data within an Action Sequence Cannot describe reading and writing of attributes Cannot describe manipulation and navigation of associations Cannot describe parallel behaviour Not related to the UML type model Do not have fully defined semantics ..... were intended only as a place holder for future UML development

Cannot be attached to methods and therefore

cannot be used to specify operations

Do not cover the full range of information required to model real behaviour

No conditional logic

Do not deal with internal data within an Action Sequence

Cannot describe reading and writing of attributes

Cannot describe manipulation and navigation of associations

Cannot describe parallel behaviour

Not related to the UML type model

Do not have fully defined semantics

..... were intended only as a place holder for future UML development

Why is the current UML not executable ? It is big UML was conceived as a Universal as well as Unified modelling language UML covers many development paradigms Synchronous and asynchronous behaviour State dependent and stateless behaviour Mealy state machines and Moore state machines Flat state models and Harel state charts Abstract analysis modelling and code specific design modelling Language specific modelling and abstract modelling Sometimes the breadth of coverage can lead to ambiguity... e.g. what happens if you execute a “return” in a transition action stimulated by “call” (synchronous) event ? I have absolutely no idea because that combination of behaviour is undefined! Transaction in Progress Transaction Complete entry/ log transaction Transaction Completed/ if is_aborted then return

It is big

UML was conceived as a Universal as well as Unified modelling language

UML covers many development paradigms

Synchronous and asynchronous behaviour

State dependent and stateless behaviour

Mealy state machines and Moore state machines

Flat state models and Harel state charts

Abstract analysis modelling and code specific design modelling

Language specific modelling and abstract modelling

Sometimes the breadth of coverage can lead to ambiguity...

e.g. what happens if you execute a “return” in a transition action

stimulated by “call” (synchronous) event ?

Actions and the UML the Action Specification Language, operates at the same level of abstraction as UML… …but embodies the precision to allow models to be executed and consequently supports translation of the models into any language. The OMG has recognised the need for a full action specification in the UML In November 1998 the OMG issued a Request for Proposals on Precise Action Semantics for the UML

the Action Specification Language, operates at the same level of abstraction as UML… …but embodies the precision to allow models to be executed and consequently supports translation of the models into any language.

The OMG has recognised the need for a full action specification in the UML

In November 1998 the OMG issued a Request for Proposals on Precise Action Semantics for the UML

What is xUML? xUML is an executable version of the UML, with… clearly defined simple model structure a precise semantics for actions, incorporated into the UML 2 standard a compliant action specification language an accompanying process a proven development process , oriented towards… executable modelling large-scale reuse pattern based design UML V1.x xUML = Semantically Weak Elements - Precisely Defined Action Semantics +

xUML is

an executable version of the UML, with…

clearly defined simple model structure

a precise semantics for actions, incorporated into the UML 2 standard

a compliant action specification language

an accompanying process

a proven development process , oriented towards…

executable modelling

large-scale reuse

pattern based design

Why an Executable UML ? Measurable Deliverables Models that execute tests correctly Can be delivered in phases with progressive integration Use case by use case Class group by class group Early Verification Requirements can be validated before extensive system design and coding This supports iterative and incremental development An executable model can be developed and tested even if it supports only a single use case Groups of classes at the collaboration, subsystem, package or domain level can be modelled and executed Admit In Patient User Interface U log incident Patient Admin Statements Resource Alloc 1:dialogue ok hit 2:admit in patient 3:assign bed 4:bed assigned 5:confirm admission 6:display dialogue 8:reject admission 9:display dialogue 1:op selects admit in patient 2: 3:find a suitable bed 4:if bed available then 5: confirm admission 6: display “success” dialogue 7: log admission details 8:else reject admission 9: display “failure” dialogue

Measurable Deliverables

Models that execute tests correctly

Can be delivered in phases with progressive integration

Use case by use case

Class group by class group

Early Verification

Requirements can be validated before extensive system design and coding

Why an Executable UML ? Improves the quality of the modelling Models can be judged not just on subjective criteria, but on whether they exhibit the desired behaviour and thus meet requirements Focused analyst objective The aim is to build models that execute correctly Avoids “analysis paralysis” Reviews criteria are objective and therefore more useful Does this identify the correct runway to deallocate ? Aircraft clearedRunway() Runway deallocate() 0..1 is_ allocated_to R9 0..1 # obtain an instance handle for # the runway we just landed on theRunway = this -> R9.”is_allocated_to” # remove the association unlink this R9 theRunway # tell the runway that aircraft has landed [] = deallocate[] on theRunway

Improves the quality of the modelling

Models can be judged not just on subjective criteria, but on whether they exhibit the desired behaviour and thus meet requirements

Focused analyst objective

The aim is to build models that execute correctly

Avoids “analysis paralysis”

Reviews criteria are objective and therefore more useful

Why an Executable UML ? ..... eliminates maintenance problems due to redundant analysis and design models Supports extensive code generation if desired Lack of ambiguity means automatic code generation will deliver functionally correct code A solid specification Supports multiple development teams Well defined models mean well defined interfaces Easier Transition to Design and Code No ambiguity in the models - the models have a single clear interpretation Design can be specified using abstract patterns GenericContainer HashTable LinkedList BoundedArray GenericClass 0..* 1 <TypicalClass>

..... eliminates maintenance problems due to redundant analysis and design models

Supports extensive code generation if desired

Lack of ambiguity means automatic code generation will deliver functionally correct code

A solid specification

Supports multiple development teams

Well defined models mean well defined interfaces

Easier Transition to Design and Code

No ambiguity in the models - the models have a single clear interpretation

Design can be specified using abstract patterns

Why an Executable UML ? and finally ..... It’s more fun ! Analysts see the results of their efforts more rapidly and have more confidence that what they are doing is correct Managers get more confidence that progress is being made Round-trip Software Engineering - Quality Assurance Problem / Requirement Solution / Implementation Can miss the solution to the problem?

and finally ..... It’s more fun !

Analysts see the results of their efforts more rapidly and have more confidence that what they are doing is correct

Managers get more confidence that progress is being made

Add a comment

Related presentations

Presentación que realice en el Evento Nacional de Gobierno Abierto, realizado los ...

In this presentation we will describe our experience developing with a highly dyna...

Presentation to the LITA Forum 7th November 2014 Albuquerque, NM

Un recorrido por los cambios que nos generará el wearabletech en el futuro

Um paralelo entre as novidades & mercado em Wearable Computing e Tecnologias Assis...

Microsoft finally joins the smartwatch and fitness tracker game by introducing the...

Related pages

List of Executable UML tools - Software modeling and ...

Complete list of executable UML tools for the fUML OMG standard and other UML executable languages
Read more

Executable UML - Association for Computing Machinery

Executable UML has also been used in lease-origination, web-enabled executive reporting, ... a UML2.0-Based metamodel for software process modelling, ...
Read more

Framework for eXecutable UML - home page - Serwer galera ...

Framework for eXecutable UML. Home; User Guide; Download; Examples; References; Project home. FXU is a framework used for creating applications according ...
Read more

OMG UML Resource Page - Unified Modeling Language (UML)

Unified Modeling Language™ (UML®) Resource Page ... Executable UML Time and Synchronization Rules (View Animated Version) - by Leon Starr; White Paper: OMG!
Read more

Presentation "Executable UML – UML2 The Need for xUML ...

Executable UML – UML2 The Need for xUML With Acknowledgement to Kennedy-Carter: http://www.kc.com http://www.kc.com Moh Ibrahim, Alex Fedorec & Keith ...
Read more

UML tools classified by categories (OSS, Ruby, MAC, mobile

Eclipse UML2 compatible tools ; open source tools; ... Executable UML tools: Executable UML (check the new Executable UML standards fuml and Alf) ...
Read more

Generating Business Applications from Executable Models ...

Generating Business Applications from Executable Models Using Xtend and ... Eclipse UML2 for traversing rich UML models and TextUML for building ...
Read more

Textual, executable, translatable UML

Textual, executable, translatable UML Gergely Dévai, Gábor Ferenc Kovács, Ádám Ancsin Eötvös Loránd University, Budapest, Hungary OCL and textual ...
Read more