480 likes | 604 Views
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).
E N D
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 Interface Phenomena Software-System Phenomena World Phenomena Requirements World (aka domain, environment) Software System • Requirements – desired changes to the world • Expressed in terms of world phenomena
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 events & conditions actions feature modules 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 software system feature: groups shared phenomena by features
FORML: A Feature-Oriented Requirements Modelling Language • World Model • Behaviour Model events & conditions actions feature modules
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 per • TelephoneSystemobject • Keyword this refers to • the TelephoneSystemobject • of a statechart instance
BCS Feature Module macros • 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
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 Statechart override action a2 of transition t7 in the BDS feature module CFB Feature Module Updated World Model updates
Approach 1: Composed Behaviour model in parallel with
Approach 2: CFB as Statechart Fragments CFB Feature Module add actions a1, a2, and a3 to transition t7 in the BDS feature module Updated World Model updates
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
Statechart Fragments F2 feature module F1 feature module Composed model
Statechart Fragments F2 feature module F1 feature module existing state Composed model new region
Statechart Fragments F2 feature module F1 feature module Composed model new transition and destination state existing region and source state
Statechart Fragments F2 feature module F1 feature module existing transition new action Composed model
Statechart Fragments F2 feature module F1 feature module new strengthening clause existing transition Composed model
Statechart Fragments F2 feature module F1 feature module new weakening clause existing transition Composed model
Statechart Fragments F2 feature module F1 feature module new strengthening clause existing action Composed model
Statechart Fragments F2 feature module F1 feature module new weakening clause existing action Composed model
FORML: A Feature-Oriented Requirements Modelling Language • World Model • Behaviour Model events & conditions actions feature modules 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:
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 aihave 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 aihave 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 pihave 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 • An action override specifies a new action, a2, that overrides an existing action, F{a1} in a transition tin 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.ca or Joanne M. Atlee at jmatlee@uwaterloo.ca with any questions about this presentation or about the study