Softwareport provides a software development platform that combines high-level control, embedded software and virtual prototyping into one integrative solution. It is a joint venture of three software companies – Cordis, Festa Solutions and Unit040 – that uses a Model Driven Engineering approach, saving time, costs and programming headaches.

Softwareports solutions are especially suited for situations where high-level and low-level control operate together. For example, the distribution of luggage in an airport. The high-level control of coordinating incoming and outgoing flights and the low-level control of operating the luggage belts have to cooperate seamlessly. Or the operation of a series of bridges, where the arrival of the ships (high-level control) and the mechanics of opening and closing the bridges (low-level control) have to work in tandem. Another example is a smart factory (Industry 4.0), where robots, 3D printers and automated guided vehicles (AGV’s) work together to manufacture and assemble products, increasing overall efficiency.

Developing software for these systems is painstaking and error-prone due to the complex behaviors that have to be managed and integrated. Through a Model Driven Engineering approachSoftwareport uses an elegant and simplified solution that saves time, energy and human coding mistakes.

Why Softwareport?

Softwareport can accelerate the transition to Industry 4.0, where manufacturing processes are smart and fully automated. It is able to develop both hardware and software for smart factories in less time and with reduced costs. Because of its automatic software coding based on functional design, hardware and software development run parallel instead of sequential.

The option of virtual simulation using a digital twin further improves efficiency by eliminating the time consuming and costly process of physical prototype testing and bug fixing. The use of running a digital twin parallel to the physical factory also makes maintenance more predictable. In later stages technical modifications and factory updates can also be virtually tested for risk-free implementation in the factory.

How do the companies work together?

The three companies comprising it each take care of one aspect of the integrative solution. Festa Solutions specializes in developing high-level control software, Cordis takes care of low-level control logic and Unit040 provides a visualization and simulation tool (‘digital twin’) to guarantee functional implementation of the software.

ICT Group works with Softwareport and educates software engineers in the Model Driven Engineering approach. For more information about Cordis and Unit040 and their practical application please see our Case Study about Cordis Suite. Below we will explain the advantage of working with Festa Solutions for developing high-level control software in a real-world scenario.

Case Study: developing software for an Air Traffic Control system using the Festa Engine

Festa Solutions specializes in developing High-Level Control (HLC) software systems from design to development, hosting and maintenance. Based on a Model Driven Engineering approach Festa offers higher quality, flexibility and functionality against lower costs and less througput time. Festa’s HLC systems are especially geared for use in smart factories, where internet- of-things technology and Big Data require vertical integration of IT systems.

ICT Group’s software engineer Annie Jovitha Arulanandam enrolled in an internship with Festa Solutions to become more familiar with its software tool, the Festa Engine.

Software for a model Air Traffic Control System

The Festa Engine is especially suited to build software for systems that are use case driven, where different actors can perform different actions on the same system. Web applications with multiple users are a good example. Annie used the Festa Engine to develop software for a system that processes Air Traffic Control requests for logistics planning. This was a training assignment meant to give Annie practical experience with the Festa Engine. The resulting software would not be applied in the real world.

The system Annie designed serviced two users. The first user (termed ‘Requestor’ in the model) makes air transport requests, specifying flight origin and destination, the number of passengers and/or the total weight of the cargo. The Requestor should be able to use create, search, modify and cancel his request, functionalities which have to be programmed into the software. This request is then sent to a second user (termed ‘Checkor’ in the model) that has to approve or reject the air transport request made by the Requestor.

Functional model: defining actions and class diagrams

In line with the Model Driven Engineering approach the Festa Engine uses graphical models which represent a functional overview of the software. Building software with the Festa Engine requires two modelling phases. The first phase is functional modelling, which is done by the domain expert, for instance a product analyst.

In this phase the domain expert generally creates two models. The first is a use case model, which defines the actions the model provides to the outside world. In our example these are ‘create’, ’search’, ‘modify’, ‘cancel’, ’approve’ and ‘reject’ air transport requests. The second model houses the class diagrams, which represent the main entities and their relations. In our example the entities are Nations, Air Transport Requests and Aircraft Type.

Implementation model: transitioning data and generating reports

In the second modelling phase the implementation model is created, which is where the software engineer enters the picture. The software engineer now models the data service layer, security and authentication. Where the first modelling phase was all about the ‘what’, this phase concerns itself with the ‘how’, or in other words, how the data is transitioned in the system.

The implementation model creates the interfaces for the client in the form of a CRUD (Create Read Update Delete) matrix, which is used to actualize the use cases or workflows. In this phase entities and service models are added by the software engineer. Annie created several DTO’s (Data Transfer Objects) that define how the data is transferred and stored in the database.

Next Annie generated reports to ensure that the search functions in the software – like ‘Search air transport request’ – would return the right values (passengers, cargo, destination, etc.). For this she created report diagram models. The report diagram is an API that acts as an interface for the Festa Engine, so the Engine knows how to search and retrieve data. Finally Annie created a connector diagram to export the services to the outside world.

Coding business logic by hand

When all modelling was done Annie only had to press a button to generate the software code.
The generated code represents 80% of the final product. The missing 20% consists of business rules and logic, which is not taken care of by the models. Annie still had to program these rules manually (for example the rule that each nation can make multiple air transport requests). She also had to create unique business keys for all entities, to prevent that the same request could be created twice.

The code was then validated by the Festa Engine against the flow and rules created by the models. Finally the artefacts were created, ready to use in the application server. The Festa Engine supports different programming languages. Currently these are Java, JavaScript, C# and Objective-C.

Flawless code generated straight from the models

The great advantage of Model Driven Engineering is that flawless code is generated straight from the models. Annie: “In traditional software development I would have to code everything by hand. But with the Festa Engine all the plumbing code and authentication is taken care of. If you want to make changes, you just change the model and with the press of a button you get new code. No copy-pasting is required.”

The Festa Engine taught Annie many valuable new insights. One of them was how the use of models can facilitate software development. “The only models I had seen before were customer requirements on paper. In the Festa Engine I could actually give life to models and directly create code out of them. That was a real eye- opener. It also meant that I had to model in domain specific language, which was new to me.”

Using models facilitated the communication between the stakeholders, Annie found. “The models represent a language that both the domain expert and the software engineer understand. Since the model is actually an image, you graphically see what is required. Whereas traditional requirements in text form are much harder to understand.” To Annie one of the biggest advantages of the Festa Engine is its faultless code generation. “Previously I had to be always alert about not making manual coding mistakes. Since the model generates the code, it’s one hundred percent error proof.”