modelling features as statecharts pourya shaker and joanne m. atlee
TRANSCRIPT
![Page 1: Modelling Features as Statecharts Pourya Shaker and Joanne M. Atlee](https://reader036.vdocuments.net/reader036/viewer/2022062318/5517098d550346fe558b5251/html5/thumbnails/1.jpg)
Modelling Features as Statecharts
Pourya Shaker and Joanne M. Atlee
![Page 2: Modelling Features as Statecharts Pourya Shaker and Joanne M. Atlee](https://reader036.vdocuments.net/reader036/viewer/2022062318/5517098d550346fe558b5251/html5/thumbnails/2.jpg)
Feature-Oriented Requirements Modelling
Research study will evaluate the readability and writeability of two approaches to modelling features
– Model a feature AND its context– Model just the feature (state its context)
Time Commitment: 2 hours– 50 minute tutorial on modelling language (July 17th)– 50 minute questionnaire about models (July 24th)– $30 renumeration
Asked to consent us to use questionnaire answers in thesis or publication
– Can withdraw consent at any time– Can withdraw from study at any time
![Page 3: Modelling Features as Statecharts Pourya Shaker and Joanne M. Atlee](https://reader036.vdocuments.net/reader036/viewer/2022062318/5517098d550346fe558b5251/html5/thumbnails/3.jpg)
Agenda
• Remember SE463?– A reference model for requirements engineering– Modelling requirements using UML class and statechart
models• Feature-oriented software development• FORML: A feature-oriented requirements
modelling language– Two approaches to evolving FORML models with new
features• Overview of questionnaire
![Page 4: Modelling Features as Statecharts Pourya Shaker and Joanne M. Atlee](https://reader036.vdocuments.net/reader036/viewer/2022062318/5517098d550346fe558b5251/html5/thumbnails/4.jpg)
A Requirements Engineering Framework
• Requirements – desired goals or behaviour
![Page 5: Modelling Features as Statecharts Pourya Shaker and Joanne M. Atlee](https://reader036.vdocuments.net/reader036/viewer/2022062318/5517098d550346fe558b5251/html5/thumbnails/5.jpg)
A Requirements Engineering Framework
• Requirements – desired goals or behaviour
• Requirements – desired changes to the world– Expressed in terms of world phenomena
World (aka domain, environment) Software System
Requirements
World Phenomena Software-System PhenomenaInterfacePhenomena
![Page 6: Modelling Features as Statecharts Pourya Shaker and Joanne M. Atlee](https://reader036.vdocuments.net/reader036/viewer/2022062318/5517098d550346fe558b5251/html5/thumbnails/6.jpg)
Modelling Requirements Using UML
• The world can be modelled as a UML class diagram
![Page 7: Modelling Features as Statecharts Pourya Shaker and Joanne M. Atlee](https://reader036.vdocuments.net/reader036/viewer/2022062318/5517098d550346fe558b5251/html5/thumbnails/7.jpg)
Modelling Requirements Using UML
• The world can be modelled as a UML class diagram
![Page 8: Modelling Features as Statecharts Pourya Shaker and Joanne M. Atlee](https://reader036.vdocuments.net/reader036/viewer/2022062318/5517098d550346fe558b5251/html5/thumbnails/8.jpg)
Modelling Requirements Using UML
• The requirements can be modelled as UML state machines– Events, guards, and actions in terms of world phenomena
![Page 9: Modelling Features as Statecharts Pourya Shaker and Joanne M. Atlee](https://reader036.vdocuments.net/reader036/viewer/2022062318/5517098d550346fe558b5251/html5/thumbnails/9.jpg)
Feature-Oriented Software Development (FOSD)
• Stakeholders (e.g., users, developers) often think of a software system in terms of its features– Feature – a coherent bundle of functionality (e.g.,
call waiting, call forwarding, voice mail)• FOSD – advocates the use of features as first-
class entities throughout the lifecycle of a software system– Make features explicit in software artefacts (e.g.,
code, design models, requirements models)
![Page 10: Modelling Features as Statecharts Pourya Shaker and Joanne M. Atlee](https://reader036.vdocuments.net/reader036/viewer/2022062318/5517098d550346fe558b5251/html5/thumbnails/10.jpg)
FORML: A Feature-Oriented Requirements Modelling Language
• World Model • Behaviour Model
feature modules
events &conditions
actions
FOSD + UML-based requirements modelling
![Page 11: Modelling Features as Statecharts Pourya Shaker and Joanne M. Atlee](https://reader036.vdocuments.net/reader036/viewer/2022062318/5517098d550346fe558b5251/html5/thumbnails/11.jpg)
Example
• A telephone system with a basic-call service (BCS) feature– Responds to user commands to start, accept, and
end calls– Notifies users about the callee’s status
![Page 12: Modelling Features as Statecharts Pourya Shaker and Joanne M. Atlee](https://reader036.vdocuments.net/reader036/viewer/2022062318/5517098d550346fe558b5251/html5/thumbnails/12.jpg)
FORML World Model
feature: groups shared phenomena by features
software system
![Page 13: Modelling Features as Statecharts Pourya Shaker and Joanne M. Atlee](https://reader036.vdocuments.net/reader036/viewer/2022062318/5517098d550346fe558b5251/html5/thumbnails/13.jpg)
FORML: A Feature-Oriented Requirements Modelling Language
• World Model • Behaviour Model
feature modules
events &conditions
actions
![Page 14: Modelling Features as Statecharts Pourya Shaker and Joanne M. Atlee](https://reader036.vdocuments.net/reader036/viewer/2022062318/5517098d550346fe558b5251/html5/thumbnails/14.jpg)
World States
• The inputs and outputs of the behaviour model are over world states – instances of the world model, representing a possible snapshot of the world
![Page 15: Modelling Features as Statecharts Pourya Shaker and Joanne M. Atlee](https://reader036.vdocuments.net/reader036/viewer/2022062318/5517098d550346fe558b5251/html5/thumbnails/15.jpg)
BCS Feature Module
• One statechart instance perTelephoneSystem object• Keyword this refers to the TelephoneSystem objectof a statechart instance
![Page 16: Modelling Features as Statecharts Pourya Shaker and Joanne M. Atlee](https://reader036.vdocuments.net/reader036/viewer/2022062318/5517098d550346fe558b5251/html5/thumbnails/16.jpg)
BCS Feature Module
Transition Labels:id: e [c] / id1: [c1] a1, … , idn: [cn] an
• Transition or action name• Triggering event: world-change event• Guard condition: world-state conditions• Action: world-change action
macros
![Page 17: Modelling Features as Statecharts Pourya Shaker and Joanne M. Atlee](https://reader036.vdocuments.net/reader036/viewer/2022062318/5517098d550346fe558b5251/html5/thumbnails/17.jpg)
FORML World Model
![Page 18: Modelling Features as Statecharts Pourya Shaker and Joanne M. Atlee](https://reader036.vdocuments.net/reader036/viewer/2022062318/5517098d550346fe558b5251/html5/thumbnails/18.jpg)
Adding a New Feature to a FORML Model
• Example: adding the requirements of call-forwarding on busy (CFB) to the model in the previous slides– CFB: when a user of a telephone system receives a call
while he/she is busy (i.e., already in a call), forward the call to a designated user of a different telephone system
• Update the world model (new phenomena)• Add a new feature module to the behaviour model
(add new behaviours, modify existing behaviours)
![Page 19: Modelling Features as Statecharts Pourya Shaker and Joanne M. Atlee](https://reader036.vdocuments.net/reader036/viewer/2022062318/5517098d550346fe558b5251/html5/thumbnails/19.jpg)
Alternative Approaches to Modelling New Features
• Approach 1 – The requirements of a new feature can always be specified as a complete statechart
• Approach 2 – But sometimes, it is convenient to specify a new feature’s requirements as differences with the requirements of existing features – i.e., as statechart fragments that extend the feature modules of existing features
![Page 20: Modelling Features as Statecharts Pourya Shaker and Joanne M. Atlee](https://reader036.vdocuments.net/reader036/viewer/2022062318/5517098d550346fe558b5251/html5/thumbnails/20.jpg)
Approach 1: CFB as a Complete StatechartU
pdat
ed W
orld
Mod
elCF
B Fe
atur
e M
odul
e
override action a2 of transition t7 in the BDS feature module
updates
![Page 21: Modelling Features as Statecharts Pourya Shaker and Joanne M. Atlee](https://reader036.vdocuments.net/reader036/viewer/2022062318/5517098d550346fe558b5251/html5/thumbnails/21.jpg)
BCS Feature Module
![Page 22: Modelling Features as Statecharts Pourya Shaker and Joanne M. Atlee](https://reader036.vdocuments.net/reader036/viewer/2022062318/5517098d550346fe558b5251/html5/thumbnails/22.jpg)
Approach 1: Composed Behaviour model
in parallel with
![Page 23: Modelling Features as Statecharts Pourya Shaker and Joanne M. Atlee](https://reader036.vdocuments.net/reader036/viewer/2022062318/5517098d550346fe558b5251/html5/thumbnails/23.jpg)
Approach 2: CFB as Statechart FragmentsU
pdat
ed W
orld
Mod
elCF
B Fe
atur
e M
odul
e
updates
add actions a1, a2, and a3 to transition t7 in the BDS feature module
![Page 24: Modelling Features as Statecharts Pourya Shaker and Joanne M. Atlee](https://reader036.vdocuments.net/reader036/viewer/2022062318/5517098d550346fe558b5251/html5/thumbnails/24.jpg)
Approach 2: Composed Behaviour Model
element names qualified withthe name of the feature modulein which they were introduced
CFB extensions of BDS feature module
![Page 25: Modelling Features as Statecharts Pourya Shaker and Joanne M. Atlee](https://reader036.vdocuments.net/reader036/viewer/2022062318/5517098d550346fe558b5251/html5/thumbnails/25.jpg)
Statechart FragmentsF1 feature module F2 feature module
Composed model
![Page 26: Modelling Features as Statecharts Pourya Shaker and Joanne M. Atlee](https://reader036.vdocuments.net/reader036/viewer/2022062318/5517098d550346fe558b5251/html5/thumbnails/26.jpg)
Statechart FragmentsF1 feature module F2 feature module
Composed model
new region
existing state
![Page 27: Modelling Features as Statecharts Pourya Shaker and Joanne M. Atlee](https://reader036.vdocuments.net/reader036/viewer/2022062318/5517098d550346fe558b5251/html5/thumbnails/27.jpg)
Statechart FragmentsF1 feature module F2 feature module
Composed model
new transition and destination state
existing regionand source state
![Page 28: Modelling Features as Statecharts Pourya Shaker and Joanne M. Atlee](https://reader036.vdocuments.net/reader036/viewer/2022062318/5517098d550346fe558b5251/html5/thumbnails/28.jpg)
Statechart FragmentsF1 feature module F2 feature module
Composed model
new actionexisting transition
![Page 29: Modelling Features as Statecharts Pourya Shaker and Joanne M. Atlee](https://reader036.vdocuments.net/reader036/viewer/2022062318/5517098d550346fe558b5251/html5/thumbnails/29.jpg)
Statechart FragmentsF1 feature module F2 feature module
Composed model
new strengthening clause
existing transition
![Page 30: Modelling Features as Statecharts Pourya Shaker and Joanne M. Atlee](https://reader036.vdocuments.net/reader036/viewer/2022062318/5517098d550346fe558b5251/html5/thumbnails/30.jpg)
Statechart FragmentsF1 feature module F2 feature module
Composed model
new weakeningclause
existing transition
![Page 31: Modelling Features as Statecharts Pourya Shaker and Joanne M. Atlee](https://reader036.vdocuments.net/reader036/viewer/2022062318/5517098d550346fe558b5251/html5/thumbnails/31.jpg)
Statechart FragmentsF1 feature module F2 feature module
Composed model
new strengtheningclause
existing action
![Page 32: Modelling Features as Statecharts Pourya Shaker and Joanne M. Atlee](https://reader036.vdocuments.net/reader036/viewer/2022062318/5517098d550346fe558b5251/html5/thumbnails/32.jpg)
Statechart FragmentsF1 feature module F2 feature module
Composed model
new weakeningclause
existing action
![Page 33: Modelling Features as Statecharts Pourya Shaker and Joanne M. Atlee](https://reader036.vdocuments.net/reader036/viewer/2022062318/5517098d550346fe558b5251/html5/thumbnails/33.jpg)
FORML: A Feature-Oriented Requirements Modelling Language
• World Model • Behaviour Model
feature modules
events &conditions
actions
How are these expressed?
![Page 34: Modelling Features as Statecharts Pourya Shaker and Joanne M. Atlee](https://reader036.vdocuments.net/reader036/viewer/2022062318/5517098d550346fe558b5251/html5/thumbnails/34.jpg)
World-State Expressions
• Basic Set Expressions: – Calls : the set of Call objects– this : the TelephoneSystem object of a statechart instance– o : an world-change event parameter
• Selection– Calls[voice = true] : the set of Call objects whose voice attribute has the value true
![Page 35: Modelling Features as Statecharts Pourya Shaker and Joanne M. Atlee](https://reader036.vdocuments.net/reader036/viewer/2022062318/5517098d550346fe558b5251/html5/thumbnails/35.jpg)
World-State Expressions
• Basic Set Expressions: – Calls : the set of Call objects– this : the TelephoneSystem object of a statechart instance– o : an world-change event parameter
• Selection– Calls[voice = true] : the set of Call objects whose voice attribute has the value true
![Page 36: Modelling Features as Statecharts Pourya Shaker and Joanne M. Atlee](https://reader036.vdocuments.net/reader036/viewer/2022062318/5517098d550346fe558b5251/html5/thumbnails/36.jpg)
World-State Expressions
• Navigation– set-expr.feature-name
• this.BCS
– set-expr.association-name.role-name• this.BCS.Processing.Call
– set-expr.attribute-name• this.BCS.Processing.Call.voice
– set-expr.role-name• this.BCS.Processing.Call.caller
![Page 37: Modelling Features as Statecharts Pourya Shaker and Joanne M. Atlee](https://reader036.vdocuments.net/reader036/viewer/2022062318/5517098d550346fe558b5251/html5/thumbnails/37.jpg)
World-State Expressions
• Navigation– set-expr.feature-name
• this.BCS
– set-expr.association-name.role-name• this.BCS.Processing.Call
– set-expr.attribute-name• this.BCS.Processing.Call.voice
– set-expr.role-name• this.BCS.Processing.Call.caller
![Page 38: Modelling Features as Statecharts Pourya Shaker and Joanne M. Atlee](https://reader036.vdocuments.net/reader036/viewer/2022062318/5517098d550346fe558b5251/html5/thumbnails/38.jpg)
World-State Expressions
• Navigation– set-expr.feature-name
• this.BCS
– set-expr.association-name.role-name• this.BCS.Processing.Call
– set-expr.attribute-name• this.BCS.Processing.Call.voice
– set-expr.role-name• this.BCS.Processing.Call.caller
![Page 39: Modelling Features as Statecharts Pourya Shaker and Joanne M. Atlee](https://reader036.vdocuments.net/reader036/viewer/2022062318/5517098d550346fe558b5251/html5/thumbnails/39.jpg)
World-State Expressions
• Navigation– set-expr.feature-name
• this.BCS
– set-expr.association-name.role-name• this.BCS.Processing.Call
– set-expr.attribute-name• this.BCS.Processing.Call.voice
– set-expr.role-name• this.BCS.Processing.Call.caller
![Page 40: Modelling Features as Statecharts Pourya Shaker and Joanne M. Atlee](https://reader036.vdocuments.net/reader036/viewer/2022062318/5517098d550346fe558b5251/html5/thumbnails/40.jpg)
World-State Expressions
• Set, boolean, and integer operations: Binary Set Ops Set-Cardinality Predicates Boolean Ops Integer Ops
+ (union) no set-expr (set has zero elements)
and # set-expr (number of elements in set)
- (intersection) one set-expr (set has exactly one element)
or =>, =<
= (equals) lone (set has zero or one elements)
implies >, <
in (subset of) some (set has one or more elements)
iff ==
not !=
![Page 41: Modelling Features as Statecharts Pourya Shaker and Joanne M. Atlee](https://reader036.vdocuments.net/reader036/viewer/2022062318/5517098d550346fe558b5251/html5/thumbnails/41.jpg)
World-State Expressions
• World-change events– s ? M(o) : message o sent to a system s
• this ? StartCall(o)
– C+(o) : object o of type C added to world state• Call+(o)
– C-(o) : object o of type C removed from world state• Call-(o)
– C.a~(o): attribute a of object o of type C changed value• Call.voice~(o)
![Page 42: Modelling Features as Statecharts Pourya Shaker and Joanne M. Atlee](https://reader036.vdocuments.net/reader036/viewer/2022062318/5517098d550346fe558b5251/html5/thumbnails/42.jpg)
World-State Expressions
• World-change actions– o = +C(a1 = exp1, ..., an = expn) creates a C object (that can be
referenced by the variable o) whose attributes ai have values expi• o = +User()
– +A(a1 = exp1, ..., an = expn, r1 = o1, ..., rm = om) creates an A link that relates objects oj in roles rj, and whose link attributes ai have values expi
• c = +Call(caller = set-expr, callee = set-expr, voice = false)
![Page 43: Modelling Features as Statecharts Pourya Shaker and Joanne M. Atlee](https://reader036.vdocuments.net/reader036/viewer/2022062318/5517098d550346fe558b5251/html5/thumbnails/43.jpg)
World-State Expressions
• World-change actions– s ! M(p1 = exp1, ..., pn = expn) creates an M message object sent
by system s whose parameters pi have values expi
• this ! Busy()
– -o removes the objects o and their dependent links• -Calls[voice = true]
– o.a := exp changes the value of o’s attribute a to value exp• o.voice := true
![Page 44: Modelling Features as Statecharts Pourya Shaker and Joanne M. Atlee](https://reader036.vdocuments.net/reader036/viewer/2022062318/5517098d550346fe558b5251/html5/thumbnails/44.jpg)
Transition and Action Overrides
![Page 45: Modelling Features as Statecharts Pourya Shaker and Joanne M. Atlee](https://reader036.vdocuments.net/reader036/viewer/2022062318/5517098d550346fe558b5251/html5/thumbnails/45.jpg)
Transition and Action Overrides
• An action override specifies a new action, a2, that overrides an existing action, F{a1} in a transition t in feature-module F.– F{t} : / a2: override(a1) [c]– Literally, this states that whenever F’s transition t
executes, action a2 is performed in place of a1 — provided that the guard condition c is true.
![Page 46: Modelling Features as Statecharts Pourya Shaker and Joanne M. Atlee](https://reader036.vdocuments.net/reader036/viewer/2022062318/5517098d550346fe558b5251/html5/thumbnails/46.jpg)
Transition and Action Overrides• Transition priority: specifies that a new transition, t2, has
priority over an existing transition, F{t1} in feature module F, whenever both are simultaneously enabled.– t2 > F{ t1} : ...
• Transition override: specifies that a new transition, t2, that overrides an existing transition, F{t1} in feature-module F. An override differs from a transition priority in that the enabling condition of t2 is implicitly the same as that of t1, but could be strengthened with an additional guard c:– t2 : override(F{t1}) [c] / ...– Literally, this states that whenever F’s transition t1 is enabled, t2
executes instead — provided that the behaviour model is in t2’s source state and guard condition c is true.
![Page 47: Modelling Features as Statecharts Pourya Shaker and Joanne M. Atlee](https://reader036.vdocuments.net/reader036/viewer/2022062318/5517098d550346fe558b5251/html5/thumbnails/47.jpg)
Questionnaire
• You will be asked to perform model-reading and writing tasks with respect to one of the two approaches to adding a new feature to a FORML model of TelephoneSystem with BCS
• Model-reading task: – Reading-comprehension questions about a given
model of a new feature added to TelephoneSystem• Model-writing task:
– Modelling of a new feature added to TelephoneSystem
![Page 48: Modelling Features as Statecharts Pourya Shaker and Joanne M. Atlee](https://reader036.vdocuments.net/reader036/viewer/2022062318/5517098d550346fe558b5251/html5/thumbnails/48.jpg)
Thank you for your participation!
Any Questions?Slides will be made available at: www.cs.uwaterloo.ca/~p2shaker
Also, please feel free to contact me (Pourya) at [email protected] Joanne M. Atlee at [email protected]
with any questions about this presentation or about the study