MicroConsult offers services related to the topics that are discussed at ESE Kongress: Training, seminars, and coaching. to.
Benefit from the experience of our embedded software engineering specialists and get in touch with us. We'd be happy to advise you.
MicroConsult training & coaching topics
ESE Congress 2018 Contributions, Part 1 – Topics:
- Architecture & Design
- Automotive
- Real-time
- implementation
- Internet of Things
- Machine Learning
- management
- Modeling
- Contributions to ESE 2018, Part 2
- Homepage ESE Contributions
Lecture series: Architecture & Design
Is architectural development even relevant anymore?
And if so, how do we do it correctly today?
Jens Liebehenschel, Frankfurt University of Applied Sciences (ESE Congress 2018)
This paper begins with a brief explanation of terms. The benefits of early architectural development are then presented. After introducing a field-tested and internally consistent basic set of (tool-independent) architectural views for system and software architectures for embedded systems, the paper concludes with tips for architectural development.
Software Erosion: A Critical Survey on the Scientific State of the Art
And if so, how do we do it correctly today?
Prof. Dr. Rainer Koschke, Dr. Jan Harder, Dr. Saman Bazrafshan, University of Bremen (ESE Congress 2018)
Software erosion is the slow decay of the inner quality of software visible in a proliferation of bad smells. Bad smells (also known as code smells or technical debt) lead to an increasing difficulty of comprehension, test, and modification of software. Examples of Bad Smells include duplicated code, unnecessarily complex, long, or even dead code. At the architectural level, Bad Smells show as cyclic dependencies, high coupling and low cohesion of components as well as violations of architectural specifications. This article summarizes the scientific body of knowledge about software erosion – its different forms, properties, and impact – and states open scientific questions.
„"View"-based software architecture documentation
Document effectively using different views
Matthias Künzi, visuellklar (ESE Congress 2018)
Documenting a software architecture effectively means recording the relevant information of a software system in a way that allows it to be retrieved when needed. But what exactly constitutes this relevant information, and how can it be recorded in a way that balances effort and benefit? This article addresses precisely this topic.
Automatic alignment of architecture and implementation
Honestly: Who actually enjoys manual reviews?
Ralph Dittmar, TR-Electronic GmbH, Thomas Eisenbarth, Axivion GmbH (ESE Congress 2018)
The architecture, as the global structure of our software, is the foundation of our daily work. Therefore, it's essential that we engage with our architecture and not work against it: planning, testing, and evaluation are best achieved with the architecture in mind. However, developers traditionally work very meticulously on their software and thus easily lose sight of the bigger picture. That's why we at TR-Electronic have established an architecture review process, which saves us the effort of manual and often unpopular reviews and allows the architecture to become a living, breathing part of our daily work. We would like to share our experience and the results we've achieved, because adhering to the architecture has become second nature to us in our development process.
Continuous Systems Integration with Virtual Spaces
Architecting for Continuous Software Engineering
Pablo Oliveira Antonino, Thomas Kuhn, Benno Kallweit, Fraunhofer IESE (ESE Congress 2018)
Continuous software engineering aims at orchestrating engineering knowledge from various disciplines in order to deal with the rapid changes within the ecosystems of which software-based systems are a part. The literature claims that one means for ensuring these prompt responses is to incorporate virtual prototypes of the system into the development process as early as possible, such that requirements and architecture decisions are verified early and continuously by means of simulations. Despite the maturity of practices for designing and assessing architectures by means of simulations, there is still a lack of platforms that would enable both the design and simulation of architecture drivers and solutions in a continuous engineering context. In this paper we therefore present the Fraunhofer Virtual Space for Continuous Engineering, which is a web-based platform that enables (i) model- and text-based architecture specification (drivers and design), (ii) continuous simulation of architectural solutions against architecture drivers, and (iii) continuous analysis of the integration and consistency of engineering artifacts.
How do you implement networked, safety-critical systems?
A systematic approach using the example of a drive control system
Markus Maier, Assystem Germany (ESE Congress 2018)
Whether analyzing process data or simply implementing software updates efficiently in the field: New business models increasingly require opening up once-isolated, safety-critical control systems. Assystem demonstrates a systematic approach to developing safety-related networked systems using the example of a drive control system, while adhering to the relevant security and safety standards for the application.
Using software archaeology on the way to A-SPiCE® Level 3
Handling legacy software
Kosmas Kopmeier, Christian Steinmann, Synspace Group (ESE Congress 2018)
Most companies' processes describe the development workflow of a product or software starting from scratch. However, there are often projects where the prototype or nearly fully functional code has existed for a long time, sometimes for years. This code, however, was not developed according to the structured and documented processes required for a production project. We refer to this case as software archaeology. The standard procedure of first documenting requirements and then creating an architectural design before writing it down into code doesn't work because the code, for example, doesn't conform to the new, elegant layered model developed by the new software architect.
Lecture series: Automotive
Automotive Software: Verticalization versus Horizontalization
The (r)evolution of automotive software is progressing.
Dr.-Ing. Detlef Zerfowski, ETAS GmbH (ESE Congress 2018)
The article „(R)Evolution of Automotive Software Architectures: How New Software Technologies Are Changing the Automotive Industry“ [2], presented at the ESE Congress 2017, reported on the triggers of the revolutionary changes in the automotive software industry. The trends described in the article have been confirmed in the past year. The revolution in the automotive software industry continues to progress.
Staying safe in a manipulated environment
A question of safety or security – or both?
Stefan Kriso, Jürgen Klarmann, Claudia Loderhose, Franziska Wiemer, Carsten Gebauer, Simon Burton, Robert Bosch GmbH; Markus Ihle, ETAS GmbH (ESE Congress 2018)
For safe automated movement in road traffic, environmental monitoring by vehicle sensors is essential. A specific class of hazards is currently not adequately addressed – "environmental hacks," meaning manipulation of the environment. For example, a stop sign must be reliably recognized. A relatively minor manipulation of a traffic sign, not necessarily perceptible to the human eye, can lead to misclassification, which in turn can endanger people. Therefore, the system must be robust against such manipulations. Similar effects can also occur due to dirt or grime on the traffic sign. This must also be considered when assessing the safety of the nominal function. The question is how to address the issue of "environmental hacks," as it affects both security (manipulation) and safety (impact). This article uses examples to demonstrate how this question can be answered.
Drug chain analysis for AUTOSAR adaptive/classic mixtures
You too are part of a chain of effects!
Olaf Schmidt, Dr. Ralf Münzenberger, Philip Rehkop, INCHRON GmbH; Armin Stingl, iSYSTEM GmbH; Michael Reiß, Elektrobit GmbH (ESE Congress 2018)
Highly automated and autonomous driving requires significant computing power, necessitating the integration of high-performance controllers based on the AUTOSAR Adaptive Platform with electronic control units (ECUs) based on the AUTOSAR Classic Platform. From the outset, it is crucial to design and test end-to-end functional chains spanning all ECUs within the project. This paper comprehensively demonstrates the synergy between AUTOSAR Classic and Adaptive Platforms, static and dynamic architectures, and simulation and measurement on the target system. It is a collaborative effort between Elektrobit, iSYSTEM, and INCHRON.
More posts to follow.
Lecture series: Real time
Practical tips and tricks for runtime optimization
Optimization approaches at the RTOS/code level; single/multicore
Peter Gliwa, GLIWA GmbH embedded systems (ESE Congress 2018)
The resource "computing time" often becomes scarce during the development of many projects. The following section will highlight some practical approaches for optimizing ECU software with regard to runtime in such situations. Furthermore, measures will be discussed to prevent runtime problems early on in the design, configuration, and implementation phases.
The vector unit – your friend and helper
More performance at no cost?
Dr. Andreas Ehmanns, MBDA Deutschland GmbH (ESE Congress 2018)
Vector units have been standard in common processor families for many years, yet they are often overlooked by software developers, even in the embedded sector. Especially with ARM processors, development in this area has progressed significantly in recent years, opening up new performance possibilities for (embedded) developers. Making use of these very powerful units and deciding when their use offers tangible advantages often seems much more difficult than it actually is.
What will become of my code?
Finally, a sound way to evaluate software performance
Daniel Penning, embeff GmbH (ESE Congress 2018)
Software performance plays a crucial role in virtually every embedded project. Faster code leads to improved response times and higher system throughput. A specified task can thus potentially be accomplished with less power and a correspondingly smaller microcontroller. Energy consumption decreases, resulting in longer operating times or a smaller battery capacity, especially in battery-powered systems. These effects ultimately lead to more cost-effective hardware.
Real-time capability of container solutions using Docker as an example
Performance analysis of the real-time capabilities of Linux-based container solutions on ARM
Michael Schnelle, Mixed Mode (ESE Congress 2018)
A real-time system is generally defined as a system that must react to an event within a finite and predictable timeframe. Such systems therefore place not only logical but also temporal demands on the outcome. Real-time does not necessarily mean rapid action, but rather adherence to the set time constraints and deterministic behavior. Real-time systems are thus divided into two categories: soft and hard real-time systems.
Safety in rapidly changing systems
Practical application of formal methods
Christine Jakobs, Matthias Werner; TU Chemnitz (ESE Congress 2018)
The traditional development process for software in the field of embedded real-time systems assumes a static system with fixed components. Market demand is driving a need for greater dynamism. This increases complexity and makes it more important to ensure the preservation of safety-critical properties through rigorous modeling and analysis.
Logical Execution Time in the Automotive Environment
Introduction and Application
Martin Alfranseder, Stefan Kuntz, Martin Kardos, Ralph Mader; Continental Automotive GmbH (ESE Congress 2018)
Within the next few years, EE architecture in automotive systems will change significantly. Domain controller platforms are introduced that combine different kinds of microcontrollers equipped with several cores and replace ECUs that are used nowadays. System topologies change from simple networks to hierarchical networks. Furthermore, features like automated and autonomous driving lead to the fact that functions, which were formerly decoupled from each other, get more and more tightly connected and distributed. In addition, there are still parts of software that are only capable of running on a single core and shall be enabled for multicore based systems. Such functions and complex chains of effects demand stronger timing requirements that are getting more and more difficult to handle. Thus, new methods like Logical Execution Time (LET) are required to ensure all these aspects. This paper briefly describes the concept of LET and presents an overview of different implementations in practical Powertrain applications. Finally, the current status of introducing LET in the AUTOSAR standard is given.
Lecture series: Implementation
10 small things that make C++ easier
Maintainable code through the use of modern C++ features
Dominik Berner, bbv Software Services (ESE Congress 2018)
The new standards have significantly modernized the C++ programming language and introduced some entirely new programming paradigms. The major changes, such as variadic templates, auto, move semantics, lambda expressions, and others, have generated much discussion and are therefore widely known. In addition to the language features, the standard library has also undergone a considerable expansion, and many concepts from libraries like boost have been standardized. Besides these very noticeable (and sometimes controversial) features, there are a number of small but significant language extensions that are often less well-known or overlooked.
A Guide through the Jungle of Security Coding Standards
Software Security is Becoming Increasingly Important
Michal Rozenau, Parasoft (ESE Congress 2018)
Searching for security-focused coding standards, you find a variety of sources – including CERT Coding Standards, OWASP, CWE, and multiple various recommendations and best practices. Additionally, there are many domain-specific standards, including MISRA, AUTOSAR, and a whole family of IEC 61508-based standards. It is a challenge to deal with this amount of information and determine the set of coding standards that should be applied to your specific project. And it is an even bigger challenge to do it in the middle of the SDLC, when the already-existing software needs to be suddenly tuned to comply to such standard.
C++: Type-safe
Find compile-time errors and reduce typos
Andreas Fertig (ESE Congress 2018)
Templates have existed in C++ for some time. With the C++11 standard update, they became even better. Now, variadic template arguments are available. Some argue that this is the most important new feature in C++11. Templates are a great way to let the compiler generate the code for you. Because templates are evaluated at compile time, they are also perfect for early error detection. You can write more robust code with them. Templates allow you to perform calculations at compile time. Together with constexpr, they are a very powerful tool that everyone should have in their toolkit.
Fixed-point arithmetic – easier than you think
Use in custom algorithms and libraries
Ferdinand Englberger, University of the German Federal Armed Forces Munich (ESE Congress 2018)
Although more and more microcontrollers have floating-point arithmetic units, fixed-point arithmetic is still used in many libraries, for example, for digital signal processing, neural networks, or control algorithms. The processors' instruction sets have extensions for handling fixed-point numbers and, with SIMD instructions, enable their efficient processing. This course explains the fundamentals of fixed-point arithmetic, providing the necessary understanding to effectively use this arithmetic in custom algorithms and library functions.
Modern compiler optimizations
Old and new tricks for the smallest and fastest code
André Schmitz, Green Hills Software (ESE Congress 2018)
Compiler optimization is nothing new and has been around since compilers first existed. Nevertheless, new compiler versions are released every year, generating code that is, for example, 5% smaller or 10% faster. How is this possible? Are the existing compilers somehow bad, or are the compiler vendors using non-standard tricks? Compiler optimization is inherently complex, and its success depends heavily on the source code being optimized. This article examines fundamental concepts of optimizing compilers for C and C++, presents examples of both well-established and very recent optimizations, and questions the purpose of these optimizations. It also highlights pitfalls in attempting to optimize code manually.
Migration to Python 3
Why the clock is ticking ever louder
Rainer Grimm, Modern C++ (ESE Congress 2018)
Python 3 was released in 2008. Since Python 3 is not backward compatible with Python 2, existing code was typically developed further in Python 2, and new code was written directly in Python 3. This coexistence of two parallel systems will come to an abrupt end on January 1, 2020. Support for Python 2 will cease on that date. Therefore, migrating the Python 2 codebase to Python 3 is unavoidable.
C++ in Deeply Embedded Systems
Modern Code on Tiny Chips
Dr. Michael von Tessin, Sonova (ESE Congress 2018)
Most deeply-embedded systems are implemented in C. In this paper, we explain why, and why those systems could benefit from using C++. We present how this can be achieved successfully. To this end, we also report from our own experience in converting a large, productive, deeply-embedded code base from C to C++.
Lecture series: Internet of Things
Posts will be available shortly.
Lecture series: Machine Learning
Machine Learning – before the first step: Why? For whom?
An introduction for those interested
Andy Yap, Gregor Schock, Fabio Ferreira, AKKA Automotive; Jens Bruno Wittek, AKKA Digital (ESE Congress 2018)
Machine learning can generate added value in numerous application areas. Newcomers often struggle with the terminology and are sometimes confused by marketing jargon. Terms from this field are currently ubiquitous and used generically. This article examines the fundamental principles of machine learning from various perspectives and explains them clearly. It also conveys realistic expectations for data-driven analytics projects.
Deploying AI and Machine Learning for the IoT
Edge Computing Applied to Auto and Industrial Applications
Markus Levy, NXP Semiconductors (ESE Congress 2018)
While AI, neural networks, and classical machine learning algorithms have been around for decades, these technologies have improved 1000x in 3 years. In general, this paper begins by explaining the technical reasons that led to this improvement. This technology is being exploited by the rapid expansion of the IoT, industrial, and automotive market segments, where many industries realized that it was impractical and in violation of privacy to push all data up to the cloud. The author describes various methods for edge AI, which can be applied to vision, voice, and anomaly detection with sensors.
Deep Learning in Vehicles
Use cases for machine learning in vehicles
Dr. Eduard Kromer, iNTENCE automotive electronics GmbH (ESE Congress 2018)
Terms like artificial intelligence, machine learning, and deep learning are on everyone's lips, especially because of concrete applications such as autonomous driving, speech recognition, and gesture recognition. What exactly are these technologies, and why is there so much hype? How does machine learning actually work? What are some interesting applications in vehicles? Are the possibilities being overestimated? Are the risks being exaggerated?
Lecture series: Management
Posts will be available shortly.
Lecture series: Modeling
Guidelines Are a Modeler's Best Friend
An introduction to static model analysis
Dr. Simon Rösel, Model Engineering Solutions GmbH (ESE Congress 2018)
Requirements modeling is a technique that is either not practiced at all or only partially implemented in many companies, yet it can be introduced relatively easily and iteratively. Given the enormous cost and time pressures in many organizations, this technique represents a significant opportunity to improve development efficiency. Because there are many different approaches, this course will present both the concepts that best suit your specific work and concrete tactics that deliver results with minimal effort.
The „Standards“ Way of Modeling
How I Learned to Stop Worrying and Love Modeling
Robert Baillargeon, Sodius, Walter van der Heiden, Willert Software Tools (ESE Congress 2018)
With every new standard, there is a goal of an improved process of engineering. However, to design vehicles no standard is used, or can be judged, in isolation. For this reason, it is critical that we have patterns of adoption that leverage these standards to their strength in concert with other standards. Over decades of practice in engineering design and tool deployment our teams have identified patterns of delivering the best from standards that improves adoption for the engineers.
Case study: Terrain Awareness and Warning System
Automatic parallelization of a model-based design
Peer Ulbig, Umut Durak, David Müller, German Aerospace Center (DLR), Oliver Oey, Timo Stripf, Michael Rückauer, emmtrix Technologies GmbH (ESE Congress 2018)
The aerospace sector demands new methods and approaches for cost-effectively increasing application performance while maintaining safety and programmability. A promising approach is the use of multicore architectures. However, to fully exploit their potential, in addition to the necessary certification, there is also a need for programming tools and processes. Support for model-based design is crucial for simplifying system modeling, verification, and validation of design decisions. This paper therefore presents a model-based design for multicore architectures. As a case study, a Terrain Awareness and Warning System (TAWS) is developed using a model-based approach and parallelized for execution on an Infineon Aurix TC297B microcontroller using the interactive parallelization solution emmtrix Parallel Studio (ePS).
