A good treatment of prototyping is:
Maude, T. I. (1991). Rapid Prototyping: The Management of Software
The statechart technique is introduced in:
Harel, D. (1987). ‘Statecharts: a visual formalism for complex systems’,
Science of Computer Programming, 8, pp. 231–274.
This paper contains many references back to other state machine
approaches to speciﬁcation, of which the most signiﬁcant is probably:
CCITT (International Telecommunication Union), Functional
Speciﬁcation and Description Language (SDL), Recommendations
Z.101-Z.104, Vol VI, Fasc. VI.7, Geneva, 1981.
The dominant set of notations for software design is UML, which is
covered in many books. Perhaps the most prominent are:
Booch, G., Jacobson, I. and Rumbaugh, J. (1998). Uniﬁed Modeling
Language User Guide, Addison-Wesley.
Jacobson, I., Booch, G. and Rumbaugh, J. (1999). The Uniﬁed Software
Development Process, Addison-Wesley.
Rumbaugh, J., Jacobson, I. and Booch, G. (1999). Uniﬁed Modeling
Language Reference Manual, Addison-Wesley.
Their common authorship is no accident: Booch, Jacobson and
Rumbaugh are principal contributors to UML. For an independent
Fowler, M. (2003). UML Distilled, 2nd edn, Addison-Wesley.
Earlier notations, some of which are predecessors to UML, and some
of which are alternatives, include:
Bohm, C. and Jacopini, G. (1966). ‘Flow diagrams, Turing machines
and languages with only two formation rules’, Communications of
the ACM, 9, pp. 366–371.
Nassi, I. and Shneiderman, B. (1973). ‘Flowchart techniques for
structured programming’, ACM SIGPLAN Notices,8 (8), pp. 12–26.
Jackson, M. A. (1975). Principles of Program Design, Academic
DeMarco, T. (1978). Structured Analysis and System Speciﬁcation,
274 Software Design for Engineers and Scientists
recently used of its two stores (Store A, say). Simultaneously it
will start waiting for the start of a new video input frame,
then copy that frame into the other (more recently used) of its
two stores (Store B). Having signalled acceptance, your mod-
ule will assume that the other module immediately uses the
video frame in Store A, so that becomes the more recently
used store. The next request will be serviced from Store B.
11.12 Chapter end material
Shneiderman, B. (1982). ‘Control ﬂow and data structure
documentation’, Communications of the ACM, 25, pp. 55–63.
Cameron, J. R. (1983). JSP & JSD: The Jackson Approach to Software
Development, IEEE Computer Society.
Martin, J. and McClure, C. (1985). Diagramming Techniques for
Analysts and Programmers, Prentice-Hall.
Design of a ﬂight reservation system through dataﬂow diagrams as in
Figure 11.1 is explored as a case study in: Ince, D. (1991). Object-
Oriented Software Engineering, McGraw-Hill.
Researching possible solutions 275
Get Software Design for Engineers and Scientists now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.