Both sides previous revision
Poprzednia wersja
Nowa wersja
|
Poprzednia wersja
|
pl:miw:2009:present:varda [2009/06/15 22:46] jsi08 |
pl:miw:2009:present:varda [2019/06/27 15:50] (aktualna) |
| |
===== Prolog prototype ===== | ===== 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|}} |