Book contents
- Frontmatter
- Contents
- Preface
- Annotated Table of Contents
- Acknowledgments
- PART I Overview
- PART II Software Modeling
- PART III Architectural Design
- 12 Overview of Software Architecture
- 13 Software Subsystem Architectural Design
- 14 Designing Object-Oriented Software Architectures
- 15 Designing Client/Server Software Architectures
- 16 Designing Service-Oriented Architectures
- 17 Designing Component-Based Software Architectures
- 18 Designing Concurrent and Real-Time Software Architectures
- 19 Designing Software Product Line Architectures
- 20 Software Quality Attributes
- PART IV Case Studies
- Appendix A Catalog of Software Architectural Patterns
- Appendix B Teaching Considerations
- Glossary
- Answers to Exercises
- Bibliography
- Index
18 - Designing Concurrent and Real-Time Software Architectures
from PART III - Architectural Design
Published online by Cambridge University Press: 05 June 2012
- Frontmatter
- Contents
- Preface
- Annotated Table of Contents
- Acknowledgments
- PART I Overview
- PART II Software Modeling
- PART III Architectural Design
- 12 Overview of Software Architecture
- 13 Software Subsystem Architectural Design
- 14 Designing Object-Oriented Software Architectures
- 15 Designing Client/Server Software Architectures
- 16 Designing Service-Oriented Architectures
- 17 Designing Component-Based Software Architectures
- 18 Designing Concurrent and Real-Time Software Architectures
- 19 Designing Software Product Line Architectures
- 20 Software Quality Attributes
- PART IV Case Studies
- Appendix A Catalog of Software Architectural Patterns
- Appendix B Teaching Considerations
- Glossary
- Answers to Exercises
- Bibliography
- Index
Summary
This chapter describes the design of concurrent and real-time software architectures. Real-time software architectures are concurrent architectures that usually have to deal with multiple streams of input events. They are typically state-dependent, with either centralized or decentralized control. Thus, the design of finite state machines, as described in Chapter 10, state-dependent interaction modeling, as described in Chapter 11, and the control patterns, as described in this chapter, are very important in the design of real-time software architectures.
Section 18.1 describes concepts, architectures, and patterns for designing concurrent and real-time software architectures. Section 18.2 describes the characteristics of real-time systems. Section 18.3 describes control patterns for real-time software architectures. Section 18.4 describes the concurrent task structuring criteria. Section 18.5 describes the I/O task structuring criteria, and Section 18.6 describes the internal task structuring criteria. Section 18.7 describes the steps in developing the concurrent task architecture. Section 18.8 describes designing the task interfaces using task communication and synchronization. Section 18.9 describes documenting task interface and behavior specifications. Section 18.10 describes concurrent task implementation in Java using threads.
CONCEPTS, ARCHITECTURES, AND PATTERNS FOR CONCURRENT AND REAL-TIME SOFTWARE ARCHITECTURES
An important activity in designing real-time software architectures is to design concurrent objects, which are referred to as concurrent tasks in this chapter. Chapter 14 described the design of passive objects, which do not have threads of control. Concurrency concepts were introduced in Chapter 4.
- Type
- Chapter
- Information
- Software Modeling and DesignUML, Use Cases, Patterns, and Software Architectures, pp. 318 - 343Publisher: Cambridge University PressPrint publication year: 2011