Modeling with Finite State Machines
摘要
Our discussion thus far of the object-oriented software construction process has focused on the use case model. While this is a comprehensive technique that has found widespread application, it is inadequate for handling situations where the operations cannot be modeled by end-to-end use cases. This is typically the case with dynamic systems that respond to external input in real-time. In this chapter, we present a case study of a system where the use case model does not suffice: a controller for a microwave. (This analysis could be extended to most devices that interact with external entities.) The behavior of the microwave in response to a user’s action depends on what state the microwave is in. For instance, if a cook/start button is pressed, the power tube that provides the heat does not always start operating. The case study starts by presenting a model for dealing with this kind of conditional behavior, and then goes on to discuss issues arising in the design and implementation of such systems.