a lightweight grl profile for i* modeling presenter: alexei lapouchnian daniel amyot, jennifer...
TRANSCRIPT
A Lightweight GRL Profile for i* Modeling
Presenter: Alexei Lapouchnian
Daniel Amyot, Jennifer Horkoff, Daniel Gross,and Gunter Mussbacher
{damyot, gunterm}@[email protected]
Motivation
• i* is a popular goal-modeling language, but it is not standard– Different understandings of what i* really is– Many styles, dialects and extensions that are incompatible– Much effort duplicated in tool support
• The Goal-oriented Modeling Language (GRL) is standardized as part of ITU-T’s User Requirements Notation (URN)
• Can i* be cast as a GRL lightweight profile?• Potential benefits:
– Standard representations (graphical and interchange)– Access to GRL tools and analysis techniques– Integration with Use Case Maps as part of URN– Extensibility to further explore new goal-oriented concepts
A Lightweight GRL Profile for i* Modeling, RIGiM’09, Nov. 2009
p. 2
A Lightweight GRL Profile for i* Modeling, RIGiM’09, Nov. 2009
p. 3
Overview
• i* in a nutshell• URN, GRL, and the jUCMNav tool• i* and GRL: commonalities and differences• Lightweight profile• Tool support• Conclusions
i* in a Nutshell
• Popular conceptual modeling language for capturing and analyzing socio-technical motivation and properties of complex systems in terms of (social) actors, their intentions, and their relationships
• Two major types of diagrams:– Strategic Dependency (SD) models, where actors and their
dependencies are emphasized– Strategic Rationale (SR) models, where actor intentions
and their relationships are emphasized• Led to numerous extensions and adaptations (see the i* Wiki),
many of which with tool support– At times, there are many variants of the language in the
same research group!
A Lightweight GRL Profile for i* Modeling, RIGiM’09, Nov. 2009
p. 4
User Requirements Notation - URN
• Semi-formal, lightweight graphical language for modeling and analyzing requirements in the form of goals and scenarios
• Combines two complementary notations– Goal-oriented Requirement Language (GRL)
• Based on i* and the NFR Framework– Use Case Maps (UCMs) scenario notation
• Standardized by the International Telecommunication Union– ITU-T Recommendation Z.151, November 2008– URN metamodel, syntax, semantics, and model analysis– Same language family as SDL, MSC, TTCN-3, and ASN.1
• URN models can be used to specify and analyze various types of reactive/telecom systems and business processes
A Lightweight GRL Profile for i* Modeling, RIGiM’09, Nov. 2009
p. 5
Summary of GRL Graphical Syntax
A Lightweight GRL Profile for i* Modeling, RIGiM’09, Nov. 2009
p. 6
(a) GRL Elements
Belief
Goal Softgoal ResourceTask
Actor with BoundaryCollapsed
Actor
SatisfiedWeaklySatisfied
Unknown
DeniedWeaklyDenied
Conflict None
Make Help Some Positive Unknown
Break HurtSome Negative
(d) GRL Contributions Types
(c) GRL Satisfaction Levels
(b) GRL Links
Contribution
Correlation
Dependency Decomposition
Means-End
(a) GRL Elements
Belief
Goal Softgoal ResourceTask
Actor with BoundaryCollapsed
Actor
SatisfiedWeaklySatisfied
Unknown
DeniedWeaklyDenied
Conflict None
Make Help Some Positive Unknown
Break HurtSome Negative
(d) GRL Contributions Types
(c) GRL Satisfaction Levels
(b) GRL Links
ContributionContribution
CorrelationCorrelation
DependencyDependency DecompositionDecomposition
Means-EndMeans-End
i) Icon only ii) Text only iii) Icon and text
Make Make
iv) Number only v) Icon and number
100 100
(e) Representations of Qualitative and Quantitative Contributions
Concrete syntax is already based on i*
GRL Metamodel: Core Concepts
A Lightweight GRL Profile for i* Modeling, RIGiM’09, Nov. 2009
p. 7
Contribution
contribution : ContributionType = UnknownquantitativeContribution : Integer = 0correlation : Boolean = false
ContributionType
MakeHelpSomePositiveUnknownSomeNegativeHurtBreak
<<enumeration>>Decomposition
DecompositionType
ANDXORIOR
<<enumeration>>
Dependency
ImportanceType
HighMediumLowNone
<<enumeration>>IntentionalElementType
SoftgoalGoalTaskResourceBelief
<<enumeration>>
GRLmodelElement
GRLLinkableElementElementLink 0..* 1linksDest0..*
dest1
0..*1linksSrc
0..* src
1
GRLspec
0..*
1
links0..*
grlspec1
IntentionalElement
type : IntentionalElementTypedecompositionType : DecompositionType = ANDimportance : ImportanceType = NoneimportanceQuantitative : Integer = 0
0..*
1
intElements
0..*
grlspec1
Actor
0..*
1
actors0..*
grlspec1
0..*
0..1
elems0..*
actor0..1
URNmodelElement
id : Stringname : String
User Requirements Notation, ITU-T Workshop, 2008
p. 8
URN Tool: jUCMNav
• Free (EPL), open-source plug-in for Eclipse• Supports most of GRL and UCM notation elements• One model, multiple diagrams (scalability and reuse)• Four GRL evaluation algorithms, with colour highlight
– Qualitative and quantitative propagation mechanisms• UCM path traversal mechanism• Also:
– Export performance models to Core Scenario Model– Integration with DOORS for Requirements Management– Export to, and viewing of Message Sequence Charts– Extensions for Business Process Modelling– Report generation (RTF, PDF, HTML)– Verification of user-defined (OCL) rules
Enables restrictions on the language or on extensions of the language
A Lightweight GRL Profile for i* Modeling, RIGiM’09, Nov. 2009
p. 9
GRL Editor with Strategy Evaluation
Navigator view
Outlineview
Editor
Scenarios and Strategies view
Propertiesview
Toolbar
Palette
Propagation mechanisms inspired from the NFR framework, but automated
Commonalities and Differences
• Commonalities: actors, intentional elements, dependencies, contributions, and decompositions.
• Missing first-class concepts in GRL: GRL has only actors, whereas i* also defines the notions of roles, agents and positions. i* has many types of relationships between such actors (e.g. ISA). GRL does not distinguish between SD and SR models.
• GRL permissiveness: GRL is voluntarily permissive in how intentional elements can be linked to each other. However, i* proposes more specific and restrictive usages of relationships. For instance, an i* contribution link cannot have a task as a destination.
• Additional concepts in GRL: GRL contains additional first-class concepts such as strategies (for the analysis of GRL models), metadata, and URN links (which enable the creation of typed links between any GRL/UCM elements).
A Lightweight GRL Profile for i* Modeling, RIGiM’09, Nov. 2009
p. 10
GRL Metamodel: URN Links/Metadata and GRL Strategies
A Lightweight GRL Profile for i* Modeling, RIGiM’09, Nov. 2009
p. 11
GRLmodelElement
URNmodelElement
id : Stringname : String
Metadata
name : Stringvalue : String0..1 0..*
elem
0..1
metadata
0..*
URNlink
type : String
1
0..*
fromElem 1
fromLinks0..* 0..*
1
toLinks0..*
toElem1
UCMmodelElement
GRLmodelElement
QualitativeLabel
DeniedWeaklyDeniedWeaklySatisfiedSatisfiedConflictUnknownNone
<<enumeration>>
IntentionalElement
Evaluation
evaluation : Integer = 0qualitativeEvaluation : QualitativeLabel = None
1
0..*
intElement1
evals0..*
StrategiesGroupGRLspec
0..*
1
intElements0..*
grlspec 10..*
1 groups
0..*
grlspec1
EvaluationStrategy
0..*
1
evaluations 0..*
strategies 1
0..* 1..*
strategies0..*
group1..*1
0..*
grlspec1
strategies0..*
Enables lightweight extensions to the language (new attributes and relationships)
Enables the quantitative/qualitative analysis of goal models
A GRL Lightweight Profile...
• Makes use of metadata to support stereotyped elements– E.g.: adding the metadata {name=“ST_iStar”, value=“Agent”}
to a GRL Actor turns it into an i* Agent• Makes use of URN links to support new relationships
– E.g.: adding a URN link whose type is “Plays” between teo stereotyped GRL actors
• Example with jUCMNav, where the presence of a URN link is indicated by a triangle, and the details shown when hovering
A Lightweight GRL Profile for i* Modeling, RIGiM’09, Nov. 2009
p. 12
MyAgent SomeRolePlays
• Makes use of OCL constraints on GRL and on the extensions previously discussed to restrict them to an i* style– The i* Wiki discusses strict (error) and loose (warning)
rules for i* models• Example: (Strict) Contribution links must only have softgoals as
destinations.
context grl::Contribution
inv SoftgoalAsContributionDestination:
self.dest.oclIsTypeOf(grl::IntentionalElement)
and
(self.dest.oclAsType(grl::IntentionalElement)).type=
IntentionalElementType::Softgoal
A Lightweight GRL Profile for i* Modeling, RIGiM’09, Nov. 2009
p. 13
A GRL Lightweight Profile...
User-Defined Constraints in jUCMNav
• Allows the creation, grouping, and selection of OCL constraints checked against URN models
• Report constraint violations in the Problems view• No need to recompile the tool• Based on the MDT-OCL Eclipse project• Predefined library of OCL queries
A Lightweight GRL Profile for i* Modeling, RIGiM’09, Nov. 2009
p. 14
Constraints can be created/deleted, grouped, and selected
Example of a constraint definition
18 Constraints Defined in the Profile...
• On intentional elements and links (3 strict, 3 loose)• On actor boundaries and dependencies (3 strict, 3 loose)• On new metadata elements and URN links (5 strict, 1 loose)
– Example: (Strict) ISA (generalization) must be between two actors of the same type
context grl::Actor
inv ISAbetweenSimilarActors:
self.getLinksToForType('ISA')
-> forAll (a | a.oclIsTypeOf(grl::Actor) and
(a.getMetadata('ST_iStar') = self.getMetadata('ST_iStar')))
(where getMetadata() and getLinksToForType() are predefined in our OCL library)
A Lightweight GRL Profile for i* Modeling, RIGiM’09, Nov. 2009
p. 17
Invokes the verification of the selected constraints on the current URN model
Result summary
Errors and warnings generated
A Lightweight GRL Profile for i* Modeling, RIGiM’09, Nov. 2009
p. 20
Clicking on a problem brings the violating model element on screen (in the Editor or in the Outline)
Conclusions
• GRL can be profiled through metadata, URN links, and OCL constraints
• Demonstrated with a lightweight GRL profile for i*– Captures concepts unique to i* – Restricts the usage of GRL (and extensions) to comply with i*
guidelines– Supported by the jUCMNav tool
• Benefits– Casting of i* onto a standardized metamodel (URN’s) – Enables the use of GRL-like analysis for i* models (strategies)– Framework for the comparison of i* stylistic guidelines and
evaluation algorithms– Common representation of i* models– Enables low-cost prototyping and exploration of new language
features
A Lightweight GRL Profile for i* Modeling, RIGiM’09, Nov. 2009
p. 21
For More Information
• URN Virtual Library:
– http://www.UseCaseMaps.org/pub/
– Over 225 papers and theses
• jUCMNav (version 4):
– http://jucmnav.softwareengineering.ca/jucmnav/
A Lightweight GRL Profile for i* Modeling, RIGiM’09, Nov. 2009
p. 22