Title: Short Tutorial on jUCMNav
1Short Tutorial on jUCMNav
- Daniel Amyot
- Jason Kealey
- Jean-François Roy
- Gunter Mussbacher
- Stéphane S. Somé
2Pronounced juicy em nav
3Overview
- 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)
4Useful Resources
- Installation
- http//jucmnav.softwareengineering.ca/twiki/bin/vi
ew/ProjetSEG/JUCMNavRelease241 - Online Help
- http//jucmnav.softwareengineering.ca/twiki/bin/vi
ew/ProjetSEG/HelpOnLine - Animated Demos
- http//jucmnav.softwareengineering.ca/twiki/bin/vi
ew/ProjetSEG/JUCMNavTutorials - Papers (URN Virtual Library)
- http//www.UseCaseMaps.org/pub/
- Search for papers written by Roy or Kealey
5User 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 Language (GRL)
- Use Case Map (UCM)
- URN can be used to model business processes,
reactive systems, distributed systems, etc. - Weiss, Amyot Business Process Modeling with URN.
IJEBR, 2005
6jUCMNav 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
7Goal-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 andvulnerabilities
8Use 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? -
components
Different structures suggested by alternatives
in a GRL model can be evaluated by allocating
responsibilities to UCM components
responsibilities
9Getting 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
10Adding/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!
11Adding 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
12Adding 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
13Adding Beliefs
- Add a belief with a long name/explanation
- Link it to another intentional element
14Auto-Layout
- Try the auto-layout feature on your diagram
- Can be undone if needed ?
15Adding 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
16Adding 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
17Reusing Actors/Elements
- Create a new GRL graph
- Dragdrop 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
18Changing Preferences
- Window ? Preferences ? jUCMNav Preferences
19Exercise 1
- Open jUCMNavDemo_v1.jucm and add this
complementary GRL diagram (named
DoUsefulResearch)
20GRL 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
21Strategies in jUCMNav
A star () indicates an initial value part of a
given strategy. All the others are evaluated
through a propagation algorithm.
22Actor 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
23Actor Evaluation Example
Priority Low Criticality None
Priority None Criticality High
24Exercise 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?
25Editing 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
26UCM 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.
27UCM Components
- Add components around paths
- Bind/unbind path elements
- Look at properties and change them
- Component type can be modified there too
28Stubs
- 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.
29Exercise 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
30UCM 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
31jUCMNav 2.4 Features
- Groups of scenarios can be run together
- Scenarios can be exported to
- UCM model where all scenarios are linearized
- 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 with one diagram per scenario (next
page) - Can be visualized with embedded MSC viewer
32Exercise 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?
33Exercise 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.
34Exporting 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
35- jUCMNav 2 supports
- MSC viewer
- MSC export to images
36URN Model Export to Telelogic DOORS