Introduction to ADOxx ​
This page contains a short introduction to the ADOxx platform. It focuses on providing a simple understanding of the different parts of ADOxx in general, but leaves out many details. These details are addressed on other sub-pages once they are needed.
ADOxx Platform ​
ADOxx is the meta-modelling development and configuration platform for realizing a modelling method as a modelling tool. Implementation of full-fletched modelling methods can be realized using the platform, consisting not only of a modelling language, but also of a modelling procedure and the corresponding functionality in the form of mechanisms and algorithms.
ADOxx follows a configuration approach, re-using existing implementations and functionality on platform level in different scenarios, supported by an expert community on ADOxx.org and OMiLAB. The community facilitates the development process of individual groups and research resulting in domain-specific modelling tools.
The ADOxx platform, which was developed by BOC in co-operation with the University of Vienna, offers essential tool support for the realization of projects.
Roles ​
Two different roles are relevant to consider:
- Modelling tool user: They use a modelling tool to create and utilize models within a specific domain. They need to have knowledge about the domain and about the modelling method they use to create the model. In the context of the ADOxx platform their major task relates to transforming the domain knowledge into requirements for the modelling tool.
- Modelling tool developer: They realize a modelling method by creating a modelling tool to be used by the modelling tool user. They need to have knowledge about the domain, the modelling method and the ADOxx platform. They have expertise in developing and translating the requirements for the modelling tool into meta-model concepts.
Both roles can work together in an agile manner to develop a modelling tool in parallel to the tool's usage.
Examples for the two roles and how they relate together:
- Modelling tool users model the socio-economic interdependencies between various actors according to a specific modelling method as realized with the ADOxx platform by the modelling tool developer.
- Modelling tool users model the requirements of an IT system according to a specific modelling method as realized with the ADOxx platform by the modelling tool developer.
- Modelling tool users model the current and the desired processes of an organization according to a specific modelling method as realized with the ADOxx platform by the modelling tool developer.
High-level Concepts ​
An overview of high-level concepts managed by the ADOxx platform:
- Application Library: Contains the configuration for realizing a modelling method, including the meta-model, configuration of various functionalities, extension through custom mechanisms and algorithms etc. These are then used to create a modelling tool. As such it represents information the meta-model level.
- Model / Model group: The models created according to a specific Application Library, adhering to its meta-model, usable with its functionalities etc. They represent information on model level. Models are organized into model groups ("folders" / "directories").
- Attribute Profile / Attribute Profile group: Attribute Profiles are an approach to realize individual reusable objects (repository concept) and are also created according to a specific Application Library. They represent information on model level. Attribute Profiles are organized into Attribute Profile groups ("folders" / "directories").
- User / User group: Users and user groups are used to manage access to various parts of the ADOxx platform, like which Application Library a user is assigned to or what model groups a user group can access. Both are used for management purposes in ADOxx.
Functionalities for managing all these are provided through various components of ADOxx.
Application Library ​
To realize a modelling tool with the ADOxx platform a meta-modelling approach is used to define a meta-model. The Application Library contains in this case the configuration of the meta-model and links to any additional artifacts that are needed. The following image provides a very simplified overview of an Application Library on a conceptual level:
- Model type: A model type is a well-defined collection of the different classes of a meta-model.
- Class: A class is a construct that is used as a template to create objects (alternatively called "instances") of that class. Different types of classes are utilized in ADOxx to control various behavior in the modelling tool, like "(modelling) classes" and "relation classes".
- Attribute: An attribute is a property of a model or object and consists of a definition in the meta-model (type, restrictions, default value etc.) and a value on model level. Special class attributes are used to configure various details of a class.
Model types, classes and class attributes configure the behavior of the modelling tool, while models, objects and (instance) attributes are the content created in the modelling tool.
Deployment Architecture ​
The basic deployment architecture of the ADOxx platform:
Two toolkits are provided as the main applications:
- Development Toolkit: Provides tools to manage the configuration of a library, supporting the development and implementation of a modelling language / method. Furthermore the users and user groups are managed in the Development Toolkit. Also provides some simple management functionalities for models, model groups, Attribute Profiles and Attribute Profile groups.
- Modelling Toolkit: Provides tools to create and manage models, Attribute Profiles and their groups according to the configuration of a library. Functionalities configured by the library are also accessed via the Modelling Toolkit. It is used primarily to test and debug your implementation. The Modelling Toolkit is similar to what is provided when packaging your implementation into a professional modelling tool.
All the relevant information used by both toolkits is stored in a common database. A default deployment of ADOxx uses a local file-based database and connects to those files directly.
Database file path
The ADOxx platform looks for a database file based on the database name specified during login: [database-name].sqlite3
. Where it looks for the file depends on the following:
- If the toolkit is started with the
-Portable
parameter it will look in ansqlitedbs/
folder relative to the ADOxx installation folder. - Otherwise if the (Windows / Wine) environment variable
ADO_SQLITE_DBFOLDER
is defined, then it will look in that folder instead. - If neither of the other options apply it looks in the
%APPDATA%/ADOxx/sqlitedbs/
folder. On macOS and Linux this is evaluated in relation to the used Wine prefix, like${HOME}/.wine_adoxx18
.
Components ​
The following list provides a short overview of some of the available components and what functionalities they provide.
Components of the Development Toolkit:
- User management: Managing user groups, users and their assignment to user groups and to an Application Library.
- Library management: Managing libraries as well as adapting their meta-model, functionality configuration etc.
- Model management: Managing model groups and models as a whole as well as access rights for user groups.
- Attribute Profile management: Managing Attribute Profile groups, Attribute Profiles and their content.
Components of the Modelling Toolkit:
- Modelling: Managing model groups, models and their content through various editors. Also managing Attribute Profiles and Attribute Profile groups.
- Analysis: Executing predefined or custom queries on models.
- Simulation: Performing simulation-based analysis of process models, e.g. path analysis.
- Import/Export: Options for exporting to and importing from various file formats.
The functionalities available in each component of the Modelling Toolkit can be extended through the configuration of the library. Therefore, the options that are actually available in the Modelling Toolkit can deviate from the above descriptions.
For a more comprehensive list with further details see the ADOxx components page.