Exectutable UML Tutorial

Download Report

Transcript Exectutable UML Tutorial

Executable UML – UML2
The Need for xUML
Moh Ibrahim, Alex Fedorec & Keith Rennolls
The University of Greenwich
With Acknowledgement to Kennedy-Carter: http://www.kc.com
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
CreateAction
ReturnAction
DestroyAction
Bonn – 6.11.03 NEFIS
Terminate
Action
SendAction
CallAction
Uninterpreted
Action
2
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
Bonn – 6.11.03 NEFIS
3
Why is the current UML not executable ?
 It is big
 UML was conceived as a Universal as well as Unified modelling
language
I have absolutely no
 UML covers many development paradigms
idea because that
combination of
 Synchronous and asynchronous behaviour
behaviour is
 State dependent and stateless behaviour
undefined!
 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 ?
Transaction in
Progress
Transaction Completed/
if is_aborted then
return
Transaction
Complete
entry/
log transaction
Bonn – 6.11.03 NEFIS
4
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
Bonn – 6.11.03 NEFIS
5
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
xUML
Bonn – 6.11.03 NEFIS
=
UML V1.x
-
Semantically
Weak
Elements
+
Precisely
Defined Action
Semantics
6
Why an Executable UML ?
 Measurable Deliverables
 Models that execute tests correctly
 Can be delivered in phases with progressive integration
 Use case by use case
This supports iterative and
incremental development
Statements
User Interface
1:op selects admit in patient
2:
Resource Alloc
2:admit in patient
An executable model can be
developed and tested even if
it supports only a single use
case
3:find a suitable bed
4:if bed available then
5: confirm admission
Admit
In Patient
Patient Admin
1:dialogue ok hit
6:
display “success” dialogue
7:
log admission details
3:assign bed
4:bed assigned
5:confirm admission
6:display dialogue
8:else reject admission
9: display “failure” dialogue 9:display dialogue
U
log incident
8:reject admission
Groups of classes at the
collaboration, subsystem,
package or domain level can
be modelled and executed
 Class group by class group
 Early Verification
 Requirements can be validated before extensive system design and
coding
Bonn – 6.11.03 NEFIS
7
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
Runway
Aircraft
0..1
deallocate()
Does this
identify the
correct runway to
deallocate ?
R9
is_
allocated_to
0..1
clearedRunway()
# 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
 Focused analyst objective
 The aim is to build models that execute correctly
 Avoids “analysis paralysis”
 Reviews criteria are objective and therefore more useful
Bonn – 6.11.03 NEFIS
8
Why an Executable UML ?
 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
GenericClass
1
HashTable
LinkedList
0..*
BoundedArray
<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
Bonn – 6.11.03 NEFIS
9
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?
Bonn – 6.11.03 NEFIS
10