Short Tutorial on jUCMNav Daniel Amyot Jason Kealey
Download
Report
Transcript Short Tutorial on jUCMNav Daniel Amyot Jason Kealey
Short Tutorial on
jUCMNav
Daniel Amyot
Jason Kealey
Jean-François Roy
Gunter Mussbacher
Stéphane S. Somé
http://jucmnav.softwareengineering.ca
1
Pronounced: juicy – em – nav
http://jucmnav.softwareengineering.ca
2
Overview
jUCMNav installation
Crash course on URN for BPM (with simplified example
from a hospital data warehouse access process)
GRL editing
GRL analysis with strategies
UCM editing
UCM analysis with scenario definitions
URN model export (figures, HTML)
MSC generation from UCM scenarios
GRL/UCM linking
URN model export to Telelogic DOORS
KPI analysis and links to data warehouses (presented by
Pengfei)
http://jucmnav.softwareengineering.ca
3
Useful Resources
Installation
Online Help
http://jucmnav.softwareengineering.ca/twiki/bin/view/ProjetSEG/
HelpOnLine
Animated Demos
http://jucmnav.softwareengineering.ca/twiki/bin/view/ProjetSEG/
JUCMNavRelease241
http://jucmnav.softwareengineering.ca/twiki/bin/view/ProjetSEG/
JUCMNavTutorials
Papers (URN Virtual Library)
http://www.UseCaseMaps.org/pub/
Search for papers written by Roy or Kealey
http://jucmnav.softwareengineering.ca
4
User Requirements Notation
URN is a semi-formal, lightweight method for
modeling and analysis of user requirements in
the form of goals and scenarios
Combines two existing notations
Goal-oriented Requirements
Use Case Map (UCM)
Language (GRL)
URN can be used to model business processes,
reactive systems, distributed systems, etc.
Weiss, Amyot:
Business Process Modeling with URN.
IJEBR, 2005
http://jucmnav.softwareengineering.ca
5
jUCMNav Features
Editing, analysis, and transformation of URN models
jUCMNav takes advantage of the Eclipse views
(hierarchical/graphical outline, properties, resources)
Good usability: drag & drop editing, group manipulation,
zoom, unlimited undo/redo, preferences, …
Multiple element references
Autolayout mechanism
Only allows the creation of syntactically valid models
Export and analysis facilities
http://jucmnav.softwareengineering.ca
6
Goal-oriented Requirements
Language
Goals describe the objectives a system should
achieve: why do an activity?
Towards a higher, strategic level of modeling
the current or future system and environment
Focus
is very
much on system
evolution
Can explore
opportunities and
vulnerabilities
http://jucmnav.softwareengineering.ca
7
Use Case Maps
UCMs model scenarios as causal flows of
responsibilities that can be superimposed on underlying
structures of components
What should this activity be precisely? Who is involved in this
activity? Where/when perform the activity?
Different structures
suggested by
alternatives in a GRL
model can be evaluated
by allocating
responsibilities to UCM
components
http://jucmnav.softwareengineering.ca
components
responsibilities
8
Getting Started…
Start Eclipse
Create a new general project
Add a new file (from jUCMNav category):
Use
Case Map / GRL Graph
Create a new UCM and/or GRL diagram
You can rename the project and the .jucm
file
http://jucmnav.softwareengineering.ca
9
Adding/Renaming a UCM/GRL
Diagram
Right-click on URNspec (or on an existing
diagram), add a new UCM or GRL graph
Many
diagrams can be added, but they all are
views of the same model
Rename the diagram, and add a
description
Use
the Property view
Delete a diagram, and undo this!
http://jucmnav.softwareengineering.ca
10
Adding Intentional Elements
Add a couple of goals, softgoals, tasks…
Rename them
Use the property view to change
Description
Name
Colour
Priority/Criticality
See effect on Outline (textual/graphical) and
Elements panels
http://jucmnav.softwareengineering.ca
11
Adding Decompositions and
Contributions
Add decomposition links from multiple
decomposed intentional elements to a single
source element
Change the decomposition type of the source
element (And/Or) via the property view
Add a few contributions/correlations
Change their contribution type
http://jucmnav.softwareengineering.ca
12
Adding Beliefs
Add a belief with a long name/explanation
Link it to another intentional element
http://jucmnav.softwareengineering.ca
13
Auto-Layout
Try
the auto-layout feature on your
diagram…
Can
be undone if needed
http://jucmnav.softwareengineering.ca
14
Adding Actors
Actors contain intentional elements (their
individual concerns)
Add a few actors and rename them
Distribute your intentional elements among
them (or create new ones)
Move/resize actors
Actors can contain actors too
http://jucmnav.softwareengineering.ca
15
Adding Dependencies
Add a few dependencies between actors
Create
a dependum (intentional element between two
actors)
Create a dependency link between the source
element (depender) in one actor to the dependum
Create a dependency link between the dependum
and a target element (dependee) in another actor
jUCMNav does not yet support dependency links
between actors
http://jucmnav.softwareengineering.ca
16
Reusing Actors/Elements
Create a new GRL graph
Drag&drop existing actors and elements
from the Outline
New
references are created
Rename them and check impact
Change the reference to the definition via
the properties view
http://jucmnav.softwareengineering.ca
17
Changing Preferences
Window
Preferences
jUCMNav
Preferences
http://jucmnav.softwareengineering.ca
18
Exercise 1
Open
jUCMNavDemo_v1.jucm
and add this
complementary GRL
diagram (named
DoUsefulResearch)
http://jucmnav.softwareengineering.ca
19
GRL Strategies
User defined sets of initial evaluations
Evaluation propagated in the model
Implemented using the strategies view
Numerical interpretation of the satisfaction levels
Evaluation of the impact of strategies on the
operational and architectural aspects, using
URN links
http://jucmnav.softwareengineering.ca
20
Strategies in jUCMNav
A star (*) indicates an
initial value part of
a given strategy. All
the others are evaluated
through a propagation
algorithm.
http://jucmnav.softwareengineering.ca
21
Actor Evaluation
Evaluation to deal with negotiation between
stakeholders.
Helps analyzing and comparing the satisfaction
levels of each actor based on the selected
strategy
Computed from priority and criticality
attributes of intentional element references
bound to actors
http://jucmnav.softwareengineering.ca
22
Actor Evaluation Example
Priority = Low
Criticality = None
Priority = None
Criticality = High
http://jucmnav.softwareengineering.ca
23
Exercise 2
Open jUCMNavDemo_v2.jucm and add 2
strategies:
SurveyOnly
Set Use Survey Only to 100
AgreementWithLogs
Same as AgreementNoLogs but with Verify Access Logs set
to 100
Which of the 4 strategies is the best?
How do we delete a value initialization in a given
strategy?
http://jucmnav.softwareengineering.ca
24
Editing UCM Diagrams
The PathTool can be used to
Create
a new path
Extend an existing path (start/end point)
Insert empty points
The rest is similar to the GRL editor
Components
are like actors
Path elements are bound to components
http://jucmnav.softwareengineering.ca
25
UCM Path Nodes
Add various elements on path nodes
Using
the palette
Using the contextual menu
Add/remove branches on forks, joins,
stubs
Experiment with merging start/end points,
end/path, end/join, start/stub, etc.
http://jucmnav.softwareengineering.ca
26
UCM Components
Add components around paths
Bind/unbind path elements
Look at properties and change them
Component
type can be modified there too
http://jucmnav.softwareengineering.ca
27
Stubs
Edit Stub Plugins (on a given stub)
Select a plug-in map for a stub
Bind its IN/OUT segments to start/end
points of the plug-in map
Add guarding selection conditions to the
plug-ins in a dynamic stub
Requires
the definition of variables.
http://jucmnav.softwareengineering.ca
28
Exercise 3
Open jUCMNavDemo_v3.jucm and add a new plug-in
map (Agreement) for stub CheckAccountability.
Bind it properly to the stub. Adjust its precondition.
In map Review, add a timeout path between
WaitREBdone and the OR-join found before the Reject
end point
http://jucmnav.softwareengineering.ca
29
UCM Scenario Definitions and
Path Traversal (Highlight)
Extraction
of
individual scenarios
based on a
traversal algorithm
Conditions
attached to
selection points
Initialization of
variables, and
selection of
start/end points
Transformation to
MSC
http://jucmnav.softwareengineering.ca
30
jUCMNav 2.4 Features
Groups
of scenarios can be run together
Scenarios can be exported to:
UCM
Stubs flattened and choices resolved (but documented with special
waiting places)
UCM
model where all scenarios are linearized and well-formed
From graph to “tree” (especially for AND-joins)
Some concurrency may be lost along the way
MSC
model where all scenarios are linearized
model with one diagram per scenario (next page)
Can be visualized with embedded MSC viewer
http://jucmnav.softwareengineering.ca
31
Exercise 4
Open jUCMNavDemo_v4.jucm and make sure
your Problems View is open
Add a scenario to test what happens when the
REB is not ready (start point not triggered)
Using scenario inclusion, add a scenario for
RejectTrust
What can go wrong and how can the Problems
View help with clickable error messages?
http://jucmnav.softwareengineering.ca
32
Exercise 5
Add URN links
From
HIC (GRL) to the Hospital component
From Trust User (GRL) to the TrustUser map
From Check Ethical Issues (GRL) to the
ChkEthicsCompliance responsibility
Examine that responsibility as strategies
are highlighted.
http://jucmnav.softwareengineering.ca
33
Exporting Diagrams/Models
Select the URNSpec in
the Outline or click on a
diagram background
Right-click to export
(starts a Wizard)
Export individual
diagrams or entire
models to various
formats…
http://jucmnav.softwareengineering.ca
34
jUCMNav 2 supports
-MSC viewer
-MSC export to images
http://jucmnav.softwareengineering.ca
35
URN Model Export to Telelogic
DOORS
http://jucmnav.softwareengineering.ca
36