View page as slide show

VARDA

Introduction

  • VARDA - the Visual ARD Rapid Development Alloy - is a rapid prototyping environment for ARD+, built with use of the SWI-Prolog environment for the knowledge base building, and Graphviz tool for an on-line design visualization.
  • These tools are combined by the Unix environment, where the ImageMagick tool provides an instant visualization of the prototype at any design stage.

Introduction

  • During the design process the ARD model grows. This growth is expressed by consecutive diagram levels, making the design more and more specific. This constitutes the hierarchical model.
  • The implementation of such hierarchical model is provided through storing the lowest available, most detailed diagram level at any time, and additional information needed to recreate all of the higher levels, the so-called Transformation Process History (TPH).
  • It captures information about changes made to properties at consecutive diagram levels. These changes are carried out through the transformations: split or finalization.

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

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

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

ard_att_add(’Thermostat’),
ard_property_add([’Thermostat’]).

Level 1

ard_att_add(’Time’),
ard_att_add(’Temperature’),
ard_finalize(
[’Thermostat’],
[’Time’,’Temperature’]).

Level 2

ard_split(
[’Time’,’Temperature’],
[[’Time’],[’Temperature’]],
[
[[’Time’],[’Temperature’]]
]).

Level 3

ard_att_add(’Date’),
ard_att_add(’Hour’),
ard_att_add(season),
ard_att_add(operation),
ard_finalize(
[’Time’],
[’Date’,’Hour’,season,operation]).

Level 4

ard_split(
[’Date’,’Hour’,season,operation],
[[’Date’,’Hour’],[season,operation]],
[
[[’Date’,’Hour’],[season,operation]],
[[season,operation],[’Temperature’]]
]).

Level 5

ard_split(
[’Date’,’Hour’],
[[’Date’],[’Hour’]],
[
[[’Date’],[season,operation]],
[[’Hour’],[season,operation]]
]).

Level 6

ard_att_add(day),
ard_att_add(month),
ard_att_add(today),
ard_finalize(
[’Date’],
[day,month,today]).

Level 7

ard_split(
[day,month,today],
[[month],[day,today]],
[[[month],[season,operation]],
[[day,today],
[season,operation]]]).

Level 8

ard_att_add(thermostat_settings),
ard_finalize(
[’Temperature’],
[thermostat_settings]),
ard_att_add(hour),
ard_finalize([’Hour’],[hour]).

Level 8

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]]
]).

A complete TPH diagram

A complete TPH diagram

pl/miw/2009/present/varda.txt · ostatnio zmienione: 2017/07/17 08:08 (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