HeKatE Case Thermostat

This case analysis is based on hekate process.

FIXME

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> ard_split(['Time','Temperature'],[ ['Time'],['Temperature']], [ [ ['Time'],['Temperature']]])
<graphviz file=“hekate:therm-a3.dot”></graphviz> <graphviz file=“hekate:therm-t3.dot”></graphviz> ard_att_add('Date'), ard_att_add('Hour'), ard_att_add(season), ard_att_add(operation), ard_finalize(['Time'],['Date','Hour',season,operation])
<graphviz file=“hekate:therm-a4.dot”></graphviz> <graphviz file=“hekate:therm-t4.dot”></graphviz> ard_split(['Date','Hour',season,operation],[ ['Date','Hour'],[season,operation]],[ [ ['Date','Hour'], [season,operation]],[ [season,operation],['Temperature']]])
<graphviz file=“hekate:a5f.dot”></graphviz> <graphviz file=“hekate:t5f.dot”></graphviz> ard_split([season,operation],[ [season],[operation]],[ [ ['Date','Hour'],[season]],[ ['Date','Hour'],[operation]],[ [season],['Temperature']],[ [operation], ['Temperature']]])
<graphviz file=“hekate:a6f.dot”></graphviz> <graphviz file=“hekate:t6f.dot”></graphviz> ard_split(['Date','Hour'],[ ['Date'],['Hour']],[ [ ['Date'],[season]],[ ['Date'],[operation]],[ ['Hour'],[operation]]])
<graphviz file=“hekate:a7f.dot”></graphviz> <graphviz file=“hekate:t7f.dot”></graphviz> ard_att_add(day), ard_att_add(month), ard_att_add(today), ard_finalize(['Date'],[day,month,today])
<graphviz file=“hekate:a8f.dot”></graphviz> <graphviz file=“hekate:t8f.dot”></graphviz> ard_split([day,month,today],[ [month],[day,today]],[ [ [month],[season]],[ [day,today],[operation]]])
<graphviz file=“hekate:a9f.dot”></graphviz> <graphviz file=“hekate:t9f.dot”></graphviz> ard_split([day,today],[ [day],[today]],[ [ [day],[today]],[ [today],[operation]]]
<graphviz file=“hekate:a10f.dot”></graphviz> <graphviz file=“hekate:t10f.dot”></graphviz> ard_att_add(hour), ard_finalize(['Hour'],[hour]), ard_att_add(thermostat_settings), ard_finalize(['Temperature'],[thermostat_settings])

Full Optimized Design

VARDA can automatically optimize the diagram, by re/collapsing the lowest ARD using TPH.

The subsequent optimized ARD levels (as recreated by VARDA) are given below:

:hekate:thermostat-ard.png

The Transformation Process History diagram is given below:

:hekate:thermostat-tph.png

Full ARD Model

Refined Conceptual Design

Physical Attribute Specification

Structuralization

XTT prototype generated by VARDA:

:hekate:thermostat-varda-xtt.png

Logical design

:hekate:thermostat-xtt.png

check if:

  • rules are consitant with the book
  • the xtt design is consistent with the book w.r.t seasons and temperature!
hekate/hekate_case_thermostat.txt · Last modified: 2008/11/19 23:39 by gjn
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0