Modelling Features as Statecharts Pourya Shaker and Joanne M. Atlee.

Post on 29-Mar-2015

220 views 1 download

Tags:

Transcript of Modelling Features as Statecharts Pourya Shaker and Joanne M. Atlee.

Modelling Features as Statecharts

Pourya Shaker and Joanne M. Atlee

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

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

A Requirements Engineering Framework

• Requirements – desired goals or behaviour

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

Modelling Requirements Using UML

• The world can be modelled as a UML class diagram

Modelling Requirements Using UML

• The world can be modelled as a UML class diagram

Modelling Requirements Using UML

• The requirements can be modelled as UML state machines– Events, guards, and actions in terms of world phenomena

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)

FORML: A Feature-Oriented Requirements Modelling Language

• World Model • Behaviour Model

feature modules

events &conditions

actions

FOSD + UML-based requirements modelling

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

FORML World Model

feature: groups shared phenomena by features

software system

FORML: A Feature-Oriented Requirements Modelling Language

• World Model • Behaviour Model

feature modules

events &conditions

actions

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

BCS Feature Module

• One statechart instance perTelephoneSystem object• Keyword this refers to the TelephoneSystem objectof a statechart instance

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

FORML World Model

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)

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

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

BCS Feature Module

Approach 1: Composed Behaviour model

in parallel with

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

Approach 2: Composed Behaviour Model

element names qualified withthe name of the feature modulein which they were introduced

CFB extensions of BDS feature module

Statechart FragmentsF1 feature module F2 feature module

Composed model

Statechart FragmentsF1 feature module F2 feature module

Composed model

new region

existing state

Statechart FragmentsF1 feature module F2 feature module

Composed model

new transition and destination state

existing regionand source state

Statechart FragmentsF1 feature module F2 feature module

Composed model

new actionexisting transition

Statechart FragmentsF1 feature module F2 feature module

Composed model

new strengthening clause

existing transition

Statechart FragmentsF1 feature module F2 feature module

Composed model

new weakeningclause

existing transition

Statechart FragmentsF1 feature module F2 feature module

Composed model

new strengtheningclause

existing action

Statechart FragmentsF1 feature module F2 feature module

Composed model

new weakeningclause

existing action

FORML: A Feature-Oriented Requirements Modelling Language

• World Model • Behaviour Model

feature modules

events &conditions

actions

How are these expressed?

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

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

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

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

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

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

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 !=

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)

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)

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

Transition and Action Overrides

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.

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.

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

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 p2shaker@uwaterloo.caor Joanne M. Atlee at jmatlee@uwaterloo.ca

with any questions about this presentation or about the study