HQEd
Description
See sort hqed presentation: HQEd presentation
Wiki version: HQEd presentation
The tool makes the visual
design on the XTT level possible. What is more, it provides a mechanizm for formal verification,
which allows for checking a model against the syntax and logical anomalies. The tool has built–in engine of syntax monitoring that checks
the model against such errors as: inaccessible rules, values out of domain, etc. The logical anomalies are detected by other tool that constitutes logic server.
The platform independence is the most important issue of the tool implementation. This effect
has been reached by use of the Qt library. The Qt library is a cross-platform application development
framework. It has a fully object-oriented architecture.
Qt supports a various of technologies such as XML, OpenGL, SQL. A source code created
by using Qt can be compiled on such platforms as X11, Windows, MacOS, and embeded systems based on GNU Linux.
The source code of HQEd is divided into three layers, which correspond to MVC design pattern:
Model – is responsible for the internal XTT and ARD model representation.
View – provides the user interface as well as is responsible for the communication with the application.
Controller – provides the communication between the layers.
HQEd has a user friendly graphical interface.
GUI is designed with respect to an intuitive and convenient use. Each window dialog has the appropriate input/output controls. This prevents the user from entering an incorrect data.
The Figure 1 shows the schema of the architecture.
The controller is the most important element of the architecture. It enables a flow of data between the layers. It corresponds to the MVC controller layer. The model consists of two layers
that are responsible for the internal models representation.
ARD Model stores an ARD model data, while the XTT Model stores an XTT model data.
The remaining layers are included in the view that maps the model to the other formats:
User Interface – the visual model representation that is appropriate for an user. This layer generates the graphical XTT diagram.
XML mapping – translates a model data to a XML based language called HML (HeKatE Markup Language). The layer allow for storing and restoring the state of a model by use of the files. The HML file format supports storing both the ARD and XTT model data.
Plugins
API – provides the communication between HQEd and the other services. The visual editor can be integrated with a custom rule interpreter HeaRT.
Features
HQEd helps in rules modeling.
Design process can be divided into three stages :
(shown example describes office temperature management system)
Conceptual design
Identification of system attributes and it's functional connections. At this stage we use ARD modeling methodology which is a graphical representation of attribute's connections.
ARD supports two types of attributes:
conceptual (abstract, general term)
physical (well defined, concrete and specyfic object properties, atomic system aspects)
ARD also supports two types of transformation:
finalisation (conceptual attributes during designing process are being finalised into possible largest amount of physical attributes)
split (division of complex system properties into few attributes and establishment of their functional dependencies)
Logical design
System stucture is being represented as hierarchical XTT structure. At this stage system structure may be analised, verified and optimised.
XTT is a knowledge representation formalism that allows to adjust structuring rule base by introducing rules grouping tables having the same attributes and to link between tables allowing for control of inference between the tables.
Physical design
For XTT model, Prolog code is generated, which can be compiled, executed and corrected
News
2011.02.22 – release M6_10_1: fixed table moving in Qt 4.5 and later, other compatibility issues and a lot of bugs
2010.01.06 – release M6_10: separate state pane, ui fixes and other bugs, rules sorting, selcting system trajetories
2009.11.06 – release M6_9: HeaRT integration, fixes, ui fixes
2009.08.02 – release M6_8: HeaRT integration, fixes
2009.05.13 – release M6_6: support for XTT2, HML2, and HMR
2008.04.21 – release M5_6
2008.03.09 – public release, M5_2
2008.03.05 – M5_2
2008.02.29 – HQEd goes GPLv3
Getting it
Just download a HQEd milestone file below.
Releases
Waiting for new release…
OLD Releases
(do not use)
Build it and run it
qmake
make
./hqed
Build dependencies might include (in a Debian/GNU-related distro):
aptitude install libqt4-dev qt4-qmake qt4-dev-tools
Use it
Ready models
With VARDA
run
VARDA with ARD model:
./varda therm-model.pl
build XTT model from the ARD model
?- gax.
export the XTT model to XTTML file:
?- xxg('therm.hml').
optionally, you can save the ARD model with
?- axg('therm.hml').
load it to hqed and generate xtt prototypes in the editor.
Report bugs
Please report the bugs, suggestions to the Redmine system:
access the system with the kirk user/pass
create new issue, use HQEd subproject
Emergency support: Krzysztof Kaczor kk@agh.edu.pl
Docs OnLine
Papers