1 / 48

Modelling Features as Statecharts

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

amelie
Download Presentation

Modelling Features as Statecharts

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

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

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

  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 events & conditions actions feature modules 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 callee’s status

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

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

  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 • TelephoneSystemobject • Keyword this refers to • the TelephoneSystemobject • of a statechart instance

  16. 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

  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 feature’s 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 override action a2 of transition t7 in the BDS feature module CFB Feature Module Updated World Model updates

  21. BCS Feature Module

  22. Approach 1: Composed Behaviour model in parallel with

  23. 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

  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 F2 feature module F1 feature module Composed model

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

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

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

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

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

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

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

  33. FORML: A Feature-Oriented Requirements Modelling Language • World Model • Behaviour Model events & conditions actions feature modules 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:

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

  43. 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

  44. Transition and Action Overrides

  45. 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.

  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 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.

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

More Related