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:
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”.
- 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.
- 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
- 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
- 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
- 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