formal methods for interactive systemsgroups.di.unipi.it/~cerone/courses/fmis/course...with a long...

94
Formal Methods for Interactive Systems Part 10 — Reverse Engineering with Matrix Algebra Antonio Cerone United Nations University International Institute for Software Technology Macau SAR China email: [email protected] web: www.iist.unu.edu A. Cerone, UNU-IIST – p.1/26

Upload: others

Post on 08-Aug-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Formal Methods for Interactive Systemsgroups.di.unipi.it/~cerone/courses/fmis/course...with a long history =⇒ no need to introduce yet another notation • are easy to calculate

Formal Methodsfor

Interactive SystemsPart 10 — Reverse Engineering with Matrix Algebra

Antonio Cerone

United Nations University

International Institute for Software Technology

Macau SAR China

email:[email protected]

web:www.iist.unu.eduA. Cerone, UNU-IIST – p.1/26

Page 2: Formal Methods for Interactive Systemsgroups.di.unipi.it/~cerone/courses/fmis/course...with a long history =⇒ no need to introduce yet another notation • are easy to calculate

Reverse EngineeringReverse Engineering | Matrix Algebra | Pushbutton | Safety | Two-position | Remarks on Matrix Algebra | Calculator | Exams | Refs

Define a model of an existing device

A. Cerone, UNU-IIST – p.2/26

Page 3: Formal Methods for Interactive Systemsgroups.di.unipi.it/~cerone/courses/fmis/course...with a long history =⇒ no need to introduce yet another notation • are easy to calculate

Reverse EngineeringReverse Engineering | Matrix Algebra | Pushbutton | Safety | Two-position | Remarks on Matrix Algebra | Calculator | Exams | Refs

Define a model of an existing device

Danger: model accuracy relies on accuracy ofthe reverse engineering

A. Cerone, UNU-IIST – p.2/26

Page 4: Formal Methods for Interactive Systemsgroups.di.unipi.it/~cerone/courses/fmis/course...with a long history =⇒ no need to introduce yet another notation • are easy to calculate

Reverse EngineeringReverse Engineering | Matrix Algebra | Pushbutton | Safety | Two-position | Remarks on Matrix Algebra | Calculator | Exams | Refs

Define a model of an existing device

Danger: model accuracy relies on accuracy ofthe reverse engineering

=⇒ manifacturers do not provide formalspecifications

A. Cerone, UNU-IIST – p.2/26

Page 5: Formal Methods for Interactive Systemsgroups.di.unipi.it/~cerone/courses/fmis/course...with a long history =⇒ no need to introduce yet another notation • are easy to calculate

Reverse EngineeringReverse Engineering | Matrix Algebra | Pushbutton | Safety | Two-position | Remarks on Matrix Algebra | Calculator | Exams | Refs

Define a model of an existing device

Danger: model accuracy relies on accuracy ofthe reverse engineering

=⇒ manifacturers do not provide formalspecifications

=⇒ formal specifications must be reconstructed

A. Cerone, UNU-IIST – p.2/26

Page 6: Formal Methods for Interactive Systemsgroups.di.unipi.it/~cerone/courses/fmis/course...with a long history =⇒ no need to introduce yet another notation • are easy to calculate

Reverse Engineering ProcessReverse Engineering | Matrix Algebra | Pushbutton | Safety | Two-position | Remarks on Matrix Algebra | Calculator | Exams | Refs

Reconstruct formal specification from• checking interaction results against the real

device

A. Cerone, UNU-IIST – p.3/26

Page 7: Formal Methods for Interactive Systemsgroups.di.unipi.it/~cerone/courses/fmis/course...with a long history =⇒ no need to introduce yet another notation • are easy to calculate

Reverse Engineering ProcessReverse Engineering | Matrix Algebra | Pushbutton | Safety | Two-position | Remarks on Matrix Algebra | Calculator | Exams | Refs

Reconstruct formal specification from• checking interaction results against the real

device• observing user-machine interaction in the real

operating environemt

A. Cerone, UNU-IIST – p.3/26

Page 8: Formal Methods for Interactive Systemsgroups.di.unipi.it/~cerone/courses/fmis/course...with a long history =⇒ no need to introduce yet another notation • are easy to calculate

Reverse Engineering ProcessReverse Engineering | Matrix Algebra | Pushbutton | Safety | Two-position | Remarks on Matrix Algebra | Calculator | Exams | Refs

Reconstruct formal specification from• checking interaction results against the real

device• observing user-machine interaction in the real

operating environemt• interviewing real users and manifacturer

A. Cerone, UNU-IIST – p.3/26

Page 9: Formal Methods for Interactive Systemsgroups.di.unipi.it/~cerone/courses/fmis/course...with a long history =⇒ no need to introduce yet another notation • are easy to calculate

Reverse Engineering ProcessReverse Engineering | Matrix Algebra | Pushbutton | Safety | Two-position | Remarks on Matrix Algebra | Calculator | Exams | Refs

Reconstruct formal specification from• checking interaction results against the real

device• observing user-machine interaction in the real

operating environemt• interviewing real users and manifacturer• checking documentation (e.g., user manual)

A. Cerone, UNU-IIST – p.3/26

Page 10: Formal Methods for Interactive Systemsgroups.di.unipi.it/~cerone/courses/fmis/course...with a long history =⇒ no need to introduce yet another notation • are easy to calculate

RE AdvantagesReverse Engineering | Matrix Algebra | Pushbutton | Safety | Two-position | Remarks on Matrix Algebra | Calculator | Exams | Refs

• model of a real system =⇒ no need to specifyit in a paper)

A. Cerone, UNU-IIST – p.4/26

Page 11: Formal Methods for Interactive Systemsgroups.di.unipi.it/~cerone/courses/fmis/course...with a long history =⇒ no need to introduce yet another notation • are easy to calculate

RE AdvantagesReverse Engineering | Matrix Algebra | Pushbutton | Safety | Two-position | Remarks on Matrix Algebra | Calculator | Exams | Refs

• model of a real system =⇒ no need to specifyit in a paper)

• results can be verified against the device bythe reader

A. Cerone, UNU-IIST – p.4/26

Page 12: Formal Methods for Interactive Systemsgroups.di.unipi.it/~cerone/courses/fmis/course...with a long history =⇒ no need to introduce yet another notation • are easy to calculate

RE AdvantagesReverse Engineering | Matrix Algebra | Pushbutton | Safety | Two-position | Remarks on Matrix Algebra | Calculator | Exams | Refs

• model of a real system =⇒ no need to specifyit in a paper)

• results can be verified against the device bythe reader

• case studies are more credible ⇐= nottailored for the used modelling / verificationapproach

A. Cerone, UNU-IIST – p.4/26

Page 13: Formal Methods for Interactive Systemsgroups.di.unipi.it/~cerone/courses/fmis/course...with a long history =⇒ no need to introduce yet another notation • are easy to calculate

Matrix AlgebraReverse Engineering | Matrix Algebra | Pushbutton | Safety | Two-position | Remarks on Matrix Algebra | Calculator | Exams | Refs

to describe interaction human-machine

A. Cerone, UNU-IIST – p.5/26

Page 14: Formal Methods for Interactive Systemsgroups.di.unipi.it/~cerone/courses/fmis/course...with a long history =⇒ no need to introduce yet another notation • are easy to calculate

Matrix AlgebraReverse Engineering | Matrix Algebra | Pushbutton | Safety | Two-position | Remarks on Matrix Algebra | Calculator | Exams | Refs

to describe interaction human-machine

Matrices• are standard mathematical objects

with a long history

A. Cerone, UNU-IIST – p.5/26

Page 15: Formal Methods for Interactive Systemsgroups.di.unipi.it/~cerone/courses/fmis/course...with a long history =⇒ no need to introduce yet another notation • are easy to calculate

Matrix AlgebraReverse Engineering | Matrix Algebra | Pushbutton | Safety | Two-position | Remarks on Matrix Algebra | Calculator | Exams | Refs

to describe interaction human-machine

Matrices• are standard mathematical objects

with a long history=⇒ no need to introduce yet another notation

• are easy to calculate

A. Cerone, UNU-IIST – p.5/26

Page 16: Formal Methods for Interactive Systemsgroups.di.unipi.it/~cerone/courses/fmis/course...with a long history =⇒ no need to introduce yet another notation • are easy to calculate

Matrix AlgebraReverse Engineering | Matrix Algebra | Pushbutton | Safety | Two-position | Remarks on Matrix Algebra | Calculator | Exams | Refs

to describe interaction human-machine

Matrices• are standard mathematical objects

with a long history=⇒ no need to introduce yet another notation

• are easy to calculate• semantics reflects human way of thinking

A. Cerone, UNU-IIST – p.5/26

Page 17: Formal Methods for Interactive Systemsgroups.di.unipi.it/~cerone/courses/fmis/course...with a long history =⇒ no need to introduce yet another notation • are easy to calculate

Matrix AlgebraReverse Engineering | Matrix Algebra | Pushbutton | Safety | Two-position | Remarks on Matrix Algebra | Calculator | Exams | Refs

to describe interaction human-machine

Matrices• are standard mathematical objects

with a long history=⇒ no need to introduce yet another notation

• are easy to calculate• semantics reflects human way of thinking• have

A. Cerone, UNU-IIST – p.5/26

Page 18: Formal Methods for Interactive Systemsgroups.di.unipi.it/~cerone/courses/fmis/course...with a long history =⇒ no need to introduce yet another notation • are easy to calculate

Matrix AlgebraReverse Engineering | Matrix Algebra | Pushbutton | Safety | Two-position | Remarks on Matrix Algebra | Calculator | Exams | Refs

to describe interaction human-machine

Matrices• are standard mathematical objects

with a long history=⇒ no need to introduce yet another notation

• are easy to calculate• semantics reflects human way of thinking• have

• structure =⇒ easy modelling

A. Cerone, UNU-IIST – p.5/26

Page 19: Formal Methods for Interactive Systemsgroups.di.unipi.it/~cerone/courses/fmis/course...with a long history =⇒ no need to introduce yet another notation • are easy to calculate

Matrix AlgebraReverse Engineering | Matrix Algebra | Pushbutton | Safety | Two-position | Remarks on Matrix Algebra | Calculator | Exams | Refs

to describe interaction human-machine

Matrices• are standard mathematical objects

with a long history=⇒ no need to introduce yet another notation

• are easy to calculate• semantics reflects human way of thinking• have

• structure =⇒ easy modelling• properties =⇒ verification tool

A. Cerone, UNU-IIST – p.5/26

Page 20: Formal Methods for Interactive Systemsgroups.di.unipi.it/~cerone/courses/fmis/course...with a long history =⇒ no need to introduce yet another notation • are easy to calculate

Matrix AlgebraReverse Engineering | Matrix Algebra | Pushbutton | Safety | Two-position | Remarks on Matrix Algebra | Calculator | Exams | Refs

to describe interaction human-machine

Matrices• are standard mathematical objects

with a long history=⇒ no need to introduce yet another notation

• are easy to calculate• semantics reflects human way of thinking• have

• structure =⇒ easy modelling• properties =⇒ verification tool

[Thimbleby 04] A. Cerone, UNU-IIST – p.5/26

Page 21: Formal Methods for Interactive Systemsgroups.di.unipi.it/~cerone/courses/fmis/course...with a long history =⇒ no need to introduce yet another notation • are easy to calculate

Example: Pushbutton SwitchReverse Engineering | Matrix Algebra | Pushbutton | Safety | Two-position | Remarks on Matrix Algebra | Calculator | Exams | Refs

A ligh bulb controlled by a pushbutton switch

A. Cerone, UNU-IIST – p.6/26

Page 22: Formal Methods for Interactive Systemsgroups.di.unipi.it/~cerone/courses/fmis/course...with a long history =⇒ no need to introduce yet another notation • are easy to calculate

Example: Pushbutton SwitchReverse Engineering | Matrix Algebra | Pushbutton | Safety | Two-position | Remarks on Matrix Algebra | Calculator | Exams | Refs

A ligh bulb controlled by a pushbutton switch

Pressing the switch alternatively turns thelight on or off.

A. Cerone, UNU-IIST – p.6/26

Page 23: Formal Methods for Interactive Systemsgroups.di.unipi.it/~cerone/courses/fmis/course...with a long history =⇒ no need to introduce yet another notation • are easy to calculate

Example: Pushbutton SwitchReverse Engineering | Matrix Algebra | Pushbutton | Safety | Two-position | Remarks on Matrix Algebra | Calculator | Exams | Refs

A ligh bulb controlled by a pushbutton switch

Pressing the switch alternatively turns thelight on or off.

• 2 states: ON and OFF• 1 operation: push

A. Cerone, UNU-IIST – p.6/26

Page 24: Formal Methods for Interactive Systemsgroups.di.unipi.it/~cerone/courses/fmis/course...with a long history =⇒ no need to introduce yet another notation • are easy to calculate

Example: Pushbutton SwitchReverse Engineering | Matrix Algebra | Pushbutton | Safety | Two-position | Remarks on Matrix Algebra | Calculator | Exams | Refs

A ligh bulb controlled by a pushbutton switch

Pressing the switch alternatively turns thelight on or off.

• 2 states: ON and OFF• 1 operation: push

[Thimbleby 04]

A. Cerone, UNU-IIST – p.6/26

Page 25: Formal Methods for Interactive Systemsgroups.di.unipi.it/~cerone/courses/fmis/course...with a long history =⇒ no need to introduce yet another notation • are easy to calculate

Model of Pushbutton SwitchReverse Engineering | Matrix Algebra | Pushbutton | Safety | Two-position | Remarks on Matrix Algebra | Calculator | Exams | Refs

�� ��OFF

' $?

push

�� ��ON

& %6

push

A. Cerone, UNU-IIST – p.7/26

Page 26: Formal Methods for Interactive Systemsgroups.di.unipi.it/~cerone/courses/fmis/course...with a long history =⇒ no need to introduce yet another notation • are easy to calculate

Model of Pushbutton SwitchReverse Engineering | Matrix Algebra | Pushbutton | Safety | Two-position | Remarks on Matrix Algebra | Calculator | Exams | Refs

�� ��OFF

' $?

push

�� ��ON

& %6

push

OFF = 0 , 1 ON = 1 , 0

A. Cerone, UNU-IIST – p.7/26

Page 27: Formal Methods for Interactive Systemsgroups.di.unipi.it/~cerone/courses/fmis/course...with a long history =⇒ no need to introduce yet another notation • are easy to calculate

Model of Pushbutton SwitchReverse Engineering | Matrix Algebra | Pushbutton | Safety | Two-position | Remarks on Matrix Algebra | Calculator | Exams | Refs

�� ��OFF

' $?

push

�� ��ON

& %6

push

OFF = 0 , 1 ON = 1 , 0

push =01

10

A. Cerone, UNU-IIST – p.7/26

Page 28: Formal Methods for Interactive Systemsgroups.di.unipi.it/~cerone/courses/fmis/course...with a long history =⇒ no need to introduce yet another notation • are easy to calculate

Pushbutton Switch TransitionReverse Engineering | Matrix Algebra | Pushbutton | Safety | Two-position | Remarks on Matrix Algebra | Calculator | Exams | Refs

OFF = 0 , 1 ON = 1 , 0

push =01

10

A. Cerone, UNU-IIST – p.8/26

Page 29: Formal Methods for Interactive Systemsgroups.di.unipi.it/~cerone/courses/fmis/course...with a long history =⇒ no need to introduce yet another notation • are easy to calculate

Pushbutton Switch TransitionReverse Engineering | Matrix Algebra | Pushbutton | Safety | Two-position | Remarks on Matrix Algebra | Calculator | Exams | Refs

OFF = 0 , 1 ON = 1 , 0

push =01

10

OFF

A. Cerone, UNU-IIST – p.8/26

Page 30: Formal Methods for Interactive Systemsgroups.di.unipi.it/~cerone/courses/fmis/course...with a long history =⇒ no need to introduce yet another notation • are easy to calculate

Pushbutton Switch TransitionReverse Engineering | Matrix Algebra | Pushbutton | Safety | Two-position | Remarks on Matrix Algebra | Calculator | Exams | Refs

OFF = 0 , 1 ON = 1 , 0

push =01

10

OFF push

A. Cerone, UNU-IIST – p.8/26

Page 31: Formal Methods for Interactive Systemsgroups.di.unipi.it/~cerone/courses/fmis/course...with a long history =⇒ no need to introduce yet another notation • are easy to calculate

Pushbutton Switch TransitionReverse Engineering | Matrix Algebra | Pushbutton | Safety | Two-position | Remarks on Matrix Algebra | Calculator | Exams | Refs

OFF = 0 , 1 ON = 1 , 0

push =01

10

OFF push = 0 , 101

10

A. Cerone, UNU-IIST – p.8/26

Page 32: Formal Methods for Interactive Systemsgroups.di.unipi.it/~cerone/courses/fmis/course...with a long history =⇒ no need to introduce yet another notation • are easy to calculate

Pushbutton Switch TransitionReverse Engineering | Matrix Algebra | Pushbutton | Safety | Two-position | Remarks on Matrix Algebra | Calculator | Exams | Refs

OFF = 0 , 1 ON = 1 , 0

push =01

10

OFF push = 0 , 101

10

= 1 ,� � �

� k

A. Cerone, UNU-IIST – p.8/26

Page 33: Formal Methods for Interactive Systemsgroups.di.unipi.it/~cerone/courses/fmis/course...with a long history =⇒ no need to introduce yet another notation • are easy to calculate

Pushbutton Switch TransitionReverse Engineering | Matrix Algebra | Pushbutton | Safety | Two-position | Remarks on Matrix Algebra | Calculator | Exams | Refs

OFF = 0 , 1 ON = 1 , 0

push =01

10

OFF push = 0 , 101

10

= 1 , 0� � �

� k

A. Cerone, UNU-IIST – p.8/26

Page 34: Formal Methods for Interactive Systemsgroups.di.unipi.it/~cerone/courses/fmis/course...with a long history =⇒ no need to introduce yet another notation • are easy to calculate

Pushbutton Switch TransitionReverse Engineering | Matrix Algebra | Pushbutton | Safety | Two-position | Remarks on Matrix Algebra | Calculator | Exams | Refs

OFF = 0 , 1 ON = 1 , 0

push =01

10

OFF push = 0 , 101

10

= 1 , 0 = ON

A. Cerone, UNU-IIST – p.8/26

Page 35: Formal Methods for Interactive Systemsgroups.di.unipi.it/~cerone/courses/fmis/course...with a long history =⇒ no need to introduce yet another notation • are easy to calculate

Switch PropertiesReverse Engineering | Matrix Algebra | Pushbutton | Safety | Two-position | Remarks on Matrix Algebra | Calculator | Exams | Refs

OFF push = ON

A. Cerone, UNU-IIST – p.9/26

Page 36: Formal Methods for Interactive Systemsgroups.di.unipi.it/~cerone/courses/fmis/course...with a long history =⇒ no need to introduce yet another notation • are easy to calculate

Switch PropertiesReverse Engineering | Matrix Algebra | Pushbutton | Safety | Two-position | Remarks on Matrix Algebra | Calculator | Exams | Refs

OFF push = ON ON push = OFF

A. Cerone, UNU-IIST – p.9/26

Page 37: Formal Methods for Interactive Systemsgroups.di.unipi.it/~cerone/courses/fmis/course...with a long history =⇒ no need to introduce yet another notation • are easy to calculate

Switch PropertiesReverse Engineering | Matrix Algebra | Pushbutton | Safety | Two-position | Remarks on Matrix Algebra | Calculator | Exams | Refs

OFF push = ON ON push = OFF

push push

A. Cerone, UNU-IIST – p.9/26

Page 38: Formal Methods for Interactive Systemsgroups.di.unipi.it/~cerone/courses/fmis/course...with a long history =⇒ no need to introduce yet another notation • are easy to calculate

Switch PropertiesReverse Engineering | Matrix Algebra | Pushbutton | Safety | Two-position | Remarks on Matrix Algebra | Calculator | Exams | Refs

OFF push = ON ON push = OFF

push push =01

10

01

10

A. Cerone, UNU-IIST – p.9/26

Page 39: Formal Methods for Interactive Systemsgroups.di.unipi.it/~cerone/courses/fmis/course...with a long history =⇒ no need to introduce yet another notation • are easy to calculate

Switch PropertiesReverse Engineering | Matrix Algebra | Pushbutton | Safety | Two-position | Remarks on Matrix Algebra | Calculator | Exams | Refs

OFF push = ON ON push = OFF

push push =01

10

01

10

=10

01

A. Cerone, UNU-IIST – p.9/26

Page 40: Formal Methods for Interactive Systemsgroups.di.unipi.it/~cerone/courses/fmis/course...with a long history =⇒ no need to introduce yet another notation • are easy to calculate

Switch PropertiesReverse Engineering | Matrix Algebra | Pushbutton | Safety | Two-position | Remarks on Matrix Algebra | Calculator | Exams | Refs

OFF push = ON ON push = OFF

push push =01

10

01

10

=10

01

= I

A. Cerone, UNU-IIST – p.9/26

Page 41: Formal Methods for Interactive Systemsgroups.di.unipi.it/~cerone/courses/fmis/course...with a long history =⇒ no need to introduce yet another notation • are easy to calculate

Switch SafetyReverse Engineering | Matrix Algebra | Pushbutton | Safety | Two-position | Remarks on Matrix Algebra | Calculator | Exams | Refs

OFF x = 0 , 1x1,1

x2,1

x1,2

x2,2= 0 , 1 = OFF

A. Cerone, UNU-IIST – p.10/26

Page 42: Formal Methods for Interactive Systemsgroups.di.unipi.it/~cerone/courses/fmis/course...with a long history =⇒ no need to introduce yet another notation • are easy to calculate

Switch SafetyReverse Engineering | Matrix Algebra | Pushbutton | Safety | Two-position | Remarks on Matrix Algebra | Calculator | Exams | Refs

OFF x = 0 , 1x1,1

x2,1

x1,2

x2,2= 0 , 1 = OFF

ON x = 1 , 0x1,1

x2,1

x1,2

x2,2= 0 , 1 = OFF

A. Cerone, UNU-IIST – p.10/26

Page 43: Formal Methods for Interactive Systemsgroups.di.unipi.it/~cerone/courses/fmis/course...with a long history =⇒ no need to introduce yet another notation • are easy to calculate

Switch SafetyReverse Engineering | Matrix Algebra | Pushbutton | Safety | Two-position | Remarks on Matrix Algebra | Calculator | Exams | Refs

OFF x = 0 , 1x1,1

x2,1

x1,2

x2,2= 0 , 1 = OFF

ON x = 1 , 0x1,1

x2,1

x1,2

x2,2= 0 , 1 = OFF

x2,1 = 0 x2,2 = 1

A. Cerone, UNU-IIST – p.10/26

Page 44: Formal Methods for Interactive Systemsgroups.di.unipi.it/~cerone/courses/fmis/course...with a long history =⇒ no need to introduce yet another notation • are easy to calculate

Switch SafetyReverse Engineering | Matrix Algebra | Pushbutton | Safety | Two-position | Remarks on Matrix Algebra | Calculator | Exams | Refs

OFF x = 0 , 1x1,1

x2,1

x1,2

x2,2= 0 , 1 = OFF

ON x = 1 , 0x1,1

x2,1

x1,2

x2,2= 0 , 1 = OFF

x2,1 = 0 x2,2 = 1x1,1 = 0 x1,2 = 1

A. Cerone, UNU-IIST – p.10/26

Page 45: Formal Methods for Interactive Systemsgroups.di.unipi.it/~cerone/courses/fmis/course...with a long history =⇒ no need to introduce yet another notation • are easy to calculate

Switch SafetyReverse Engineering | Matrix Algebra | Pushbutton | Safety | Two-position | Remarks on Matrix Algebra | Calculator | Exams | Refs

OFF x = 0 , 1x1,1

x2,1

x1,2

x2,2= 0 , 1 = OFF

ON x = 1 , 0x1,1

x2,1

x1,2

x2,2= 0 , 1 = OFF

x2,1 = 0 x2,2 = 1x1,1 = 0 x1,2 = 1

=⇒ x =00

11

A. Cerone, UNU-IIST – p.10/26

Page 46: Formal Methods for Interactive Systemsgroups.di.unipi.it/~cerone/courses/fmis/course...with a long history =⇒ no need to introduce yet another notation • are easy to calculate

Switch SafetyReverse Engineering | Matrix Algebra | Pushbutton | Safety | Two-position | Remarks on Matrix Algebra | Calculator | Exams | Refs

OFF x = 0 , 1x1,1

x2,1

x1,2

x2,2= 0 , 1 = OFF

ON x = 1 , 0x1,1

x2,1

x1,2

x2,2= 0 , 1 = OFF

x2,1 = 0 x2,2 = 1x1,1 = 0 x1,2 = 1

=⇒ x =00

11

∃ n such that pushn

= x ?

A. Cerone, UNU-IIST – p.10/26

Page 47: Formal Methods for Interactive Systemsgroups.di.unipi.it/~cerone/courses/fmis/course...with a long history =⇒ no need to introduce yet another notation • are easy to calculate

Switch SafetyReverse Engineering | Matrix Algebra | Pushbutton | Safety | Two-position | Remarks on Matrix Algebra | Calculator | Exams | Refs

OFF x = 0 , 1x1,1

x2,1

x1,2

x2,2= 0 , 1 = OFF

ON x = 1 , 0x1,1

x2,1

x1,2

x2,2= 0 , 1 = OFF

x2,1 = 0 x2,2 = 1x1,1 = 0 x1,2 = 1

=⇒ x =00

11

∃ n such that pushn

= x ?

No because push 2= I A. Cerone, UNU-IIST – p.10/26

Page 48: Formal Methods for Interactive Systemsgroups.di.unipi.it/~cerone/courses/fmis/course...with a long history =⇒ no need to introduce yet another notation • are easy to calculate

Safer SystemReverse Engineering | Matrix Algebra | Pushbutton | Safety | Two-position | Remarks on Matrix Algebra | Calculator | Exams | Refs

OFF x = 0 , 1x1,1

x2,1

x1,2

x2,2= 1 , 0 = ON

ON y = 1 , 0y1,1

y2,1

y1,2

y2,2= 0 , 1 = OFF

A. Cerone, UNU-IIST – p.11/26

Page 49: Formal Methods for Interactive Systemsgroups.di.unipi.it/~cerone/courses/fmis/course...with a long history =⇒ no need to introduce yet another notation • are easy to calculate

Safer SystemReverse Engineering | Matrix Algebra | Pushbutton | Safety | Two-position | Remarks on Matrix Algebra | Calculator | Exams | Refs

OFF x = 0 , 1x1,1

x2,1

x1,2

x2,2= 1 , 0 = ON

ON y = 1 , 0y1,1

y2,1

y1,2

y2,2= 0 , 1 = OFF

x2,1 = 1 x2,2 = 0 =⇒ x =

1 0

- -

A. Cerone, UNU-IIST – p.11/26

Page 50: Formal Methods for Interactive Systemsgroups.di.unipi.it/~cerone/courses/fmis/course...with a long history =⇒ no need to introduce yet another notation • are easy to calculate

Safer SystemReverse Engineering | Matrix Algebra | Pushbutton | Safety | Two-position | Remarks on Matrix Algebra | Calculator | Exams | Refs

OFF x = 0 , 1x1,1

x2,1

x1,2

x2,2= 1 , 0 = ON

ON y = 1 , 0y1,1

y2,1

y1,2

y2,2= 0 , 1 = OFF

x2,1 = 1 x2,2 = 0 =⇒ x =

1 0

y1,1 = 0 y1,2 = 1 =⇒ y =0 1

- -

- -

A. Cerone, UNU-IIST – p.11/26

Page 51: Formal Methods for Interactive Systemsgroups.di.unipi.it/~cerone/courses/fmis/course...with a long history =⇒ no need to introduce yet another notation • are easy to calculate

Safer SystemReverse Engineering | Matrix Algebra | Pushbutton | Safety | Two-position | Remarks on Matrix Algebra | Calculator | Exams | Refs

OFF x = 0 , 1x1,1

x2,1

x1,2

x2,2= 1 , 0 = ON

ON y = 1 , 0y1,1

y2,1

y1,2

y2,2= 0 , 1 = OFF

x2,1 = 1 x2,2 = 0 =⇒ x =

1 0

y1,1 = 0 y1,2 = 1 =⇒ y =0 1

1 0= on

0 1= off

A. Cerone, UNU-IIST – p.11/26

Page 52: Formal Methods for Interactive Systemsgroups.di.unipi.it/~cerone/courses/fmis/course...with a long history =⇒ no need to introduce yet another notation • are easy to calculate

Two-position SwitchReverse Engineering | Matrix Algebra | Pushbutton | Safety | Two-position | Remarks on Matrix Algebra | Calculator | Exams | Refs

A ligh bulb controlled by a two-position switch

A. Cerone, UNU-IIST – p.12/26

Page 53: Formal Methods for Interactive Systemsgroups.di.unipi.it/~cerone/courses/fmis/course...with a long history =⇒ no need to introduce yet another notation • are easy to calculate

Two-position SwitchReverse Engineering | Matrix Algebra | Pushbutton | Safety | Two-position | Remarks on Matrix Algebra | Calculator | Exams | Refs

A ligh bulb controlled by a two-position switch

One switch position (on) turns the light on;the other (off) turns the light off.

A. Cerone, UNU-IIST – p.12/26

Page 54: Formal Methods for Interactive Systemsgroups.di.unipi.it/~cerone/courses/fmis/course...with a long history =⇒ no need to introduce yet another notation • are easy to calculate

Two-position SwitchReverse Engineering | Matrix Algebra | Pushbutton | Safety | Two-position | Remarks on Matrix Algebra | Calculator | Exams | Refs

A ligh bulb controlled by a two-position switch

One switch position (on) turns the light on;the other (off) turns the light off.

Properties• The system is closed

A. Cerone, UNU-IIST – p.12/26

Page 55: Formal Methods for Interactive Systemsgroups.di.unipi.it/~cerone/courses/fmis/course...with a long history =⇒ no need to introduce yet another notation • are easy to calculate

Two-position SwitchReverse Engineering | Matrix Algebra | Pushbutton | Safety | Two-position | Remarks on Matrix Algebra | Calculator | Exams | Refs

A ligh bulb controlled by a two-position switch

One switch position (on) turns the light on;the other (off) turns the light off.

Properties• The system is closed• any sequence of actions is equivalent to the

last actions the user does

A. Cerone, UNU-IIST – p.12/26

Page 56: Formal Methods for Interactive Systemsgroups.di.unipi.it/~cerone/courses/fmis/course...with a long history =⇒ no need to introduce yet another notation • are easy to calculate

RemarksReverse Engineering | Matrix Algebra | Pushbutton | Safety | Two-position | Remarks on Matrix Algebra | Calculator | Exams | Refs

• matrix algebra can be used to find interestingproperties

A. Cerone, UNU-IIST – p.13/26

Page 57: Formal Methods for Interactive Systemsgroups.di.unipi.it/~cerone/courses/fmis/course...with a long history =⇒ no need to introduce yet another notation • are easy to calculate

RemarksReverse Engineering | Matrix Algebra | Pushbutton | Safety | Two-position | Remarks on Matrix Algebra | Calculator | Exams | Refs

• matrix algebra can be used to find interestingproperties through

• direct manipulation of matrices (operations)rather than vectors (states)

A. Cerone, UNU-IIST – p.13/26

Page 58: Formal Methods for Interactive Systemsgroups.di.unipi.it/~cerone/courses/fmis/course...with a long history =⇒ no need to introduce yet another notation • are easy to calculate

RemarksReverse Engineering | Matrix Algebra | Pushbutton | Safety | Two-position | Remarks on Matrix Algebra | Calculator | Exams | Refs

• matrix algebra can be used to find interestingproperties through

• direct manipulation of matrices (operations)rather than vectors (states)⇐= number of operations much smaller thannumber of states

A. Cerone, UNU-IIST – p.13/26

Page 59: Formal Methods for Interactive Systemsgroups.di.unipi.it/~cerone/courses/fmis/course...with a long history =⇒ no need to introduce yet another notation • are easy to calculate

RemarksReverse Engineering | Matrix Algebra | Pushbutton | Safety | Two-position | Remarks on Matrix Algebra | Calculator | Exams | Refs

• matrix algebra can be used to find interestingproperties through

• direct manipulation of matrices (operations)rather than vectors (states)⇐= number of operations much smaller thannumber of states

• the methodology is• scalable

A. Cerone, UNU-IIST – p.13/26

Page 60: Formal Methods for Interactive Systemsgroups.di.unipi.it/~cerone/courses/fmis/course...with a long history =⇒ no need to introduce yet another notation • are easy to calculate

RemarksReverse Engineering | Matrix Algebra | Pushbutton | Safety | Two-position | Remarks on Matrix Algebra | Calculator | Exams | Refs

• matrix algebra can be used to find interestingproperties through

• direct manipulation of matrices (operations)rather than vectors (states)⇐= number of operations much smaller thannumber of states

• the methodology is• scalable• mechanisable [Gow and Thimbleby 04]

A. Cerone, UNU-IIST – p.13/26

Page 61: Formal Methods for Interactive Systemsgroups.di.unipi.it/~cerone/courses/fmis/course...with a long history =⇒ no need to introduce yet another notation • are easy to calculate

CalculatorReverse Engineering | Matrix Algebra | Pushbutton | Safety | Two-position | Remarks on Matrix Algebra | Calculator | Exams | Refs

• Model: CASIO HL-820LC

A. Cerone, UNU-IIST – p.14/26

Page 62: Formal Methods for Interactive Systemsgroups.di.unipi.it/~cerone/courses/fmis/course...with a long history =⇒ no need to introduce yet another notation • are easy to calculate

CalculatorReverse Engineering | Matrix Algebra | Pushbutton | Safety | Two-position | Remarks on Matrix Algebra | Calculator | Exams | Refs

• Model: CASIO HL-820LC• State

A. Cerone, UNU-IIST – p.14/26

Page 63: Formal Methods for Interactive Systemsgroups.di.unipi.it/~cerone/courses/fmis/course...with a long history =⇒ no need to introduce yet another notation • are easy to calculate

CalculatorReverse Engineering | Matrix Algebra | Pushbutton | Safety | Two-position | Remarks on Matrix Algebra | Calculator | Exams | Refs

• Model: CASIO HL-820LC• State

• d = display contents

A. Cerone, UNU-IIST – p.14/26

Page 64: Formal Methods for Interactive Systemsgroups.di.unipi.it/~cerone/courses/fmis/course...with a long history =⇒ no need to introduce yet another notation • are easy to calculate

CalculatorReverse Engineering | Matrix Algebra | Pushbutton | Safety | Two-position | Remarks on Matrix Algebra | Calculator | Exams | Refs

• Model: CASIO HL-820LC• State

• d = display contents• m = memory contents

A. Cerone, UNU-IIST – p.14/26

Page 65: Formal Methods for Interactive Systemsgroups.di.unipi.it/~cerone/courses/fmis/course...with a long history =⇒ no need to introduce yet another notation • are easy to calculate

CalculatorReverse Engineering | Matrix Algebra | Pushbutton | Safety | Two-position | Remarks on Matrix Algebra | Calculator | Exams | Refs

• Model: CASIO HL-820LC• State

• d = display contents• m = memory contents• state representation: vector s = [d,m]

A. Cerone, UNU-IIST – p.14/26

Page 66: Formal Methods for Interactive Systemsgroups.di.unipi.it/~cerone/courses/fmis/course...with a long history =⇒ no need to introduce yet another notation • are easy to calculate

CalculatorReverse Engineering | Matrix Algebra | Pushbutton | Safety | Two-position | Remarks on Matrix Algebra | Calculator | Exams | Refs

• Model: CASIO HL-820LC• State

• d = display contents• m = memory contents• state representation: vector s = [d,m]

• Operations: binary 2×2 matrices

A. Cerone, UNU-IIST – p.14/26

Page 67: Formal Methods for Interactive Systemsgroups.di.unipi.it/~cerone/courses/fmis/course...with a long history =⇒ no need to introduce yet another notation • are easy to calculate

Calculator FunctionsReverse Engineering | Matrix Algebra | Pushbutton | Safety | Two-position | Remarks on Matrix Algebra | Calculator | Exams | Refs

• M+ add display to memory

A. Cerone, UNU-IIST – p.15/26

Page 68: Formal Methods for Interactive Systemsgroups.di.unipi.it/~cerone/courses/fmis/course...with a long history =⇒ no need to introduce yet another notation • are easy to calculate

Calculator FunctionsReverse Engineering | Matrix Algebra | Pushbutton | Safety | Two-position | Remarks on Matrix Algebra | Calculator | Exams | Refs

• M+ add display to memory

• M− subtract display from memory

A. Cerone, UNU-IIST – p.15/26

Page 69: Formal Methods for Interactive Systemsgroups.di.unipi.it/~cerone/courses/fmis/course...with a long history =⇒ no need to introduce yet another notation • are easy to calculate

Calculator FunctionsReverse Engineering | Matrix Algebra | Pushbutton | Safety | Two-position | Remarks on Matrix Algebra | Calculator | Exams | Refs

• M+ add display to memory

• M− subtract display from memory

• AC clear display

A. Cerone, UNU-IIST – p.15/26

Page 70: Formal Methods for Interactive Systemsgroups.di.unipi.it/~cerone/courses/fmis/course...with a long history =⇒ no need to introduce yet another notation • are easy to calculate

Calculator FunctionsReverse Engineering | Matrix Algebra | Pushbutton | Safety | Two-position | Remarks on Matrix Algebra | Calculator | Exams | Refs

• M+ add display to memory

• M− subtract display from memory

• AC clear display

• MRC recall memory

A. Cerone, UNU-IIST – p.15/26

Page 71: Formal Methods for Interactive Systemsgroups.di.unipi.it/~cerone/courses/fmis/course...with a long history =⇒ no need to introduce yet another notation • are easy to calculate

Calculator FunctionsReverse Engineering | Matrix Algebra | Pushbutton | Safety | Two-position | Remarks on Matrix Algebra | Calculator | Exams | Refs

• M+ add display to memory

• M− subtract display from memory

• AC clear display

• MRC recall memory

• MRC MRC recall and clear memory

A. Cerone, UNU-IIST – p.15/26

Page 72: Formal Methods for Interactive Systemsgroups.di.unipi.it/~cerone/courses/fmis/course...with a long history =⇒ no need to introduce yet another notation • are easy to calculate

MRCReverse Engineering | Matrix Algebra | Pushbutton | Safety | Two-position | Remarks on Matrix Algebra | Calculator | Exams | Refs

What is the precise semantics of MRC?• pressed once

A. Cerone, UNU-IIST – p.16/26

Page 73: Formal Methods for Interactive Systemsgroups.di.unipi.it/~cerone/courses/fmis/course...with a long history =⇒ no need to introduce yet another notation • are easy to calculate

MRCReverse Engineering | Matrix Algebra | Pushbutton | Safety | Two-position | Remarks on Matrix Algebra | Calculator | Exams | Refs

What is the precise semantics of MRC?• pressed once

• if m = 0 then no effect

A. Cerone, UNU-IIST – p.16/26

Page 74: Formal Methods for Interactive Systemsgroups.di.unipi.it/~cerone/courses/fmis/course...with a long history =⇒ no need to introduce yet another notation • are easy to calculate

MRCReverse Engineering | Matrix Algebra | Pushbutton | Safety | Two-position | Remarks on Matrix Algebra | Calculator | Exams | Refs

What is the precise semantics of MRC?• pressed once

• if m = 0 then no effect• if m 6= 0 then d := m

A. Cerone, UNU-IIST – p.16/26

Page 75: Formal Methods for Interactive Systemsgroups.di.unipi.it/~cerone/courses/fmis/course...with a long history =⇒ no need to introduce yet another notation • are easy to calculate

MRCReverse Engineering | Matrix Algebra | Pushbutton | Safety | Two-position | Remarks on Matrix Algebra | Calculator | Exams | Refs

What is the precise semantics of MRC?• pressed once

• if m = 0 then no effect• if m 6= 0 then d := m

• pressed twice

A. Cerone, UNU-IIST – p.16/26

Page 76: Formal Methods for Interactive Systemsgroups.di.unipi.it/~cerone/courses/fmis/course...with a long history =⇒ no need to introduce yet another notation • are easy to calculate

MRCReverse Engineering | Matrix Algebra | Pushbutton | Safety | Two-position | Remarks on Matrix Algebra | Calculator | Exams | Refs

What is the precise semantics of MRC?• pressed once

• if m = 0 then no effect• if m 6= 0 then d := m

• pressed twice• m := 0

A. Cerone, UNU-IIST – p.16/26

Page 77: Formal Methods for Interactive Systemsgroups.di.unipi.it/~cerone/courses/fmis/course...with a long history =⇒ no need to introduce yet another notation • are easy to calculate

Remarks on MRCReverse Engineering | Matrix Algebra | Pushbutton | Safety | Two-position | Remarks on Matrix Algebra | Calculator | Exams | Refs

• MRC MRC is not the same as the productMRC · MRC

A. Cerone, UNU-IIST – p.17/26

Page 78: Formal Methods for Interactive Systemsgroups.di.unipi.it/~cerone/courses/fmis/course...with a long history =⇒ no need to introduce yet another notation • are easy to calculate

Remarks on MRCReverse Engineering | Matrix Algebra | Pushbutton | Safety | Two-position | Remarks on Matrix Algebra | Calculator | Exams | Refs

• MRC MRC is not the same as the productMRC · MRC

• Semantics of pressed once depends onprevious content of memory

A. Cerone, UNU-IIST – p.17/26

Page 79: Formal Methods for Interactive Systemsgroups.di.unipi.it/~cerone/courses/fmis/course...with a long history =⇒ no need to introduce yet another notation • are easy to calculate

Remarks on MRCReverse Engineering | Matrix Algebra | Pushbutton | Safety | Two-position | Remarks on Matrix Algebra | Calculator | Exams | Refs

• MRC MRC is not the same as the productMRC · MRC

• Semantics of pressed once depends onprevious content of memory

• Is MRC ( MRC MRC )= ( MRC MRC ) MRC ?

A. Cerone, UNU-IIST – p.17/26

Page 80: Formal Methods for Interactive Systemsgroups.di.unipi.it/~cerone/courses/fmis/course...with a long history =⇒ no need to introduce yet another notation • are easy to calculate

Remarks on MRCReverse Engineering | Matrix Algebra | Pushbutton | Safety | Two-position | Remarks on Matrix Algebra | Calculator | Exams | Refs

• MRC MRC is not the same as the productMRC · MRC

• Semantics of pressed once depends onprevious content of memory

• Is MRC ( MRC MRC )= ( MRC MRC ) MRC ?

• Calculator:MRC ( MRC MRC ) = MRC MRC

A. Cerone, UNU-IIST – p.17/26

Page 81: Formal Methods for Interactive Systemsgroups.di.unipi.it/~cerone/courses/fmis/course...with a long history =⇒ no need to introduce yet another notation • are easy to calculate

Bad Design?Reverse Engineering | Matrix Algebra | Pushbutton | Safety | Two-position | Remarks on Matrix Algebra | Calculator | Exams | Refs

• Do we really need to give such a specialfunction to MRC MRC ?

A. Cerone, UNU-IIST – p.18/26

Page 82: Formal Methods for Interactive Systemsgroups.di.unipi.it/~cerone/courses/fmis/course...with a long history =⇒ no need to introduce yet another notation • are easy to calculate

Bad Design?Reverse Engineering | Matrix Algebra | Pushbutton | Safety | Two-position | Remarks on Matrix Algebra | Calculator | Exams | Refs

• Do we really need to give such a specialfunction to MRC MRC ?

• No!MRC MRC = MRC M−

A. Cerone, UNU-IIST – p.18/26

Page 83: Formal Methods for Interactive Systemsgroups.di.unipi.it/~cerone/courses/fmis/course...with a long history =⇒ no need to introduce yet another notation • are easy to calculate

Bad Design?Reverse Engineering | Matrix Algebra | Pushbutton | Safety | Two-position | Remarks on Matrix Algebra | Calculator | Exams | Refs

• Do we really need to give such a specialfunction to MRC MRC ?

• No!MRC MRC = MRC M−

• MRC MRC is a bad design choice!

A. Cerone, UNU-IIST – p.18/26

Page 84: Formal Methods for Interactive Systemsgroups.di.unipi.it/~cerone/courses/fmis/course...with a long history =⇒ no need to introduce yet another notation • are easy to calculate

Bad Design?Reverse Engineering | Matrix Algebra | Pushbutton | Safety | Two-position | Remarks on Matrix Algebra | Calculator | Exams | Refs

• Do we really need to give such a specialfunction to MRC MRC ?

• No!MRC MRC = MRC M−

• MRC MRC is a bad design choice!

[Thimbleby 00]

A. Cerone, UNU-IIST – p.18/26

Page 85: Formal Methods for Interactive Systemsgroups.di.unipi.it/~cerone/courses/fmis/course...with a long history =⇒ no need to introduce yet another notation • are easy to calculate

Safety-criticalReverse Engineering | Matrix Algebra | Pushbutton | Safety | Two-position | Remarks on Matrix Algebra | Calculator | Exams | Refs

• Is a calculator safety-critical?

A. Cerone, UNU-IIST – p.19/26

Page 86: Formal Methods for Interactive Systemsgroups.di.unipi.it/~cerone/courses/fmis/course...with a long history =⇒ no need to introduce yet another notation • are easy to calculate

Safety-criticalReverse Engineering | Matrix Algebra | Pushbutton | Safety | Two-position | Remarks on Matrix Algebra | Calculator | Exams | Refs

• Is a calculator safety-critical?• May a calculator-like interface be

safety-critical?

A. Cerone, UNU-IIST – p.19/26

Page 87: Formal Methods for Interactive Systemsgroups.di.unipi.it/~cerone/courses/fmis/course...with a long history =⇒ no need to introduce yet another notation • are easy to calculate

Safety-criticalReverse Engineering | Matrix Algebra | Pushbutton | Safety | Two-position | Remarks on Matrix Algebra | Calculator | Exams | Refs

• Is a calculator safety-critical?• May a calculator-like interface be

safety-critical?• Yes!

Syringe pump have calculator-like interfaces

A. Cerone, UNU-IIST – p.19/26

Page 88: Formal Methods for Interactive Systemsgroups.di.unipi.it/~cerone/courses/fmis/course...with a long history =⇒ no need to introduce yet another notation • are easy to calculate

Reverse Engineering | Matrix Algebra | Pushbutton | Safety | Two-position | Remarks on Matrix Algebra | Calculator | Exams | Refs

Examinations

A. Cerone, UNU-IIST – p.20/26

Page 89: Formal Methods for Interactive Systemsgroups.di.unipi.it/~cerone/courses/fmis/course...with a long history =⇒ no need to introduce yet another notation • are easy to calculate

Seminar 6 — Usable CalculatorReverse Engineering | Matrix Algebra | Pushbutton | Safety | Two-position | Remarks on Matrix Algebra | Calculator | Exams | Refs

Topic: Calculator Interfaces

Towards a truly usable calculator• Harold Thimbleby

Computer Algebra for User Interface Design, 2004

• Harold ThimblebyA Novel Pen-based Calculator and its Evaluation, 2004

• Will Thimbleby and Harold ThimblebyA Novel Gesture-based Calculator and its Design Principles, 2005

• Websites on• Computer Algebra: http://www.cs.swan.ac.uk/∼csharold/CA/• Calculator: http://www.cs.swan.ac.uk/calculators/

A. Cerone, UNU-IIST – p.21/26

Page 90: Formal Methods for Interactive Systemsgroups.di.unipi.it/~cerone/courses/fmis/course...with a long history =⇒ no need to introduce yet another notation • are easy to calculate

Reverse Engineering | Matrix Algebra | Pushbutton | Safety | Two-position | Remarks on Matrix Algebra | Calculator | Exams | Refs

References

A. Cerone, UNU-IIST – p.22/26

Page 91: Formal Methods for Interactive Systemsgroups.di.unipi.it/~cerone/courses/fmis/course...with a long history =⇒ no need to introduce yet another notation • are easy to calculate

Reverse EngineeringReverse Engineering | Matrix Algebra | Pushbutton | Safety | Two-position | Remarks on Matrix Algebra | Calculator | Exams | Refs

• [Thimbleby 04]: Reverse Engineering andMatrix Algebra

• [Gow and Thimbleby 2004]: Matrix Algebraand Tools

• [Thimbleby 00]: Reverse Engineering

A. Cerone, UNU-IIST – p.23/26

Page 92: Formal Methods for Interactive Systemsgroups.di.unipi.it/~cerone/courses/fmis/course...with a long history =⇒ no need to introduce yet another notation • are easy to calculate

[Thimbleby 04]Reverse Engineering | Matrix Algebra | Pushbutton | Safety | Two-position | Remarks on Matrix Algebra | Calculator | Exams | Refs

Harold Thimbleby.User interface design with matrix algebra.ACM Transactions on Computer-HumanInteraction, Vol. 11, No. 2, 2004, pages 181–236.

About:• Reverse Engineering• Matrix Algebra

A. Cerone, UNU-IIST – p.24/26

Page 93: Formal Methods for Interactive Systemsgroups.di.unipi.it/~cerone/courses/fmis/course...with a long history =⇒ no need to introduce yet another notation • are easy to calculate

[Gow and Thimbleby 04]Reverse Engineering | Matrix Algebra | Pushbutton | Safety | Two-position | Remarks on Matrix Algebra | Calculator | Exams | Refs

Jeremy Gow and Harold Thimbleby.MAUI: An Interface Design Tool Based on MatrixAlgebra.In Proceedings of CADUI 2004, Springer, 2004,pages 81–94.

About:• Tools

A. Cerone, UNU-IIST – p.25/26

Page 94: Formal Methods for Interactive Systemsgroups.di.unipi.it/~cerone/courses/fmis/course...with a long history =⇒ no need to introduce yet another notation • are easy to calculate

[Thimbleby 00]Reverse Engineering | Matrix Algebra | Pushbutton | Safety | Two-position | Remarks on Matrix Algebra | Calculator | Exams | Refs

Harold Thimbleby.Calculators are needlessly bad.International Journal of Computer-HumanStudies, Vol. 52, No. 6, 2000, pages 1031–1069.

About:• Reverse Engineering of Calculatos

A. Cerone, UNU-IIST – p.26/26