This is an old revision of the document!
HeKatE Case Thermostat
Introduction
The ARD process can be easily explained using the following example.
It is a reworked Thermostat case.
The main problem described here is to create a temperature control system
for an office.
The design process is shown below.
Description
Conceptualization
Vocabulary
Original Rules
Rule: 1
if the day is Monday
or the day is Tuesday or the day is Wednesday
or the day is Thursday or the day is Friday
then today is a workday
Rule: 2
if the day is Saturday
or the day is Sunday
then today is the weekend
Rule: 3
if today is workday
and the time is 'between 9 am and 5 pm'
then operation is 'during business hours'
Rule: 4
if today is workday
and the time is 'before 9 am'
then operation is 'not during business hours'
Rule: 5
if today is workday
and the time is 'after 5 pm'
then operation is 'not during business hours'
Rule: 6
if today is weekend
then operation is 'not during business hours'
Rule: 7
if the month is January
or the month is February or the month is December
then the season is summer
Rule: 8
if the month is March
or the month is April or the month is May
then the season is autumn
Rule: 9
if the month is June
or the month is July or the month is August
then the season is winter
Rule: 10
if the month is September
or the month is October or the month is November
then the season is spring
Rule: 11
if the season is spring
and operation is 'during business hours'
then thermostat_setting is '20 degrees'
Rule: 12
if the season is spring
and operation is 'not during business hours'
then thermostat_setting is '15 degrees'
Rule: 13
if the season is summer
and operation is 'during business hours'
then thermostat_setting is '24 degrees'
Rule: 14
if the season is summer
and operation is 'not during business hours'
then thermostat_setting is '27 degrees'
Rule: 15
if the season is autumn
and operation is 'during business hours'
then thermostat_setting is '20 degrees'
Rule: 16
if the season is autumn
and operation is 'not during business hours'
then thermostat_setting is '16 degrees'
Rule: 17
if the season is winter
and operation is 'during business hours'
then thermostat_setting is '18 degrees'
Rule: 18
if the season is winter
and operation is 'not during business hours'
then thermostat_setting is '14 degrees'
The seasons ARE correct, the Author lives in Australia.
Analysis
Conceptual design
General Conceptual Design
Directed Conceptual Design
We model the system aiming at matching the original rules.
First, it is stated that there is a system to be designed which is described by
a single conceptual attribute Thermostat
.
It is so called level 0 of the design.
Refining knowledge about what is the purpose of the system makes a transition to the diagram at level 1; it is a finalization.
It is stated that the thermostat controls temperature and this control has something to do with time.
That is why Thermostat
is finalized into Time
and Temperature
.
Furthermore, at level 2, it is stated that Temperature
depends on Time
: there are two properties identified in the
system and a functional dependency between them.
The design process continues, through splits and/or finalizations, until all physical attributes (indicated with lower case letters) are identified and relationships among them are stated which is presented at level 8.
The whole process is shown below:
ARD diagram | Corresponding THP | VARDA model |
<graphviz file=“hekate:therm-a0.dot”></graphviz> | | ard_att_add('Thermostat'),ard_property_add(['Thermostat']) |
<graphviz file=“hekate:therm-a1.dot”></graphviz> | <graphviz file=“hekate:therm-t1.dot”></graphviz> | ard_att_add('Time'),ard_att_add('Temperature'),ard_finalize(['Thermostat'],['Time','Temperature']) |
<graphviz file=“hekate:therm-a2.dot”></graphviz> | <graphviz file=“hekate:therm-t2.dot”></graphviz> | |
<graphviz file=“hekate:therm-a3.dot”></graphviz> | <graphviz file=“hekate:therm-t3.dot”></graphviz> | |
<graphviz file=“hekate:therm-a4.dot”></graphviz> | <graphviz file=“hekate:therm-t4.dot”></graphviz> | |
<graphviz file=“hekate:therm-a5.dot”></graphviz> | <graphviz file=“hekate:therm-t5.dot”></graphviz> | |
<graphviz file=“hekate:therm-a6.dot”></graphviz> | <graphviz file=“hekate:therm-t6.dot”></graphviz> | |
<graphviz file=“hekate:therm-a7.dot”></graphviz> | <graphviz file=“hekate:therm-t7.dot”></graphviz> | |
<graphviz file=“hekate:therm-a8.dot”></graphviz> | <graphviz file=“hekate:therm-t8.dot”></graphviz> | |
Full Design
Subsequent ARD levels are given below:
The Transformation Process History diagram is given below:
Full ARD Model
See therm-model.pl
in varda
Refined Conceptual Design
Physical Attribute Specification
Structuralization
XTT prototype generated by VARDA:
Logical design