HeKatE Case Lift (Elevator)
This case analysis is based on hekate process.
Eliasz Kańtoch,
Tomasz Michalski
Introduction
It is a Lift (elevator) case.
The main problem described here is to create a lift (elevator) control system in a building.
Description
The example shows basic lift functions: call up the lift, choosing target floor, indicating the direction, calculating where the lift has to go.
Conceptualization
Vocabulary
Inputs: calling the lift from outside and inside,
Outputs: choosing the direction and the target floor
Internal stages: Current position and direction
Original Rules
Decision table → direction
Decision table + current floor → stop or go
Analysis
Conceptual design
Level 0: Elavator
Level 1: Finalization Elavator to: CurrentElevatorDirection, LastElevatorDirection, IsHigherFloorSelectedFromCabin, IsLowerFloorSelectedFromCabin, IsThisFloorSelectedFromCabin, CallElevatorFromHigherFloorToGoUp, CallElevatorFromHigherFloorToGoDown, CallElevatorFromLowerFloorToGoUp, CallElevatorFromLowerFloorToGoDown, CallElevatorFromActualFloorToGoUp, CallElevatorFromActualFloorToGoDown, WhereToGo
Level 2: Split: CurrentElevatorDirection → LastElevatorDirection → IsHigherFloorSelectedFromCabin → IsLowerFloorSelectedFromCabin → IsThisFloorSelectedFromCabin → CallElevatorFromHigherFloorToGoUp → CallElevatorFromHigherFloorToGoDown → CallElevatorFromLowerFloorToGoUp → CallElevatorFromLowerFloorToGoDown → CallElevatorFromActualFloorToGoUp → CallElevatorFromActualFloorToGoDown → WhereToGo,
Level 3-13: Finalization of each attributes.
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 Elevator
.
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.
Full Optimized Design
Diagram genereted with HQEd M6_6:
The full hierarchical diagram is presented below:
ARD model was designed using Varda M_3 (Visual ARD Rapid Development Alloy).
ARD history (TPH):
TPH and ARD combined:
Full ARD Model
Refined Conceptual Design
Physical Attribute Specification
Structuralization
Logical design
ARD MODEL in XML :
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<!DOCTYPE hml SYSTEM "hml.dtd">
<!-- for HML2 -->
<hml version="2.0">
<types>
<type id="tpe_1" name="default" base="symbolic"><domain><value is="none"/></domain></type>
</types>
<attributes>
<attr name="Elavator" id="att_1" type="tpe_1"/>
<attr name="CurrentElevatorDirection" id="att_2" type="tpe_1"/>
<attr name="LastElevatorDirection" id="att_3" type="tpe_1"/>
<attr name="IsHigherFloorSelectedFromCabin" id="att_4" type="tpe_1"/>
<attr name="IsLowerFloorSelectedFromCabin" id="att_5" type="tpe_1"/>
<attr name="IsThisFloorSelectedFromCabin" id="att_6" type="tpe_1"/>
<attr name="CallElevatorFromHigherFloorToGoUp" id="att_7" type="tpe_1"/>
<attr name="CallElevatorFromHigherFloorToGoDown" id="att_8" type="tpe_1"/>
<attr name="CallElevatorFromLowerFloorToGoUp" id="att_9" type="tpe_1"/>
<attr name="CallElevatorFromLowerFloorToGoDown" id="att_10" type="tpe_1"/>
<attr name="CallElevatorFromActualFloorToGoUp" id="att_11" type="tpe_1"/>
<attr name="CallElevatorFromActualFloorToGoDown" id="att_12" type="tpe_1"/>
<attr name="WhereToGo" id="att_13" type="tpe_1"/>
<attr name="currentElevatorDirection" id="att_14" type="tpe_1"/>
<attr name="lastElevatorDirection" id="att_15" type="tpe_1"/>
<attr name="isHigherFloorSelectedFromCabin" id="att_16" type="tpe_1"/>
<attr name="isLowerFloorSelectedFromCabin" id="att_17" type="tpe_1"/>
<attr name="isThisFloorSelectedFromCabin" id="att_18" type="tpe_1"/>
<attr name="callElevatorFromHigherFloorToGoUp" id="att_19" type="tpe_1"/>
<attr name="callElevatorFromHigherFloorToGoDown" id="att_20" type="tpe_1"/>
<attr name="callElevatorFromLowerFloorToGoUp" id="att_21" type="tpe_1"/>
<attr name="callElevatorFromLowerFloorToGoDown" id="att_22" type="tpe_1"/>
<attr name="callElevatorFromActualFloorToGoUp" id="att_23" type="tpe_1"/>
<attr name="callElevatorFromActualFloorToGoDown" id="att_24" type="tpe_1"/>
<attr name="whereToGo" id="att_25" type="tpe_1"/>
</attributes>
<properties>
<property id="prp_1">
<attref ref="att_1"/>
</property>
</properties>
<tph>
</tph>
<ard>
</ard>
</hml>