Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "Modelling Features as Statecharts Pourya Shaker and Joanne M. Atlee."— Presentation transcript:

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

2 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 17 th ) –50 minute questionnaire about models (July 24 th ) –$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

3 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

4 A Requirements Engineering Framework Requirements – desired goals or behaviour

5 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 Phenomena Interface Phenomena

6 Modelling Requirements Using UML The world can be modelled as a UML class diagram

7 Modelling Requirements Using UML The world can be modelled as a UML class diagram

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

9 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)

10 FORML: A Feature-Oriented Requirements Modelling Language World Model Behaviour Model feature modules events & conditions actions FOSD + UML-based requirements modelling

11 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 callees status

12 FORML World Model feature: groups shared phenomena by features software system

13 FORML: A Feature-Oriented Requirements Modelling Language World Model Behaviour Model feature modules events & conditions actions

14 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

15 BCS Feature Module One statechart instance per TelephoneSystem object Keyword this refers to the TelephoneSystem object of a statechart instance

16 BCS Feature Module Transition Labels: id: e [c] / id 1 : [c 1 ] a 1, …, id n : [c n ] a n Transition or action name Triggering event: world-change event Guard condition: world-state conditions Action: world-change action macros

17 FORML World Model

18 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)

19 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 features requirements as differences with the requirements of existing features – i.e., as statechart fragments that extend the feature modules of existing features

20 Approach 1: CFB as a Complete Statechart Updated World Model CFB Feature Module override action a2 of transition t7 in the BDS feature module updates

21 BCS Feature Module

22 Approach 1: Composed Behaviour model in parallel with

23 Approach 2: CFB as Statechart Fragments Updated World Model CFB Feature Module updates add actions a1, a2, and a3 to transition t7 in the BDS feature module

24 Approach 2: Composed Behaviour Model element names qualified with the name of the feature module in which they were introduced CFB extensions of BDS feature module

25 Statechart Fragments F1 feature module F2 feature module Composed model

26 Statechart Fragments F1 feature module F2 feature module Composed model new region existing state

27 Statechart Fragments F1 feature module F2 feature module Composed model new transition and destination state existing region and source state

28 Statechart Fragments F1 feature module F2 feature module Composed model new action existing transition

29 Statechart Fragments F1 feature module F2 feature module Composed model new strengthening clause existing transition

30 Statechart Fragments F1 feature module F2 feature module Composed model new weakening clause existing transition

31 Statechart Fragments F1 feature module F2 feature module Composed model new strengthening clause existing action

32 Statechart Fragments F1 feature module F2 feature module Composed model new weakening clause existing action

33 FORML: A Feature-Oriented Requirements Modelling Language World Model Behaviour Model feature modules events & conditions actions How are these expressed?

34 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

35 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

36 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

37 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

38 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

39 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

40 World-State Expressions Set, boolean, and integer operations: Binary Set OpsSet-Cardinality PredicatesBoolean OpsInteger 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!=

41 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)

42 World-State Expressions World-change actions – o = +C(a 1 = exp 1,..., a n = exp n ) creates a C object (that can be referenced by the variable o) whose attributes a i have values exp i o = +User() – +A(a 1 = exp 1,..., a n = exp n, r 1 = o 1,..., r m = o m ) creates an A link that relates objects o j in roles r j, and whose link attributes a i have values exp i c = +Call(caller = set-expr, callee = set-expr, voice = false)

43 World-State Expressions World-change actions – s ! M(p 1 = exp 1,..., p n = exp n ) creates an M message object sent by system s whose parameters p i have values exp i this ! Busy() – -o removes the objects o and their dependent links -Calls[voice = true] – o.a := exp changes the value of os attribute a to value exp o.voice := true

44 Transition and Action Overrides

45 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 Fs transition t executes, action a2 is performed in place of a1 provided that the guard condition c is true.

46 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 Fs transition t1 is enabled, t2 executes instead provided that the behaviour model is in t2s source state and guard condition c is true.

47 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

48 Thank you for your participation! Any Questions? Slides will be made available at: www.cs.uwaterloo.ca/~p2shaker www.cs.uwaterloo.ca/~p2shaker Also, please feel free to contact me (Pourya) at p2shaker@uwaterloo.ca or Joanne M. Atlee at jmatlee@uwaterloo.ca with any questions about this presentation or about the study


Download ppt "Modelling Features as Statecharts Pourya Shaker and Joanne M. Atlee."

Similar presentations


Ads by Google