page3
Software Engineering Group Project 20: Design Specification/1.0 (Release)
1.
INTRODUCTION
1.1
Purpose of this Document
The purpose of this document is to describe the design of the Welsh Vocabulary Tutor program which adheres
to the Design Specification Standard Document [2] and General Documentation Standards [1] supplied by the
client.
1.2
Scope
This document covers a description of how the Welsh Vocabulary Tutor is designed, including how the software
will be broken down. This document should be read by all project members. It is assumed that the reader is
already familiar with the Welsh Vocabulary Tutor Requirements Specification [3] and the Design Specification
Standards [2].
1.3
Objectives
The objectives of this document are to:

Identify significant classes.

Link functional requirements to classes.

Identify and describe dependencies between modules.

Determine the public methods of said classes.

Describe how the classes interact with each other for major operations.

Identify significant algorithms.

Identify significant data structures.
2.
DECOMPOSITION DESCRIPTION
2.1
Programs in System
Our system is made up of a singular program. This program provides all the functionality required as specified
in the Requirements Specification for Welsh Vocabulary Tutor [3] document, including, but not limited to,
importing words, adding words manually, practicing words and monitoring achievement through testing the
user’s word knowledge. The program will also implement all functionality required to pass the functionality
tests defined in the Test Specification [4] document.
Our program structure will consist of four key packages including:

JSON – Package that is responsible for handling JSON including the reading/writing of definitions to
and from dictionary.json.

JavaFX – Package that contains the JavaFX classes that are all responsible for displaying the UI to the
user.

SelfAssessment – Package for holding the classes responsible for generating the user's self-assessment
questions.

Test – Package responsible for holding all the JUnit tests that ensure the program works properly.
2.2
Significant Classes
2.2.1
JSON Package

JSONProcessor – Contains functions responsible for saving and loading to and from the JSON file
which will be provided by the user, using the Jackson JSON library.
Aberystwyth University / Computer Science
Page 3 of 19