A framework for the automated assessment of consistency between code and design

In this paper, we present an investigation into the development of a framework for the automatic grading (marking) of student submitted course work. We discuss this framework, its structure and its subsystems. Our context is the consideration of the case where undergraduate Computing students submit coursework that consists of two components: a design (using the UML methodology) and implementation (using the Java programming language). The focus of our framework is upon the consistency between the implementation and design. We discuss its context and development and highlight how we can infer structure from the student submission and use this to inform the assessment process. We define consistency from the viewpoint of a design and its implementation are two different representations of the same artefact. The design (in diagrammatic format) is viewed as prescribing the structure and function contained within the implementation, whilst the implementation (source code) is viewed as implementing the design whilst adhering to its specified structure and function. We consider consistency to be important as it enables the student to demonstrate adherence to the development life cycle. In making it explicit that we are grading a submission for consistency we wish to provide feedback that will engender within the student an engineering approach to the development of a software product.