Software Development

The main activity of the department is to specify and realize the embedded software based on customer requirements and system concepts.


Software Development

The main activity of the department is to specify and realize the embedded software based on customer requirements and system concepts.

What makes our work interesting?

Even though some of the activities of the department have different focuses, we work closely together as a team on a daily basis and everyone has the opportunity to help the other with their expertise.
The system is produced in large numbers (millions per year), therefore the hardware has to be designed as highly price-optimised. Consequently, we use software functions wherever it is possible in order to simplify the hardware; for instance, wherever it is possible, we replace sensors with an estimation algorithm.

This requires creative and innovative thinking, and so does the safe and robust delivery of the functions. Finding flexible and customisable solutions is an extremely interesting task. You know you have found that kind of solution when a new, unexpected requirement can be quickly and easily met without modifying the core architecture of the system. Another exciting task is to "animate" the software; i.e. witnessing how the functions come to live during integration when the operation of the software is being tested.

Our role within the organisation


Hardware, and Functional Safety Department. System Design informs us about systemic concepts and requirements, and we give feedback to them if a problem concerning these arises during the implementation process. E/E Hardware provides us with information necessary to create the drivers and estimators, and with the configuration parameters.

Documentation and implementation of the software is forwarded to the Testing Department, where the operation of the integrated software is tested. During our work we work closely together with the System Safety Department, where they define us the details resulting from the system concepts, help us evaluate the safety level of the software solutions proposed by us, and work together with us on the safety analysis of the product.

Main activities

We define the software requirements and design the architecture of the software based on customer requirements and system concepts. Flexibility and customisability are important when designing the architecture to ensure that our products are adapted to our customers' needs and to the operating hardware as smoothly as possible; it is also important to deliver the functions in a safe and robust way, which will then be able to fulfil their task not only under ideal circumstances, but also in case of errors.

We develop detailed design and implementation for the components, taking into account the properties of the microcontrollers used. Since we work with a safety-critical system, the knowledge of C language is necessary, but not sufficient in itself; our employees need to know what types of programming constructs can be safely used. We perform both the testing and the implementation of the components.

We set up and configure the actual software system based on the developed components using architectural template methods. This is a complex task as there are a lot of hardware and software configuration options to choose from to satisfy the customer requirements. Software integrators are the first ones who start up the system and witness how the software operates the hardware (i.e., whether the "motor turns”). If they detect a problem, they locate it using their knowledge of the system and their error detection skills to come up with ideas on how to solve the issue.

We ensure consistency across the delivered software and related documents and reports for future traceability. Queries and development of tools necessary to do that are part of this task.

Please publish modules in offcanvas position.