User Requirements Notation Overview
User Requirements Notation Overview
R N
Requirements Engineering &
User Requirements Notation
U
Daniel Amyot
damyot@[Link]
[Link]
October 2002
Page 2
Objectives
Part I: Requirements Engineering
– What is it?
– A RE approach
– Requirements characteristics
Part II: User Requirements Notation (URN)
– Motivations and objectives
– Goal-oriented Requirement Language (GRL)
– Use Case Maps (UCMs)
– MSC generation
– Relationships with other languages
– Tools
Part I
Requirements
Engineering
Requirements Engineering
Requirements Engineering
Requirements Requirements
Development Management
A Requirements Engineering
Business
Goals/Objectives Approach
Vision and Scope Document
User Quality
Requirements Attributes
So many requirements…!
A goal is an objective or concern used to discover
and evaluate functional and non-functional
requirements.
A functional requirement is a requirement defining
functions of the system under development
A non-functional requirement is a requirement
characterizing a system property such as expected
performance, robustness, usability, maintainability,
etc. Non-functional requirements capture business
goals/objectives and product quality attributes.
A user requirement is a desired goal or function
that a user and other stakeholders expect the
system to achieve
Code Code
Other Design
Requirements 7% 1%
Other Requirements 4% 13%
56% 10% 82%
Design
27%
(Martin & Leffinwell)
Typical Mistakes
Noise Wishful thinking
– the presence of text that carries – text that defines a feature that
no relevant information to any cannot possibly be validated.
feature of the problem. Jigsaw puzzles
Silence – e.g. distributing requirements
– a feature that is not covered by across a document and then
any text. cross-referencing
Over-specification Inconsistent terminology
– text that describes a feature of the – Inventing and then changing
solution, rather than the problem. terminology
Contradiction Putting the onus on the
– text that defines a single feature in development staff
a number of incompatible ways. – i.e. making the reader work hard
Ambiguity to decipher the intent
Writing for the hostile reader
– text that can be interpreted in at
least two different ways. – There are fewer of these than
Forward reference friendly readers
– text that refers to a feature yet to
be defined.
Part II
User Requirements
Notation (URN)
GRL in a Nutshell
Goal-oriented Requirement Language — a
graphical notation that allows reasoning about (non-
functional) requirements
GRL is concerned with intentional elements, actors,
and their relationships
Intentional elements model the “why” aspect —
objectives, alternatives, as well as decision
rationale and criteria — but not operational details
GRL may be mapped to scenario-based notations
and thus supports reasoning about scenarios
GRL satisfies most of URN’s additional objectives
Belief Contribution
Make Help Some+ Equal Biometrics is no Security of
regular off-the-shelf Host
technology Security of
. Terminal
. Make
Argumentation
Access
Cost of Encryption
Authorization
Terminal
Task
Decomposition
Correlation (AND)
Authentication Identification
(side-effect)
Means-End Goal
Undecided
Biometrics is no Security of
Weakly Denied regular off-the-shelf Host
technology Security of
Denied
. Terminal
.
Access
Cost of Encryption
Authorization
Terminal
Authentication Identification
. Terminal
.
Cost of Access
Encryption
Terminal Authorization
Authentication Identification
Keep Password
Secret
Actor
Boundary
Key Points -
GRL Introduction & Notation
GRL (Goal-oriented Requirement Language)
provides an intentional view of a system, focusing on
the “why” aspect
Goals provide the right abstraction level for many
requirements activities
The basic elements of the GRL notation are goals,
softgoals, tasks, qualified contribution and correlation
links, means-end links, and decomposition links
GRL graphs document rationale of subjective issues
Evaluations of GRL graphs show the impact of
qualitative decisions on high level softgoals
© 2002 User Requirements Notation
Page 26
UCMs in a Nutshell
Use Case Maps – a graphical scenario notation for
describing causal relationships between
responsibilities
Scenario elements may (optionally) be linked to
components, providing a grey-box view of systems
The intent of UCMs is to facilitate the integration,
reusability, and analysis of scenarios, and to guide
the design of high level architectures and detailed
scenarios from requirements
UCMs satisfy most initial URN requirements
Pool
Start Stub
Point
AND-Fork
Slot
End Point
Responsibility
Component
a) Root UCM
Timer
OR-Fork
upd
ring
SN
chk UserA Switch SN UserB
req
msg2
msg3
User:A Switch User:B msg4
vrfy chk
msg5
req ring
upd vrfy
upd
ring
MSC’2000
UCM Scenario
spec Output MSC ’96
(XML) (XML)
LOTOS
test cases
Components
Responsibilities
• Allocated responsibilities
OR Forks •Data access modes
• Processor assignment
• Relative weights •Device demand parameters
(probability) •Mean CPU load (time)
•Mean operations on
Can generate Layered Queuing other devices
Networks (LQN) automatically!
?
Informal operationalizations
Structural Requirements, Goals, non-functional
(tasks) in GRL
Diagrams Textual Use Cases requirements, alterna-
models
tives, rationales
SDL, eODL, or
UML class, object,
?
component, & MSC, UML URN-FR
Use / UCMs UCMs represent
visually use cases
deployment Case Diagram
Superimpose &
visually system level behavior in terms of causal
diagrams Activity
onto Diagram
structures of abstract components. Can responsibilities
replace UML use case & deployment diagams.
UCMNAV Facts
Load/save/import/export in XML
Developed in C++, GUI in Xforms
Requires an X-server
– E.g. Xfree86 freeware ([Link]
Multiple platforms are currently supported
– Solaris, Linux, and Windows (all)
Current stable version: 2.0.1
– Freely available at [Link]
Free and Open Source:
– [Link]
UCMNav Documents
XML file format (conforms to UCM DTD)
Export of UCM figures
– Encapsulated PostScript (EPS)
– Maker Interchange Format (MIF)
– Computer Graphics Metafile (CGM)
– Scalable Vector Graphics (SVG)
Flexible report generation
– Content options
– PostScript, with PDF hyperlink information
6
Logic LogicLayer
ProcessMsg MsgToTool
ProcessMsg MsgToTool
1 MsgSentToTool
18
Socket SocketLayer
SendMsg SendMsg
GetRequest
34
MsgSentToTool 9 BufferLayer
GetRequest 8
32
32 1
Conclusion
URN
– Combines goals and scenarios
– Helps bridging the gap between requirements models and
design models
GRL
– For incomplete, fuzzy, non-functional requirements
– Capture goals, objectives, alternatives and rationales
UCM
– For operational and functional requirements
– Enables analysis and transformations
– Architectural alternatives and dynamic systems
Selected References
URN: [Link]
ITU-T SG 17: Draft Recommendations Z.150, September 2002
ITU-T SG 17: Draft Recommendations Z.151 and Z.152, February 2002
D. Petriu and M. Woodside, Analysing Software Requirements Specifications for
Performance. In: Third International Workshop on Software and Performance (WOSP
2002), Rome, Italy, July 2002
D. Amyot and G. Mussbacher, URN: Towards a New Standard for the Visual
Description of [Link]: 3rd SDL and MSC Workshop (SAM’02), Aberystwyth,
U.K., June 2002.
G. Mussbacher, D. Amyot (2001), A Collection of Patterns for Use Case Maps. In: First
Latin American Conference on Pattern Languages of Programming (SugarLoafPLoP 2001),
Rio de Janeiro, Brazil, October 2001.
D. Amyot (2001), Specification and Validation of Telecommunications Systems with
Use Case Maps and LOTOS. Ph.D. thesis, SITE, U. of Ottawa, Canada, September 2001.
A. Miga, D. Amyot, F. Bordeleau, D. Cameron, and M. Woodside (2001), Deriving
Message Sequence Charts from Use Case Maps Scenario Specifications . In: Tenth
SDL Forum (SDL'01), Copenhagen, Denmark, June 2001.
L. Liu and E. Yu (2001), From Requirements to Architectural Design –Using Goals and
Scenarios. In: From Software Requirements to Architectures Workshop (STRAW 2001),
Toronto, Canada, May 2001.
D. Amyot and G. Mussbacher (2000), On the Extension of UML with Use Case Maps
Concepts. In: The 3rd International Conference on the Unified Modeling Language
(<<UML2000>>), York, UK, October 2000.
R.J.A. Buhr (1999), Use Case Maps as Architectural Entities for Complex Systems. In:
Trans. on Software Engineering, IEEE, Vol. 24, No. 12, December 1998, pp. 1131-1155.