|dc.description.abstract||The research reported in this thesis has been an investigation into the use of data flow diagrams as a prototyping tool for use during the analysis of a system. Data flow diagrams are one of the three main tools of structured systems analysis (the other two are a data dictionary, and some means for representing process' logic, such as minispecs).
The motivation for the research is a perceived need for better tools with which
analysts and end-users can communicate during the requirements gathering process. Prototyping has been identified by many researchers and practitioners as such a tool. However, the output from the requirements analysis phase is the specification, which is a document that should provide the framework for all future developments of the proposed system (and should evolve with the system). Such a document should be provably correct. However this is seen as an ideal, and the most that can be hoped for is a document which contains within it a mixture of formality.
Executable data flow diagrams are considered to provide an environment which serves both as a means for communication between analysts and end-users (as they are considered relatively easy to understand by end-users), and as a method for providing a rigorous component of a specification. The rigour comes from the fact that, as demonstrated in this thesis, data flow diagrams can be given strict operational semantics based on low level ('fine-grain') data flow systems. This dual focus of executable data flow diagrams is considered significant.
Given the approach adopted in the research, executable data flow diagrams are
able to provide an informal, flexible framework, with considerable abstraction capabilities, that can be used to develop executable models of a system. The number of concepts involved in providing this framework can be small. Apart from data flow diagrams themselves, the only other component proposed in the research is a system dictionary in which the definitions of data objects are stored. Procedural details are de emphasised by treating the definition of data objects as statements in a single assignment programming language during the execution of a model.
To support many of the ideas proposed in the research, a prototype implementation (of the prototype tool) has been carried out in Prolog on an Apple Macintosh. This system has been used to produce results that are included in this thesis, which demonstrate the general soundness of the research.||en_US