from Part I - Overview
Published online by Cambridge University Press: 05 March 2016
This chapter describes key concepts in the software design of concurrent object-oriented real-time embedded systems as well as important concepts for developing the architecture of these systems. First, object-oriented concepts are introduced, with the description of objects and classes, as well as a discussion of the role of information hiding in object-oriented design and an introduction to the concept of inheritance. Next, the concurrent processing concept is introduced and the issues of communication and synchronization between concurrent tasks are described. These design concepts are building blocks in designing the software architecture of a real-time embedded system: the overall structure of the system, its decomposition into components, and the interfaces between these components.
Section 3.1 provides an overview of object-oriented concepts. Section 3.2 describes information hiding and how it is used in software design. Section 3.3 describes inheritance and generalization/specialization relationships. Section 3.4 describes active and passive objects, while Section 3.5 provides an overview of concurrent processing. Section 3.6 describes cooperation between concurrent tasks, including mutual exclusion, task synchronization, and the producer/consumer problem. Section 3.7 describes how information hiding is applied to access synchronization. Section 3.8 provides an overview of runtime support for concurrent processing, while Section 3.9 describes task scheduling. Finally, Section 3.10 provides an overview of software architecture and the concepts of components and connectors.
OBJECT-ORIENTED CONCEPTS
An object is a real-world physical or conceptual entity that provides an understanding of the real world and hence forms the basis for a software solution. A real-world object can have physical properties (they can be seen or touched); examples are a door, motor, or lamp. A conceptual object is a more abstract concept, such as an account or transaction.
From a design perspective, an object packages both data and procedures that operate on the data. The procedures are usually called operations or methods. Some approaches, including the UML notation, refer to the operation as the specification of a function performed by an object and the method as the implementation of the function (Rumbaugh, Booch, and Jacobson 2005). In this book, we will use the term operation to refer to both the specification and the implementation, in common with Gamma et. al. (1995), Meyer (2000), and others.
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.