Design of Multithreaded Software: The Entity-Life Modeling ApproachISBN: 978-0-470-87659-6
Hardcover
320 pages
March 2011, Wiley-IEEE Computer Society Press
This is a Print-on-Demand title. It will be printed specifically to fill your order. Please allow an additional 10-15 days delivery time. The book is not returnable.
|
Preface.
I Foundations.
1 Introduction.
1.1 Entity-Life Modeling.
1.2 Overview of This Book.
1.3 Multithreading.
1.4 Engineering the Intangible.
1.5 The Development Process.
1.6 Unifi ed Modeling Language.
1.7 Conclusion.
2 Support for Multithreading.
2.1 Introduction.
2.2 Concurrency in Java.
2.3 Concurrency in Ada.
2.4 Pthreads.
2.5 Conclusion.
3 State Modeling.
3.1 Introduction.
3.2 State-Modeling Terminology.
3.3 Basic State Modeling.
3.4 Superstates.
3.5 Examples.
3.6 State Modeling in Practice.
3.7 State Machine Implementation.
3.8 Conclusion.
II The ELM Way.
4 Entity-Life Modeling.
4.1 Introduction.
4.2 Modeling Software on Event Threads.
4.3 Discovering and Choosing Event-Thread Models.
4.4 Event-Thread Patterns for Resource Sharing.
*4.5 Portraying the World in Software.
4.6 Conclusion.
5 Design Patterns Based on Event Threads.
5.1 Introduction.
5.2 State Machines without Software activities.
5.3 Sequential-Activities Design Pattern.
5.4 Concurrent-Activities Design Pattern.
5.5 Communicating State Machines.
5.6 Conclusion.
6 Event-Thread Patterns for Resource Sharing.
6.1 Introduction.
6.2 Resource-User-Thread Pattern.
6.3 The Resource-Guard-Thread Pattern.
6.4 Choosing and Combining Patterns.
6.5 Examples with Dual Solutions.
6.6 Data Stream Processing.
6.7 Repository Problems.
6.8 Conclusion.
7 Simultaneous Exclusive Access to Multiple Resources.
7.1 Introduction.
7.2 The Deadlock Problem.
7.3 Case Studies.
7.4 Heuristics.
7.5 More on Deadlock and Its Prevention.
7.6 Conclusion.
III Background and Discussion.
8 Real-Time Software Architectures and Data-Flow Design Approaches.
8.1 Introduction.
8.2 Real-Time Architectures.
8.3 Data-Flow Design Approaches.
8.4 Conclusion.
9 The Origins of Entity-Life Modeling.
9.1 Introduction.
9.2 Early Experiences with Software Development.
9.3 The Jackson Methods.
9.3.1.4 Structure Clashes.
*9.4 Formal Models and Methods.
9.5 Software Patterns.
9.6 Conclusion.
Glossary.
References.
Index.