ivan marsic rutgers university lecture 10: specifying systems - intro

27
Ivan Marsic Rutgers University LECTURE 10: Specifying Systems - Intro

Upload: cassandra-bell

Post on 17-Dec-2015

230 views

Category:

Documents


6 download

TRANSCRIPT

Page 1: Ivan Marsic Rutgers University LECTURE 10: Specifying Systems - Intro

Ivan MarsicRutgers University

LECTURE 10: Specifying Systems - Intro

Page 2: Ivan Marsic Rutgers University LECTURE 10: Specifying Systems - Intro

2

Topics

• Domains, Phenomena

• States, Events

• Context Diagrams

• Systems and System Descriptions

• Basic Formalisms for Specifications– Boolean Logic

– Finite State Machines

Page 3: Ivan Marsic Rutgers University LECTURE 10: Specifying Systems - Intro

3

World, Parts, Phenomena

WORLD

Par t / Domain I Par t / Domain J

Par t / Domain K

Phenomena in Part i

Phenomena in Part j

Phenomena in Part k

Sharedphenomena

Page 4: Ivan Marsic Rutgers University LECTURE 10: Specifying Systems - Intro

4

Example of a Problem Domains

PROBLEM WORLD & DOMAINS (PARTS)

Software-to-be

(1) Tenant(4) List of valid keys

(3) Lock

(6) Photosensor

(7) Light

(8) Alarm bell

(9) Desktop computer

(2) Landlord

(3) Key

(5) Device preferences

(10) Tenant accounts

(11) Log of accesses

Page 5: Ivan Marsic Rutgers University LECTURE 10: Specifying Systems - Intro

5

PROBLEM WORLD & DOMAINS (PARTS)

Software-to-be

(1) Tenant(4) List of valid keys

(3) Lock

(6) Photosensor

(7) Light

(8) Alarm bell

(9) Desktop computer

(2) Landlord

(3) Key

(5) Device preferences

(10) Tenant accounts

(11) Log of accesses

Example of Problem Domains

Page 6: Ivan Marsic Rutgers University LECTURE 10: Specifying Systems - Intro

6

Example of Problem Domains

Software-to-be

(1) Tenant(4) List of valid keys

(3) Lock

(6) Photosensor

(7) Light

(8) Alarm bell

(9) Desktop computer

(2) Landlord

(3) Key

(5) Device preferences

(10) Tenant accounts

(11) Log of accesses

Page 7: Ivan Marsic Rutgers University LECTURE 10: Specifying Systems - Intro

7

Definitions …

• A phenomenon is a fact, or object, or occurrence that appears or is perceived to exist

• An event is an individual happening, occurring at a particular point in time– Events are indivisible and instantaneous

• A state is a relation among individual entities and values, which can change over time

• Individuals are in relation if they share a certain characteristic– RelationName(Individual1, …, Individualn)

Page 8: Ivan Marsic Rutgers University LECTURE 10: Specifying Systems - Intro

8

EventsEvents take place at transitions between the states

State:Ball standing

State:Ball flying

State:Ball floating

Event: Kick

Event: Splash

1

2

3

5

4

Time

Ele

vatio

n o

f th

e b

all

Event: Kick

Event: Splash

Page 9: Ivan Marsic Rutgers University LECTURE 10: Specifying Systems - Intro

9

Relations: Examples

Relation: Neighbors (Person_i, Person_j)

Set of neighbors

Set of all pairs of persons

Set of neighbors

Set of all pairs of persons

Set of sandwiches

Set of all 3-tuples of bread slicesand ham

Relation:Sandwich (Bread-slice, Ham-slice, Bread-slice)

Page 10: Ivan Marsic Rutgers University LECTURE 10: Specifying Systems - Intro

10

Example: States of a DVD Player

State 1: NotPowered (the player is not powered up)

State 2: Powered (the player is powered up)

State 3: Loaded (a disc is in the tray)

State 4: Playing

State 1: NotPoweredEmpty (the player is not powered up and contains no disc)

State 2: NotPoweredLoaded (the player is not powered up and a disc is in the tray)

State 3: PoweredEmpty (the player is powered up and contains no disc)

State 4: PoweredLoaded (the player is powered up and a disc is in the tray)

State 5: Playing

Page 11: Ivan Marsic Rutgers University LECTURE 10: Specifying Systems - Intro

11

Different Abstractions

DVD player

Powerbutton

Playbutton

Disctray

DVD player

Atomic object Object composed of parts

(Level of detail)

Page 12: Ivan Marsic Rutgers University LECTURE 10: Specifying Systems - Intro

12

Example: States of a DVD Player

System Part (Object)

State Relations

Power button {Off, On}

Disc tray {Empty, Loaded}

Play button {Off, On}

… …

Page 13: Ivan Marsic Rutgers University LECTURE 10: Specifying Systems - Intro

13

State Variables

State Variable State Relations

Door lock {Disarmed, Armed}

Light bulb {Unlit, Lit}

Counter of failed attempts

{0, 1, …, maxNumOfAttempts}

Auto-lock timer {0, 1, …, autoLockInterval}

State variable = a physical part or an attribute of an object

Page 14: Ivan Marsic Rutgers University LECTURE 10: Specifying Systems - Intro

14

Hidden States

Observable state: apple’s appearance

Hidden state: contains a worm

Goal:

Find the likelihood of different hidden states, for given observable states

Page 15: Ivan Marsic Rutgers University LECTURE 10: Specifying Systems - Intro

15

States Example: Stock Market

2

1

3

1.01

1.00

1.02

1.011.00 1.02

Stock_1_Price

Marketindex

ClosedOpenMarketgate

Stock_1_Shares

2

1

3

1.01

1.00

1.02

Stock_2_Price Stock_2_Shares

( prices & number of shares for all listed stocks )

Page 16: Ivan Marsic Rutgers University LECTURE 10: Specifying Systems - Intro

16

Defining States

• CountingDown(Timer) = The relation Equals(Timer, ) holds true for decreasing with time

• Idle(Timer) = The relation Equals(Timer, ) holds true for remaining constant with time

Page 17: Ivan Marsic Rutgers University LECTURE 10: Specifying Systems - Intro

17

Microstates and Macrostates

x 1x 2 x x 1 x 2

OrderPending OrderExecuted

Microstates representing the number of offered shares are aggregated:

Page 18: Ivan Marsic Rutgers University LECTURE 10: Specifying Systems - Intro

1818

Events

Events marking transitions between the states of a trading order:

InPreparation Pending Executed Archived

submit matched archive

Event Description

trade Causes transition between stock states Buy, Sell, or Hold

submit Causes transition between trading-order statesInPreparation OrderPending

matched Causes transition between trading-order statesOrderPending OrderExecuted

… …

… …

Page 19: Ivan Marsic Rutgers University LECTURE 10: Specifying Systems - Intro

19

Context Diagram: DVD Player

eject (?)

startstop

ejectload

enabledisable

enabledisable

activateshut down Power

button

Play button

Eject button

Disc tray Display

activateshut down

notify

notify

Context diagram symbols:

A box with a double stripe is a software-to-be domain(or, machine domain)

A box with a single stripe is a designed domain

A box with no stripe is a given domain

Page 20: Ivan Marsic Rutgers University LECTURE 10: Specifying Systems - Intro

20

Context Diagram: Stock Trading

Software-to-be(Machine)

Stock exchange

Trader

Bank

Investment portfolio

ith stock

Trading order

Page 21: Ivan Marsic Rutgers University LECTURE 10: Specifying Systems - Intro

21

Problem Decomposition

PROBLEM DOMAIN

Software-to-be

(1) Tenant(4) List of valid keys

(3) Lock

(6) Photosensor

(7) Light

(8) Alarm bell

(9) Desktop computer

Subsystem-2

Subsystem-1

Subsystem-3

Subsystem-4

(2) Landlord

(3) Key

(5) Device preferences

(10) Tenant accounts

(11) Log of accesses

REQ1, REQ2, REQ3, REQ4REQ3

REQ5, REQ7, REQ8, REQ9

REQ4

Page 22: Ivan Marsic Rutgers University LECTURE 10: Specifying Systems - Intro

22

Machine and Problem Domain

Software-to-be(The Machine)

Problem Domain

TheRequirement

a b

Problem Domain

TheRequirement

a b

Specification Domain propertiesseen by the software-to-be

Domain propertiesseen by the requirement

Requirement

a: specification interface phenomenab: requirement interface phenomena

(a)

(b)

Software-to-be(The Machine)

Page 23: Ivan Marsic Rutgers University LECTURE 10: Specifying Systems - Intro

23

Boolean Logic

23

Propositional Logic

conjunction (p and q) implication (if p then q)

disjunction (p or q) biconditional (p if and only if q)

negation (not p) equivalence (p is equivalent to q)

Predicate Logic (extends propositional logic with two quantifiers)

universal quantification (for all x, P(x))

existential quantification (there exists x, P(x))

Page 24: Ivan Marsic Rutgers University LECTURE 10: Specifying Systems - Intro

24

Example: From Req’t to Propositions

24

Label Declarative sentence (not necessarily a proposition!)

a The investor can register with the system

b The email address entered by the investor exists in real world

c The email address entered by the investor is external to our website

d The login ID entered by the investor is unique

e The password entered by the investor conforms to the guidelines

f The investor enters his/her first and last name, and other demographic info

g Registration is successful

h Account with zero balance is set up for the investor

REQ1 represented as a set of propositions

a

( email)( id)( pwd) [B(email) C(email) D(id) E(pwd) g]

f

g h

Page 25: Ivan Marsic Rutgers University LECTURE 10: Specifying Systems - Intro

25

Example: From Req’t to Propositions

25

Label Propositions (partial list)

m The action specified by the investor is “buy”

n The investor specified the upper bound of the “buy” price

o The investor specified the lower bound of the “sell” price

Label Propositions (they complete the above list)

p The investor requests to place a market order

q The investor is shown a blank ticket where the trade can be specified (action, symbol, etc.)

r The most recently retrieved indicative price is shown in the currently open order ticket

s The symbol SYM specified by the investor is a valid ticker symbol

t The current indicative price that is obtained from the exchange

u The system executes the trade

v The system calculates the player’s account new balance

w The system issues a confirmation about the outcome of the transaction

x The system archives the transactionREQ2 represented as a set of propositions

p q r

s

y = v {(n o) [(o p o q) ( IP)(LB IP UB)]}

z = m {[n (VOL IP BAL)] [n (VOL UB BAL)]}

y z u

u v w x

Page 26: Ivan Marsic Rutgers University LECTURE 10: Specifying Systems - Intro

26

FSM State Transition Diagram

unlock

lock

unlocklock

Closed Open

v = (input-key Valid-keys) i = (input-key Valid-keys)M = maxNumOfAttemptsiv

v

i

v

10

Start

2 M

Page 27: Ivan Marsic Rutgers University LECTURE 10: Specifying Systems - Intro

27

FSMs with Outputs

unlock / beep

lock / beep

unlocklock

Closed Open

unlock [key Valid-keys] / beep

lock / beep

unlocklock

Closed Open

(a)

(b)