Skip to main content

2017 | 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. In Chapter 3, readers will find a description of the software development processes used to develop software on the car manufacturers’ side. Chapter 4 then introduces AUTOSAR – an important standard in automotive software. Chapter 5 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. Next, Chapter 6 presents a method for assessing the quality of the architecture – ATAM (Architecture Trade-off Analysis Method) – and provides a sample assessment, while Chapter 7 presents an alternative way of assessing the architecture, namely by using quantitative measures and indicators. Subsequently Chapter 8 dives deeper into one of the specific properties discussed in Chapter 6 – safety – and details an important standard in that area, the ISO/IEC 26262 norm. Lastly, Chapter 9 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.

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 reminder of the book. We discuss the views used during the process of architectural design and discuss their practical implications.
Miroslaw Staron
Chapter 3. 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 4. AUTOSAR Standard
Abstract
In this chapter, we describe the role of the AUTOSAR (AUTomotive Open System ARchitecture) standard in the development of automotive system architectures. AUTOSAR defines the reference architecture and methodology for the development of automotive software systems, and provides the language (meta-model) for their architectural models. It also specifies the architectural modules and functionality of the middleware layer known as the basic software. We start by describing the layers of the AUTOSAR reference architecture. We then describe the proposed development methodology by identifying major roles in the automotive development process and the artifacts they produce, with examples of each artifact. We follow up by explaining the role of the AUTOSAR meta-model in the development process and show examples of the architectural models that instantiate this meta-model. We also explain the use of the AUTOSAR meta-model for configuring basic software modules. We conclude the chapter by showing trends in the evolution of the AUTOSAR standard and reflect on its future role in the automotive domain.
Miroslaw Staron, Darko Durisic
Chapter 5. 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 6. 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 7. 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, Miroslaw Staron, Wilhelm Meding
Chapter 8. Functional Safety of Automotive Software
Abstract
In the previous chapters we explored generic methods for assessing quality of software architecture and software design. 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. Much of this work is based on the ISO 26262 standard that was published in 2011. This version of the standard is applicable for passenger cars up to 3500 kg. There is also ongoing work on a future version, expected in 2018, applicable to most road vehicles, including 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, Per Johannessen
Chapter 9. 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 10. 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
2017
Electronic ISBN
978-3-319-58610-6
Print ISBN
978-3-319-58609-0
DOI
https://doi.org/10.1007/978-3-319-58610-6

Premium Partner