390 likes | 664 Views
Short Tutorial on jUCMNav. Daniel Amyot Jason Kealey Jean-François Roy Gunter Mussbacher Stéphane S. Somé. Pronounced: juicy – em – nav. Overview. jUCMNav installation Crash course on URN for BPM (with simplified example from a hospital data warehouse access process) GRL editing
E N D
Short Tutorial on jUCMNav Daniel Amyot Jason Kealey Jean-François Roy Gunter Mussbacher Stéphane S. Somé http://jucmnav.softwareengineering.ca
Pronounced: juicy – em – nav http://jucmnav.softwareengineering.ca
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
Useful Resources • Installation • http://jucmnav.softwareengineering.ca/twiki/bin/view/ProjetSEG/JUCMNavRelease241 • Online Help • http://jucmnav.softwareengineering.ca/twiki/bin/view/ProjetSEG/HelpOnLine • Animated Demos • 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
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 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 http://jucmnav.softwareengineering.ca
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
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 andvulnerabilities http://jucmnav.softwareengineering.ca
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? components Different structures suggested by alternatives in a GRL model can be evaluated by allocating responsibilities to UCM components responsibilities http://jucmnav.softwareengineering.ca
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
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
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
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
Adding Beliefs • Add a belief with a long name/explanation • Link it to another intentional element http://jucmnav.softwareengineering.ca
Auto-Layout • Try the auto-layout feature on your diagram… • Can be undone if needed http://jucmnav.softwareengineering.ca
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
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
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
Changing Preferences • Window Preferences jUCMNav Preferences http://jucmnav.softwareengineering.ca
Exercise 1 • Open jUCMNavDemo_v1.jucm and add this complementary GRL diagram (named DoUsefulResearch) http://jucmnav.softwareengineering.ca
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
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
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
Actor Evaluation Example Priority = Low Criticality = None Priority = None Criticality = High http://jucmnav.softwareengineering.ca
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
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
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
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
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
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
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
jUCMNav 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 http://jucmnav.softwareengineering.ca
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
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
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
jUCMNav 2 supports • MSC viewer • MSC export to images http://jucmnav.softwareengineering.ca
URN Model Export to Telelogic DOORS http://jucmnav.softwareengineering.ca