4 steps to not screw up Jenkins

Introduction During the last six years I have worked with many customers who used Jenkins as their central automation server for everything remotely related to software. In my previous role at BTC I spent much time setting up the complex Jenkins setup for BTC internal use. This meant covering multiple programming languages (Java, Matlab, C/C++, […]

Moving Automotive Embedded Software Development to the Cloud

I will spare you from a lengthy monolog on why a CI Pipeline that requires manually configured environments is fairly limited when it comes to scaling it out to other projects, other teams. I assume that you have felt the pain yourselves. There are different aspects to this topic including integrating with a cloud provider […]

Simulink Interface Concepts

Simulink Interface Concepts

In Model-based Development and Embedded Software Engineering, the growing complexity requires concepts like modularization, ease of maintenance, or module reusability. In this context it is crucial to understand the interface in Simulink, which is defined by the data flow into and out of a subsystem. This blog article gives an overview about the different interfaces […]

Automatic Test of AUTOSAR Code Replacement Library Routines at Ford Motor Company

The Journey – from idea to solution It seems like every day more and more software teams are developing software in a model-based way, using Simulink models and auto-generated c-code… and Ford is no different. Many low-level math and interpolation routines have been developed by the central software team as libraries that can be used […]

AUTOSAR – What is the Best Approach to Handle Reusable Code?

AUTOSAR reusable code

Component reuse is a common use case in any type of software and this is particularly true in automotive applications. Consider the equipment in the cars such as wheels, seats, doors, lights, clutches (e.g., in a dual-clutch transmission), and so on. They are controlled by software and as they exist by pairs, it makes sense […]

Interview: How does a Model Checker work?

Model Checking is part of the Formal Methods which address formal specification, formal development, formal verification and theorem provers. Model Checking belongs to the formal verification and provides a complete mathematical proof to verify your system-under-test. BTC EmbeddedPlatform uses the model checking technology for structural test data generation to achieve full code coverage, for formal […]

3 Reasons to Consider Using a Floating-Point Model to Generate Fixed-Point Code

Despite the availability of fast processors with dedicated floating-point support, we still see many projects generating fixed-point code from Simulink. The reason for this is not only the resource usage, but also the more transparent and predictable mathematical behavior. You can read more about this in our previous articles “What you should know about fixed-point” […]

ISO 26262 Functional Safety Requirement Types

With the aim to provide technical coherence, reliability and safety, requirements engineering is the process for defining, documenting and managing requirements. In the 90s, the IEEE provided a general definition of requirements engineering with five phases: elicitation, analysis, specification, verification and management. Within each industry, requirements engineering has been adapted to the specific domain of […]

Why and How to Improve Requirements

“How do you manage your requirements?” We ask this question quite often in customer meetings. The people we meet are usually developers and testers in the automotive industry. In most cases the answers range between “We do not have any requirements. The model represents them.” and “We use a requirements management system; however, the requirements […]

What You Should Know About Fixed-Point Code

Fixed-point Code - What you should know - Blog Article

Vocabulary: Floating-point code? – Fixed-point code? – Scaling? – Resolution? – LSB? Basically, we can distinguish between two kinds of datatypes in embedded code: Floating-point and Integer. An integer variable basically represents whole numbers and the value range is limited by the number of bits. For example, an (unsigned) 8bit Integer can represent 2^8=256 different values, by default […]