Muutke küpsiste eelistusi

Real-Time Software Design for Embedded Systems [Kõva köide]

(George Mason University, Virginia)
  • Formaat: Hardback, 602 pages, kõrgus x laius x paksus: 260x183x31 mm, kaal: 1420 g, 15 Tables, black and white; 373 Line drawings, unspecified
  • Ilmumisaeg: 26-May-2016
  • Kirjastus: Cambridge University Press
  • ISBN-10: 1107041090
  • ISBN-13: 9781107041097
Teised raamatud teemal:
  • Formaat: Hardback, 602 pages, kõrgus x laius x paksus: 260x183x31 mm, kaal: 1420 g, 15 Tables, black and white; 373 Line drawings, unspecified
  • Ilmumisaeg: 26-May-2016
  • Kirjastus: Cambridge University Press
  • ISBN-10: 1107041090
  • ISBN-13: 9781107041097
Teised raamatud teemal:
This tutorial reference takes the reader from use cases to complete architectures for real-time embedded systems using SysML, UML, and MARTE, including complete case studies using the COMET/RTE design methods. Its modular presentation of the design stages makes it perfect for students as well as experienced software engineers.

This tutorial reference takes the reader from use cases to complete architectures for real-time embedded systems using SysML, UML, and MARTE and shows how to apply the COMET/RTE design method to real-world problems. The author covers key topics such as architectural patterns for distributed and hierarchical real-time control and other real-time software architectures, performance analysis of real-time designs using real-time scheduling, and timing analysis on single and multiple processor systems. Complete case studies illustrating design issues include a light rail control system, a microwave oven control system, and an automated highway toll system. Organized as an introduction followed by several self-contained chapters, the book is perfect for experienced software engineers wanting a quick reference at each stage of the analysis, design, and development of large-scale real-time embedded systems, as well as for advanced undergraduate or graduate courses in software engineering, computer engineering, and software design.

Arvustused

'This book reports on a comprehensive, practical, and thorough approach to model-driven requirements, analysis, architecture, and design of real-time embedded systems. Another very interesting feature is the numerous, detailed case studies illustrating the proposed methodology. I strongly recommend Hassan Gomaa's new book to faculty members teaching software development, computer science students, and software engineers.' Lionel Briand, IEEE Fellow, Professor and Vice-Director, SnT Centre, University of Luxembourg 'A thoroughly modern and comprehensive work. Gomaa has managed to successfully combine in a single volume a reference book for experienced practitioners and a highly readable pedagogical text for students. It covers all the key facets of current embedded software design: from requirements specification to implementation, from architecture to coding.' Bran Seli, Malina Software Corp. 'This textbook contains material that is 'battle-tested' in graduate courses, and includes in-depth case studies that allow readers to see concepts applied. The book describes a hands-on design method, coupled to an industry standard notation and applied to a wide array of software design challenges.' Kevin Mills, National Institute of Standards and Technology, Maryland

Muu info

This tutorial reference goes from use cases to complete architectures for real-time embedded systems using SysML, UML, and MARTE.
Preface xv
Acknowledgments xxv
Part I Overview
1 Introduction
3(9)
1.1 The Challenge
3(1)
1.2 Real-Time Embedded Systems and Applications
3(2)
1.3 Characteristics of Real-Time Embedded Systems
5(2)
1.4 Distributed Real-Time Embedded Systems
7(2)
1.5 Cyber-Physical Systems
9(1)
1.6 Requirements for Real-Time Software Design Method for Embedded Systems
10(1)
1.7 COMET/RTE: A Real-Time Software Design Method for Embedded Systems
10(1)
1.8 Visual Modeling Languages: UML, SysML, and MARTE
11(1)
1.9 Summary
11(1)
2 Overview of UML, SysML, and MARTE
12(20)
2.1 Model-Driven Architecture with SysML and UML
12(2)
2.2 Use Case Diagrams
14(1)
2.3 Classes and Objects
14(1)
2.4 Class Diagrams
15(2)
2.5 Interaction Diagrams
17(2)
2.6 State Machine Diagrams
19(1)
2.7 Package Diagrams
20(1)
2.8 Concurrent Sequence and Communication Diagrams
20(3)
2.9 Deployment Diagrams
23(1)
2.10 Composite Structure Diagrams
24(2)
2.11 UML Extension Mechanisms and Profiles
26(1)
2.12 SysML
27(1)
2.13 MARTE Profile
28(1)
2.14 Timing Diagrams
29(1)
2.15 Tool Support for UML, SysML, and MARTE
30(1)
2.16 Summary
31(1)
3 Real-Time Software Design and Architecture Concepts
32(19)
3.1 Object-Oriented Concepts
32(2)
3.2 Information Hiding
34(2)
3.3 Inheritance
36(1)
3.4 Active and Passive Objects
37(1)
3.5 Concurrent Processing
37(2)
3.6 Cooperation between Concurrent Tasks
39(3)
3.7 Information Hiding Applied to Access Synchronization
42(1)
3.8 Runtime Support for Real-Time Concurrent Processing
43(2)
3.9 Task Scheduling
45(2)
3.10 Software Architecture and Components
47(1)
3.11 Summary
48(3)
Part II Real-Time Software Design Method
4 Overview of Real-Time Software Design Method for Embedded Systems
51(10)
4.1 COMET/RTE System and Software Life Cycle model
51(1)
4.2 Phases in COMET/RTE Life Cycle model
52(4)
4.3 Comparison of the COMET/RTE Life Cycle with Other Software Processes
56(1)
4.4 Survey of Design Methods for Real-Time Embedded Systems
57(2)
4.5 Multiple Views of System and Software Architecture
59(1)
4.6 Summary
60(1)
5 Structural Modeling for Real-Time Embedded Systems with SysML and UML
61(18)
5.1 Static Modeling Concepts
62(4)
5.2 Categorization of Blocks and Classes using Stereotypes
66(1)
5.3 Structural Modeling of the Problem Domain with SysML
66(3)
5.4 Structural Modeling of the System Context
69(3)
5.5 Hardware/Software Boundary Modeling
72(1)
5.6 Structural Modeling of the Software System Context
72(4)
5.7 Defining Hardware/Software Interfaces
76(1)
5.8 System Deployment Modeling
77(1)
5.9 Summary
78(1)
6 Use Case Modeling for Real-Time Embedded Systems
79(21)
6.1 Use Cases
79(1)
6.2 Actors
80(5)
6.3 Identifying Use Cases
85(2)
6.4 Documenting Use Cases in the Use Case Model
87(1)
6.5 Specifying Nonfunctional Requirements
88(1)
6.6 Examples of Use Case Descriptions
88(4)
6.7 Use Case Relationships
92(1)
6.8 The Include Use Case Relationship
92(2)
6.9 The Extend Use Case Relationship
94(4)
6.10 Use Case Packages
98(1)
6.11 Summary
99(1)
7 State Machines for Real-Time Embedded Systems
100(26)
7.1 State Machines
101(2)
7.2 Examples of State Machine
103(1)
7.3 Events and Guard Conditions
103(2)
7.4 Actions
105(8)
7.5 Hierarchical State Machines
113(5)
7.6 Cooperating State Machines
118(1)
7.7 Inherited State Machines
119(2)
7.8 Developing State Machines from Use Cases
121(1)
7.9 Example of Developing a State Machine from a Use Case
122(3)
7.10 Summary
125(1)
8 Object and Class Structuring for Real-Time Embedded Software
126(17)
8.1 Object and Class Structuring Criteria
126(1)
8.2 Object and Class Structuring Categories
127(1)
8.3 Object Behavior and Patterns
128(1)
8.4 Boundary Classes and Objects
129(7)
8.5 Entity Classes and Objects
136(1)
8.6 Control Classes and Objects
137(2)
8.7 Application Logic Classes and Objects
139(2)
8.8 Summary
141(2)
9 Dynamic Interaction Modeling for Real-Time Embedded Software
143(20)
9.1 Object Interaction Modeling
144(1)
9.2 Message Sequence Description
145(1)
9.3 Approach for Dynamic Interaction Modeling
145(1)
9.4 Stateless Dynamic Interaction Modeling
146(1)
9.5 Examples of Stateless Dynamic Interaction Modeling
147(3)
9.6 State Dependent Dynamic Interaction Modeling
150(4)
9.7 Example of State Dependent Dynamic Interaction Modeling: Microwave Oven System
154(8)
9.8 Summary
162(1)
10 Software Architectures for Real-Time Embedded Systems
163(21)
10.1 Overview of Software Architectures
164(2)
10.2 Multiple Views of a Software Architecture
166(4)
10.3 Transition from Analysis to Design
170(2)
10.4 Separation of Concerns in Subsystem Design
172(3)
10.5 Subsystem Structuring Criteria
175(6)
10.6 Decisions about Message Communication between Subsystems
181(2)
10.7 Summary
183(1)
11 Software Architectural Patterns for Real-Time Embedded Systems
184(27)
11.1 Software Design Patterns
184(2)
11.2 Layered Software Architectural Patterns
186(4)
11.3 Control Patterns for Real-Time Software Architectures
190(4)
11.4 Client/Service Software Architectural Patterns
194(3)
11.5 Basic Software Architectural Communication Patterns
197(6)
11.6 Software Architectural Broker Patterns
203(3)
11.7 Group Message Communication Patterns
206(3)
11.8 Documenting Software Architectural Patterns
209(1)
11.9 Applying Software Architectural Patterns
209(1)
11.10 Summary
210(1)
12 Component-Based Software Architectures for Real-Time Embedded Systems
211(22)
12.1 Concepts for Component-Based Software Architectures
212(1)
12.2 Designing Distributed Component-Based Software Architectures
212(1)
12.3 Component Interface Design
213(4)
12.4 Designing Composite Components
217(1)
12.5 Examples of Component-Based Software Architecture
218(3)
12.6 Component Structuring Criteria
221(2)
12.7 Design of Service Components
223(4)
12.8 Distribution of Data
227(1)
12.9 Software Deployment
228(1)
12.10 Design of Software Connectors
229(3)
12.11 Summary
232(1)
13 Concurrent Real-Time Software Task Design
233(33)
13.1 Concurrent Task Structuring Issues
234(1)
13.2 Categorizing Concurrent Tasks
234(1)
13.3 I/O Task Structuring Criteria
235(7)
13.4 Internal Task Structuring Criteria
242(6)
13.5 Task Priority Criteria
248(1)
13.6 Task Clustering Criteria
249(7)
13.7 Design Restructuring by Using Task Inversion
256(1)
13.8 Developing the Task Architecture
257(1)
13.9 Task Communication and Synchronization
258(6)
13.10 Task Interface and Task Behavior Specifications
264(1)
13.11 Summary
265(1)
14 Detailed Real-Time Software Design
266(31)
14.1 Design of Composite Tasks
266(8)
14.2 Synchronization of Access to Classes
274(4)
14.3 Designing Monitors
278(6)
14.4 Designing Connectors for Inter-Task Communication
284(7)
14.5 Task Event Sequencing Logic
291(2)
14.6 Detailed Real-Time Software Design in Robot and Vision Systems
293(2)
14.7 Implementing Concurrent Tasks in Java
295(1)
14.8 Summary
296(1)
15 Designing Real-Time Software Product Line Architectures
297(16)
15.1 Software Product Line Engineering
298(1)
15.2 Problem Description of Microwave Oven SPL
299(1)
15.3 Requirements Modeling for Software Product Lines
299(4)
15.4 Analysis Modeling for Software Product Lines
303(5)
15.5 Design Modeling for Software Product Lines
308(2)
15.6 Summary
310(3)
Part III Analysis of Real-Time Software Designs
16 System and Software Quality Attributes for Real-Time Embedded Systems
313(11)
16.1 Scalability
313(2)
16.2 Performance
315(1)
16.3 Availability
315(1)
16.4 Safety
316(1)
16.5 Security
317(1)
16.6 Maintainability
318(1)
16.7 Modifiability
319(1)
16.8 Testability
320(1)
16.9 Traceability
321(1)
16.10 Reusability
322(1)
16.11 Summary
323(1)
17 Performance Analysis of Real-Time Software Designs
324(22)
17.1 Real-Time Scheduling Theory
325(5)
17.2 Real-Time Scheduling for Aperiodic Tasks and Task Synchronization
330(1)
17.3 Generalized Real-Time Scheduling Theory
331(5)
17.4 Performance Analysis Using Event Sequence Analysis
336(2)
17.5 Performance Analysis Using Real-Time Scheduling Theory and Event Sequence Analysis
338(1)
17.6 Advanced Real-Time Scheduling Algorithms
339(1)
17.7 Performance Analysis of Multiprocessor Systems
340(3)
17.8 Estimation and Measurement of Performance Parameters
343(2)
17.9 Summary
345(1)
18 Applying Performance Analysis to Real-Time Software Designs
346(25)
18.1 Example of Performance Analysis Using Event Sequence Analysis
346(5)
18.2 Example of Performance Analysis Using Real-Time Scheduling Theory
351(3)
18.3 Example of Performance Analysis Using Real-Time Scheduling Theory and Event Sequence Analysis
354(13)
18.4 Design Restructuring
367(1)
18.5 Summary
368(3)
Part IV Real-Time Software Design Case Studies for Embedded Systems
19 Microwave Oven Control System Case Study
371(46)
19.1 Problem Description
371(1)
19.2 Structural Modeling
372(1)
19.3 Use Case Modeling
373(4)
19.4 Object and Class Structuring
377(2)
19.5 Dynamic State Machine Modeling
379(4)
19.6 Dynamic Interaction Modeling
383(12)
19.7 Design Modeling
395(8)
19.8 Performance Analysis of Real-Time Software Design
403(3)
19.9 Component-Based Software Architecture
406(7)
19.10 Detailed Software Design
413(2)
19.11 System Configuration and Deployment
415(2)
20 Railroad Crossing Control System Case Study
417(34)
20.1 Problem Description
417(1)
20.2 Structural Modeling
418(4)
20.3 Use Case Modeling
422(4)
20.4 Dynamic State Machine Modeling
426(3)
20.5 Object and Class Structuring
429(1)
20.6 Dynamic Interaction Modeling
429(6)
20.7 Design Modeling
435(6)
20.8 Performance Analysis of Real-Time Software Design
441(2)
20.9 Component-Based Software Architecture
443(7)
20.10 System Configuration and Deployment
450(1)
21 Light Rail Control System Case Study
451(49)
21.1 Problem Description
451(1)
21.2 Structural Modeling
452(3)
21.3 Use Case Modeling
455(9)
21.4 Dynamic State Machine Modeling
464(7)
21.5 Subsystem Structuring
471(1)
21.6 Object and Class Structuring
471(3)
21.7 Dynamic Interaction Modeling
474(12)
21.8 Design Modeling
486(1)
21.9 Subsystem Integrated Communication Diagrams
486(1)
21.10 Design of Distributed Light Rail System
487(8)
21.11 Component-Based Software Architecture
495(4)
21.12 System Configuration and Deployment
499(1)
22 Pump Control System Case Study
500(13)
22.1 Problem Description
500(1)
22.2 Structural Modeling
501(1)
22.3 Use Case Modeling
501(3)
22.4 Object and Class Structuring
504(1)
22.5 Dynamic State Machine Modeling
504(2)
22.6 Dynamic Interaction Modeling
506(1)
22.7 Design Modeling
507(6)
23 Highway Toll Control System Case Study
513(12)
23.1 Problem Description
513(1)
23.2 Use Case Modeling
514(2)
23.3 Software System Context Modeling
516(1)
23.4 Object and Class Structuring
516(1)
23.5 Dynamic State Machine Modeling
517(1)
23.6 Dynamic Interaction Modeling
517(2)
23.7 Design Modeling
519(6)
Appendix A: Conventions Used in This Textbook 525(5)
Appendix B: Catalog of Software Architectural Patterns 530(21)
Appendix C: Pseudocode Templates for Concurrent Tasks 551(6)
Appendix D: Teaching Considerations 557(2)
Glossary 559(14)
Bibliography 573(8)
Index 581
Hassan Gomaa is Professor and former Chair of the Department of Computer Science at George Mason University. Gomaa has more than thirty years' experience in software engineering, both in industry and academia. He has taught short in-depth industrial courses on real-time software design in North America, Europe, Japan, and South Korea.