Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Both sides previous revision Poprzednia wersja
Nowa wersja
Poprzednia wersja
pl:miw:2009:present:varda [2009/06/15 22:35]
jsi08
pl:miw:2009:present:varda [2019/06/27 15:50] (aktualna)
Linia 16: Linia 16:
 ===== Prolog prototype ===== ===== Prolog prototype =====
  
 +  * A software prototype providing the ARD+ design and visualization method is designed as a multilayer architecture:​
 +    * knowledge base to represent the design,
 +    * low-level primitives: adding and removing attributes, properties and dependencies,​
 +    * transformations:​ finalization and split including defining dependencies and automatic TPH creation,
 +    * low-level visualization primitives: generating data for the visualization tool-chain, so-called DOT data,
 +    * high-level visualization primitives: drawing actual dependency graph between properties and the TPH.
  
 +===== Prolog prototype =====
 +
 +{{:​pl:​miw:​2009:​present:​varda_figure_1.png|}}
 +
 +Figure 1: Prolog prototype architecture
 +
 +===== Prolog prototype =====
 +
 +  * As an implementation environment of choice the Prolog language is used. It serves as a proof of concept for the ARD+ design methodology and prototyping environment.
 +  * Switching to other environments such as Java, C++, Ajax, or Eclipse platform is possible.
 +  * Prolog was chosen because it offers a rapid development environment for knowledge-based systems.
 +
 +===== Automated Visualization =====
 +
 +  * Both ARD and TPH diagrams are directed graphs.
 +  * Proper graph visualization,​ node distribution,​ edge distribution and labeling is a separate scientific domain. Instead of reinventing these concepts, or implementing them from scratch, a tool-chain of well proved tools to provide actual visualization is assembled.
 +  * The tool-chain is based on three components:
 +    * SWI-Prolog,
 +    * GraphViz,
 +    * ImageMagick.
 +  * There are two scenarios the tool-chain is used:
 +    * generating diagrams for an already designed system described in Prolog,
 +    * generating diagrams during the design process.
 +
 +===== Automated Visualization =====
 +
 +{{:​pl:​miw:​2009:​present:​varda_figure_2.png|}}
 +
 +Figure 2: Visualization tool-chain
 +
 +===== An Example Design =====
 +
 +  * The ARD process can be easily explained using the //​Thermostat case//.
 +  * The main problem described there is to create a temperature control system for an office.
 +
 +===== Level 0 =====
 +
 +{{:​pl:​miw:​2009:​present:​varda_level_0.png|}}
 +
 +<​code>​
 +ard_att_add(’Thermostat’),​
 +ard_property_add([’Thermostat’]).
 +</​code>​
 +
 +===== Level 1 =====
 +
 +{{:​pl:​miw:​2009:​present:​varda_level_1.png|}}
 +
 +<​code>​
 +ard_att_add(’Time’),​
 +ard_att_add(’Temperature’),​
 +ard_finalize(
 +[’Thermostat’],​
 +[’Time’,​’Temperature’]).
 +</​code>​
 +
 +===== Level 2 =====
 +
 +{{:​pl:​miw:​2009:​present:​varda_level_2.png|}}
 +
 +<​code>​
 +ard_split(
 +[’Time’,​’Temperature’],​
 +[[’Time’],​[’Temperature’]],​
 +[
 +[[’Time’],​[’Temperature’]]
 +]).
 +</​code>​
 +
 +===== Level 3 =====
 +
 +{{:​pl:​miw:​2009:​present:​varda_level_3.png|}}
 +
 +<​code>​
 +ard_att_add(’Date’),​
 +ard_att_add(’Hour’),​
 +ard_att_add(season),​
 +ard_att_add(operation),​
 +ard_finalize(
 +[’Time’],​
 +[’Date’,​’Hour’,​season,​operation]).
 +</​code>​
 +
 +===== Level 4 =====
 +
 +{{:​pl:​miw:​2009:​present:​varda_level_4.png|}}
 +
 +<​code>​
 +ard_split(
 +[’Date’,​’Hour’,​season,​operation],​
 +[[’Date’,​’Hour’],​[season,​operation]],​
 +[
 +[[’Date’,​’Hour’],​[season,​operation]],​
 +[[season,​operation],​[’Temperature’]]
 +]).
 +</​code>​
 +
 +===== Level 5 =====
 +
 +{{:​pl:​miw:​2009:​present:​varda_level_5.png|}}
 +
 +<​code>​
 +ard_split(
 +[’Date’,​’Hour’],​
 +[[’Date’],​[’Hour’]],​
 +[
 +[[’Date’],​[season,​operation]],​
 +[[’Hour’],​[season,​operation]]
 +]).
 +</​code>​
 +
 +===== Level 6 =====
 +
 +{{:​pl:​miw:​2009:​present:​varda_level_6.png|}}
 +
 +<​code>​
 +ard_att_add(day),​
 +ard_att_add(month),​
 +ard_att_add(today),​
 +ard_finalize(
 +[’Date’],​
 +[day,​month,​today]).
 +</​code>​
 +
 +===== Level 7 =====
 +
 +{{:​pl:​miw:​2009:​present:​varda_level_7.png|}}
 +
 +<​code>​
 +ard_split(
 +[day,​month,​today],​
 +[[month],​[day,​today]],​
 +[[[month],​[season,​operation]],​
 +[[day,​today],​
 +[season,​operation]]]).
 +</​code>​
 +
 +===== Level 8 =====
 +
 +{{:​pl:​miw:​2009:​present:​varda_level_8.png|}}
 +
 +<​code>​
 +ard_att_add(thermostat_settings),​
 +ard_finalize(
 +[’Temperature’],​
 +[thermostat_settings]),​
 +ard_att_add(hour),​
 +ard_finalize([’Hour’],​[hour]).
 +</​code>​
 +
 +===== Level 8 =====
 +
 +<​code>​
 +ard_split(
 +[season,​operation],​
 +[[season],​[operation]],​
 +[
 +[[month],​[season]],​
 +[[day,​today],​[operation]],​
 +[[hour],​[operation]],​
 +[[season],​[thermostat_settings]],​
 +[[operation],​ [thermostat_settings]]
 +]),
 +ard_split(
 +[day,​today],​
 +[[day],​[today]],​
 +[
 +[[day],​[today]],​
 +[[today],​[operation]]
 +]).
 +</​code>​
 +
 +===== A complete TPH diagram =====
 +
 +{{:​pl:​miw:​2009:​present:​varda_tph_1.png|}}
 +
 +===== A complete TPH diagram =====
 +
 +{{:​pl:​miw:​2009:​present:​varda_tph_2.png|}}
pl/miw/2009/present/varda.1245098105.txt.gz · ostatnio zmienione: 2019/06/27 15:57 (edycja zewnętrzna)
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