115
THE UNIVERSITY OF TEESSIDE SCHOOL OF COMPUTING MIDDLESBROUGH TEES VALLEY TS1 3BA DEVELOPMENT OF A DATABASE FOR WORK-BASED LEARNING TIMESHEETS BSc Computing Studies February 2008 Andrea Stewart Supervisor: M Nawaz Second Reader: M Birtle iv

DEVELOPMENT OF A DATABASE FOR WORK … · DEVELOPMENT OF A DATABASE FOR WORK-BASED LEARNING TIMESHEETS BSc Computing Studies ... 2.7.1 Top Level Data Flow Diagram ... the WBL Management

Embed Size (px)

Citation preview

THE UNIVERSITY OF TEESSIDE

SCHOOL OF COMPUTING

MIDDLESBROUGH

TEES VALLEY TS1 3BA

DEVELOPMENT OF A DATABASE FOR WORK-BASED LEARNING TIMESHEETS

BSc Computing Studies

February 2008

Andrea Stewart

Supervisor: M Nawaz

Second Reader: M Birtle

iv

ABSTRACT This document follows the development of a timesheet database to enable the recording,

monitoring and reporting of attendance of all Work Based Learning (WBL) students of

Hartlepool College of Further Education and to provide accurate and timely information

to enable Education Maintenance Allowance (EMA) and travel funds to be paid

promptly.

v

ACKNOWLEDGEMENTS I would like to thank my project supervisor at the university, Mansha Nawaz for

believing in me and without whose support and encouragement I would have found this

project and my years at the university much more of a struggle.

I would also like to thank a colleague from my place of work, Ron Smith, who

throughout this project has provided me with all the help and assistance I needed to

complete this project.

vi

CONTENTS CHAPTER 1 - INTRODUCTION........................................................................... 8

1.1 Development Strategy................................................................................... 11

1.2 Project Aims and Objectives........................................................................ 12

1.3 Standards and Procedures ........................................................................... 13

1.2.1 British Computer Society (BCS) - Code of Conduct .................................. 13

1.2.2 Ethical Issues............................................................................................... 13

1.3 Methodology .................................................................................................. 14

1.3.1 Systems Development .................................................................................. 14

1.3.2 Analysis Methodologies............................................................................... 15

1.3.3 Design Methodologies ................................................................................. 15

1.3.4 Implementation Methodologies .................................................................. 15

1.4 Case Tools & Techniques ............................................................................. 16

CHAPTER 2 - DATABASE ANALYSIS ............................................................. 17

2.1 Statement of Purpose.................................................................................... 17

2.2 Requirements - User ..................................................................................... 17

2.4 General Interface Design.............................................................................. 18

2.4.1 Style & Layout ............................................................................................. 18

2.4.2 Data Security ............................................................................................... 18

2.4.3 System Security............................................................................................ 18

2.5 Analysis using Yourdon’s notation ............................................................. 19

2.5.1 Diagram Objects .......................................................................................... 19

2.5.2 Process ......................................................................................................... 19

2.5.3 Entity............................................................................................................ 19

2.5.3 Data Flow .................................................................................................... 20

2.5.4 Data Store .................................................................................................... 20

2.6 Context Diagram........................................................................................... 21

2.6.1 Events List.................................................................................................... 21

2.7 Data Flow Diagrams (DFDs)........................................................................ 22

2.7.1 Top Level Data Flow Diagram (DFD) ....................................................... 22

2.8 Low Level Data Flow Diagrams (DFD’s).................................................... 23

2.8.1 Process 1.1 “Student Submits Timesheet”. ................................................ 23

2.8.2 Process 1.2 “Student Requests Holiday”.................................................... 24

vii

2.8.3 Process 1.3 “Student Suffers Sickness”. .................................................... 25

2.8.4 Process 1.4 “WBL Admin Requests Login”. .............................................. 26

2.8.5 Process 1.5 “WBL Admin Imports Data”................................................... 27

2.8.6 Process 1.6 “WBL Admin Enters Timesheet”............................................ 28

2.8.7 Process 1.7 “WBL Admin Request Report”. .............................................. 29

CHAPTER 3 - DATABASE DESIGN .................................................................. 30

2.1 Database Functionality................................................................................. 31

2.2 Database Systems Development Lifecycle .................................................. 32

2.3 Logical Database Design............................................................................... 33

2.4 Data Dictionary ............................................................................................. 33

2.4.1 Entities ......................................................................................................... 33

2.4.2 Relationships ............................................................................................... 34

2.4.3 Attributes...................................................................................................... 35

2.5 Entity Relationship Diagram (ERD) ........................................................... 36

2.6 Logical Tables................................................................................................ 37

2.6.1 Create Tables ............................................................................................... 37

2.7 Physical Database Design............................................................................. 38

2.8 Physical Tables .............................................................................................. 38

2.8.1 Create Base Tables ...................................................................................... 38

2.9 Analysing Transactions ................................................................................ 40

2.10 Interface Design ............................................................................................ 41

2.10.1 Style & Layout ............................................................................................. 41

2.10.2 Data Security ............................................................................................... 41

2.10.3 System Security............................................................................................ 41

2.11 Page Designs .................................................................................................. 42

CHAPTER 4 - DATABASE IMPLEMENTATION ........................................... 43

4.1 Development Platform.................................................................................. 43

4.2 Table Implementation .................................................................................. 45

4.3 Form Implementation................................................................................... 46

4.3.1 Stored Procedure Import............................................................................. 47

4.3.2 Macro – Update/Append ............................................................................. 49

4.3.3 Macros – Create CSV.................................................................................. 53

4.4 Test & Evaluation Strategy.......................................................................... 55

4.4.1 Validation Testing ....................................................................................... 55

viii

4.4.2 User Testing................................................................................................. 57

4.4.3 Developer Testing ........................................................................................ 57

CHAPTER 5 - CONCLUSIONS............................................................................. 59

5.1 CRITICAL REVIEW of PROJECT DELIVERABLES........................... 59

5.1.1 INTRODUCTION ....................................................................................... 59

5.1.2 SYSTEMS ANALYSIS ................................................................................ 59

5.1.3 SYSTEMS DESIGN .................................................................................... 59

5.1.4 SYSTEMS IMPLEMENTATION .............................................................. 59

5.1.5 CRITICAL REVIEW .................................................................................. 60

5.2 CRITICAL REVIEW of PROJECT........................................................... 60

5.2.1 PROJECT GOALS ...................................................................................... 60

5.2.2 PROJECT ACHIEVEMENTS ................................................................... 60

5.2.3 PROJECT REFLECTION.......................................................................... 60

5.3 CRITICAL REVIEW of PRODUCT.......................................................... 61

5.3.1 PRODUCT GOALS..................................................................................... 61

5.3.2 PRODUCT ACHIEVEMENTS .................................................................. 61

5.3.3 PRODUCT EVALUATION ........................................................................ 63

5.3.4 PRODUCT REFLECTION ........................................................................ 64

5.4 CRITICAL REVIEW of PERSONAL DEVELOPMENT ....................... 64

CHAPTER 6 - RECOMMENDATIONS ............................................................... 66

6.1 Late Timesheet Warning.............................................................................. 66

6.2 Period of Sickness Warning ......................................................................... 66

6.3 Holidays not Accrued Warning ................................................................... 66

6.4 Holiday Entitlement Warning ..................................................................... 66

REFERENCES.............................................................................................................. 67

APPENDIX A SPECIFICATION......................................................................... 68

APPENDIX B WORK BASED LEARNING TIMESHEET.............................. 70

APPENDIX C SELF-CERTIFICATION OF ABSENCE .................................. 71

APPENDIX D HOLIDAY BOOKING FORM.................................................... 72

APPENDIX E DEVELOPMENT SCHEDULE PLAN ...................................... 73

APPENDIX F BCS CODE OF CONDUCT ........................................................ 74

APPENDIX G DATA DICTIONARY: ENTITIES............................................. 77

APPENDIX H DATA DICTIONARY: RELATIONSHIPS............................... 78

APPENDIX I DATA DICTIONARY: ATTRIBUTES.......................................... 79

ix

APPENDIX J LOGICAL: CREATE TABLES..................................................... 84

APPENDIX K PHYSICAL: CREATE BASE TABLES.................................... 86

K.1 Base table for dbo.Student ........................................................................... 86

K.2 Base table for dbo.Enrolment ...................................................................... 87

K.3 Base table for dbo.Sickness .......................................................................... 88

K.4 Base table for dbo.Holiday........................................................................... 89

K.5 Base table for dbo.EMA ............................................................................... 90

K.6 Base table for dbo.Travel ............................................................................. 91

K.7 Base table for dbo.TimesheetAttendance ................................................... 92

K.8 Base table for dbo.MarkType ...................................................................... 92

K.9 Base table for dbo.Staff ................................................................................ 93

K.10 Base table for dbo.Supervisor...................................................................... 93

APPENDIX L PAGE DESIGNS........................................................................... 94

L.1 WBL Timesheet Database - Home page ..................................................... 94

L.2 WBL Timesheet Database – Timesheet Entry page .................................. 94

L.3 WBL Timesheet Database – Student Sickness page .................................. 95

L.4 WBL Timesheet Database – Student Holiday page ................................... 95

L.5 WBL Timesheet Database - Reports page .................................................. 96

APPENDIX M SQL TABLES................................................................................ 97

M.1 SQL table of dbo.Student ............................................................................. 97

M.2 SQL table of dbo.Enrolment........................................................................ 98

M.3 SQL table of dbo.Sickness............................................................................ 98

M.4 SQL table of dbo.Holiday............................................................................. 99

M.5 SQL table of dbo.EMA................................................................................. 99

M.6 SQL table of dbo.Travel ............................................................................. 100

M.7 SQL table of dbo.TimesheetAttendance ................................................... 100

M.8 SQL table of dbo.MarkType...................................................................... 101

M.9 SQL table of dbo.Staff ................................................................................ 101

M.10 SQL table of dbo.Supervisor...................................................................... 102

APPENDIX N ENROLMENT STORED PROCEDURE................................. 103

APPENDIX O VB IMPORT................................................................................ 104

APPENDIX P USER GUIDE.............................................................................. 105

APPENDIX Q VALIDATION TESTING.......................................................... 113

APPENDIX R USER TESTING ......................................................................... 114

x

CHAPTER 1 - INTRODUCTION

Hartlepool College of Further Education is a medium sized further education college

with an annual enrolment of approximately 8,000 students. Within Hartlepool College

there is the division of Work-based Learning (WBL) which incorporates Apprentice

programmes; Entry to Employment programmes, Work-based Learning for Adults

(WBLA) and New Opportunities programmes.

“The profile of WBL has never been higher, and never has the need for it been

greater. There are now more apprentices in learning than ever, and more than

ever are gaining their National Vocational Qualification (NVQ) and achieving

their full framework. Entry to Employment (E2E) is in its fourth successful

year, and record numbers of young people are progressing into WBL, further

education (FE) and jobs. This high profile and these successes put WBL under

the spotlight and increase pressures on the budget.”

([1] – Requirements for Funding Work-based Learning 2007/08, Page 2)

The timesheet system used by the

work based learning team currently is

all paper based. Students submit one

timesheet per week which are then

logged on a chart in a file. Figure 1.1

shows an example of the current

paper based timesheet used to record

students’ timesheet attendance. To

view a full size example timesheet,

please refer to Appendix B.

Figure 1.1 WBL Timesheet

8

This chart is then monitored by a member of the work based learning team for any

timesheets that have yet to be submitted or any that have been submitted late. After a

number of late timesheet submissions, students could have their Education Maintenance

Allowance (EMA) payments stopped as a result of this. In order for the payments to be

processed a member of the work based learning team manually enters each student onto

the EMA website. EMA can give students up to £30 per week to help with the costs of

staying in learning after they leave school. The money is paid directly into the student’s

bank account, which then allows them to use it to pay for whatever they want such as

books or equipment etc, further details of EMA can be found at EMA: Directgov –

Education and learning, http://ema.direct.gov.uk/ema.html [2].

As well as recording timesheets the work

based learning team record student

sickness and holidays. If a student has a

period of sickness of up to 5 working

days they are required to complete a Self-

Certification form, an example is shown

in Figure 1.2. This process is also paper

based and is again monitored by a WBL

administrator and checked for any

continuous periods of sickness as any

student who is absent for more than 5

working days is requested to provide a

sick note from their doctor. To view a

full size Self-Certification of Absence

form, please refer to Appendix C.

Figure 1.2 Self-Certification of Absence

9

When students want to request

holidays they do so by completing a

Holiday Booking form giving a

minimum of 7 days notice as shown in

Figure 1.3. Students accrue two days

holiday per calendar month, therefore

student holiday entitlement needs to be

monitored to check how many days

holiday a student may have left as a

student may submit a holiday request

form but not actually have enough

holidays to cover it. To view a full

size Self Certification form, please

refer to Appendix D.

Figure 1.3 Holiday Booking Form

This is obviously a very bureaucratic way of recording such data and makes reporting

for example an impossible task. The work based learning team therefore require a

system to allow them to record electronically student timesheet information on a weekly

basis. The system must recognise if timesheets are submitted late and also determine as

to whether a student is to be paid EMA, Travel, both or neither.

The timesheet database is intended to link to PICS, the WBL Management Information

System (MIS) and from this import any new work based learning students into the

timesheet database that don’t already exist avoiding the need to enter them manually.

The timesheet database is to be created using a relational Database Management System

(DBMS) known as SQL Server together with a Microsoft Access front end application.

10

The structure of this report is intended to cover every aspect of design that the timesheet

database will need in order for it to be developed. The report has been designed to

study the feasibility and the need for a WBL Timesheet database. The following

headings make up the structure of the report and each provides a brief explanation of its

content:

• Introduction – The introduction explains the background to the project and

provides an overview of the existing practices and procedures, project aims and

objectives, standards and procedures and methodologies that will be followed.

• Database Analysis – The analysis section provides an explanation of the

analysis that was undertaken using Yourdon’s notation and also the user

requirements.

• Database Design – The design section provides an explanation of the design

process used which was “The Database System Development Lifecycle” by

Database Solutions, A step-by-step guide to building databases, [3].

• Database Implementation – The implementation section provides an

explanation into how the timesheet database was implemented.

• Critical Review – This section of the report provides a critical review of the

project deliverables, project goals, achievements and reflection together with a

critical review of the product to be implemented and finally a critical review of

the personal development.

• Recommendations – Suggested recommendations on any future system

enhancements.

• References – Reference material used to help produce the project report.

Appendices - Provides in-depth information of items referenced in the body of the

report.

1.1 Development Strategy A development strategy plan is to be put in place in the form of a Gantt chart to enable

all project tasks to be completed within their allocated timescales. The Project

Development Strategy can be viewed in Appendix E.

11

1.2 Project Aims and Objectives The aim of the project is to build a system that can record, monitor and report on the

attendance of Work Based Learning (WBL) students and provide accurate and timely

information to enable Education Maintenance Allowance (EMA) and travel funds to be

paid promptly.

The objectives are as follows:

• To enable the submission of student timesheets to be processed and

recorded in a more accurate and efficient way.

• To provide a more effective way of processing and recording student

holiday requests and to know instantly if the student has the holiday

entitlement to cover the request.

• To provide a more effective way of processing and recording student

sickness and to instantly know if the student needs to provide or

complete further documentation i.e. Self Certification form.

• To only allow the relevant members of staff to access the WBL

Timesheet database and its data using a secure login and password.

• To import work based learning students from the college’s WBL

Management Information System (MIS) into the WBL Timesheets

Database that don’t already exist, avoiding the need to enter them

manually.

• To provide a fast and efficient way of generating management reports.

• To enable admin staff to generate accurate and prompt payments to

students for Education Maintenance Allowance (EMA) and Travel on a

weekly basis.

12

1.3 Standards and Procedures

1.2.1 British Computer Society (BCS) - Code of Conduct To ensure this project meets the required professional standards, the BCS Code of

Conduct will be followed throughout. To view in full the BCS Code of Conduct, please

refer to Appendix F.

1.2.2 Ethical Issues Certain ethical issues need to be taken into consideration throughout the project and

when implementing the timesheet database. The affected administration staff will need

to be trained to enable the system to process efficiently. As the system is to hold

student personal information the project will follow strictly The Data Protection Act

1998. The Data Protection Act contains eight Data Protection Principles. The act states

that all data must be:

1 Processed fairly and lawfully

2 Obtained and used only for specified and lawful purposes

3 Adequate, relevant and not excessive

4 Accurate and where necessary, kept up to date

5 Kept for no longer than necessary

6 Processed in accordance with the individuals rights (as defined)

7 Kept secure

8 Transferred only to countries that offer adequate data protection

13

1.3 Methodology

1.3.1 Systems Development A system should be built through the process of a structured methodology. The systems

development of a project involves the construction and maintenance of a computer

system through its lifecycle. The Waterfall methodology as shown in Figure 1.4 is

sometimes considered to be the classic approach to the systems development lifecycle.

It defines a distinct set of steps for each phase of the development. More information

on the Waterfall model can be accessed from Systems Development,https://outranet.

scm.tees.ac.uk /users/u0000706/HND_SAD/sad_01%20Systems%20

Development%20Life%20Cycle.ppt, [4].

The project overall will aim to follow the Waterfall model as a guide to carrying out the

analysis, design and implementation stages of the project.

Systems Analysis

Systems Design

Systems Implementation

System Testing

Figure 1.4 The Waterfall Model

14

1.3.2 Analysis Methodologies To undertake the analysis stage of the project the methodology used was Yourdon.

Both Data Flow Diagrams (DFD’s) and Entity Relationship Diagrams (ERD’s) were

used to help with the development of the timesheet database.

Other sources of information were also used to help with the analysis of the project such

as internet websites and academic books. As the timesheet database is to have a SQL

Server backend and a Microsoft Access front end application an investigation needed to

be carried out to determine whether or not the two combined could in actual fact allow

the system to be developed with all the required functionality needed for it to work

effectively.

1.3.3 Design Methodologies To enable the development of a more powerful and more efficiently built system it was

decided that the methodology to be used for the design stage of the project would be

“The Database System Development Lifecycle” from Database Solutions, A step-by-

step guide to building databases, [3], p 78.

The methodology is aimed at relational database management systems and is divided up

into two phases. The first, a conceptual/logical database design phase, supports the

development of a model it is intended to represent while ignoring the implementation

details. The second, a physical database design phase, provides guidance in deciding

how to realise the implementation in the target database management system, as

previously mentioned is SQL Server. The notation used to support the methodology is

the class diagram notation from the latest object-orientated modelling language called

UML, short for Unified Modelling Language.

1.3.4 Implementation Methodologies The implementation stage of the project was done as a series of stages in itself.

Meaning that certain parts of the database needed to be completed before moving on to

the next. If any problems arose throughout the implementation stage they had to be

addressed and corrected before the development could proceed.

15

1.4 Case Tools & Techniques To create the data flow diagrams used in Yourdon’s methodology a drawing tool called

Ascent was used and to create the entity relationship diagrams, Microsoft Office Viso

2007 was used.

16

CHAPTER 2 - DATABASE ANALYSIS

2.1 Statement of Purpose A database system to record the attendance, sickness & holidays of work based learning

students to ensure prompt and accurate payment of Education Maintenance Allowance

(EMA) and Travel on a weekly basis.

2.2 Requirements - User

• Must show timesheet information for each week.

• Notification required after two late timesheets.

• Notification required after four late timesheets.

• System must be able to distinguish between Education Maintenance

Allowance (EMA) and Travel and also whether the student is claiming

one or the other, both or neither.

• Must show individual periods of sickness.

• Notification required showing individual sickness periods e.g. > 5

working days.

• Notification required when a student has had 4 separate periods of

sickness.

• Notification required continuously after 4 separate periods of sickness.

• Must show individual holidays.

• Notification required for holidays not accrued as student is entitled to 2

per month.

• Notification required when a student has used all of their holiday

entitlement i.e. >24.

• Notification required continuously after all 24 holidays have been used

within the specified academic year.

17

2.4 General Interface Design

2.4.1 Style & Layout The style and layout of any user interface should be easy and pleasant to look at

meaning that it shouldn’t appear too busy or over crowded. Each screen the user visits

should follow a consistent style and layout with each screen only consisting of data or

information relevant to that specific subject/area. The user should be able to recognise

instantly where in the system they are, therefore the use of page headings or titles is

essential. The user should also be able to locate their way back to the home page easily.

Appropriate and consistent use of colours and font sizes should be used throughout the

system. Colours however should be used with caution as certain colours can affect the

way for example a person who is colour blind may see it. The contrast between

background colour and text colours or images can make a good system very irritating to

use as the readability can be very poor.

2.4.2 Data Security Data security is the way in which the data is accessed and used and also the actions

users can have on the system. Any system that requires the user to input data needs to

deal with the accuracy and validation of the data being entered. Therefore all systems

should have some form of integrity constraints built in to prevent the user from

inputting obscure or irrelevant data. The database should be created to protect the data

for example if the data is to be read-only thus not allowing the user to modify certain

types of data in any way, Information Systems Security, [5], p 13.

2.4.3 System Security System Security is the way in which the user can access and use the data at the system

level. Any system that holds sensitive or personal data about something or someone

should be protected with some form of security feature. A username and password is

the first step in securing data, from this, levels of authorization and permission can be

granted against each user to identify what they are able to do within the system,

Database Security, [6], p 23.

18

2.5 Analysis using Yourdon’s notation To help with the analysis phase of the project a Context Diagram and Data Flow

Diagrams (DFD’s) were used in Yourdon’s notation. The Context Diagram is the first

phase in Yourdon’s notation which explains the main processes that would take place in

the database. The Data Flow Diagrams provide a more in-depth view of processes from

the context diagram. They not only explain where the process of information may come

from but also where the information is to be stored within the database.

2.5.1 Diagram Objects The objects used to create the diagrams used in Yourdon’s notation all represent

important parts of the database. The following provides a brief explanation of what

they represent.

2.5.2 Process

The ‘Process’ symbol or otherwise know as

the Data Transform object represents the

processes which must take place inside the

system.

Figure 2.1 Process

2.5.3 Entity

The ‘Entity’ symbol or otherwise known as

the Terminator object has an input into the

system or receives output from it. The

entity does not however exist within the

system itself.

Figure 2.2 Entity

19

2.5.3 Data Flow

The ‘Data Flow’ symbol represents the

direction and destination of the data

flowing within the database.

Figure 2.3 Data Flow

2.5.4 Data Store

The ‘Data Store’ symbol represents where

the different types of data are stored over

time within the database.

Figure 2.4 Data Store

The above data flow diagram symbols and information regarding Yourdon’s notation

can be viewed in greater detail from Systems Development,https://outranet.scm.tees

.ac.uk/users/u0000706/HND_SAD/sad_01%20Systems%20Development%20Life%20Cy

cle.ppt, [4].

20

2.6 Context Diagram

Figure 2.5 Context Diagram

The context diagram shown in Figure 2.5 is a basic overview of the processes and

events that are to exist in the WBL Timesheet database. The following events list

provides a short but precise explanation of each of the above processes.

2.6.1 Events List

1. Student submits timesheet.

2. Student requests holiday.

3. Student suffers sickness.

4. WBL Admin request login.

5. WBL Admin import data.

6. WBL Admin enters timesheet.

7. WBL Admin requests report.

21

2.7 Data Flow Diagrams (DFDs)

2.7.1 Top Level Data Flow Diagram (DFD)

Figure 2.6 Top Level Data Flow Diagram

The Top Level Data Flow Diagram shown in Figure 2.6 is an exploded view of the

context diagram and provides a more detailed overview of the processes that are to exist

within the database. WBL administrators must first login into the database before they

can process any type of transaction. The first transaction the WBL staff will generally

carry out is the import of any new WBL students. Students will submit manual

timesheets to the WBL office where they will be collected and electronically processed

by a member of the WBL admin team. The validation of each student needs to be

checked which will be built into the database as only existing students can have their

timesheets processed.

Students may report periods of sickness to the WBL staff that will automatically

validate the student exists before processing. This will consequently notify the member

of staff if the student in question needs to provide further documentation to support their

period of sickness. Students may also request holidays to be taken from their allocated

entitlement. A validation check is again carried out which ensures the student exists

and also checks if the student has the correct amount of holiday entitlement left to cover

22

the request. On receipt and conditions of the submission of timesheets, students may

receive EMA and/or Travel payments on a weekly basis.

2.8 Low Level Data Flow Diagrams (DFD’s) The following Data Flow Diagrams provide a more in depth view of the processes

shown in the above Top Level Data Flow Diagram.

2.8.1 Process 1.1 “Student Submits Timesheet”.

Figure 2.7 Low Level DFD – Student Submits Timesheet

Students submit their timesheets on a weekly basis. All new timesheets are then filed in

the relevant data store to be processed. Travel and/or EMA are paid to the appropriate

student(s).

23

2.8.2 Process 1.2 “Student Requests Holiday”.

Figure 2.8 Low Level DFD – Student Requests Holiday

A student requests a holiday by submitting the relevant holiday request form. The work

based learning administrator will check the system to validate that the student is an

existing student. Depending upon the student having the correct amount of holidays

required for the holiday request, the request will either be accepted or rejected by the

work based learning administrator. All holiday requests are processed and stored in the

relevant data store.

24

2.8.3 Process 1.3 “Student Suffers Sickness”.

Figure 2.9 Low Level DFD – Student Suffers Sickness

When students suffer a sickness they inform the work based learning administrator who

will first check the system to validate the student exists and secondly will log the

sickness against the students’ record. From this information the system will inform the

administrator if the student is required to complete a Self Certification form or supply a

sick note from their doctor.

25

2.8.4 Process 1.4 “WBL Admin Requests Login”.

Figure 2.10 Low Level DFD – WBL Admin Requests Login

A work based learning administrator makes a request to login to the system. Depending

upon the administrators’ login details the request will either be accepted or rejected. If

the administrator is an existing user then the system will retrieve their details from the

‘Admin Users’ data store. If the administrator is a new user then they must be allocated

a username and password before they can proceed.

26

2.8.5 Process 1.5 “WBL Admin Imports Data”.

Figure 2.11 Low Level DFD – WBL Admin Imports Data

On a daily basis the work based learning administrator must import any new work based

learning students into the database. If successful then any new students will be stored in

the ‘Student Details’ data store. If unsuccessful then the administrator will be informed

of this.

27

2.8.6 Process 1.6 “WBL Admin Enters Timesheet”.

Figure 2.12 Low Level DFD – WBL Admin Enters Timesheet

Student timesheets are entered on a daily basis. The manual timesheets are collected for

processing and students are checked to validate they exist in the system. The

administrator will receive a warning if any student needs further investigation.

28

2.8.7 Process 1.7 “WBL Admin Request Report”.

Figure 2.13 Low Level DFD – WBL Admin Requests Report

Work based learning administrators request all reports in this process. Reports such as

holiday reports, sickness reports, student reports, attendance reports can all be requested

from this process.

29

CHAPTER 3 - DATABASE DESIGN

This chapter focuses on the design of the timesheet database and as previously

mentioned the methodology used to create this phase of the Database Management

System (DBMS) was “The Database System Development Lifecycle” by Database

Solutions, A step-by-step guide to building databases, [3].

“The process of creating a design for a database that will support the

enterprise’s/user’s operations and objectives.”

([3] – Database Solutions, A step-by-step guide to building databases, Page 21)

A database is considered to be a collection of related data and the database management

system is the software that manages and controls access to the database, where as a

database system is considered to be a collection of application programs that

communicate with the database along with the DBMS.

A database can be defined as:

“A database is a complex object for storing structured information, which is

organized and stored in a way that allows quick and efficient retrieval.”

([10] – SQL Server and ADO Programming – Complete, Page 4)

A Database Management System (DBMS) can be defined as:

“A software system that enables users to define, create, and maintain the

database and also provides controlled access to the database.”

[3] – Database Solutions, A step-by-step guide to building databases, Page 8)

A DBMS allows the user to update, insert, delete and retrieve data from a database,

providing a central storage place for data and also allowing the DBMS to provide a

general inquiry facility to the data, called SQL query language.

30

2.1 Database Functionality The timesheet database is to adopt a Microsoft Access Client/Server Application

configuration architecture, more traditionally known as the 2-Tier structure which is

represented in Figure 3.1. It uses Microsoft Access converted to a Microkernel

Development Environment (MDE) format for deployment that connects to an Open

Database Connectivity (ODBC) or ActiveX Data Objects (ADO) compliant data store.

A 2-Tier structure consists of a primary tier that incorporates the presentation logic

which is a user interface that displays data to the user together with the business logic

which is data validation, ensuring it is 100% accurate before adding it to the database.

The secondary tier contains all the data access logic which is the database

communication for accessing the tables etc, more information on the 2-Tier model can

be sought from Microsoft Belgie & Luxemburg,http://www.microsoft.com/belux/msdn

/nl/community/ columns/hyatt/ntier1.mspx, [7].

.

Figure 3.1 A representation of 2-Tier Architecture

Database design is crucial for the system to be accepted by the end user as a poorly

designed database can lead to serious errors with potential repercussions for the

organisation and the timesheet database is no exception.

31

2.2 Database Systems Development Lifecycle The Database Systems Development Lifecycle (DSDLC) came about due to what was

termed as the ‘software crisis’ in the late 1960’s and is still used today. The dramatic

increase in the number of software applications being developed from small to large

complex databases became incredibly hard to maintain and the effort that went in to

maintaining them began to consume huge amounts of resources. The introduction of a

structured approach to the development of software was proposed which is more

commonly known as the information systems (IS) lifecycle or the software development

lifecycle (SDLC), Database Solutions, A step-by-step guide to building databases, [3].

There are several phases to the database systems development lifecycle but for the

purpose of this project the phases used where the Logical Database Design and Physical

Database Design phases. The logical and physical design stages of the model both

represent the development of an individual part of the system.

Logical Database Design

Physical Database Design

Figure 3.2 Database Systems Development Lifecycle

32

2.3 Logical Database Design Logical database design can be defined as:

“The process of constructing a model of the data used in an organisation based

on a specific data model, but independent of a particular DBMS and other

physical considerations”.

([3] – Database Solutions, A step-by-step guide to building databases, Page 192)

The logical database design phase focuses on building a logical representation of the

database, which includes identifying the important entities and relationships and then

translating this representation into a useable set of database tables.

Logical database design consists of two phases. The first involves the creation of an

Entity Relationship (ER) model which will then be checked for any possible

redundancy. The following data dictionary explains the process of identifying the

relevant entities and relationships needed to create the model.

2.4 Data Dictionary

2.4.1 Entities The first step to creating the ER model required the identification of the important user

objects. These user objects are the entities for the model, they where identified by

looking at the user requirements list and where represented in the form of data stores in

the analysis chapter of the project. Table 1.1 is an example of the ‘Student’ entity and

Figure 3.3 is the represented data store. To view a complete description of the entities

identified, refer to Appendix G.

Table 1.1 Student Entity Entity Name Description Aliases Occurrence

Student General term describing all

students enrolled at HCFE.

Student Each student is

enrolled on a course.

33

Figure 3.3 Student Data Store

2.4.2 Relationships After identifying the entities the next step was to identify the relationships that would

exist between the entities. The relationships were identified again by looking at the user

requirements list. This phase also involved specifying the multiplicity of each

relationship. Multiplicity requires constraints that are used to check and maintain the

quality of the data. Using multiplicity constraints in a model clearly represents the

meaning of a relationship and therefore provides a better representation of the model.

Table 1.2 is an example of the ‘Student’ entity which shows the relationships that were

identified. Refer to Appendix H for a complete view of the relationships identified.

Table 1.2 Student Entity - Relationships Entity Multiplicity Relationship Multiplicity Entity

Student

1..1

1..1

1..1

1..1

1..1

1..1

IsEnrolledTo

Suffers

Requests

IsPaid

Receives

Submits

1..*

0..*

0..24

0..*

0..*

1..*

Enrolment

Sickness

Holiday

EMA

Travel

TimesheetAttendance

34

2.4.3 Attributes When the entities and relationships had been identified the next step involved three

steps of its own, associate attributes with the appropriate entities and relationships,

determine attribute domains, and finally determine primary key attributes. Attributes

are the types of facts about entities and relationships, in other words, asking the question

of “What information is required to be held in the database?”

A domain can be defined as:

“A domain is a pool of values from which one or more attributes draw their

values”

([3] – Database Solutions, A step-by-step guide to building databases, Page 209)

A primary key is a key in the database that is unique for each record. It is a unique

identifier e.g. a person’s National Insurance Number. Table 1.3 is a shortened view of

the ‘Student’ entity showing the attributes, attribute domains and the primary key

attributes that were identified. Refer to Appendix I for a complete view of the attributes

identified.

Table 1.3 Student Entity - Attributes Entity Attributes Description Data type &

length Null Primary Key

Student StudentDetailID

AcademicYearID

RefNo

Title

Surname

FirstForename

OtherForenames

DateOfBirth

Sex

Address1

Address2

Address3

Address4

Uniquely identifies a student

Specifies the Academic Year

Student Reference No

Students Title

Students Surname

Students First Forename

Students Other Name

Students Date of Birth

Students Gender

No. & Street of student add

Town of student add

County of student add

Address 4 of student add

int

char(5)

char(12)

char(5)

varchar(40)

varchar(20)

varchar(30)

smalldatetime

char(1)

varchar(50)

varchar(50)

varchar(50)

varchar(50)

NO

YES

YES

YES

YES

YES

YES

YES

YES

YES

YES

YES

YES

StudentDetailID

35

2.5 Entity Relationship Diagram (ERD) The Entity Relationship (ER) model shown in Figure 3.4 provides an overall view of the

WBL Timesheet Database. The ER model has been developed through identification of

the important entities and relationships using the data dictionary.

Figure 3.4 Entity Relationship Diagram

36

2.6 Logical Tables The second phase of logical database design involved the creation of a set of tables for

the ER model to represent the entities, relationships, attributes and constraints. The

structure of each of the tables has been developed using the information described in the

ER diagram and data dictionary documentation.

2.6.1 Create Tables To help describe the structure of the tables for the database in a clear and precise

manner, a Database Design Language (DBDL) was used. This DBDL first of all

involved providing a name for each table, followed by the names of the table attributes.

The primary and foreign keys for each table were specified and for each foreign key, the

table containing the referenced primary key was also specified.

Table 1.4 is an example of the ‘Student’ table created to represent the entities,

relationships, attributes and constraints from the ER model. To view the complete set of

tables, refer to Appendix J.

Table 1.4 Logical view of Student table Student (StudentDetailID, AcademicYearID, RefNo, Title,

Surname, FirstForename, OtherForenames, DateOfBirth, Sex, Address1, Address2, Address3, Address4, PostcodeOut, PostcodeIn, Tel1, Tel2, MobileTel, NI, Contact1, ContactTel1, EthnicGroupID, EGDescription, EmployerID, EmployerName, EmpAddress1, EmpAddress2, EmpAddress3, EmpAddress4, EmpPostcodeOut, EmpPostcodeIn, EmpWorkTel, CountryID, CDescription, DisabilityID, DisDescription, LearningDifficultyID, DifDescription, Cohort, CohortStartDate, TravelNo)

Primary Key StudentDetailNo Foreign Key TravelNo references Travel(TravelNo)

37

2.7 Physical Database Design Physical database design can be defined as:

“The process of producing a description of the implementation of the database

on secondary storage; it describes the base tables, file organizations, and indexes

used to achieve efficient access to the data, and any associated integrity

constraints and security restrictions.”.

([3] – Database Solutions, A step-by-step guide to building databases, Page 193)

The physical database design phase focuses on translating the logical database structure,

the entities, attributes, relationships and constraints into a physical database design to

which can then be implemented using the Database Management System (DBMS).

The physical design phase involved translating the tables created in the logical data

model into useable base tables that can be implemented into the timesheet database.

2.8 Physical Tables This step of the methodology involved the creation of the base tables identified in the

logical model.

2.8.1 Create Base Tables To help describe the structure of the base tables for the database an extended form of the

Database Design Language (DBDL) was used to define domains, null indicators,

primary keys and referential integrity constraints for any foreign keys.

Table 1.5 is a shortened example of the ‘Student’ table which defines domains, null

indicators and any primary/foreign key constraints. For further reference of all the base

tables created for the timesheet database, refer to Appendix K.

38

Table 1.5 Physical view of Student table CREATE TABLE [dbo].[Student](

[StudentDetailID] [int] IDENTITY(1,1) NOT NULL,

[AcademicYearID] [char](5) COLLATE Latin1_General_CI_AS NULL,

[RefNo] [char](12) COLLATE Latin1_General_CI_AS NULL,

[Title] [char](5) COLLATE Latin1_General_CI_AS NULL,

[Surname] [varchar](40) COLLATE Latin1_General_CI_AS NULL,

[FirstForename] [varchar](20) COLLATE Latin1_General_CI_AS NULL,

[OtherForenames] [varchar](30) COLLATE Latin1_General_CI_AS NULL,

[DateOfBirth] [smalldatetime] NULL,

[Sex] [char](1) COLLATE Latin1_General_CI_AS NULL,

[Address1] [varchar](50) COLLATE Latin1_General_CI_AS NULL,

[Address2] [varchar](50) COLLATE Latin1_General_CI_AS NULL,

[Address3] [varchar](50) COLLATE Latin1_General_CI_AS NULL,

[Address4] [varchar](50) COLLATE Latin1_General_CI_AS NULL,

[SupervisorID] [int] NULL,

[HolEntitlement] [char](3) COLLATE Latin1_General_CI_AS NULL,

[SickEntitlement] [char](3) COLLATE Latin1_General_CI_AS NULL,

CONSTRAINT [PK_Student] PRIMARY KEY CLUSTERED

(

[StudentDetailID] ASC

)WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY],

CONSTRAINT [FK_Student_Supervisor] FOREIGN KEY

(

[SupervisorID]

) REFERENCES [SupervisorID]

),

CONSTRAINT [FK_Student_Travel] FOREIGN KEY

(

[TravelNo]

) REFERENCES [TravelNo] (

[TravelNo]

)

) ON [PRIMARY]

GO

39

2.9 Analysing Transactions In order to carry out the physical design stage of the methodology effectively, a good

understanding of the transactions that are expected to run on the database is essential. It

would be far too time consuming to be expected to analyse every database transaction,

but trying to analyse the most important ones would prove beneficial.

To analyse the most important transactions to be run on the database, a

Transaction/Table Cross-Reference Matrix was used. Table 1.6 shows the table using

the following entry/update/delete, and retrieval queries:

(a) Import new Work Based Learning (WBL) students.

(b) Enter student timesheet information.

(c) Process student holiday request.

(d) Process student sickness.

(e) List all late timesheets.

Table 1.6 Cross-Reference Matrix

Transaction/ Table

(a) (b) (c) (d) (e)

I R U D I R U D I R U D I R U D I R U D

Student X X X X X Enrolment X Sickness X X Holiday X X X X X X EMA Travel T. Attendance X X X X X Mark Type X X Staff Supervisor

I=Insert; R=Read; U=Update; D=Delete

40

2.10 Interface Design

2.10.1 Style & Layout The aesthetics of a database management system are just as import as any website but

should focus not on how creative or artistic it looks but more on the layout and how user

friendly it is. As mentioned earlier in the report about the general requirements of any

user interface, the timesheet database will follow a consistent style and layout

throughout. Each page created in the application will only contain data relevant to its

subject to avoid the pages becoming over busy with too much information. Each page

will clearly identify itself with the use of page titles, the pages will also be designed to

ensure the user cannot get lost by opening up too many pages at one time.

Again as mentioned previously the use of colours and font sizes should be used

consistently throughout any system, therefore the timesheet database will follow a strict

selection of colour and font sizes. The colours to be used will aim to follow the colours

used on the college’s logo to remain in keeping with the college’s theme.

2.10.2 Data Security The security of the data entered and stored in the timesheet database will be dealt with

mainly in the creation of the base tables in SQL Server in the form of integrity

constraints. However, certain fields in the database will need to be read-only to the user

and therefore will need to have the appropriate properties set within the access front-end

to prevent the user from modifying them in any way. The timesheet entry page will be

one of the pages the user is required to enter data, therefore security measures need to

be put in place to ensure only valid data is allowed to be entered and where necessary

the user will be forced to enter data into non-null data fields.

2.10.3 System Security The security for the database will be dealt with in SQL Server. Each user of the

timesheet database will be provided with a login and password together with the

appropriate permissions to access the database.

41

2.11 Page Designs The suggested design of the timesheet database has been attempted in the way of

Microsoft PowerPoint page designs. Figure 3.5 provides an insight into the expected

design of the main front page of the timesheet database. The background colours and

font colours will be used throughout to give a consistent look and feel to the database

using the same colours from the college’s logo. To obtain a complete view all the page

designs, please refer to Appendix L.

Figure 3.5 Expected design of WBL Timesheet Database

42

CHAPTER 4 - DATABASE IMPLEMENTATION

The implementation chapter of the report describes the major areas involved in the

implementation stage of the timesheet database. Although an adequate amount of time

was allocated to the analysis and design stage of the project, a considerable amount of

time and effort went into the implementation stage. Most of the complicated and time

consuming work went into developing the back-end of the database which from a user’s

perspective is basically invisible.

4.1 Development Platform It was required that the WBL Timesheet database be developed using SQL Server as the

back-end or primarily known as the database management system (DBMS) and the

front-end application created using Microsoft Access. To have a direct link to the SQL

Server table from within MS Access an ODBC (Open Database Connectivity) link was

created to do this. An ODBC link is created through the ODBC Data Source

Administrator stored on a local machine. To set up the connection you must first

provide the SQL Server in which to connect to as shown in Figure 4.1.

Figure 4.1 ODBC Data Source – Choose Server

43

The next step required a valid administrator’s Login ID and Password as shown in

Figure 4.2 in order to connect to the database using SQL Server authentication. Having

this ODBC link also meant that only authorised persons could access the database as the

user is prompted for a login and password. Users are given their own login and

password to access the database which are created in SQL Server and assigned the

relevant user permission. These are the two most important steps in setting up a

successful ODBC link.

Figure 4.2 ODBC Data Source – Enter login and password

Once the ODBC link is complete any SQL server table or view can then be linked

directly to MS Access using the Link Table Manager facility which can then be used in

the timesheet database.

44

4.2 Table Implementation The implementation of the database tables were done so using Microsoft SQL Server.

Figure 4.4 shows an example of the Student table and is represented in the form of data

stores (see Figure 4.3) which were previously described in more detail in the analysis

and design phase of the report. The data dictionary that was described in detail in the

design stage of the report contributed to the actual implementation of the SQL Server

tables as this provided all the necessary attributes, attribute domains, primary and

foreign keys or otherwise known in SQL as column name, data types, primary and

foreign key constraints. To view a complete set of database tables refer to Appendix M.

Figure 4.3 Student Data Store

Figure 4.4 Design view of the Student table

45

4.3 Form Implementation The forms created for the front-end application needed to provide the user with all the

necessary features to correctly enter student timesheet information quickly and

efficiently. The colour scheme as previously mentioned was designed to coincide with

Hartlepool College’s existing colour scheme shown on the HCFE logo.

The ‘Home’ page for the WBL Timesheet Database intended to provide a clear but

simple view of the options available to the user within the database as shown in Figure

4.5.

Import Students Button

Figure 4.5 Home page of the WBL Timesheet Database

The “Import Students” button shown above was created to enable the user to easily

import any new work based learning students from the WBL Management Information

System (PICs) to prevent the user from having to manually enter each new student. To

obtain the correct student and enrolment information from the management information

system a stored procedure was created in the SQL Server back-end database.

46

4.3.1 Stored Procedure Import To prevent the user from manually entering new work based learning students and their

enrolment information into the WBL Timesheet Database an import script was created

which could be run on a daily basis to capture any new student records.

CREATE PROCEDURE [dbo].[Student_Import] AS INSERT INTO WBLTimesheets.dbo.Student (StudentDetailID, AcademicYearID, RefNo, Title, Surname, FirstForename, OtherForenames, DateOfBirth, Sex, Address1, Address2, Address3, Address4, PostcodeOut, PostcodeIn, Tel1, Tel2, MobileTel, NI, Contact1, Contact1Tel, EthnicGroupID, EGDescription, EmployerID, EmployerName, EmpAddress1, EmpAddress2, EmpAddress3, EmpAddress4, EmpPostcodeOut, EmpPostcodeIn, EmpWorkTel, CountryID, CDescription, DisabilityID, DisDescription, LearningDifficultyID, DifDescription) SELECT SD.StudentDetailID, SD.AcademicYearID, SD.RefNo, SD.Title, SD.Surname, SD.FirstForename, SD.OtherForenames, SD.DateOfBirth, SD.Sex, SD.Address1, SD.Address2, SD.Address3, SD.Address4, SD.PostcodeOut, SD.PostcodeIn, SD.Tel1, SD.Tel2, SD.MobileTel, SD.NI, SD.Contact1, SD.Contact1Tel, SD.EthnicGroupID, EG.Description, SD.EmployerID, Org.[Name], Org.Address1, Org.Address2, Org.Address3, Org.Address4, Org.PostcodeOut, Org.PostcodeIn, Org.WorkTel, SD.CountryID, C.Description, SD.DisabilityID, Dis.Description, SD.LearningDifficultyID, Dif.Description FROM ProSolution.dbo.StudentDetail SD WITH (NOLOCK) INNER JOIN ProSolution.dbo.Enrolment E WITH (NOLOCK) ON SD.StudentDetailID = E.StudentDetailID LEFT OUTER JOIN ProSolution.dbo.EthnicGroup EG WITH (NOLOCK) ON SD.EthnicGroupID = EG.EthnicGroupID LEFT OUTER JOIN ProSolution.dbo.Organisation Org WITH (NOLOCK) ON SD.EmployerID = Org.OrganisationID LEFT OUTER JOIN ProSolution.dbo.Country C WITH(NOLOCK) ON SD.CountryID = C.CountryID LEFT OUTER JOIN ProSolution.dbo.Disability Dis WITH (NOLOCK) ON SD.DisabilityID = Dis.DisabilityID LEFT OUTER JOIN ProSolution.dbo.LearningDifficulty Dif WITH (NOLOCK) ON SD.LearningDifficultyID = Dif.LearningDifficultyID WHERE SD.StudentDetailID = E.StudentDetailID AND E.IsWBL = 'Y' AND NOT EXISTS (SELECT * FROM WBLTimesheets.dbo.Student S WHERE S.StudentDetailID = SD.StudentDetailID)

Figure 4.6 Stored Procedure for Student_Import

Figure 4.6 was created using a stored procedure, which is a set of pre-defined Transact-

SQL (the programming language of SQL Server) statements which are used to perform

specific tasks.

47

This stored procedure looks at the relevant tables within the Management Information

System (MIS) for any student(s) who are flagged as work based learning. The stored

procedure then looks at the relevant table within the timesheet database to see if the

student(s) already exist. If the student(s) does exist the stored procedure would

terminate. If however, the student(s) did not exist the stored procedure would continue

to import the fields defined within the INSERT INTO section of the stored procedure.

Figure 4.6 shows the Student_Import, to view the Enrolment_Import which imports the

students’ course information, refer to Appendix N.

To allow the user to execute the stored procedure easily from within the front-end

application (Microsoft Access 2003) a Command object was created, which would call

its Execute method to execute the command. This Command object contains the name

of the stored procedure known as the CommandText property which holds the statement

that is sent through the Object Linking and Embedding Database (OLE DB) provider to

the data source. The Command object also sets the ActiveConnection property which

refers to an existing connection that point to the WBL Timesheet database in SQL

Server. Further information regarding the Command object can be sought from SQL

Server and ADO Programming – Complete [8].

Private Sub cmdImportStudents_and_Enrolments_Click() Dim ADOCmd As New ADODB.Command Dim ADOError As ADODB.Error With ADOCmd .ActiveConnection = "Provider=SQLOLEDB.1;Server=YOUR-0CDC4F5844\SQLEXPRESS;Initial Catalog=WBLTimesheets;User ID=sa;Pwd=wbltimesheets" .CommandText = "Student_Import" .CommandType = adCmdStoredProc .Execute End With MsgBox "Students imported successfully!" End Sub

Figure 4.7 Visual Basic Code to execute Command object

Figure 4.7 shows the Visual Basic code that was created to execute the Command object

for “Student_Import”, to view the complete code, refer to Appendix O.

48

4.3.2 Macro – Update/Append The main purpose of the timesheet database was to enable the user to easily enter

student timesheet information and Figure 4.8 provides a screen shot of the implemented

timesheet entry form. This form was the most time consuming of the all the forms

created as this form needed to retrieve student data from one table but at the same time

allow the user to input new timesheet data and view existing timesheet data using other

tables.

Close Button

Figure 4.8 Timesheet Entry Form

Using the ‘On Exit’ property on the close button of the timesheet entry form quite a

complex ‘Macro’ was created to automatically import sickness and holiday information

into the respective sickness and holiday table. As further information was needed for

any sickness or holidays, separate forms were created to avoid the timesheet entry form

becoming over crowded.

49

The import macro on exiting the form would execute a number of steps which included

appending any new students into the Sickness/Holiday tables, append any new

sickness/holiday records and finally update any sickness/holiday records that had been

modified for any reason. The steps of the Macro are shown Figure 4.9.

Figure 4.9 Macro to Update/Append to Sickness & Holiday tables

50

A screen shot of the ‘Student Sickness’ form is shown in Figure 4.10. Further

information is required whenever a student suffers a period of sickness such as the

actual start and end date they were ill and also the reason for their sickness. The student

sickness entitlement is also recorded in this form.

Figure 4.10 Student Sickness Form

51

A screen shot of the ‘Student Holidays’ form is shown in Figure 4.11. Further

information is required whenever a student requests holiday leave such as the actual

start and end date and also the holiday needs to be authorised, this is usually by the

student’s tutor. The student holiday entitlement is also recorded in this form.

Figure 4.11 Student Holidays Form

52

4.3.3 Macros – Create CSV One of the requirements for the WBL Timesheet database was for the user to easily

produce a CSV (Comma Separated Values or sometimes called Comma Delimited) file

automatically for payment of student Travel. At present this process is very inefficient

and time consuming as the WBL admin staff have to manually enter students into an

Excel Spreadsheet every week which is then sent via email to the Finance department

for payments to be processed.

As student travel information is now processed the same time student timesheet

information is entered onto the timesheet database this requirement can now be

automated. To enable this process to become an automated feature within the timesheet

database it was decided that the use of a Macro would be the best option. To create a

Macro to process this task involved several steps.

The first step was to create a user view in SQL Server to find students who were to be

paid travel which is demonstrated in Figure 4.12.

CREATE VIEW vTravelPaymentSheet AS SELECT dbo.TimesheetAttendance.WeekNo, dbo.TimesheetAttendance.WeekCommencingDate, dbo.Student.TravelNo, dbo.Student.RefNo, dbo.Student.Surname + ' ' + dbo.Student.FirstForename AS Student, dbo.TimesheetAttendance.[Travel(£)], dbo.TimesheetAttendance.TravelNotes FROM dbo.Student LEFT OUTER JOIN dbo.TimesheetAttendance ON dbo.Student.StudentDetailID = dbo.TimesheetAttendance.StudentDetailID WHERE (dbo.TimesheetAttendance.IsTravel = 'TRUE')

Figure 4.12 SQL Server View for vTravelPaymentsheet

The view would then be linked into MS Access to be used in the next step of the Macro.

The next step was to create a query in MS Access using the SQL view that would link

directly to a form that would require the user to enter a ‘Week Commencing Date’ to

ensure the report would only create a Travel Payment Sheet for the particular week

53

given. Secondly the query would need to make a table based on the results of the query

to be used as part of the Macro.

As the travel information needed to be exported into a CSV file a template table was

created that would provide a guide as to how the data would appear when it was

exported, to do this the Export Text Wizard in MS Access was used. Next a Visual

Basic Function was created as shown in Figure 4.13, which basically reads the input

file, “Preparation for Spreadsheet – Travel Payment Sheet” and creates a new file in the

correct format for an Excel Spreadsheet using “Spreadsheet Output – Travel Payment

Sheet”.

Function crefile2() Dim dbmyDB As Database Dim rsmyRS As Recordset Dim rs2outRS As Recordset Dim myField As Field Dim ingRecCount As Long Dim newstring As String Dim newref As String Set dbmyDB = CurrentDb Set rsmyRS = dbmyDB.OpenRecordset("Preparation for Spreadsheet - Travel Payment Sheet") Set rs2outRS = dbmyDB.OpenRecordset("Spreadsheet Output - Travel Payment Sheet") If rsmyRS.RecordCount <= 0 Then Exit Function rsmyRS.MoveLast ' count of records ingRecCount = rsmyRS.RecordCount rsmyRS.MoveFirst newstring = "WeekNo,W/C,TravelNo,RefNo,Student,Travel(£),TravelNotes" rs2outRS.AddNew rs2outRS("outputfield") = newstring rs2outRS.Update newstring = "" newref = rsmyRS("RefNo") newstring = rsmyRS("WeekNo") & "," & rsmyRS("W/C") & "," & rsmyRS("TravelNo") & "," & rsmyRS("RefNo") & "," & rsmyRS("Student") & "," & rsmyRS("Travel(£)") & "," & rsmyRS("TravelNotes") For i = 2 To ingRecCount rsmyRS.MoveNext If rsmyRS("RefNo") = newref Then newstring = newstring Else rs2outRS.AddNew rs2outRS("outputfield") = newstring rs2outRS.Update newstring = "" newref = rsmyRS("RefNo") newstring = rsmyRS("WeekNo") & "," & rsmyRS("W/C") & "," & rsmyRS("TravelNo") & "," & rsmyRS("RefNo") & "," & rsmyRS("Student") & "," & rsmyRS("Travel(£)") & "," & rsmyRS("TravelNotes") End If Next 'add final record rs2outRS.AddNew rs2outRS("outputfield") = newstring rs2outRS.Update End Function

Figure 4.13 Function in Visual Basic to generate Excel file format

54

Finally the TransferText and MsgBox actions were used in the Macro which provides

the location for where the file is to be saved and then provides the user with a message

to inform them of the location. The Macro is then assigned to the Travel Payment Sheet

report using the ‘On Click’ property for the user to generate automatically.

4.4 Test & Evaluation Strategy The purpose of testing is not only to test whether the system is providing all the

functionality required by the user but also to test for any errors the system may have.

The test and evaluation strategy for the timesheet database will be based on first testing

the individual components of the system and then the complete system as a whole.

These tests will be carried out using test plans together with documented results.

Various testing methods were carried out to each cover a different aspect of the system

functionality, which were Validation Testing, User Testing and Developer Testing. A

user guide was provided to the users during the testing phase of the WBL Timesheet

Database to assist them in using the database as required. To view the user guide,

please refer to Appendix P.

4.4.1 Validation Testing Validation testing was used to ensure the user was unable to enter irrelevant or

ambiguous data into the timesheet database. The user was asked to enter two new

timesheets into the timesheet entry form. The first entry they were ask to do was to

enter a week commencing date and week number but leave the attendance marks empty

and close the form. Figure 4.14 shows the error message the user would get if they tried

to close the form without completing one or all of the week’s attendance marks. The

‘MarkID’ fields in the dbo_TimesheetAttendance table in SQL have a NOT NULL

constraint and therefore will not allow the five days attendance marks to be empty.

55

Figure 4.14 Timesheet Entry Form – Testing NON-NULL fields

Secondly the user was asked to enter a week of attendances but instead of picking an

option from the attendance mark drop down box to enter a value other than 1- 8 i.e. 10.

Figure 4.15 shows the error message the user would receive if they entered a value into

the drop down box that wasn’t between 1 and 8.

Figure 4.15 Timesheet Entry Form – Testing data validation

The previous two examples and the rest of the validation testing can be viewed in

Appendix Q.

56

4.4.2 User Testing The user testing was a process that was completed at various stages throughout the

development. Allowing the user to be involved in the development proved beneficial as

any design decisions made were clarified by the user to avoid any unnecessary time

wasting. The main items that were included in the user testing documentation were

from the user requirements list defined in the analysis stage of the project, after all the

requirements list was what the user required as a minimum for the database to be a

complete useable system. A full list of the items used in the user testing can be found in

Appendix R.

4.4.3 Developer Testing Developer testing involved a number of operational and functional performance checks

before the system could be released to the users. The following questions were vital in

identifying any errors in the database’s performance and usability.

1 Are all the buttons shown on the main page of the WBL Timesheet

Database in use and working correctly?

No. The Maintenance and Help buttons are not in use, but will be completed as

a future enhancement. All other buttons work correctly.

Notes: The two remaining buttons will be completed as a future enhancement.

2 Is the user prompted for a SQL Server Login before accessing any private

or confidential student information?

Yes. Yes the user is prompted with a SQL Server Login before they are

allowed to access any information.

Notes: None

57

3 Are all the database forms designed to prevent the user from opening up

more than one form at a time i.e. every form opened must be closed before

another can be accessed?

Yes. Each form’s properties have been modified to restrict the user from

having multiple forms open at once.

Notes: None

4 Do all the reports, imports etc work quickly with minimal time delay?

Yes. All reports, imports etc have been tested and they all complete in seconds

which suggests the SQL Server database is executing the commands

efficiently.

Notes: None

58

CHAPTER 5 - CONCLUSIONS

5.1 CRITICAL REVIEW of PROJECT DELIVERABLES

5.1.1 INTRODUCTION The project specification fully describes what was required from the WBL Timesheet

Database which was to build a system that was able to record, monitor and report on the

attendance of Work Based Learning (WBL) students and to provide accurate and timely

information to enable Education Maintenance Allowance (EMA) and travel funds to be

paid promptly. A development strategy plan was put in place in the form of a Gant

chart which defines when each phase of the project was undertaken.

5.1.2 SYSTEMS ANALYSIS A systems analysis methodology was implemented and followed throughout to

successfully analyse the key stages in order to proceed to the design and implementation

stages of the project. However, analysing the choice of software application could have

been investigated further as Microsoft Access severely restricted the successfulness of

the system implementation.

5.1.3 SYSTEMS DESIGN A systems design methodology was implemented and followed throughout to obtain a

clear and focused view of the system to be implemented. It highlighted any flaws in the

design of the SQL tables which were quickly rectified to ensure the implementation

could run as smoothly as possible.

5.1.4 SYSTEMS IMPLEMENTATION The systems implementation was less successful as various problems were identified in

this stage which restricted certain requirements of the system being achieved to their

highest functionality. However the systems implementation demonstrates adequately

the steps taken to bring the system to its current state.

59

5.1.5 CRITICAL REVIEW The critical review of the ICA provided a brief but clear discussion of the achievements

of the project and stated any future developments that would transform the system into a

fully functional system.

5.2 CRITICAL REVIEW of PROJECT

5.2.1 PROJECT GOALS The project goal was to utilise the skills already gained through previous years and also

to develop new skills which would be required to help develop the system from

analysis, design through to implementation as well as managing time and

documentation effectively.

5.2.2 PROJECT ACHIEVEMENTS I feel I have utilised my skills gained from my years at the university which have

enabled me to produce project systems that will undoubtedly benefit what I hope will be

a long term career in the field of Information Technology (IT) and believe I have

achieved a good understanding in the management and documentation of IT projects.

5.2.3 PROJECT REFLECTION This project has proven a very worth while experience. It has shown me that what may

look like a fairly simple task to achieve can in fact be a very time consuming difficult

one. At the beginning of this project I would have considered my knowledge of SQL to

be at a very basic level which is probably fair to say that it has made the project more

difficult than I had initially anticipated. My knowledge of Microsoft Access however

has really surprised me. At the start of the project I would have considered my

knowledge to be of an adequate level to successfully develop the intended target system,

however in terms of creating a database for data entry this was largely underestimated.

60

5.3 CRITICAL REVIEW of PRODUCT

5.3.1 PRODUCT GOALS The product objective was to build a system that could record, monitor and report on the

attendance of Work Based Learning (WBL) students and to provide accurate and timely

information to enable Education Maintenance Allowance (EMA) and travel funds to be

paid promptly.

5.3.2 PRODUCT ACHIEVEMENTS The most important requirement that was expected from the WBL Timesheet Database

was to successfully show student timesheet information on a weekly basis and to enable

the user to enter student timesheets quickly and efficiently. This requirement has

achieved its objective with much hard work being devoted to it. This area of the system

produced various problems which resulted in other areas of the database receiving less

attention than what was required. As the timesheet entry form was designed as a sub

form within a main form a problem arose that wouldn’t allow the user to add

information into a table linked directly to SQL Server.

After much searching and investigating from books and the internet I came to the

conclusion that the version of SQL Server and Access I was using simply didn’t support

this type of functionality of adding data to a linked SQL table via a sub form. I

therefore had to create temporary tables in access which were used in the sub form and

then create an update/append query to get the data back into the relevant SQL Server

tables. This for several reasons was highly inefficient. It first of all seemed to make the

idea of a SQL Server back-end a pointless option if every time the user entered a

timesheet they had to run an update/append query. It also restricted what information

and actions could be created against the timesheet attendance table.

This problem however was resolved as the development of the database was coming to

an end. I realised in the dbo_TimesheetAttendance table in SQL Server that the primary

key field had not been set to an Identity field. In other words setting it as an identity

field would generate an ID number automatically instead of expecting the user to

provide one. This problem may seem such a small issue but as a result set the project

61

back a number of weeks which could have been avoided had my knowledge of SQL

been greater, on the other hand this little problem actually taught me a lot after days and

days of trying to find a solution to the problem.

Another important requirement was for students and their enrolment information to be

imported into the timesheet database but only if the student did not already exist. The

creation of a stored procedure that extracted the information from the Management

Information System was relatively simple to do. The connection string however that

was needed to enable the stored procedure to be called from within the Microsoft

Access front-end proved more difficult. The connection string which is only several

lines of the Visual Basic code became another contributor to the development of the

database being set back a number of weeks.

Again after much searching and investigating from books and the internet I eventually

found the problem. The connection string I was using initially was only compatible for

SQL Server 2000 and Microsoft Access 2000. The versions I was using were SQL

Server 2005 and Access 2003 which had a slight modification to the name of the

parameters used in the connection string. The modification made was from Data

Source to Server and Password to Pwd. Figure 5.1 shows both connection strings in

full and also the modifications made.

Old Connection String: .ActiveConnection = "Provider=SQLOLEDB.1;Data Source=YOUR-0CDC4F5844\

SQLEXPRESS;Initial Catalog=WBLTimesheets;User ID=sa;Password=wbltimesheets"

New Connection String: .ActiveConnection = "Provider=SQLOLEDB.1;Server=YOUR-0CDC4F5844\

SQLEXPRESS;Initial Catalog=WBLTimesheets;User ID=sa;Pwd=wbltimesheets".

Figure 5.1 Visual Basic code for New & Old Connection Strings

The above two problems were major contributors in to the reasons why some of the user

requirements were completed to a satisfactory level but will need considerable

improvement.

62

The following is a list of the user requirements that were mentioned previously in the

introduction which states whether or not they were achieved:

Table 5.1 User Requirements – Achieved/NotAchieved?

User Requirement

Achieved? Improvement

Needed?

Must show timesheet information for each week. √

Notification required after two late timesheets. √ √

Notification required after four late timesheets. √ √

System must be able to distinguish between Education

Maintenance Allowance (EMA) & Travel & also whether the

student is claiming one or the other, both or neither.

Must show individual periods of sickness. √

Notification required showing individual sickness periods e.g. > 5

working days.

Notification required when a student has had 4 separate periods

of sickness.

√ √

Notification required continuously after 4 separate periods of

sickness.

Χ √

Must show individual holidays. √

Notification required for holidays not accrued as student is

entitled to 2 per month.

√ √

Notification required when a student has used all of their holiday

entitlement i.e. >24.

√ √

Notification required continuously after all 24 holidays have been

used within the specified academic year.

Χ √

5.3.3 PRODUCT EVALUATION The end product has achieved what was expected from it in that the user is fully able to

enter a student timesheet on a weekly basis, easily identify if they are to receive EMA,

Travel, both or neither and successfully record and monitor student holiday and sickness

information.

63

5.3.4 PRODUCT REFLECTION Given the chance to implement such a system again I would not use Microsoft Access

as the front-end application. Access does not seem to provide a flexible user interface

as I felt I was very restricted in the way it allowed me to design and implement the

timesheet database. However the product has been an overall success in that it does

what the user initially requested and the only issue I have is with the front-end

application which works fine but by implementing the database with a more flexible and

dynamic front-end would have made the database appear much more professional.

5.4 CRITICAL REVIEW of PERSONAL DEVELOPMENT My previous year’s studies from HNC/D through to degree level have all contributed to

my ability to undertake this project. Many of the modules have played a key role in my

skills and personal development, some more than others. The following modules I feel

have been of particular value are:

• Advanced Database Applications

• Systems, Analysis and Design

• Principals of Visual Basic

• Database Development

• Individual Project 1 & 2

• Database Systems

• Advanced Database Systems

Advanced Database Applications have provided me with underlying knowledge

required to develop databases created using Microsoft Access and from that I am

continually improving my access skills from both university modules and my place of

work.

Systems, Analysis and Design (SAD) have provided me with the ability to model a

database system and take it through the development stages to producing a working

system. It has taught me the understanding and importance of implementing a

structured methodology to a database system which is vital for my long term

development skills. I have adopted a systems methodology, which will structure the

64

development of future projects. This methodology was supported by various data

models such as Data Flow Diagrams and Entity Relationship Diagrams, which has

undoubtedly proved to be a major factor in identifying the database performance

requirements.

Principles of Visual Basic provided me with the basic knowledge I needed and from that

I have continued to use the language in various other applications including this project.

Further development of my knowledge of Visual Basic however, has come from self

learning in the way of academic books etc.

Database Development provided me with my first encounter with SQL Server in

developing server based databases and from this I am continually improving my skills

through projects from both university and my place of work. Various other modules

such as my Individual Projects, Database Systems and Advanced Database Systems

have also helped in further developing my SQL skills together with modelling skill

techniques.

I feel my personal development skills in areas such as problem solving and

communication have given me the confidence to undertake such projects in the future as

I feel I have taken on a consultant role in working with a client to build a system and

working towards a defined set of goals.

My overall knowledge of database systems has increased significantly which has mainly

come from weeks and weeks of searching and investigating various forms of research

i.e. books, internet to obtain the answers and solutions needed to resolve my many

database problems. It has been a greatly rewarding experience and learning opportunity

that has resulted in me adopting a more valuable methodical approach to database

development.

65

CHAPTER 6 - RECOMMENDATIONS

The following recommendations have been identified as future developments for

various reasons such as time limitations and system complications.

6.1 Late Timesheet Warning To currently check on late timesheets a report was written to identify this. The

timesheet database would benefit greatly if a warning was to appear on the timesheet

entry form when a student has two late timesheets against his record. This way the user

can instantly know by looking at a student’s timesheets if there is a problem which

could affect their Education Maintenance Allowance (EMA) or Travel payments.

6.2 Period of Sickness Warning To currently check how many separate periods of sickness a student has had the user

has to run a report. The timesheet database would benefit greatly if a warning was to

appear against the students sickness to inform the user how many individual periods of

sickness a student has had, if any. The user can then instantly know if the student is to

submit further documentation. The warning should appear continuously after 4

individual periods of sickness.

6.3 Holidays not Accrued Warning The user is currently provided with a calculated field to inform them of how many

holidays a student has remaining. The database could be modified to calculate the

current number of holidays accrued to date, to ensure the student has the required

number holidays that they have requested.

6.4 Holiday Entitlement Warning The timesheet database would benefit greatly if a waning could appear against the

students holidays to inform the user when a student has used all of their holiday

entitlement in one academic year.

66

REFERENCES

[1] LSC Requirements for Funding Work-based Learning for Young

People and Adults 2007/08, 2007

[2] EMA: Directgov – Education and learning,

http://ema.direct.gov.uk/ema.html

[3] Connolly T M Database Solutions, A step-by-step guide to building databases,

& Begg C E 2000

[4] Nawaz M Systems Development,

https://outranet.scm.tees.ac.uk/users/u0000706/HND_SAD/sad_01

%20Systems%20Development%20Life%20Cycle.ppt

[5] Fisher R P Information Systems Security, 1984

[6] Castano S et al Database Security, 1994

[7] Microsoft Belgie & Luxemburg,

http://www.microsoft.com/belux/msdn/nl/community/columns/hya

tt/ntier1.mspx

[8] Mills R SQL Server and ADO Programming – Complete, 2001

67

APPENDIX A SPECIFICATION PROJECT TITLE: Work-based Learning – Timesheet Database PROPOSER: Hartlepool College of Further Education From : Andrea StewartEmail: [email protected] Submit To: MANSHA NAWAZEmail : [email protected] SUBMISSION Feb 2008HARDWARE: Pentium PC SOFTWARE: Microsoft Access & SQL Query Analyser KEYWORDS Work-based Learning (WBL) Timesheet Database Project Environment:

A Timesheet database is to be developed to enable the Work Based Learning (WBL) Division at Hartlepool College of Further Education to record on a daily basis the timesheet attendance of students on either an Advanced Modern Apprenticeship (AMA) or a Foundation Modern Apprenticeship (FMA). The database will need to log any type of attendance mark, whether it is present, absent, holiday etc. Objectives: The database is intended to link to PICS, our Management Information System (MIS) as all WBL students are enrolled onto their appropriate course here. This will then give a basis for all students required to fill in a timesheet. It is intended that a member of the WBL team will have the facility to import on a daily basis any new WBL students into the timesheet database. The import will transfer the students personal and course details for information purposes. The timesheet database will link to the MIS system via an ODBC link. The timesheet database will not just be for recording timesheet attendance but will also provide the WBL team with many reports to maintain and analyse the students contained within the timesheet database. The reports will be created using a combination of SQL and Microsoft Access. WBL students are also entitled to Education Maintenance Allowance which is paid weekly and only to those students who have 100% every week. This means that the database will also need to generate reports or in some way provide the finance section with the relevant information in order for the students to be paid on time every week. Product Aims: The aim of a Work-based Learning Timesheet Database is to give the work based learning administrators the facility to monitor and record student attendances in order to provide accurate payments to students on apprenticeships. Analysis Stage: A full systems investigation will take place to determine what the system requirements are. A proposed model will be formulated, agreed and documented. Design Stage: Determine how the system requirements (analysis) are to be met and achieved. Produce a design specification to provide the information necessary to build the system.

68

Implementation Stage: Determine the system functions to be implemented in the time scale remaining. Build the relevant systems functions by coding the tables, forms, queries & reports. Test individual components and the complete system by following a test plan. Produce and document relevant test plans and results. Maintenance Stage: Produce the maintenance documentation which covers User Guides, Operation strategy for changeover from old to new, maintenance (fine tuning/bug fixing/upgrade) and Future enhancements. Academic Aim: To utilise the skills and knowledge gained in HND Computing (IT) modules, in particular, Applications in IT, Systems Analysis & Design, Database Development, and Internet Introduction. Research and adopt a Systems Methodology for project development. Gain new skills and knowledge in the area of Web Hosting. Resources & Constraints The choice of hardware & software will be restricted to that available in the School of Computing. Conform to the UoT standards for coding & documentation. Schedule: It is intended that all stages of the project will be completed within the time scales of 26 weeks. The approximate schedule is – Analysis (8 weeks), Design (8 weeks), Implementation (10 weeks), and Documentation to be completed over a 26 week period.

Instructions: Email specification to project co-ordinator [email protected] Email specification as a MS Word document with the file name format ps.surname.initials.doc

69

APPENDIX B WORK BASED LEARNING TIMESHEET

70

APPENDIX C SELF-CERTIFICATION OF ABSENCE

71

72

APPENDIX D HOLIDAY BOOKING FORM

APPENDIX E DEVELOPMENT SCHEDULE PLAN

73

APPENDIX F BCS CODE OF CONDUCT

BCS Code of Conduct

Introduction

This Code sets out the professional standards required by the Society as a condition of membership. It applies to members of all grades, including students, and affiliates, and also non-members who offer their expertise as part of the Society's Professional Advice Register.

Within this document, the term 'relevant authority' is used to identify the person or organisation which has authority over your activity as an individual. If you are a practising professional, this is normally an employer or client. If you are a student, this is normally an academic institution.

The Code governs your personal conduct as an individual member of the BCS and not the nature of business or ethics of the relevant authority. It will, therefore, be a matter of your exercising your personal judgement in meeting the Code's requirements.

Any breach of the Code of Conduct brought to the attention of the Society will be considered under the Society's disciplinary procedures. You should also ensure that you notify the Society of any significant violation of this Code by another BCS member.

The Public Interest Duty to Relevant Authority Duty to the Profession Professional Competence and Integrity

The Public Interest 1. You shall carry out work or study with due care and diligence in accordance with the relevant authority's requirements, and the interests of system users. If your professional judgement is overruled, you shall indicate the likely risks and consequences. - The crux of the issue here, familiar to all professionals in whatever field, is the potential conflict between full and committed compliance with the relevant authority's wishes, and the independent and considered exercise of your judgement. - If your judgement is overruled, you are encouraged to seek advice and guidance from a peer or colleague on how best to respond. 2. In your professional role you shall have regard for the public health, safety and environment. - This is a general responsibility, which may be governed by legislation, convention or protocol. - If in doubt over the appropriate course of action to take in particular circumstances you should seek the counsel of a peer or colleague. 3. You shall have regard to the legitimate rights of third parties. - The term 'third Party' includes professional colleagues, or possibly competitors, or members of 'the public' who might be affected by an IS project without their being directly aware of its existence. 4. You shall ensure that within your professional field/s you have knowledge and understanding of relevant legislation, regulations and standards, and that you comply with such requirements. - As examples, relevant legislation could, in the UK, include The UK Public Disclosure Act, Data Protection or Privacy legislation, Computer Misuse law, legislation concerned with the export or import of technology, possibly for national security reasons, or law relating to intellectual property. This list is not exhaustive, and you should ensure that you are aware of any legislation relevant to your professional responsibilities. - In the international context, you should be aware of, and understand, the requirements

74

of law specific to the jurisdiction within which you are working, and, where relevant, to supranational legislation such as EU law and regulation. You should seek specialist advice when necessary. 5. You shall conduct your professional activities without discrimination against clients or colleagues - Grounds of discrimination include race, colour, ethnic origin, sexual orientation - All colleagues have a right to be treated with dignity and respect. - You should adhere to relevant law within the jurisdiction where you are working and, if appropriate, the European Convention on Human Rights. - You are encouraged to promote equal access to the benefits of IS by all groups in society, and to avoid and reduce 'social exclusion' from IS wherever opportunities arise. 6. You shall reject any offer of bribery or inducement.

Back to top

Duty to Relevant Authority

7. You shall avoid any situation that may give rise to a conflict of interest between you and your relevant authority. You shall make full and immediate disclosure to them if any conflict is likely to occur or be seen by a third party as likely to occur.

8. You shall not disclose or authorise to be disclosed, or use for personal gain or to benefit a third party, confidential information except with the permission of your relevant authority, or at the direction of a court of law.

9. You shall not misrepresent or withhold information on the performance of products, systems or services, or take advantage of the lack of relevant knowledge or inexperience of others.

Back to top

Duty to the Profession

10. You shall uphold the reputation and good standing of the BCS in particular, and the profession in general, and shall seek to improve professional standards through participation in their development, use and enforcement.

- As a Member of the BCS you also have a wider responsibility to promote public understanding of IS - its benefits and pitfalls - and, whenever practical, to counter misinformation that brings or could bring the profession into disrepute. - You should encourage and support fellow members in their professional development and, where possible, provide opportunities for the professional development of new members, particularly student members. Enlightened mutual assistance between IS professionals furthers the reputation of the profession, and assists individual members.

11. You shall act with integrity in your relationships with all members of the BCS and with members of other professions with whom you work in a professional capacity.

12. You shall have due regard for the possible consequences of your statements on others. You shall not make any public statement in your professional capacity unless you are properly qualified and, where appropriate, authorised to do so. You shall not purport to represent the BCS unless authorised to do so.

- The offering of an opinion in public, holding oneself out to be an expert in the subject in question, is a major personal responsibility and should not be undertaken lightly. - To give an opinion that subsequently proves ill founded is a disservice to the profession, and to the BCS.

75

13. You shall notify the Society if convicted of a criminal offence or upon becoming bankrupt or disqualified as Company Director.

Back to top

Professional Competence and Integrity

14. You shall seek to upgrade your professional knowledge and skill, and shall maintain awareness of technological developments, procedures and standards which are relevant to your field, and encourage your subordinates to do likewise.

15. You shall not claim any level of competence that you do not possess. You shall only offer to do work or provide a service that is within your professional competence.

- You can self-assess your professional competence for undertaking a particular job or role by asking, for example,

i. am I familiar with the technology involved, or have I worked with similar technology before? ii. have I successfully completed similar assignments or roles in the past? iii. can I demonstrate adequate knowledge of the specific business application and requirements successfully to undertake the work?

16. You shall observe the relevant BCS Codes of Practice and all other standards which, in your judgement, are relevant, and you shall encourage your colleagues to do likewise.

17. You shall accept professional responsibility for your work and for the work of colleagues who are defined in a given context as working under your supervision.

76

APPENDIX G DATA DICTIONARY: ENTITIES Entity Name Description Aliases Occurrence

Student General term describing

all students enrolled at

HCFE.

Student Each student is

enrolled on a course.

Enrolment A specific course a

student is enrolled to.

Enrolment Each enrolment is

assigned to only one

student.

Sickness Records periods of

sickness.

Sickness and Sick A student can have

more than one period

of sick.

Holiday Records holidays. Holiday Students entitled to

24 holidays per

academic year.

EMA Records EMA students

& payments.

EMA Students are paid

EMA on a weekly

basis.

Travel Records Travel students

& payments.

Travel Students are paid

Travel on a weekly

basis.

TimesheetAttendance Records the student

timesheet attendance.

Attendance and

Timesheet

Students hand in one

timesheet per week.

MarkType List of attendance

marks.

Mark and Mark

Type

Mark indicates the

type of attendance of

a student.

Staff Members of staff

authorised to use the

timesheet database

Staff and

Administrator

Staff process

timesheets, holidays,

sickness etc.

Supervisor Supervisors are

responsible for the

supervision of student

work.

Supervisor and

Monitor

Each student is

assigned only one

supervisor.

77

APPENDIX H DATA DICTIONARY: RELATIONSHIPS Entity Multiplicity Relationship Multiplicity Entity

Student

1..1

1..1

1..1

1..1

1..1

1..1

IsEnrolledTo

Suffers

Requests

IsPaid

Receives

Submits

1..*

0..*

0..24

0..*

0..*

1..*

Enrolment

Sickness

Holiday

EMA

Travel

TimesheetAttendance

Staff 1..1

1..1

1..1

1..1

Imports

Imports

Processes

Processes

0..*

0..*

0..*

0..*

Student

Enrolment

Holiday

Sickness

Supervisor 1..1 AssignedTo 1..* Student

TimesheetAttendance 1..1

1..1

Generates

Generates

0..*

0..*

EMA

Travel

MarkType 1..1 Indicates 1..* TimesheetAttendance

78

APPENDIX I DATA DICTIONARY: ATTRIBUTES Entity Attributes Description Data type &

length Null Primary Key

Student StudentDetailID

AcademicYearID

RefNo

Title

Surname

FirstForename

OtherForenames

DateOfBirth

Sex

Address1

Address2

Address3

Address4

PostcodeOut

PostcodeIn

Tel1

Tel2

MobileTel

NI

Contact1

ContactTel1

EthnicGroupID

EGDescription

EmployerID

EmployerName

EmpAddress1

EmpAddress2

Uniquely identifies a student

Specifies the Academic Year

Student Reference No

Students Title

Students Surname

Students First Forename

Students Other Name

Students Date of Birth

Students Gender

No. & Street of student

address

Town of student address

County of student address

Address 4 of student

address

Postcode Out of student

address

Postcode In of student

address

Telephone number 1 of

student

Telephone number 2 of

student

Mobile number of student

National Insurance number

of student

Emergency contact for

student

Emergency contact

telephone number for

student

Students ethnicity ID

Students ethnicity

Students employer ID

Students employer name

No. & Street of employer

address

Town of employer address

int

char(5)

char(12)

char(5)

varchar(40)

varchar(20)

varchar(30)

smalldatetime

char(1)

varchar(50)

varchar(50)

varchar(50)

varchar(50)

varchar(5)

varchar(5)

varchar(20)

varchar(20)

varchar(20)

char(9)

varchar(100)

varchar(20)

int

varchar(50)

int

varchar(50)

varchar(80)

varchar(50)

NO

YES

YES

YES

YES

YES

YES

YES

YES

YES

YES

YES

YES

YES

YES

YES

YES

YES

YES

YES

YES

YES

YES

YES

YES

YES

YES

YES

StudentDetailID

79

EmpAddress3

EmpAddress4

EmpPostcodeOut

EmpPostcodeIn

EmpWorkTel

CountryID

CDescription

DisabilityID

DisDescription

Learning

DifficultyID

DifDescription

Cohort

CohortStartDate

TravelNo

CreatedBy

CreatedDate

SupervisorID

HolidayEntitlement

SickEntitlement

County of employer address

Address 4 of employer

address

Postcode Out of employer

address

Postcode In of employer

address

Telephone number of

employer

Country ID student is from

Country student is from

Students disability ID

Students disability

Students learning difficultyID

Students learning difficulty

Students cohort

Cohort start date

Students travel number

Person who created entry

Date entry was created

Students Supervisor

Students holiday entitlement

Students sickness

entitlement

varchar(50)

varchar(50)

varchar(5)

varchar(5)

varchar(25)

int

varchar(50)

int

varchar(50)

int

varchar(50)

varchar(50)

datetime

int

varchar(50)

datetime

int

char(3)

char(3)

YES

YES

YES

YES

YES

YES

YES

YES

YES

YES

YES

YES

YES

YES

YES

YES

YES

YES

Enrolment EnrolmentID

CourseCode

CourseTitle

StartDate

ExpEndDate

ActEndDate

Completion

StatusID

CSDescription

IsWBL

StudentDetailID

CreatedBy

CreatedDate

Uniquely identifies an

enrolment

Enrolment course code

Enrolment title

Enrolment start date

Enrolment expected end

date

Enrolment actual end date

Enrolment completion status

ID

Enrolment completion status

States if enrolment is WBL

or not

Uniquely identifies a student

Person who created entry

Date entry was created

int

varchar(24)

varchar(255)

datetime

datetime

datetime

int

varchar(50)

char(1)

int

varchar(50)

datetime

NO

YES

YES

YES

YES

YES

YES

YES

YES

YES

YES

YES

EnrolmentID

Sickness SicknessID Uniquely identifies a period int NO SicknessID

80

StudentDetailID

WeekCommencing

Date

StartDate

EndDate

NoOfDays

Reason

CreatedBy

CreatedDate

LastModifiedBy

LastModifiedDate

Timesheet

AttendanceID

of sickness

Uniquely identifies a student

Week commencing date of a

period of sickness

Sickness start date

Sickness end date

No of days sick

Sickness reason

Person who created entry

Date entry was created

Last modified person

Last modified date

Uniquely identifies a

timesheet attendance

int

datetime

datetime

datetime

char(3)

char(100)

varchar(50)

datetime

varchar(50)

datetime

int

NO

NO

YES

YES

YES

YES

YES

YES

YES

YES

YES

Holiday HolidayID

StudentDetailID

WeekCommencing

Date

StartDate

EndDate

NoOfDays

DaysRemaining

AuthorisedBy

CreatedBy

CreatedDate

LastModifiedBy

LastModifiedDate

Timesheet

AttendanceID

Uniquely identifies a holiday

period

Uniquely identifies a student

Week commencing date of a

period of sickness

Sickness start date

Sickness end date

No of days sick

No of days holiday

remaining

Holiday authorised by

Person who created entry

Date entry was created

Last modified person

Last modified date

Uniquely identifies a

timesheet attendance

int

int

datetime

datetime

datetime

char(3)

char(3)

char(30)

varchar(50)

datetime

varchar(50)

datetime

int

NO

NO

NO

YESY

ES

YES

YES

YES

YES

YES

YES

YES

HolidayID

EMA EMANo

Date

Paid

Amount

StudentDetailID

Timesheet

AttendanceID

CreatedBy

CreatedDate

Uniquely identifies an EMA

payment

Date EMA paid on

EMA paid

Amount of EMA paid

Uniquely identifies a student

Uniquely identifies a

timesheet attendance

Person who created entry

Date entry was created

int

datetime

char(1)

money

int

int

varchar(50)

datetime

NO

YES

YES

YES

YES

YES

YES

YES

EMANo

81

LastModifiedBy

LastModifiedDate

Last modified person

Last modified date

varchar(50)

datetime

YES

YES

Travel TravelNo

PayrollNo

WeekNo

Date

Paid

Amount

Bonus

StudentDetailID

Notes

Timesheet

AttendanceID

CreatedBy

CreatedDate

LastModifiedBy

LastModifiedDate

Uniquely identifies a travel

payment

Uniquely identifies a

students payroll

Travel payment week

number

Date travel paid on

Paid? Yes/No

Amount of travel paid

Amount of bonus paid

Uniquely identifies a student

Notes about travel

Uniquely identifies a

timesheet attendance

Person who created entry

Date entry was created

Last modified person

Last modified date

int

int

char(2)

datetime

bit

money

money

int

text

int

varchar(50)

datetime

varchar(50)

datetime

NO

YES

YES

YES

YES

YES

YES

YES

YES

YES

YES

YES

YES

YES

TravelNo

Timesheet

Attendance

Timesheet

AttendanceID

StudentDetailID

WeekCommencing

Date

WeekNo

MonMarkID

TueMarkID

WedMarkID

ThurMarkID

FriMarkID

Notes/Reasons

SelfCertReceived

IsEMA

EMANotes

IsTravel

Travel(£)

TravelNotes

CreatedBy

CreatedDate

LastModifiedBy

Uniquely identifies a

timesheet attendance

Uniquely identifies a student

Week commencing date of a

timesheet

Week number of a timesheet

Mark ID for Monday

Mark ID for Tuesday

Mark ID for Wednesday

Mark ID for Thursday

Mark ID for Friday

Timesheet notes/reasons

Self certification received?

Yes/No

Is student EMA? Yes/No

EMA notes

Is student to receive travel?

Yes/No

Amount of travel to be paid

Travel notes

Person who created entry

Date entry was created

Last modified person

int

int

datetime

char(2)

int

int

int

int

int

text

bit

bit

text

bit

money

text

varchar(50)

datetime

varchar(50)

NO

NO

NO

NO

NO

NO

NO

NO

NO

YES

YES

NO

YES

NO

YES

YES

YES

YES

YES

Timesheet

AttendanceID

82

LastModifiedDate

Last modified date

datetime

YES

MarkType MarkTypeID

Mark

Description

Uniquely identifies an

attendance mark

Attendance mark code

Attendance mark description

int

char(1)

char(20)

NO

YES

YES

MarkTypeID

Staff StaffID

Username

Password

Title

Surname

FirstForename

Othername

DateOfBirth

Sex

Uniquely identifies a

member of staff

Staff username

Staff password

Staff title

Staff surname

Staff first forename

Staff othername

Staff date of birth

Staff gender

int

varchar(50)

varchar(50)

char(5)

varchar(40)

varchar(20)

varchar(30)

datetime

char(1)

NO

NO

NO

YES

YES

YES

YES

YES

YES

StaffID

Supervisor SupervisorID

Username

Code

Surname

FirstForename

Title

JobTitle

Type

Status

Address1

Address2

Address3

Address4

PostcodeOut

PostcodeIn

Tel1

MobileTel

Email

Quals

Subjects

Notes

Sex

Ethnicity

DisAbCode

EvPICSUser

Uniquely identifies a

supervisor

Supervisor username

Supervisor code

Supervisor surname

Supervisor first forename

Supervisor title

Supervisor job title

Supervisor type

Supervisor status

Supervisor address 1

Supervisor address 2

Supervisor address 3

Supervisor address 4

Supervisor PostcodeOut

Supervisor PostcodeIn

Supervisor Tel

Supervisor Mobile

Supervisor email

Supervisor qualifications

Supervisor qual subjects

Supervisor noted

Supervisor gender

Supervisor ethnicity

Supervisor disability code

Supervisor EV PICS user

int

nvarchar(8)

varchar(5)

varchar(40)

varchar(20)

char(12)

varchar(30)

varchar(50)

varchar(5)

varchar(50)

varchar(50)

varchar(50)

varchar(50)

varchar(5)

varchar(5)

varchar(20)

varchar(20)

varchar(30)

text

text

text

char(1)

char(2)

char(2)

nvarchar(8)

SupervisorID

83

APPENDIX J LOGICAL: CREATE TABLES

Student (StudentDetailID, AcademicYearID, RefNo, Title, Surname, FirstForename, OtherForenames, DateOfBirth, Sex, Address1, Address2, Address3, Address4, PostcodeOut, PostcodeIn, Tel1, Tel2, MobileTel, NI, Contact1, ContactTel1, EthnicGroupID, EGDescription, EmployerID, EmployerName, EmpAddress1, EmpAddress2, EmpAddress3, EmpAddress4, EmpPostcodeOut, EmpPostcodeIn, EmpWorkTel, CountryID, CDescription, DisabilityID, DisDescription, LearningDifficultyID, DifDescription, Cohort, CohortStartDate, TravelNo, CreatedBy, CreatedDate, SupervisorID, HolEntilement, SickEntitlement)

Primary Key StudentDetailID Foreign Key SupervisorID references

Supervisor(SupervisorID) Foreign Key TravelNo references Travel(TravelNo)

Enrolment (EnrolmentID, CourseCode, CourseTitle, StartDate,

ExpEndDate, ActEndDate, CompletionStatusID, CSDescription, IsWBL, StudentDetailID, CreatedBy, CreatedDate)

Primary Key EnrolmentID Foreign Key StudentDetailID references

Student(StudentDetailID)

Sickness (SicknessID, StudentDetailID, WeekCommencingID,

StartDate, EndDate, NoOfDays, Reason, CreatedBy, CreatedDate, LastModifiedBy, LastModifiedDate, TimesheetAttendanceID)

Primary Key SicknessID Foreign Key StudentDetailID references

Student(StudentDeatilID) Foreign Key TimesheetAttendanceID references

TimesheetAttendance(TimesheetAttendanceID)

84

Holiday (HolidayID, StudentDetailID, WeekCommencingID, StartDate, EndDate, NoOfDays, DaysRemaining, AuthorisedBy, CreatedBy, CreatedDate, LastModifiedBy, LastModifiedDate, TimesheetAttendanceID)

Primary Key HolidayID Foreign Key StudentDetailID references

Student(StudentDetailID) Foreign Key TimesheetAttendanceID references

TimesheetAttendance(TimesheetAttendanceID)

EMA (EMANo, Date, Paid, Amount, StudentDetailID, TimesheetAttendanceID, CreatedBy, CreatedDate, LastModifiedBy, LastModifiedDate)

Primary Key EMANo Foreign Key StudentDetailID references

Student(StudentDetailID) Foreign Key TimesheetAttendanceID references

TimesheetAttendance(TimesheetAttendanceID)

Travel (TravelNo, PayrollNo, WeekNo, Date, Paid, Amount,

Bonus, StudentDetailID, Notes, TimesheetAttendanceID, CreatedBy, CreatedDate, LastModifiedBy, LastModifiedDate)

Primary Key TravelNo Foreign Key StudentDetailID references

Student(StudentDetailID) Foreign Key TimesheetAttendanceID references

TimesheetAttendance(TimesheetAttendanceID)

Timesheet (TimesheetAttendanceID, StudentDetailID, Attendance WeekCommencingDate, WeekNo, MonMarkID, TueMarkID,

WedMarkID, ThurMarkID, FriMarkID, Notes/Reasons, SelfCertReceived, IsEMA, EMANotes, IsTravel, Travel(£), TravelNotes, CreatedBy, CreatedDate, LastModifiedBy, LastModifiedDate)

Primary Key TimesheetAttendanceID Foreign Key StudentDetailID references

Student(StudentDetailID) MarkType (MarkTypeID, Mark, Description)

Primary Key MarkTypeID

85

APPENDIX K PHYSICAL: CREATE BASE TABLES

K.1 Base table for dbo.Student CREATE TABLE [dbo].[Student]( [StudentDetailID] [int] IDENTITY(1,1) NOT NULL, [AcademicYearID] [char](5) COLLATE Latin1_General_CI_AS NULL, [RefNo] [char](12) COLLATE Latin1_General_CI_AS NULL, [Title] [char](5) COLLATE Latin1_General_CI_AS NULL, [Surname] [varchar](40) COLLATE Latin1_General_CI_AS NULL, [FirstForename] [varchar](20) COLLATE Latin1_General_CI_AS NULL, [OtherForenames] [varchar](30) COLLATE Latin1_General_CI_AS NULL, [DateOfBirth] [smalldatetime] NULL, [Sex] [char](1) COLLATE Latin1_General_CI_AS NULL, [Address1] [varchar](50) COLLATE Latin1_General_CI_AS NULL, [Address2] [varchar](50) COLLATE Latin1_General_CI_AS NULL, [Address3] [varchar](50) COLLATE Latin1_General_CI_AS NULL, [Address4] [varchar](50) COLLATE Latin1_General_CI_AS NULL, [PostcodeOut] [varchar](5) COLLATE Latin1_General_CI_AS NULL, [PostcodeIn] [varchar](5) COLLATE Latin1_General_CI_AS NULL, [Tel1] [varchar](20) COLLATE Latin1_General_CI_AS NULL, [Tel2] [varchar](20) COLLATE Latin1_General_CI_AS NULL, [MobileTel] [varchar](20) COLLATE Latin1_General_CI_AS NULL, [NI] [char](9) COLLATE Latin1_General_CI_AS NULL, [Contact1] [varchar](100) COLLATE Latin1_General_CI_AS NULL, [Contact1Tel] [varchar](20) COLLATE Latin1_General_CI_AS NULL, [EthnicGroupID] [int] NULL, [EGDescription] [varchar](50) COLLATE Latin1_General_CI_AS NULL, [EmployerID] [int] NULL, [EmployerName] [varchar](50) COLLATE Latin1_General_CI_AS NULL, [EmpAddress1] [varchar](80) COLLATE Latin1_General_CI_AS NULL, [EmpAddress2] [varchar](50) COLLATE Latin1_General_CI_AS NULL, [EmpAddress3] [varchar](50) COLLATE Latin1_General_CI_AS NULL, [EmpAddress4] [varchar](50) COLLATE Latin1_General_CI_AS NULL, [EmpPostcodeOut] [varchar](5) COLLATE Latin1_General_CI_AS NULL, [EmpPostcodeIn] [varchar](5) COLLATE Latin1_General_CI_AS NULL, [EmpWorkTel] [varchar](25) COLLATE Latin1_General_CI_AS NULL, [CountryID] [int] NULL, [CDescription] [varchar](50) COLLATE Latin1_General_CI_AS NULL, [DisabilityID] [int] NULL, [DisDescription] [varchar](50) COLLATE Latin1_General_CI_AS NULL, [LearningDifficultyID] [int] NULL, [DifDescription] [varchar](50) COLLATE Latin1_General_CI_AS NULL, [Cohort] [varchar](50) COLLATE Latin1_General_CI_AS NULL, [CohortStartDate] [datetime] NULL, [TravelNo] [int] NULL, [CreatedBy] [varchar](50) COLLATE Latin1_General_CI_AS NULL, [CreatedDate] [datetime] NULL CONSTRAINT [DF_Student_CreatedDate] DEFAULT (getdate()), [SupervisorID] [int] NULL, [HolEntitlement] [char](3) COLLATE Latin1_General_CI_AS NULL, [SickEntitlement] [char](3) COLLATE Latin1_General_CI_AS NULL, CONSTRAINT [PK_Student] PRIMARY KEY CLUSTERED ( [StudentDetailID] ASC )WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY],

86

CONSTRAINT [FK_Student_Supervisor] FOREIGN KEY ( [SupervisorID] ) REFERENCES [SupervisorID] ), CONSTRAINT [FK_Student_Travel] FOREIGN KEY ( [TravelNo] ) REFERENCES [TravelNo] ( [TravelNo] ) ) ON [PRIMARY] GO

K.2 Base table for dbo.Enrolment CREATE TABLE [dbo].[Enrolment]( [EnrolmentID] [int] IDENTITY(1,1) NOT NULL, [CourseCode] [varchar](24) COLLATE Latin1_General_CI_AS NULL, [CourseTitle] [varchar](255) COLLATE Latin1_General_CI_AS NULL, [StartDate] [datetime] NULL, [ExpEndDate] [datetime] NULL, [ActEndDate] [datetime] NULL, [CompletionStatusID] [int] NULL, [CSDescription] [varchar](50) COLLATE Latin1_General_CI_AS NULL, [IsWBL] [char](1) COLLATE Latin1_General_CI_AS NULL, [StudentDetailID] [int] NOT NULL, [CreatedBy] [varchar](50) COLLATE Latin1_General_CI_AS NULL, [CreadtedDate] [datetime] NULL CONSTRAINT [DF_Enrolment_CreadtedDate] DEFAULT (getdate()), CONSTRAINT [PK_Enrolment] PRIMARY KEY CLUSTERED ( [EnrolmentID] ASC )WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY], CONSTRAINT [FK_Enrolment_Student] FOREIGN KEY ( [StudentDetailID] ) REFERENCES [StudentDetailID] ( [StudentDetailID] ) ) ON [PRIMARY] GO

87

K.3 Base table for dbo.Sickness CREATE TABLE [dbo].[Sickness]( [SicknessID] [int] IDENTITY(1,1) NOT NULL, [StudentDetailID] [int] NOT NULL, [WeekCommencingDate] [datetime] NOT NULL, [StartDate] [datetime] NULL, [EndDate] [datetime] NULL, [NoOfDays] [char](3) COLLATE Latin1_General_CI_AS NULL, [Reason] [char](100) COLLATE Latin1_General_CI_AS NULL, [CreatedBy] [varchar](50) COLLATE Latin1_General_CI_AS NULL, [CreatedDate] [datetime] NULL CONSTRAINT [DF_Sickness_CreatedDate] DEFAULT (getdate()), [LastModifiedBy] [varchar](50) COLLATE Latin1_General_CI_AS NULL, [LastModifiedDate] [datetime] NULL, [TimesheetAttendanceID] [int] NULL, CONSTRAINT [PK_Sickness] PRIMARY KEY CLUSTERED ( [SicknessID] ASC )WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY], CONSTRAINT [FK_Sickness_Student] FOREIGN KEY ( [StudentDetailID] ) REFERENCES [StudentDetailID] ( [StudentDetailID] ), CONSTRAINT [FK_Sickness_TimesheetAttendance] FOREIGN KEY ( [TimesheetAttendanceID] ) REFERENCES [TimesheetAttendanceID] ( [TimesheetAttendanceID] ) ) [PRIMARY] ONGO

88

K.4 Base table for dbo.Holiday CREATE TABLE [dbo].[Holiday]( [HolidayID] [int] IDENTITY(1,1) NOT NULL, [StudentDetailID] [int] NOT NULL, [WeekCommencingDate] [datetime] NOT NULL, [StartDate] [datetime] NULL, [EndDate] [datetime] NULL, [NoOfDays] [char](3) COLLATE Latin1_General_CI_AS NULL, [DaysRemaining] [char](3) COLLATE Latin1_General_CI_AS NULL, [AuthorisedBy] [char](30) COLLATE Latin1_General_CI_AS NULL, [CreatedBy] [varchar](50) COLLATE Latin1_General_CI_AS NULL, [CreatedDate] [datetime] NULL CONSTRAINT [DF_Holiday_CreatedDate] DEFAULT (getdate()), [LastModifiedBy] [varchar](50) COLLATE Latin1_General_CI_AS NULL, [LastModifiedDate] [datetime] NULL, [TimesheetAttendanceID] [int] NULL, CONSTRAINT [PK_Holiday] PRIMARY KEY CLUSTERED ( [HolidayID] ASC )WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY] CONSTRAINT [FK_Holiday_Student] FOREIGN KEY ( [StudentDetailID] ) REFERENCES [StudentDetailID] ( [StudentDetailID] ), CONSTRAINT [FK_Holiday_TimesheetAttendance] FOREIGN KEY ( [TimesheetAttendanceID] ) REFERENCES [TimesheetAttendanceID] ( [TimesheetAttendanceID] ) ) ON PRIMARY GO

89

K.5 Base table for dbo.EMA

CREATE TABLE [dbo].[EMA]( [EMANo] [int] IDENTITY(1,1) NOT NULL, [Date] [datetime] NULL, [Paid] [char](1) COLLATE Latin1_General_CI_AS NULL, [Amount] [money] NULL, [StudentDetailID] [int] NOT NULL, [TimesheetAttendanceID] [int] NOT NULL, [CreatedBy] [varchar](50) COLLATE Latin1_General_CI_AS NULL, [CreadtedDate] [datetime] NULL CONSTRAINT [DF_EMA_CreadtedDate] DEFAULT (getdate()), [LastModifiedBy] [varchar](50) COLLATE Latin1_General_CI_AS NULL, [LastModifiedDate] [datetime] NULL, CONSTRAINT [PK_EMA] PRIMARY KEY CLUSTERED ( [EMANo] ASC )WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY], CONSTRAINT [FK_EMA_Student] FOREIGN KEY ( [StudentDetailID] ) REFERENCES [Student] ( [StudentDetailID] ), CONSTRAINT [FK_EMA_TimesheetAttendance] FOREIGN KEY ( [TimesheetAttendanceID] ) REFERENCES [TimesheetAttendance] ( [TimesheetAttendanceID] ) ) ON [PRIMARY] GO

90

K.6 Base table for dbo.Travel

CREATE TABLE [dbo].[Travel]( [TravelNo] [int] IDENTITY(1,1) NOT NULL, [PayrollNo] [int] NOT NULL, [WeekNo] [char](2) COLLATE Latin1_General_CI_AS NOT NULL, [Date] [datetime] NOT NULL, [Paid] [bit] NULL, [Amount] [money] NULL, [Bonus] [money] NULL, [StudentDetailID] [int] NOT NULL, [Notes] [text] COLLATE Latin1_General_CI_AS NULL, [TimesheetAttendanceID] [int] NULL, [CreatedBy] [varchar](50) COLLATE Latin1_General_CI_AS NULL, [CreatedDate] [datetime] NULL CONSTRAINT [DF_Travel_CreatedDate] DEFAULT (getdate()), [LastModifiedBy] [varchar](50) COLLATE Latin1_General_CI_AS NULL, [LastModifiedDate] [datetime] NULL, CONSTRAINT [PK_Travel] PRIMARY KEY CLUSTERED ( [TravelNo] ASC )WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY] CONSTRAINT [FK_Travel_TimesheetAttendance] FOREIGN KEY ( [TimesheetAttendanceID] ) REFERENCES [TimesheetAttendanceID] ( [TimesheetAttendanceID] ) ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO

91

K.7 Base table for dbo.TimesheetAttendance CREATE TABLE [dbo].[TimesheetAttendance]( [TimesheetAttendanceID] [int] IDENTITY(1,1) NOT NULL, [StudentDetailID] [int] NOT NULL, [WeekCommencingDate] [datetime] NOT NULL, [WeekNo] [char](2) COLLATE Latin1_General_CI_AS NOT NULL, [MonMarkID] [int] NOT NULL, [TueMarkID] [int] NOT NULL, [WedMarkID] [int] NOT NULL, [ThurMarkID] [int] NOT NULL, [FriMarkID] [int] NOT NULL, [Notes/Reasons] [text] COLLATE Latin1_General_CI_AS NULL, [SelfCertReceived] [bit] NOT NULL CONSTRAINT [DF__TimesheetAttendance__SelfCertReceived] DEFAULT ((0)), [IsEMA] [bit] NOT NULL CONSTRAINT [DF__TimesheetAttendance__IsEMA] DEFAULT ((0)), [EMANotes] [text] COLLATE Latin1_General_CI_AS NULL, [IsTravel] [bit] NOT NULL CONSTRAINT [DF__TimesheetAttendance__IsTravel] DEFAULT ((0)), [Travel(£)] [money] NULL, [TravelNotes] [text] COLLATE Latin1_General_CI_AS NULL, [CreatedBy] [varchar](50) COLLATE Latin1_General_CI_AS NULL, [CreadtedDate] [datetime] NULL CONSTRAINT [DF_TimesheetAttendance_CreadtedDate] DEFAULT (getdate()), [LastModifiedBy] [varchar](50) COLLATE Latin1_General_CI_AS NULL, [LastModifiedDate] [datetime] NULL, CONSTRAINT [PK_TimesheetAttendance] PRIMARY KEY CLUSTERED ( [TimesheetAttendanceID] ASC )WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY], CONSTRAINT [FK_TimesheetAttendance_Student] FOREIGN KEY ( [StudentDetailID] ) REFERENCES [StudentDetailID] ( [StudentDetailID] ) ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO

K.8 Base table for dbo.MarkType

CREATE TABLE [dbo].[MarkType]( [MarkTypeID] [int] IDENTITY(1,1) NOT NULL, [Mark] [char](1) COLLATE Latin1_General_CI_AS NULL, [Description] [char](20) COLLATE Latin1_General_CI_AS NULL, CONSTRAINT [PK_MarkType] PRIMARY KEY CLUSTERED ( [MarkTypeID] ASC )WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY] ) ON [PRIMARY] GO

92

K.9 Base table for dbo.Staff

CREATE TABLE [dbo].[Staff]( [StaffID] [int] IDENTITY(1,1) NOT NULL, [Username] [varchar](50) COLLATE Latin1_General_CI_AS NOT NULL, [Password] [varchar](50) COLLATE Latin1_General_CI_AS NOT NULL, [Title] [char](5) COLLATE Latin1_General_CI_AS NULL, [Surname] [varchar](40) COLLATE Latin1_General_CI_AS NULL, [FirstForename] [varchar](20) COLLATE Latin1_General_CI_AS NULL, [Othername] [varchar](30) COLLATE Latin1_General_CI_AS NULL, [DateOfBirth] [datetime] NULL, [Sex] [char](1) COLLATE Latin1_General_CI_AS NULL, CONSTRAINT [PK_Staff] PRIMARY KEY CLUSTERED ( [StaffID] ASC )WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY] ) ON [PRIMARY] GO

K.10 Base table for dbo.Supervisor CREATE TABLE [dbo].[Supervisor]( [SupervisorID] [int] IDENTITY(1,1) NOT NULL, [Username] [nvarchar](8) COLLATE Latin1_General_CI_AS NULL, [Code] [varchar](5) COLLATE Latin1_General_CI_AS NULL, [Surname] [varchar](40) COLLATE Latin1_General_CI_AS NULL, [FirstForename] [varchar](20) COLLATE Latin1_General_CI_AS NULL, [Title] [char](12) COLLATE Latin1_General_CI_AS NULL, [JobTitle] [varchar](30) COLLATE Latin1_General_CI_AS NULL, [Type] [varchar](50) COLLATE Latin1_General_CI_AS NULL, [Status] [varchar](5) COLLATE Latin1_General_CI_AS NULL, [Address1] [varchar](50) COLLATE Latin1_General_CI_AS NULL, [Address2] [varchar](50) COLLATE Latin1_General_CI_AS NULL, [Address3] [varchar](50) COLLATE Latin1_General_CI_AS NULL, [Address4] [varchar](50) COLLATE Latin1_General_CI_AS NULL, [PostcodeOut] [varchar](5) COLLATE Latin1_General_CI_AS NULL, [PostcodeIn] [varchar](5) COLLATE Latin1_General_CI_AS NULL, [Tel1] [varchar](20) COLLATE Latin1_General_CI_AS NULL, [MobileTel] [varchar](20) COLLATE Latin1_General_CI_AS NULL, [Email] [varchar](30) COLLATE Latin1_General_CI_AS NULL, [Quals] [text] COLLATE Latin1_General_CI_AS NULL, [Subjects] [text] COLLATE Latin1_General_CI_AS NULL, [Notes] [text] COLLATE Latin1_General_CI_AS NULL, [Sex] [char](1) COLLATE Latin1_General_CI_AS NULL, [Ethnicity] [char](2) COLLATE Latin1_General_CI_AS NULL, [DisAbCode] [char](2) COLLATE Latin1_General_CI_AS NULL, [EvPICSUser] [nvarchar](8) COLLATE Latin1_General_CI_AS NULL, CONSTRAINT [PK_Supervisor] PRIMARY KEY CLUSTERED ( [SupervisorID] ASC )WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO

93

APPENDIX L PAGE DESIGNS

L.1 WBL Timesheet Database - Home page

L.2 WBL Timesheet Database – Timesheet Entry page

94

L.3 WBL Timesheet Database – Student Sickness page

L.4 WBL Timesheet Database – Student Holiday page

95

L.5 WBL Timesheet Database - Reports page

96

APPENDIX M SQL TABLES

M.1 SQL table of dbo.Student

97

M.2 SQL table of dbo.Enrolment

M.3 SQL table of dbo.Sickness

98

M.4 SQL table of dbo.Holiday

M.5 SQL table of dbo.EMA

99

M.6 SQL table of dbo.Travel

M.7 SQL table of dbo.TimesheetAttendance

100

M.8 SQL table of dbo.MarkType

M.9 SQL table of dbo.Staff

101

M.10 SQL table of dbo.Supervisor

102

APPENDIX N ENROLMENT STORED PROCEDURE

CREATE PROCEDURE [dbo].[Enrolment_Import] AS INSERT INTO WBLTimesheets.dbo.Enrolment (EnrolmentID, CourseCode, CourseTitle, StartDate, ExpEndDate, ActEndDate, CompletionStatusID, CSDescription, IsWBL, StudentDetailID) SELECT E.EnrolmentID, O.Code, O.[Name], E.StartDate, E.ExpEndDate, E.ActEndDate, E.CompletionStatusID, CS.Description, E.IsWBL, E.StudentDetailID FROM ProSolution.dbo.Enrolment E WITH (NOLOCK) INNER JOIN ProSolution.dbo.Offering O WITH (NOLOCK) ON E.OfferingID = O.OfferingID LEFT OUTER JOIN ProSolution.dbo.CompletionStatus CS WITH (NOLOCK) ON E.CompletionStatusID = CS.CompletionStatusID WHERE E.OfferingID = O.OfferingID AND E.IsWBL = 'Y' AND NOT EXISTS (SELECT * FROM WBLTimesheets.dbo.Enrolment WBLE WHERE WBLE.EnrolmentID = E.EnrolmentID)

103

APPENDIX O VB IMPORT

Private Sub cmdImportStudents_and_Enrolments_Click()

Dim ADOCmd As New ADODB.Command

Dim ADOError As ADODB.Error

With ADOCmd

.ActiveConnection =

"Provider=SQLOLEDB.1;Server=YOUR-

0CDC4F5844\SQLEXPRESS;Initial Catalog=WBLTimesheets;User

ID=sa;Pwd=wbltimesheets"

.CommandText = "Student_Import"

.CommandType = adCmdStoredProc

.Execute

End With

With ADOCmd

.ActiveConnection =

"Provider=SQLOLEDB.1;Server=YOUR-

0CDC4F5844\SQLEXPRESS;Initial Catalog=WBLTimesheets;User

ID=sa;Pwd=wbltimesheets"

.CommandText = "Enrolment_Import"

.CommandType = adCmdStoredProc

.Execute

End With

MsgBox "Students imported successfully!"

End Sub

104

APPENDIX P USER GUIDE

This user guide was provided to the users during the testing phase of the WBL

Timesheet Database to assist them in using the database as required.

The WBL Timesheet Database is accessible via an icon on the user’s desktop. The

following steps will guide you through the database.

The ‘Import Students’ button should be ran at least once a day to capture the most

recent student information.

Click to import Student & Enrolment info.

To view all current students in the WBL Timesheet Database together with their

enrolment and employment details click the ‘Student’ button.

105

Before the database will allow the user to view any student’s personal or confidential

information they will prompted for valid SQL Server login and password. If you have

not been assigned a login and password contact the system administrator.

Click to view student, enrolment & employment info.

Enter a valid login & password

106

Entering the ‘Student’ form provides you with the student’s personal details, their

course of study and their employer, if any. The screen shot below shows that by

clicking the ‘Find Student’ button that you can search for a student based on any field

on the form.

Click to search for a

student.

To enter student timesheet information click the ‘Timesheets’ button.

Click to enter or update

timesheets.

107

On entering the Timesheets form you are provided with a choice of either ‘Edit

Timesheets for this week’ in which case you are required to enter a date which must be

on a Monday for students based on the start and end date of their enrolment. Or you can

choose ‘Edit Timesheets – All students’ which gives you all students that exist in the

database regardless of date.

Enter a date – Must be a Monday

Choosing either of the above will display the same form layout but will contain a

different number of students.

108

Choosing either of the ‘Edit Timesheet’ buttons will display the screen shown below.

As previously shown and with this form, clicking the ‘Find Student’ button allows you

to search for a student using any of the fields on the top half of the form i.e. students

personal details.

To enter a new timesheet, first select the next blank line and enter the ‘WC Date’ and

‘Week No’. Next choose from the week day drop down boxes the appropriate

attendance mark for each day of the week. Note none of the week day fields must be

left blank or you will receive a system error. Continue to fill in the remainder of the

fields as required. When all of the timesheet entries are complete close the form to save

changes as indicated below.

Close form to save

changes.

109

To enter and view student sickness information click the ‘Sickness’ button.

Click to enter student

sickness.

On closing the timesheet entry form, any sickness data that is entered there will

automatically be transferred to the screen shown below such as the WC Date and the

number of days of sickness in the particular week. This form requires further

information to be entered such as the actual start and end date of the sickness and the

reason for the sickness. The user can easily check the number of days sick the student

has had in this form also.

110

To enter and view student holiday information click the ‘Holiday’ button.

Click to enter student holiday.

On closing the timesheet entry form, any holiday data that is entered there will

automatically be transferred to the screen shown below such as the WC Date and the

number of days holiday in the particular week. This form requires further information

to be entered such as the actual start and end date of the holiday and also the person who

authorized the holiday. The user can easily check the number of day’s holiday the

student has remaining in this form also.

111

To view the various user reports click the ‘Reports’ button.

The user can access and run various reports based on the timesheet attendance

information entered into the database. Some reports have been created based on a week

commencing date which must be entered as indicated below. Other reports can be run

without this date.

Click to view reports.

Enter a date – Must be a Monday

112

113

APPENDIX Q VALIDATION TESTING

Test

No.

Description Pass/Fail Result

1 Ensure ‘WC Date’ on the

timesheet entry form is entered

in the correct format.

Pass Error Message displayed –

“The value you entered isn’t

valid for this field”

2 Ensure the Mon-Fri attendance

marks on the timesheet entry

form are all completed for each

timesheet entered.

Pass Error Message displayed –

“Cannot insert the value

NULL into column

MonMarkID.”

3 Ensure the value entered into

attendance marks drop down box

on the timesheet entry form is a

valid value from the list.

Pass Error Message displayed –

“The text you entered isn’t an

item in the list.”

4 Ensure the value entered into the

Travel (£) field on the timesheet

entry form is a numeric value.

Pass Error Message displayed –

“The value you entered isn’t

valid for this field.”

5 Ensure the ‘Start Date’ and ‘End

Date’ on the sickness form is

entered in the correct format.

Pass Error Message displayed –

“The value you entered isn’t

valid for this field.”

6 Ensure the ‘Start Date’ and ‘End

Date’ on the holiday form is

entered in the correct format.

Pass Error Message displayed –

“The value you entered isn’t

valid for this field.”

114

APPENDIX R USER TESTING

Test

No.

Action Expected Result Actual Result No. of

Records

Successful

1 Import new WBL students and their enrolments using the “Import Student” button.

Message displayed – “Students imported successfully!”

Message displayed – “Students imported successfully!”

12

2 Import new WBL students and their enrolments using the “Import Student” button (again to check stored procedure is working correctly).

Message displayed – “No students to import!”

Message displayed – “Students imported successfully!”

12 X

3 Search for a student in the Student form using the “Find Student” button.

Find and Replace box to appear. Find and Replace box to appear. N/A

4 Using the “Edit Timesheets – All Students” button view all students in the timesheet database.

All students in the timesheet database available to enter timesheet data.

All students in the timesheet database are available to enter timesheet data.

12

5 Using the “Edit Timesheets for this week” button find only those students who have a timesheet attendance for the WC Date entered.

Only students with a timesheet attendance for the specified week to be available on the form.

Only the students with a timesheet attendance for the week specified are available on the form.

2

115