Select Page

Quality and Safety - Expertise

Testing, quality and safety of embedded software

Software quality is unfortunately still too often reduced to the formula: "As long as it works!" But anyone with experience working with software that has evolved over years knows the unpleasant consequences of this one-sided view. Precisely because software can be quickly changed and expanded over a long period, its quality must be given special attention.

Expertise: Software quality is both the means and the goal of successful software development.

Security challenges for embedded systems

In today's interconnected world, embedded systems are ubiquitous – from automobiles and industrial controls to IoT devices. But with increasing connectivity, security risks also rise. Cyberattacks, data leaks, and insecure implementations can have serious consequences. So how can security risks be minimized and robust systems developed? The answer lies in solid security foundations.

Article: Security challenges for embedded systems

Simple and clever: wogtest is the innovative MicroConsult solution for embedded software testing.

Fields marked with make it easier for developers to integrate Test-Driven Development into embedded projects – without the complexity of Google Test, without time-consuming porting, and free to download.

Article: wogtest is the innovative MicroConsult solution for embedded software testing

Test ended well, all is well.

Black-box tests using white-box metrics do not result in gray-box tests. However, each of the three fulfills an important function in defining the end of the test and minimizing the number of necessary software tests.

Post: Test ended well, all is well.

Design for test and design for safety – Tailor-made software architecture

Our everyday lives are now seamlessly integrated with interconnected devices and systems. Whether using a smartphone to find the fastest route, reading the newspaper on a tablet while relaxing on the sofa, or controlling smart heating via a smartphone app, these systems make our lives more comfortable. However, this increased comfort also necessitates stricter security and safety requirements, which the developers of such systems must meet. This is especially true for autonomous driving – where sound safety concepts are of paramount importance.

Article: Design for Test and Design for Safety

Trends in microelectronics: New perspectives and requirements for mobile devices

Every year, new and even more powerful microcontroller architectures are announced. This paves the way for increasingly convenient and even autonomous transportation devices for our everyday lives. Besides the increased computing power – MIPS per watt – the enormous demands on safety and security are one of the biggest challenges.

Article: Trends in microelectronics

Software development reimagined

The rapid growth of the Internet of Things, the 5G network, artificial intelligence and cloud or edge computing has a major impact on the development of embedded software.

Part 1: How multicore, safety & security aspects are changing today's software projects

Part 2: Avoiding typical errors with comprehensive software requirements

Part 3: Software Architecture

A common language for cybersecurity

What goals, requirements, and guidelines serve as the basis for a shared understanding of the cybersecurity perspective in the development of road vehicles? How are the processes defined and the risks managed in accordance with ISO 31000?

Article: A common language for cybersecurity

TDD – Test-Driven Development of Embedded Systems

Test-Driven Development (TDD) is the implementation of the test-first approach in component testing and involves writing unit test cases before the actual implementation. Adherence to just three rules and a few tricks for dealing with the target hardware bottleneck makes TDD possible even for embedded systems.

Article: Test-Driven Development of Embedded Systems

Test-First = Test first, think later? – Test-Driven Development of Embedded Systems

Many agile development frameworks emphasize the test-first approach, which, regardless of the test level, is based on starting with testing as the first step towards the actual implementation of functionality: testing at a point when one is still focused on the "what" and the "how" is still pending. Test-Driven Development (TDD) is the implementation of the test-first approach in component testing and means writing unit test cases before the actual implementation. Adherence to just three rules and a few tricks for dealing with the target hardware bottleneck also make TDD possible for embedded systems.

Presentation slides: Test-First = Test first, think later (ESE 2019, PDF)

Conference proceedings script: Test-First = Test first, think later (ESE 2019, PDF)

More design flexibility through Secure Exception Priority Boosting

The Armv8-M architecture brings fundamental security to Cortex-M devices, thus enabling greater protection for IoT systems. But how does the “Secure Exception Priority Boosting” feature perform in practice?

Article: More design flexibility through Secure Exception Priority Boosting

Embedded Software Redesign Guide

Sometimes simply extending old code isn't enough: a complete overhaul is needed. This series of articles describes the process of embedded software redesign and explains the concepts of reverse engineering, refactoring, and reengineering.

Article: Embedded Software Redesign Guide

Interview: Clean Code and the ideal workflow for an embedded project

In object-oriented software architecture and design, as well as in object-oriented programming (OOP) as a structured software development methodology, similar tasks and problems repeatedly arise. The use of reusable design patterns (proven solution templates) can prevent repetitive software programming efforts.

Article: Clean Code and the ideal workflow for an embedded project

Secure software from the start – developers under time pressure

Just as dragons plagued humans and threatened their lives in ancient myths, today technically unsafe systems pose a source of danger. The crucial difference: while dragons belong to the realm of fables, technical systems as potential sources of danger are part of our everyday lives.

Article: Taming the Dragon – Secure Software from the Start

Applying Design Patterns Correctly in Practice

Design patterns are solutions for frequently recurring tasks in object-oriented software design. In this sense, they play a similar role to the multiplication tables, which one learns by heart to avoid having to recalculate the results of frequently occurring arithmetic problems every time.

Article: How to correctly apply design patterns in practice

Secure IoT smart grids through modular hardware security

In a highly interconnected world, it is advisable to effectively protect applications against cyberattacks. This requires optimal encryption of data and communication channels. However, the cryptographic algorithms used in software do not always reliably protect devices directly exposed to attacks. A turnkey solution offers a potential way to better protect information.

Article: Secure IoT smart grids through modular hardware security

Save development time with design patterns

In object-oriented software architecture and design, as well as in object-oriented programming (OOP) as a structured software development methodology, similar tasks and problems repeatedly arise. The use of reusable design patterns (proven solution templates) can prevent repetitive software programming efforts.

Article: Saving development time with design patterns

Quality requirements for embedded software

Capturing and managing requirements is a key to project success. Embedded software functionality is easier to describe in requirements than quality attributes. However, quality attributes cannot simply be "tested in" at the end. The more abstract they are, the more complex and time-consuming they are to define. What challenges does this pose for a project?

Article: Quality Requirements Part 1 – Requirements and Myths

Article: Quality Requirements Part 2 – The Recording Method

Article: Quality Requirements Part 3 – A Data Collection Example

Programming guidelines – curse or blessing?

Lectures, articles, and books constantly emphasize that code quality is a crucial factor in a project's success. Therefore, there are ongoing attempts to introduce regulations that improve code quality. However, the code delivered by many developers is anything but elegant. One approach to ensuring code quality is the use of programming guidelines.

Article: Programming guidelines – curse or blessing?

Quality requirements for embedded software: The art of watertight quality requirements

Capturing and managing requirements is a key to project success. Embedded software functionality is easier to describe in requirements than quality attributes. However, quality attributes cannot simply be "tested in" at the end. The more abstract they are, the more complex and time-consuming they are to define. What challenges does this pose for a project?

Presentation: Quality requirements for embedded software, ESE 2018 (PDF)

Development processes as the basis of modern software development

In professional software engineering, the development and process steps prior to software implementation are essential. Terms like software analysis and software design, or high-level software design and detailed software design from development processes (for example, the V-Model XT or the industry-specific V-Model Automotive), represent precisely this.

Article: Development processes as the basis of modern software development

IoT security: "The biggest risk is the human element"

The Internet of Things (IoT) is multiplying the risks of hacking attacks, as every network-connected device is a potential entry point. Peter Siwon, Business Development Manager at MicroConsult, and Michael Schnelle, Consultant at Mixed Mode, describe the biggest risks and explain protection strategies in this interview.

Article: Security in the IoT

Requirements engineering and management

Capturing and managing requirements is a key to successful projects. Whether in a traditional or agile process environment, professional requirements engineering and management for embedded and real-time systems shortens your project timelines and saves on development and maintenance costs. Take on this challenge!

Article: Requirements Engineering and Management

Functional safety: Mitigating systematic errors through structure and processes

A holistic approach and a thorough understanding of the details are essential when it comes to creating functionally safe systems. Software integrity can be achieved through structured and targeted methods and techniques.

Article: Functional safety through structure and processes

Safety concepts for Aurix microcontrollers

Software and hardware developers appreciate the Safety Management Unit of the Aurix microcontrollers as an independent unit for error handling.

Article: Safety concepts for Aurix

Warning signs of impending software erosion and what you can do about it

Successful embedded software is usually developed over a long period. During this process, relationships may occasionally be introduced into the code that don't belong there. Over time, the software deviates increasingly from the planned architecture – software erosion is well underway.

Article: Indications of impending software erosion

Secure Design Patterns

Adding security to existing embedded systems is not only costly but also methodologically flawed. Instead, security should be an integral part of the development process. The only question is which methods and concepts should be used to achieve security. Secure Design Patterns for software aim to demonstrate widely accepted and relevant solutions.

Presentation – Secure Design Patterns, ESE Congress 2017 (PDF)

Safety & Security: Relying on known and proven methods

The operational reliability of software-intensive embedded systems is closely linked to protection against unauthorized access or targeted attacks. The necessary measures pose significant challenges for both software and hardware developers.

Article: Safety & Security Methods

Safety and security in multicore systems: How to successfully implement them

The demands placed on safety-relevant control systems are constantly increasing. Multicore architectures are best suited to handle these tasks and are therefore being offered and used more frequently.

Article: Safety and Security in Multicore Systems

The Internet of Things – a breeding ground for new opportunities and risks

Many technological success stories are based on the evolutionary principle of emergent properties. This states that by networking units into a system, this system generates new properties and capabilities that did not previously exist and were possibly unpredictable.

Technical knowledge: The Internet of Things (IoT)

Trend Guide „Embedded Safety & Security“

Safety and security describe different properties of embedded software systems. However, a closer look reveals how closely the operational reliability of software-intensive embedded systems is linked to protection against unauthorized access or targeted attacks. The necessary measures pose significant challenges for both software and hardware developers.

Reading sample: Trend Guide Embedded Safety & Security

Quality and safety – Training & Coaching:

Quality and safety – Training & Coaching

MicroConsult Newsletter

With the MicroConsult newsletter, you'll stay on the pulse of the embedded world. Look forward to proven practical knowledge, real professional tips, and current events – directly from our experts for your project success.

Subscribe now!

Published by

MicroConsult Academy

MicroConsult Academy