27 May 2022
About the usefulness of Normalized Systems and the importance of a meta-circular development strategy
As the SAFIR-MED project is a collaborative innovation and an innovative collaboration with many partners, the success of the project is heavily relying on the correct implementation and the flawless integration of several IT-systems. The use of Normalized Systems (NS) Theory and adhering NS tooling has been introduced from the start of the project in order to handle the challenges that arise when coping with continuous change and innovation. In an innovative setting and in a very competitive environment, it is important to put evolvability requirements at the center of the design.
Obtaining agility at the IT level is challenging and consistently ranked as one of the top 3 organizational IT management concerns. However, the amount of information systems research directed towards the creation of evolvable systems is marginal: most research is exclusively directed towards the initial phases of the IS development life cycle whereas the majority of the costs for building and maintaining systems is situated in the later phases.
NS Theory attempts to create highly evolvable software systems and artefacts by proposing a set of theorems which are formally proven to be necessary conditions to obtain evolvability. The theory exhibits several appealing and unique characteristics for tackling the agility challenge: (1) it is grounded in concepts from systems theory, (2) the derived theorems provide specific programming guidance while unifying multiple software design best practices, and (3)it has proven its feasibility in practice by multiple implementations for different types of systems in industry.
In order to comply consistently to the NS theorems and to do so in an economically viable way, NSX, an official spin-off of the University of Antwerp (UA), has built and commercialized tooling. This toolset consists of a fully equipped development environment (the ‘NS Prime Radiant’) and a set of NS compliant code generators (the ‘NS Expanders’). The automated generation of code is a widely adopted technique to improve the productivity of computer programming. NS, however, aims to create software systems exhibiting a proven degree of evolvability and does not focus solely on productivity.
A software implementation, consider the case of the Helicus Command and Control system (C2C), is constructed as a NS skeleton, based on automatic code generation, taking charge of the many crosscutting concerns. The skeleton is always made specific with some ‘craftings’ (about 5% of the final application), that can be managed separately, and thus without ripple effects from the skeleton. The skeleton of the application (about 95% of the application) reflects proven evolvability according to NS Theory and can therefore be continuously regenerated along several dimensions of change, both functional and technical. This systematic rejuvenation of the application also implies the structured harvesting and re-injecting of the beforementioned craftings.
The C2C, being a NS compliant application and integration platform, is highly evolvable and very predictable under change. Some of the changes are functional and technical changes within the integrated versions and variants of the technologies used by the partners and stakeholders of the SAFIR-MED project. Some of the relevant changes are the(ir) crosscutting concerns. Both types of changes can and will require changes in the NS Expanders themselves. That is why these tools, being code themselves, also need to be evolvable according to the NS Theory. This calls for the establishment of meta-circular characteristics and a meta-circular approach of the NS tooling. In more comprehensive terms: the NS Expanders can regenerate and rejuvenate themselves.
Essentially, code generation models or meta-models — and even all collections of configuration parameters — consist of various data entities with attributes and relationships. As the NS element definitions are quite straightforward, the same is valid for its meta-models. Moreover, one of the NS elements, i.e., the data element, is basically a data entity with attributes. This means that the NSmeta-models, being d ata entities with attributes, can be expressed as regular models. For instance, in the same way ’Invoice’ and ’Order’ can be specified as NS data elements with attributes and relationships in an information system model, the NS ’data element’ and ’task element’ of the NS meta-model can be defined as NS data elements with attributes and relationships, just like any other NS model. The NS model representation, and the corresponding code generation, has been made meta-circular. This feature is crucial to improve the productivity of metaprogramming, it enables any willing and able programmer to adapt and/or build NS expander bundles and therefore further reduces dependency.
As a university spin-off, NSX wants to insert more science in information technology and aims to break the software barriers in order to obtain more business agility. Being able to cope with changes, is absolutely pivotal to control today’s rising maintenance costs. It’s therefore also crucial for business agility, as in this case the UAM ecosystem, needs to rapidly scale up new innovative developments and to respond quickly to changing business and regulatory needs. Software development tools are striving to increase productivity, similar to the industrialization in
other sectors. But industrial manufacturing is not only about short-term productivity, it is also about transparency, traceability, and maintenance.
The NS expanders are not just code-generators that increase development productivity. They consist of highly structured bundles of individual expanders that are simple by design and that can be rejuvenated in a predictable way by any skilled and passionate developer. This avoids the increase in complexity over time of both generated code and code generators, leading to transparency and traceability, and avoiding runaway maintenance costs and/or counterproductive dependencies. Information systems like the Helicus C2C, reside in IT landscapes, and need to integrate with countless other applications and services, both within and outside the enterprise. While integration issues are notorious in IT projects, NS software structures have been conceived and built from the
start to enable seamless integration. The NS skeletons exhibit embedded support for integrating various types of platforms and services, devices and protocols, and CI/CD pipelines across different organizations.
Written by the NSX C2C team