Data first - The modeling philosophy of A12
A12 is all about models. But what exactly can you model as a business expert? What are the benefits of having different models for data and the user interface? And how does A12 differ from other modeling approaches like GUI builders?
The A12 platform enables experts and analysts to create and adapt business applications. It aims at building applications much faster than usual and allowing for business-driven adjustments on the fly. This is accomplished in large parts thanks to a model-based approach. The platform provides tools for creating models. And it provides technical environments which interpret these models and use them to control what the corresponding applications are about. The first step of gaining a deeper understanding of this approach is to take a closer look at the models.
“A guiding principle of the platform is the separation of different kinds of models: data models and UI models”, says Ansgar Weiss. Data models are created and edited with the A12 Data Modeler. They describe the underlying structures of the application. UI models are created and edited with the A12 UI Designer. They describe how the user interface is organized. “We decided to separate data and UI information from each other in order to introduce a higher level of flexibility and reusability”, explains Weiss
. “You can create several different user interfaces for example which refer to one data model.”
The bedrock of business applications: data and validation criteria
The first step of creating applications with the A12 platform involves the creation of data models. If you want to build an application for stock management for example, you need a structural outline for articles among others. An article has a name, represented as a string. It has a serial number. It has a price. There has to be numbers which describe how many items of each article are in stock. Additionally, there are rules for the validity of data. The price cannot be negative. The serial number has to satisfy a certain format. All these organizational structures and criteria which relate to the business perspective are defined in an A12 data model. In more technical terms, data models contain specifications of fields, data types, type definitions and validation rules.
The A12 Data Modeler facilitates both the definition of data structures and validation rules. Data fields can be ordered in groups. For conveniently adding and modifying validation criteria, the editor features „autocomplete“ and „syntax highlighting“ for the A12 validation language. “In large applications there might be large sets of data definitions and validation rules. That is why we introduced so-called „Includes“: You can include data models in other data models“, explains Beate Still
. If you have a basic data model for articles for example, you can reuse it in quite different contexts. “We regularly discuss additional concepts for modularization like inheritance”, adds Still , “but you have to be extremely careful in handling those mechanisms. Small changes can have large ramifications for the whole platform.”
Content-related user interface design
The A12 UI Designer pursues a rather abstract but very powerful way of modeling user interfaces. Instead of diving into design-specifics like colors, margins and spacings, the editor focuses on the organization of UI elements via models. Instead of letting the user put input fields, radio buttons or text labels directly on screen in a WYSIWYG-style, it operates with hierarchical lists of model elements. This modeling philosophy enables business experts to focus on their domain and model complete user interfaces on their own. The graphical finish is completely decoupled and not specified in the A12 UI Designer. In order to provide an attractive and modern design out of the box, A12 makes use of Plasma Design – a coherent design concept for business applications developed by mgm.
Each A12 UI model refers to at least one A12 data model. This is a crucial aspect for understanding the design philosophy of the A12 UI Designer – and the main difference to classical GUI builders. There is no point in creating UI models without corresponding data models. You can think of UI models as a kind of wrapper for selected parts of your data models. They provide the frame for user interaction based on a selection of your data fields. Due to this connection, the data model and its accompanying validation rules are usually created first. As soon as this has been done, new UI models with a reference to this data model can be created. “Data and validation definitions really take the center stage in A12”, says Ansgar Weiss
. “It takes a little getting used to, but once you get the idea of this unique approach, you will surely appreciate how fast you can build robust and productive software with it.”