Turns domain knowledge into code

Download g9 download

Leveraging your domain knowledge
Reducing complexity


g9 is simply faster; As a Low-Code development platform, g9 follows a domain driven methodology with automatic code generation and provides visual UI design tools. Domain experts can concentrate on the domain model which can be transformed into code by the g9 generators. Each element of the domain model can be used to represent multiple lines of code and the included g9 libraries eliminate the need to code many application functions. The more complex the domain model, the more code can be generated by the generators reducing the need to write boilerplate code. As the model evolves, code can be regenerated without affecting any tailored code which promotes an agile development environment for faster development cycles.

The use of automated generators ensures that there are less errors and that code is consistent. Written in Xtend, the g9 generators are very readable and more concise than straight Java (although generators can be written in Java). Also, generators can be copied to create new variants or they can be modified to adhere to company standards and adapt best practices. The generators also contain many hooks for overriding default runtime functionality or for creating new functionality. As your product evolves and personnel changes, code can maintain it's consistency.
By focusing on the domain knowledge rather than on the technology, domain experts can model their business requirements and push down changes by regenerating code. The domain models supported include Enterprise Architect and Eclipse Modeling Framework Ecore/Xcore. Also supported is using Java source code with annotations to describe the domain model. The domain experts can control the domain model which typically includes all static modeling elements (classes, associations, attributes, enumerations, generalizations, etc..) as well as the UI models using a supplied visual tool for UI development. A database model may also be defined as well as web services. As the business requirements change, they can simply modify their domain model and regenerate the code using existing, modified or new generators.
The domain model is not tied to any specific target environment. As technology changes, new generators can be created to take advantage of the technology and there is no need to modify the domain model. Also, generators can be adapted to work for different platforms. More recent generators available in g9 include RESTful web services and React (a javascript library for building UIs) along with Redux. An important benefit to note is the use of 'Object Selections' which are subsets of classes used extensively in g9 for generating the binding code between the UI and the domain model and used for web services. This abstraction helps to separate the technology from the binding definitions.
Written as a series of Eclipse plugins, g9 works seamlessly with the Java Development Tools project for the development of Java applications. It also integrates with the Eclipse team tools including version control and compare functionality. Adding the Xtend language plug-ins allows you to more easily view and create Xtend based generators and the EMF project allows you to work on an Ecore/Xcore domain model. Although the g9 generators are currently designed to produce Java code, generators can be developed to produce code in other Eclipse supported languages. With its tight integration, there are many benefits of using the Eclipse universal tool platform.
The domain model serves as the documentation and must be current since it drives the code generation process. There are also several generators that provide reports based on the models. As personnel changes, developers and domain experts can quickly get up to speed.

References

Esito and Inmeta have delivered development tools and consultancy services to the Norwegian Customs for several years, and contributed to the developement of their specialised IT-systems. Development and maintenance of these systems require domain knowledge specific for this area. Norwegian Customs uses model based development as a tool for acquiring and conveying domain knowledge, and to achieve efficient developement and maintenance of their IT-systems.

Norwegian Customs uses g9 and generates code for multiple targets.

Volvo IT in Olofström has for several years used Esito’s tools for development and maintenance of some of their IT applications.

Administration of research grants is a specialised area requiring domain knowledge.

Esito has contributed with tools and consultancy services in the development of eSak (electronic proceedings of grants). eSak is a fully integrated systems for electronic application and proceedings of grants integrating both tailor made systems and standard systems. It includes systems developed using Java and .NET and use both database- and web service integration. One of the core modules in eSak is developed using g9 and model based development which enable easy upgrade and reduced lifetime cost. Modeling the system requires domain knowledge about case management and file archiving systems and domain specific knowledge about administration of research grants.

The systems must support a high level of traceability and transparency and quick responses to applicants and other stakeholders. In addition the system offers access management in order to protect sensitive business information.