Book contents
- Frontmatter
- Dedication
- Contents
- Preface
- Annotated Table of Contents
- Acknowledgments
- Part I Overview
- Part II Real-Time Software Design Method
- 4 Overview of Real-Time Software Design Method for Embedded Systems
- 5 Structural Modeling for Real-Time Embedded Systems with SysML and UML
- 6 Use Case Modeling for Real-Time Embedded Systems
- 7 State Machines for Real-Time Embedded Systems
- 8 Object and Class Structuring for Real-Time Embedded Software
- 9 Dynamic Interaction Modeling for Real-Time Embedded Software
- 10 Software Architectures for Real-Time Embedded Systems
- 11 Software Architectural Patterns for Real-Time Embedded Systems
- 12 Component-Based Software Architectures for Real-Time Embedded Systems
- 13 Concurrent Real-Time Software Task Design
- 14 Detailed Real-Time Software Design
- 15 Designing Real-Time Software Product Line Architectures
- Part III Analysis of Real-Time Software Designs
- Part IV Real-Time Software Design Case Studies for Embedded Systems
- Appendix A Conventions Used in This Textbook
- Appendix B Catalog of Software Architectural Patterns
- Appendix C Pseudocode Templates for Concurrent Tasks
- Appendix D Teaching Considerations
- Glossary
- Bibliography
- Index
10 - Software Architectures for Real-Time Embedded Systems
from Part II - Real-Time Software Design Method
Published online by Cambridge University Press: 05 March 2016
- Frontmatter
- Dedication
- Contents
- Preface
- Annotated Table of Contents
- Acknowledgments
- Part I Overview
- Part II Real-Time Software Design Method
- 4 Overview of Real-Time Software Design Method for Embedded Systems
- 5 Structural Modeling for Real-Time Embedded Systems with SysML and UML
- 6 Use Case Modeling for Real-Time Embedded Systems
- 7 State Machines for Real-Time Embedded Systems
- 8 Object and Class Structuring for Real-Time Embedded Software
- 9 Dynamic Interaction Modeling for Real-Time Embedded Software
- 10 Software Architectures for Real-Time Embedded Systems
- 11 Software Architectural Patterns for Real-Time Embedded Systems
- 12 Component-Based Software Architectures for Real-Time Embedded Systems
- 13 Concurrent Real-Time Software Task Design
- 14 Detailed Real-Time Software Design
- 15 Designing Real-Time Software Product Line Architectures
- Part III Analysis of Real-Time Software Designs
- Part IV Real-Time Software Design Case Studies for Embedded Systems
- Appendix A Conventions Used in This Textbook
- Appendix B Catalog of Software Architectural Patterns
- Appendix C Pseudocode Templates for Concurrent Tasks
- Appendix D Teaching Considerations
- Glossary
- Bibliography
- Index
Summary
To address the complexity of large scale real-time embedded systems, it is necessary to provide an approach for decomposing the system into subsystems and components and designing the software architecture of the system. The software architecture separates the overall structure of the system, in terms of components and their interfaces, from the internal details of the individual components. This chapter presents an overview of software architecture for real-time embedded systems. Designing a software architecture, which is also referred to as a high level design, consists of structuring the system into subsystems (composite components) and subsystems into components, in addition to designing the interfaces between components.
Developing the software architecture is the first step in software design modeling. Whereas requirements modeling addresses analyzing and specifying software requirements, and analysis modeling considers the problem domain from static and dynamic modeling perspectives, the software architecture addresses the solution domain. During analysis modeling, dynamic interaction modeling considers the software system from a use case–based perspective, determining the software objects required to realize each use case and the interaction sequence of these objects. During software architecture, the use case–based interaction diagrams are synthesized into an initial software design, from which the software architecture can be developed.
An introduction to software architecture, components, and interfaces was given in Chapter 3. In this chapter, Section 10.1 describes the concepts of software architecture and component-based software architecture. Section 10.2 then describes how multiple, different views of a software architecture help with both its design and its understanding. Section 10.3 describes a systematic approach for the transition from analysis to design. Section 10.4 describes the important topic of separation of concerns in subsystem design, which leads into the description in Section 10.5 of how to use subsystem structuring criteria as a means of identifying software subsystems. Finally, Section 10.6 describes the decisions that need to be made in the design of message communication interfaces between subsystems. This chapter addresses subsystem design whereas Chapter 12 describes component-based design. Software architectural patterns are described in Chapter 11.
OVERVIEW OF SOFTWARE ARCHITECTURES
A software architecture is defined by Bass et al. (2013) as follows:
“The software architecture of a program or computing system is the structure or structures of the system, which comprise software elements, the externally visible properties of those elements, and the relationships among them.”
- Type
- Chapter
- Information
- Real-Time Software Design for Embedded Systems , pp. 163 - 183Publisher: Cambridge University PressPrint publication year: 2016