Skip to main content

2021 | Buch

Automotive Software Architectures

An Introduction

insite
SUCHEN

Über dieses Buch

This book introduces the concept of software architecture as one of the cornerstones of software in modern cars. Following a historical overview of the evolution of software in modern cars and a discussion of the main challenges driving that evolution, Chapter 2 describes the main architectural styles of automotive software and their use in cars’ software. Chapter 3 details this further by presenting two modern architectural styles, i.e. centralized and federated software architectures. In Chapter 4, readers will find a description of the software development processes used to develop software on the car manufacturers’ side. Chapter 5 then introduces AUTOSAR – an important standard in automotive software. Chapter 6 goes beyond simple architecture and describes the detailed design process for automotive software using Simulink, helping readers to understand how detailed design links to high-level design. The new chapter 7 reports on how machine learning is exploited in automotive software e.g. for image recognition and how both on-board and off-board learning are applied. Next, Chapter 8 presents a method for assessing the quality of the architecture – ATAM (Architecture Trade-off Analysis Method) – and provides a sample assessment, while Chapter 9 presents an alternative way of assessing the architecture, namely by using quantitative measures and indicators. Subsequently Chapter 10 dives deeper into one of the specific properties discussed in Chapter 8 – safety – and details an important standard in that area, the ISO/IEC 26262 norm. Lastly, Chapter 11 presents a set of future trends that are currently emerging and have the potential to shape automotive software engineering in the coming years.

This book explores the concept of software architecture for modern cars and is intended for both beginning and advanced software designers. It mainly aims at two different groups of audience – professionals working with automotive software who need to understand concepts related to automotive architectures, and students of software engineering or related fields who need to understand the specifics of automotive software to be able to construct cars or their components. Accordingly, the book also contains a wealth of real-world examples illustrating the concepts discussed and requires no prior background in the automotive domain. Compared to the first edition, besides the two new chapters 3 and 7 there are considerable updates in chapters 5 and 8 especially.

Inhaltsverzeichnis

Frontmatter
Chapter 1. Introduction
Abstract
Modern cars have evolved from mechanical devices into distributed cyber-physical systems which rely on software to function correctly. Starting from the 1970s the amount of electronics and software used has gradually increased from as little as one computer (Electronic Control Unit, ECU) to as much as 150 ECUs in 2015. The trend in the architecture, however, changes as companies look for ways to decrease the number of central computing nodes and connect them with the increased number of I/O nodes. In this chapter we provide an overview of the book and the conventions used in it and introduce the examples which we will use throughout. We describe the history of the automotive software anchoring the events in the evolution of the market of the electronics and software in modern cars. Towards the end of the chapter we also describe which directions can be pursued to deepen the knowledge of automotive software.
Miroslaw Staron
Chapter 2. Software Architectures—Views and Documentation
Abstract
Software architecture is the foundation for automotive software design. Being a high-level design view of the system it combines multiple views on the software system, and provides the project teams with the possibility to communicate and make technical decisions about the organization of the functionality of the entire software system. It allows also us to understand and to predict the performance of the system before it is even designed. In this chapter we introduce the definitions related to software architectures which we will use in the remainder of the book. We discuss the views used during the process of architectural design and discuss their practical implications.
Miroslaw Staron
Chapter 3. Contemporary Software Architectures: Federated and Centralized
Abstract
Automotive software architectures evolve together with the evolution of the electronics in vehicles. The distributed electronics of the cars of the 2000s and 2010s have started to reach the limit of their potential, and new electronic architectures are being introduced. In this chapter, we explore and discuss two of such new developments – federated architectures and centralized ones. These two architectural styles are a response to the challenges of distributed architectures with over 100 ECUs. Signaling, coordination, and integration drive the development of vehicles’ electronics to use fewer, more powerful ECUs with redundancy and virtualization. In this chapter, we explore these techniques and show how they are, and can be, used in vehicles’ software.
Miroslaw Staron
Chapter 4. Automotive Software Development
Abstract
In this chapter we describe and elaborate on software development processes in the automotive industry. We introduce the V-model for the entire vehicle development and we continue to introduce modern, agile software development methods for describing the ways of working of software development teams. We start by describing the beginning of all software development—requirements engineering—and we describe how requirements are perceived in automotive software development using text and different types of models. We discuss the specifics of automotive software development such as variant management, different integration stages of software development, testing strategies and the methods used for these. We review methods used in practice and explain how they should be used. We conclude the chapter with discussion on the need for standardization as the automotive software development is based on client-supplier relationships between the OEMs and the suppliers developing components of vehicles.
Miroslaw Staron
Chapter 5. AUTOSAR (AUTomotive Open System ARchitecture)
Abstract
In this chapter, we describe the role of the AUTOSAR standard in the development of automotive software/system architectures. AUTOSAR defines the reference architecture and the methodology for the development of automotive software systems built on top of the AUTOSAR platform (middleware). It also provides the language (meta-model) for their architectural models. The AUTOSAR platform comes in two flavors – the AUTOSAR Classic Platform designed for the development of traditional mechatronics systems such as climate control and doors and the AUTOSAR Adaptive Platform designed for the development of modern automotive software systems in the area of, e.g., autonomous drive and connectivity. For both of these platforms, we show the AUTOSAR’s reference architecture and describe the proposed development methodology. We also explain the role of the AUTOSAR meta-model in the development process of both the AUTOSAR Classic and Adaptive Platforms and show examples of the architectural models that instantiate this meta-model. Finally, we explain the use of the AUTOSAR meta-model for configuring the AUTOSAR platform modules in the middleware layer.
Miroslaw Staron
Chapter 6. Detailed Design of Automotive Software
Abstract
Having discussed architectural styles and one of the major standards impacting architectural design of automotive software systems, we can now discuss the next abstraction level—detailed design. In this chapter we continue to dive into the technical aspects of automotive software architectures and we describe ways of working when designing software within particular software components. We present methods for modelling functions using Simulink modelling and we show how these methods are used in the automotive industry. We dive deeper into the need for modelling of software systems with Simulink by presenting an example of the braking algorithm and its implementation in Simulink (the example can be extended by the Simulink tutorials from Matlab.com). After presenting the most common design method—Simulink modelling—we discuss the principles of design of safety-critical systems in C/C++. We also introduce the MISRA standard, which is a standard for documenting and structuring C/C++ code in safety-critical systems.
Miroslaw Staron
Chapter 7. Machine Learning in Automotive Software
Abstract
Modern software is expected to grow, improve its operations, and adapt to new contexts. We often realize these requirements by introducing machine learning algorithms in the software architecture. In automotive software, we can observe the use of machine learning technology in recognizing objects on the road (active safety systems) and optimizations of control systems (engine and gearbox operation). In this chapter, we explore the use of deep learning for image classification and object recognition, and through this we explain the concepts of supervised learning. We also introduce the concepts of reinforced learning using an example algorithm for engine optimization.
Miroslaw Staron
Chapter 8. Evaluation of Automotive Software Architectures
Abstract
In this chapter we introduce methods for assessing the quality of software architectures and we discuss one of the techniques—ATAM. We discuss the non-functional properties of automotive software and we review the methods used to assess such properties as dependability, robustness and reliability. We follow the ISO/IEC 25000 series of standards when discussing these properties. In this chapter we also address the challenges related to the integration of hardware and software and the impact of this integration. We review differences with stand-alone desktop applications and discuss examples of these differences. Towards the end of the chapter we discuss the need to measure these properties and introduce the need for software measurement.
Miroslaw Staron
Chapter 9. Metrics for Software Design and Architectures
Abstract
Understanding the architecture in a qualitative manner can be time-consuming and effort-intensive. Therefore the qualitative methods such as assessments presented in Chap. 6 are often done periodically at given milestones. However, architects need to monitor the quality of the architecture constantly and ensure that the characteristics of the architecture are within the limits of the product boundaries. In this chapter we present a set of measures used for measuring architectures and detailed designs. We explore the existing measures and present the ones which are common in industrial applications. Towards the end of the chapter we show the limits of selected measures by using an openly available industrial data set from an automotive OEM.
Miroslaw Staron
Chapter 10. Functional Safety of Automotive Software
Abstract
In the previous chapters we explored generic methods for assessing quality of software architecture and software designs. In this chapter we continue with a much related topic, functional safety of software, in which functional safety assessment is one of the last activities during product development. We describe how the automotive industry works with functional safety. Most of this chapter is based on the ISO 26262 standard that was first published in 2011. That version of the standard was only applicable for passenger cars up to 3500 kg. In 2018 a second version of the standard was published. This version is also applicable to buses, motorcycles, and trucks. The scope of the ISO 26262 standard is more than software development, and for better understanding we give an overview of these other development phases in this chapter. However, we focus on software development according to ISO 26262. The different phases that are covered are software planning, software safety requirements, software architectural design, software unit design and implementation, software integration and testing, and verification of software.
Miroslaw Staron
Chapter 11. Current Trends in Automotive Software Architectures
Abstract
Cars have evolved a lot since their introduction and will evolve even more. Today’s cars would not work without the software that is embedded in their electronics. Although the physical processes are often the same as in the cars’ of the 1990s (combustion engines, servo steering), they become computer platforms and are able to “think” and drive autonomously. In this chapter we look into a few trends which shape automotive software engineering—autonomous driving, self-* systems, big data and new software engineering paradigms. We look into how these trends can shape the future of automotive software engineering.
Miroslaw Staron
Chapter 12. Summary
Abstract
In this book we have introduced the concept of software architecture in automotive software and overviewed different architectural styles that can be encountered in modern automotive software. In this chapter we present the summary of the main points of the book and pinpoint additional reading in the area.
Miroslaw Staron
Metadaten
Titel
Automotive Software Architectures
verfasst von
Miroslaw Staron
Copyright-Jahr
2021
Electronic ISBN
978-3-030-65939-4
Print ISBN
978-3-030-65938-7
DOI
https://doi.org/10.1007/978-3-030-65939-4

Premium Partner