mathphrase: a speech driven game for primary school children

83
MathPhrase: A Speech Driven Game For Primary School Children BSc(Hons) Computer Science Module: COM556M2 01/05/2008 Module Co-ordinator: Prof. Paul McKevitt Jennifer Hyndman: 40876106 Marcella Gallacher: 41128206 Siobhan Carlin:

Upload: others

Post on 23-Feb-2022

1 views

Category:

Documents


0 download

TRANSCRIPT

MathPhrase:

A Speech Driven Game

For

Primary School Children

BSc(Hons) Computer Science

Module: COM556M2

01/05/2008

Module Co-ordinator:

Prof. Paul McKevitt

Jennifer Hyndman: 40876106

Marcella Gallacher: 41128206

Siobhan Carlin:

Abstract

The aim of this project is to design and develop a system utilizing the CSLU toolkit as the

primary form of interaction between system and user. The system is a game specifically

aimed at primary school children that will enable them to practice their mathematics whilst

playing a game.

This report will provide a written account of the whole lifecycle of the project. It begins with

an introduction that provides an overview and brief description of the contents of the report.

This is followed by a literature review that includes a written account of the research untaken

into areas relevant to the project. Chapter 3 is concerned with identifying the requirements

for the whole system, including functional and non-functional requirements. Chapter 4

outlines the design process and Chapter 5 provides a step by step account of the

implementation process. Chapter 6 is concerned with testing the system and incorporates a

range of testing techniques including unit testing and system testing. The report concludes

with a look back at the chapters outlining any key points. Additionally it includes a critical

analysis of the system and any future improvements that could be made.

Table of Contents Abstract I 1 Introduction 1 1.1 Overview of chapters 1 2 Literature review 3 2.1 Introduction 3 2.2 Intelligent Multimedia 3 2.3 Math 3 2.4 Catchphrase 4 2.5 Speech technologies 4 2.5.1 CSLU Toolkit 4 2.5.2 CSLU toolkit core technologies 5 2.5.3 The Rapid Application Developer (RAD) 5 2.5.4 Tool Command Language 6 2.6 Relevant papers 6 2.6.1 Computational Models for Integrating Linguistic and Visual

Information: A Survey 6

2.6.2 SmartKom: Towards multimodal dialogues with anthropomorphic interface agents

8

2.6.3 BEAT: The Behaviour Expression Animation Toolkit 8 2.6.4 Men and Women, Maps and Mind 9 2.7 Human Computer Interaction (HCI) 10 2.8 Summary 11 3 Requirement Analysis 12 3.1 Introduction 12 3.2 User requirements 12 3.3 Similar systems 12 3.3.1 Junior Math Tutor 12 3.3.2 Sums 13 3.3.3 Analysis of similar systems 13 3.4 Functional and non-functional requirements 14 3.4.1 Functional requirements 16 3.4.2 Non-functional requirements 16 3.5 System requirements 17 3.5.1 Hardware requirements 17 3.5.2 Software requirements 17

3.6 Methodology 18 3.6.1 Different Methodologies 18 3.6.2 Waterfall model 18 3.6.3 Spiral development 19 3.6.4 Prototyping 19 3.6.5 Rapid application development 20 3.6.6 Object oriented methodologies 21 3.6.7 Unified Modeling Language 21 3.6.8 Choice of Methodologies 21 3.7 Storyboards 22 3.8 Summary 22 4 Design 23 4.1 Introduction 23 4.2 Design process 23 4.2.1 Quality design guidelines 23 4.3 System architecture 24 4.3.1 Architecture diagrams 24 4.3.2 Spoken Language Interface (SLI) Architecture 24 4.4 Unified Modeling language 25 4.4.1 Use case diagram 26 4.4.2 Activity diagram 27 4.5 Interface design 27 4.5.1 Logo design 29 4.5.2 Interaction guidelines for speech systems 29 4.5.3 Storyboards 30 4.6 Database design 32 4.6.1 Question Table 32 4.7 HCI analysis 33 4.8 Summary 34 5 Implementation 35 5.1 Introduction 35 5.2 Database implementation 35 5.3 Rapid Application Development (RAD) 36 5.3.1 MathPhrase SLI 37 5.3.2 Game subdialogues 37 5.4 MathPhrase functionality 29 5.4.1 Accessing the database 39 5.4.2 Code description 40 5.4.3 Using the variables 40

5.4.4 Accessing the web 40 5.4.5 Adding Speech functionality 41 5.4.6 Presenting Media 42 5.4.7 Repair dialogue 45 5.5 Summary 46 6 Testing 47 6.1 Introduction 47 6.2 Testing Process 47 6.3 MathPhrase testing process 47 6.3.1 Unit testing 47 6.3.2 Module testing 48 6.3.3 System testing 49 6.4 Summary 49 7 Conclusion and Critical Analysis 50 7.1 Evaluation and Critical Analysis 51 7.1.1 Observation results 51 7.1.2 Critical analysis 52 7.1.3 Future improvements 52 Appendicies 54 Appendix A: Design 54 A.1 Use case Flow of Events 54 A.2 Activity diagram 56 A.3 Storyboards 57 Appendix B: Implementation 59 B.1 MathPhrase main canvas objects and functions 59 B.2 Game1 Subdialogue canvas 61 B.3 Game1 subdialogue objects and functions 62 B.4 Images associated with a game in sequence 63 Appendix C: Testing 64 C.1 Unit testing – media object 64 C.2 Module testing (Game1) test cases 65 C.3 MathPhrase system test cases 72 References 76

- 1 -

1 Introduction 1.1 Aims and Objectives The aim of this project is design and implement a speech driven game,

namely MathPhrase specifically designed for primary school children. The

primary objective of the game is to add a degree of fun to a subject that can

sometimes be construed as ‘boring’ thus enabling children to practice

mathematics whilst playing at the same time. The game will incorporate

speech technology as a means of interaction with its user’s. It will be designed

using bright colours and fun graphics to appeal to its intended user group.

The data for the game will be stored in a database that will be accessed using

spoken dialogue.

1.1 Overview of Chapters This report documents the lifecycle of the project MathPhrase. It consists of

seven chapters beginning with a Literature Review followed by a

Requirements Analysis, Design, Implementation, Testing and a Conclusion.

Chapter 2 Literature Review This chapter is a written account of the background research undertaken into

areas relevant to the design and development of MathPhrase. Included is a

section on Intelligent Multimedia which outlines the difference between

traditional Multimedia and Intelligent Multimedia. It also includes a section on

Speech technologies concentrating on the CSLU toolkit as it is the primary

software development tool for MathPhrase.

Chapter 3 Requirements Analysis This chapter is concerned with analyzing and identifying the requirements for

the design and implementation of MathPhrase. It includes an outline of the

functional and non-functional requirements for MathPhrase and an overview

of the minimum hardware and software necessary for its successful design

and implementation.

- 2 -

Chapter 4 Design

This chapter is concerned with transferring the requirements gathered in the

previous chapter into a design specification for MathPhrase. Included are high

level architecture diagrams of the MathPhrase structure and Spoken

Language Interface (SLI), and are accompanied by in-depth descriptions. Also

included are use case and activity diagrams, logo design ideas and a set of

storyboards representing all interfaces, these have also been utilised to

evaluate MathPhrase against the HCI guidelines.

Chapter 5 Implementation This chapter presents a step by step account of the implementation of

MathPhrase. Included is the implementation of the database which is

accompanied by a number of illustrations and diagrams. Also included is a

detailed account of the implementation of the SLI and an overview of how the

database and SUI are integrated.

Chapter 6 Testing and Evaluation This chapter is concerned with the testing process of MathPhrase. It briefly

describes each of the testing techniques employed to test MathPhrase. Also

included is a description of the format of the test cases utilised. It concludes

with an analysis of the results of the tests.

Chapter 7 Conclusion This chapter concludes the report; it takes a brief look back at the previous

chapters highlighting any key points and problems encountered. Also

included is a critical analysis which was undertaken to aid in future

improvements.

- 3 -

2 Literature Review 2.1 Introduction This chapter of the report presents a written account of the background

research undertaken into the subject areas relating to the design and

development of a spoken dialogue system aimed at teaching primary school

children math by means of play.

2.2 Intelligent Multimedia (IMM) As humans we make use of a wide range of multimedia going about our every

day lives interacting and communicating with each other. According to Oliver

(2000, p. 1) ‘Multimedia’ is simply being able to communicate in more ways

than one. Multimedia is the digital integration of text, graphics, animation,

audio, and video that provides users with a high level of control and

interaction. Intelligent Multimedia (IMM) aims to integrate multimedia

capabilities with logic, intellect and intelligence. McKevitt (1997, p. 1) states

that, “Intelligent MultiMedia is a growing area which involves the computer

processing of language and vision information and representing it in terms of

its semantics”. Semantics refers to the meaning of what is said and seen and

the goal of intelligent multimedia systems includes modelling the semantics of

interactions and processing the semantics of interactions.

2.3 Math Math is an integral part of our lives; knowledge of math is required to be able

to manage household finances, to shop and even for socialising. Throughout

our working lives the majority of occupations require some understanding of

math, whether it’s working at a supermarket till, trading on the stock market or

managing a Multi-National organisation, the degree of knowledge may differ

nevertheless maths is a necessity. Therefore learning math is imperative,

however for some kids and some adult’s math is not easy and not enjoyable.

- 4 -

2.4 Catchphrase Catchphrase is defined by WordNet (2007, p. 1) as “a phrase that has

become a catchword”. However Catchphrase is also a popular television

game show, the objective is for contestants to guess a catchphrase displayed

as an image on a screen obscured from view by twelve squares. A contestant

needs to answer a question correctly to be able to remove a square, as each

square is removed the money is reduced. The contestant who guesses the

catchphrase first wins the money and whoever has the most money at the end

of the round wins the game. MathPhrase is an educational version of Catchphrase aimed at primary

school children, it is based on the same concept of answering questions and

removing squares to uncover an image, however the questions are

mathematical and the reward will be points as opposed to money.

MathPhrase will utilize spoken dialogue to ask random questions, consider

the answers and provide feedback.

2.5 Speech Technologies Spoken dialogue systems enable humans to interact with a computer using

natural spoken language as they do with each other. Intelligent speech

based interfaces enhance and improve a users experience whilst facilitating

access to information promptly and efficiently. Microsoft (2006, p. 1) state

that, “their vision for speech technology is empowering people with innovative

speech-enabled applications on every device, whether a desktop or TabletPC,

mobile phone or PDA, or via a standard telephone”.

2.5.1 CSLU Toolkit As described on their website (CSLU 2008, p. 1), “the CSLU toolkit is a

comprehensive suite of tools to enable exploration, learning, and research

into speech and human-computer interaction” The CSLU toolkit was

developed in 1992 at the Centre for Spoken Language and Understanding

(CSLU), their intention (CSLU 2007 p.1) is, “to provide a basic framework and

tools for people to build, investigate and use interactive language systems”.

The toolkit consists of a compilation of tools comprised of audio, display,

- 5 -

speech recognition, speech generation and animated characters that enable

exploration, learning and research into speech and human computer

interaction (HCI).

Figure 2.1 Overview of CSLU Toolkit (CSLU 2008)

2.5.2 CSLU toolkit core technologies The core technologies included in the CSLU toolkit are:

Facial Animation.

Text-to-Speech Synthetic voice.

Speech Recognition.

2.5.3 The Rapid Application Developer (RAD) The RAD is a powerful development tool within the CSLU toolkit that allows

for the speedy development of spoken dialog interfaces by means of drag and

drop. Its ease of use makes it possible for an inexperienced user to develop

professional speech interfaces by placing objects on the canvas and

assigning a sequence of activities using arrows. RAD TCL/TK functions as a

visual interface to the low level processing modules, which include audio,

- 6 -

telephony and speech recognition. Objects can be positioned and linked on

the RAD canvas to develop the speech recognition process.

Figure 2.3 provides an overview of the RAD canvas.

2.5.4 Tool Command Language (TLC)

Tool Command Language (TCL) is a powerful dynamic programming

language that can be utilised for web and desktop applications, networking,

administration and testing. According to ActiveState (2007, p. 1) benefits

include:

Rapid Development

Graphical User Interface

Cross Platform Applications including Windows, Macintosh and Unix

Easy to Learn

Established but Evolving

Extend, Embed and Integrate with other software

Easy Deployment

Hardware and Software Testing

Network Aware Applications

The standard GUI for TCL and other dynamic languages is Tk which can

produce native applications that run unaffected across Windows, MAC OS

and Linux.

2.6 Relevant Papers This section outlines a number of relevant papers that have been reviewed

and discussed in the Intelligent Multimedia module. These papers relate to

the areas of language and vision, speech, gesture and facial expressions.

2.6.1 Computational Models for Integrating Linguistic and Visual Information: A Survey Computational Models for Integrating Linguistic and Visual Information is

based on a survey of research papers. It discusses the importance of linking

- 7 -

language and vision in order for a system to exhibit intelligent behaviour. The

paper includes an examination of existing computational models,

computationally motivated theories of human cognition and major research

issues, which arise in the task of integrating visual and linguistic information.

The components of a computational model for integrating linguistic and

pictorial information are illustrated in Figure 2.4. The different tasks that are

attempted have different processing paths associated with them however the

integrated knowledge base is common in all tasks. The mapping of

information from one modality to another is enabled by this knowledge base,

which contains visual models and language models.

The correspondence problem is discussed throughout the paper, which is how

to associate visual events with words and vice versa. The paper also

acknowledges that more research is required in developing an intelligent

agent that has both language and perceptual abilities.

Figure 2.2 Core Technologies of CSLU Toolkit (CSLU 2008)

- 8 -

Figure 2.3 RAD Canvas (CSLU 2008)

2.6.2 SmartKom: Towards Multimodal Dialogues with Anthropomorphic Interface Agents

SmartKom is a multimodal dialog system combining speech, gesture and

facial expressions. The system utilises a DV camera for obtaining facial

expressions, a directional microphone for capturing speech input and an

infrared camera to track gestures. It successfully recognises spontaneous

speech along with video detection of natural gestures and facial expressions.

2.6.3 BEAT: The Behaviour Expression Animation Toolkit BEAT: The Behaviour Expression Animation Toolkit is a system which allows

animators to input typed text that they wish to be spoken by an animated

figure. The animated figure controls the movements of the hands, arms and

face along with the intonation of the voice using the linguistic and contextual

information contained in the text.

- 9 -

2.6.4 Men and Women, Maps and Minds: Cognitive Bases of Sex-Related Differences in Reading and Interpreting Maps Men and Women, Maps and Minds is based on four studies that were carried

out involving gender related differences in reading and interpreting maps.

Maps and instructions in the form of visual and linguistic information were

contained in each study. The results found that men rely on metric distance

and directional information as opposed to women who tend to use proximal

landmarks.

Figure 2.4 A Computational Model for Integrating Linguistic and Pictorial Information

(Srihari 1995).

- 10 -

2.7 Human Computer Guidelines (HCI) According to Benyon (1990, p. 11) “Human Computer Interaction (HCI) is

concerned with the design of computer systems that are safe, efficient, easy

and enjoyable to use as well as functional”. In order to ensure the design and

development of user friendly human-computer interfaces a set of eight HCI

guidelines have been drawn up. Santos (2006) describes the HCI guidelines

as:

Consistency - considered as a vital for the usability factor of an interface.

Consistency falls into the following three categories:

1. Internal consistency ensuring that all system features remain

consistent throughout.

2. External consistency ensuring to utilise the same icons, menus, layout

style throughout system.

3. Real-world consistency the use of every day objects to represent

functions such as a disc to save or a brush to paste.

Compatibility with Users Expectations – avoid computer jargon or phrases

that everyday users will not understand.

Flexibility and Control –flexible and meets the needs of a wide range of users

at different levels for example novice to expert.

Explicit Structure – do not utilise overly complex features, the interface should

be straightforward, concise and simple in its style.

Continuous and Informative Feedback – feedback should be provided

regularly, particularly if any actions have been undertaken.

Error Prevention and Correction – minimise the possibility of errors occurring;

include features like the ‘undo’ should be available for correction purposes.

User Documentation and Support – the interface should contain a help feature

as part of the application. Documents such as a ‘User Manual’ and ‘User

Guide’ should come with the system.

Visual Clarity – the interface should be designed in a manner that is clear and

concise for the user.

- 11 -

2.8 Summary This chapter presents a written account of the background research

conducted into areas specific to the design and development of a speech

operated mathematical game for primary school children. Included are

sections on Multimedia and Intelligent Multimedia (IMM) fundamental to the

success of the proposed project as the game resides resolutely in these

areas. Also included is a section on speech technologies, as previously

stated the game will incorporate spoken dialogue as its primary form of

interaction with a user. Furthermore there is a section analysing a selection of

papers that closely relate to IMM and have been studied throughout the IMM

module. The chapter concludes with an overview of the HCI guidelines which

will be referred to throughout this report and utilised in the design and

development of the proposed game.

- 12 -

3 Requirements Analysis 3.1 Introduction The aim of a requirements analysis is to identify and analyse the requirements

for a proposed system and then design and develop a system that addresses

them. This chapter aims to identify user requirements, system requirements

and functional and non-functional requirements for MathPhrase. For

evaluation purposes a similar systems analysis will be undertaken and the

results documented and analysed to ensure that MathPhrase will contain all

the required functionality.

3.2 User Requirements The target users of MathPhrase are primary school children therefore it is

important to ensure that it is designed and developed with their unique needs

in mind. MathPhrase will enable its users to play a highly entertaining game

and at the same time practice mathematics. According to Sommerville (2001,

p. 106) user requirements “should only specify the external behaviour of the

system and should avoid, as far as possible design characteristics”. They

should describe the functional and non-functional requirements of a system in

language that is understandable by users who don’t possess any technical

knowledge.

3.3 Similar Systems A range of systems is currently available to support in teaching maths to

children. In this section two similar systems are outlined that will assist in

determining the standard features required for MathPhrase.

3.3.1 Junior Math Tutor (2008) Junior Math Tutor is one of the tutoring systems available from Softweigh

Multimedia. The system provides simple addition, subtraction, multiplication

and division to assist children in improving their basic arithmetic. The

- 13 -

interface of Junior Math Tutor is illustrated in Figure 3.1. The key features of

the system are outlined below:

• An interactive character that can speak to the child and help with

multiplication tables.

• The child may type the answer to the question or ‘count-the-dots’ may

be used to help answer the question.

• After each question is answered, the character provides spoken

feedback to the child.

3.3.2 SUMS SUMS are a set of games and activities that are available on a CD-ROM

published by E-Skilled Limited. The games and activities are aimed at

children between the ages of 5 and 12. Samples are available from the

website and include the ‘Rabbit Takeaway’ and ‘Hidden Craft’ games.

The ‘Rabbit Takeaway’ game is shown in Figure 3.2 and uses subtraction with

two levels, easy and harder. The easy level uses the numbers from 1 to 10 to

subtract and the harder level uses the numbers from 1 to 20 to subtract.

Figure 3.3 shows the ‘Hidden Craft’ game which asks the child to find ships

that are hidden on a grid by using references e.g. E5. The child is asked to

click on the square relating to the specific reference. Both the ‘Rabbit

Takeaway’ and ‘Hidden Craft’ game allow the child to select a clue if required

and their current score is also displayed to encourage them to improve each

time they play the game.

3.3.3 Analysis of Similar Systems On analysis of Junior Math Tutor and SUMS it was found that both systems

had the following positive features available:

• Easy to use

• Use of animation

• Use of sound

• Appropriate feedback

• Illustrative

- 14 -

The analysis of these two similar systems presently available therefore assists

in determining the features and characteristics that are necessary for

MathPhrase. In addition to the features described above, MathPhrase will

also be a totally speech driven maths tutoring system for children.

Figure 3.1 Junior Math Tutor (Softweigh Multimedia, 2008)

3.4 Functional and Non-functional Requirements Requirements are broken down into functional and non-functional

requirements. According to Sommerville (2001, p. 100) “Functional

requirements describe the functionality or services that the system is

expected to provide” and “Non-functional requirements are those

requirements which are not directly concerned with the specific functions

delivered by the system”.

- 15 -

Figure 3.2 SUMS ‘Rabbit Takeaway’ (SUMS, 2008)

Figure 3.3 SUMS ‘Hidden Craft’ (SUMS, 2008)

- 16 -

3.4.1 Functional Requirements Functional requirements define the eventual behaviour of a system.

According to Bruegge & Dutoit (2004, p.125) functional requirements,

“describes the interactions between the system and its environment

independent of its implementation”. The functional requirements for

MathPhrase include:

• The system will be easy and straightforward to use.

• Natural spoken language as input and output.

• All Interfaces will be consistent.

• Spoken feedback on all questions whether correct or incorrect.

• Correct input will lead to an enthusiastic, motivational response.

• Suitable content for intended age group.

• Different levels to suit different abilities.

• User can select the level they wish to play on.

• MathPhrase will allow the child to practice their mathematical ability

and play at the same time.

• Integrated repair subdialogue.

• Optional facial animator.

• Integrated spoken Instructions.

• Interface will be designed in accordance with HCI guidelines.

3.4.2 Non-functional requirements Non-functional requirements are those requirements that relate more directly

with the properties of the system such as reliability, usability and

maintainability. Bruegge & Dutoit, (2004, p.126) describe non-functional

requirements as “aspects of the system that are not directly related to the

functional behaviour of the system.” The non-functional requirements for the

MathPhrase include:

• Reliability - the system will be thoroughly tested and should not

succumb to failure. There will be a recovery mechanism in place in the

form of a repair subdialogue.

• Usability - the interface will be designed in a simplistic manner and in

accordance with the needs of its users.

- 17 -

• Performance – the system will carry out its required functions.

• Maintainability – the system will be easy to run and maintain and will

not place a burden on system resources.

• Security – the system will be secure.

• Portability – the system will operate on all systems and across all major

platforms.

3.5 System Requirements Sommerville (2007, p. 109) states that systems requirements “may serve as a

basis for the contract for the implementation of the system and should

therefore be complete and consistent specification of the whole system”. This

section outlines the minimum hardware and software requirements for the

design and development of MathPhrase.

3.5.1 Hardware Requirements The minimum hardware requirements of MathPhrase are:

• A PC

• 512MB RAM

• 100 MB Hard Disk Space

• 500 MHz Processor

• Sound Card

• Microphone / headset

3.5.2 Software Requirements The software required for the development of MathPhrase is:

• Operating System.

• Windows XP

• Software development tool.

• CSLU toolkit

• Database

• Microsoft Access

• Create Images

• Macromedia Fireworks

- 18 -

• Modelling tool

• Rational Rose

3.6 Methodology A methodology is a formalised approach to developing software; it is a series

of steps, rules and procedures that must be adhered to ensure a high quality

system. The main advantage of using a methodology is the amount of control

that can be maintained over the whole development process as a project is

divided up into smaller manageable units.

3.6.1 Different Methodologies There is a wide range of diverse methodologies available to suit different

types of projects each providing a different development strategy. Therefore it

is vital to select the correct methodology for the development of MathPhrase.

Different types of methodologies include:

• Waterfall Model

• Spiral Model

• Prototyping

• Rapid Application Development

3.6.2 Waterfall Model According to Pressman (2004, p. 79) “The waterfall model sometimes called

the classic life cycle, suggests a sequential approach to software

development that begins with customer specification of requirements and

progresses through planning, modelling, construction, and deployment,

culminating in on-going support of the completed software”. Using the

waterfall each phase of a project is represented from its conception to its

completion. Projects move methodically from one phase to the next, a phase

must be complete before moving to the next, plus once a phase is complete

there is no turning back. Advantages include the clear definition of

requirements before implementation begins however disadvantages include

the length of time it takes from the project proposal to the delivery of the

actual system and generally most software projects rarely tend to follow the

- 19 -

processes specified by the model. Figure 3.4 illustrates the different phases

and flow a project follows from the planning phase to delivery of the final

system using the waterfall development model.

3.6.3 Spiral Development Boehm’s spiral model represents the software process as a spiral as opposed

to an incremental sequence of activities. Each loop in the spiral represents a

software development phase. According to Sommerville (2001, p. 54) “The

important distinction between the spiral model and other software process

models is the explicit consideration of risk in the spiral model” A defining

feature of the spiral model is that risks are explicitly assessed and resolved

throughout the process. Figure 3.5 illustrates the loops in the spiral model

each representing a different phase of the software development.

Figure 3.4 Waterfall model (Paris 2007)

3.6.4 Prototyping A prototype is most useful when a customer is unsure of their requirements

definition or a software designer or developer are unsure of the requirements

or design specifications. According to Sommerville (2001, p. 172) “a

prototype is an initial version of a software system which is used to

- 20 -

demonstrate concepts, try out design options and, generally, to find out more

about the problem and its possible solutions”.

Throwaway Prototyping

Preece (1994, p. 541) describes throwaway prototyping as an experimental

system used as a means to identify, clarify and validate system and user

requirements. The prototype is discarded when the system specification has

been agreed.

Figure 3.5 Spiral model (Sommerville 2001)

Evolutionary Prototyping The evolutionary prototype will eventually evolve into a final system, at each

cycle the prototype is evaluated developed, improved upon and tested, this

cycle continues until the final system has been developed. According to

Preece (1994, p. 540) “evolutionary prototyping is the most extensive form of

prototyping: it is a compromise between production and prototyping”.

3.6.5 Rapid Application Development According to Pressman (2004, p. 81) “Rapid Application Development (RAD)

is an incremental software process model that emphasizes a short

- 21 -

development cycle”. Ensuring that the requirements are well defined and

understood and the project is organised and managed proficiently, RAD can

enable the development of a fully functional system within a very short

timeframe.

3.6.6 Object Oriented Methodologies Object-oriented design (OOD) is a software development process which uses

objects and their interactions to express systems requirements. OOD

methodologies include:

♦ Booch Method

♦ Rumbaugh Method

♦ Jacobson Method

♦ Unified Modeling language (UML)

3.6.7 Unified Modeling Language IBM (2006, p. 1) state that, “the UML is the industry-standard language for

specifying, visualising, constructing, and documenting the artifacts of software

systems”. The UML consists of a number of diagrams each depicting a

different view of a system, for example a user’s view differs from a

programmers view. The different perspectives portrayed in the diagrams are

combined to create a depiction of the eventual system that can then be

analysed and improved upon.

3.6.8 Choice of Methodologies As a result of the previous analysis and evaluation of development and design

methodologies it has been decided to use the RAD methodology for the

development of MathPhrase as it is most suited to the allocated timeframe.

Additionally it has been decided to use the UML for the design methodology

as it supports a wide compilation of tools and enables the modeling of a

system from many different views and perspectives.

- 22 -

3.7 Storyboards Storyboards can be utilised to provide a pictorial indication of everything that

will be contained in a system such as screen layouts, images, text and

menus. According to Mallon (2007, p. 1) storyboards are a means of creating

a visual description of the design of prospective system. Advantages of

storyboards include:

♦ Problems can be discovered from a storyboard that may prove costly in

later stages of the development.

♦ If the storyboard looks wrong, then the system is most likely to be

wrong.

♦ Can provide a point of reference for a customer.

Storyboards will be utilised in the design phase of MathPhrase to provide

diagrammatic representations of the interfaces and to enable an analysis and

evaluation of the HCI guidelines to ensure the interfaces adhere.

3.8 Summary At the conclusion of this chapter the functional and non-function requirements

of MathPhrase have been specified and the software and hardware

requirements have also been decided on. A similar systems analysis has

enabled the identification of features available in similar systems available on

the market that should be available in MathPhrase. Finally development and

design methodologies have been analysed and selected and storyboarding

will be utilised in the design of the MathPhrase interfaces. Chapter 4 will take

the requirements specification and transfer it to a design specification for

MathPhrase.

- 23 -

4. Design 4.1 Introduction This chapter takes the requirements specification produced in the previous

chapter and transforms it into the design specification for MathPhrase.

Included are an architectural representation of the system and an

accompanying description. Data modeling has produced a use case diagram,

a flow of events and activity diagrams. The interfaces for MathPhrase are

represented using storyboards that are further utilised to analyse and evaluate

them against the HCI guidelines.

4.2 Design Process The design process is concerned with transforming the requirement

specification into the design specification. According to Pressman (2004, p.

261) “Software design is an iterative process through which requirements are

translated into a ‘blueprint’ for constructing the software.

4.2.1 Quality Design Guidelines Quality guidelines are necessary in order to evaluate the design specification.

Pressman (2004, p. 262) presents the following guidelines:

1. A design should exhibit an architecture that:

• Has been created using recognisable architectural styles or

patterns.

• Is composed of components that exhibit good design

characteristics.

• Can be implemented in an evolutionary manner.

2. A design should be modular, the software logically partitioned into

subsystems.

3. A design should contain distinct representations of data, architecture,

interfaces and components.

4. A design should lead to data structures that are appropriate for the classes

to be implemented and taken from recognisable data patterns.

- 24 -

5. A design should lead to components that exhibit independent functional

characteristics.

6. A design should lead to interfaces that reduce the complexity of

connections between components and the external environment.

7. A design should be derived using a repeatable method that is driven by

information obtained during software requirements analysis.

8. A design should be represented using a notation that effectively

communicates its meaning.

4.3 System Architecture Sommerville (2007, p. 243) describes the first stage of the design process as

the architectural design. Sommerville (2007, p. 243) states “the process of

establishing a basic structural framework that identifies the major components

of a system and the communications between these components”.

4.3.1 Architecture Diagrams The architecture of MathPhrase is presented as a high level block diagram

representation in Figure 4.1. This depicts a user communicating with the

CSLU toolkit which accesses MathPhrase database whilst connecting to the

World Wide Web (WWW).

4.3.1 Spoken Language Interface (SLI) Architecture As previously stated in Section 3.5.2 the CSLU toolkit has been selected to

implement the Spoken Language Interface (SLI) using the Rapid Application

Development (RAD) tool. Figure 4.2 illustrates an overview of MathPhrase

Spoken Language Interface (SLI). This diagram presents a step by step

representation of the MathPhrase SLI process described in the following

steps: 1. MathPhrase SLI is activated by user clicking on icon.

1. MathPhrase welcomes the user and offers the option to play or listen to

instructions.

2. If the user selects instructions, they access the instructions

subdialogue and hear instructions.

- 25 -

3. The user is prompted to begin game or exit application.

4. If the user selects ‘exit’ MathPhrase closes down.

5. If the user selects ‘begin’ the database is accessed and a question is

spoken to the user.

6. If the user answers the question incorrectly, feedback is provided and

the user is asked another question.

7. If the user answers the question correctly an image object displaying

an image partially covered with five squares is displayed. The user is

prompted to guess the image.

8. If they select not to guess, steps 6 to 8 are reiterated however each

time the image object is displayed another square will be removed

uncovering the image.

9. If the user selects ‘guess’ and guesses incorrectly steps 6 to 8 are

repeated.

10. If the user guesses the image correctly a second round commences

and steps 6 to 10 are reiterated.

11. If the user guesses the second image correctly they are given the

option of viewing the full image on a web page to download print and

colour.

12. When the game is over the user will be prompted to play again if yes

the step 5 or else step 4

4.4 Unified Modeling Language As previously stated in Section 3.6.8 the UML has been selected as the

modelling tool for MathPhrase. Rational Rose has been selected as the

software development tool largely due to it’s accessibly and additionally it

supports iterative development and enables the modelling of a system from a

range of different perspectives. Rational Rose is an object-oriented

computer-aided software engineering (CASE) tool that enables a user to

visualise and understand the requirements and architecture of a system

before beginning implementation. It has been decided to model MathPhrase

using a use case diagram to illustrate how the user will interact with the

system and a set of activity diagrams to depict the systems functionality.

- 26 -

Figure 4.1 High level architecture of MathPhrase 4.4.1 Use case diagram

MathPhrase is represented as a use case diagram depicted in Figure 4.3.

This diagram illustrates the activities which are performed by MathPhrase and

activated by the user. The syntax used in this diagram involves:

• An actor represents the user who is external to the system yet

derives benefit from it.

• A use case represents a piece of MathPhrase functionality. This is

not a single action but a series of actions based upon a specific

input.

• An association relationship links the user with MathPhrase. The

directional arrow enables the interpretation of an action initiated by

the user and what MathPhrase presents to the user.

Each use case is documented with a flow of events to show the sequence of

actions and the associated description of the functionality. The flow of events

for MathPhrase can be viewed at Appendix A.1. Each flow is comprised of six

fields containing the following information:

CSLU Toolkit

MathPhrase Database WWW

Input /Output

Displays Accesses

Accesses & Retrieves

User PC

- 27 -

• Use case name: This outlines the name of the associated use case

represented in the accompanying diagram.

• Description: presents a brief description of the functionality the use

case represents.

• Pre-condition: a statement of what action triggers this particular

piece of functionality.

• Flow of events: outlines the sequence of actions that fall within the

use case.

• Alternative flow: in some use cases there may be an alternative

sequence of actions based on a different input. This flow outlines

any alternative actions that may occur.

• Post condition: outlines the action taken after the piece of

functionality has occurred either from the system or user.

4.4.2 Activity diagram MathPhrase is represented from a different perspective in an activity diagram

that can be viewed at Appendix A.2 Figure A.2.1. This diagram presents the

activities carried out by MathPhrase in more detail than the use case diagram.

The syntax utilised in this diagram is similar to the use case diagram however

relationships are state transitions and use cases are activities. State

transitions are represented by arrows and provide directional flow between

activities. Also included are decision points represented by the diamond

shape objects. These depict alternative paths MathPhrase can take

dependent on a user’s decision.

4.5 Interface design The interface resides between a user and a system. Therefore it must be

designed to suit the needs of its intended user group in this instance children.

The user requirements are considered frequently at this stage of the design

process and the HCI guidelines are continuously referred to ensure

compliance.

- 28 -

Open MathPhase

Welcome

Instructions Begin Exit

Question

Incorrect Correct

Guess image Y/N

Correct

Next level

Question

Correct Incorrect

Guess image Y/N

Incorrect

Correct Display web page Y/N

Incorrect Play again or Exit

Webpage

Yes

No

No

Yes

Yes

No

Figure 4.2 An

overview of

MathPhrase SLI

Yes

Yes

Yes

- 29 -

4.5.1 Logo design A logo is an important feature of any product ensuring immediate recognition,

inspiring trust, admiration and loyalty. The logo created for MathPhrase was a

result of brainstorming ideas until the selected logo illustrated in Figure 4.5

was decided on.

Manage question

Manage answer

Manage media

Manage Media Response

Manage web image

user

MathPhrase Usecase Diagram

Figure 4.3 MathPhrase use case diagram

4.5.2 Interaction guidelines for speech systems A key issue when designing a user interface is how information can be

communicated to and from the system. User, computer interaction is the

issuing of commands and associated data to a system and the presentation of

the resulting data from the system. There are a number of interaction

guidelines that should be considered and adhered to when designing spoken

dialogue systems. Bernsen et al. (1998 p. 88) developed a set of guidelines

for the design of cooperative spoken human machine interaction; these are

presented in Table 4.1. GG stands for generic guideline and SG stands for

specific guideline.

- 30 -

Figure 4.5 MathPhrase logo

4.5.3 Storyboards As previously stated in Section 3.7 storyboards are utilised to represent

MathPhrase GUI design. Storyboards have been used to represent

MathPhrase interfaces at each stage of the game. Figure 4.6 illustrates the

first interface a user accesses when they load the game. The user is

prompted either to begin playing the game or hear instructions. Figure 4.7

illustrates the interface if the user selects play. The remaining storyboards can

be viewed at Appendix A.3. Figure A.3.1 depicts the instructions interface.

When the game commences, the user is asked a question, on a correct

response a square is removed from a media object which contains a partially

covered image as illustrated at Appendix A.3 Figure A.3.2. If the user cannot

guess the image they are presented with another question. On each correctly

answered question the media object will remove another square.

The complete process can be viewed at Appendix A.3 Figure A.3.3 to Figure

A.3.7 inclusive. Figure A.3.8 illustrates the ‘option to print image’ interface that

is displayed as a webpage.

- 31 -

Interaction Aspect G/S

G no.

Generic or Specific Guideline

Aspect 1: Informativeness GG1 *Make your contribution as informative as is required (for current purposes of the exchange).

SG1 Be fully explicit in communicating to users the commitments they have made.

SG2 Provide feedback on each piece of information provided by the user

GG2 *Do not make your contribution more informative than is required

Aspect 2: Truth and Evidence

GG3 *Do not say what you believe to be false

GG4 *Do not say that for which you lack adequate evidence Aspect 3: Relevance GG5 *Be relevant i.e. be appropriate to the immediate needs at

each stage of the transaction. Aspect 4: Manner GG6 *Avoid obscurity of expression. GG7 *Avoid Ambiguity. SG3 Provide same formulation of the same question (or

address) to users everywhere in the systems interaction turns.

GG8 *Be brief (avoid unnecessary prolixity). GG9 *Be orderly. Aspect 5: Partner asymmetry

GG10 Inform the users of important non-normal characteristics which they should take into account in order to behave cooperatively in spoken interaction. Ensure the feasibility of what is required of them.

SG4 Provide clear and comprehensible communication of what the system can and cannot do.

SG5 Provide clear and sufficient instructions to users on how to interact with the system.

Aspect 6: Background knowledge

GG11 Take partners relevant background knowledge into account.

SG6 Take in to account possible (and possible erroneous) user inferences by analogy from related task domains.

SG7 Separate whenever possible between the needs of novice and expert users (user-adaptive interaction).

GG12 Take into account legitimate partner exceptions as to your own background knowledge.

SG8 Provide sufficient task domain knowledge and inference. Aspect 7: Repair and clarification

GG13 Enable repair or clarification meta-communication in case of communication failure.

SG9 Initiate repair meta-communication if system understanding has failed.

SG10 Initiate clarification meta-communication in case of inconsistent user input.

SG11 Initiate clarification meta-communication in case of ambiguous user input.

Table 4.1 Guidelines for Co-operative spoken human machine interaction (Bernsen et al.

1998, p .91)

- 32 -

Figure 4.6 Initial MathPhrase interface Figure 4.7 MathPhrase begin interface

4.6 Database Design MathPhrase utilises an Access database to store the necessary data for the

game such as questions, answers and feedback. This enables manipulation

of the data without affecting the MathPhrase application. Advantages of

databases include:

Consistency of data: MathPhrase will always obtain the correct data in the

correct format.

Reduce redundancy: duplication of data can be kept to a minimum as if it was

hard coded into the system; vast amounts of questions can be duplicated

unknowing.

Data independence: data can be changed without changing the MathPhrase

components which access it.

Security: extra security for example if MathPhrase crashes or fails to initialise,

the data will not be affected.

4.6.1 Question Table There is only one table required for MathPhrase which is ‘Question’. This

table contains the games questions and related answers. The fields contained

in Questions are outlined below with their associated data types:

- 33 -

Question No: Int

The question number is the primary key. The primary key is the unique

identifier and is used by MathPhrase to randomly select the questions.

Question: String

The question field stores the questions that MathPhrase asks the user in 2 + 1

format.

Answer: String

The answer field stores the corresponding answer to a question. This is

stored as a string in worded form to enable the speech recogniser to

recognise the word as it being compared to a ‘speech string’.

4.7 HCI analysis The HCI guidelines outlined in Section 2.x aim to ensure that a system is

designed in a manner that enables the user to complete their tasks safely,

effectively, efficiently and enjoyable and overall contribute to a successful

interface design. The interfaces of MathPhrase as represented in storyboards

have been analysed and evaluated against the HCI guidelines and used to

identify the extent to which MathPhrase interfaces complies with them.

Consistency: MathPhrase interfaces are consistent throughout. The images

will remain in the same position in the screen at all times; the only changes

will be the image in the image object.

Compatibility with users’ expectations: The terminology, questions and

images used will be appropriate for the intended user’s age group. The

prompts for user input are short and require only key words to be recognised

rather than long sentences.

Flexibility and control: MathPhrase is designed to control the users input.

There is the option to exit the game at any point simply by exiting the

MathPhase subdialogue, additionally the user has two chances to exit the

system before and after a game.

Explicit Structure: The interfaces of MathPhrase are well structured. The

images that are complete are removed therefore there is no unnecessary

information stored.

- 34 -

Continuous and informative feedback: MathPhrase will provide continuous

and informative feedback as spoken dialogue. The system will acknowledge a

non response from a user and quickly prompt for input.

Error prevention and Control: The CSLU toolkit incorporates an integrated

repair subdialogue and is configured to re-try if a user utterance is not

recognised.

Visual Clarity: The interfaces are clear and concise and easily understood as

they are presented in correlation with the prompts for recognition. No visual

information will be presented to the user unless it is required.

User documentation and support: MathPhrase utilises spoken dialogue as its

primary form of input and output. Additionally the words spoken will be

displayed in a text box enabling a user to follow the game. Visual aids will also

be used in appropriate places complementing the spoken dialogue.

Furthermore instructions on how to play the game are provided.

4.8 Summary The design of MathPhrase has outlined the structure of the system in terms of

an architecture diagram representing its major components. The UML has

been utilised to model the interactions and activities of the user and the

system by use case and activity diagrams. The interface has been

represented by storyboards and analysed against the HCI guidelines to

ensure good interface design. The database has been outlined with the table

data types and names fully identified and specified.

- 35 -

5 Implementation 5.1 Introduction This chapter is a written account of the implementation process of

Mathphrase. According to Sommerville (2001, p. 45) during the

implementation stage of the software development process “the software

design is realised as a set of programs or program units”. This chapter

presents a step by step account of the implementation of the Mathphrase

database and SLI.

5.2 Database implementation The MathPhrase database is implemented using Microsoft Access. Access

provides two views when creating tables, a design view and a datasheet view.

Figure 5.1 depicts the design view. This is used to define the table name and

data type. Figure 5.2 depicts the datasheet view which is used to directly

populate each field with appropriate data.

 

 

Figure 5.1 Design view of MathPhrase Question table

- 36 -

Figure 5.2 data sheet view of MathPhrase question table

5.3 Rapid Application Development (RAD) CSLU (2008, p. 1) describe RAD as the “toolkits high-level application

developer”. The following objects available in RAD have been utilised in the

implementation of MathPhrase Spoken Language Interface (SLI):

Start – all RAD applications must begin with a start object.

Generic – all purpose objects that performs speech synthesis and

speech recognition. Navigation occurs according to a user’s response and

branches from the red output ports to the appropriate object. This object

features frequently in the SLI.

1 Action – executes TCL code and provides a text widget where TCL/TK

code is evaluated at runtime.

Keyword – halts the flow and waits for an allocated keyword before

continuing to the next object.

Enter – begins every subdialogue application. The flow of the program

continues from parent canvas via this object to the relevant object within the

subdialogue.

Exit – exits subdialogue object, returning program flow to the relevant

object on the parent canvas.

- 37 -

Stop – terminates SLI application, it can also be used within

subdialogues.

5 Subdialogue – resembles a mini RAD canvas. Used to organise the

application into smaller separate components and provides a much clearer

and neater canvas. Subdialogues can be reused time and time again

throughout the application.

Media - two modes of operation: "Present Media" and "Remove Media".

“Present Media” presents images, sounds, text and clickable image maps on

the screen. "Remove Media" allows for the removal of whatever image is

present at the particular time.

Randomizer - Picks random ports to exit through.

5.3.1 MathPhrase SLI The main canvas of MathPhrase SLI is illustrated in Figure 5.3. This illustrates

the objects used and the flow of the program from one object to another. The

objects contained in this canvas are outlined with their name and a description

of the function they perform in Appendix B.1

5.3.2 Game sub dialogues As can be observed from Figure 5.3 9 nine subdialogues have been utilised in

the MathPhrase SLI main canvas, each subdialogue represents one game

and each game represents one image. Within each subdialogue there are an

additional five nested subdialogues each representing an image with a

missing square. The nested subdialogues heighten the possibility that the

user requires all six squares to be removed before the image can be guessed.

The five nested subdialogues are exact copies of their parent subdialogues

except the last nested subdialogue as it does not contain a nested

subdialogue. Appendix B.2 illustrates game1 canvas which also represents

game2 to game9 canvas inclusive. Appendix B.3 includes the functions of

each of the objects presented in Appendix B.2.

- 38 -

Figure 5.3 MathPhrase main canvas

- 39 -

5.4 MathPhrase functionality Once the objects are arranged on the canvas, the functionality and prompts

are added. The action objects require Tool Command Language (Tcl) in-order

to perform their required actions. The three distinct action objects used in

MathPhrase are:

Get_database: Access the database

Get_quetsion: Retrieves information from the database

Get_wwwgame(6-9): opens and displays a web page

5.4.1 Accessing the database TclODBC is an ODBC extension for Tcl. An Open Database Connectivity

(ODBC) is used to connect to the database which is then accessed using Tool

Tcl. The process of enabling database access is outline in the following

steps:

1. Download and install the TclODBC extension package.

2. Create a Data Source Name (DSN) for the database

3. Link the RAD canvas to the database

Step 3 is conducted by the action object Get_database. This is scripted with

Tcl, loading the TclODBC and connecting it to the database defined by the

DSN. The required Tcl code is:

package require tclodbc

Database db MathPhrase

The Get_question action object is used to access a table within the database

and extract the data. The required Tcl code is:

set value [expr { int(40 * rand()) }]

set question [db "Select Question from Question1 where QNo =

$value"]

set answer [db "Select Answer from Question1 where QNo = $value"]

- 40 -

5.4.2 Code description The ‘set value’ randomly picks a number between 1 and 40 and sets that

number to the variable value. The ‘set question’ is SQL which extracts the

data from the ‘Question’ field from the table ‘Question1’ where the field ‘QNo’

is the random number selected as the value and sets it to the variable

question. The third line, ‘set answer’ extracts the data from the ‘Answer’ field.

5.4.3 Using the variables The three variables created in get_question are called by using the ‘$’ symbol.

The variable ‘value’ is called within the same object when setting the question

and answer variable as illustrated by the highlighted text in the code sample

below:

set question [db "Select Question from Question1 where QNo = $value"]

set answer [db "Select Answer from Question1 where QNo = $value"]

The variable ‘question’ is called by the digit object which provides the question

to the user. This is illustrated below with a prompt taken from the get_answer

object:

$question

The third variable ‘answer’ is used within the conditional object. This object

compares the users answer to the question variable. This is done with the

following code for the left conditional port:

$answer == $get_answer(recog)

The second variable used in the conditional port is the get_answer(recog).

This variable differs as it does not need to be set however by using the digit

object we can set the recognition of the response to the question as a variable

thus comparing it to the answer variable.

5.4.4 Accessing the Web Get_wwwgame(6-9): This object is set to open a html webpage. The required

Tcl code for this action is:

- 41 -

package require http 2.0

set url [http://www.infm.ulst.ac.uk/~csf5hyd/sheep.htm]

The first statement loads the appropriate files that MathPhrase requires in-

order to open and display the webpage. The second defines the specific URL

of the page required to open.

5.4.5 Adding Speech functionality The speech prompts that MathPhrase use are entered into the generic

objects. By double clicking on the object, the prompt dialogue for that object is

displayed. The Text to Speech (TTS) tab enables the prompt to be entered

which is spoken to a user. Figure 5.4 illustrates the prompt dialogue for the

‘begin’ object.

 Figure 5.4 Prompt dialogue for ‘begin’ generic object

RAD only recognises words which have been pre-specified therefore the

prompts must instruct a user what to say by means of specific keywords to

enable an action. The keywords are used to control the flow of the program;

this is achieved by entering the required keywords into the red output ports.

Figure 5.5 illustrates the ‘begin’ object in Mathphrase main canvas. The left

port contains ‘yes’ and the right port contains ‘no’. The objects prompts “Are

you ready to begin MathPhrase? Please say yes or say no to exit”. If the user

- 42 -

answers ‘yes’ the flow is directed to the left port which is connected to the

action object Get_database. If the user answers ‘no’ the flow will continue to

the right port to and the goodbye object.

Figure 5.5 Begin object red output ports

In some instances of MathPhrase there is only one keyword set on the left

port and the vocabulary ‘*any’ on the right. The ‘have_guess’ object illustrates

this as the prompt is “What do you think the image is?” The left port contains

the correct answer ‘Sheep’ however the right port contains ‘*any’ which

means any other word a user may say other than ‘Sheep’.

Figure 5.6 illustrates the red output ports vocabulary dialogue. When entering

vocabulary it is important to click on the ‘Update All’ button which allows the

pronunciation of the text to be generated and recognised by the speech

recogniser.

5.4.6 Presenting Media The media object is used throughout MathPhrase to present visual

information to the user. When the media object is right clicked there are two

main options. These include present media and remove media. The remove

media removes images on the screen. Figure 5.7 illustrates the remove media

dialogue from the show_squares object in game1.

Right port vocabulary “no”

Left port vocabulary “yes”

- 43 -

Figure 5.6 Red output port vocabulary dialogue

 Figure 5.7 show_squares Remove media dialogue 

 

As can be observed from Figure 5.7 there are three media objects present in

MathPhrase. The one to be removed at that particular instance is then

checked.

The other option ‘present media’ opens a dialogue enabling the path of the

image to be specified. This media object dialogue illustrated in Figure 5.8

enables the presentation of an image map which allows clickable regions and

a recording to be played. The image field and window placement are the two

main areas concerned with MathPhrase. The window placement is set to

centre for the squares images however the logo placement is in the right hand

corner of the screen. The window placement dialogue allows the manipulation

of the image position on a screen; this is illustrated in Figure 5.9 and is

achieved by selecting from a compass style button selection. The media

object is used to present the images which make up MathPhrase interface.

- 44 -

Appendix B.4 outlines the images associated with a single game in the

sequence they are presented.

 

 

Figure 5.8 Media object present media dialogue

 

 

Figure 5.9 Window placement dialogue

- 45 -

5.4.7 Repair Dialogue According to the CSLU website (2008, p. 1) “current speech recognition

technology is unable to guarantee perfect accuracy”. Therefore a method of

repairing broken dialogs is necessary”. The RAD incorporates a default

repair subdialogue that is activated when two conditions are met, the speech

recogniser is not confident about any of the available vocabulary and the

‘repair mode’ is active. The repair subdialogue has been modified to suit the

needs of its user group. Prompts were changed to be more children friendly

and the goodbye object was removed to allow the speech recogniser more

than three opportunities to recognise the speech. A disadvantage of removing

the goodbye object is that it is possible the user may enter a finite loop. The

need to remove this object is greater due to the pronunciation of children. It

would be frustrating and complex for the user only to allow only three tries at

recognition. The repair subdialogue for MathPhrase is outlined in Figure 5.11

where the ‘goodbye’ object has been removed and flow from 3rd attempt has

been passed to the ‘return’ object.

Figure 5.11 MathPhrase repair dialogue 

- 46 -

5.5 Summary This chapter has documented the implementation phase of MathPhrase.

Included in the chapter is the database implementation process, illustrated by

diagrams and an accompanying detailed description of how it was achieved.

Also included is a detailed step by step account of the implementation of

MathPhrase SLI which also accompanied by diagrams and corresponding

source code.

- 47 -

6 Testing 6.1 Introduction Testing is defined by Sommerville (2007, p. 538) as “a process intended to

build confidence in the software”. This is the final stage of software

development and ensures the system is ready to be released to the customer.

6.2 Testing Process Sommerville (2001, p. 21) outlines a five stage testing process as illustrated in

Figure 6.1. This testing process involves the following activities:

Unit testing – individual components are tested ensuring they operate

correctly.

Module testing – a module is tested to ensure the related components

contained within a module function correctly together.

Sub-system testing – involves testing collections of modules ensuring the

integration was successful.

System testing – involves testing the integration of all the subsystems which

make up the full system.

Acceptance testing –involves testing the system with the customer data.

6.3 MathPhrase testing process As MathPhrase is a small system, the testing activities conducted include unit

testing, module testing and system testing.

6.3.1 Unit Testing Unit testing involves testing the individual components of a system; conducted

at the implementation stage and errors are detected and corrected before the

components are combined as modules. Within MathPhrase the individual

units were tested by comparing the expected output to the actual output of the

component. Appendix C.1 contains the unit tests performed on the media

- 48 -

objects. The table includes fields showing where the object is and the

expected image path. This is compared to the actual path within the object

and the result provides clarification of whether they match or not. The tests

carried out for the media objects proved these components functioned

correctly. The generic objects were tested during implementation by ensuring

the spoken information provided by MathPhrase matched the prompts

scripted within the object. The action objects were also testing by testing the

variables ‘question’ and ‘answer’ that were extracted randomly from the

database and the two variables extracted corresponded to the same record.

Figure 6.1 Testing process Sommerville (2001, p. 61)

6.3.2 Module testing Individual related components within MathPhrase are grouped together within

subdialogues which form modules. MathPhrase consists of nine modules

which have been fully tested using test cases. Figure 6.2 illustrates the format

of the test cases utilised. The ‘input’ describes the action taken which triggers

an output. The ‘expected output’ is the output which should happen for the

Unit Testing

Module Testing

Sub-system Testing

System Testing

Acceptance Testing

Component Testing

Integration Testing

User Testing

- 49 -

test to be correct. The ‘actual output’ is the output which occurred during the

test. The result field displays the result of the test i.e. whether the actual input

matched the actual output. Appendix C.2 outlines the test results for the

module testing of game1. The tests conducted on all nine games proved to be

successful and the results from each game matched game1.

Input

Expected output

Actual output

Result

Figure 6.2 Format of test cases

6.3.3 System Testing The nine modules were finally integrated to form the final system. The final

system was also tested using the test cases outlined in Figure 6.2. The

system testing proved to be successful as MathPhrase completed all the

tasks correctly at the correct times. The test results generated during the

system testing process are outlined in Appendix C.3.

6.4 Summary The testing of MathPhrase has proven to be successful due to the bottom up

testing strategy that was applied during the implementation. The individual

components were tested and errors corrected as they were implemented. The

related components were then tested together as modules and any errors at

this stage were also corrected before integrating the system. The system was

then tested as a complete system and the results have proved that

MathPhrase functions correctly.

- 50 -

7 Conclusion and Critical Analysis This report concludes with a look back over the previous chapters and will

determine if the aims and objectives outlined in Chapter 1 have been

achieved. Chapter 1 introduced the project and outlined its aims and

objectives. Also included was an overview of the contents of the remainder of

the report. Chapter 2 provided a written account of the background research

that was conducted on areas relevant to the successful design and

development of MathPhrase. Included is a section on Intelligent Multimedia

that outlines the difference between IMM and traditional Multimedia. Also

included is a section on Catchphrase the game on which MathPhrase is

based. Additionally there is a section on Speech technologies which

discusses the CSLU toolkit in detail. There is also an interesting section on

research papers relating to IMM that have been analysed and discussed in

the IMM module. Chapter 3 was concerned with the requirements of the

system, included is an overview of the functional and non-functional

requirements for MathPhrase. Also included are the minimum hardware and

software requirements for the successful implementation and functioning of

MathPhrase. Furthermore the similar systems analysis undertaken in Section

3.3 proved most beneficial as it provided an insight into features that should

be present in MathPhrase. The chapter also included a detailed analysis of

different design and development methodologies that enabled the selection of

RAD for development and the UML for design. Chapter 4 was concerned with

creating a design specification, included in this chapter was an informative

discussion on quality design guidelines to ensure high quality design. Also

included was a section on system architecture that incorporated high level

architecture diagrams of both the system structure and SLI. Data modelling of

the system resulted in a use case diagram, a flow of events and an activity

diagram. The interface section included logo design and interaction

guidelines specially developed for speech based systems. The chapter

concluded with a section on storyboards which included a story representation

of every interface. These storyboards were utilised to evaluate and ensure

MathPhrase compliance with the HCI guidelines outlined in Section 2.7.

- 51 -

Chapter 5 was concerned with realising the requirements specification of

Chapter 3 and the design specification of Chapter 4 and implementing them

as MathPhrase. This chapter provided a step by step account of the

implementation process beginning with the implementation of the database.

Next was a detailed account of the implementation of the SLI, this included a

number of descriptive diagrams to illustrate the process. Also included was

an overview of the modification of the RAD repair subdialogue to suit the

intended user group, it was felt that the default repair dialogue was much too

blunt and harsh for children. Chapter 6 began by describing the testing

techniques employed to test MathPhrase. Also included was a detailed

description of the test cases utilised to test MathPhrase and a written account

of the processes involved. The test results were analysed and documented.

At the conclusion of the chapter it was highlighted that a bottom up testing

strategy was employed during early stages of implementation therefore

ensuring that errors were detected and corrected before moving on to the next

stage.

7.1 Evaluation and Critical Analysis At the end of the project lifecycle, the system has been successfully

implemented and tested. However it was felt that a user evaluation was

required to assess the overall user usability factor of MathPhrase. According

to McTear (2004, p. 154) evaluation “examines how the system performs

when used by actual users”. According to Preece (1998, p. 609) there are

several methods that can be utilised when conducting an evaluation including

questionnaires, experiments and benchmark tests, predicting the usability of a

product or observing an monitoring a users interactions with a system. It was

decided for evaluation purposes to observe and monitor a number of users

interacting with MathPhrase.

7.1.1 Observation Results Some of the users found it difficult to understand the SLI and had difficulty

keeping up with the flow of the program however it was agreed that with a

little practice this would improve. Another issue highlighted was speech

- 52 -

recognition; several times throughout the game the user’s response was not

recognised. Fortunately due to the modified RAD repair subdialogue the

game was not terminated. Furthermore it was discovered that when an image

was guessed correctly before all the squares were removed it was taken off

the screen rather than removing all the squares and allowing the user to view

the whole image.

7.1.2 Critical Analysis For the most part MathPhrase performed well at the evaluation. The users

enjoyed the game immensely and stated that they would like to play it again.

It is felt that there is a novelty factor interacting with a game using speech as

opposed to a keyboard and mouse. There are a lot of different questions,

answers and images stored in the database which are presented randomly

ensuring a different combination for each game, therefore enabling it to

maintain a high level of interest. Additionally the fact that a database has

been utilised to store MathPhrase data means that the data can be added to

and modified at any time without affecting the game. Most importantly and a

major positive aspect of the game is the fact that the users are practicing

math whilst playing MathPhrase which can only be good. A negative aspect

of the game is the prompts; it is felt that they may not be as clear and concise

as they could be for their target user group. Also it is felt that the uncovered

images should be displayed to a user when they guess them. However these

are only small problems that can be easily rectified in future improvements.

7.1.3 Future Improvements The time restrictions and limitations of experience with the CSLU toolkit have

provided areas for future work which could be investigated to improve the

functionality of MathPhrase. These areas include:

An editable media object: The media object within the RAD allows the

presentation of media such as images, recording and image maps. Further

research could be conducted to allow an image presented to be edited by the

user. Within MathPhrase this would allow the user to choose the square and

- 53 -

remove that particular square themselves. This would be ideal and greatly

reduce the number of images needed for a single game. This would also

mean that new images can be added easily and dynamically, and greatly

improving the amount of choice a user would have with regards to guessing

the image.

Adding animation: Currently the media object within the RAD does not present

media in the form of animations or mini movie clips. It is possible to integrate

a quick time movie with the toolkit however requires extensive research into

the QuickTime Tcl 2.1 packages. Due to time constraints this area was not

considered appropriate however further work could result in instruction

documentation for MathPhrase in the form of a demo.

It is felt at the conclusion of this report and the successful implementation of

MathPhrase the aims and objectives outlined in Chapter 1 have been

achieved. The functional and non-functional requirements specified in Section

3.4 have been met successfully. MathPhrase is a highly entertaining game

incorporating mathematics in fun yet educational environment.

- 54 -

Appendix A: Design Appendix A.1: Use Case Flow of Events Use case name Manage Question Description This use case describes the process of presenting a

question to the user Pre-condition The user is ready to begin Flow of events 1. MathPhrase opens the question table in the

database 2. A random question is extracted from the table and

presented to the user 3. The associated answer is extracted and saved as

a variable for comparison Post condition The user answers the question Use case name Manage answer Description This use case describes the process of comparing the

answer given by the user to that stored as a variable Pre-condition The user has answered a question Flow of events 1. MathPhrase recognises the spoken answer from

the user 2. The spoken answer is compared to the answer

variable extracted from the database Post condition If the answers match: The user is presented with the

media If the answers do not match: The user is presented with another question

Use case name Manage Media Description This use case describes the media presented to the userPre-condition The user has answered a question correct Flow of events 1. MathPhrase presents the user with an image

covered up with a number of squares (on each iteration one square is removed)

Post condition The user chooses to try to guess the image or return to answer questions.

Use case name Manage Media Response Description This use case describes the users response to the

media presented Pre-condition The user has been presented with an image Flow of events 1. MathPhrase asks the user if they wish to guess

the image 2. The user answers yes 3. The user guesses the image 4. The users guess is compared to the stored image

answer

- 55 -

Alternative Flow 1. MathPhrase asks the user if they wish to guess the image

2. The user answers no 3. MathPhrase provides a question

Post condition If the user guesses the image correctly: MathPhrase presents the image as a web page allowing the user to print it to colour in If the user guesses the image incorrectly: MathPhrase provides a question

Use case name Manage Media Response Description This use case describes the display to print feature Pre-condition The user has been presented with an image and

guessed correctly Flow of events 2. The user is asked if they wish to print the image

3. The user answers yes 4. MathPhrase opens a web page with the image 5. The user clicks print

Alternative Flow 1. The user is asked if they wish to print the image 2. The user answers no 3. MathPhrase returns to beginning

Post condition The user says ‘MathsPhrase’ to return to MathPhrase

- 56 -

Appendix A.2: Activity diagram

Provide Question

Compare answers

Present Media

MathPhrase asks if the user would like to guess

MathPhrase prompts for guess

Compare user guess to answer

Provide image to print and colour

MathPhrase asks if the user would l ike to print their image

MathPhrase asks would they l ike to continue or exit

MathPhrase asks the user i f they are ready to begin

MathPhrase Activity diagram

user is ready

answers match

answers do not match

user would like to guess

user does not want to guess

user guesses correctlyUser does not guess correcly

User wants to print

User does not wish to print

User want to continue

User wants to exit

User is not ready

Figure A.2.1 MathPhrase Activity Diagram

- 57 -

Appendix A.3: Storyboards

Figure A.3.1 Instructions Interface Figure A.3.2 Remove 1 square interface

Figure A.3.3 Remove 2 squares interface Figure A.3.4 Remove 3 squares interface

Figure A.3.5 Remove 4 squares Interface Figure A.3.6 Remove 5 squares interface

- 58 -

Figure A.3.7 Removed all squares interface Figure A.3.8 Web page displaying image

- 59 -

Appendix B: Implementation Appendix B.1: MathPhrase main canvas objects and functions

Object Name Function Start Start starting point of MathPhrase Media Logo open and displays the MathPhrase logo Generic Welcome Present spoken information welcoming

the user to MathPhrase. Ask them whether they wish to begin the game or listen to instructions

Media Instructions open and display the instructions image Generic Instructions given present the instructions through spoken

dialogue Generic Begin ask if the user is ready to begin Stop Goodbye terminate MathPhrase Action Get_database open the MathPhrase database Randomizer State5 branch randomly on the red ports

allowing a random game to be entered Subdialogue Game1 enter into the game 1 canvas Subdialogue Game2 enter into the game 2 canvas Subdialogue Game3 enter into the game 3 canvas Subdialogue Game4 enter into the game 4 canvas Subdialogue Game5 enter into the game 5 canvas Media Image_game1 Present final image associated with

game 1 Media Image_game2 Present final image associated with

game 2 Media Image_game3 Present final image associated with

game 3 Media Image_game4 Present final image associated with

game 4 Media Image_game5 Present final image associated with

game 5 Generic Movelevel inform the user that they are moving to

the next level Randomizer State6 branch randomly on the red ports

allowing a random game to be entered Subdialogue Game6 enter into the game 6 canvas Generic Print? ask the user do they wish to print their

image Action Get_wwwgame6 open the associated webpage for game

6 Subdialogue Game7 enter into the game 7 canvas

- 60 -

Media Image_game7 Present final image associated with game 7

Generic Print1 ask the user do they wish to print their image

Action Get_wwwgame7 open the associated webpage for game 7

Subdialogue Game8 enter into the game 8 canvas Media Image_game8 Present final image associated with

game 8 Generic Print2 ask the user do they wish to print their

image Action Get_wwwgame8 open the associated webpage for game

8 Subdialogue Game9 enter into the game 9 canvas Media Image_game9 Present final image associated with

game 9 Generic Print3 ask the user do they wish to print their

image Action Get_wwwgame9 open the associated webpage for game

9 Keyword Continue pause MathPhrase until a certain pre-

defined keyword is spoken by the user. ‘MathPhrase’

Generic Again ask the user if they wish to exit MathPhrase or return to play again

Generic Ready prepare the user by informing them that a question will follow

Stop goodbye terminate MathPhrase

- 61 -

Appendix B.2: Game1 Subdialogue canvas

- 62 -

Appendix B.3: Game1 subdialogue objects and functions

Object Name Function Enter Enter Continues the flow from the parent

canvas Media Show_squares Display the all squares image Action Get_question Get question and answer from

database Digit Get_answer Get answer from user Conditional Check_answer_0 Compare answer from database to

answer from user Generic Wrong answer inform user their answer was wrong

and return to get_question Generic Correct Inform the user their answer was

correct and move to show1missing Media Show1missing Display the 1 square removed image Generic Guess? Ask the user whether they wish to

guess the image Generic Have_guess Ask user for their guess Generic Correct_guess Inform the user their guess was correctMedia Remove_image Remove all images presented while in

the game dialogue Generic Incorrect_guess Inform the user that their guess was

incorrect Subdialogue Remove2squares_0 enters into the sub dialogue canvas Generic No_guess Inform the user that question will

follow Exit Return:continue returns the control to the parent

canvas

- 63 -

Appendix B.4 Images associated with a game in sequence

- 64 -

Appendix C: Testing Appendix C.1: Unit testing – media object

Game Subdialogue

Nested dialogue

Expected image

Actual image Result

Game1 1 Game1/1square Game1/1square match Game1 2 Game1/2square Game1/2square match Game1 3 Game1/3square Game1/3square match Game1 4 Game1/4square Game1/4square match Game1 5 Game1/5square Game1/5square match Game1 6 Game1/star Game1/star match Game 2 1 Game2/1square Game2/1square match Game 2 2 Game2/2square Game2/2square match Game 2 3 Game2/3square Game2/3square match Game 2 4 Game2/4square Game2/4square match Game 2 5 Game2/5square Game2/5square match Game 2 6 Game2/star Game2/star match Game 3 1 Game3/1square Game3/1square match Game 3 2 Game3/2square Game3/2square match Game 3 3 Game3/3square Game3/3square match Game 3 4 Game3/4square Game3/4square match Game 3 5 Game3/5square Game3/5square match Game 3 6 Game3/star Game3/star match Game 4 1 Game4/1square Game4/1square match Game 4 2 Game4/2square Game4/2square match Game 4 3 Game4/3square Game4/3square match Game 4 4 Game4/4square Game4/4square match Game 4 5 Game4/5square Game4/5square match Game 4 6 Game4/star Game4/star match Game 5 1 Game5/1square Game5/1square match Game 5 2 Game5/2square Game5/2square match Game 5 3 Game5/3square Game5/3square match Game 5 4 Game5/4square Game5/4square match Game 5 5 Game5/5square Game5/5square match Game 5 6 Game5/star Game5/star match Game 6 1 Game6/1square Game6/1square match Game 6 2 Game6/2square Game6/2square match Game 6 3 Game6/3square Game6/3square match Game 6 4 Game6/4square Game6/4square match Game 6 5 Game6/5square Game6/5square match Game 6 6 Game6/star Game6/star match

- 65 -

Game 7 1 Game7/1square Game7/1square match Game 7 2 Game7/2square Game7/2square match Game 7 3 Game7/3square Game7/3square match Game 7 4 Game7/4square Game7/4square match Game 7 5 Game7/5square Game7/5square match Game 7 6 Game7/star Game7/star match Game 8 1 Game8/1square Game8/1square match Game 8 2 Game8/2square Game8/2square match Game 8 3 Game8/3square Game8/3square match Game 8 4 Game8/4square Game8/4square match Game 8 5 Game8/square Game8/square match Game 8 6 Game8/star Game8/star match Game 9 1 Game9/1square Game9/1square match Game 9 2 Game9/2square Game9/2square match Game 9 3 Game9/3square Game9/3square match Game 9 4 Game9/4square Game9/4square match Game 9 5 Game9/5square Game9/5square match Game 9 6 Game9/star Game9/star match

- 66 -

Appendix C.2: Module Testing (Game1) Test Cases Game 1 Subdialogue Input Enter dialogue game1 Expected output MathPhrase should present an image with 6 squares Actual output MathPhrase presented the 6 squares image Result The actual output matched the expected output Input Image presented Expected output MathPhrase should provide the user with a question and prompt for an

answer Actual output MathPhrase provided user with a question and prompted for an answer Result The actual output matched the expected output Input User answers question incorrectly Expected output MathPhrase should inform the user they were incorrect and provide

another question Actual output MathPhrase informed the user the answer was incorrect and provided

another question Result The actual output matched the expected output Input User speaks the correct answer Expected output MathPhrase should inform the user that the answer was correct Actual output MathPhrase informed the user that the answer was correct Result The actual output matched the expected output Input User speaks the correct answer Expected output MathPhrase should present an image with one square removed Actual output MathPhrase presented the media with one square removed Result The actual output matched the expected output Input Image with one square removed is presented Expected output MathPhrase should ask the user is they wish to guess prompting for yes

or no Actual output MathPhrase asked the user if they wish to guess the image Result The actual output matched the expected output Input User says no to guess image Expected output MathPhrase should inform the user that more questions are to be

provided, then provide a question Actual output MathPhrase informed the user to try more questions and a question was

provided Result The actual output matched the expected output Input User says yes to guess the image Expected output MathPhrase should prompt the user to have a guess Actual output MathPhrase prompted the user to guess the image Result The actual output matched the expected output Input User guesses image incorrectly Expected output MathPhrase should inform the user the guess was wrong move to game

1 1nd nested subdialogue Actual output MathPhrase informed the user that the guess was incorrect and moved

to 1nd nested dialogue Result The actual output matched the expected output

- 67 -

Input User guesses image correctly Expected output MathPhrase should inform the user that they were correct and return to

parent canvas Actual output MathPhrase informed the user the guess was correct and returned to

parent canvas Result The actual output matched the expected output Game 1 1st nested subdialogue Input Enter dialogue game1 (1st nested) Expected output MathPhrase should present an image with 5 squares Actual output MathPhrase presented the 5 squares image Result The actual output matched the expected output Input Image presented Expected output MathPhrase should provide the user with a question and prompt for an

answer Actual output MathPhrase provided user with a question and prompted for an answer Result The actual output matched the expected output Input User answers question incorrectly Expected output MathPhrase should inform the user they were incorrect and provide

another question Actual output MathPhrase informed the user the answer was incorrect and provided

another question Result The actual output matched the expected output Input User speaks the correct answer Expected output MathPhrase should inform the user that the answer was correct Actual output MathPhrase informed the user that the answer was correct Result The actual output matched the expected output Input User speaks the correct answer Expected output MathPhrase should present an image with two squares removed Actual output MathPhrase presented the media with two squares removed Result The actual output matched the expected output Input Image with two squares removed is presented Expected output MathPhrase should ask the user is they wish to guess prompting for yes

or no Actual output MathPhrase asked the user if they wish to guess the image Result The actual output matched the expected output Input User says no to guess image Expected output MathPhrase should inform the user that more questions are to be

provided, then provide a question Actual output MathPhrase informed the user to try more questions and a question was

provided Result The actual output matched the expected output Input User says yes to guess the image Expected output MathPhrase should prompt the user to have a guess Actual output MathPhrase prompted the user to guess the image Result The actual output matched the expected output Input User guesses image incorrectly Expected output MathPhrase should inform the user the guess was wrong move to game

1 2nd nested subdialogue

- 68 -

Actual output MathPhrase informed the user that the guess was incorrect and moved to 2nd nested dialogue

Result The actual output matched the expected output Input User guesses image correctly Expected output MathPhrase should inform the user that they were correct and return to

parent canvas Actual output MathPhrase informed the user the guess was correct and returned to

parent canvas Result The actual output matched the expected output Game 1 2nd nested subdialogue Input Enter dialogue game1 (2st nested) Expected output MathPhrase should present an image with 4 squares Actual output MathPhrase presented the 4 squares image Result The actual output matched the expected output Input Image presented Expected output MathPhrase should provide the user with a question and prompt for an

answer Actual output MathPhrase provided user with a question and prompted for an answer Result The actual output matched the expected output Input User answers question incorrectly Expected output MathPhrase should inform the user they were incorrect and provide

another question Actual output MathPhrase informed the user the answer was incorrect and provided

another question Result The actual output matched the expected output Input User speaks the correct answer Expected output MathPhrase should inform the user that the answer was correct Actual output MathPhrase informed the user that the answer was correct Result The actual output matched the expected output Input User speaks the correct answer Expected output MathPhrase should present an image with three squares removed Actual output MathPhrase presented the media with three squares removed Result The actual output matched the expected output Input Image with three squares removed is presented Expected output MathPhrase should ask the user is they wish to guess prompting for yes

or no Actual output MathPhrase asked the user if they wish to guess the image Result The actual output matched the expected output Input User says no to guess image Expected output MathPhrase should inform the user that more questions are to be

provided, then provide a question Actual output MathPhrase informed the user to try more questions and a question was

provided Result The actual output matched the expected output Input User says yes to guess the image Expected output MathPhrase should prompt the user to have a guess Actual output MathPhrase prompted the user to guess the image Result The actual output matched the expected output

- 69 -

Input User guesses image incorrectly Expected output MathPhrase should inform the user the guess was wrong move to game

1 3rd nested subdialogue Actual output MathPhrase informed the user that the guess was incorrect and moved

to 3rd nested dialogue Result The actual output matched the expected output Input User guesses image correctly Expected output MathPhrase should inform the user that they were correct and return to

parent canvas Actual output MathPhrase informed the user the guess was correct and returned to

parent canvas Result The actual output matched the expected output Game 1 3rd nested subdialogue Input Enter dialogue game1 (3rd nested) Expected output MathPhrase should present an image with 3 squares Actual output MathPhrase presented the 3 squares image Result The actual output matched the expected output Input Image presented Expected output MathPhrase should provide the user with a question and prompt for an

answer Actual output MathPhrase provided user with a question and prompted for an answer Result The actual output matched the expected output Input User answers question incorrectly Expected output MathPhrase should inform the user they were incorrect and provide

another question Actual output MathPhrase informed the user the answer was incorrect and provided

another question Result The actual output matched the expected output Input User speaks the correct answer Expected output MathPhrase should inform the user that the answer was correct Actual output MathPhrase informed the user that the answer was correct Result The actual output matched the expected output Input User speaks the correct answer Expected output MathPhrase should present an image with four squares removed Actual output MathPhrase presented the media with four squares removed Result The actual output matched the expected output Input Image with four squares removed is presented Expected output MathPhrase should ask the user is they wish to guess prompting for yes

or no Actual output MathPhrase asked the user if they wish to guess the image Result The actual output matched the expected output Input User says no to guess image Expected output MathPhrase should inform the user that more questions are to be

provided, then provide a question Actual output MathPhrase informed the user to try more questions and a question was

provided Result The actual output matched the expected output

- 70 -

Input User says yes to guess the image Expected output MathPhrase should prompt the user to have a guess Actual output MathPhrase prompted the user to guess the image Result The actual output matched the expected output Input User guesses image incorrectly Expected output MathPhrase should inform the user the guess was wrong move to game

1 4th nested subdialogue Actual output MathPhrase informed the user that the guess was incorrect and moved

to 4th nested dialogue Result The actual output matched the expected output Input User guesses image correctly Expected output MathPhrase should inform the user that they were correct and return to

parent canvas Actual output MathPhrase informed the user the guess was correct and returned to

parent canvas Result The actual output matched the expected output Game 1 4th nested subdialogue Input Enter dialogue game1 (4th nested) Expected output MathPhrase should present an image with 2 squares Actual output MathPhrase presented the 2 squares image Result The actual output matched the expected output Input Image presented Expected output MathPhrase should provide the user with a question and prompt for an

answer Actual output MathPhrase provided user with a question and prompted for an answer Result The actual output matched the expected output Input User answers question incorrectly Expected output MathPhrase should inform the user they were incorrect and provide

another question Actual output MathPhrase informed the user the answer was incorrect and provided

another question Result The actual output matched the expected output Input User speaks the correct answer Expected output MathPhrase should inform the user that the answer was correct Actual output MathPhrase informed the user that the answer was correct Result The actual output matched the expected output Input User speaks the correct answer Expected output MathPhrase should present an image with five squares removed Actual output MathPhrase presented the media with five squares removed Result The actual output matched the expected output Input Image with five squares removed is presented Expected output MathPhrase should ask the user is they wish to guess prompting for yes

or no Actual output MathPhrase asked the user if they wish to guess the image Result The actual output matched the expected output Input User says no to guess image Expected output MathPhrase should inform the user that more questions are to be

provided, then provide a question

- 71 -

Actual output MathPhrase informed the user to try more questions and a question was provided

Result The actual output matched the expected output Input User says yes to guess the image Expected output MathPhrase should prompt the user to have a guess Actual output MathPhrase prompted the user to guess the image Result The actual output matched the expected output Input User guesses image incorrectly Expected output MathPhrase should inform the user the guess was wrong move to game

1 5th nested subdialogue Actual output MathPhrase informed the user that the guess was incorrect and moved

to 5th nested dialogue Result The actual output matched the expected output Input User guesses image correctly Expected output MathPhrase should inform the user that they were correct and return to

parent canvas Actual output MathPhrase informed the user the guess was correct and returned to

parent canvas Result The actual output matched the expected output Game 1 5th nested subdialogue Input Enter dialogue game1 (5th nested) Expected output MathPhrase should present an image with 1 square Actual output MathPhrase presented the 1 square1 image Result The actual output matched the expected output Input Image presented Expected output MathPhrase should provide the user with a question and prompt for an

answer Actual output MathPhrase provided user with a question and prompted for an answer Result The actual output matched the expected output Input User answers question incorrectly Expected output MathPhrase should inform the user they were incorrect and provide

another question Actual output MathPhrase informed the user the answer was incorrect and provided

another question Result The actual output matched the expected output Input User does not answer question – remain silent Expected output MathPhrase should repeat the question and inform the user to speak

after the beep Actual output MathPhrase repeated the question and asked the user to speak after

the beep Result The actual output matched the expected output Input User mumbles the answer – unclear response Expected output MathPhrase should inform the user that the answer was not recognised

and ask them to say it again Actual output MathPhrase informed the user that the answer was not recognised and

prompted the user to repeat the answer Result The actual output matched the expected output

- 72 -

Input User speaks the correct answer Expected output MathPhrase should inform the user that the answer was correct Actual output MathPhrase informed the user that the answer was correct Result The actual output matched the expected output Input User speaks the correct answer Expected output MathPhrase should present an image with all squares removed Actual output MathPhrase presented the media with all squares removed Result The actual output matched the expected output Input Image with all squares removed is presented Expected output MathPhrase should ask the user is they wish to guess prompting for yes

or no Actual output MathPhrase asked the user if they wish to guess the image Result The actual output matched the expected output Input User says no to guess image Expected output MathPhrase should inform the user that more questions are to be

provided, then provide a question Actual output MathPhrase informed the user to try more questions and a question was

provided Result The actual output matched the expected output Input User says yes to guess the image Expected output MathPhrase should prompt the user to have a guess Actual output MathPhrase prompted the user to guess the image Result The actual output matched the expected output Input User guesses image incorrectly Expected output MathPhrase should inform the user the guess was wrong and provide

another question Actual output MathPhrase informed the user that the guess was incorrect and

provided another question Result The actual output matched the expected output Input User guesses image correctly Expected output MathPhrase should inform the user that they were correct and return to

parent canvas Actual output MathPhrase informed the user the guess was correct and returned to

parent canvas Result The actual output matched the expected output

- 73 -

Appendix C.3: MathPhrase System Test Cases Input Open MathPhrase Expected output

Logo should load to the right hand corner of the screen

Actual output Logo appeared at the right hand side of the screen Result The actual output matched the expected output Input Open MathPhrase Expected output

MathPhrase should verbally welcome the user and prompt the user to say yes to begin or no to listen to instructions

Actual output MathPhrase welcomed the user and prompted the user to say yes to begin or no to listen to instructions

Result The actual output matched the expected output Input User says no to listen to instructions Expected output

MathPhrase should present the instructions image and verbally speak the instructions

Actual output MathPhrase presented the image and verbally provided the instructions

Result The actual output matched the expected output Input Instructions have been provided Expected output

MathPhrase should ask the user if they wish to begin playing prompting for yes or if they wish to exit prompting for no

Actual output MathPhrase asked the user to say yes if they wish to begin or say no to exit.

Result The actual output matched the expected output Input User says no to exit Expected output

MathPhrase should close

Actual output MathPhrase closed Result The actual output matched the expected output Input User says yes to begin Expected output

MathPhrase should present the squares image

Actual output MathPhrase presented the squares image Result The actual output matched the expected output

- 74 -

Input User says yes to begin Expected output

MathPhrase should provide the user with a question

Actual output MathPhrase provided user with a question Result The actual output matched the expected output Input User answers question incorrectly Expected output

MathPhrase should inform the user they were incorrect and provide another question

Actual output MathPhrase informed the user the answer was incorrect and provided another question

Result The actual output matched the expected output Input User does not answer question – remain silent Expected output

MathPhrase should repeat the question and inform the user to speak after the beep

Actual output MathPhrase repeated the question and asked the user to speak after the beep

Result The actual output matched the expected output Input User mumbles the answer – unclear response Expected output

MathPhrase should inform the user that the answer was not recognised and ask them to say it again

Actual output MathPhrase informed the user that the answer was not recognised and prompted the user to repeat the answer

Result The actual output matched the expected output Input User speaks the correct answer Expected output

MathPhrase should inform the user that the answer was correct

Actual output MathPhrase informed the user that the answer was correct Result The actual output matched the expected output Input User speaks the correct answer Expected output

MathPhrase should present an image with one square removed

Actual output MathPhrase presented the media with one square removed Result The actual output matched the expected output Input Image with one square removed is presented Expected output

MathPhrase should ask the user is they wish to guess prompting for yes or no

Actual output MathPhrase asked the user if they wish to guess the image Result The actual output matched the expected output

- 75 -

Input User says no to guess image Expected output

MathPhrase should inform the user that more questions are to be provided, then provide a question

Actual output MathPhrase informed the user to try more questions and a question was provided

Result The actual output matched the expected output Input User says yes to guess the image Expected output

MathPhrase should prompt the user to have a guess

Actual output MathPhrase prompted the user to guess the image Result The actual output matched the expected output Input User guesses image incorrectly Expected output

MathPhrase should inform the user the guess was wrong and present a question

Actual output MathPhrase informed the user that the guess was incorrect and provided a question

Result The actual output matched the expected output Input User guesses image correctly Expected output

MathPhrase should inform the user that they were correct and show the uncovered image

Actual output MathPhrase informed the user the guess was correct and showed the uncovered image

Result The actual output matched the expected output Input User has guessed image correctly Expected output

MathPhrase should inform the user that they are now at the second level

Actual output MathPhrase informed the user that they moved to the second level

Result The actual output matched the expected output Input Second level reached user guesses image correctly Expected output

MathPhrase should ask the user if they wish to display the image to print and colour prompting for yes or no

Actual output MathPhrase asked the user to say yes to display the image to print and colour or say no to continue

Result The actual output matched the expected output

- 76 -

Input User says yes to display image to print and colour Expected output

MathPhrase should open a web page displaying the image

Actual output MathPhrase opened the web page displaying the image Result The actual output matched the expected output Input User says yes to display image to print and colour Expected output

MathPhrase should inform the user to say MathPhrase when they are ready to return

Actual output MathPhrase prompted the user to say MathPhrase after they printed the image

Result The actual output matched the expected output Input User says MathPhrase Expected output

MathPhrase should respond and ask the user if they wish to play again prompting for yes or exit prompting for no

Actual output MathPhrase responded and asked the user if they would like to play again

Result The actual output matched the expected output Input User says no to display image to print and colour Expected output

MathPhrase should ask the user if they wish to play again prompting for yes or exit prompting for no

Actual output MathPhrase asked the user if they would like to play again Result The actual output matched the expected output Input User says yes to play again Expected output

MathPhrase should provide user with a question

Actual output MathPhrase provided user with a question Result The actual output matched the expected output Input User says no to exit Expected output

MathPhrase should close

Actual output MathPhrase closed Result The actual output matched the expected output

- 77 -

References

Allen, G. (2000) Men and Women, Maps and Minds: Cognitive Bases of Sex-Related

Differences in Reading and Interpreting Maps

Bernsen N., Dybkjaer H., Dybkjaer L. (1998). Designing Interactive Speech Systems, From

First Ideas to User Testing. Springer.

Bolt R. A. (1979) “Put-That-There”: Voice and Gesture at the Graphics

Interface ” Massachusetts Institute of Technology, Cambridge, Massachusetts

Bruegge, B. & Dutoit, A.H. (2004). Object Oriented Software Engineering. 2nd Edition.

Pearson Prentice Hall.

Cassell, J., Vilhjalmsson, H., Bickmore, T. (2001) BEAT: The Behaviour Expression

Animation Toolkit

CSLU Toolkit (2008). Welcome. [online]. Available from: http://www.cslu.

ogi.edu/toolkit~ [Accessed 29/10/2007].

Junior Math Tutor (2008) Junior Math Tutor [online]. Available from:

http://www.softweigh.com/kidz/product1.html [Accessed: April 2008]

McKevitt, P. (1997). Super Information Highways. [online]. Available from:

http://cpk.auc.dk/dalf/publ96.htm. [Accessed 03/03/2008].

Pressman, R.S. (2005). Software Engineering A practitioners Approach, 6th Edition,

McGraw-Hill.

Mallon, A. (2007). Storyboarding Multimedia. [online]. Available from: http://ou

rworld.compuserve.com/homepages/adrian_mallon_multimedia/story.htm [Accessed

20/04/2008].

McTear, M.F. (2004). Spoken Dialog Technology towards the Conversational User

Interface. Springer.

- 78 -

Paris, M. (2006). Object Oriented Systems Development. [class notes]. University of Ulster.

Magee. Derry

Preece, J. (1994). Human-Computer Interaction. Essex: Addison-Wesley.

Sommerville, I. (2001). Software Engineering. 6th Edition. Essex: Addison-Wesley.

Sommerville, I. (2007). Software Engineering. 8th Edition. Essex: Addison-Wesley.

Santos, J. (2006). Human Computer Interaction. [class notes]. University of Ulster.Magee

Derry

Srihari, R. K. (1995) “Computational Models for Integrating Linguistic and Visual

Information”

SUMS (2008) SUMS [online]. Available from: http://www.sums.co.uk

[Accessed: April 2008]

Wahlster et al (2001) “Smartkom: towards multimodal dialogues with anthropomorphic

interface agents.”

WordNet (2008). CatchPhrase. [online]. Available from: http://wordnet.princeton

.edu/perl/webwn?s=catch%20phrase. Accessed on 10/04/2008