– 08 – 2015-06-08 – main –
Softwaretechnik / Software-Engineering
Lecture 08: Scenarios and Use Cases
2015-06-08
- Prof. Dr. Andreas Podelski, Dr. Bernd Westphal
Albert-Ludwigs-Universit¨ at Freiburg, Germany
Lecture 08: Scenarios and Use Cases 2015-06-08 Prof. Dr. Andreas - - PowerPoint PPT Presentation
Softwaretechnik / Software-Engineering Lecture 08: Scenarios and Use Cases 2015-06-08 Prof. Dr. Andreas Podelski, Dr. Bernd Westphal 08 2015-06-08 main Albert-Ludwigs-Universit at Freiburg, Germany Contents & Goals Last
– 08 – 2015-06-08 – main –
Albert-Ludwigs-Universit¨ at Freiburg, Germany
– 08 – 2015-06-08 – Sprelim –
2/78 Last Lecture:
This Lecture:
– 08 – 2015-06-08 – main –
3/78
– 08 – 2015-06-08 – main –
4/78 L 1: 20.4., Mo
Introduction
T 1: 23.4., Do L 2: 27.4., Mo L 3: 30.4., Do L 4: 4.5., Mo
Development Process, Metrics
T 2: 7.5., Do L 5: 11.5., Mo
L 6: 18.5., Mo L 7: 21.5., Do
Requirements Engineering
T 3: 1.6., Mo
L 8: 8.6., Mo L 9: 11.6., Do L 10: 15.6., Mo
Architecture & Design
T 4: 18.6., Do L 11: 22.6., Mo L 12: 25.6., Do L 13: 29.6., Mo
Constructive Models
T 5: 2.7., Do L 14: 6.7., Mo L 15: 9.7., Do
Testing, Formal Verification
L 16: 13.7., Mo
Invited Talks
L 17: 16.7., Do T 6: 20.7., Mo
Wrap-Up
L 18: 23.7., Do
– 08 – 2015-06-08 – main –
5/78
– 08 – 2015-06-08 – Sscen –
6/78
(Σ × A)ω
?!
Customer Analyst
requirements analysis
One quite effective approach: try to approximate the requirements with positive and negative scenarios.
“If the system is not at all able to do this, then it’s not what I want.”
“If the system does this, then it’s not what I want.”
what about exceptional cases? what about corner-cases? etc.
– 08 – 2015-06-08 – Sscen –
7/78
(i) Insert one 1 euro and one 50 cent coin. (ii) Press the ‘softdrink’ button. (iii) Get a softdrink. (iv) Get 50 cent change.
(i) After switching on, insert no money. (ii) Press the ‘tea’ button. (iii) Get a tea. (iv) Get 100 e change.
– 08 – 2015-06-08 – Sscen –
8/78
(re-)occurs in many process models or software development approaches.
(in increasing formality):
– 08 – 2015-06-08 – main –
9/78
– 08 – 2015-06-08 – Suserstories –
10/78
“A User Story is a concise, written description of a piece of functionality that will be valuable to a user (or owner) of the software.” Per user story, one file card with the user story, e.g. following the pattern:
and in addition:
(acceptance) test case(s) — how to tell whether the user story has been realised.
– 08 – 2015-06-08 – Suserstories –
11/78
Proposed card layout (front side):
priority unique identifier, name estimation As a [role] I want [something] so that [benefit]. risk real effort
✔ easy to create ✔ close contact to customer ✘ customers are usually not trained in writing requirements ✘ may get difficult to keep overview over whole system to be developed ✘ strong dependency on competent developers ✘ estimation of effort may be difficult ✘ not easy to cover non-functional requirements and restrictions
(Balzert, 2009)
– 08 – 2015-06-08 – Suserstories –
12/78
– 05 – 2015-05-11 – Sspeclang –
37/90
Natural language requirements can be written using A, B, C, D, E, F where
A clarifies when and under what conditions the activity takes place B is MUST (obligation), SHOULD (wish), or WILL (intention); also: MUST NOT (forbidden) C is either “the system” or the concrete name of a (sub-)system D
conditions E extensions, in particular an object F the actual process word (what happens)
(Rupp and die SOPHISTen, 2009)
Example:
After office hours (= A), the system (= C) should (= B) offer to the operator (= D) a backup (= F) of all new registrations to an external medium (= E).
– 08 – 2015-06-08 – main –
13/78
– 08 – 2015-06-08 – Suc –
14/78
– 08 – 2015-06-08 – Suc –
15/78
use case — A sequence of interactions between an actor (or actors) and a system triggered by a specific actor, which produces a result for an actor.
(Jacobson, 1992)
with the system under design.
are needed to achieve the goal (or fail to achieve the goal for reasons).
goal cannot be achieved.
– 08 – 2015-06-08 – Suc –
16/78
http://commons.wikimedia.org (CC-by-sa 4.0, Dirk Ingo Franke)
name Authentication goal the client wants access to the ATM pre-condition the ATM is operational, the welcome screen is displayed, card and PIN of client are available post-condition client accepted, services of ATM are offered post-cond. in exceptional case access denied, card returned or withheld, welcome screen displayed actors client (main actor), bank system
none normal case
exception case 2a card not readable 2a.1 ATM displays “card not readable” 2a.2 ATM returns card 2a.3 ATM shows welcome screen
– 08 – 2015-06-08 – Suc –
17/78
http://commons.wikimedia.org (CC-by-sa 4.0, Dirk Ingo Franke)
none normal case
exception case 2a card not readable 2a.1 ATM displays “card not readable” 2a.2 ATM returns card 2a.3 ATM shows welcome screen exception case 2b card readable, but not ATM card exception case 2c no connection to bank system exception case 3a card not valid or disabled exception case 5a client cancels exception case 5b client doesn’t react within 5 s exception case 6a no connection to bank system exception case 7a first or second PIN wrong exception case 7b third PIN wrong (Ludewig and Lichter, 2013; V-Modell XT, 2006)
– 08 – 2015-06-08 – main –
18/78
– 08 – 2015-06-08 – Sucd –
19/78
client Authenticate bank system More notation:
use case A use case B
use case B
include
– 08 – 2015-06-08 – Sucd –
20/78 ATM info services
print statement [not auth.] query balance [print statement]
transactions
get cash define stan- ding order
basic services
authentication
– 08 – 2015-06-08 – Sucd –
21/78
(V-Modell XT, 2006)
– 08 – 2015-06-08 – main –
22/78
– 08 – 2015-06-08 – Ssd –
23/78
(i) Insert one 1 euro and one 50 cent coin. (ii) Press the ‘softdrink’ button. (iii) Get a softdrink. (iv) Get 50 cent change.
(i) After switching on, insert no money. (ii) Press the ‘tea’ button. (iii) Get a tea. (iv) Get 100 e change.
notation understandable by customer precision complexity of definition natural language feels like ++
+++· · · visual formalism (temporal) logic
++
– 08 – 2015-06-08 – Ssd –
24/78
Most Prominent: Sequence Diagrams — with long history:
standardized by the ITU in different versions (ITU Z.120, 1st edition: 1993),
msc event_ordering
proc_a proc_b proc_c m1
m2 m3 m4
(a)
(ITU-T, 2011)
Most severe drawbacks of these formalisms:
example scenario or invariant?
what triggers the requirement?
must all messages be observed?
forbidden scenarios
– 08 – 2015-06-08 – Ssd –
25/78
even contradictions (Harel and Maoz, 2007; St¨
(Damm and Harel, 2001; Klose, 2003; Harel and Marelly, 2003), who have a common fragment with UML 2.x SDs (Harel and Maoz, 2007)
sd UserAccepted
:User :ACSystem Code d=duration CardOut {0..13} OK Unlock {d..3*d} t=now {t..t+3}
tionConstraint meObservation meConstraint tionObservation
(OMG, 2007)
LSC: L AM: invariant I: strict I1 I2 c2 ∧ c3 I3 A B C D E c1
– 08 – 2015-06-08 – Ssd –
26/78
LSCs as another formal software specification:
uchi automata (TBA),
Activation modes, Pre-charts, Existential and universal LSCs,
– 08 – 2015-06-08 – main –
27/78
– 08 – 2015-06-08 – Slscsyn –
28/78 Definition. [LSC Body] Let E be a set of events and C a set of atomic
((L, , ∼), I, Msg, Cond, LocInv, Θ) where
message (l, E, l′) is called instantaneous iff l ∼ l′ and asynchronous otherwise,
with (L, φ) ∈ Cond only if l ∼ l′ for all l = l′ ∈ L,
with (l, ι, φ, l′, ι′) ∈ LocInv only if l ≺ l′, ◦: exclusive, •: inclusive,
assigns to each location and each element a temperature.
– 08 – 2015-06-08 – Slscsyn –
29/78
l1,2 ≺ l1,4, l2,0 ≺ l2,1 ≺ l2,2 ≺ l2,3, l3,0 ≺ l3,1 ≺ l3,2, l1,1 ≺ l2,1, l2,2 ≺ l1,2, l2,3 ≺ l1,3, l3,2 ≺ l1,4, l2,2 ∼ l3,1,
– 08 – 2015-06-08 – Slscsyn –
29/78
l1,2 ≺ l1,4, l2,0 ≺ l2,1 ≺ l2,2 ≺ l2,3, l3,0 ≺ l3,1 ≺ l3,2, l1,1 ≺ l2,1, l2,2 ≺ l1,2, l2,3 ≺ l1,3, l3,2 ≺ l1,4, l2,2 ∼ l3,1,
I1 I2 I3 A B C D E
l1,0 l1,1 l1,2 l1,3 l1,4 l2,0 l2,1 l2,2 l2,3 l3,0 l3,1 l3,2
– 08 – 2015-06-08 – Slscsyn –
29/78
l1,2 ≺ l1,4, l2,0 ≺ l2,1 ≺ l2,2 ≺ l2,3, l3,0 ≺ l3,1 ≺ l3,2, l1,1 ≺ l2,1, l2,2 ≺ l1,2, l2,3 ≺ l1,3, l3,2 ≺ l1,4, l2,2 ∼ l3,1,
I1 I2 I3 A B C D E
l1,0 l1,1 l1,2 l1,3 l1,4 l2,0 l2,1 l2,2 l2,3 l3,0 l3,1 l3,2
– 08 – 2015-06-08 – Slscsyn –
29/78
l1,2 ≺ l1,4, l2,0 ≺ l2,1 ≺ l2,2 ≺ l2,3, l3,0 ≺ l3,1 ≺ l3,2, l1,1 ≺ l2,1, l2,2 ≺ l1,2, l2,3 ≺ l1,3, l3,2 ≺ l1,4, l2,2 ∼ l3,1,
I1 I2 I3 A B C D E
l1,0 l1,1 l1,2 l1,3 l1,4 l2,0 l2,1 l2,2 l2,3 l3,0 l3,1 l3,2
– 08 – 2015-06-08 – Slscsyn –
29/78
l1,2 ≺ l1,4, l2,0 ≺ l2,1 ≺ l2,2 ≺ l2,3, l3,0 ≺ l3,1 ≺ l3,2, l1,1 ≺ l2,1, l2,2 ≺ l1,2, l2,3 ≺ l1,3, l3,2 ≺ l1,4, l2,2 ∼ l3,1,
I1 I2 I3 A B C D E
l1,0 l1,1 l1,2 l1,3 l1,4 l2,0 l2,1 l2,2 l2,3 l3,0 l3,1 l3,2
– 08 – 2015-06-08 – Slscsyn –
29/78
l1,2 ≺ l1,4, l2,0 ≺ l2,1 ≺ l2,2 ≺ l2,3, l3,0 ≺ l3,1 ≺ l3,2, l1,1 ≺ l2,1, l2,2 ≺ l1,2, l2,3 ≺ l1,3, l3,2 ≺ l1,4, l2,2 ∼ l3,1,
I1 I2 I3 A B C D E
l1,0 l1,1 l1,2 l1,3 l1,4 l2,0 l2,1 l2,2 l2,3 l3,0 l3,1 l3,2
– 08 – 2015-06-08 – Slscsyn –
29/78
l1,2 ≺ l1,4, l2,0 ≺ l2,1 ≺ l2,2 ≺ l2,3, l3,0 ≺ l3,1 ≺ l3,2, l1,1 ≺ l2,1, l2,2 ≺ l1,2, l2,3 ≺ l1,3, l3,2 ≺ l1,4, l2,2 ∼ l3,1,
I1 I2 I3 A B C D E
l1,0 l1,1 l1,2 l1,3 l1,4 l2,0 l2,1 l2,2 l2,3 l3,0 l3,1 l3,2
– 08 – 2015-06-08 – Slscsyn –
29/78
l1,2 ≺ l1,4, l2,0 ≺ l2,1 ≺ l2,2 ≺ l2,3, l3,0 ≺ l3,1 ≺ l3,2, l1,1 ≺ l2,1, l2,2 ≺ l1,2, l2,3 ≺ l1,3, l3,2 ≺ l1,4, l2,2 ∼ l3,1,
I1 I2 c2 ∧ c3 I3 A B C D E
l1,0 l1,1 l1,2 l1,3 l1,4 l2,0 l2,1 l2,2 l2,3 l3,0 l3,1 l3,2
– 08 – 2015-06-08 – Slscsyn –
29/78
l1,2 ≺ l1,4, l2,0 ≺ l2,1 ≺ l2,2 ≺ l2,3, l3,0 ≺ l3,1 ≺ l3,2, l1,1 ≺ l2,1, l2,2 ≺ l1,2, l2,3 ≺ l1,3, l3,2 ≺ l1,4, l2,2 ∼ l3,1,
I1 I2 c2 ∧ c3 I3 A B C D E c1
l1,0 l1,1 l1,2 l1,3 l1,4 l2,0 l2,1 l2,2 l2,3 l3,0 l3,1 l3,2
– 08 – 2015-06-08 – Slscsyn –
29/78
l1,2 ≺ l1,4, l2,0 ≺ l2,1 ≺ l2,2 ≺ l2,3, l3,0 ≺ l3,1 ≺ l3,2, l1,1 ≺ l2,1, l2,2 ≺ l1,2, l2,3 ≺ l1,3, l3,2 ≺ l1,4, l2,2 ∼ l3,1,
I1 I2 c2 ∧ c3 I3 A B C D E c1
l1,0 l1,1 l1,2 l1,3 l1,4 l2,0 l2,1 l2,2 l2,3 l3,0 l3,1 l3,2
– 08 – 2015-06-08 – Slscsyn –
29/78
l1,2 ≺ l1,4, l2,0 ≺ l2,1 ≺ l2,2 ≺ l2,3, l3,0 ≺ l3,1 ≺ l3,2, l1,1 ≺ l2,1, l2,2 ≺ l1,2, l2,3 ≺ l1,3, l3,2 ≺ l1,4, l2,2 ∼ l3,1,
I1 I2 c2 ∧ c3 I3 A B C D E c1
– 08 – 2015-06-08 – Slscsyn –
30/78
I1 I2 c2 ∧ c3 I3 A B C D E c1
– 08 – 2015-06-08 – Slscsyn –
31/78
l1,2 ≺ l1,4, l2,0 ≺ l2,1 ≺ l2,2 ≺ l2,3, l3,0 ≺ l3,1 ≺ l3,2, l1,1 ≺ l2,1, l2,2 ≺ l1,2, l2,3 ≺ l1,3, l3,2 ≺ l1,4, l2,2 ∼ l3,1,
I1 I2 c2 ∧ c3 I3 A B C D E c1 I1 I2 c2 ∧ c3 I3 A B C D E c1 I1 I2 c2 ∧ c3 I3 A B C D E c1 I3 I2 c2 ∧ c3 I1 A B C D E c1
– 08 – 2015-06-08 – Slscsyn –
32/78
Bondedness/no floating conditions: (could be relaxed a little if we wanted to)
then there is a location l′ simultaneous to l, i.e. l ∼ l′, which is the location of
∃ (l1, E, l2) ∈ Msg : l ∈ {l1, l2}. Note: if messages in a chart are cyclic, then there doesn’t exist a partial order (so such charts don’t even have an abstract syntax).
– 08 – 2015-06-08 – main –
77/78
– 08 – 2015-06-08 – main –
78/78
Balzert, H. (2009). Lehrbuch der Softwaretechnik: Basiskonzepte und Requirements Engineering. Spektrum, 3rd edition. Beck, K. (1999). Extreme Programming Explained – Embrace Change. Addison-Wesley. Damm, W. and Harel, D. (2001). LSCs: Breathing life into Message Sequence Charts. Formal Methods in System Design, 19(1):45–80. Harel, D. and Maoz, S. (2007). Assert and negate revisited: Modal semantics for UML sequence diagrams. Software and System Modeling (SoSyM). To appear. (Early version in SCESM’06, 2006, pp. 13-20). Harel, D. and Marelly, R. (2003). Come, Let’s Play: Scenario-Based Programming Using LSCs and the Play-Engine. Springer-Verlag. ITU-T (2011). ITU-T Recommendation Z.120: Message Sequence Chart (MSC), 5 edition. Jacobson, I. (1992). Object Oriented Software Engineering – A Use Case Driven Approach. ACM Press. Klose, J. (2003). LSCs: A Graphical Formalism for the Specification of Communication Behavior. PhD thesis, Carl von Ossietzky Universit¨ at Oldenburg. Ludewig, J. and Lichter, H. (2013). Software Engineering. dpunkt.verlag, 3. edition. OMG (2007). Unified modeling language: Superstructure, version 2.1.2. Technical Report formal/07-11-02. Rupp, C. and die SOPHISTen (2014). Requirements-Engineering und -Management. Hanser, 6th edition. St¨
at M¨ unchen. V-Modell XT (2006). V-Modell XT. Version 1.4.