Together with the assessment library, ASys includes a DSL that allows teachers to programmatically assess Java exams and exercises.
The DSL allows us to load a Java program (e.g., an exercise) and check whether it has been implemented correctly.
For instance, we can check the correct use of inheritance, interfaces, abstract classes, etc.
In particular, the DSL provides mechanisms to specify properties and assign marks to them.
Each exam is assigned with a set of evaluation pieces, and each evaluation piece is associated with one property that we want to check, and a mark that is assigned if the property holds. Properties can be specified using the library API. When properties hold, the correction can be done automatically, assigning the specified mark to each property. When a property fails, the system can be configured to either assign a mark (e.g., 0 points), or work semi-automatically: the teacher is prompted with the source code that caused the problem, the explanation of the property that fails, and a form to assign a mark and a review for this failing property. The DSL also gives support to this behavior. Concretely, all functionality of the DSL (creating assessment templates formed from evaluation pieces) has been accompanied with a GUI, so that teachers can graphically create assessment templates and include properties and marks using buttons and text boxes.