Scientific experiments are of two kinds: (1) processes undertaken to discover things not yet known, (El); and, (2) processes undertaken to demonstrate things that are known, (E2). Scientific properties that have been observed will hold whenever the experiments are repeated with the same specifications, and under the same conditions. The results are independent of the scale on which the experiments are performed. Demonstrating the properties of a software system is analogous to conducting experiments of type E2. This can be done on a small scale, while establishing the properties of the software system through experiments on a reduced model of the system. However, the software development process is analogous to conducting experiments of type E l. This cannot be done on a small scale, or by employing a reduced model of the system. It is almost impossible to establish all the properties of a software system through the reduced model. It is therefore essential that software engineers get a direct exposure of the full-scale development process. On the other hand, a direct exposure of the full-scale development process may not be sufficient to reveal hidden properties of the system. A midway alternative is to adopt a certain degree of formality in software development. The motivation to espouse formal systems is driven by the quest for a foundation that is theoretically sound.
KeywordsState Machine Formal System Inference Rule Formal Language Finite State Machine
Unable to display preview. Download preview PDF.
- A.V. Aho, R. Sethi, and J.D. Ullman, Compiler Design: Principles, Techniques, and Tools, Addison-Wesley Publishing Company, Reading, MA, 1986.Google Scholar
- J.W. Backus, “The FORTRAN Automatic Coding System,” Proceedings of the AFIPS Western Joint Computer Conference, 1957, pp. 188–198.Google Scholar
- N. Davis, “Problem # 4: LIFT,” Fourth International Workshop on Software Specification and Design, IEEE Computer Press, April 1987.Google Scholar
- E. Denert, “Specification and Design of Dialogue Systems with State Diagrams,” International Computing Symposium, D. Ribbons (Ed.), North-Holland, 1977, pp. 417–424.Google Scholar
- S.C. Johnson, “Yacc: Yet Another Compiler Compiler,” Computer Science Technical Report No. 32, Bell Labs, Murray Hills, NJ, 1975.Google Scholar
- D. Harel, A. Pnueli, J.P. Schmidt, and R. Sherman, “On the Formal Semantics of Statecharts,” Proceedings of the Second IEEE Symposium on Logic in Computer Science, IEEE Press, NY, 1987, pp. 54–64.Google Scholar
- S. Hekmatpour and D. Ince, Software Prototyping, Formal Methods and VDM, Addison-Wesley Publishing Company, International Computer Science Series, 1988.Google Scholar
- W. Hershey, “Idea Processors,” Byte, Vol. 10, No. 4, 1985.Google Scholar
- J. Hoperoft and J. Ullman, Introduction to Automata Theory, Languages, and Computation, Addison-Wesley Publishing Company, Reading, MA, 1979.Google Scholar
- P. Naur (ed.), “Revised Report on the Algorithmic Language Algol 60,” Communications of the ACM, Vol. 6, No. 1, 1963, pp. 1–17.Google Scholar
- G. Peano, “The Principles of Arithmetic, Presented by a New Method,” in J. van Heijenoort (Ed.), From Frege to Gödel: A Sourcebook of Mathematical Logic, Harvard University Press, Cambridge, MA, 1967.Google Scholar