Week 03a-FormalModeling
Week 03a-FormalModeling
University of Toronto Department of Computer Science University of Toronto Department of Computer Science
University of Toronto Department of Computer Science University of Toronto Department of Computer Science
➜ System State
Dictionaries: Tables: also: A (system) state is defined as:
Assertions, the system is in exactly one mode from each mode class…
Monitored/Controlled Mode Transition Tables
Variables Current Powered Too Cold Temp OK Too Hot New Mode
Scenarios, …and each variable has a unique value
Mode on
Event Tables
...
Variable Type Initial Value Units Off @T Powered - Too Cold t Temp OK- TooInactive
Current Hot New Mode
WarningFlag boolean false - Mode@T on t - - Heat
Events
OtherFlag boolean true @T @T
Off Current -
Powered - Cold
Too - t
Temp tOK AC
- Hot
Too Inactive
New Mode Modes Events
➜
Fudgelevel enumerated one - Inactive Mode @F @Ton- t - - - Off
- Heat
NoFailure @T(INMODE) never
Waterlevel real 0.0 m Off - @T@T@T - - - - t- Heat
t - ACInactive Modes Events
temperature real 0.0 degrees C Inactive - @F@T- - t - - -@T AC
- - OffHeat SensorFail @T(reset=on) @T(INMODE)
BlipCounter integer 0 miles Heat @F - @T- @T - - - -- Off
- t Heat NoFailure @T(INMODE) never
AC Timeout Modes always never
Events
TimeNow real 100.0 sec -
Inactive - @F- - -@T - -- Inactive
@T - ACOff Blah @T(thingy) @T(other)
ACFailure, HeatFailure never @T(INMODE)
@T(INMODE) never
Types
Timeout
Heat @F@F - - - - - - NoOff Failure Doodah never always
- - f - f @T @T - ACFailure
Inactive Heater = Off On
Single input assumption - only one input event can occur at once
Temperature integer -100..100 degrees C
Waterlevel integer 0..100 meters
Flag enumerated on, off -
@T(c) WHEN d means: “c became true when c was false and d was true”
ACFailure, HeatFailure true false
ReferenceSafetyLevel safetytype low -
SCR Specification
TempMargin integer 5 degrees C Buzzer = Off On
University of Toronto Department of Computer Science University of Toronto Department of Computer Science
References
van Vliet, H. “Software Engineering: Principles and Practice (2nd Edition)” Wiley,
1999.
van Vliet gives a good introduction to formal methods in chapter 15. In particular, sections 15.1 and
15.5 are worth reading, to give a feel for the current state of the art, and the problems that hinder
the use of formal methods in practice. van Vliet describes a completely different set of formal modeling
techniques from those covered in this lecture – he concentrates on methods that can be used for
program design models, rather than requirements models.