An interactive, graphical, program design and development environment
New software development methodologies are being produced with increasing frequency. The latest techniques claim to produce software of unprecedented reliability and productivity, yet are seldom substantiated by empirical evidence. Researchers in the field of human-computer interactions have long held the view that well designed interactive systems increase performance levels over conventional techniques. Intuitively this seems logical, but very little work has been done to substantiate this claim empirically. This thesis aims to show that well designed structured programming environments provide productivity gains and increase performance levels over conventional techniques. An Animated Programming Environment (APE), has been developed which is an interactive, graphical, program design and development system that embodies structured programming and top-down design. The system supports the development of programs for a variety of block structured languages whilst working conceptually at the level of Jackson diagrams. Formal methods were applied to validate and verify the APE system. The immediate benefits are an increased understanding of the system and the detection of some errors in the implementation. By interrogating the implementation and documentation, axiomatic specifications were written and a prototype of the APE system developed in Standard ML. The principal benefit of constructing a formal model is the development of a framework to aid communication between personnel involved with system maintenance. The model can also be used to investigate future changes, and since this framework provides relevant abstraction of user and system behaviour it should facilitate improved documentation and user learning. Evaluation of the system was carried out during the design and implementation stages of the development life-cycle. The evaluation was based on responses to a questionnaire and a comparison with conventional means of generating code. The questionnaire evaluation elicited users' general impressions about the system and its interface, and their detailed views on more specific aspects of the system. The comparative evaluation showed no difference in the median quality of the solution to a programming problem, but a significantly reduced time and variance in quality compared to conventional methods.