formal methods for interactive systemsgroups.di.unipi.it/~cerone/courses/fmis/course...with a long...
TRANSCRIPT
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Reverse Engineering | Matrix Algebra | Pushbutton | Safety | Two-position | Remarks on Matrix Algebra | Calculator | Exams | Refs
Examinations
A. Cerone, UNU-IIST – p.20/26
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
Reverse Engineering | Matrix Algebra | Pushbutton | Safety | Two-position | Remarks on Matrix Algebra | Calculator | Exams | Refs
References
A. Cerone, UNU-IIST – p.22/26
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
[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
[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
[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