Clean Code for Embedded Systems and C
In embedded systems, the quality of code is crucial for long term reliability and efficiency. The Clean Code principles, as outlined in Robert C. Martin’s influential book Clean Code, are widely used in general software development and can significantly enhance embedded C development. This article explores how these principles can be applied to embedded C, drawing on extensive experience to improve code readability, reduce technical debt, and lower costs over the system’s lifetime. Whether you’re a developer or a manager, this guide offers practical insights into integrating Clean Code into your embedded systems projects.
Neue Perspektiven durch ein Architekturreview
Manchmal erreicht ein Software-Projekt einen Punkt, an dem die Weiterentwicklung fast zum Stillstand kommt. Features werden nur noch mühsam implementiert, und die Kosten für Änderungen explodieren. Genau an diesem Punkt stand unser Kunde, als er uns, Urs Fässler von iQiliO und Peter Gfader von Beyond Agility, mit einem Architektur-Review beauftragte. Ziel war es, den Zustand der Software objektiv zu bewerten und eine Empfehlung abzugeben: Soll die bestehende Software weiterentwickelt oder komplett neu geschrieben werden?
Embracing Obligations: Regulation as a Driver for Quality
As software touches every part of life, people expect higher standards for quality, security, and reliability. The Cyber Resilience Act (CRA) reflects this shift - a necessary response to past industry mistakes. Rather than resisting, we can use this regulation to improve our practices. Here’s why regulation is necessary, how we reached this point, and how we can use it to create better software.
Navigating the Cyber Resilience Act with Agility
The CRA mandates stringent cybersecurity requirements for digital products, ranging from vulnerability management and regular updates to security-by-design principles. Manufacturers are tasked with ensuring that their products remain secure throughout their lifecycle, providing ongoing updates, and managing vulnerabilities proactively. The agile development approach, characterized by iterative cycles, cross-functional collaboration, and continuous integration, is ideally suited to meet these requirements. Agile practices enable teams to quickly adapt to new regulatory demands, implement security measures efficiently, and deliver high-quality, secure software. This article outlines the key aspects of agile development that align with CRA compliance and demonstrates how organizations can leverage agility to meet their obligations under the CRA. For more information on how to transition your team to agile practices and ensure compliance with the CRA, feel free to reach out to me at urs.fassler@iqilio.ch.
Effective Quality in C++
In the ever-evolving landscape of software development, maintaining high-quality and reliable software is paramount. To achieve this, rigorous testing practices and robust development methodologies are essential. This article delves into various testing strategies and tools specific to C++, emphasizing the importance of automated regression tests, test coverage, compiler warnings, code formatting, static code analysis, sanitizers, and continuous integration (CI). By adopting these practices, teams can ensure their software remains reliable, maintainable, and bug-free. We offer comprehensive support to help teams implement these tools and practices effectively, enabling them to achieve optimal results.
Cyber Resilience Act overview
Check out the Cyber Resilience Act overview. It shows the most important aspects of the upcoming regulation.
Embedded Software Meetup ist zurück
Embedded Software Meetup Zürich ist zurück!
Nach längerer Pause des "Embedded GNU/Linux Developer Meetup" führen wir es als "Embedded Software Meetup" wieder durch. Es geht um:
-
Embedded Software Entwicklung
-
Embedded Linux
-
Zephyr
-
Qualität
-
Software Craftsmanship
und vieles mehr. Im Fokus steht der Austausch zwischen Entwicklern und anderen gleichgesinnten.
Den Anfang macht Urs Fässler mit seinem Erfahrungsbericht zu moderner Applikationsentwicklung für Embedded Linux.
Clean code für mehr Cyber-Sicherheit
Clean Code und Software Craftsmanship helfen, Embedded Systeme sicher zu machen (safety und security). Diese Botschaft hat uns Simon Künzli im aktuellen Kurs Security in Embedded Systems an der ZHAW School of Engineering vermittelt, und ich stimme absolut zu.
Es sind Methoden, Prinzipen und Praktiken welche ich seit bereits 10 Jahren anwende und sehr zu schätzen gelernt habe. Vielleicht tönt TDD, BDD, CI/CD, Review und was es alles gibt abschreckend. Persönlich gebe ich es nicht mehr her. Es gibt so viel Sicherheit das man das richtige entwickelt und die Qualität stimmt. Auch reduziert es die Bugs - dadurch ist der initial etwas höhere Aufwand nach kurzer Zeit amortisiert.
Yocto investigation with bitbake-getvar
Investigating Yocto issues can be challenging. Yocto employs Bitbake, which heavily relies on variables (lists) that are set, appended, prepended, and modified across several recipes. Other recipes reference these variables to make decisions and modify additional variables.
One particularly troublesome variable is DISTRO_FEATURES.
Numerous recipes manipulate this variable, and any change typically triggers a rebuild of most packages.
In our case a colleague was missing systemd within DISTRO_FEATURES, although it was present in my configuration.