Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
Reactive Internet programming : state chart XML in action
Barbier F., Association for Computing Machinery and Morgan & Claypool, New York, NY, 2016. 241 pp. Type: Book
Date Reviewed: Sep 26 2016

In choosing this book to, in Nobel laureate J.D. Watson’s words, “read around [my] subject” [1], laureate Richard Feynman’s expressed truism, namely that “the same equations have the same solutions,” came to mind [2]. My adaptation here would be that, in software engineering and software architecture, specifications (equations) of event-driven (reactive) systems are accomplished by corresponding designs (solutions). Thus “reactive” and “state chart” have directly to do with real-time control software (my job), but XML also lies beneath the surface in some formal-methods tools that verify and validate reactive systems’ correctness and life-limb-equipment safety properties.

My title-only-based interest in this book came from current, personal hot-button terms in its name: “reactive,” “state chart,” and “XML.” The first two are connected, among other things, to real-time, event-driven safety-critical software, and the third (XML) now seems a ubiquitously indispensable component of all kinds of modern software. “Internet,” without whose exercise I certainly could no longer live, is not my primary professional interest as software designer, developer, and (reluctant) manager. This excellent book may, however, open that vista as well, as its organization and clarity of exposition consist in focusing on essentials and efficiently imparting them to the reader. Regarding clarity, I don’t consider it a criticism to point out that the author’s generally good English has, along with his apt and amusing metaphors, a decidedly French flavor. This, however, does not interfere with the book’s delivery of the hard facts of its subject, with extra, attention-preserving amusement.

The preface is a good start in setting the refreshing tone of this book: “In all honesty [...] there is [currently] no super revolution in software development,” despite current Internet hype (my term). But the nature of the problem is correctly stated: “Internet software flows out in a totally uncontrolled way into ‘things.’” Formal documentation and code are realized in state-chart XML (SCXML), unified modeling language (UML), and Java. The author’s precision, in the introduction, in enumerating the “organic and nominal elements of computer science” is to be appreciated: events, states, finite state machines, and models (in today’s sense of model-based development, introduced in this book as MDSD, the historically significant model-driven software development). Models here are realized as SCXML text, the “dialect” of XML that realizes David Harel’s [3] Statecharts. Chapter 1 ends with a short description of the Reactive Manifesto, which lists the four fundamental attributes: responsive, resilient, elastic, and message-driven.

Chapter 2 treats event- and state-based modeling and programming, and notes the duality of event and state. SCXML, the main subject of the book, “offers a relatively simple and concise variant of [Harel’s] Statecharts.” Section 2.5 teaches SCXML in an “intuitive manner,” via the “toy” example of a push-down stack. Here, the usual push and pop are augmented (in the state machine) by “empty?,” “peek,” and “search” as “consumable” (a term that I don’t fully understand here) events by this statechart. The chapter ends with the stack-model’s “roundtrip” execution via the author’s PauWare supplement to the SCXML engine. Chapter 3 follows with the model of a (closer to) real-life crisis management system, whose level of detail inspires confidence in the SCXML/PauWare enterprise.

Chapters 4, 5, and 6 are sufficiently clear and detailed explications of SCXML/UML modeling, programming, and execution comprise a more than serviceable tutorial. The author is not sparing of half-page, richly colored figures, of which the nine steps of my-device execution are an elaborate example. The Java and SCXML code is also quite ample, and is clearly presented. Section 6.9 treats the very important notion of state invariants, and which notion is supported in UML but not in SCXML. (Invariants are part and parcel of high-assurance design and programming, and are a mainstay of, for example, the B-Method and Event-B [4, 5] and other formal methods.)

Chapters 7, 8, and 9 are up-to-date instances of today’s programming challenges: the Internet of Things (IoT), web enterprise applications, and software component management. Regarding the last (and least avant garde), I circulate every five years or so W. Tracz’s excellent article [6] on component-based software development or acquisition (so as to disabuse project leaders of the wishful thinking to the effect that simply piecing commercial off-the-shelf (COTS) components together will save time and money, repeated experience to the contrary notwithstanding). (I admit that this problem’s match with this book’s chapter 9 is a bit fuzzy, but nevertheless regard this book’s mindset as the right one for complexities such as these.)

If I may harken back to my initial disclaimer, namely, that I’m not an Internet programmer, I wish to say that in 1988 (in an aerospace venue) I urged my employer to purchase Harel’s StateMate tool. The proverbial bean counters did their job in rejecting the request. I’m happy to see this excellent book’s arrival, along with its open-source superstructure. It is very much worth reading, both for theory and for real-world application to complex event-driven systems.

Reviewer:  George Hacken Review #: CR144787 (1612-0861)
1) Watson, J. D. Avoid boring people. Random House, New York, NY, 2007.
2) Feynman, R. P.; Leighton, R. B.; Sands, M. The Feynman lectures in physics: volume 2. Addison-Wesley, Reading, MA, 1964.
3) Harel, D. Statecharts: a visual formalism for complex systems. Science of Computer Programming 8, (1987), 231–274.
4) Abrial, J. R. The B-book: assigning meanings to programs. Cambridge University Press, Cambridge, UK, 1996.
5) Abrial, J. R. Modeling in Event-B. Cambridge University Press, Cambridge, UK, 2010.
6) Tracz, W. Architectural issues, other lessons learned in component-based software development. Crosstalk: the Journal of Defense Software Engineering 1, (2000), 4–7.
Bookmark and Share
  Reviewer Selected
Featured Reviewer
 
 
Design (D.2.10 )
 
 
Internet (H.4.3 ... )
 
 
Design Tools and Techniques (D.2.2 )
 
 
Programming Techniques (D.1 )
 
Would you recommend this review?
yes
no
Other reviews under "Design": Date
Software design techniques for large Ada systems
Byrne W., Digital Press, Newton, MA, 1991. Type: Book (9781555580537)
Jun 1 1992
Software specification and design
Keller M., Shumate K. (ed), John Wiley & Sons, Inc., New York, NY, 1992. Type: Book (9780471532965)
Sep 1 1992
An automated software design methodology using CAPO
Karimi J. Library Hi Tech News(33): 71-100, 1986. Type: Article
Feb 1 1988
more...

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy