A Design Pattern for State Machines and Concurrent Activities
State machines are used to design real-time software controlling anything from household devices to spacecraft. They are also a standard way of describing the life of an object in object-oriented analysis and design. This paper presents a pattern for the implementation of state machines and associated activities by means of tasks and protected objects. It is a refinement of earlier work on a state-machine pattern and part of a set of concurrent design patterns based on the entity-life modeling design philosophy.
KeywordsState Machines Entity-Life Modeling Design Patterns Protected Objects
Unable to display preview. Download preview PDF.
- 1.G. Booch, Object-oriented development. IEEE TSE, 12(2), Feb. 1986, 211–221.Google Scholar
- 2.D. Budgen, Software Design. Addison-Wesley 1993Google Scholar
- 4.E. Gamma, R. Helm, R. Johnson, J. Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software, Addison-Wesley 1995Google Scholar
- 5.B. I. Sandén, The case for eclectic design of real-time software, IEEE TSE 15 (March 1989), 360–362.Google Scholar
- 6.B. I. Sandén, Entity-life modeling and structured analysis in real-time software design–a comparison. CACM, 32:12 (Dec. 1989) 1458–1466.Google Scholar
- 7.B. I. Sandén, Software Systems Construction with Examples in Ada. Prentice-Hall, 1994.Google Scholar
- 8.B. I. Sandén, The state machine pattern. Proc. TRI-Ada, Philadelphia, PA, Dec. 1996, 135–142.Google Scholar
- 9.B. I. Sandén, A course in real-time software design based on Ada 95, ASSET repository, 1996, http://www.coloradotech.edu/~bsanden/DISA
- 10.B. I. Sandén, Concurrent design patterns for resource sharing. Proc. TRI-Ada, St. Louis, MO, Nov. 1997, 173–183.Google Scholar
- 11.B. I. Sandén, Modeling concurrent software. IEEE Software, Sept. 1997, 93–100.Google Scholar
- 12.B. I. Sandén, Implementation of state machines with tasks and protected objects. Ada User Journal 20:4 (Jan 2000), 273–288. [Also in Ada Letters 20, 2 (June 2000) 38–56]Google Scholar