page4
Software Engineering Group Project 20: Design Specification/1.0 (Release)

WelshDictionary – Class containing all the fields needed for storing dictionary definitions including
Welsh and English translations along with its word type and whether it’s a practice word or not.
2.2.2
JavaFX Package

Application – Programs main class that contains a list of the loaded dictionary definitions and is
responsible for running the application.

SharedCodeController – Abstract class that contains all the shared FXML elements between the
different controller classes including the sliding menu and the test score counter, to reduce code
duplication. This will be extended by all the controller classes.

ScreenSwitch – Class that contains all the scenes for the JavaFX user interface and will be responsible
for initiating the transition to new ones.
2.2.3
Self-Assessment Package

Question – Abstract class contains the basic information that all the shared information between the
types of test questions including the questions’ correct answers and possible answers. All question
classes will extend this class.

WordMatchQuestion – Class that contains all the details needed for the ‘Match the Meanings’
question type, including the 4 different practice definitions. This class will be used by the
AssessmentGenerator and extends the Question class.

WordEnterQuestion - Class that contains all the details needed for the ‘Translation’ question type,
including the practice definition that is being tested. This class will be used by the
AssessmentGenerator and extends the Question class.

SixMeaningsQuestion – Class that contains all the details needed for the ‘Six Meanings’ question
type, including the correct answer along with the five other possible answers. This class will be used by
the AssessmentGenerator and extends the Question class.

AssessmentGenerator – Class that contains methods to create a randomised list of questions that will
contain a random distribution of question types.
2.2.4
Test Package

JSONTest – Class that contains methods which will be used to test that the JSON package classes are
correctly loading and saving to and from the JSON file.

JavaFXTest – Class that contains methods to test that the application class is correctly storing the full
list of dictionary definitions.
Furthermore, this class will also test that the elements such as the sliding menu and score counter are
working as intended, along with testing that scenes are ending and transitioning correctly when
applicable.

SelfAssesmentTest – This class will test that the lists pulled in the self-assessment package are indeed
random, while also pulling the matching data from the dictionary.
2.3
Table Mapping Requirements to Classes
Functional Requirement
Classes implementing
FR1 Startup
Application,
LaunchScreenController,
SharedCodeController,
JSONProcesser,
WelshDictionary
FR2 Ordering of the list
LaunchScreenController,
WelshDictionary
FR3 Searching of list
LaunchScreenController,
WelshDictionary
FR4 Maintaining a practice list
Application,
LaunchScreenController,
Aberystwyth University / Computer Science
Page 4 of 19