0% found this document useful (0 votes)
436 views

Video Library Management System Project Report

This document outlines the development of an information system to manage a video library business. Background research identified Java and MySQL as suitable technologies. A prototyping methodology was chosen to analyze requirements, design an initial prototype, gather feedback, and evaluate the system. System analysis involved research techniques like questionnaires, interviews, and observations to understand problems with the current manual system and identify user requirements. A feasibility study found the project to be technically and economically feasible. The report then documents the development process from analysis through design, implementation, and evaluation of the prototype video library management system.

Uploaded by

Akash Modak
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
436 views

Video Library Management System Project Report

This document outlines the development of an information system to manage a video library business. Background research identified Java and MySQL as suitable technologies. A prototyping methodology was chosen to analyze requirements, design an initial prototype, gather feedback, and evaluate the system. System analysis involved research techniques like questionnaires, interviews, and observations to understand problems with the current manual system and identify user requirements. A feasibility study found the project to be technically and economically feasible. The report then documents the development process from analysis through design, implementation, and evaluation of the prototype video library management system.

Uploaded by

Akash Modak
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 118

Mount Video Library Information System

A Video Library Management


Information System
Khayam Amin
BSc Computing (Industry)
Session 2006-2007

The candidate confirms that the work submitted is their own and the appropriate credit has
been given where reference has been made to the work of others.

I understand that failure to attribute material which is obtained from another source may be
considered as plagiarism.

(Signature of student)____________________________

I
Mount Video Library Information System

SUMMARY

The aim of this project was to develop an information system that would help the user manage his
business. The system needs to include normal technical features such as the facilitation of DVD
Rentals/Returns, business features such as the calculation of sales figures and customer-oriented
features such as the calculation of the average customer rating for a movie. The system produced
needs to overcome current problems such as a poor user interface, lack of a structure and ineffective
time consuming processes.

Background reading identified Java and MySQL to be the most appropriate technologies to use to
implement the system. Research into the different methodologies to help me manage the project
showed that the Prototyping methodology was the most appropriate model to follow.

This report steps through all of the development process; from the initial analysis, through the design
and implementation to the evaluation of how successful the prototype was seen to be.

II
Mount Video Library Information System

ACKNOWLEDGEMENTS

First and foremost I would like to thank God who gave me the knowledge, understanding and help to
get me through this project.

I would also like to thank my family for all the support they have gave me; especially my mum who
has always been there for me, and my brother and sister in law who were up on the last night proof
reading my work.

I also want to thank two of my cousins. Firstly, my 5 year old cousin Aresha, who came over for two
weeks and was a breath of fresh air during the stresses of Uni. Secondly, my other cousin Seema, who
was always there to serve as a distraction (For some reason she thinks she was a welcomed one).

I am especially grateful for everyone who has helped me during the project; Pat Hill for her support
and guidance, Martyn Clark for his constructive feedback of the mid term report, the owner and
employee at Mount Video Centre and finally D.A Bam for his evaluation.

Thanks must also be given to all my friends who I would not have got through university without,
especially DB, MJ, ALF, and PS. We’ve had a fair few laughs in our three years.

Finally thanks CK for all the help !!!

III
Mount Video Library Information System

CONTENTS

CHAPTER 1 : INTRODUCTION.............................................................................................. 1
1.1 Problem Definition ........................................................................................................... 1
1.2 Project Aim....................................................................................................................... 1
1.3 Project Objectives............................................................................................................. 2
1.4 Minimum Requirements................................................................................................... 2
1.5 Extended Requirements.................................................................................................... 2
1.6 Deliverables ...................................................................................................................... 3
1.7 Project Scheduling............................................................................................................ 3
1.8 Relevance to Degree Programme ..................................................................................... 3
CHAPTER 2: BACKGROUND RESEARCH........................................................................... 4
2.1 Introduction ...................................................................................................................... 4
2.2 Existing Solutions............................................................................................................. 4
2.3 Information Systems Development Methodology............................................................ 5
2.3.1 The Need for a methodology..................................................................................... 5
2.3.2 The Waterfall Model ................................................................................................. 5
2.3.3 Prototyping ................................................................................................................ 6
2.3.4 Rapid Application Development (RAD) ................................................................... 6
2.3.5 Chosen Methodology.......................................................................................... 7
2.4 Usability ........................................................................................................................... 7
2.4.1 The Need for Usability .............................................................................................. 7
2.4.2 Nielsen’s Usability Dimensions ................................................................................ 7
2.5 Human-Computer Interaction (HCI) ................................................................................ 8
2.6 Technologies..................................................................................................................... 8
2.6.1 Dimensions of Technologies ..................................................................................... 8
2.6.2 Application Technologies.......................................................................................... 8
2.6.3 Database Technologies ............................................................................................ 10
2.6.4 Data Import Technologies ....................................................................................... 11
CHAPTER 3 : SYSTEMS ANALYSIS ................................................................................... 13
3.1 Introduction .................................................................................................................... 13
3.2 Why do Systems fail? ..................................................................................................... 13
3.3 Requirements Gathering Technique ............................................................................... 13
3.3.1 Sampling.................................................................................................................. 13
3.3.1.1 Introduction .......................................................................................................... 13
3.3.1.2 Method of Appliance ............................................................................................ 14
3.3.2 Questionnaires ......................................................................................................... 14
3.3.2.1 Introduction .......................................................................................................... 14
3.3.2.2 Method of Appliance ............................................................................................ 14
3.3.3 Interviews ................................................................................................................ 14
3.3.3.1 Introduction .......................................................................................................... 14
3.3.3.2 Method of Appliance ............................................................................................ 15
3.3.4 Research .................................................................................................................. 15
3.3.4.1 Introduction .......................................................................................................... 15

IV
Mount Video Library Information System

3.3.4.2 Method of Appliance ............................................................................................ 15


3.3.5 Observation.............................................................................................................. 15
3.3.5.1 Introduction .......................................................................................................... 15
3.3.5.2 Method of Appliance ............................................................................................ 16
3.4 Current System ............................................................................................................... 16
3.4.1 Problems with the current system............................................................................ 17
3.5 Feasibility Study............................................................................................................. 18
3.5.1 Technical ................................................................................................................. 18
3.5.2 Economical .............................................................................................................. 19
3.5.3 Legal ........................................................................................................................ 19
3.5.4 Organisational.......................................................................................................... 19
3.6 Requirements Analysis................................................................................................... 20
3.6.1 Functional Requirements......................................................................................... 20
3.6.2 Non Functional Requirements ................................................................................. 21
3.6.3 Import Requirement................................................................................................. 21
CHAPTER 4 : DESIGN AND IMPLEMENTATION............................................................. 22
OF PROTOTYPE 1 .................................................................................................................. 22
4.1 Introduction .................................................................................................................... 22
4.2 Database Design ............................................................................................................. 22
4.2.1 Normalisation .......................................................................................................... 22
4.2.2 Integrity Constraints and Data Types ...................................................................... 23
4.2.3 Entity – Relationship Diagram ................................................................................ 23
4.3 Human Computer Interaction ......................................................................................... 24
4.3.1 Data Entry................................................................................................................ 25
4.3.2 Navigation ............................................................................................................... 25
4.3.3 Consistency.............................................................................................................. 26
4.3.4 Usability .................................................................................................................. 26
4.4 Application Design ......................................................................................................... 27
4.5 Implementation of the Application................................................................................. 27
4.5.1 Manage Customer Information................................................................................ 27
4.5.2 Manage Video/DVD Information............................................................................ 29
4.5.3 Rental and Return of a DVD/Video (Includes Stock taking) .................................. 29
4.5.4 Calculate Movie Rating........................................................................................... 30
4.6 Application Testing ........................................................................................................ 31
4.6.1 Unit Testing ............................................................................................................. 31
4.6.2 User Acceptance Testing......................................................................................... 31
4.6.3 Evaluation of Test Results....................................................................................... 32
CHAPTER 5 : DESIGN AND IMPLEMENTATION............................................................. 33
OF PROTOTYPE 2 .................................................................................................................. 33
5.1 Introduction .................................................................................................................... 33
5.2 Changes Made to the Database....................................................................................... 33
5.3 Changes Made to the Application .................................................................................. 33
5.3.1 Validate DVD/Video Rental Details ....................................................................... 33
5.3.2 Print Customer Details ............................................................................................ 34
5.3.3 Manual Customer Review Rating ........................................................................... 34
5.3.4 Member Lock .......................................................................................................... 34

V
Mount Video Library Information System

5.3.5 Other improvements ................................................................................................ 35


5.4 Design of Extended Requirements ................................................................................. 35
5.5 Implementation of Extended Requirements ................................................................... 35
5.5.1 User Login ............................................................................................................... 35
5.5.2 View Overdue Rentals............................................................................................. 35
5.5.3 Import Current Member/DVD Details .................................................................... 36
5.5.4 Customise Search / Search by Actor ....................................................................... 37
5.5.5 Calculate Sales Figures............................................................................................ 37
5.5.6 Administration ......................................................................................................... 38
5.6 Application Testing ........................................................................................................ 38
5.7 Implementation of Improvements .................................................................................. 39
5.7.1 Lock Functionality................................................................................................... 39
5.7.2 Import Details Functionality.................................................................................... 39
5.7.3 Search Actor ............................................................................................................ 39
5.7.4 Tool Tips ................................................................................................................. 39
CHAPTER 6 : EVALUATION................................................................................................ 40
6.1 Introduction .................................................................................................................... 40
6.2 Evaluation Criteria.......................................................................................................... 40
6.3 Effectiveness of Methodology........................................................................................ 40
6.4 Effectiveness of Technology .......................................................................................... 41
6.5 User Requirements ......................................................................................................... 41
6.6 HCI and Usability........................................................................................................... 45
6.7 Comparison to Other Products ....................................................................................... 48
6.7.1 SoftStore [1] ............................................................................................................ 48
6.7.2 Video Forecasting [2] .............................................................................................. 49
6.8 Possible Further Enhancements...................................................................................... 49
CHAPTER 7 : CONCLUSION ................................................................................................ 50

REFERENCES ......................................................................................................................... 51

Appendix A – Personal Reflection ........................................................................................... 53


Appendix C – Current Solutions .............................................................................................. 57
Appendix D – Analysis ............................................................................................................ 59
Appendix E – Design................................................................................................................ 68
Appendix F – Implementation.................................................................................................. 75
Appendix G – Testing .............................................................................................................. 97
Appendix H – Evaluation ....................................................................................................... 105

VI
Mount Video Library Information System

CHAPTER 1 : INTRODUCTION
1.1 Problem Definition
Information management is a major issue for businesses nowadays and the use of an information
system can contribute significantly to the achievement of a business’ goals. Small organisations tend
to lack the finances to acquire an information system tailored to their needs.

Mount Video Centre is a video library shop situated in Batley, West Yorkshire. They have been open
for about three years and are a small business that tends to have a local clientele. They have recently
expanded by moving to a slightly larger location. Originally the owner lacked the necessary
resources/finances to have a fully developed information system and so would note down all
information regarding Asian or English video/DVD rentals on paper. As this started getting untidy, he
purchased a computer and would instead note down the same information on an excel spreadsheet.
Now he feels that as he is expanding and will be hiring staff, it will be in his best interests to have a
suitable computerised desktop system, to assist in running the business. The current spreadsheet
system is seen as unprofessional, has no proper structure to it, and is unproductive. He would like the
new system to be efficient and easy to use as he has a basic level of computer literacy.

The owner has specified the application to specifically be desktop-based instead of on the internet. He
feels that the majority of his clientele have very limited internet experience which would make it
impractical for them to use the internet and he is also worried it would have an impact on his profits.
He currently has no internet connection and has made it clear that he doesn’t want the system to be
based online.

There are a number of different off-the-shelf desktop systems available for purchase such as Video
Forecasting and SoftStore. These systems have a variety of complexity and functionality issues as
discussed in section 2.2.

1.2 Project Aim


The aim of this project is to analyse the information needs and the business processes regarding video
rentals and implement a system that will computerise this process and help the user manage the
business.

1
Mount Video Library Information System

1.3 Project Objectives

The objectives for this project are:


1. To research the business process/problems behind the video/DVD rentals with the
user
2. To research the different types of methodologies that can be used for this project
3. To research the different types of technologies to use to implement the system
4. To research other different video library systems
5. To ascertain a list of requirements from the user
6. To research HCI so an easy to use interface can be implemented
7. To design a desktop based application to incorporate the requirements of the user
8. To Implement the application
9. To evaluate the application in terms of usability and user requirements

1.4 Minimum Requirements

The minimum requirements for this project and new proposed information system to be developed
must have the ability to do the following:
• Manage video/DVD stock control (add, view, and edit video/DVDs)
• Manage customer information (add, view and edit customers)
• Store and process details of a member renting and returning a video (or DVD)
• Calculate Movie Rating based on customer reviews

1.5 Extended Requirements

Further work that can be carried out on the system, time allowing will include:
• To be able to reserve a video if out of stock
• Search for movies starring a certain actor
• Calculate sales figures in terms of most popular movies/genres being sold
• Separate logins for separate employees
• Manage the sales of DVD’s/audio cassettes
• Find out what video rentals have gone past their due date (i.e. overdue movies)
• Import the users current videos into the system
• Easy to use and navigate
• A printed user guide for a non-technical person
• Administration

2
Mount Video Library Information System

1.6 Deliverables

The deliverables to be produced for this project include:


1. A final year project report
2. An information system for Mount Video Centre

1.7 Project Scheduling


A more detailed project schedule than below has been provided in Appendix B.
Tasks Dates
Background Research/Mid Project Report 16/10/2006 – 08/12/2006
Analysis 08/12/2006 – 22/12/2006
Iteration 1 (Design/Implementation/Testing of 22/01/2007 – 19/02/2007
the Minimum Requirements
Iteration 2 (Design/Implementation/Testing of 20/02/2007 – 18/03/2007
the Minimum Requirements
Evaluation 19/03/2007 – 15/04/2007
Complete Report Writing 15/04/2007 – 23/04/2007

As can be seen, each phase has been divided up into a number of tasks that need to be completed in the
fixed time period. The January exams have been taken into account as well as other courseworks and
the majority of the report is to be written during the Easter holidays.

1.8 Relevance to Degree Programme


This project will make use of a variety of skills I have developed during my BSc Computing course as
well as experience gained from my placement year. It is important that at least one type of
methodology is followed, which have previously been covered in IS11 (Introduction to Information
systems) and IS33 (People-centred Information Systems Development). To help gather user
requirements and apply different analysis techniques, knowledge gained from the IS11 and SE20
(Object Oriented Software Engineering) modules will be called upon. To assist on an implementation
based on these user requirements, the GI11 (Introduction to Human Computer Interaction) module will
help in the implementation of the user interface aspect of the system, whilst the SE24 (Practical
Software Development) module will help on the programming aspect. My database skills have been
significantly enhanced during the DB11 (Introduction to databases) and DB21 (Database Principles
and practice) modules and what was learned during my placement and the SE24 module can be
utilised to manage the whole project effectively.

3
Mount Video Library Information System

CHAPTER 2: BACKGROUND RESEARCH


2.1 Introduction
This chapter looks into what type of background research needed to be done to help solve the user’s
problem. Initially the different video library systems out there at the moment needed to be researched
to help establish specific functionality. This was then be followed by research into the different types
of methodologies that could be used as a framework for the whole project. The chapter will also
include an examination of the relevant different technologies that can be used and factors that help
decide a good user interface, including the benefits and weaknesses.

2.2 Existing Solutions


There are numerous companies that offer a piece of software to facilitate in the rental of videos. The
following two have been evaluated which typify the common software approaches and why it is not
appropriate to the owner:
• SoftStore [1] provide software that will facilitate the rental of videos and DVD’s. When
compared to the user’s requirements, it provides the typical type of functionality that would be
needed when renting and returning a video. The system allows searches of videos to be made,
and possesses the ability to handle overdue videos and reserve videos if they are not available
at the time. The system also provides business functions such as the option to view the rental
performance of a viewed title and daily sales figures. There are though a number of problems
that come with this product. Firstly, it is too complicated for the computer illiterate owner, as
it has too many screens to switch through for simple tasks such as renting a video. The user
interface (as can be seen in Appendix B) is also difficult to manage as there is too much
redundant information/functionality which the owner would not want to use and it would
therefore most likely discourage him from using the system.

• Video Forecasting [2] provide a POS solution that allows video stores to run and monitor their
business. The system provides functionality similar to the users needs. It allows the rental and
returns of a DVD and calculates stock. It also possesses a good user interface (as can also be
seen in Appendix B) for the owner to interact with. The problem the owner faces with this
system is the lack of business management functionality. The system doesn’t possess the
ability to calculate video popularity or calculate sales figures for video genres. Another
problem with this product is that it costs about £450, which is increased by a further £150 if

4
Mount Video Library Information System

the user ever acquires a second computer and intends to install the system on that computer as
well. This price is outside of the budget of the owner especially as it doesn’t fully fulfil his
requirements, making it inappropriate for purchase.

2.3 Information Systems Development Methodology

2.3.1 The Need for a methodology


Avison & Fitzgerald [3] describe an information systems development methodology
as “A collection of procedures, techniques, tools and documentation aids which will help the systems
developers in their efforts to implement a new information system”. Methodologies are needed as they
help the developer produce a product of higher quality of which the user is most likely to accept as
well as help avoid schedule delays. It is imperative that the project made use of at least one
methodology and the following section will examine a variety of different methodologies available.

2.3.2 The Waterfall Model


This methodology divides the development into 6 distinct steps; Feasibility study,
Systems Analysis, Systems Design, Implementation, Testing and Evaluation. Each phase must be
completed before the next phase can begin and within every phase, lies sub tasks and processes [4].

The advantage of using this model is that the user is involved before and after the implementation by
gathering requirements and testing the system. Also there is a greater degree of control because each
stage in the development is divided into evident manageable tasks.
The disadvantage is that real projects phases tend to overlap and iterations are inevitable because of
inadequacies in the requirements analysis which may become more evident during the design or
implementation. Because the waterfall method is sequential with a ‘no going back’ strategy, it is
difficult to change technology or requirements once the systems engineering is under way.

The model can be manipulated to overcome its drawbacks by becoming an iterative process with
feedback. It allows the prospect of returning to any previous stage to review work, and would
therefore accommodate any changes in user requirements. The drawback of using this is that it can
become costly, if for example a deficiency is found in the requirements analysis whilst implementing
the system, then iterating back to analysis could mean a majority of the design process has to be
redone.

5
Mount Video Library Information System

2.3.3 Prototyping
The main stages to this methodology are to perform an initial analysis, define the
objectives, specify and construct the prototype, and then evaluate it and recommend changes. The last
three steps are repeated until the objectives have been achieved. Bennett et al [5] describe a prototype
as a “partially complete system that is built quickly to explore some aspect of the system requirements
and that is not intended as the final working system”. The methodology addresses user dissatisfaction
that they only get to see the system after implementation, by which it is too late to make any changes.
There are two main types of prototype; throw-away and evolutionary.
The Prototyping methodology is beneficial as it constantly involves the input of the user (more so than
the waterfall method) so any misunderstandings between the developer and user can be identified and
any missed requirements can be recognised quickly. The feasibility and usefulness of the system can
also be tested as sometimes there can be a conflict between the user and developer as to how feasible a
system is. This reduces the chances of a project failing.
The drawback of using this type of methodology is that because it is iterative and requires significant
user involvement, the prototype can become difficult to manage and control and there is a danger of
constantly going round in circles implementing it due to minor changes that need to be made. In
addition, a problem can occur when managing expectations as developing a prototype can take a short
time whilst it takes much longer developing a fully functioning application.

2.3.4 Rapid Application Development (RAD)


RAD is an iterative process that can be used to address the problems that are usually
associated with the changing and evolving of requirements during the development process. It divides
up the system to be developed into a number of timeboxes, with the first timebox quickly being
developed based on the most important requirements. The next timebox will then focus on the more
detailed requirements and so on. Each timebox has a fixed period of time in which it develops the
functionality of the system as much as it can accord the requirements [4].
The advantage of using RAD is that it provides the user with a quick and hopefully a useful part of
system within a short timescale, which helps build credibility and user enthusiasm. The user is also
involved at the end of each timebox and any change in user requirements can easily be implemented as
the total system has not been completed.
The disadvantage of using RAD is that even though the time of each timebox is fixed, which helps to
prevent project overruns, the functionality could be reduced as there is not enough time, thereby
providing a system which satisfies a limited number of total requirements. Also due to the focus on
speed of delivery, the system tends to have missing functionality as well as a flawed design.

6
Mount Video Library Information System

2.3.5 Chosen Methodology


After a thorough analysis of the methodologies, it would be most appropriate to use
the Evolutionary Prototyping methodology during the project. The RAD methodology was first
discounted as it could easily lead to a flawed design and because it is constructed in a short timescale,
it could also lead to functionality being missed out which could be essential to the user. The Waterfall
Model has not been used as it can be seen as “costly, time consuming and inflexible” [6]. It also
doesn’t confront any problems with the user requirements until the system has been fully
implemented, after which it becomes difficult and time consuming to make changes. Coad and
Yourdon [7] feel that “prototyping should be used for all object-oriented projects”. It is best to use the
Prototyping methodology as it will continuously utilise the user’s views, thereby ensuring the user’s
requirements are completely met and increase the likelihood of the acceptance of the system. This will
assist in the successful completion of the project.

2.4 Usability

2.4.1 The Need for Usability


The usability aspect of the project looks at ways to ensure the finished system is what
the user wants. Lindgaard [8] states that a “major indicator of usability is whether a system is being
used”. It is a very important feature in the development of the system as the user must be able to
operate the application without any problems or else they will decide to stop using it.

2.4.2 Nielsen’s Usability Dimensions


Nielsen [9] originally defined five usability dimensions which enabled the possibility
of systematic studies of the system to take place and helped draw heuristics for assessing the system
usability. These heuristics were specified for websites but the versatility of it means that they can be
used for any GUI based application. They are:-

1. Learnability – the user can rapidly start getting work done. Processes such as rental of videos
and adding new members should be simple and quick to learn
2. Efficiency – once the user has learned the system, a high level of productivity is possible
3. Memorability – a casual user should be able to return to the system without having to learn
everything all over again
4. Errors – Few errors should be made and it should be easy recovering from errors. Validation
needs to be included such as the telephone number not exceeding 11 characters.
5. Satisfaction – users are subjectively satisfied and they like the system

7
Mount Video Library Information System

2.5 Human-Computer Interaction (HCI)

HCI is one of the extended requirements as the user needs to be able to interact with the
system without having any problems. As the user is non technical, it is important that this issue is
addressed. The most popular method of evaluating HCI is to use Shneiderman’s rules for interface
design. This can be manipulated to provide three main areas to help design the system and ensure an
effective user interface. They are:-
1. Navigation – the system should allow easy navigation between the different functionality.
2. Data Entry - the system reduces unnecessary inputs and risk of error as well as speeds up data
entry.
3. Consistency - consistent sequences of actions should be required in similar situations as well
as identical terminology used in prompts, menus etc.

2.6 Technologies

2.6.1 Dimensions of Technologies


The system can be implemented using a number of different technologies. In order for
this system to be completed, there will need to be a user interface to the application with an underlying
database. As the owner has specifically stated that he would not like a web based application,
technologies such as PHP, ASP and Apache will be discounted. The technology will therefore
specifically focus on a desktop based application.

2.6.2 Application Technologies


There are a number of different application based technologies that can be used to
implement the core functionality. The three application technologies that will be evaluated are; Java,
C#, and Visual Basic. All three languages are object oriented as that is said to be the most efficient
approach in implementing a software engineering product.

2.6.2.1 Java
Java is more than just a programming language; it is also a platform. It is one of the
most popular object oriented languages as it has features for GUI-building and the program written is
executable on multiple operating systems. Java includes functionality to ensure it can be connected to
a database for data retrieval/update purposes. Wigglesworth et al state that “any java program can use
a relational database” [10].
The main advantage of using Java is that it is object oriented which provides greater
flexibility and modularity; therefore programs are easier to read and write. Java also includes

8
Mount Video Library Information System

functionality such as automatic garbage collection which makes it more efficient to code in than other
languages such as C/C++. The portability of Java ensures that it can run on any platform without
having to be recompiled which makes it advantageous if the owner ever wants to use the application
on a different operating system such as Linux. Java programs are also reliable and secure as they do
not support pointers, which eliminate the possibility of overwriting memory and corrupting data.
The disadvantage of using Java is that because it runs on a virtual machine (VM), it runs
somewhat slower compared to other programming languages, but recent versions of VM use dynamic
compilation which decreases the time to compile and run.

2.6.2.2 C#
C# is intended to be more of a modern object oriented programming language,
developed by Microsoft as part of their .NET initiative and syntax is similar to Java as it is also based
on C++. It also provides strong support for software engineering principles such as type checking,
database connection, arrays and detection of variables that have not been initialised.
The advantages of using C# are similar to Java as it also provides functionality such as
automatic garbage collection, flexibility, reliability and security [11]. An additional advantage it has is
that C#.NET is implemented by Microsoft and therefore works much better on a Microsoft Windows
platform because of its compatibility. This also becomes a disadvantage of using C# as it would not be
possible for the owner to ever switch operating systems as the application would not run on it.

2.6.2.3 Visual Basic


VB is an event driven programming language that now works in conjunction with the
.NET framework. It provides the facility to create a GUI application as well as integrate with a
database. It is highly recommended when using the RAD methodology as it enables applications to be
built quickly with simple code [12]. Programming in VB usually involves arranging components on a
form using drag and drop tools.
VB has a simple structure and is an easy to program language. This provides the
opportunity to implement the system quickly in terms of the functionality and GUI, which makes it
advantageous as there is a limited period of time to create the application. Another strong point of VB
is that it has a comprehensive set of debugging tools, so it has the functionality of breakpoints as well
as the ability to modify code whilst paused.
The disadvantage of using VB is that it will also only run on the Windows operating
system. This again will cause a lot of problems for the owner if he ever decides to switch operating
systems. VB also does not have exception handling with the same capability of Java.

9
Mount Video Library Information System

2.6.2.4 Conclusion
After evaluating the above technologies, Java was selected as the most suitable
technology to use to implement the functionality and GUI of the application. It can be used efficiently
with the prototyping methodology. As the methodology used is evolutionary, the owner will get to
review the system after the implementation stage, so if there are any changes in user requirements,
these can be implemented easily as Java provides great flexibility and reusability of code. It is also
portable as it can be run on different operating systems whilst C# and VB are Windows platform
specific. This means that the user would not have any problems if he ever chooses to switch platforms.
I also think that Java is the most appropriate programming language to use as I have
previous experience in this although C# has similar syntax and would not be difficult to learn due to
both of them being an object oriented language based on C++.

2.6.3 Database Technologies


There are a variety of database technologies that can be used for the underlying
database that will hold all the core data. The three database technologies that will be evaluated are;
Microsoft Access, SQL Server and MySQL. Evaluation will need to include if it would be suitable for
importing data as currently the user has a list of videos stored on Microsoft Excel.

2.6.3.1 Microsoft Access


MS Access is a popular relational database management system that is part of the
Microsoft Office software package which is usually running on most PC’s with a Windows operating
system. An important feature that MS Access provides as well as a database is a graphical user
interface. This means a relatively unskilled programmer can easily implement a GUI using forms, and
drag and drop tools and then implement a query which is automatically generated based on the user’s
selection. These queries can then be manipulated further if required.
MS Access would be beneficial as it is suitable to small scale projects which have a
limited number of tables and a database size of less than 2GB. One of its main assets is its
compatibility as it has the ability to import data from a spreadsheet file such as MS Excel.
The disadvantage of using MS Access is that it is not as secure as the database can
usually be copied locally which can allow a relatively inexperienced hacker to find out any passwords
to get into the system. Another disadvantage is that it doesn’t allow concurrent access which can cause
major problems when the intended system is duplicated onto a different machine. Also, MS Access
can cost up to £200 per machine, making it an unattractive option.

10
Mount Video Library Information System

2.6.3.2 Microsoft SQL Server


SQL Server is a platform dependent relational database management system. It is
commonly used by businesses for medium-large sized databases and handles database queries
efficiently. It is more secure than MS Access as it is integrated with Windows NT security but is
expensive to purchase. SQL server also provides the opportunity to import data directly from MS
Excel. SQL Server can cost anything from £1,000 upwards depending on the version bought.

2.6.3.3 MySQL
MySQL is an open source database management system that allows a number of
programming languages (including Java) to access it. It can work on many different platforms
including Windows, Linux and Mac. Using MySQL would be advantageous as it has a good technical
support (has forums and mailing lists), is free, and provides security through user authorisation and
access privileges. The disadvantage is that it is more difficult to import data from a MS Excel
spreadsheet.
2.6.3.4 Conclusion
After evaluating the above three database technologies, MySQL was decided as
best technology to use as the underlying database to Java. MS SQL server was first discounted as the
owner would need to purchase it and it is out of his budget. There is also no need to purchase it as
MySQL provides similar functionality for this project at no cost to the business. MySQL is more
appropriate than Ms Access as it has an additional layer of security. In MS Access, data is stored in a
local machine which could allow a foreigner to steal data by copying it onto disk. This means that
personal information for a member that is the owner’s responsibility can be stolen.
MySQL is also the preferred database technology as it is platform independent,
which would allow the owner to be able to use the system if he switches operating systems.

2.6.4 Data Import Technologies


As has previously been stated, the user currently has a list of his members, DVD’s and
rentals on three separate worksheets. Because the user has a high volume of customers and
DVD/videos, it would be a time consuming and error prone process for him to manually copy the data
from the spreadsheet file into the intended system one record at a time. This could instead act as a
source of discouragement in using the intended system. It is therefore in the best interests of the user
that functionality is put in place with the intention of this process being computerised so that the
application automatically retrieves data from the MS Excel spreadsheet and transfers it to the MySQL
database so that it can be used. Extensive research shows that this functionality can be implemented in
a variety of ways which have been discussed.

11
Mount Video Library Information System

2.6.4.1 Data Import 2007 for MySQL [13] /Navicat [14]


Both of these tools will import data quickly from a number of applications such as MS
Excel, MS Access, and CSV to MySQL tables. They both include a wizard that guides the user
through a number of steps which includes adjustable import parameters, number of records to skip,
and data formats of source or destination.
The advantage is that both are very quick and powerful tools with a user friendly
interface and they allow you to be selective with the records that you want to import. The disadvantage
of both tools is that they cost about £40 to purchase and the import functionality would be external to
the intended system. It would also be an overcomplicated process for a simple data import.

2.6.4.2 POI (HSSF)


POI stands for Poor Obfuscation Implementation and is the Apache Java API for
”manipulating various file formats based upon Microsoft’s OLE 2 Compound Document format using
pure Java” [15]. HSSF is POI Project’s implementation and provides a way to read MS Excel
spreadsheets using java code.
The advantage of this is that the developer of the system will be writing code that will
be specifically adapted to handle the Customer/DVD spreadsheet file and this whole process would be
part of the functionality of the application rather than an external system. Another advantage is that
there will be no costs associated with this as the HSSF API is open source. The disadvantage is that
the application will not be able to import any other type of data apart from Customer/DVD related
information.

2.6.4.3 Conclusion
After evaluating the previous technologies mentioned, it would be best to make use of
the HSSF functionality within POI to import the customer/DVD data from the spreadsheet to the
intended system. This is because it will be customised to the specific data and there are no additional
costs associated with this. There does not appear to be a necessity to purchase a piece of software
which will most likely be only used twice (i.e. once for the customer data and once for the DVD/video
data). The reason for this is that the user will only need to import the data when he initially receives
the system and has no data in the database.

12
Mount Video Library Information System

CHAPTER 3 : SYSTEMS ANALYSIS


3.1 Introduction
Systems Analysis is essential as it is used to analyse the current system in detail to determine the
requirements of the new system (Bennett et al) [5]. This phase must be completed before commencing
onto the first iteration stage. This chapter will include a feasibility study to determine whether it is
feasible to carry out the project given the available resources, followed by a discussion on the data
gathering techniques that could be used to collect the data for analysis purposes. Furthermore, a
detailed examination of the current user practices will fully utilise the requirements gathering
techniques to help establish the exact needs of the proposed system.

3.2 Why do Systems fail?


A number of projects fail at the analysis stage of software development and it is important to look at
these causes of failures so that the analyst can learn from these mistakes. One of the common
problems that occur is the lack of resources such as time and money. This results in the objectives and
requirements not being defined fully. This is usually applicable in large scale projects and so it is not
as relevant when building a small scale project for a relatively small company by a single analyst.
Another common problem is the lack of user involvement which results in a lack of communication
between the analyst and user, thus an inaccurate definition of business needs of the user can occur. The
analyst must ensure that the user is involved at the beginning and ending of each stage (as is possible
during the Prototyping methodology). Communication must be frequent to ensure that requirements
are accurate and are met. A further problem that can occur is the lack of training which means that the
user will be unable to use the system properly. This can be resolved by the analyst by providing
training as well as a user guide with a troubleshooting section.

3.3 Requirements Gathering Technique


There are five main fact finding techniques used by analysts to capture and investigate user
requirements. They are collectively referred to as SQIRO and are described in the following sections
as well as if/how they will be utilised for the proposed information system.

3.3.1 Sampling

3.3.1.1 Introduction
This approach refers to the collection of blank and completed documents
during the course of interviews or observation sessions. They are useful in investigating the

13
Mount Video Library Information System

information that is processed within the current system. This will then help determine information
flow processes within the proposed system.

3.3.1.2 Method of Appliance


Sampling has been used to collect formal documentation the company
provides. As can be seen in the appendix, a membership form has been provided which a new member
must fill in if he/she is to rent out a DVD and the corresponding membership card that is then provided
to the new member. This will help determine data that will have to be input into the proposed system.

3.3.2 Questionnaires

3.3.2.1 Introduction
This technique will “allow analysts to study attitudes, beliefs, behaviour and
characteristics of several key people in the organisation who may be affected by the current and
proposed systems (Kendall and Kendall [16]). Questionnaires consist of open ended, multiple choice
or closed questions and the use of it depends on the nature of gathering the requirements.
Questionnaires are an economical way of gathering data from a large number of people but a good
questionnaire can be difficult to construct.

3.3.2.2 Method of Appliance


Questionnaires were not used as it is designed to gather and analyse data from a
larger number of people and Mount Video Centre consists of only two people (i.e. the owner and an
employee).

3.3.3 Interviews

3.3.3.1 Introduction
Interviewing is probably the most widely used fact finding techniques known
to analysts. It involves a structured meeting between an analyst and interviewee that can involve a set
of fixed questions or the interview can be designed to cover a certain number of topics with open
ended questions used. The information from interviews tends to be of high quality as the analyst can
be responsive to answers and can probe in greater depth on certain topics of interest. Interviews can be
setup quickly and can be used as part of user feedback at the end of each stage of the waterfall method
to gain information. The only potential problem is that it can be time consuming and costly for the
interviewee.

14
Mount Video Library Information System

3.3.3.2 Method of Appliance


Interviewing is another technique that has been used to gather data as it will
provide much more information than questionnaires because of the fact it is a face to face based
contact which gives a better opportunity to ask open ended questions. The owner preferred conducting
interviews during working periods and was always available for any other queries. As can be seen in
the Appendix D, there were a number of interviews conducted. Each interview has a transcript
provided with it which describes the information relevant to the system (i.e. doesn’t include personal
information, greetings etc). The initial interview as well as the requirements interview helped establish
the problems the owner faces with the current system. It also helped define the requirements he would
like in the proposed system. The information gathered from the interview has been discussed further in
Section 3.4.

3.3.4 Research

3.3.4.1 Introduction
This involves reading up on the background of the company and is most
practical when the analyst has a limited understanding of the organisation. The types of documents
suitable for background reading are company reports, existing systems documentation and policies.

3.3.4.2 Method of Appliance


This technique mainly provides information about the current system and
therefore was not needed as the interview has already covered this. Also as Mount Video Centre is a
small company, the analyst is already aware of the background of the organisation.

3.3.5 Observation

3.3.5.1 Introduction
This involves watching people carry out their day to day work in a natural
setting. It helps to see the flow of information from start to finish as well as the normal aspect of the
job carried out by employees. Using observation as a technique can surface information that was not
known during the interviewing stage. The advantage of using observation is that the analyst is
provided with first hand experience of the way the current system operates but a potential drawback is
that some people behave differently when they know they are being watched.

15
Mount Video Library Information System

3.3.5.2 Method of Appliance


This technique was employed as it allowed the different business processes
the organisation supports to be viewed via first hand experience. This meant the whole process of
renting the DVD and returning it were observed, as well as extra information which was not
mentioned during the interview stage. One of the extra observations made was that the owner
sometimes allows members to make a payment for the DVD when it is returned rather than when the
rental takes place. As the owner did not mention it in the interview, he was questioned about it later on
in which he pointed out that some people tend to forget to bring money with them when making a
rental. This was a very useful combination of utilising the observation and interview techniques to
gather data.

3.4 Current System


The SQIRO techniques helped gather information regarding the existing system. The main business
function of Mount Video Centre is to rent out videos and DVD’s.

As described in the interview (see Appendix D), the current system can best be described as a
predominantly ‘computer-spreadsheet centred’ system. As the owner explained during the interview,
at present he has “one spreadsheet file that has details of all the customers and another spreadsheet file
with details of all the videos and then a third with video rental details”. He collects the member details
via a membership form which needs to be filled in and signed. Then there needs to be a verification of
name (with a picture) and address when becoming a member, such as a passport. The DVD/video
information he inputs into the spreadsheet is based on details provided on the DVD cover as well as a
specially assigned ID. Whenever a customer wants to rent out a video or DVD, he notes down the
unique ID/name of the DVD, the membership number/name of the customer and the return date which
is then entered into the Video Rental details spreadsheet. Then when a customer returns the DVD, he
looks up the code for it in ‘Video Rentals’ and deletes that row in the system so that shows that the
videos been returned. If the movie is returned late, then there is an additional penalty for the customer.
The owner charges £2/3 per day per DVD and charges a further £2/3 per day for overdue movies. This
whole process covers the main business aspect of renting a video within the organisation.

The current system has no functionality to process movie related queries or calculate sales figures. If
the owner is asked about any types of ratings for a particular movie, then his answer is based solely on

16
Mount Video Library Information System

recollection of other customer opinions. If he is queried about movies in stock that include a certain
character, then again his answer is based solely on memory.

Using the System Modelling technique, Appendix D includes activity diagrams (to show transition
between activities).

3.4.1 Problems with the current system


The current system has the following drawbacks:-
• User Interface; this is because the system simply consists of three different spreadsheets
put together which holds all the data. The lack of a user interface makes the system and
organisation look amateurish to customers and employees.
• Data integrity; this regards the accuracy and correctness of the data. Omissions are
usually caused by data being input into the system incorrectly. If for example, the DVD
rental information is input into the system, and the user forgets to input the membership
ID due to a lack of validation, then that can cause problems later on if the customer
doesn’t return the DVD.
• Inadequate technical functionality; due to the system being so basic, it is practically just
held as a data store instead of the information being utilised. Functionality such as the
ability to find out the most popular videos, or reserve a video is unavailable.
• No business functionality; there is no functionality that assists the owner in running his
organisation. This relates to how the business is run in terms of the commercial aspect.
For example, there is no way of being able to find out sales figures for the past month.
• Time consuming processes; simple processes such as retrieving the details of the DVD
rental so that the rental can be marked as returned takes longer than necessary. The user
has to search through a whole list of DVD’s to match the DVD taken out. He then deletes
the row in the system. This is a time consuming process and can be tiresome for the
customer especially if he is in a hurry.
• No security; anyone could easily gain access by opening the MS Excel spreadsheet file.
They would then be able to view other people’s personal details or delete any DVD rentals
information.

17
Mount Video Library Information System

3.5 Feasibility Study


Before designing and implementing the proposed system, it was imperative that the proposed system
was practical for Mount Video Centre. The aim of the feasibility study was to investigate the
information needs of the users and determine if the choice of system (and technology) being proposed
was a viable business proposition. Avison and Shah [17] feel it is a “crucial stage in the information
systems development life cycle” as “it is the last stage before a considerable amount of resources are
invested in a project, and therefore needs to be handled very carefully”. There are four relevant
sections to the Feasibility Study; Technical, Economical, Legal and Organisational.

3.5.1 Technical
This section focuses on the question “Does current technology support the proposed
system?” (Avgerou and Cornford [18]). It deals with technology issues such as hardware, software and
security. It is important that the chosen technology met the requirements of the user and the technical
decisions took into account any restrictions to the development.

In this project, Java and MySQL was selected as the technology to apply in implementing the system.
The proposed system is feasible as the database can cope with the storage requirements when holding
the video/member/rental details whilst the application can manage a number of different daily
transactions passing through the system (as data). This is important as it will ensure that any querying
or modifications to the database will be done efficiently via the graphical user interface of the java
application, therefore preventing problems for the user. Both technologies are viewed as being
compatible with each other and possess the ability to function across different platforms. The owner
currently does not have Java or MySQL (i.e. software) installed on his system but will have no
problems in having it installed on his computer as both can be downloaded at no cost. His PC (i.e.
hardware) was bought fairly recently and therefore there will be no need to purchase a different
machine which again results in no additional costs.

Another technical issue is regarding the security of the system. Even though security is not as a big
issue as the system is offline, there is still a threat where an individual can gain physical access to the
system. It is important that there is a good security measure in place to prevent access to customer
details as an individual could access personal customer information, thereby compromising the
organisation. Security can be achieved by a password login into the system as well as using the
password protection functionality within MySQL.

18
Mount Video Library Information System

3.5.2 Economical
This section concentrates on “whether a proposed information system is financially
affordable and if it is going to lead to economic benefits” [17]. Heathcote [19] states that “if the
benefits do not outweigh the costs, then it is not worth going ahead with”.

In this instance, a cost-benefit analysis was used to investigate the costs of the proposed system.
Software costs such as the use of Java and MySQL are virtually nothing as both are open source. The
analyst designing, developing and testing the system will not be charging any fees as the proposed
system is part of his final year project. He will also train the staff for free and will develop the system
using Eclipse as a framework which will not require any additional development costs. These minimal
costs will be extremely beneficial to the user as he will gain a system that efficiently rent outs a video,
searches for DVD’s etc without the need for any paperwork to be done.

3.5.3 Legal
This section involves the consideration of “externally imposed requirements or
conditions that an information system must meet” [17]. This is crucial as the system should not be
developed if it is not legally feasible, even though the system may be technologically and
economically feasible.

The implementation of the proposed system will pose no legal implications. The Data Protection Act
protecting the privacy of individuals will be maintained by Mount Video Centre. This will include the
use of a log in for employees to ensure individuals are not able to view other individual records. The
software to be installed will be legally feasible as it will be open source and therefore available to
anyone.

3.5.4 Organisational
This refers to how Mount Video Centre will need to adapt to the proposed information
system. It will cover any changes in the structure, procedures and decision making processes.

The proposed system needed to be built from scratch and tailored to the requirements of the owner,
which would help eliminate the current problems faced by the owner. If the organisation was unable to
manage the change that the proposed system would bring, then this would result in the information
system not being effectively utilised. The planned information system would efficiently computerise
the whole video rental system and transform the current work practice into a computer oriented

19
Mount Video Library Information System

structure. As the owner currently has a computer desktop, there are no problems expected in adapting
to the new system as long as training is provided. The procedure around the video rental would simply
change from a basic excel spreadsheet into a more advanced system. As the owner currently only has
one employee, there will be no need for any decision making or structural processes to alter.

3.6 Requirements Analysis


The most influential factor for the success of this project is whether the proposed system will fulfil its
users’ requirements as “the downstream costs of not capturing, omitting or misinterpreting customer
requirements may prove unsustainable later in the process” Maciaszek [20]. After having collected the
user requirements using the interviews, observation and sampling techniques, the exact requirements
of the proposed system needed to be defined. This was done by classifying them as either functional
requirements or non functional requirements.

3.6.1 Functional Requirements


These “describe what a system does or is expected to do, often referred to as its
functionality” Bennett et al [5].

The functional requirements are as follows:-


• Manage video/DVD stock control – Add, view, and edit video/DVD information
• Manage customer information - Add, view and edit customer details
• Manage the sales of DVD’s and audio cassettes
• Store and process details of a video/DVD rentals and returns
• Calculate Movie Rating – a scoring system where a customer gives the movie a rating out of
10 after watching it.
• Find out what video rentals have gone past their due date
• Separate logins for separate employees
• Administration – Allows new usernames to be created / passwords to be changed
• Search for videos/DVD’s which stars a certain actor/actress and is in stock – User can search
for all the movies that he currently has in stock that stars “Jennifer Love Hewitt”
• Search for most popular videos/DVDs being rented according to genre – User can search for
the most popular movie being taken out nowadays.
• To be able to reserve a video if out of stock
• Search and generate past sales – Work out the most popular movies and genres and help the
user decide on what genres he should increase his stock in

20
Mount Video Library Information System

• Import the users current videos into the system (further discussed in section 3.6.3)
• A printed user guide for a non-technical person

3.6.2 Non Functional Requirements


These “describe aspects of the system that are concerned with how well it provides the
functional requirements” Bennett et al [5]. This aspect of the requirements is more concerned with the
quality of the system. The following non functional requirements have been identified for the
proposed system:-
• Security – the use of a login will help prevent people gaining access to personal information of
customers.
• Usability – the user is able to use the system without any problems which will help ensure
they carry on using the system.
• User Interface – it needs to look professional but at the same time be very simple to use and
navigate especially as the user has low levels of computer literacy.
• Consistent procedures – so the procedure to add a new DVD would be very similar to when
adding a new customer.
• Performance – search results are bought up quickly as customers will get impatient if it takes
too long.

3.6.3 Import Requirement


As discussed in section 2.6.4, as there are high volumes of members and
DVD/Videos, it would be a time consuming and error prone process for the owner to manually
transfer the data from the spreadsheet file into the intended system one record at a time. Currently the
spreadsheet files have limited data inside so it has been decided that in order to make it easier for the
owner to switch to the intended system immediately, it would be best if he updated the Customer and
DVD spreadsheets with the full relevant details so the migration of data can be successful. The
following details are required:-
• Customer – Membership Number, Forename, Surname, Address, Town, Postcode, DOB
• DVD – DVD Number, Movie Name, Origin, Genre, “DVD” or “Video”, Main Actor, 2nd main
actor, Certificate, Rental Price

21
Mount Video Library Information System

CHAPTER 4 : DESIGN AND IMPLEMENTATION

OF PROTOTYPE 1
4.1 Introduction
After having gathered the user requirements for the intended system, this chapter will
concentrate on the design and implementation of the prototype. As the evolutionary Prototyping
methodology is being employed, there will be two iterations; the first will satisfy the minimum
requirements (this chapter) whilst the second will fulfil the extended requirements (chapter 5).

4.2 Database Design


In order to effectively utilise the intended information system, it is imperative that the
database is designed to overcome the problems of the current system. The database must also align
with the current business processes of Mount Video Centre; this will enable the owner to adapt to the
system.

4.2.1 Normalisation
The main purpose of normalisation is that it “effectively produces a set of data
groupings, which are known to be free of problems as well as providing a flexible and robust basis for
data design” Skidmore & Eva [21]. The database needs to be normalised to ensure data consistency,
which is done by removing data redundancy. Once this occurs, data will be more reliable and easier to
access. There are five normal forms of normalised data but Robinson and Prior [22] state that
“normalising data to the Third Normal Form is regarded to be sufficient” for an Information System.
In the Third Normal Form, the database will incorporate the First and Second Normal Form and
therefore be free of any non-trivial or functional dependencies. The initial schema is as shown below:-
Customer (CustomerID, Firstname, Surname, Address, Town, Postcode, HomePhone,
Mobilephone, DOB, Contactfullname)
DVD (DVDID, Name, Genre1, Genre2, Actor1, Actor2, Actor3, Type, Certificate,
Stock, TotalStock, Nationality, AdditionalInfo, Price, NumberofReviews,
TotalRating)
Rental (RentalID, CustomerID, DVDID, DateRented, DateDue, Paid)
HistoryRental (HistoryRentalID, CustomerID, DVDID, DateRented, DateReturned,
AmountPaid)
Login (LoginName, LoginPassword)
(KEY : Primary key = Underlined, Foreign key = Italic )

22
Mount Video Library Information System

4.2.2 Integrity Constraints and Data Types


As can be seen from the initial schema on the previous page, the database has been
normalised into five separate tables; each table containing a primary key to ensure that each record can
be uniquely identified. The functionality of each table is:-

• Customer – store all information regarding members


• DVD – store all information regarding DVD/videos
• Rental – store information regarding current DVD/Video rentals
• HistoryRental – store information regarding past rentals (will not be used until the second
prototype i.e. chapter 5)
• Login – store a username and password for users that are allowed access to the system (will
not be used until the second prototype i.e. chapter 5)

The Rental (and HistoryRental) table make use of two foreign keys; CustomerID and DVDID. Each
time a rental takes place, there will need to be a customer that will be taking out the rental who will be
referenced to his/her details via the Customer table. This means the CustomerID foreign key needs to
be placed in the Rental table. For each rental, there must also be a DVD that the customer is renting
out which is referenced to the DVD table via the DVDID foreign key. Foreign keys have therefore
been used to link the three tables together and enforce referential integrity.

Each attribute of the tables within the database schema need to have a data type assigned to it. The
CustomerID has specifically been set of type VARCHAR. This is because the owner currently has
membership cards with a six digit code, which are not in sequential order, thereby making it
ineffective to use AutoNumber as the data type.

4.2.3 Entity – Relationship Diagram


An Entity Relationship (ER) diagram helps to simplify the design of the database by
illustrating it as entities, attributes and relationships. An entity is defined as “any object about which
someone chooses to collect data on” [20]. An attribute is “a characteristic of an entity” [20] and a
relationship represents the associations between entities. There are three different types of
relationships that can be modelled; One-to-One (1:1), One-to-Many (1:M) and Many-to-Many (N:M).
The ER diagram for the intended database has been modelled on the following page.

23
Mount Video Library Information System

1 1
made
Customer makes

1
M M
Adds
Past Rental Rating to Rental

M M
M
Login
involved DVD involves
1 1

As can be seen above, there are five different entities, each of which are associated with another via a
relationship apart from Login. The Customer table is related to the Rental table as a 1:M relationship
because a single customer can make multiple rentals. The DVD table is related to the Rental table as a
1:M relationship because one DVD can be rented out multiple times. The same applies to the 1:M
relationships made between the Customer/DVD tables and the Past Rental table. The Customer table is
linked to the DVD table via a 1:M relationship as a customer can rate as many DVD’s as he wants to.

4.3 Human Computer Interaction


The proposed system needs to be efficiently designed to hide the complex system architecture,
and replace it with understandable information that is relevant to the user. From the owner’s point of
view, the interface represents the system and as he has a very basic level of computer literacy, the
human–computer interaction becomes an essential part of the design phase. The overall goal of the
interface is to “Reduce visual work, intellectual work, memory work, motor work and eliminate the
burden imposed by technology”, as stated by Dix et al [23]. This can then be used in conjunction with
the HCI issues highlighted by Shneiderman and Nielsen to specify the most significant areas of the
design that need to be followed (as mentioned in section 2.4 and 2.5). These are:-
• Data Entry
• Navigation
• Consistency
• Usability

24
Mount Video Library Information System

4.3.1 Data Entry


This is an important aspect of the intended information system as the system will
sometimes require a relatively large amount of information to be input; hence the user interface needs
to be setup to make the process as simple as possible. The best way of doing this is to allow the owner
to only select a choice from a number of different options for certain data elements. For example, the
use of radio buttons to allow the owner to select the £2 or the £3 rental price option. The complexity of
the system will be reduced and it will be much quicker for the user to select an option rather than
manually type 2 or 3. The main benefit will be that “redundant data entry will be avoided”
Shneiderman [24], and therefore the likelihood of committing an error will be significantly reduced.
The simplification of data entry is very important, especially when the user performs a Rental
transaction which needs to be done as quickly and efficiently as possible to avoid any customer
impatience.

Dix et al [23] recommend that the interface is designed so that it “relies on recognition rather than
recall”. By having easier methods of data entry, such as combo boxes, tick boxes, and default values,
the owner doesn’t have to rely as much on recollecting what specific information needs to go in there,
and can instead be more confident that the data entered (i.e. selected) is correct.

4.3.2 Navigation
Shneiderman [24] states that an effective navigation system “allows users to perform
tasks in the same sequence and manner across similar conditions”, so for example, the process for
adding a new customer would be similar to when adding a new DVD (i.e. fill in relevant information
and click on the ‘Add’ button).

Research has found that difficulties with the navigation can result in users becoming “frustrated with
it’s use” Shneiderman [24], which can then lead to a limited use of the application. The intended
Video Library Management application is a type of information system that will function optimally
when it is used for all transactions; therefore it is imperative that it is easy for the user to navigate
around the system.

In order to meet this design rule, the system will be designed so that after login, the user will arrive at
the main menu, which will contain all the buttons that will represent the different functionality that
will be available to the user at that point. Shneiderman [24] recommends that “complex sequences
should be avoided”, so therefore it would be best to structure the navigation system hierarchically.

25
Mount Video Library Information System

This would mean that there would only be one way of navigating to certain functionality, thereby
removing the option of the owner making an incorrect navigational choice. The use of a “Return to
Main Menu” button at each screen would help the owner return to the main menu if he accidentally
proceeds into an incorrect screen.

4.3.3 Consistency
Shneiderman [24] advises that an effective GUI will “Strive for Consistency”. This is
gained through using a consistent sequence of actions in similar situations as well as identical
terminology used in prompts, menus etc. This then helps users to learn the application and apply what
they know across different parts of that application. An example of this would be that fields that are
highlighted compulsory when adding a new customer are highlighted in the exact same way when
adding a new DVD.

There also needs to be a consistency within the layout of similar functionality. The layout of the
system will be designed around a form-fill interface [16]. This layout represents an onscreen form
which is set up to show what information needs to be put into the system and where. The reason for
this choice is that the interface needs to be easy to learn and quick to use as an interview with the
owner revealed that he does not consider himself to be technically advanced. Kendall & Kendall [16]
support this type of layout as they feel it is “ideal for inexperienced users” as “no special skills are
required”.

4.3.4 Usability
Nielsen’s usability dimensions (as mentioned in section 2.4) can help identify aspects of the
system that can enhance usability, thus increase the probability of the application being employed
fully rather than partially. The system needs to be designed so that it is easy to use, has a high
productivity and produces relatively few errors.

Usability can be achieved by making the complexity of the system seem as simple as possible to the
user. This can partly be done by validation as it will reduce the possibility of an error popping up,
especially when data is being entered manually. There needs to be validation checks such as character
lengths and the data entry within compulsory fields. An example would be the ‘Membership Number’
which must have data entered into it or else when the owner attempts to add a new customer, he will
receive an error message. The error message must therefore be informative, so it helps the owner
pinpoint the source of the error and correct it.

26
Mount Video Library Information System

4.4 Application Design


The application was designed using the relational tables mentioned in section 4.2 and in
accordance to the interface principles highlighted in section 4.3. The aim of the first prototype is to
implement an application that satisfies the minimum requirements. These are:-
• Manage customer information (add, view and edit customers)
• Manage video/DVD stock control (add, view, and edit video/DVDs)
• Store and process details of a member renting and returning a video (or DVD)
• Calculate Movie Rating based on customer reviews

There will also need to be an initial ‘Main Menu’ page which will allow a user to navigate to the
specific functionality he would like to use by clicking on a button. The system is required to be as
simple as possible as the owner lacks computer skills; hence any difficulties can contribute to a limited
use of the application. There is also a need for validation to prevent user errors. Appendix E includes a
brief description and a diagram of the functionality that will be available to satisfy the requirements as
above. Please note Appendix E includes the design for prototypes 1 and 2.

4.5 Implementation of the Application


The application was implemented according to the tools and technologies as previously
described. The implementation relies heavily on the use of java for user interaction and a MySQL
database as a data store. The minimum requirements were implemented according to the design, and
validation was included where necessary. Screenshots of the system have been provided in Appendix
F (Please note that these are annotated screenshots of the full working system i.e. prototypes 1 & 2).
The following chapter details the implementation of each minimum requirement.

4.5.1 Manage Customer Information.


The system was implemented so that the owner can add new members, edit their
details or delete them. When adding a new member, the user simply inputs the member’s personal
details (compulsory fields have been highlighted with a *) and clicks on ‘Add Customer’. If the action
is completed successfully, the user is informed of this via a confirmation message, otherwise he may
try to add the member again. The following code does this:-

JOptionPane.showMessageDialog(null,"Customer has been added");

27
Mount Video Library Information System

The form has been validated to prevent errors occurring by ensuring:-


1. All the compulsory fields have been filled in
2. All data abides by integrity constraints e.g. the home phone number is 11 integers long
boolean isInt(String s) {
try { //Tries to convert String to an Int
Integer.parseInt(s);
return false;
}catch(NumberFormatException e){ //return false is impossible
return true; } }

if(isInt(membershipnumber) == true){
//displays an error and returns false if not an int
errorString += " The Membership Number has not been entered as
numbers.\n"; }

3. All empty white space is removed e.g. between WF12 0SF in a postcode. The following code
does this:-
private String removeSpaces(String what) {
StringTokenizer tok = new StringTokenizer(what, " ");
String tmp = "";
while (tok.hasMoreTokens()) {
tmp = tmp + tok.nextToken(); }
return tmp; }

4. The membership ID does not already exist in the database. This is done by querying the
database first for that ID and only adding the member if no results is returned.

For editing or deleting members, the user enters the membership number and clicks on ‘Search’. This
updates all the fields with details of that member, or else provides a “Membership Number
<Membership ID> does not exist” error message. The member details can be updated by altering the
field and clicking on ‘Update Details’ or the member can be deleted by clicking on ‘Delete Member’.
This will bring up the following confirmation to prevent any accidental deletions of members.

28
Mount Video Library Information System

4.5.2 Manage Video/DVD Information


This functionality was next to be implemented. It is very similar to the Customer class
in that it also allows the user to add a new DVD (or video), edit details or delete a current DVD. It is
again similar in validating data input, but additionally makes use of combo boxes and radio buttons, as
the example shows below:-

This makes it easier and quicker to input data. Also, errors are prevented as the user is restricted to
selecting only valid options (e.g. U, PG, 12A, 15 or 18).

4.5.3 Rental and Return of a DVD/Video (Includes Stock taking)


Both functionalities had to be aligned with the business processes. The Rental
functionality was implemented to facilitate the rental of a DVD by a customer. The Member ID and
DVD ID must be input into the relevant fields. The user must then click on the ‘Verify’ button, which
will automatically update the ‘Amount Due’ field so the user can inform the customer whether the
rental price is £2 or £3. The owner previously mentioned in an interview that members sometimes
forget their money or insist on paying for the DVD on returning it. This has been incorporated into the
system by the owner having to select an option from the radio buttons to confirm whether the rental
amount has been paid or not, as can be seen below:-

Need manual
data entry
Automatically
updated fields

29
Mount Video Library Information System

The Return functionality works by entering the DVD ID which updates a table of people who have
rented out that specific DVD. The corresponding row from the table which includes the customer
name can then be highlighted to be marked as returned. The user can then optionally add the
customer’s opinion of the movie as a rating out of 10 and click on ‘Return DVD’. This will then make
three checks;
1. Was the rental price originally paid? If no, then a message will pop up informing the owner
that the rental amount of £2/3 is owed.
2. Has the DVD been returned after its due date? If yes, it will calculate the number of days it
was overdue, then whether the rental price is £2 or £3 and multiply the two figures together
and inform the owner of the amount owed due to number of days overdue. For example, 3
days overdue on a £3 rental per day DVD would result in a £9 fee expected.
3. Do both of the conditions as above apply? i.e. rental amount not paid and the DVD was
handed in late. If yes, then the amount expected is informed via a pop up message.

An example of a return is as show below:-

The implementation does also stock take when renting (i.e. deduct 1 from current stock) or returning a
movie (i.e. add 1 to current stock).

4.5.4 Calculate Movie Rating


This functionality was implemented so that the owner could find out the average
customer rating for any DVD. This can be done by:-
1. Entering the DVD ID – by doing this and clicking on ‘Verify’, the name of the DVD will
appear in a text field. This acts as a validation technique to ensure the DVD ID is entered
correctly and corresponds to the name. This can only be used when the owner knows the
DVD ID.

30
Mount Video Library Information System

2. Selecting the DVD Name from a combo box list – this is made easier as the list has been
sorted alphabetically. This can especially be used, for example, if the owner is asked by a
member for a rating based on a movie, for which he does not have the DVD in front of
him and therefore does not know the DVD number.

Both functionalities result in a pop up box (as shown below) giving the average rating for a DVD and
how many people have rated it. If there are no ratings, a message comes up to confirm this.

4.6 Application Testing


The application can be tested in a variety of ways but it was most appropriate to utilise the Unit
Testing method followed by User Acceptance. This chapter discusses the testing carried out and the
issues identified during this stage.

4.6.1 Unit Testing


Unit Testing involves each component of the system being tested separately to ensure
that it works. An example would be to test the validation/data input etc when “Adding a new
customer”. It is important to note that the majority of errors found in the system were discovered and
fixed in the implementation stage. This was because the java code was fresh in the developers mind,
thereby producing a corrective action easier and quicker. Results of these tests have been included in
Appendix G (Please note that Appendix G includes test results from the full working system, i.e.
prototypes 1 & 2).

4.6.2 User Acceptance Testing


This involves the system being tested by the user, using ‘real world’ data and
situations. This method of testing is essential as it will help in satisfying the user requirements. The
results from User testing have been incorporated in the following section.

31
Mount Video Library Information System

4.6.3 Evaluation of Test Results


After collating the results from both tests, it was decided that the following features
would need to be added into the second iteration:-
• Print Member Details - Currently the user has a membership form which needs to be filled out
every time there is a new member. This form basically contains details such as name, address and
signature. The user would like the system to produce a print out of this.
• Add Manual Customer Review Rating – Currently the only way to add a rating within the system
is when a DVD is returned. The owner has requested that there be an option for him to add a
manual rating, especially as he likes to watch a lot of movies himself. This would mean that he
could rate a movie, rather than going through the whole process of rental/return.
• Member Lock – The user has requested that the system allows him to put a lock on a member. He
mentioned that sometimes a member does not return a movie, and when he tries to contact them,
they don’t return his phone calls. The user would therefore prefer functionality to be set so that a
customer can be locked. IF he then tries to make a DVD rental, the user would be notified of this
(whether the user is the owner or an employee).

The system could be further improved by making the following enhancements:-


• Check Age of Renter – The user feels that it would be helpful to him if the system was able to
notify him if a renter wants to rent a DVD but is too young to do so.
• Name of Renter Added – This is applied during the Rental stage. The user would prefer to have an
option where the contact (e.g. wife of member) is able to rent out a DVD, which is recorded within
the system. The age of the contact must also be checked.
• Rental Validation – Both user and unit testing indicate the need for some type of validation of the
customer ID and the DVD ID. This will help prevent human errors. For example, a DVD ID could
accidentally be input as ‘12344’ instead of ‘12345’, and without confirmation of the DVD name,
there would be a record saying the member rented out that movie when they haven’t. This could
then later cause problems, leading to customer dissatisfaction.
• “Main Menu” button – This needs to be placed in the corner so that the user can’t accidentally
click on it. The current prototype has located it with the other buttons, so the user could
accidentally click on “Main Menu” instead of “Add customer”.
• Compulsory fields – There should be a small note saying that * represents compulsory fields.
• General problems – Results from the Unit testing showed that validation of some fields was not
working. These problems have been discussed further in Appendix G.

32
Mount Video Library Information System

CHAPTER 5 : DESIGN AND IMPLEMENTATION

OF PROTOTYPE 2
5.1 Introduction
During the second stage of the evolutionary prototyping methodology, the system was
enhanced to include the extended requirements and incorporate the additional features requested by the
user. This chapter will first describe how the implementation of the database and application was
modified to integrate the requested additional functionality. This will then be followed by the design,
implementation and testing of the extended requirements. Annotated screenshots of the full system as
well as snippets of code can be found in Appendix F.

5.2 Changes Made to the Database


The changes were required to compensate for the extra functionality requested by the user.
The following fields were added:-
• ContactDOB (Customer table) – to check the age of the renter
• Locked (Customer) – to lock a customer so they cannot make any future rentals
• RenterName (Rental) – to record whether it is the member or contact making the rental

The updated part of the database schema (highlighted in red) is as show below:-
Customer (CustomerID, Firstname, Surname, Address, Town, Postcode, HomePhone,
Mobilephone, DOB, Contactfullname, ContactDOB, Locked)
Rental (RentalID, CustomerID, DVDID, RenterName, DateRented, DateDue, Paid)

5.3 Changes Made to the Application

5.3.1 Validate DVD/Video Rental Details


This improvement was made by including the following checks for a DVD rental:-
• Check Renter Age – The system now has the ability to calculate the member’s age, as shown:

SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");


Rentordateofbirth = df.parse(RentorDOB); //parse renters DOB into correct format
TodayDate = df.parse(Today); //parse todays date into correct format
cal1 = new GregorianCalendar(); cal2 = new GregorianCalendar();
cal1.setTime(Rentordateofbirth); cal2.setTime(TodayDate);
daycounter = 0;
while(cal1.getTime().before(cal2.getTime())) {
cal1.add(Calendar.DAY_OF_YEAR, 1);
daycounter ++; } //Calculate age in number of days
customerage = (daycounter/365); //Calculate age in years

33
Mount Video Library Information System

The age is then verified against the certificate. A prompt is presented if the user is too young:-

• Name of Renter – By entering the Customer ID and clicking on “Verify”, the user can now choose
the name of the renter (i.e. member/contact) from a drop down box. As shown below, this will
help validate the Customer ID input.

• DVD ID – By entering the DVD ID and clicking on “Verify”, the title of the DVD will be
presented on the screen. The user can then match the title to the DVD cover to confirm the correct
input, thereby making this a form of validation.

5.3.2 Print Customer Details


The Customer class was customised so that the user can print out the member details
either when a new member is added, or by searching for the member and then clicking on the
“View/Print Details” button. Both actions will result in a Customer.html file being written on to the
desktop, which can then be viewed and printed. This means that the user will no longer need to
manually fill in the membership form, but instead he can print out the details which can then be signed
by the member.

5.3.3 Manual Customer Review Rating


After navigating through to the Rating section from the Main Menu, the user can
search for a DVD by either entering the DVD ID or by selecting the movie name from a combo box
list (as detailed in section 4.5.4). The rating is then added for that selected movie by choosing a score
from 1 to 10 from the combo box, and then clicking on “Add User Rating”.

5.3.4 Member Lock


This functionality has been incorporated within the Member screen. The owner is
able to lock a member by checking the tick box. This has also been integrated within the rental screen
by informing the user if the locked member tries to rent out a DVD on that account.

34
Mount Video Library Information System

5.3.5 Other improvements


The GUI of the application has been further improved by placing the “Main Menu”
button in the bottom right corner, outside of the tabbed screen. This makes it clearer and decreases the
likelihood of the user accidentally clicking on it. Other general errors recognised during the unit
testing have also been resolved such as validation of compulsory fields.

5.4 Design of Extended Requirements


These were designed taking in to account the design factors as mentioned in section 4.3. The
following extended requirements were designed and completed during this prototype:-
• User Login
• View overdue Rentals
• Import current Member/DVD details
• Customise search for a movie
• Search by Actor
• Calculate Sales Figures
• Administration
Please refer to Appendix E which includes a description and a diagram for the functionalities.

5.5 Implementation of Extended Requirements


Full annotated screenshots of these functionalities can be seen in Appendix F. The following
section will describe how the extended functionality was implemented, with supporting snippets of
code and screenshots.

5.5.1 User Login


This is the initial screen when starting up the application and will only allow access
into the system if the correct username and password has been supplied. It therefore acts as a measure
of security. A security feature of the login includes an * representing each character of the password.
This has been coded using: - Password = new JPasswordField();
The login has also been implemented to prevent SQL injection. A potential hacker would get an error
message if they tried to enter “xyz’ or 2>1 - - “ as a password.

5.5.2 View Overdue Rentals


This can be viewed by clicking on the “Rent/Return/Overdue DVD” button. The
system will internally search for all overdue movies from the database. An investigation into a JTable-

35
Mount Video Library Information System

SQL results showed that it is best to then create a table and retrieve the data from the SQL results and
input it into the table. The overdue rentals are then displayed in a table using the code below:-
model = (DefaultTableModel) table.getModel();
model.setColumnIdentifiers(tableColumnsName);
java.sql.ResultSetMetaData rsmd = results.getMetaData();
int colNo = rsmd.getColumnCount();
while(results.next()){
Object[] objects = new Object[colNo];
for(int i=0;i<colNo;i++){
objects[i]=results.getObject(i+1); }
model.addRow(objects); }
table.setModel(model);

5.5.3 Import Current Member/DVD Details


This will allow the user to import the Member and DVD details he currently has stored in
his current system (i.e. MS Excel workbook) into the intended application. An example of a row from
the current system is as shown below (not real data):-

As stated in section 2.5.4, the implementation would make use of POI and HSSF. This functionality
therefore required extensive research on HSSF. The code was then implemented so that it reads each
cell from each row within the worksheet and this information is then stored in an Array List. The code
below shows this implementation:-
POIFSFileSystem fs1 = new POIFSFileSystem(new FileInputStream(WorkBook));
HSSFWorkbook wb1 = new HSSFWorkbook(fs1); //Gets the workbook
HSSFSheet sheet1 = wb1.getSheet("Customer"); //Gets the Worksheet
Iterator rows1 = sheet1.rowIterator();
while( rows1.hasNext() ) {
HSSFRow row1 = (HSSFRow) rows1.next(); //Gets the Row number
Iterator cells1 = row1.cellIterator();
list2 = new ArrayList();
while( cells1.hasNext() ) {
HSSFCell cell1 = (HSSFCell) cells1.next(); //Gets the Cell number
cell1.getCellType();
if (counter2 > 0) { //An int represents 0, a String represents a 1
if (cell1.getCellType() == 1) {
HSSFRichTextString CellString1 = cell1.getRichStringCellValue();
cellstr1 = CellString1.toString();
list2.add(cellstr1);}
else if (cell1.getCellType() == 0) {
int cellInt1 = (int) cell1.getNumericCellValue();
newCellString1 = Integer.toString(cellInt1);
list2.add(newCellString1); } } }

36
Mount Video Library Information System

The data is then retrieved from the Array List and input into the corresponding fields within the
database table. The completion of the transaction is marked via a confirmation message. Validation is
included to check the membership ID does not already exist.

5.5.4 Customise Search / Search by Actor


Both functionalities are designed to help a member in deciding what DVD to rent according
to specific criteria. The “Search by Actor” functionality works by the user selecting an Actor / Actress
from a combo box, whilst the “Customise Search” functionality works similarly but it additionally
provides more criteria as can be seen below:-

Both result in a JList being updated according to the results of the criteria.
As the Actor/Actress combo box is based on the Actor1, Actor2, and Actor3 fields within the DVD
table, the system must retrieve data from all of them. The following query does this:-
“SELECT DISTINCT Actor1 FROM DVD UNION SELECT DISTINCT Actor2 FROM DVD UNION
SELECT DISTINCT Actor3 FROM DVD ORDER BY Actor1”

5.5.5 Calculate Sales Figures


This business functionality will help the user calculate the total revenue generated within a
certain time period as well as the areas from where most of this revenue has come from. By entering
two dates or selecting pre defined dates (such as past month), the user can view the revenue figures as
the following screenshot:-
Shows Total
Revenue. Could
be used for
accounts Could show the user
that it may be best to
increase his stock for
this movie

Shows what genre of


movies is most popular
within his members.
He can target those
genres more for future Shows whether most of the
purchases revenue is coming from English
or Indian movies. The user can
then purchase more DVD’s in
the more popular origin.

37
Mount Video Library Information System

The implementation for this functionality primarily relies on the effective manipulation of SQL
queries to perform all the calculations, especially in regards to dates and revenue generated, which
required extensive research. The following SQL code is an example, it calculates the most popular
movies that have been rented out in the past week:-
"SELECT DVD.Name, DVD.TotalStock, Count(HistoryRental.DVDID), Sum(HistoryRental.AmountPaid)
FROM HistoryRental INNER JOIN DVD ON HistoryRental.DVDID = DVD.DVDID WHERE DateReturned <
CURDATE() AND DateReturned > (DATE_SUB(CURDATE(), INTERVAL 1 WEEK)) GROUP BY
DVD.Name"

5.5.6 Administration
This functionality takes into account some of the changes that could potentially occur in the
future. It includes the opportunity for a new user to be added as well as the rental price to be altered.
The user can also change his password by entering it twice (both of which are encrypted with *). This
ensures both passwords are identical before updating the database.

The system has been set so that there are two different rental prices; one is low whilst the other is high.
A rental price change from £2 to £3 (which could come about as the company gets bigger) will
automatically update all the corresponding DVD/Videos, which will mean that the user will not need
to manually complete this. The following query retrieves the prices:-
SELECT DISTINCT Price FROM DVD GROUP BY Price
This has been incorporated into the Customer class so that the new rental price is given for the radio

buttons i.e.

5.6 Application Testing


The issues identified for improvement during the Unit Testing and User Acceptance testing is
as follows:-
• Lock functionality – Currently a member can be locked only via the “Customer” screen. The user
would prefer it if this functionality is implemented at the “Overdue” screen as well. This means he
could just select the renter from the table and lock him, rather than trying to remember his ID and
going to the “Customer” screen.
• Import DVD/Member Details– Currently the user needs to place the MS Excel workbook in the
correct place and type in the correct filename for it to work successfully. It has been decided that it
would be best if the user could search for the workbook via a directory window.
• Date format – The user would prefer to have an English formatting of the date i.e. For March 23rd
2007; he would prefer to enter 23-03-2007 rather than 2007-03-23.

38
Mount Video Library Information System

• Search Actor – the user would sometimes prefer if he could manually enter the name of an actor
when searching for it rather than having to look through a large list within a combo box.
• Tool tips – Sometimes it is not very clear what the functionality of a button actually is.

5.7 Implementation of Improvements


The following section will describe how the improvement functionalities were implemented.

5.7.1 Lock Functionality


This was implemented within the “Overdue” screen. It allows a user to select a row
from the table which signifies an overdue rental and then click on “Lock Account”. This then locks the
member’s account and removes the overdue rental for future purposes as shown:-

5.7.2 Import Details Functionality


This was implemented to make it easier for the user to locate the workbook which
contains the DVD and Customer Information, as can be seen.

5.7.3 Search Actor


The combo box was set as editable using the following code:-
ActorName.setEditable(true);

5.7.4 Tool Tips


These were added using the following code with JButtons:-
addcustomerButton.setToolTipText ("Click here if you
would like to add a new customer");

39
Mount Video Library Information System

CHAPTER 6 : EVALUATION
6.1 Introduction
This chapter evaluates the system to determine if it has been a success or not. It first discusses
the success of the application in comparison to the requirements specified by the user. It then
considers the usability aspect of the system and finally performs an assessment against alternative
solutions.

6.2 Evaluation Criteria


These are used to measure how successful the system actually is. Dix et al [23] state that the
“Evaluation has three main goals: to assess the extent and accessibility of the system’s functionality to
assess users’ experience of the interaction and to identify any specific problems with the system”.
Bearing this in mind, the evaluation focuses on the following five criteria:-
• Methodology – this covers how effective this was in managing the different stages of the
project
• Technology – this covers how practical Java and MySQL were in developing the system
• User Requirements – this involves the evaluation of the functionality in comparison to what
the user required.
• Usability – this assesses the “user’s experience of the interaction and its impact upon him”
[23].
• Alternative Solutions – this evaluates how successful the system is against other products out
there at the moment.

6.3 Effectiveness of Methodology

The methodology followed during the project was evolutionary prototyping. This was an
alteration from the original methodology selected as that was the Waterfall Model with iterative
feedback. It was originally felt that the Waterfall Model would sufficiently allow the full project to be
completed with any user requested alterations to be made after the user testing stage. As the project
proceeded into the end of the analysis stage, it was decided that it would be best to utilise the
prototyping methodology. This was because the owner indicated that he would be available for
interviews more frequently and the developer realised that it was best to involve the owner as much as
possible, rather than near the end. This meant that it would be easier to adjust the system to include

40
Mount Video Library Information System

any requirements that were additionally requested by the user midway through the implementation
rather than after completing it.
The alteration in methodology was proved to be justified as there were numerous changes made to the
system and they were completed because of the flexibility provided. There were still some issues
regarding the use of this methodology as there was a waiting period for the evaluation of the prototype
by the user. Another issue was the addition of new user requirements which resulted in changes having
to be made to the system and the database.

6.4 Effectiveness of Technology


There were two different technologies used to implement the system; Java for the user
interface and MySQL for data storage purposes. After completing the system, it is still felt that the
choice of technologies was correct. The developer had previous experience in Java which meant that
he could immediately start implementing the system after the design stage as opposed to C# or VB
which would need to be learnt before development. This was beneficial as more time was spent on the
development of the system. One of the good features of Java was its ability to incorporate
functionality to interact with MS Excel (i.e. POI/HSSF). MySQL was also a very good technology as
the developer was experienced in SQL, it was efficient for data retrieval/manipulation purposes and it
bore no cost to the owner.

6.5 User Requirements


These are the functionalities that the user wants to be included within the system. They were
agreed early on (section 3.6) and needed to be incorporated within the application for the system to be
fully considered as a success. The nature of the methodology used mean that preliminary evaluation of
the prototype had been taken twice already (as detailed in sections 4.6 and 5.6). The final evaluation of
the functionality was undertaken by two users; an employee and the owner. Both participants provide
a representative sample as they are the only people who are able to make a comparison of the
prototype to the requirements. Both received extensive training to ensure they could thoroughly
evaluate the functionality.
The evaluation stage involved the prototype being installed with the underlying database on the
owner’s machine at Mount Video Centre. The current member and DVD details were input into the
database via the Import functionality. This entailed a MS Excel Workbook that had been updated with
all the relevant member/DVD details by the owner, in accordance to the developer’s request (as stated
in section 3.6.3). The system imported all of these details into the database, which meant that the user
could run the prototype within a ‘real world’ situation, rather than using test data. He was asked to run

41
Mount Video Library Information System

this in parallel to his current system for 10 days and produce a diary of the problems he faced. The
evaluation forms (Appendix H) were used to gather user opinions and document the dairy comments.
The users were asked to give a score of 1-5, with 1 representing very good and 5 representing poor.
The following is a summary of their responses for the user requirements.

The ability to Manage Customer Information:


This was generally a success as the user felt it was easy to add, edit or delete member details. The user
was impressed with the use of an html file to display the details of a member, as this allowed him to
open up the file and show the screen to the member just to confirm that the details were correct. The
only concern he had was with a lack of professionalism in the print out. He felt that it was very plain
with a lack of any distinct features. The developer felt that there was no real need for there to be a
number of different features to be included in this, but instead a simple print out could be signed and
stored away. There was no appropriate clarification on this as this became a user requirement after the
first prototype had been completed, and the user made no additional remarks after the second iteration.

The ability to Manage DVD/Video Information:


This was also deemed as a success as none of the users had any problems in adding, editing or deleting
DVD/Video information. One of the users commented that they were more than happy with the
confirmation message when trying to delete a member. This prevented any accidental mistakes which
would result in the lengthy process of searching for a hard copy of the member details.

The ability to Rent out a DVD/Video


This user requirement was fully achieved as both users gave it a score of 1 in regards to how good the
functionality is. Both also commented on how happy they were with the age of the renter being
checked every time someone tried to rent out a movie.

The ability to Return a DVD/Video


This user requirement was deemed as a success as both users rated it highly when scoring it between 1
and 5. The owner was extremely happy with the way this was setup as it took the following three
factors into account:-
1. Whether the rental had been paid for already or not
2. Whether the rental was being returned late
3. Whether both of the above conditions applied

42
Mount Video Library Information System

The owner felt this would be very beneficial as it would prevent him losing any money during rental
transactions. The employee was also satisfied with this functionality but felt the process of the member
having to wait around as the user enters the DVD ID and selects a row from the table is unnecessary.
He would have preferred it if the member could simply drop off the DVD and leave. In response to
this concern, it is not possible for the system to handle this unless the business process is altered and
each single DVD (instead of movie) can be uniquely identified. The employee further commented that
the process for a member returning multiple DVD’s was repetitive. This was not implemented as the
developer was not aware of the problem. Unfortunately the user was also unaware as the User
Acceptance Testing performed after both iterations did not involve the use of the system in a ‘real
world’ situation but instead with test data. With this in mind, the developer will be incorporating this
feature into the system after the completion of the project. This will allow the user to search via the
Customer ID rather than just DVD ID.

The ability to View/Add a Customer Rating


This user requirement was deemed as a success up to a certain extent. The employee was satisfied
especially as it provided information on the number of member reviews rather than just the average
rating.
The owner was not as content as he noticed that the “Search by Movie Name” bought up a full list of
movies, which had a repetition (i.e. The Italian Job was present twice). This was due to two reasons.
The first reason is that there are two different ID’s of the same movie; one is a DVD, the other is a
Video. The second reason was that some movies are a remake (e.g. the 2003 was a remake of the 1969
version with the same movie name). This was not taken into account as the repetition does not occur
frequently. The system will therefore be modified so that each DVD has a date associated with it and
movies with the same date would have their ratings combined. The other difficulty the owner realised
was with the “Add Rating” functionality. This could have been improved by having an option to rate
in halves (i.e. 1.5, 2.5, 3.5…..etc).

The ability to View Overdue Rentals


This user requirement was deemed fully as a success as both users were satisfied with it. The owner
was impressed with the contact details displayed which allowed him to contact members if the rental
was overdue by a few days.

43
Mount Video Library Information System

The ability to Lock a Member Account


This user requirement was completed successfully but the owner feels it was only half completed. The
system is able to lock a member, but the difficulty arises in unlocking him because the user is unable
to identify the exact reason why he was locked in the first place. This functionality was not
implemented due to a lack of clarification which came about because it was added after the first
prototype had been completed. This could be added by simply having an extra field that allows a note
to be added to a member’s account, which can detail the locking reason.

User Login
This user requirement was deemed as a success up to a certain extent. The main functionality of it has
been completed in respect to the need for a valid username and password to gain entry into the
application, which provides a security feature. The user feels that it would have been better if there
were user levels which meant that the owner would be able to gain access to certain functionality
which the employee would not be able to. This was not implemented due to it being lower priority as
there is only one employee working there at the moment. The developer intends to add this
functionality after the project has been completed.

The ability to Import current DVD/Member Information


This user requirement was deemed as a success as both users were extremely satisfied with it. The
employee praised how easy it is to find the file using a Windows style directory rather than having to
place the file in the appropriate folder and then type in the name of the workbook.

The ability to Customise a Search or Search by Actor


This functionality was completed and considered to be fully satisfactory. The owner was
complimentary of the clear list of movies that are displayed in accordance to the criteria. He also felt
there was room for improvement; where he could simply click on one of the movies and it would go
straight to the Rental screen, with the relevant fields automatically being filled in.

The ability to Calculate Sales Figures


This functionality was completed and considered to be fully satisfactory. As the owner was the main
person who uses this functionality, he was the only one that could fully comment on it. He was happy
with the option of either entering his own two dates or using the pre-defined ones. He felt all the
figures would be useful to him apart from the “Total Stock” field. He thought this was not sufficient
by itself as it didn’t tell him whether there is a need for an increase in stock. It would have been better

44
Mount Video Library Information System

served if there was also a figure informing the owner as to the number of times an individual has tried
and failed to rent the specific movie because it was out of stock.

The ability to Change User Details


This functionality was fully completed and accepted but considered to be only partially satisfactory as
the user scored it 3 out of 5. The owner noticed that it is possible for the employee to change the
password of the owner if he is aware of his username. There is also no formal method of retrieving a
forgotten password and again there are no specific user levels which would allow only the owner to
add new users to the system. This would be added by the resetting of the password which could only
be done by the administrator and there would be validation to ensure a user can only change his own
password.

The ability to Change Rental Price


This functionality was completed and considered to be fully satisfactory. As the owner was the main
person who uses this functionality, he was the only one that could fully comment on it. The user
scored this functionality as a 1 as he was impressed with the rental price automatically updating all the
DVD’s and Videos with the relevant prices.

6.6 HCI and Usability


It is imperative that the prototype given to the user is seen to be usable. Lindgaard [8] states
that a “major indicator of usability is whether a system is being used”. If the users find difficulties,
they will avoid using those parts of the system which will significantly decrease the effectiveness of
the system as all of the functionalities are dependent on one another. Background research (Section
2.4) showed that the usability of the system could sufficiently be measured using Nielsen’s Usability
Principles [9] and three additional HCI features. To get a more thorough evaluation, it was decided
that three users would be asked to use the system and fill out a corresponding evaluation form
(Appendix H), as well as briefly be interviewed. The first user was again the owner of Mount Video
Centre, the second was the employee working there at the moment and the third (D.A. Bam)
represented someone that is outside of the company and therefore unconnected to the project. The
owner and employee commented on the usability according to the 10 days they had the prototype,
whilst the third user, was given the majority of a day to get used to the system. The prototype
evaluated by all three users is summarised as follows:-

45
Mount Video Library Information System

Learnability
This was deemed as very successful as all the users felt that the system can be learnt within a day or
two with the appropriate training. The users commented that the simple procedures implemented and
the assistance provided for the input of data was essential in ensuring that it was not difficult to learn.
The employee and owner of the company were especially complimentary of how easy it is to rent out a
DVD to a customer, as all it requires is the Customer ID and the DVD ID. They also liked the system
being aligned with the business. The only concern was the confusion when learning how to “Add a
Rating” of a movie manually. This was because there were two options of selecting a movie (i.e. via a
combo box or by entering the DVD ID) and it became a bit confusing as only one was allowed to be
used when adding a rating.

Efficiency
This was also deemed to be successful as the users were able to perform their tasks more efficiently
that what the current system allows.
The most common processes within the company are the rental and return of a DVD or Video.
Therefore the time taken to perform these tasks will need to be measured and compared to the current
system. Also, as the business is customer-oriented, it has also been considered appropriate to measure
the time taken to view the average rating for a movie and to obtain a list of movies according to
specific criteria. The results of these are as shown below:-

Time Taken (Secs)


Task User 1 (Owner) User 2 (Employee) User 3 (External)
Rental of a movie (Current System) 70 45 N/A
Rental of a movie (Prototype) 50 30 25
Return of a movie (Current System) <30 <30 N/A
Return of a movie (Prototype) 75 50 40
View Average Rating for a movie 45 30 25
View movies based on criteria 70 50 35

It took the users a shorter time (compared to the current system) to rent out a DVD using the
prototype, as only the Customer and DVD ID were needed to be input, whilst the current system needs
manual entry of the renter name, DVD name and whether the rental has been paid or not.
For the return of a DVD, the current system processes it quicker as it only requires the users to find the
relevant row from the Rental worksheet and delete it. The users still feel though that the prototype is

46
Mount Video Library Information System

much more productive as it allows the recording of a customer based rating as well as an automatic
calculation of money owed.
The successfulness of the average rating and a list of criteria based movies being produced were
judged on the customer response of the question “Do you feel it took too long to complete your
requests”. All five people replied “No” to the answer. The major criticism directed for the efficiency
of the system was regarding the Return of multiple DVD’s by a single member. This required the
return process to be repeated for each of the DVD’s that was being returned.

Errors
This was also deemed to be very successful as the users received informative confirmation/error
messages. Confirmation messages such as when a new member was added to the system were
provided to prevent the user in repeating the same action. Error messages such as when a compulsory
field had been missed out were also provided informing the user of the exact field. All three users
commented on how clear the messages were. They also stated that it was difficult to make errors
because of the internal validation of the system. The main criticism was that it was sometimes a bit
difficult to recover from errors. An example given by the owner was for the ‘Member Lock’
functionality. To recover from accidentally locking a member would require the user to return back to
the customer screen, search for that specific member and then manually unlock his account.

User Satisfaction
This questions how pleasant it is to use the prototype. The overall opinion from all three users was that
the system was easy to use. They also consider the prototype to have helped them a great deal in
performing all the day to day tasks as well as other tasks in an efficient and effective manner.

Data Entry
This was an important part of the GUI of the system as the data input needed to be condensed as much
as possible, thereby making the process as simple as possible. The users commented that this was done
successfully especially as there is only a need to manually enter the Customer ID and the DVD ID
when undertaking the rental transaction as the system does the rest. The use of combo boxes, radio
buttons and default values ensured validation as well as increased efficiency. The only concern the
user had was the “Search by Movie Name” for the Customer Rating section. This was because it made
use of a combo box but as there are a large number of movies, there would be a need for significant
scrolling through the list. The user felt this was rectified up to a certain extent with it being in
alphabetical order and the option to “Search by DVD ID”.

47
Mount Video Library Information System

Navigation
This was also deemed to be successful according to the users as they felt they had no problems in
navigating through the main menu and returning back to it from the functionality screens. The main
problem as highlighted by the external user was that there was no connection between different
functionalities. So for example, it was not possible for a user to view the average customer rating for a
movie and then automatically go to the Rental screen with the details for that movie having already
been filled. He would instead need to navigate back to the main menu first.

Consistency
The users felt that this had been successfully completed up to a certain extent. The owner mentioned
that he got confused with the use of Member in some instances and the user of Customer in others.
Otherwise he felt date formats, buttons, labels etc were consistent throughout the system.

6.7 Comparison to Other Products


Two other solutions that also facilitate in the rental of DVD’s were analysed in section 2.2. It only
seems appropriate for there to be a comparison between both alternatives and the implemented system.
The comparison takes into account a number of features including usability, HCI and functionality.
Both were downloaded and installed as a free trial version. Unfortunately, the users were unable to
evaluate the software themselves as they were not available for this task.

6.7.1 SoftStore [1]


One of the main problems with this application was a poor GUI and usability. This
criticism was very important and the prototype was implemented to ensure that it would not share the
same problem. The GUI of SoftStore’s application (as can be seen in Appendix C) displays a lot of
redundant information such as the tax, Credit used and Invoice Total. None of these values would be
of use to the user. The application also includes cluttered information as highlighted in the appendix,
which makes it extremely difficult to use. Another disadvantage of the GUI is its overcomplicated
layout with a lack of separation between sections. All of these make the application very difficult to
learn and would most likely result in the owner not employing it. The prototype developed by the user
overcomes these problems as the user has stated that it is easy to learn, the layout makes it easy to
understand, and all information is relevant. One of the benefits of SoftStore’s application is its
advanced functionality as it allows DVD rentals, calculation of sales figures and rental prices
alteration. This has been incorporated into the prototype.
The only concern was highlighted by the third user (external) who commented that the system is a bit
too simple in terms of its user interface and it could become a bit frustrating for advanced users.

48
Mount Video Library Information System

6.7.2 Video Forecasting [2]


The main problem with this application was the lack of business functionality to help
the owner and a lack of general functionality that would help a customer. The application didn’t
include business functionality such as the calculation of total revenue in the past month, or the 3 most
popular movies rented out between two dates. It also didn’t include any type of specific customer-
oriented functionality such as the use of the average rating functionality which is based on other
customer reviews of a DVD. Both functionalities have been implemented successfully into the
prototype.
One of the main benefits of the system is its excellent GUI which enhances the usability of the system.
The GUI of Video Forecasting’s application includes features such as images instead of names for
functionalities, an appropriate use of colour, and a professional looking interface. It is then further
enhanced by the use of a menu bar which provides more of a Windows application feel to it. It is
apparent that the GUI of Video Forecasting is superior to the prototype implemented, but the usability
of the prototype is deemed to be very successful by the user as the basic concepts to make a good GUI
were performed.

6.8 Possible Further Enhancements


The prototype could be further enhanced by including a number of extra functionalities:
• To be able to reserve a DVD/Video if out of stock
• The Lock Member functionality includes the reason for locking
• Identical movie names are effectively handled
• Interconnected functionality so that by clicking on a movie from the list, the rental screen
would appear with the relevant details having been filled out already
• The password is encrypted in the database to enhance security
• User Levels so the owner can be set as administrator and have full rights whilst the employee
doesn’t have certain rights, such as viewing Sales Figures
• Incorporation of the system with a website for renewals, viewing personal customer accounts
etc
• Appropriate user security to ensure a user can only change his own password and passwords
can be reset if forgotten (possibly the administrator could only do that?)
• Improve the GUI further

49
Mount Video Library Information System

CHAPTER 7 : CONCLUSION

The aim of this project was to produce a video library management information system for Mount
Video Centre. The system needed to include normal technical features such as the facilitation of DVD
Rentals/Returns and business features such as the calculation of sales figures. As the company is
solely customer oriented, it was best to also include additional features such as the calculation of the
average rating for DVD’s. The system produced needed to overcome current problems such as a poor
user interface, lack of a structure and ineffective time consuming processes. The Owner originally
made it clear that he lacks computer skills, so there needed to be extensive functionality within the
system, which was easy to use at the same time. This meant that there needed to be a clear focus on the
HCI and usability aspects of the system.

The evaluation of the solution highlighted that the system had been implemented successfully and
accepted according to the user requirements. The users were extremely satisfied with the usability as it
allowed them to effectively utilise the functional requirements. The owner commented that he was
more than happy in deploying the system on to the machine at Mount Video Centre. He said that he
has full confidence that the system can fulfil its potential and in the process, help increase customer
satisfaction, which should then lead to an increase in revenue and profits.

The evaluation did also bring up some concerns, which mainly concentrated around the duplication of
movies and the lack of user access levels. A comparison against other similar products showed that the
system effectively made use of the different functionality, but it could still not match up to the superior
looking GUI’s that are available at the moment. However, this would be a perfect example of an area
that can be enhanced in the future to make the system even more satisfactory to the user. In
conclusion, only time will tell on how successful the system actually is as it is utilised on a full time
basis at Mount Video Centre.

50
Mount Video Library Information System

REFERENCES

[1] The Video Store 4.1, http://www.softstore.net/video/ [15th November 2006]


[2] Video Forecasting, http://www.vision-forecasting.com/viddown.html [16th November 2006]
[3] Avison, David, Fitzgerald, Guy, (2003), Information Systems Development: Methodologies,
Techniques and Tools, 3rd edition, McGraw Hill
[4] Bocij, Paul, Chaffey, Dave, Greasley, Andrew and Hickie, Simon (2006), Business Information
Systems: Technology, development & management for the e-business, 3rd edition, pp 336, Prentice
Hall
[5] Bennett, Simon, McRobb, Steve, Farmer, Ray, (2002), Object-Oriented systems Analysis and
Design Using UML, 2nd edition, McGraw Hill
[6] Laudon, K., Laudon, J. (2004), Essentials of Management Information Systems – Managing the
Digital Firm, 8th Edition, Prentice Hall
[7] Coad, P. and Yourdon, E. (1991) Object Oriented Analysis, 2nd edition, Prentice Hall,
[8] Lindgaard, G. (1994). Usability testing and system evaluation, ch 1, Chapman & Hall
[9] Nielsen, J. (1993). Usability Engineering, Academic Press
[10] Wigglesworth J., McMillan, Paula, (2004) Java programming: advanced topics, 3rd edition,
Thomson
[11] Neward, Ted, Drayton, Peter, Albahari, Ben (2003) C# in a nutshell, 2nd edition, O’Reilly
[12] Vick, Paul (2004) The Visual Basic .Net Programming Language, Addison-Wesley
[13] EMS Data Import for MySQL, http://www.sqlmanager.net/en/products/mysql/dataimport [31st
November 2006]
[14] Navicat, http://www.navicat.com/ [31st November 2006]
[15] POI – HSSF – Java API To Access Microsoft Excel Format Files
http://jakarta.apache.org/poi/hssf/index.html [2nd December 2006]
[16] Kendall, Kenneth, Kendall, Julie, (2002) Systems Analysis and Design, 5th edition, Pearson
Education
[17] Avison, David, Shah, Hanifa (1997) The Information Systems Development Life Cycle : A
First Course in Information Systems 1st edition, McGraw Hill
[18] Avgerou, Chrisanthi, Cornford, Tony, (1998) Developing Information Systems: Concepts,
Issues and Practice, 2nd edition, MacMillan Press
[19] Heathcote, P.M., (1998) ‘A’ Level Information Technology, 1st edition, Payne-Gallway
Publishers

51
Mount Video Library Information System

[20] Maciaszek, A.L., (2005) Requirements Analysis and System Design, 2nd Edition, Pearson
Education
[21] Skidmore, Steve and Eva, Malcolm (2004) Introducing Systems Development, Palgrave
Macmillan
[22] Robinson, B. and Prior M., (1995) Systems Analysis Techniques, International Thompson
Computer Press
[23] A Dix, J.F., G Abowd, R Beale, (2004), Human Computer Interaction, 3rd edition, Prentice
Hall
[24] Shneiderman, Ben, Plaisant, Catherine. (2005) Designing the user interface: Strategies for
effective Human-Computer Interaction, 4th edition (International edition)

52
Mount Video Library Information System

Appendix A – Personal Reflection

I think I have learnt more from this Final Year Project than I have in the previous two years of
university and my industrial placement put together. Although it has been very stressful, I have had a
lot of fun during the project. The main reason I originally picked a software engineering project was
because I felt my programming skills were poor. I had previously been part of a software engineering
group project in SE24 on an Estate Agent but I didn’t program one single bit of code during it. I
volunteered and was assigned the more comfortable task of the systems analysis which was basically
focusing on the UML aspect. After my placement, I feel I matured a lot and this year would be my last
opportunity to improve on my weakness.

During the project, I think I have been through a lot of highs and lows. I started off on the high of a
new project that would challenge me. After the mid project report, I felt that I was a bit on a low after
the negative feedback I received (rightly so). I think that really gave me the kick-start I needed and
from then on I have not looked back. I have easily spent well over the recommended 400 hours and
done everything that I could possibly do. I have got to the stage where I have managed my project well
and feel that I am a competent programmer. I think I possess the ability to go into a software
engineering job and do well.

After having completed the project, I would give the following advice to future students:

• Don’t plan to university deadlines – one of the main mistakes I made was planning and
writing up my project around some of the other FYP deadlines. For example, I gave myself 7-
8 weeks for background research as the deadline was 8th Dec. In hindsight, that was excessive.
I should have given myself a maximum of 4 weeks and by the time of the deadline; I would
have been on my analysis or at the beginning stage of my design.

• Take proper breaks – the last thing you want to do is suffer from burn out halfway through
your project and therefore completely lose the motivation to do anymore. I took a break during
the wedding preparations (Mid – End of Dec) and was then refreshed enough to literally put in
110% which enabled me to complete the design and implementation of the system. In the
Easter holidays I could then have another little break and then follow that up with the rest of
the write up

53
Mount Video Library Information System

• Schedule – Allow time for exams and coursework. In the final year, there will be a number of
times where the pressure will be on for handing in a coursework and getting final year project
done. You need to make sure that you have time for this. I would personally plan your
schedule so that you have one spare week somewhere in the middle of the project and one
spare week near the end. This will come in extremely handy if you fall behind with the
workload, and yes that does happen. Sometimes you cannot control external circumstances.
For example, my brother got married in December and I was the one that planned most of it. I
didn’t take this into account and I had to make up a lot of ground to catch up with my work.

• Choose a project you will enjoy – I am sure that by now you know what subjects interest you
and what you would want to do whenever you get a job. If you like it, go for that type of
project. There’s no such thing as an easy project so if you think one of the boring projects
might be easier, you’re mistaken.

54
Mount Video Library Information System
APPENDIX B - Schedule

TASK Oct- Dec-


06 Nov-06 06 Jan-06 Feb-06 Mar-06 Apr-07

Initial Schedule WEEK NUMBER


xmas/exam
1 2 3 4 5 6 7 8 9 period 15 16 17 18 19 20 21 22 23 24 25 26 27
Minimum Aim and
Requirements
Research Existing Products
Methodologies
Technologies
Requirements Gathering
Current System Analysis
Feasibility Study
Iteration 1 Database Design
Iteration 1 GUI Design
Iteration 1 Implementation
Iteration 1 Testing
Iteration 2 Database Design
Iteration 2 GUI Design
Iteration 2 Implementation
Iteration 2 Testing
System Trial
User Evaluation
Collate and write the report

Week 1 starts on Oct 16. Week 9 finishes on 17th Dec


Week 15 starts 15th January. Week 27 finishes 25th April

55
Mount Video Library Information System

TASK Oct- Dec-


06 Nov-06 06 Jan-06 Feb-06 Mar-06 Apr-07

Final Schedule WEEK NUMBER


xmas/exam
1 2 3 4 5 6 7 8 9 period 15 16 17 18 19 20 21 22 23 24 25 26 27
Minimum Aim and
Requirements

Research Existing Products

Methodologies

Technologies

Requirements Gathering

Current System Analysis

Feasibility Study

Iteration 1 Database Design

Iteration 1 GUI Design

Iteration 1 Implementation

Iteration 1 Testing
User Requested
Enhancements

Iteration 2 GUI Design

Iteration 2 Implementation

Iteration 2 Testing

System Trial

User Evaluation

Collate and write the report

56
Mount Video Library Information System

Appendix C – Current Solutions

1. SoftStore

Cluttered
information

Redundant
information

57
Mount Video Library Information System

2. Video Forecasting Easy to use interface and


button

58
Mount Video Library Information System

Appendix D – Analysis
1) Membership Form:

MEMBERSHIP FORM

45B Purlwell Lane


Mount Pleasant
Batley
(01924) 442809

Membership No : ____________________

Member Name : ___________________________

Member Address : ____________________________________

____________________________________

____________________________________

____________________________________

Member Contact No : ____________________________________

____________________________________

Member Date of Birth : ____________________________

Name of Contact : ____________________________

Signature : ____________________________________

59
Mount Video Library Information System

2) Membership Card:

60
Mount Video Library Information System

3) Interview Transcripts

The relevant sections of the transcript from the interview with the owner have been provided in
this section.

Interview 1
The following is a transcript from the first interview with the owner of Mount Video Centre. It
was conducted on 18th October 2006:

Khayam: What would you like out of the new system?


Nasar: I basically need a computer system that is going to help me manage the business much
more efficiently. I need it to be pretty good in the technical sense and have some decent business
functionality. I need the system to be implemented up to the level that will benefit me and my
customers.
Khayam: Could you be a bit more specific, firstly with the technical sense
Nasar: Well I’d like the computer system to be able to handle video or DVD rentals. So in
essence I could use the system to log when a DVD is taken out and when it is returned. Along
with that I would like some kind of storage of customer and DVD/video details. Like I told you
before, I am not the most experienced of people so I really don’t want the system to be too
difficult to use. I don’t want it to take too long to be trained on especially if I start to hire some
new employees.
Khayam: Hmmm rite, I’ll try to use a type of checklist to see what would make it easier for you.
What bout the system in the business sense then?
Nasar: Well for that I want to know a bit more about the DVD’s such as the popularity of it. I
want to know how good a movie actually is. I currently just ask my customers when they return
the movie as to what they thought of it. Then if someone else asks, I just tell them what I can
remember.
Khayam: Yeh that would be pretty useful to you. What if you just had some kind of rating
feedback each time a video is returned?
Nasar: Yeh something along those lines. A customer can return a video and give it a rating out of
5 stars or out of 10. That would be pretty helpful.
Khayam: What else would you be looking for in the proposed system?
Nasar: Ermmm, I can’t really think of any other business functionality at the moment. I’ll think of
something else eventually but I’m drawing a blank at the moment.

61
Mount Video Library Information System

Khayam: Yeh no problem. If I think of anything, I’ll let you know, shall I? Just so I confirm if it
will even be useful to you
Nasar: Yeh, yeh, definitely
Khayam: So can you think of any other types of features you would like to have in the system?
Nasar: Well I wouldn’t mind separate logins for different employees, which would be a handy
feature especially for the future. I’d like the system to let me know if any video rentals have gone
by their past date just so I can charge the customer the extra amount. Maybe I could be told the
exact amount that I need to charge extra or the number of days it has gone past its due date?!
Khayam: So your thinking along the lines of logging into the system and finding out all the
overdue videos?
Nasar: Yeh exactly that. It’s not a compulsory thing but it would be good to have that feature
available to me.
Khayam: I’ll do my best.
Nasar: Thanks.

Interview 2
The following is a transcript from the second interview with the owner of Mount Video Centre.
This interview also took place with the employee present so he could have an input. It was
conducted on 19th December 2006:

Khayam: I wanted to discuss with you the requirements of the proposed system in a bit more
detail especially as you have had a while to figure out what extra functionality you might need.
Nasar: Yeh I have thought of a couple of other things.
Khayam: First I just wanted to go through the current system you use. I understand that your first
system was simply noting down everything on paper but you computerised your processed. Why
did you do this?
Nasar: Well it was messy, I had papers all over the place and I was losing out on money
whenever I lost the papers. Especially as I started out at the time, it was the last thing I wanted so
I thought it would be best to put that information onto a computer. At least it can’t get lost on
there and I do still know a bit about computers, even though it is very limited.
Khayam: So how does the computerised process work?
Nasar: It’s right in front of you as you can see. The system is just as basic as the paper based one
but slightly more efficient. I’ve got one spreadsheet file that has details of all the customers and

62
Mount Video Library Information System

another spreadsheet file with details of all the videos and then a third with video rental details.
Whenever a customer rents out a DVD, I note down its unique ID and the name of the DVD. I
then note down the membership number of the customer as well as his name. All of this info goes
into the ‘Video Rentals’ spreadsheet file. Then when a customer returns the DVD, I look up the
code for it in ‘Video Rentals’ and delete that row in the system so that shows that the videos been
returned. The system includes a due date and if it is returned after that, I ask for £2/3 for every
day. So if it’s 2 days overdue, I will charge £4/6 from the customer depending on the movie.
Khayam: And when do you charge that money?
Nasar: My policy is to take it before the rental. If that occurs, then I mark the rental as ‘PAID’ in
my spreadsheet file or else it is changed to ‘UNPAID’. There is the occasion where people insist
on renting the DVD but don’t have cash on them or they only have debit card, and as I don’t use a
card reader yet, I let them off and let them pay when they return the DVD.
Khayam: What bout the customer information or the video rentals information?
Nasar: What do you mean?
Khayam: How do you collect that?
Nasar: Oh right, yes I get you now. For the customers, I have a membership form which they
need to fill out and they need some form of verification such as a license and a utility bill for
proof of who they are. I give them a membership card and put that membership number on the
membership form. The customer then needs to sign it and that is stored away as paper based. I
input all of that information into the ‘Customers’ spreadsheet. The video rentals information is
simple as well. Whenever I get a new video through, I just put the name of the movie and the
number of stock into the ‘Videos’ spreadsheet.
Khayam: What kind of problems do you get with this system then?
Nasar: A variety of problems to be honest. It looks extremely unprofessional using just a basic
spreadsheet file instead of some type of proper system. It’s also error prone as well and any
mistakes can cost me money. The structure is really basic and the functionality is really poor i.e.
it only handles video rentals and stores some customer and DVD information. Don’t get me
wrong, the system was ok when the business was relatively small but as I’m starting to expand a
bit more, I’d want a system that is professional and aesthetically pleasing. The main problem I
would have to say with the system is its efficiency.
Khayam: Could you just clarify a bit more on the efficiency part.
Nasar: Well it’s just not efficient at all, for example, it will take me quite a while to find a movie
or a rental within the spreadsheet file and I have sometimes noticed a customer get a bit impatient
especially if they are in a hurry.

63
Mount Video Library Information System

Khayam: Oh I get you, I see what you mean. What about the proposed system? We had a talk
about this a couple of months ago and made a provisional list of requirements. Anything you
want to add to that as you’ve had a fair bit of time to think about it?
Nasar: Yep I thought of a few things which would give the system that extra something if you
have the time to do it. Sorry but I can’t remember what we mentioned last time though.
Khayam: Yeh I expected that so I wrote down the list of requirements you made when I last came
over. So far I have got an easy to use system, it needs to handle the video rentals in terms of
rental and return, it needs to be able to store the customer and DVD information, some kind of
movie rating as well based on other customer’s opinions, separate logins for separate customers
and finally some kind of notification of overdue videos. How’s that sound?
Nasar: Yep sounds good so far
Khayam: So what else have you thought of?
Nasar: Well I was thinking it would be quite good if a customer can reserve a video if it’s out of
stock
Khayam: Yeh that was going to be one of my suggestions as well. I have been thinking about
what functionality you might need and from what I can tell, it might be good for you to have
some kind of search function as well. I was thinking along the lines of a search for specific
DVD’s you might have in stock. I also noticed a customer ask you for the movies you have in
stock starring Mel Gibson and you had to try to remember that so I was thinking I could
incorporate that somehow.
Nasar: Yeh definitely! That would be great
Khayam: I was also thinking that in terms of business functionality, I could try to have some
functionality within the system to generate some type of sales figures for you.
Nasar: What do you mean exactly?
Khayam: Well maybe something like the most popular movie taken out or what genre of movies
are the most popular within your customers to help you decide on future stock. It’d be a type of
functionality in the business sense rather than the technological sense if you get me?
Nasar: Yep I know what you mean, I didn’t know that would be possible but if you can do that, it
would be extremely helpful to me.
Khayam: Is there anything else you can think of that would help me in creating the proposed
system?
Nasar: No, not really, I think I mentioned everything and you’ve seen the rest. I’ve got your
contact number so I’ll definitely contact you if I do think of anything.

64
Mount Video Library Information System

Khayam: Yep no problem, I’ll do the same as well if I think of anything. I’ll try to keep you
updated on how the system is going, any updates, what you would like, and specific stuff like
that, so can I still assume that you’ve still got the time for the interviews?
Nasar: Yeh don’t worry about that. I do have a bit of time during work so just give me a ring
before and feel free to pop in.
Khayam: Ok great, Thanks

65
Mount Video Library Information System

4) Activity Diagrams
1. DVD Rental
MEMBER COMPANY SYSTEM

Start

DVD chosen

Membership card
bought ?

No Yes

Fail To Complete
Member ID
entered

DVD ID Notes

Payment paid or
not noted

End

66
Mount Video Library Information System

2. DVD Return

MEMBER COMPANY SYSTEM

Start

DVD Returned

Paid already?
No

Make Payment
for Rental Yes

Yes

Overdue?

Yes
No

Make Payment
for Rental

End End

67
Mount Video Library Information System

Appendix E – Design

Form Design – Prototype 1

The following diagrams describe the general design of the intended system for the minimum
requirements to be met.

1) Customer/DVD Form
There are three main functionalities that are to be included within both forms. The owner needs to
be able to add new members/DVDs, edit current member/DVD details and delete current
members/DVDs. Both forms will utilise an online form interface which is easy to interpret and
can act as a method of data entry to the underlying database. As each member’s details are
different, the Customer class will include a limited facilitation of data entry, whilst the DVD class
will make used of combo boxes or radio buttons (EG – Certificate option between U, PG, 12A, 15
and 18) because DVD’s share similar attributes.

i.e. Customer
Customer Tab DVD Tab or DVD

Title

Input Form Search Form

Buttons

Input Form – This includes text fields where data can be input or displayed. Information such as
Name/Address (Customer), and Genre/Certificate (DVD screen) would be included here. This
form will also include combo boxes and radio buttons for validation and ease of use purposes.
Search Form – This will consist of a text field where the user can search for a customer (or
DVD) by entering the membership number (or DVD Number).
Buttons – This will consist of buttons such as “Add new Customer” or “Delete Movie”

68
Mount Video Library Information System

2) Video/DVD Rental
This needs to be aligned with the current business process. When renting a DVD, the customer
provides their membership card and the DVD has a label on the back providing the DVD number.
Therefore both ID’s will need to be input and validated that they do exist in the database. As the
rental is set as a standard of one day, the date rented should be set as today and the date due
should be set as tomorrow. The system must internally deal with stock control by deducting 1
from the current stock total.

Rental Return

Title

Input Form
Includes details
such as
Customer ID
and DVD ID
Buttons

3) Video/DVD Return

The DVD is returned by inputting the DVD ID and marking it as returned. The user can briefly
ask an opinion for the DVD from the customer which will be recorded in to the system. The
system must again internally deal with stock control by adding 1 to the current stock total.

Rental Return

Title

Input Form

A rating based on the Table


Represents the
customer’s opinion
results as a list of
when returning the
all the people who
DVD
Rating Buttons have rented out

69
Mount Video Library Information System

4) Customer Rating
The user should be able to view the average customer rating and the number of ratings for any
movie by either entering the DVD ID or by selecting a movie from a list. The customer rating
given is based on the reviews supplied by members when they return the movies

Title
Search by
Input Form 1 Input Form 2 Search by selecting
DVD ID
DVD name from
combo box

Buttons

The resulting information (i.e. average customer rating) will appear as a pop up window. It will
inform the user of the number of people who have reviewed the DVD and its average rating.

Form Design – Prototype 2

The following diagrams describe the general design of the intended system for the extended
requirements to be met.

1) User Login
This has been incorporated for security reasons and will only allow a user access to the system
with a valid username and password, thereby preserving member information.

Company Logo

Username

Password

Buttons

70
Mount Video Library Information System

2) View Overdue DVD/Video Rentals


The owner needs to be made aware of DVD rentals that are a day late. He should simply be able
to click on a button which will bring up a list of all the people who have overdue DVD’s. This is
to be done via a table interface. Details for each overdue DVD will include a contact name,
address and number as well as the date due.

Title

Tables of Overdue Rentals

Button

3) Import Current Member/DVD Details


This functionality will be integrated to make the transition from the current spreadsheet based
system being used by the user, to the intended application, to be straightforward and quick. The
user currently has a MS Excel workbook which includes a Customer worksheet (containing all
member details) and a DVD/Video worksheet (containing all DVD details). The owner has
previously been asked to update the information within the worksheet so that it contains all the
compulsory information needed.

Title

Import DVD

Buttons
Import Members

Information is
imported by entering
the filename

71
Mount Video Library Information System

4) Search for Movie by Actor/Customised


This functionality will be included so that the user can search for specific movies he has in stock.
They can be found by:-

a) Inputting the name of a certain main actor that stars in that movie. The movie can be
found by selecting the name of the actor from the combo box and then clicking on search.
b) Customising their search. The movie can be found by stating the genre, Main
Actor/Actress, whether it’s a DVD or Video, and it’s origin (i.e. English/Indian).

Both methods will result in a list of all movies according to the criteria. This functionality will be
useful to the user especially when he has a member who is unsure of what movie they want to see
but have some type of criteria. For example, the member might want to watch a Sylvester
Stallone movie and may want to know what movies the user has in stock which stars that certain
actor.

Search by Actor Tab Customise Search Tab

Title

Search Criteria Buttons

List of movies that will be


displayed based on the criteria

72
Mount Video Library Information System

5) Calculate Sales Figures


The owner needs a type of business functionality that will help him calculate how much sales he
has generated from his rentals and where most of his revenue has come from. This will help him
identify the popularity of genres or DVD’s and where he may want to increase his stock. It would
be best for the user to have the option of viewing his sales figures either between two certain
dates which will need to be input, or using set buttons such as “Past Month”. The results should
include:-

• Total Sales Generated


• Top 3 most popular movies, how often they have been rented and it’s corresponding total
stock
• Top 2 Genres
• Revenue from sales based on origin i.e. to show whether it is English or Indian movies have
been more popular within his member’s rentals.

Title

Confirm Date
Dates Button

Total Sales Past


week/month/
year buttons
Top 3 Popular Movies

Top 2 Popular Genres

Origin Revenue

73
Mount Video Library Information System

5) Administration
The owner will most likely need to change certain aspects of the system in the future. The
most likely will involve the rental price (as the company gets bigger, he may decide to charge
more) and the introduction of new employees (which will mean more users). The system needs to
handle new users, or changing passwords.

The login form will look like this:-

Title

User Details
Confirm
Buttons

The Change Rental price form will look like this:-

Title

Rental Price Details


Confirm
Buttons

74
Mount Video Library Information System

Appendix F – Implementation

Database

The following screenshot is of the five database tables used in MySQL:-


• Customer

As can be seen, the majority of the fields are VARCHAR. This includes the CustomerID because
the owner currently has membership cards with a six digit code, which are not in sequential order,
thereby making it ineffective for using AutoNumber as the data type. The Locked field is also set
as “No” as default, and the table allows null values for non compulsory fields.

• DVD

The DVDID is again set as of type VARCHAR. This is because an alteration of the data types to
AutoNumber would mean that the owner would have to completely alter his current business
process of uniquely identifying customers/DVD’s. For example, he would have to change the
labels of all of his DVD’s in his shop, which would be tedious and time consuming.

75
Mount Video Library Information System

• Rental

The RentalID has been set as AutoNumber as it can be aligned with the current business
process and the system will automatically create a unique ID for it everytime.

• HistoryRental

• Login

76
Mount Video Library Information System

Prototype 1 – Minimum Requirements

This section describes the general design of the intended system for the minimum requirements
(as well as changes made to the system after the first iteration of user evaluation) to be met. It
includes screenshots, snippets of code and detailed explanation on how the system works.

1) Customer
This was the first class constructed. Adding, editing and deleting customer data in the system is
fundamental. The screenshot below shows the user interface for this class.

Window Name Use of Screen Title


i.e. JFrame JTabbedPane i.e. Selected
Tab

Uses
TitledBorder

Makes use of
JButtons

Makes use of Makes use of


JLabels Makes use of JCheckBox
JTextFields Navigational
JButton

77
Mount Video Library Information System

As can be seen, the Customer GUI uses a JTabbedPane, which was constructed using the
following code:-
Tabs1 = new JTabbedPane();
Tabs1.add(" Customer ",panel);
The background colour has been set using the following code:-
Green = new Color( 0xf0f8ff)
panel.setBackground(aliceblue);

The Search Member has a border placed around it to separate it from the rest. This was done
using the following code:-
title = BorderFactory.createTitledBorder(blackline, "Search Member");
panel1.setBorder((Border) title);

The GUI then makes use of 3 JPanels, a number of JTextFields, JLabels and JButtons to create
the interface shown.

The ‘Add Customer’ functionality requires the user to input the details into the form interface.
Compulsory fields have been marked with a * (as can be seen as a note for the user near the
bottom of the screenshot). The data is then validated by:-
• Number of characters
if (membershipnumber.length() > 6 || membershipnumber.length() <
6 ) {
//display an error and return false
JOptionPane.showMessageDialog(null, "Error: The Membership
Number is not 6 digits long");
return false ; }
else return true ;
• Compulsory Fields
if (firstname.equals("")) {
errorString += " The First Name field must be filled in.\n";}

Once the details have been entered correctly (i.e. they pass validation checks such as the contact
number length is 11 integers long), a confirmation message pops up which includes the
opportunity for the user to print off these details:-

78
Mount Video Library Information System

This then saves a file names Customer.html to the desktop which looks like this:-

This gives the user the opportunity to view the details and confirm it with the user as well as be
able to print it off, which can then be signed and stored away. The following code partly shows
the construction of the html file.
public void HTMLWriter(){
getCustomerInfo();
PrintWriter out;
try {
out = new PrintWriter(new BufferedWriter(
new FileWriter("Customer.html")), true);
out.println("<html>");
out.println("<head>");
out.println("<title>");
out.println("Customer Details");
out.println("</title>");
out.println("</head>");
out.println("<H1><u><b>");
out.println("Customer Details");
out.println("</u></b></H1>");
out.println("<body bgcolor='CCFFFF'>");
if (homephone != ""){
out.print ("<pre><b>Contact Number : </b> " + homephone + "
(home)</pre>"); }
} catch (IOException e) {
e.printStackTrace(); }
JOptionPane.showMessageDialog(null, "Customer details can now be viewed
as Customer.html"); }

The code takes into account if non compulsory fields have been provided or not, via an ‘if’
statement. The user is also given a message to confirm that he can now view the file.

79
Mount Video Library Information System

The ‘Update Details’ and ‘Delete Customer’ functionalities both work by first searching for the
customer. This is done by entering the Customer ID and clicking on Search as can be seen
below:-

This will automatically update the fields on the left side with information for that Customer ID. If
the member does not exist, the following error message will come up:-

The user can then update /delete the customer details. The “Delete Customer” specifically queries
to confirm that is what the user wants to do before deleting, as can be seen below:-

The user could also “View/Print Details” at this stage.

The “Main Menu” button has been provided for the user to be able to return to the main screen so
he can go to a different functionality. This has been placed outside of the tab to make it more
clearly for the user if he gets stuck at any place.

80
Mount Video Library Information System

2) DVD/Video
This was the second class constructed. Adding, editing and deleting DVD data in the system is
also fundamental. The screenshot below shows the user interface for this class.

The functionality within this class operates in the same way the Customer class does. It validates
data input more efficiently by using combo boxes and radio buttons.
• Example code of radio buttons:
TypeDVD = new JRadioButton("DVD", false);
TypeVideo = new JRadioButton("Video", false);
grp1 = new ButtonGroup();
grp1.add(TypeDVD);
grp1.add(TypeVideo);

• Example code of combo boxes:


GenreTwo2 = new JComboBox();
GenreTwo2.addItem("Action");
GenreTwo2.addItem("Romantic");
GenreTwo2.addItem("Adventure");

81
Mount Video Library Information System

3) DVD Rental (Includes Stock Taking)


This functionality permits the rental of a DVD by a customer. The data input in this form is
directly fed into the Rental table.

1) Customer ID
verified.
Member/Contact
name appears in
combo box

2) DVD ID verified.
DVD
Name/Amount Due
automatically
updated

3) Default
dates
4) Confirmation 5) Click on Rent out DVD
if Amount Due button. This checks renter
was paid age against the certificate
and does the stocktaking.

Step 1) Enter the Customer ID as can be seen form the membership card and click on “Verify”.
This will then update the combo box so that the user has the option of selecting the member or the
member’s contact as the renter. The following query brings back the two member names:-
SELECT Firstname, Surname, Contactfullname FROM Customer WHERE
CustomerID = CustomerID

The combo box is then updated with the following code: -


CustomerName.addItem(nameresults);
if (contactfullnameresults != null){
CustomerName2.addItem(contactfullnameresults); }

82
Mount Video Library Information System

Step 2) Enter the DVD ID as can be seen on the back of the DVD cover and click on “Verify”.
This will then automatically update the DVD Name field and the Amount Due. The following
query is used to do this:
SELECT Name, Price FROM DVD WHERE DVDID = DVDID

Step 3) The dates for each rental have been set as today (Date Rented) and tomorrow (Date Due)
as default. This is because the standard loan is only one day. The user does have the option to
alter this.

Step 4) Select Yes or No depending on whether the renter has paid for the movie or not.

Step 5) After clicking on the Rent out DVD button, the system does two steps:-
• Check Age of Renter - compared to the certificate rating. The coding for this can be
seen in section 5.3.2.
• Stocktaking – deducts 1 away from the current stock. The following code shows this:-
StockNumber = StockNumber -1 ;
db.submitInsertQuery("UPDATE DVD SET Stock= StockNumber + "' WHERE
DVDID = " + DVDID); //Updates Stock number in DVD table

4) DVD Return (Includes Stock Taking)


This functionality permits the return of a DVD by a customer.

1) DVD ID 2) Searches for all


verified. DVD rentals based on
Name that DVD ID
automatically
updated

3) Table updated
with rentals based
on criteria

4) Optionally add
customer’s
personal rating of 5) Click on Return DVD
DVD button. This adds the
customer rating and updates
the stocktaking.

83
Mount Video Library Information System

Step 1) The DVD is returned to the owner who enters the DVD ID and confirms the name of the
DVD (for validation purposes)

Step 2) The rental table is searched for all rentals matching that DVD ID.

Step 3) The result is presented in a JTable. The following code updates the table (based on the
SQL query results returned):-
java.sql.ResultSetMetaData rsmd = results1.getMetaData();
int colNo = rsmd.getColumnCount();
while(results1.next()) {
Object[] objects = new Object[colNo];
for(int i=0;i<colNo;i++){
objects[i]=results1.getObject(i+1); }
model.addRow(objects);}
A row can then be selected form the table corresponding to the member who rented out the DVD.

Step 4) A rating between 1 and 10 can be added by the owner, which will be based on the
member’s review of the DVD.

Step 5) After clicking on the ‘Return DVD’ button, the system does three steps:-
• Checks today’s date and the date it was rented. If today’s date is more than one day after
the day it was rented, it will then calculate the rental per day for that DVD (i.e. £2 or £3)
and multiply it by the days it is overdue. It will then check whether the rental for the
DVD was originally paid. If one or both of the two conditions are satisfied as above, the
user will receive an information message informing him that £x is owed (as shown):-

The following code was used for this functionality:-


cal1 = new GregorianCalendar();
cal2 = new GregorianCalendar();
cal1.setTime(getDateRented); //calendar date for today
cal2.setTime(getDateToday); //calendar date for tomorrow
//Add 1 to the counter for everyday it is late
overduecounter = -1;
while(cal1.getTime().before(cal2.getTime())){
cal1.add(Calendar.DAY_OF_YEAR, 1);

84
Mount Video Library Information System

overduecounter ++; }
Priceresults = results2.getString("Price");
y = Integer.parseInt(Priceresults);
AmountPaid = y;

if (overduecounter <= 0) // if it is NOT overdue


if (getPaid.equals("No")){
JFrame frame = new JFrame(); //Bring up dialog message
Object[] options = {"£" + y +" has been paid","No, it
hasnt"};
int n = JOptionPane.showOptionDialog(frame,
"£" + y + " is owed. Has the customer paid this amount?",
"Unpaid Rental", JOptionPane.YES_NO_OPTION)

Else if (overduecounter > 0) // if it IS overdue


Priceresults = results2.getString("Price");
x = Integer.parseInt(Priceresults);
y = x * daycounter; //Multiply overdue days by rental price

• Removes that rental from the Rental table and puts the relevant information into the
HistoryRental table. This signifies that this is a past rental.
• Adds 1 to the stock taking

4) Calculate Movie Rating


This functionality allows the user to view the average rating for a DVD based on customer
reviews.

1) Enter DVD
Number check 1) Search for
Movie name is DVD from the
correct and then combo box and
view user rating then view user
rating

2) Add Personal
Rating for a
movie by
selecting a score
from 1-10 from
the combo box

85
Mount Video Library Information System

Step 1) The user can view the average rating by confirming the DVD Name by either inputting
the DVD ID or selecting it from a combo box

The system calculates the average rating using the following SQL query:-
SELECT NumberofReviews, TotalRating, FROM DVD WHERE DVDID = DVDID

The TotalRating is then divided by the NumberofReviews to get a value for the average rating. IT
displays the results as an information message:-

The Rating system also generates a message as shown below if the movie has not been rated yet:-

Step 2) The “Add Rating” only works properly if one of the two searches from step 1 yielded
results. The procedure includes the retrieval of the TotalRating and NumberofReviews values and
adding the rating and 1. This must also take into account DVD’s which currently do not have a
rating, as the rating for that DVD will no longer be an update, but instead an insert query.

5) Main Menu

Allows
navigation to
different
functionality

Images to make it
more aesthetically
pleasing

86
Mount Video Library Information System

Prototype 2 – Extended Requirements

This section describes the general design of the intended system for the extended requirements to
be met. It again includes screenshots, snippets of code and detailed explanation on how the
system works.

6) User Login
This class is the initial screen to enter the system. The correct username and password must be
supplied. The screenshot below shows the user interface for this class.

Actual logo for


Mount Video
Centre

Exit application

The system has been implemented so that it first queries the Login table to see if the username
entered does actually exist. If the username is found, it then retrieves the password and checks to
see if it matches the password entered by the user.

For security reasons, the password is displayed as * so that no-one can see what the user typed to
login to the system. The following code is used to do this:-
Password2 = new JPasswordField();

87
Mount Video Library Information System

7) View Overdue Rentals

This functionality displays information regarding overdue rentals as can be seen from the
screenshot below.

Information on
Overdue Rentals

Locks customer
account for
selected member

The information above is retrieved from the MySQL database using the following query:-
SELECT Rental.RentorName, Customer.Address, Customer.Homephone,
Customer.mobilephone, DVD.Name, Rental.DateDue Rental From Rental INNER
JOIN Customer ON Customer.CustomerID = Rental.CustomerID INNER JOIN DVD
ON DVD.DVDID = Rental.DVDID WHERE Rental.DateDue < CURDATE()"

The information provided in the table is sufficient for the owner to be able to contact the member
and inform them of an overdue DVD name, when it was due and who rented it.

The owner can highlight a renter and lock their account so that they are no longer able to rent out
any DVD’s. This will then remove that rental from the table and update the Customer database
table by setting the ‘Locked’ field as Yes.

88
Mount Video Library Information System

8) Import Current Customer/DVD Details

This functionality allows the user to import the Member and DVD details he currently has stored
in his current system (i.e. MS Excel workbook) into the intended application.

Import DVD
details

Import Customer
details

The user can search for the Excel workbook from which he would like to import the Customer or
DVD data by clicking on the corresponding “Browse” button. This will bring up the following
screen:-

89
Mount Video Library Information System

This means the user can browse through the different directories to locate the MS Excel
workbook.

The following code has been used to do this:-


public void searchDVD(String DVDCust){
JFileChooser fc = new JFileChooser ();
fc.setDialogTitle ("Open File");
fc.setFileSelectionMode ( JFileChooser.FILES_ONLY);
int result = fc.showOpenDialog (frame);

if (result == JFileChooser.APPROVE_OPTION) {
File file = fc.getSelectedFile();
String s = file.getAbsolutePath();
if (DVDCust.equals("DVD")){
ImportDVD2.setText(s); }
else if (DVDCust.equals("Customer")) {
ImportCustomer2.setText(s); } } }

After clicking on the “Import” button, the system will look into the specific worksheet (i.e.
Customer or DVD). It will then read each row one by one (ignoring the front row which consists
of titles) and enter the data from each cell into the Customer (or DVD) database table.

The completion of the import function is displayed by a confirmation message. The system also
validates the data by ensuring that the CustomerID (or DVDID) does not already exist in the
system. If that is the case, then an error message would turn up.

90
Mount Video Library Information System

9) Search by Actor

This functionality helps a member in deciding what DVD to rent according to a specific actor that
comes in it.

Text Editable
Combo box with
List of movies
a list of all the
starring actor
actors that come
selected will be
in a movie that
updated in this
the has for rentals
JList.

The user can search for a movie two different ways.


1. Selecting an actor from a combo box

2. Manually enter an actor name

The following SQL query retrieves the movies that the actor comes in:-
SELECT Name FROM DVD WHERE Actor1 = ActorComboTextName OR Actor2
= ActorComboTextName OR Actor3 = ActorComboTextName

91
Mount Video Library Information System

10) Customise Search/Search by Actor

This functionality helps a member in deciding what DVD to rent according to specific criteria.

Criteria for Text editable


selecting a combo box
suitable movie

List of movies
that fulfil the
criteria

This works in a similar way to ‘Search by Actor’. The user selects specific criteria that are
relevant to what the user would like, which then brings up a list of movies according to the
criteria selected.

92
Mount Video Library Information System

11) Calculate Sales Figures

This business functionality will help the user calculate total revenue generated in a certain period
as well as what areas most of this revenue has come from.

Dates used
to calculate
sales figures

Pre Defined dates

Total 3 Most Popular movies,


Revenue how often they were
rented, their revenue and
total stock

2 Most Popular genres


and it’s revenue

Info on the revenue


from the two origins

All calculations are calculated using data from the HistoryRental table. The following
code/queries are used to calculate the relevant figures:-
• Total Revenue
SELECT AmountPaid FROM HistoryRental WHERE DateReturned < DateTo AND
DateReturned > DateFrom //Get Amount Paid values
SELECT count(*) FROM HistoryRental WHERE DateReturned < DateTo AND
DateReturned > DateFrom //Get Number of rows within table that
have been returned between two dates mentioned

TotalFigures = 0;
for (int i=0; i< NoOfRows; i++){ //For every row (NoOfRows = Count)
int TotalFigures1 = 0;
TotalFigures1 = results.getInt("AmountPaid"); //Get Amount Paid
results.next();
//Add to running tally
TotalFigures = TotalFigures + TotalFigures1;}
//Running tally gives Total Revenue

93
Mount Video Library Information System

• Best Movies
SELECT DVD.Name, DVD.TotalStock, Count(HistoryRental.DVDID),
Sum(HistoryRental.AmountPaid) FROM HistoryRental INNER JOIN DVD ON
HistoryRental.DVDID = DVD.DVDNumber WHERE DateReturned < DateTo AND
DateReturned > DateFrom + GROUP BY DVD.Name

• Best Genres
SELECT DVD.Genre1, Count(HistoryRental.DVDID),
Sum(HistoryRental.AmountPaid) FROM HistoryRental INNER JOIN DVD ON
HistoryRental.DVDID = DVD.DVDNumber WHERE DateReturned < DateTo AND
DateReturned > DateFrom GROUP BY DVD.Genre1

The following date functions are used to calculate the past Week/Month/Year:-
• Past Week
(DATE_SUB(CURDATE(), INTERVAL 1 WEEK))
• Past Month
(DATE_SUB(CURDATE(), INTERVAL 1 MONTH))
• Past Year
(DATE_SUB(CURDATE(), INTERVAL 1 YEAR))

The functionality works by either entering two valid dates and clicking on “Confirm Dates” or
clicking on one of the Pre defined dates such as Past Week, Past Month, or Past Year. This then
updates all of the information within the form with relevant figures.

12) Administration

This functionality allows the system to partly evolve as time goes on. It allows new users to be
added, password to change and the rental price to change.

When clicking on “Administration” from the “Main Menu”, the user has a choice of whether he
wants to change user details or change rental prices:-

94
Mount Video Library Information System

• Change User Details

Small popup
window
Add a new user
i.e. employee

Change current
Password is re- user details such
entered for as a password
validation purposes

• Change Rental price

Small popup
window

Enter new
rental prices
(low and high)

An error message as shown occurs if both rental prices have not been input. If the user only wants
to change one of the rental prices, he can just re-enter the current rental price

95
Mount Video Library Information System

If both rental prices have been input, the rental price will change at the DVD screen:-

(At the DVD screen, before change made)

(Change made at Administration)

(At the DVD screen, after change made)

The following code in the DVD class (where the Rental price radio button is created) makes the
alteration from £2/£3 to £3/£4:-

DatabaseConnection db = new DatabaseConnection();


String query = "SELECT DISTINCT Price FROM DVD GROUP BY Price";
//SQL Query to find the two distinct rental prices
results = db.submitQuery(query); //submit
results.first();
int NoOfRows = results.getRow(); //Get number of rows from the results
//if there are no rows i.e. no data in database table
if (NoOfRows > 0){
String lowPriceresults = "£" + results.getString("Price");
results.next();
String highPriceresults = "£" + results.getString("Price");
//Set lowest and highest value rental prices
PriceTwo = new JRadioButton(lowPriceresults, false);
PriceThree = new JRadioButton(highPriceresults, false);}
else {
//or else if there is data in the database
PriceTwo = new JRadioButton("£2", false);
PriceThree = new JRadioButton("£3", false);}

96
Mount Video Library Information System

Appendix G – Testing

Unit Testing

Login

Test Description Expected Result Result as Corrective


no Expected? Action
1 Enter incorrect username / Doesn’t allow access into Yes N/A
password system. Gives error message
2 Enter “xyz’ or 2>1 - - “ as Doesn’t allow access into Yes N/A
password (i.e. SQL injection) system. Gives error message
3 Enter correct username & Allows access into the system Yes N/A
password
4 Check the password cannot be Password is represented as * Yes N/A
seen
5 Click on ‘Log Out’ Exits the application Yes N/A

Main Menu

Test Description Expected Result Result as Corrective


no Expected? Action
1 Check each button Allows navigation into expected Yes N/A
functionality
2 Check “Main Menu” button at Allows navigation back to the Yes N/A
each functionality Main Menu
3 Click on ‘Log Off’ button Returns to login screen Yes N/A
4 Tab functionality Can click on Tabs to go to a Yes N/A
different functionality

Customer

Test Description Expected Result Result as Corrective Action


no Expected?
1 Enter data that exceeds Error message informing Yes N/A
character length E.G. Home user of incorrect data length
Phone Number exceeds 11 and the input field
characters associated with it
2 Enter data that is an Error message informing Yes N/A
incorrect data format E.G. user of incorrect data format
Date has been entered and the input field
incorrectly associated with it
3 Try to add a new customer Get an error message No – DOB Following code added:-
by missing out a informing the user of what field has been if
compulsory field compulsory field has been missed out (DOB.equals("")){
missed out errorString += "
The DOB field must
be filled in.\n";
}

97
Mount Video Library Information System

4 Add new customer with a Get an error message Yes N/A


membership ID that already informing the user that the
exists membership ID given
already exists
5 Hover over the buttons Tooltips should display a Yes N/A
description
6 Add New Customer Confirmation message Yes N/A
7 Search for existing Customer details Yes N/A
Customer (e.g. member just corresponding to ID entered
added) are updated in the fields
8 Enter a Customer ID that Error message informing Yes N/A
doesn’t exist user that the Customer ID
entered doesn’t exist
9 Change details of member Allows update to go through No – Following code added:-
and provides a confirmation Confirmation JOptionPane.showMessage-
question and then a message was Dialog(null, “Customer
confirmation message not provided details have been updated”)
10 Delete member Provides confirmation Yes N/A
question and then a
confirmation message
11 Fill in the whole form and All details are cleared Yes N/A
Click on ‘Clear Form’
12 After searching for a Confirmation message. Yes N/A
customer, click on Details can be seen in
“View/Print details”. Then Customer.html. Includes
click on Customer.html on some free space at the
the desktop bottom of the page for a
signature

DVD

Test Description Expected Result Result as Corrective Action


no Expected?
1 Enter data that exceeds Error message informing Yes N/A
character length E.G. DVD user of incorrect data length
Number exceeds 6 and the input field
characters associated with it
2 Click on radio buttons and Allows selection to be made Yes N/A
select options from combo
boxes
3 Enter data that is an Error message informing Yes N/A
incorrect data format E.G. user of incorrect data format
Total Stock entered as and the input field
alphabetical characters associated with it
instead of numerals
4 Try to add a new DVD by Get an error message Yes N/A
missing out a compulsory informing the user of what
field compulsory field has been
missed out
5 Add new DVD with a DVD Get an error message Yes N/A
ID that already exists informing the user that the
DVD ID given already
exists

98
Mount Video Library Information System

6 Hover over the buttons Tooltips should display a Yes N/A


description
7 Add New DVD Confirmation message Yes N/A
8 Search for existing DVD DVD details corresponding Yes N/A
(e.g. DVD just added) to ID entered are updated in
the fields
9 Enter a DVD ID that Error message informing Yes N/A
doesn’t exist user that the DVD ID
entered doesn’t exist
10 Change details of DVD Allows update to go through No – Following code added:-
(E.G. Change Total Stock) and provides a confirmation Confirmation JOptionPane.showMessage-
question and then a message was Dialog(null, “DVD details
confirmation message not provided have been updated”)
11 Delete DVD Provides confirmation Yes N/A
question and then a
confirmation message
12 Fill in the whole form and All details are cleared Yes N/A
Click on ‘Clear Form’

Rental

Test Description Expected Result Result as Corrective Action


no Expected?
1 Enter Customer ID and Correct Customer name Yes N/A
click on “Verify” and contact name (if
available) updated in
combo box
2 Customer ID and click on Error message informing Yes N/A
“Verify” user that the Customer ID
doesn’t exist
3 Enter DVD ID and click Correct DVD Name and Yes N/A
on “Verify” Amount Due should be
updated in relevant fields
4 Validate “Check Age Information message Yes N/A
functionality by trying to comes up informing user
rent out a DVD for a of age of renter. Allows
member that is younger user to still rent out DVD
than the certificate rating to member
5 Confirm Date Rented and Date Rented is default as No – Date Following code added:-
Date Due dates today and Date Due is Due had been cal.add
default as tomorrow set as today Calendar.DAY_OF_MONTH,
as well 1); // add one day
6 Select Yes or No for the Allows selection to be Yes N/A
“Paid” field made
7 Rent out DVD using Information added to the Yes N/A
correct details Rental table.
Confirmation message
given
8 Miss out a field (all fields Error message Yes N/A
are compulsory)
9 Fill in the whole form All details are cleared Yes N/A
and Click on ‘Clear

99
Mount Video Library Information System

Details’
10 Rent out a DVD with the Information added to the Yes N/A
Paid as ‘No’. This will be Rental table.
checked later in the Confirmation message
Rental tests given

Return

Test Description Expected Result Result as Corrective Action


no Expected?
1 Enter DVD ID and click Correct DVD name Yes N/A
on “Confirm” appears in the field
2 Enter incorrect DVD ID Error message informing Yes N/A
and click on “Confirm” user that the DVD ID
doesn’t exist
3 Enter DVD ID and click Table should show all the Yes N/A
on “Search for Rental”. members that have rented
Check against the rental out that specific DVD
database table
4 Select a row and click on Row removed from GUI Yes N/A
‘Return DVD’ table. Corresponding row
also removed form the
rental database table and
relevant information
placed in the
HistoryRental table.
Confirmation message of
return given.
5 Select a row, add a Check that the rating has Yes N/A
RATING and click on been added in the DVD
‘Return DVD’ database table.
Confirmation message of
RATING given.
Confirmation message of
return given.
6 Fill in the whole form All details are cleared Yes N/A
and Click on ‘Clear
Details’
7 Return the DVD from Message informing user Yes N/A
Rent Test No 10 that £3 is expected
8 Return a DVD that is 3 Message informing the Yes N/A
days late user that £9 is owed (or
£6 depending if rental
price is £2 or £3 for the
DVD

100
Mount Video Library Information System

Overdue

Test Description Expected Result Result as Corrective Action


no Expected?
1 Check information is Correct Overdue rentals Yes N/A
correct and all rentals are
correctly overdue
2 Select member and Click Overdue Rental should be Yes N/A
on Lock Account. View deleted. Confirmation
member on “Customer” question given. Member
screen has “Locked” field
checked for the tick box
3 Try to rent out a movie Error message informing Yes N/A
with a locked member user of locked member.

View Customer Rating

Test Description Expected Result Result as Corrective Action


no Expected?
1 Enter DVD ID and click Correct DVD name Yes N/A
on “Verify” appears in the field
2 Enter incorrect DVD ID Error message informing Yes N/A
and click on “Confirm” user that the DVD ID
doesn’t exist
3 Click on “View User Correct average rating & Yes N/A
Rating” for the Search number of reviews should
By DVD Number. be given
Calculate average rating
expected using the DVD
database table (Using
NumberOfReviews,
TotalRating fields)
4 Check all the movies are All the movies are present No 1 of the movies was missing.
in the combo box for in the combo box This was because of a loop that
“Search By Movie missed the first result
Name”
5 Click on “View User Same figures as Test No 3 Yes N/A
Rating” for the ‘Search given
By Movie Name’. This
should be done for the
same movie as Test No 3
6 Add a new Rating by Rating successfully added Yes N/A
selecting a score from the to the DVD table.
combo box. Ensure that a Confirmation message
Movie has been selected. given.
Check DVD table after
adding a rating.
7 Add a new Rating by Error message asking user Yes N/A
selecting a score from the to select only one of the
combo box. Select a options
Movie by both “Search
by DVD ID” and “Search
By Movie Name”.

101
Mount Video Library Information System

8 Add a new Rating by Error message asking user Yes N/A


selecting a score from the to select one of the
combo box. Do not select options.
a movie
9 Click on ‘Clear Details’ All details are cleared i.e. Yes N/A
from both “Search by
DVD ID” and “Search By
Movie Name”.

Import DVD/Customer Details

Test Description Expected Result Result as Corrective Action


no Expected?
1 Browse for Excel Allows browsing Yes N/A
workbook
2 Import DVD details. Details retrieved correctly Yes N/A
Retrieve details by
entering member ID at
the “DVD” screen
3 Import Customer details. Details retrieved correctly Yes N/A
Retrieve details by
entering member ID at
the “Customer” screen
4 Import DVD details with Information message Yes N/A
a DVD ID included that given to user informing
is already present in the him that DVD id xxx
system already exists
5 Import Customer details Information message Yes N/A
with a member ID given to user informing
included that is already him that member id xxx
present in the system already exists
6 Click on ‘Clear Details’ All details are cleared i.e. Yes N/A
from both “Search by
DVD ID” and “Search By
Movie Name”.

Search Actor/Customise Search

Test Description Expected Result Result as Corrective Action


no Expected?
1 Select Actor/Actress Brings up list of movies Yes N/A
from combo box and for that actor
search
2 Enter Actor/Actress Brings up list of movies Yes N/A
name into text editable for that actor
combo box and search
3 Enter incorrect actor No movies should come Yes N/A
up in the list
4 Customise Search and Movie updated in list Yes N/A
select an option for each according to the criteria

102
Mount Video Library Information System

criteria
5 Miss out one of the fields Movie updated in list Yes N/A
and search according to the criteria

Calculate Sales Figures

Test Description Expected Result Result as Corrective Action


no Expected?
1 Enter two valid dates and Updates all the relevant Yes N/A
click on “Confirm Dates” fields with correct sales
figures
2 Enter two invalid dates Error message given for Yes N/A
and click on “Confirm incorrect date
Dates”
3 Click on “Past Week” Updates all the relevant Yes N/A
fields with correct sales
figures
4 Click on “Past Month” Updates all the relevant Yes N/A
fields with correct sales
figures
5 Click on “Past Year” Updates all the relevant Yes N/A
fields with correct sales
figures
6 For each date, calculate Correct total Revenue Yes N/A
Total Sales generated via figure given
the HistoryRental table
7 For each date, calculate Correct 3 Most Popular Yes N/A
the 3 Most Popular Movies given. Rental
movies via the frequency/Revenue/Total
HistoryRental table stock figures also correct
8 For each date, calculate Correct 2 Most Popular No – 2nd SQL query needed altering
the 2 Most Popular Genres given. Revenue genre given
Genres via the figure given is also was incorrect
HistoryRental table correct
9 For each date, calculate Correct revenues for Yes N/A
the Origin revenues via Origin is given
the HistoryRental table

Administration

Test Description Expected Result Result as Corrective Action


no Expected?
1 Click on Administration Option of “Change User Yes N/A
at the menu Details” or “Change
Rental prices” given
2 For the “Change User Password should be Yes N/A
Details screen”, enter a encrypted with *
username and password
3 Enter a different Error message given Yes N/A
password for the informing user that the
“Confirm password” two passwords are

103
Mount Video Library Information System

field and click on “Add” different to each other


4 Enter a correct password New user added. Login Yes N/A
for the “Confirm allowed
password” field and
click on “Add”. Try to
login with that user
5 Enter incorrect username Error message given Yes N/A
and input a password informing the user that
and click on “Change the username does not
Details” exist
6 Enter correct username Login allowed Yes N/A
and input a password
and click on “Change
Details”. Try logging in
with that password
7 For the “Change Rental Error message given No Java code had to be altered to:-
Prices” screen, enter a if
value in only one of the (highrental.equals("")
fields and click on ||
“Change prices” (lowrental.equals("")))
8 Enter valid figures such Confirmation message Yes N/A
as £3 (lowest) and given. Radio buttons
£4(highest) for the rental have changed from £2 to
figures. Then go the £3 and £3 to £4
Customer screen and
confirm the change in
values next to the radio
buttons.
9 Enter characters as Doesn’t allow characters No Java code had to be altered to:-
figures to be set as rental price

104
Mount Video Library Information System

Appendix H – Evaluation

User Requirements

This evaluation involved two different types of users to help gain different perspectives
of the application. The first user was the owner of Mount Video Centre, and the second
was an employee. The following evaluation form was filled out by both users. They were
asked to score and comment on each function with a rating of 1 – 5.

Score Key
1 = Very Good
2 = Good
3 = OK / No Comment
4 = Not good
5 = Poor

Owner

Description of Task Score (out Comments (From Diary)


of 5)
Add a new Member to the system 1 It’s easy to do
Search for a member and edit their 1 No problems encountered
details
Search and delete a member 1 No problems encountered
View/Print Member Details 2/3 It’s good that I am able to view the
member details first, just so I can show
them the screen and confirm it with them
and then print it out. The print out is very
unprofessional though.
Add a new DVD or Video to the 1 I like how easy it is to add a DVD,
system especially as you don’t need to type as
much
Search for a movie and edit it’s 1 No problems encountered
details
Search and delete a DVD 1 No problems encountered.
View a Customer Based Rating (by 2/3 Two movies with the same name appear
searching for the DVD Number or twice. This makes it difficult to
selecting from a list) distinguish the movies. Would have been
better if duplicate movies had a date
included. Duplication also occurs when
the movies are exactly the same but have
a different ID (because one is a video and
the other is a DVD).
Add a new Rating 2 Some people prefer to give a rating such
as 7.5 instead of 7 or 8. Again, have a
slight problem with the movie duplication
which gets a bit confusing.

105
Mount Video Library Information System

Rental of a movie 1 Was very happy with the calculation of


the renter age functionality included in
here.
Return of a movie 1 I very much like the fact that I can find
out if I am owed any money because of
the DVD being overdue or if the member
didn’t pay me!
View Overdue rentals 1 I like the contact information included for
each overdue rental
Lock member Account 3/4 It doesn’t give the actual reason for why a
member has been locked, so it makes it
difficult for him to be unlocked again
User Login 3 I would have preferred some type of extra
access rights which are not available to
my employee.
Import current Member information 1 Great functionality. Especially when I
into the system initially used the system.
Import current DVD details into the 1 Great functionality. Especially when I
system initially used the system.
Customise Search / Search by Actor 1/2 I like the list of movies that appear in the
box. This functionality could have been
even more better if I was actually able to
click on one of the movies and I could
then go straight to the rental screen and
the relevant details would already be
filled in.
Calculate Sales Figures 1/2 I like the pre defined dates functionality. I
like the total revenue generated as well as
the most popular movies. After having
looked at the figures for the last 10 days, I
think it may have been more appropriate
if instead of having a “Total Stock” field,
there was instead some kind of figure on
the number of times an individual tried to
rent the movie and it had been out of
stock.
Change User Details 3 I’ve noticed that it is possible for
someone to change someone else’s
password as long as they know the
username.
Change Rental Price 1 This is very good as I am thinking of
changing my rental prices sometime soon,
but that depends on future revenue. It is
easy to change rental prices as well, as it
automatically updates all the DVD’s
itself.

106
Mount Video Library Information System

Employee

Description of Task Score (out Comments (From Diary)


of 5)
Add a new Member to the system 1 No problems.
Search for a member and edit their 1 No problems.
details
Search and delete a member 1 No problems.
View/Print Member Details 1 No problems.
Add a new DVD or Video to the 1 No problems.
system
Search for a movie and edit it’s 1 No problems.
details
Search and delete a DVD 1 I very much like the confirmation
question as I did almost accidentally
delete a member. I don’t think the boss
would have been happy with that!
View a Customer Based Rating (by 1 I like the information displayed as it
searching for the DVD Number or includes how many people have rated it,
selecting from a list) so it gives more information
Add a new Rating 1 The way it has been implemented on the
Return screen is very good. Makes it
much easier to record this.
Rental of a movie 1 The renter age check is quite good,
especially when I can’t tell the age of the
renter.
Return of a movie 2 I like the confirmation of the DVD
ID/name. It would have been better if I
didn’t have to ask the renter his name and
then search through the whole list every
time. I would have preferred it if he just
dropped off his DVD and didn’t need to
wait around for me to mark it as returned.
Also, if one member returns multiple
DVD’s, it gets a bit long winded.
View Overdue rentals 1 Works perfectly
Lock member Account 3 Have not used this functionality
User Login 1 Seems fine to me
Import current Member information 1 Works perfectly. Very happy with how
into the system easy it is to find the file as well
Import current DVD details into the 1 Works perfectly. Very happy with how
system easy it is to find the file as well
Customise Search / Search by Actor 1 Works perfectly
Calculate Sales Figures 3 Never really use it so can’t comment on it
Change User Details 3 Not used this functionality so can’t
comment on it
Change Rental Price 3 Not used this functionality so can’t
comment on it

107
Mount Video Library Information System

Usability/HCI

This evaluation involved three different types of users to help gain different perspectives
of the application. The first user was the owner of Mount Video Centre, the second was
an employee and the third was a person (D.A. Bam) unconnected to the project. The
following evaluation form was filled out by al three users. They were asked to score and
comment on the usability/HCI with a rating of 1 – 5.

Score Key
1 = Agree
2 = Partly Agree
3 = Neutral
4 = Partly Disagree
5 = Disagree

Owner

Description Score (out Comments


of 5)
The system can be learnt within a 1/2 The rental/return tasks were especially
day or two (as long as training has easy to learn as it required very little input.
been provided) The only concern I had was regarding the
“Add Customer Rating” functionality as it
wasn’t as clear.
It would be easy for me to become 2 I think that even with my lack of computer
skilful in using the system skills, I should be able to learn the system
inside out within 1-2 weeks
At any one point, it is possible to 1 Yes I definitely feel that because each
determine what to do next, based on process is so simple, it is easy to figure
what has already been done. what needs to be done next.
The system is in parallel with the 1 The Rental/Return stage inputs the
business processes relevant details, calculates the relevant
prices perfectly with the business
processes.
The main process of Rental and 2 It took me about 50 secs to rent out a DVD
Return is not time consuming. It which is less than the current system. This
takes less time than the current is because only the ID’s are needed whilst
system the current system requires further
information such as the name. It took a bit
longer for rental, but I think it is more
effective. It takes me about 75 secs to
return a DVD
The main process of Rental and 1 It is very effective
Return is more effective
Satisfying a customer request such as 3 I wouldn’t say it is very quick. To find a
finding out the average Customer relevant movie by selecting the relevant
Rating for a movie or customising a criteria, it takes me 1 min 10 secs and it
search to find a relevant movie takes 45 secs to find the average customer

108
Mount Video Library Information System

according to the criteria is rating


straightforward and quick
I am satisfied with the security of the 4 I am not very satisfied because of the lack
application of user access levels
It is easy enough to gain access to 1 Allows access as long as the correct
the application functionality username and password has been
provided.
The sequence of tasks is clear-cut 1/2 Some parts are not as clear cut such as the
Add Rating for a movie function
The system provides appropriate 1 The successful completion of each
confirmation messages function results in a confirmation message
The system provides appropriate 1
error messages which are clear
It is difficult to make errors 3 There is no validation set for the dates
It is easy to recover from errors 2 The Lock functionality is a bit more
difficult to recover form. This is because it
needs me to go back to the Customer
screen, find and search for that member
I fully trust the system 1 Everyone works fine. I have not had any
problems with using it
I enjoy using the system 1
functionality and feel that I would
utilise it fully
The system makes it easy to input 1 Especially for the Rental/Return/Add a
data DVD screens
The system provides validation to 1
confirm an action was completed
successfully
Data does not need to be input 1
multiple number of times
The default data selection is 2 Some parts could be set further as a
appropriate E.G. The automatic date default. For example, the default selection
setup for a rental for DVD/Video field should be DVD as I
tend to mostly purchase DVD’s nowadays.
It is easy to navigate from the main 1
menu to different functionalities and
then back to the main menu
The interface of the system is clear 1 Use of Tool Tips
The layout of the system was helpful 1 Appropriate titles
There is no need to have special 2/3 I think initially you need to know your
skills to use the system way around a computer system for this to
be easy
The terminology is concise 1
It is easy to apply real world 1
situations when using the system
The system can become frustrating 3 Just on the user access levels

109
Mount Video Library Information System

Employee

Description Score (out Comments


of 5)
The system can be learnt within a 1 It was very easy to learn because it was so
day or two (as long as training has simple
been provided)
It would be easy for me to become 1 I don’t think it would be difficult in
skilful in using the system knowing the system inside out
At any one point, it is possible to 2 The only problem is in regards to the
determine what to do next, based on Return screen which is a bit more difficult
what has already been done. because of the table including all the
different rentals
The system is in parallel with the 1
business processes
The main process of Rental and 1 It took me 30 secs to rent out a DVD
Return is not time consuming. It which is definitely less than the current
takes less time than the current system. It takes me about 50 secs to return
system a DVD
The main process of Rental and 2 It is not as effective when returning
Return is more effective multiple DVDs as this is a repetitive
process
Satisfying a customer request such as 1 It takes me about 50 secs to find a relevant
finding out the average Customer movie and about 30 secs to find the
Rating for a movie or customising a average rating for a movie
search to find a relevant movie
according to the criteria is
straightforward and quick
I am satisfied with the security of the 1
application
It is easy enough to gain access to 1
the application functionality
The sequence of tasks is clear-cut 1
The system provides appropriate 1 Especially when a rental transaction has
confirmation messages been completed and a rental is returned
The system provides appropriate 1
error messages which are clear
It is difficult to make errors 1/2 The only error I have made is that I have
forgotten to add a DOB for the contact
It is easy to recover from errors 1
I fully trust the system 1
I enjoy using the system 1
functionality and feel that I would
utilise it fully
The system makes it easy to input 1 Especially for DVD Rentals
data
The system provides validation to 1 I like the user of the validation of
confirm an action was completed Customer and DVD ID at the rental screen
successfully
Data does not need to be input 3 This is not the case when multiple DVD’s

110
Mount Video Library Information System

multiple number of times are returned by one member


The default data selection is 1
appropriate E.G. The automatic date
setup for a rental
It is easy to navigate from the main 1
menu to different functionalities and
then back to the main menu
The interface of the system is clear 1/2 The Return aspect could have been
improved a bit as the Rating for it is in a
corner but I like the fact that the table row
highlighted changes colour
The layout of the system was helpful 1 The layout is good apart from the “Add
Rating” functionality
There is no need to have special 1 I have no special skills and I think this is
skills to use the system true
The terminology is concise 1
It is easy to apply real world 1
situations when using the system
The system can become frustrating 4 Only slight frustrating part is the input of
dates each time which has to include a “–“

D.A. Bam (External User)

Description Score (out Comments


of 5)
The system can be learnt within a 1 Very simple. Maybe a bit over simple?
day or two (as long as training has
been provided)
It would be easy for me to become 1
skilful in using the system
At any one point, it is possible to 2 The Return screen took a bit of getting
determine what to do next, based on used to as the table was updated only after
what has already been done. the DVD ID was verified
The system is in parallel with the 3 N/A
business processes
The main process of Rental and 1 It took me 25 and 40 secs for this
Return is not time consuming. It
takes less time than the current
system
The main process of Rental and 3 N/A
Return is more effective
Satisfying a customer request such as 1 This took me about 25 and 35 secs so it is
finding out the average Customer simple and quick
Rating for a movie or customising a
search to find a relevant movie
according to the criteria is

111
Mount Video Library Information System

straightforward and quick


I am satisfied with the security of the 4 No, I think this could have been
application implemented much more efficiently in
terms of having some type of user levels
as this would be needed when a company
has a high number of employees.
It is easy enough to gain access to 1
the application functionality
The sequence of tasks is clear-cut 2 Just had a bit of a problem with the Return
screen sequence at the start
The system provides appropriate 1
confirmation messages
The system provides appropriate 1 Especially as it specifically tells me what
error messages which are clear field is wrong and why e.g. Customer
surname had not been filled in
It is difficult to make errors 1
It is easy to recover from errors 1
I fully trust the system 1
I enjoy using the system 1
functionality and feel that I would
utilise it fully
The system makes it easy to input 1
data
The system provides validation to 1
confirm an action was completed
successfully
Data does not need to be input 1
multiple number of times
The default data selection is 2/3 I’m not too sure about the Date Due
appropriate E.G. The automatic date default date for the Rental as a lot of
setup for a rental people may want to rent for more than one
day
It is easy to navigate from the main 1
menu to different functionalities and
then back to the main menu
The interface of the system is clear 1 Appropriate use made of titles and labels
The layout of the system was helpful 2/3 Had a bit of a problem in deciding whether
to use the Customise Search or Search By
Actor
There is no need to have special 1
skills to use the system
The terminology is concise 1
It is easy to apply real world 3 N/A
situations when using the system
The system can become frustrating 5 Not from what I can tell. It is easy to use.
It could become frustrating for an
advanced users because it is so easy

112

You might also like