rent-now

Rent More, Save More! Use code: ECRENTAL

5% off 1 book, 7% off 2 books, 10% off 3+ books

9783540007876

Come, Let's Play

by ;
  • ISBN13:

    9783540007876

  • ISBN10:

    3540007873

  • Edition: CD
  • Format: Hardcover
  • Copyright: 2003-08-01
  • Publisher: Springer Verlag
  • Purchase Benefits
  • Free Shipping Icon Free Shipping On Orders Over $35!
    Your order must be $35 or more to qualify for free economy shipping. Bulk sales, PO's, Marketplace items, eBooks and apparel do not qualify for this offer.
  • eCampus.com Logo Get Rewarded for Ordering Your Textbooks! Enroll Now
List Price: $79.99 Save up to $60.19
  • Digital
    $42.90
    Add to Cart

    DURATION
    PRICE

Summary

This book presents a powerful new language and methodology for programming complex reactive systems in a scenario-based manner. The language is live sequence charts (LSCs), a multimodal extension of sequence charts and UML's sequence diagrams, used in the past mainly for requirements. The methodology is play-in/play-out, an unusually convenient means for specifying inter-object scenario-based behavior directly from a GUI or an object model diagram, with the surprising ability to execute that behavior, or those requirements, directly. The language and methodology are supported by a fully implemented tool - the Play-Engine - which is attached to the book in CD form. Comments from experts in the field: The design of reactive systems is one of the most challenging problems in computer science. This books starts with a critical insight to explain the difficulty of this problem: there is a fundamental gap between the scenario-based way in which people think about such systems and the state-based way in which these systems are implemented. The book then offers a radical proposal to bridge this gap by means of playing scenarios. Systems can be specified by playing in scenarios and implemented by means of a Play-Engine that plays out scenarios. This idea is carried out and developed, lucidly, formally and playfully, to its fullest. The result is a compelling proposal, accompanied by a prototype software engine, for reactive systems design, which is bound to cause a splash in the software-engineering community. Moshe Y. Vardi, Rice University, Houston, Texas, USA Scenarios are a primary exchange tool in explaining system behavior to others, but their limited expressive power never made them able to fully describe systems, thus limiting their use. The language of Live Sequence Charts (LSCs) presented in this beautifully written book achieves this goal, and the attached Play-Engine software makes these LSCs really come alive. This is undoubtedly a key breakthrough that will start long-awaited and exciting new directions in systems specification, synthesis, and analysis. Gèrard Berry, Esterel Technologies and INRIA, Sophia-Antipolis, France The approach of David Harel and Rami Marelly is a fascinating way of combining prototyping techniques with techniques for identifying behavior and user interfaces. Manfred Broy, Technical University of Munich, Germany

Author Biography

David Harel is the Dean of the Faculty of Mathematics and Computer Science at the Weizmann Institute of Science in Israel. He is also co-founder of I-Logix, Inc., Andover, MA, and of SenseIT Technologies, Ltd. (DigiScents Israel). His research interests are in theoretical computer science (especially computability, automata theory and logics of programs), and in software and systems engineering (especially specification and modeling, object-oriented analysis and design, and visual languages), as well as the aesthetic layout of diagrams, clustering algorithms and the synthesis and communication of smell. He is the inventor of the language of statecharts (1983), was part of the team that designed the Statemate (1984-1987) and Rhapsody (1997) tools, and was co-inventor of LSCs (1998). His work is central to the behavioral aspects of the UML. He devotes part of his time to expository work: In 1984 he delivered a lecture series on Israeli radio, and in 1998 he hosted a series on Israeli television; some of his writing is intended for a general audience (see, for example, Computers Ltd.: What They Really Can't Do , Oxford University Press, September 2000). He has received a number of awards, including ACM's Karlstrom Outstanding Educator Award in 1992, and the 1997 Israeli Prime Minister's Award for Software. His book, Algorithmics: The Spirit of Computing (Addison-Wesley, 1987, 2nd. edn. 1992) was the Spring 1988 Main Selection of the Macmillan Library of Science. He is a Fellow of the ACM and of the IEEE.

Table of Contents

Part I. Prelude
1. Introduction
3(6)
1.1 What Are We Talking About?
3(3)
1.2 What Are We Trying to Do?
6(1)
1.3 What's in the Book?
7(2)
2. Setting the Stage
9(16)
2.1 Modeling and Code Generation
9(3)
2.2 Requirements
12(2)
2.3 Inter-Object vs. Intra-Object Behavior
14(2)
2.4 Live Sequence Charts (LSCs)
16(1)
2.5 Testing, Verification and Synthesis
17(4)
2.6 The Play-In/Play-Out Approach
21(4)
3. An Example-Driven Overview
25(30)
3.1 The Sample System
25(1)
3.2 Playing In
26(13)
3.3 Playing Out
39(4)
3.4 Using Play-Out for Testing
43(1)
3.5 Transition to Design
44(2)
3.6 Time
46(1)
3.7 Smart Play-Out
47(8)
Part II. Foundations
4. The Model: Object Systems
55(4)
4.1 Application Types
55(1)
4.2 Object Properties
56(2)
4.3 And a Bit More Formally
58(1)
5. The Language: Live Sequence Charts (LSCs)
59(24)
5.1 Constant LSCs
60(2)
5.2 Playing In
62(3)
5.3 The General Play-Out Scheme
65(3)
5.4 Playing Out
68(3)
5.5 Locations Combining and Messages
71(2)
5.6 And a Bit More Formally
73(8)
5.7 Bibliographic Notes
81(2)
6. The Tool: The Play-Engine
83(8)
6.1 Bibliographic Notes
87(4)
Part III. Basic Behavior
7. Variables and Symbolic Messages
91(14)
7.1 Symbolic Scenarios
91(3)
7.2 Enriching the Partial Order
94(3)
7.3 Playing Out
97(2)
7.4 And a Bit More Formally
99(4)
7.5 Bibliographic Notes
103(2)
8. Assignments and Implemented Functions
105(14)
8.1 Using Implemented Functions
105(3)
8.2 Assignments
108(3)
8.3 Playing Out
111(3)
8.4 And a Bit More Formally
114(5)
9. Conditions
119(14)
9.1 Cold Conditions
119(1)
9.2 Hot Conditions
120(1)
9.3 Playing In
121(5)
9.4 Playing Out
126(2)
9.5 And a Bit More Formally
128(4)
9.6 Bibliographic Notes
132(1)
10. Branching and Subcharts
133(16)
10.1 The If-Then-Else Construct
133(1)
10.2 Subcharts
134(1)
10.3 Nondeterministic Choice
135(1)
10.4 Playing In
136(2)
10.5 Playing Out
138(3)
10.6 And a Bit More Formally
141(5)
10.7 Bibliographic Notes
146(3)
Part IV. Advanced Behavior: Multiple Charts
11. Executing Multiple Charts
149(10)
11.1 Simultaneous Activation of Multiple Charts
149(5)
11.2 Overlapping Charts
154(3)
11.3 And a Bit More Formally
157(2)
12. Testing with Existential Charts
159(16)
12.1 Specifying Test Scenarios
159(1)
12.2 Monitoring LSCs
160(3)
12.3 Recording and Replaying
163(1)
12.4 On-line Testing
164(1)
12.5 Executing and Monitoring LSCs in the Play-Engine
165(1)
12.6 And a Bit More Formally
166(5)
12.7 Bibliographic Notes
171(4)
Part V. Advanced Behavior: Richer Constructs
13. Loops
175(14)
13.1 Using Loops
175(1)
13.2 Playing In
176(2)
13.3 Playing Out
178(1)
13.4 Using Variables Within Loops
179(2)
13.5 Executing and Monitoring Dynamic Loops
181(2)
13.6 And a Bit More Formally
183(4)
13.7 Bibliographic Notes
187(2)
14. Transition to Design
189(20)
14.1 The Design Phase
189(1)
14.2 Incorporating Internal Objects
190(3)
14.3 Calling Object Methods
193(3)
14.4 Playing Out
196(2)
14.5 External Objects
198(3)
14.6 And a Bit More Formally
201(4)
14.7 Bibliographic Notes
205(4)
15. Classes and Symbolic Instances
209(20)
15.1 Symbolic Instances
209(1)
15.2 Classes and Objects
210(2)
15.3 Playing with Simple Symbolic Instances
212(1)
15.4 Symbolic Instances in the Main Chart
213(2)
15.5 Quantified Binding
215(1)
15.6 Reusing a Scenario Prefix
216(2)
15.7 Symbolic Instances in Existential Charts
218(1)
15.8 An Advanced Example: NetPhone
218(3)
15.9 And a Bit More Formally
221(6)
15.10 Bibliographic Notes
227(2)
16. Time and Real-Time Systems
229(22)
16.1 An Example
229(1)
16.2 Adding Time to LSCs
230(1)
16.3 Hot Timing Constraints
231(3)
16.4 Cold Timing Constraints
234(1)
16.5 Time Events
235(1)
16.6 Playing In
236(1)
16.7 Playing Out
237(2)
16.8 Unification of Clock Ticks
239(1)
16.9 The Time-Enriched NetPhone Example
240(2)
16.10 And a Bit More Formally
242(5)
16.11 Bibliographic Notes
247(4)
17. Forbidden Elements
251(30)
17.1 Example: A Cruise Control System
251(1)
17.2 Forbidders Messages
252(3)
17.3 Generalized Forbidden Messages
255(1)
17.4 Symbolic Instances in Forbidden Messages
256(2)
17.5 Forbidden Conditions
258(4)
17.6 Scoping Forbidden Elements
262(2)
17.7 Playing Out
264(2)
17.8 Using Forbidden Elements with Time
266(1)
17.9 A Tolerant Semantics for LSCs
267(1)
17.10 And a Bit More Formally
268(9)
17.11 Bibliographic Notes
277(4)
Part VI. Enhancing the Play-Engine
18. Smart Play-Out (with H. Kugler)
281(28)
18.1 Introduction
281(2)
18.2 Being Smart Helps
283(4)
18.3 The General Approach
287(2)
18.4 The Translation
289(10)
18.5 Current Limitations
299(2)
18.6 Satisfying Existential Charts
301(6)
18.7 Bibliographic Notes
307(2)
19. Inside and Outside the Play-Engine
309(8)
19.1 The Engine's Environment
309(1)
19.2 Playing In
310(1)
19.3 Playing Out
311(2)
19.4 Recording Runs and Connecting External Applications
313(1)
19.5 Additional Play-Engine Features
313(4)
20. A Play-Engine Aware GUI Editor
317(6)
20.1 Who Needs a GUI Editor?
317(1)
20.2 GUIEdit in Visual Basic
318(1)
20.3 What Does GUIEdit Do?
318(3)
20.4 Incorporating Custom Controls
321(1)
20.5 GUIEdit As a Proof of Concept
321(1)
20.6 Bibliographic Notes
322(1)
21. Future Research Directions
323(10)
21.1 Object Refinement and Composition
323(2)
21.2 Object Model Diagrams, Inheritance and Interfaces
325(1)
21.3 Dynamic Creation and Destruction of Objects
326(1)
21.4 Structured Properties and Types
327(1)
21.5 Linking Multiple Engines
328(5)
Part VII. Appendices
A. Formal Semantics of LSCs
333(24)
A.1 System Model and Events
333(3)
A.2 LSC Specification
336(6)
A.3 Operational Semantics
342(15)
B. XML Description of a GUI Application
357(4)
C. The Play-Engine Interface
361(2)
C.1 Visual Basic Code
361(2)
D. The GUI Application Interface
363(4)
D.1 Visual Basic Code
364(3)
E. The Structure of a (Recorded) Run
367(2)
References
369(6)
Index
375

Supplemental Materials

What is included with this book?

The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.

The Used, Rental and eBook copies of this book are not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.

Rewards Program