Embedded re-usability

A platform approach with generators


Generator-based approaches support the preparation and rollout of software kits. Powerful tools enable high quality, straightforward application of the components, and a high level of acceptance.

Launching a good ECU product is the first step to success. But to really take off, a product platform needs to be created. This step enables a targeted investment in a base product that can then be implemented at reduced cost and with lower risks in projects for various customers.

Whether a re-usable platform element approach is planned at the start of development does not play a role. This may only emerge in the course of the pilot project or during further discussions with customers. The crucial point is that the realizable synergy effects are greater the earlier a decision in favor of a re-use approach is made.

PiNTeam_blog_test_01
Figure 1: The pilot project becomes a platform

A platform instead of recurring projects

A modern ECU software architecture skillfully combines COTS products such as a classic AUTOSAR stack, product-specific drivers and applications, and integration components of other development partners. The better the re-usable components are separated, the easier they will be to use in subsequent projects.

Efficiently implementing subsequent customer projects by using such a kit becomes effortless. The benefits accrue throughout the entire A-SPICE cycle. From requirements management to testing, customer projects profit from the work that was already done.

PiNTeam_blog_test_02
Figure 2: Re-usable components

Delivering packages instead of single components

 

As long as discrete software modules are used exclusively within one project, their individual design is only important in this limited context. File and code structures, configuration rules, and documentation follow the project rules in this case. With comprehensive platform concepts however, the goal must be to implement each element of the kit to be as self-contained as possible, with a formal structure according to a recurring pattern. Benefits include simplified integration in projects and good maintainability in the course of the project.


 
PiNTeam_blog_test_03
Figure 3: Platform package development cycle

 

Synergy effects are not limited to the mere re-use of previously created modules. Maintenance during the project term is also highly efficient with the help of a suitable QM concept. Relevant information about the re-use packages from the projects is supplied to platform development. This may include malfunctions, integration problems, incomplete documentation, or functional enhancements. The resulting updates or upgrades of the re-use packages can then be transferred to the relevant projects quickly and easily, without the burden of long integration cycles or manual carry-overs.

How can KYOTO help?

The KYOTO approach supports users in the creation of re-usable packages. Such packages are called “GUnits” (generator units) in this context. A GUnit encompasses all components that are necessary for its use in projects:

Key content:

  • Parameter definition
    Users of the package must be able to integrate it into the specific project purposefully and efficiently. The parameter definition describes all configuration options for adapting the package to the specific project requirements.
  • Validation rules
    The configuration options described in the parameter definition may have complex dependencies. Validation rules describe these dependencies and inform the user in case of problems.
  • Templates
    These descriptions contain the mapping to the source code. The KYOTO generator combines the templates with the previously stored configuration parameters during generation, thereby creating the desired result.
  • Meta-information
    A package also contains meta-information that is essential for handling. This includes version information, license data, and links to other packages. KYOTO subsequently uses this information to determine whether all required packages are available and exist in the correct, compatible versions.

Development of the GUnits with the Designer

 

Today’s software developers expect a suitable development environment that includes intelligent editors, debuggers, and automation tools. This facilitates development and keeps productivity and motivation high. KYOTO therefore provides a comprehensive development environment for GUnits with the Designer. It provides high-performance editors for all file formats, comprehensive documentation, and complete debugging functions for all active components of a GUnit.


 
PiNTeam_blog_test_05
Figure 4: Kyoto Designer and Configurator overview

GUnit testing

Users of the GUnits should be able to use them in projects without difficulty. Quality is therefore essential. Since the packages are re-used in multiple projects, the resulting leverage also means that the quality of user projects can be positively or negatively influenced to a great extent. This makes the quality of the GUnits crucial. Thus the KYOTO Designer provides test environments for all active components of the GUnits. Templates, validation rules, and also algorithms can be verified through the structured creation of test scenarios and test cases. Standardized test reports are quick and easy to integrate into subsequent processes and KPI dashboards.

Delivery

A package alone does not make a kit. It is created by making a collection of packages available together. The KYOTO Designer’s release cycle allows collections of the developed packages to be made available in any combination as an update site (see the container in Figure 4). These containers are the platform’s delivery artifact and the interface to the user.

The containers are delivered via central artifact management platforms. Here the complete container is available in a standardized form, visible for all projects. A straightforward, direct, and reproducible rollout is assured. All delivered versions are available in the artifact repositories, so that regressive access to older versions is always given.


Application of GUnits with the Configurator

The developers and integrators in the customer project deal with the transfer of different deliveries to the project context. Accordingly, the KYOTO Configurator provides an efficient tool with a clear layout to integrate elements of the kit into the project quickly and easily. The desired containers are transferred directly from the artifact repository to the configurator environment using the update mechanism.

Configuration of the prepared GUnits

Now the user can focus on using the prepared elements of the kit according to the purpose. Here the KYOTO Configurator provides support with the stored parameter definition, easy to use editors, and processing tools. Live validation based on the validation rules stored in the GUnit is available, providing the user with direct feedback during configuration. A comment function is provided to record useful information directly on the configuration parameters. This not only facilitates analysis and review, but can be used as an added level for change tracking as well.


Additional re-usable packages

Two additional package types are available aside from the GUnits that can be generated.

IUnits

Framework processes often provide information pertaining to the configuration of certain GUnits. A meaningful way to transfer information of any kind to configuration data is needed here.

That is where IUnits come in. They contain tailor-made import logic that can be perfectly adapted to the preliminary products during development in the Designer. Like other platform elements, these IUnits are packaged in the kit container. This makes them readily and quickly available to integrators in projects. The import logic is developed once in the KYOTO Designer and then re-used in all matching projects. Here the format of the available advance information plays a minor role – all common formats are supported.

EUnits

A tool rarely stands on its own! Integrating KYOTO into tool chains is therefore essential for ease of use during integration. EUnits make it possible to create tailor-made external tool links. They support the control of other tools and integration of the data flow (input and output data) with the KYOTO Configurator workspace. External generators, analysis tools, and reporting tools can be easily integrated.


 
PiNTeam_blog_test_06
Figure 5: KYOTO package types

KYOTO in safety projects

Many generator-based approaches quickly lose their advantages in the context of safety-related projects. When trust in the generator is lacking, the correctness of generated artifacts has to be checked manually. This takes considerably more effort and valuable time. A qualification kit is therefore available for the KYOTO generator, providing automated qualification according to ISO26262 for applications up to ASIL-D as needed.

Info box

PiNTeam_blog_test_07

Read related articles


30 May 2023
Embedded re-usability
Powerful tools enable high quality, straightforward application of the components, and a high level of acceptance.