The automatic assessment of Z specifications

The need to automate the process of assessing a specification in a learning environment is identified to be one of the fundamental ways to improve the use of formal notation in specifying a real system. General issues involved in building an automatic marking system for computer-based courses are explored. Techniques that have been proposed for assessing a specification are also discussed. By considering the issues and the techniques, we describe how they can be used to build a system that is able to give a quality grade to a specification that is written in the Z language. In the system, four quality factors are taken into consideration; maintainability of a specification (which considers the typographic arrangement of a specification and the specification complexity), and correctness of a specification (which reflects the static correctness and the dynamic correctness of a specification). By using suitable quality metrics for specification maintainability, the results that are produced are compared to some values which can either be absolute values or relative to the model answer. The marks awarded for this factor are based on this comparison. Static correctness is carried out by applying a syntax and type checker. The marks granted for this factor depend on the outcome of the checker. Dynamic correctness is determined by employing a testing technique. In the context of a specification, the behaviour of a system-state, which is represented by so-called state variables, is analysed. The specification is 'executed' by using animation. The marks are given according to the correctness of the output and the final state. The system is implemented within the well-known courseware management system, Ceilidh. There are fundamental differences between Z specifications, and the subject matter of other courses taught using the Ceilidh system (which are mostly computer programming courses). For this reason we take some time in this thesis to explain (in some detail) the incorporation of the system within Ceilidh. The need for the fundamental components (i.e the editor, the syntax and type checker, the animator and the automatic marker) are discussed and described. The system has been used by a group of 13 students who attended a Z course within the School of Computer Science and Information Technology at the University of Nottingham during the 1997-1998 academic year. The students were given a questionnaire about the system. An analysis of these questionnaires shows that the currently implemented tools are beneficial and helpful to the students. We also test the results of the system and compare them with a small selected group of human markers. The testing reveals very encouraging results and shows that the system can mark student scripts with a good degree of accuracy. We conclude that this system can provide a very useful aid for teachers of the Z Specification language.

[1]  Maurice H. Halstead,et al.  Elements of software science (Operating and programming systems series) , 1977 .

[2]  Steve Benford,et al.  Early experiences of computer-aided assessment and administration when teaching computer programming , 1993 .

[3]  Richard A. Kemmerer,et al.  Testing Formal Specifications to Detect Design Errors , 1985, IEEE Transactions on Software Engineering.

[4]  Roger S. Pressman,et al.  Software engineering (3rd ed.): a practitioner's approach , 1992 .

[5]  William F. Smyth,et al.  Evaluating Measures of Program Quality , 1987, Comput. J..

[6]  James C. King,et al.  Symbolic execution and program testing , 1976, CACM.

[7]  Andrew M. Gravell,et al.  What is a Good Formal Specification? , 1990, Z User Workshop.

[8]  Susanne P. Lajoie,et al.  Sherlock: A Coached Practice Environment for an Electronics Troubleshooting Job. , 1988 .

[9]  Michael J. Rees,et al.  Automatic assessment aids for Pascal programs , 1982, SIGP.

[10]  Brian W. Kernighan,et al.  A system for typesetting mathematics , 1975, Commun. ACM.

[11]  Sallie M. Henry,et al.  The evaluation of software systems' structure using quantitative software metrics , 1984, Softw. Pract. Exp..

[12]  Curtis R. Cook,et al.  A paradigm for programming style research , 1988, SIGP.

[13]  Stephen S. Yau,et al.  Some Stability Measures for Software Maintenance , 1980, IEEE Trans. Software Eng..

[14]  Roger S. Pressman,et al.  Software Engineering: A Practitioner's Approach , 1982 .

[15]  Patricia Bylebyl Van Verth A system for automatically grading program quality (metrics, software metrics, program complexity) , 1985 .

[16]  Sheung-lun Hung,et al.  New Metrics for Automated Programming Assessment , 1993, Software Engineering Education.

[17]  Steve Benford,et al.  Ceilidh as a Course Management Support System , 1994 .

[18]  Stephen S. Yau,et al.  Some Stability Measures for Software Maintenance , 1979, IEEE Transactions on Software Engineering.

[19]  Brian W. Kernighan,et al.  Elements of Programming Style , 1974 .

[20]  Gerald M. Berns Assessing software maintainability , 1984, CACM.

[21]  Enrique Ivan Oviedo Control flow, data flow and program complexity , 1984 .

[22]  Maurice H. Halstead,et al.  Elements of software science , 1977 .

[23]  Peter Brusilovsky,et al.  ISIS-TUTOR: AN ADAPTIVE HYPERTEXT LEARNING ENVIRONMENT , 1994 .