In OS.bee “business” models drive the software lifecycle. Following the Model Driven Software Development (MSD) methodology, the application know-how is stored within models for specific business domains and their sub-domains (“Domain Specific Modelling”, DSM). This approach allows integration of existing frameworks for different IT-domains such as for security or UI functions.
DSL Models & Grammar
Domain Specific Language (DSL) is the language of choice for application modeling, specific to a domain. With OS.bee, our way to diminish the complexity of an application field like an ERP is to subdivide a domain in sub-domains and to preserve their context and coherence. As a result, a set of cross-referenced DSL and generators are the backbone of OS.bee and build the OS.bee-DSL-architecture, powered by Xtext, a highly extendible language development framework covering all aspects of language infrastructure and full-blown IDE support based on Eclipse.
The domain specific languages used in OS.bee are designed to be easy to read and easy to learn, being also adoptable by less technical domain experts. Whether being familiar to modeling techniques or having used general purpose programming languages as yet, developers will find powerful toolset in OS.bee. Xtext’s editing support for Eclipse delivers great usability, providing developer support such as contextual assistance, validation, outline, and formatting.
As even the simplest code cannot always explain itself, inline documentation is included for all DSL, helping to understand how the problem given has been solved. The standard widget toolkit (SWT) of Eclipse is extended by Opal widgets e.g. to implement an image selection.
As a way of mastering the complexity of model driven development, visual programming tools are implemented in OS.bee. Being able to visualize the models makes software development graphical, declarative and intuitive. It reduces the time, it takes to get familiar with the model driven approach for developers, and delivers better understanding of the domain specific languages to non-developers.
In the end, source code is required to bring your application into life. OS.bee delivers language specific code generators, so-called model inferrers. They provide transformations from the DSL syntax into any desired machine interpretable code, e.g. Java as well as XML, SQL, MDX, etc. In some cases, the pure model is interpreted during runtime without the need of intermediate code fragments. Inferrers can also work as model-to-model transformers, if the source format is not a DSL but another modelling language, for example BPM Notations. More generally, it’s possible to define any target format and to have multiple source formats.