from Part II - Real-Time Software Design Method
Published online by Cambridge University Press: 05 March 2016
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.”
To save this book to your Kindle, first ensure [email protected] is added to your Approved Personal Document E-mail List under your Personal Document Settings on the Manage Your Content and Devices page of your Amazon account. Then enter the ‘name’ part of your Kindle email address below. Find out more about saving to your Kindle.
Note you can select to save to either the @free.kindle.com or @kindle.com variations. ‘@free.kindle.com’ emails are free but can only be saved to your device when it is connected to wi-fi. ‘@kindle.com’ emails can be delivered even when you are not connected to wi-fi, but note that service fees apply.
Find out more about the Kindle Personal Document Service.
To save content items to your account, please confirm that you agree to abide by our usage policies. If this is the first time you use this feature, you will be asked to authorise Cambridge Core to connect with your account. Find out more about saving content to Dropbox.
To save content items to your account, please confirm that you agree to abide by our usage policies. If this is the first time you use this feature, you will be asked to authorise Cambridge Core to connect with your account. Find out more about saving content to Google Drive.