DSM for mainframe COBOL applications
Helvetia Versicherungen Deutschland, a subsidiary of a Swiss insurance company, is a quality-oriented, all-lines insurance provider and offers a broad range of non-life and life insurance products to business and private customers.
We have more than 800 employees in Germany serving around 1 million customers, and with almost 100 employees our IT department at Helvetia here in Frankfurt is one of the largest departments. In addition to the development of modern Java-based front ends and web services, code on the mainframe host at the back end determines a large part of the in-house applications.
In 2018 we at Helvetia started a project to replace our existing modelling tool with MetaEdit+.
Original Development of a Domain-Specific Language and First Tool
MetaEdit+ would replace a tool that had been in use since the late 1990s. Back then, Helvetia wanted to establish a method based on the existing mainframe runtime environment that would support and facilitate the manual software development process.
The ideas and goals of the 1990s project were:
- to establish a method – a modelling language, tool, process and generators – that supported the entire development process with a single tool, from requirement analysis to implementation
- comprehensive understanding of technical requirements through different model views
- joint consideration of data and functions
- high transparency of technical processes
- one tool as the source for the complete project information for the development team
- consistency between the model and the implementation
- structuring and modularization of the applications in a 3-tier architecture
- recognition and use of reusable objects and sub-models
- acceleration and higher quality in application development
The tools available then were called CASE tools and many included the standard modelling language for data models, the Entity-Relationship Model. As that only covered a static view of data, the team chose a tool that also enabled them to develop their own object-based function modelling language, linking the elements from the data model with the functionality of the application.
Another custom language was also created. The business processes were specified in more concrete technical processes as sequences of dialogs that would take place on the mainframe host. These sequences and their details were depicted in diagrams and linked to the function model. The special feature of this language is that the technical elements from the proprietary mainframe environment were mapped directly to the language, thus creating consistency from design to programming.
To use the model information for implementation, we developed generators for each kind of model:
- The data model generates DDL statements which create and change the database tables.
- The function model generates COBOL "COPY" code files and complete data management modules for all common types of data access.
- The dialog process model generates the information that is used for control of dialogs on the mainframe host.
This allows an iterative approach to software development using prototyping without having to write a single line of code.
Modernisation of the Tool
Having used this method and tool successfully for more than 20 years, vendor support had ended and the tool could not be installed under Windows 10.
This situation made it necessary to find a new tool and a vendor that would enable us to continue using the method and to migrate all existing data to the new tool.
The most important requirements were:
- continue with the use of our own metamodels
- maintain the handling of reusable functions and sub-models
- provide different access rights for multi-user operation
- continue to use all existing generators
- migrate all existing diagrams and data
With MetaEdit+ and MetaCase we have found exactly that.
Getting used to the MetaEdit+ Workbench took relatively little time and it took only one to a few person days (depending on the complexity and the current documentation) for us to completely create each of the three metamodels.
MetaEdit+ automatically provides the modelling tool user interface based on the metamodel, so no separate coding or make/build process is required to create the finished tool. Defining the metamodel and testing the resulting tool can be done incrementally, easily and quickly.
The way we organize and handle objects to reuse them in other projects was provided by MetaCase using features already available in MetaEdit +. Using MetaEdit+ makes it even easier for us to manage the reusable objects.
Extensions in the access authorization concept were realized by MetaCase within a short time.
With decades of work behind our generators, we wanted to continue to use them with MetaEdit+ with as little change as possible. We only had to extend the interface, i.e. to include the data output from MetaEdit+, while the core of the generators remained unchanged.
Modifying only the generator interfaces made it possible to generate from both tools simultaneously. This was necessary because the data migration was to be carried out on a project-by-project basis in order to be able to find the best time for the individual project teams to switch to the new tool.
MetaCase developed the migration process for the extensive data migration and Helvetia checked and tested the results. To make sure that the migrated data was complete and correct the generators were also used again: The full project data was generated and compared completely automatically from both tools. If differences were found, either the data or the generation and test processes had to be corrected.
The good results from the test automation led to high confidence and trust in the migration process for the large production projects, and also served as proof of the project status at the migration date.
A total of 40 projects have been migrated: from small projects containing only about 1,000 objects to the largest projects, easily including up to 150,000 objects.
It is also worth mentioning that MetaCase found a way to migrate the diagrams with their entire layout to MetaEdit+. This increased user acceptance considerably, since the diagrams in MetaEdit+ looked exactly as the users knew them from the old tool.
The screenshot shows only a very small dialog process flow which is used for training purposes: the models of the real production applications can be much more complex.
By using the same attributes and field names of the existing metamodels, the user interface MetaEdit+ creates look very similar to the form layouts of the old tool. This makes it highly recognizable to our users and facilitates their familiarization with the new tool.
Thus, the tool training effort for the users was low, about half a day: they only had to learn the handling of the new tool, since the method remained unchanged.
The development of a model-driven approach in the 1990s was very far-sighted. Even in 2020, this approach is still on the leading edge of the "state of the art" in software development.
The tool modernization secures our previous investment in the method and ensures that the data and the process can be further used and developed in future years.
We have found that:
- Mainframe software development can be carried out using modern graphical tools.
- In MetaEdit+, custom metamodels can be created efficiently after only a short learning period.
- MetaEdit+ processes even very large projects with high performance and stability.
- The support of MetaCase throughout the whole time was excellent and very helpful.