Case Study Sad Vets.08.Hsa - Walker

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 67

System Analysis and Design

Case Study
For the
WellPet Veterinary Practice

By June Walker
May 2008
Mansha Nawaz

i
ABSTRACT

This assignment has been produced to satisfy the criteria of ICA 1 for the
Module: Systems Analysis and Design. The content of this document has
been produced by using the Case Study WellPets Veteninary Surgeons to
enable the ICA Criteria to be met.

ii
CONTENTS

ABSTRACT...................................................................................................... I
1 INTRODUCTION...................................................................................... 5
1.1 Case Study Scenario....................................................................... 6
2 SYSTEMS ANALYSIS ............................................................................. 8
2.1 Terms of Reference......................................................................... 8
2.2 Statement of Purpose ..................................................................... 9
2.3 Systems Model .............................................................................. 10
2.3.1 CASE Tools ............................................................................ 10
2.4 Context Diagram Registration of Pets...................................... 11
2.4.1 WellPet Context Diagram - Registration .............................. 11
2.4.2 Event List ................................................................................ 12
2.5 Context Diagram Treatment and Payment ............................... 13
2.6 Dataflow Diagram Fragments....................................................... 14
2.6.1 Registration ............................................................................ 14
2.6.2 Making an Appointment ........................................................ 15
2.6.3 National Database .................................................................. 16
2.6.4 Requesting Insurance............................................................ 17
2.6.5 Assessment of Pet ................................................................. 18
2.6.6 Logging of Treatment ............................................................ 19
2.6.7 Creating of Invoice................................................................. 20
2.6.8 Payment of Invoice ................................................................ 21
2.6.9 Creating of Statement............................................................ 22
2.6.10 Update of Records ................................................................. 23
2.7 Top-Level Dataflow Diagram ........................................................ 24
2.7.1 WellPets Top level - Registration.......................................... 24
2.8 Low-Level Dataflow Diagrams ..................................................... 25
2.9 Top-Level Dataflow Diagram Treatment and Payment............ 29
2.10 Low-Level Dataflow Diagrams Treatment and Payments ....... 30
3 SYSTEMS DESIGN ............................................................................... 36
3.1 Data Dictionary .............................................................................. 36
3.2 Datastores Structures and Elements........................................... 37
3.2.1 Data Store Owners .............................................................. 37
3.2.2 Data Store Pets.................................................................... 38
3.2.3 Data Store Appointments ................................................... 39
3.2.4 Data Store Vets.................................................................... 40
3.2.5 Data Store Insurance Plans................................................ 41
3.2.6 Data Store Rejections ......................................................... 43
3.2.7 Data Store Confirmations ................................................... 44
3.2.8 Data Store Diary .................................................................. 45
3.2.9 Data Store Missed Appointments ...................................... 47
3.2.10 Data Store Cancelled Appointments ................................. 49
3.2.11 Data Store Statements........................................................ 51
3.2.12 Data Store Invoices............................................................. 53
3.2.13 Data Store Receipt .............................................................. 55
3.2.14 Data Store Costs ................................................................. 57
3.2.15 Data Store Treatments........................................................ 58
3.2.16 Data Store Drugs................................................................. 59

iii
3.2.17 Data Store Equipment......................................................... 60
3.2.18 Data Store Insurance Company ......................................... 61
3.3 Dataflows Structures and Elements ............................................ 62
3.4 Process Descriptions.................................................................... 63
4 CRITICAL REVIEW ............................................................................... 65
REFERENCES .............................................................................................. 66
APPENDIX .................................................................................................... 66

iv
1 INTRODUCTION

The purpose of this report is to present a solution to a Systems Analysis &


Design case study. The solution will show that aspect of the case study can
be proposed using Computer Aided Software Engineering (CASE) Tools and
Ascent software package.

5
1.1 Case Study Scenario

WellPet Veterinary Surgeons

The WellPet Veterinary Surgeons practice is situated in a Midlands city. It


employs four veterinary surgeons (vets). Being a city-based practice the
clients are owners of domestic animals such as cats, dogs, caged birds and
so on. Some of the vets are specialists in particular types of animal (for
example, one is an expert in treating reptiles kept as pets) while others do not
have a particular specialism but can treat most types of animal.

A record is kept of the owners who have registered with the surgery and of
their pets. Details recorded include the owners name, address and contact
details; the pets name, animal type (for example: dog, cat), pets date of birth
and date registered with the surgery. Some owners register their pet when
they first need treatment; others register them when they acquire the pet, in
advance of them ever needing to see a vet.

When an owner wants their pet to be seen by a vet, they bring them to the
surgery. Appointments are made in advance. Details are recorded of the
appointment date and time, the vet, and the pet; if an owner is bringing two or
more animals to the surgery each is treated as a separate appointment. After
the appointment it is noted whether the pet attended (some owners make an
appointment and then either cancel it or do not turn up for example because
they cannot catch their cat or because the animal appears to be better). The
surgery wants to be able to identify owners who regularly make appointments
that they do not keep.

Details of any treatments prescribed for pets are kept, including the date
prescribed, which vet was involved, which appointment (if the treatment/s
was/were prescribed during an appointment) and any necessary notes. There
are a number of standard treatments (for example, injection against cat
influenza, clipping dog claws, de-worming, putting an animal down) each of
which has a code and a description. A treatment may consist of an operation

6
on the pet (for example, neutering). A pet treatment may consist of something
other than a standard treatment. An appointment does not necessarily result
in any treatments. Owners may also be provided with a standard treatment
(such as worming tablets) without bringing in their animals for an appointment.

The surgery, in association with an insurance company, offers an insurance


plan for pet owners. The plan can be for one or more animals and covers all
or part of the cost of treatments. Details are kept of the plans taken up by
owners including the insurance plan number, the date it was taken out, which
animal or animals it applies to and for which treatments a plan has been used.
Not all owners have an insurance plan for their pets.

7
2 SYSTEMS ANALYSIS

2.1 Terms of Reference

WellPet Veterinary is a vet practice based in a Midlands City. The practice


has four vets who look after owners pets such as dogs, cats, hamsters, birds,
rabbits and any other domestic animals. Some of the vets have trained to
specialise in certain animals, like snakes and lizards which are becoming
common pets.

The practice also offers Insurance Cover, through an Insurance Company. A


plan can be on one or more animal and covers all or part of the costs.

8
2.2 Statement of Purpose

The purpose of the WellPet Veterinary Practice system is to handle and


record all the information of the owners, pets, treatment required, payment of
bills, record details of Insurance plans and to record appointments and to
highlight cancelled and missed appointments

9
2.3 Systems Model

2.3.1 CASE Tools

To enable the system to be modelled effectively the following CASE tool will
be used. Also noted below are a description of the symbols used in the
diagram
Case Tool: Ascent 2.1
Tool type: Yourdon
Symbol types:

Entity
represents External bodies that interact with the given
system. (i.e. supplier, company manager, customer etc).
Start and end point for data going into and out of the
system.

Process
The parts of the system that process the data imputed to
give the required information output or storage.
Used to develop details of various processes such as
Queries, report compilation, warning systems etc.

Data Store
Used to store data the system produces.
Can have multiple data flows to write and read the data.

Data Flow (Solid line)


The flow of data around the system.

Data Flow (Dashed line)


The flow of data around the system whos start point is
located on a different section of the system to the section
being viewed.

Table 1

10
2.4 Context Diagram Registration of Pets

Below (figure 1.1) is shown the context diagram of the proposed computer
system for WellPets Vet Practice. This highlights the processes, which are
undertaken.

2.4.1 WellPet Context Diagram - Registration

Figure 1.1

11
2.4.2 Event List

1. Owner rings up to register their pets


2. Admin record Owner details and pet details
3. Admin issues a Owner number and Pet Number
4. Admin send Owner and Pet information to the National Database.
5. National Database check Information against there records, and then
confirm or deny.
6. Owner rings up or calls in to make an appointment
7. Admin Checks diary
8. Admin assign vet
9. Admin confirms appointment
10. Owner request Information on Insurance
11. Insurance company send out information
12. Owner choose a plan they want
13. Insurance Company send out Plan Number

12
2.5 Context Diagram Treatment and Payment

Below (figure 2.1) show the context diagram of the proposed computer
system for WellPets Vet Practice. This highlights the processes, which are
undertaken.

Figure 2.1

13
2.6 Dataflow Diagram Fragments

2.6.1 Registration

An owner can rings up or calls in at the WellPet surgery and ask to register
the pet(s). The admin takes the Owners details and the Pet details and
records them in there own file and gives them a unique owner and pet
number..

Figure 1.2

14
2.6.2 Making an Appointment

The owner rings or callings in at the WellPet to make an appointment the


admin take the owners and pet details. Check the diary and which vet is at
work that day and makes the appointment and confirms with the owner the
time and date. Admin record the date and time in the Diary, Owner file, Pets
file and the vets file.

Figure 1.3

15
2.6.3 National Database

Admin check with the National Database to see if they can register the owner
and the pet and to see if they have a record. Then the admin confirm the
registration.

Figure 1.4

16
2.6.4 Requesting Insurance

When the owner makes an appointment they are asked if they would like
Insurance and given different plans to look through they decided which one is
suitable then they get an plan number from the insurance company.

Figure 1.5

17
2.6.5 Assessment of Pet

When the owner brings the Pet into see the Vet they make an assessment of
the treatment that needs to be given and if any operations are needed. They
are then check to see if the drugs are available. The Vet then logs the
treatment.

Figure 2.2

18
2.6.6 Logging of Treatment

Once the Vet has treated the Pet they then log the treatment given into the
Pet file.

Figure 2.3

19
2.6.7 Creating of Invoice

Admin ask the finance department for the cost of a treatment or operation and
then they make out a invoice which is then sent to owner or the insurance
company if the owner has go insurnance.

Figure 2.4

20
2.6.8 Payment of Invoice

The owner or Insurance Company pays the invoice, which is then recorded
and a receipt is sent back to the owner or Insurance Company.

Figure 2.5

21
2.6.9 Creating of Statement

Every 3 months the Finance Department produce a statement for the Owner
and the Insurance Company.

Figure 2.6

22
2.6.10 Update of Records

Admin keep update the records in the Pet, Owner, vet and Finance datastores.

Figure 2.7

23
2.7 Top-Level Dataflow Diagram

2.7.1 WellPets Top level - Registration

Figure 3.1

24
2.8 Low-Level Dataflow Diagrams

Below (figure 4.1) is a low-level diagram showing the different parts to


registering a Pet.

Figure 4.1

25
Below (figure 4.2) is a low-level diagram showing how the national Database
check records to see if the owner has an conviction against them before been
able to register with the WellPet.

Figure 4.2

26
Below (figure 4.3) is a low-level diagram showing the different parts to making
an appointment with the WellPets.

Figure 4.3

27
Below (figure 4.4) is a low-level diagram showing the different parts when a
owner request insurance for their pet.

Figure 4.4

28
2.9 Top-Level Dataflow Diagram Treatment and Payment

Figure 3.2

29
2.10 Low-Level Dataflow Diagrams Treatment and Payments

Below (figure 5.1) showing the different processes in the assessment of a pet.

Figure 5.1

30
Below (figure 5.2) showing the different processes in the logging of treatment.

Figure 5.2

31
Below (figure 5.3) showing the different processes when making out invoices.

Figure 5.3

32
Below (figure 5.4) showing the different processes when making a payment

Figure 5.4

33
Below (figure 5.5) showing the different processes when making out statements

Figure 5.5

34
Below (figure 5.6) showing the different processes when updating the records.

Figure 5.6

35
3 SYSTEMS DESIGN

3.1 Data Dictionary

This section is on the data dictionary which holds details of the structures
and elements for each data store which are in the WellPets Data Flow
Diagrams.

36
3.2 Datastores Structures and Elements

3.2.1 Data Store Owners

Data structures:
OWNERS = {OWNER}
OWNER = Owner+OAddress+OContact Number
OCONTACT = OTitle+OForename+OSurname
OADDRESS = House#+Street+Town+County+Postcode
ODETAILS = Date_Of_Birth+
Tel_No_Home+Tel_No_Work+Mobile+Email
OWNER NUMBER = Surname+Date_Of_Register

Data Elements:
Otitle = 1{char}4 **[Mr|Mrs|Miss|Dr]
Oforename = 1{char}20
OSurname = 1{char}20
House# = 1{char}3 **usually numeric but can form from
subset [0..9|a..z|A..Z]
Street = 1{char}20 **usually from [A..Z|a..z|0..9,-]
Town = 1{char}20 **usually from [A..Z|a..z|0..9,-]
County = 1{char}20 **usually from [A..Z|a..z|0..9,-]
Postcode = 7{char}7 **format $$# %$$ where $=[A..Z] #=[1..99]
and %=[0..9]
Date_Of_Birth = date **format dd/mm/yy
Tel_No_Home = 12{char}12 **usually from [0..9||-]
Tel_No_Work = 12{char}12 **usually from [0..9||-]
Moible = 12{char}12 **usually from [0..9||-]
Email = 1{char}40 **usually from [A..Z|a..z|0..9,-@]
Owner_Number = 1{char}40 **usually form [A..Z|a..z|0..9,-]

37
3.2.2 Data Store Pets

Data structures:
PETS = {PET}
PET = Pet+PAddress+PContact Number+PGender
PCONTACT = PForename+PSurname
PADDRESS = House#+Street+Town+County+Postcode
PCONTACT NO = Tel_No_Home
PDETAILS = Date_Of_Birth+Ptype+PBreed
PET NUMBER = Pet Name+Date of register

Data
Elements:
PForename = 1{char}20
PSurname = 1{char}20
House# = 1{char}3 **usually numeric but can form from subset
[0..9|a..z|A..Z]
Street = 1{char}20 **usually from [A..Z|a..z|0..9,-]
Town = 1{char}20 **usually from [A..Z|a..z|0..9,-]
County = 1{char}20 **usually from [A..Z|a..z|0..9,-]
Postcode = 7{char}7 **format $$# %$$ where $=[A..Z] #=[1..99]
and %=[0..9]
Date_Of_Birth = date **format dd/mm/yy
Gender = 1{char}15 **[M|F]
Type = 1{char}15
Breed = 1{char}15
Tel_No_Home = 12{char}12 **usually from [0..9||-]
Pet_Number = 1{char}40 **usually form [A..Z|a..z|0..9,-]

38
3.2.3 Data Store Appointments

Data structures:
APPOINTMENTS = {APPOINTMENT}
PET = Pet+PAddress+PContact Number+PGender
PCONTACT = PForename+PSurname
PADDRESS = House#+Street+Town+County+Postcode
PCONTACT NO = Tel_No_Home
PDETAILS = Date_Of_Birth+Ptype+PBreed
PET NUMBER = Pet Name+Date of register
VET DETAILS = Title+Forename+Surname

Data
Elements:
Date = 1{char}8 **format dd/mm/yy
Time = 1{char}10 **format hh:mm AM or PM
PForename = 1{char}20
PSurname = 1{char}20
House# = 1{char}3 **usually numeric but can form from subset
[0..9|a..z|A..Z]
Street = 1{char}20 **usually from [A..Z|a..z|0..9,-]
Town = 1{char}20 **usually from [A..Z|a..z|0..9,-]
County = 1{char}20 **usually from [A..Z|a..z|0..9,-]
Postcode = 7{char}7 **format $$# %$$ where $=[A..Z] #=[1..99]
and %=[0..9]
Date_Of_Birth = date **format dd/mm/yy
Gender = 1{char}15 **[M|F]
Type = 1{char}15
Breed = 1{char}15
Tel_No_Home = 12{char}12 **usually from [0..9||-]
Pet_Number = 1{char}40 **usually form [A..Z|a..z|0..9,-]

39
3.2.4 Data Store Vets

Data structures:
VET = {VET}
VET = VetName+VAddress+VContact
VNAME = VTitle+VForename+VSurname
VCONTACT = VForename+VSurname
VADDRESS = House#+Street+Town+County+Postcode
VCONTACT NO = Tel_No_Home+Email
VDETAILS = Date_Of_Birth+VGender

Data Elements:
VForename = 1{char}20
VSurname = 1{char}20
House# = 1{char}3 **usually numeric but can form from
subset [0..9|a..z|A..Z]
Street = 1{char}20 **usually from [A..Z|a..z|0..9,-]
Town = 1{char}20 **usually from [A..Z|a..z|0..9,-]
County = 1{char}20 **usually from [A..Z|a..z|0..9,-]
Postcode = 7{char}7 **format $$# %$$ where $=[A..Z]
#=[1..99] and %=[0..9]
Date_Of_Birth = date **format dd/mm/yy
Gender = 1{char}15 **[M|F]
Tel_No_Home = 12{char}12 **usually from [0..9||-]
Email = 1{char}40 **usually from [A..Z|a..z|0..9,-]
Date_Registered = Date **format dd/mm/yy
Specialities = 1{char}20
Qualifications = 1{char}100
Training = 1{char}100

40
3.2.5 Data Store Insurance Plans

Data structures:
INSURANCE PLANS = {INSURANCE PLAN}
PET = Pet+PAddress+PContact Number
ONAME = OTitle+OForename+OSurname
PCONTACT = PForename+PSurname
PADDRESS = House#+Street+Town+County+Postcode
PCONTACT NO = Tel_No_Home
PDETAILS = Date_Of_Birth+Ptype+PBreed+PGender
PET NUMBER = Pet Name+Date of register
PLAN NUMBER = Surname+Petname+Date_Registered

Data Elements:
Plan Name = 1{char}30
Date_Registered = Date **format dd/mm/yy
Plan _Number = 1{char}40 **Usually from [A..Z|a..z|0..9,-]
Cover = 1{char}40
PForename = 1{char}20
PSurname = 1{char}20
OForename = 1{char}20
OSurname = 1{char}20
House# = 1{char}3 **usually numeric but can form from
subset [0..9|a..z|A..Z]
Street = 1{char}20 **usually from [A..Z|a..z|0..9,-]
Town = 1{char}20 **usually from [A..Z|a..z|0..9,-]
County = 1{char}20 **usually from [A..Z|a..z|0..9,-]
Postcode = 7{char}7 **format $$# %$$ where $=[A..Z]
#=[1..99] and %=[0..9]
Date_Of_Birth = date **format dd/mm/yy

41
Gender = 1{char}15 **[M|F]
Type = 1{char}15
Breed = 1{char}15
Tel_No_Home = 12{char}12 **usually from [0..9||-]
Pet_Number = 1{char}40 **usually form [A..Z|a..z|0..9,-]

42
3.2.6 Data Store Rejections

Data structures:
REJECTIONS = {REJECT}
PET = PetName
ONAME = OTitle+OForename+OSurname
PCONTACT = PForename+PSurname
PADDRESS = House#+Street+Town+County+Postcode
PCONTACT NO = Tel_No_Home
PDETAILS = Date_Of_Birth+Ptype+PBreed+PGender
PET NUMBER = Pet Name+Date of register

Data
Elements:
PForename = 1{char}20
PSurname = 1{char}20
OForename = 1{char}20
OSurname = 1{char}20
House# = 1{char}3 **usually numeric but can form from subset
[0..9|a..z|A..Z]
Street = 1{char}20 **usually from [A..Z|a..z|0..9,-]
Town = 1{char}20 **usually from [A..Z|a..z|0..9,-]
County = 1{char}20 **usually from [A..Z|a..z|0..9,-]
Postcode = 7{char}7 **format $$# %$$ where $=[A..Z] #=[1..99]
and %=[0..9]
Date_Of_Birth = date **format dd/mm/yy
Gender = 1{char}15 **[M|F]
Type = 1{char}15
Breed = 1{char}15
Tel_No_Home = 12{char}12 **usually from [0..9||-]

43
3.2.7 Data Store Confirmations

Data structures:
CONFIRMATIONS = {CONFIRM}
PET = PetName
ONAME = OTitle+OForename+OSurname
PCONTACT = PForename+PSurname
PADDRESS = House#+Street+Town+County+Postcode
PCONTACT NO = Tel_No_Home
PDETAILS = Date_Of_Birth+Ptype+PBreed+PGender
PET NUMBER = Pet Name+Date of register

Data
Elements:
PForename = 1{char}20
PSurname = 1{char}20
OForename = 1{char}20
OSurname = 1{char}20
House# = 1{char}3 **usually numeric but can form from subset
[0..9|a..z|A..Z]
Street = 1{char}20 **usually from [A..Z|a..z|0..9,-]
Town = 1{char}20 **usually from [A..Z|a..z|0..9,-]
County = 1{char}20 **usually from [A..Z|a..z|0..9,-]
Postcode = 7{char}7 **format $$# %$$ where $=[A..Z] #=[1..99]
and %=[0..9]
Date_Of_Birth = date **format dd/mm/yy
Gender = 1{char}15 **[M|F]
Type = 1{char}15
Breed = 1{char}15
Tel_No_Home = 12{char}12 **usually from [0..9||-]

44
3.2.8 Data Store Diary

Data
structures:
DIARY = {DIARY}
DIARY = PName+OName+Address+Contact+Vet+date+time+descr
iption
PET = Pet+PAddress+PContact Number
ONAME = OTitle+OForename+OSurname
PCONTACT = PForename+PSurname
PADDRESS = House#+Street+Town+County+Postcode
PCONTACT = Tel_No_Home
NO
PDETAILS = Date_Of_Birth+Ptype+PBreed+PGender
PET = Pet Name+Date of register
NUMBER
VET = Title+Forename+Surname
DETAILS

Data
Elements:
Date = 1{char}8 **format dd/mm/yy
Time = 1{char}10 **format hh:mm AM or PM
PForename = 1{char}20
PSurname = 1{char}20
OForename = 1{char}20
OSurname = 1{char}20
House# = 1{char}3 **usually numeric but can form from subset
[0..9|a..z|A..Z]
Street = 1{char}20 **usually from [A..Z|a..z|0..9,-]

45
Town = 1{char}20 **usually from [A..Z|a..z|0..9,-]
County = 1{char}20 **usually from [A..Z|a..z|0..9,-]
Postcode = 7{char}7 **format $$# %$$ where $=[A..Z] #=[1..99]
and %=[0..9]
Date_Of_Birth = date **format dd/mm/yy
Gender = 1{char}15 **[M|F]
Type = 1{char}15
Breed = 1{char}15
Tel_No_Home = 12{char}12 **usually from [0..9||-]
Pet_Number = 1{char}40 **usually form [A..Z|a..z|0..9,-]
VTitle = 1{char}4 Mr|Mrs|Miss|Ms|Dr
VForename = 1{char}20
VSurname = 1{char}20
Description = 1{char}100

46
3.2.9 Data Store Missed Appointments

Data structures:
MISSED = {MISSED APPOINTMENT}
APPOINTMENTS
MISSED = PName+OName+Address+Contact+Vet+date+time
APPOINTMENT +reason
PET = Pet+PAddress+PContact Number
ONAME = OTitle+OForename+OSurname
PCONTACT = PForename+PSurname
PADDRESS = House#+Street+Town+County+Postcode
PCONTACT NO = Tel_No_Home
PDETAILS = Date_Of_Birth+Ptype+PBreed+PGender
PET NUMBER = Pet Name+Date of register
VET DETAILS = Title+Forename+Surname

Data
Elements:
Date = 1{char}8 **format dd/mm/yy
Time = 1{char}10 **format hh:mm AM or PM
PForename = 1{char}20
PSurname = 1{char}20
OForename = 1{char}20
OSurname = 1{char}20
House# = 1{char}3 **usually numeric but can form from subset
[0..9|a..z|A..Z]
Street = 1{char}20 **usually from [A..Z|a..z|0..9,-]
Town = 1{char}20 **usually from [A..Z|a..z|0..9,-]
County = 1{char}20 **usually from [A..Z|a..z|0..9,-]
Postcode = 7{char}7 **format $$# %$$ where $=[A..Z] #=[1..99]

47
and %=[0..9]
Date_Of_Birth = date **format dd/mm/yy
Gender = 1{char}15 **[M|F]
Type = 1{char}15
Breed = 1{char}15
Tel_No_Home = 12{char}12 **usually from [0..9||-]
Pet_Number = 1{char}40 **usually form [A..Z|a..z|0..9,-]
VTitle = 1{char}4 Mr|Mrs|Miss|Ms|Dr
VForename = 1{char}20
VSurname = 1{char}20
Reason = 1{char}100

48
3.2.10 Data Store Cancelled Appointments

Data structures:
CANCELLED = {CANCELLED APPOINTMENT}
APPOINTMENT
S
CANCELLED = PName+OName+Address+Contact+Vet+date+time+rea
APPOINTMENT son
PET = Pet+PAddress+PContact Number
ONAME = OTitle+OForename+OSurname
PCONTACT = PForename+PSurname
PADDRESS = House#+Street+Town+County+Postcode
PCONTACT NO = Tel_No_Home
PDETAILS = Date_Of_Birth+Ptype+PBreed+PGender
PET NUMBER = Pet Name+Date of register
VET DETAILS = Title+Forename+Surname

Data
Elements:
Date = 1{char}8 **format dd/mm/yy
Time = 1{char}10 **format hh:mm AM or PM
PForename = 1{char}20
PSurname = 1{char}20
OForename = 1{char}20
OSurname = 1{char}20
House# = 1{char}3 **usually numeric but can form from subset
[0..9|a..z|A..Z]
Street = 1{char}20 **usually from [A..Z|a..z|0..9,-]
Town = 1{char}20 **usually from [A..Z|a..z|0..9,-]

49
County = 1{char}20 **usually from [A..Z|a..z|0..9,-]
Postcode = 7{char}7 **format $$# %$$ where $=[A..Z] #=[1..99]
and %=[0..9]
Date_Of_Birth = date **format dd/mm/yy
Gender = 1{char}15 **[M|F]
Type = 1{char}15
Breed = 1{char}15
Tel_No_Home = 12{char}12 **usually from [0..9||-]
Pet_Number = 1{char}40 **usually form [A..Z|a..z|0..9,-]
VTitle = 1{char}4 Mr|Mrs|Miss|Ms|Dr
VForename = 1{char}20
VSurname = 1{char}20
Reason = 1{char}100

50
3.2.11 Data Store Statements

Data
structures:
STATEMENTS = {Statement }
Statement = Statement#+date+owner+3+owner#,+pet Name+Pet
ID#+Insurance Plan#+Total Paid+Total Outstanding
OWNER = OTitle+OForename+OSurname
OCONTACT = OForename+OSurname
OADDRESS = House#+Street+Town+County+Postcode
OCONTACT = Tel_No_Home
NO
PET = Pet+PAddress+PContact Number
PET NUMBER = Pet Name+Date of register
INSURANCE = Surname+#+N/a
NUMBER
LINE ITEM = Date+Invoice#+Treatment Code+Treatment+Cost
TOTAL PAID = Currenty
OUTSTANDIN = Currency
G AMOUTN

Data
Elements:
Statement# = 1{char}12 **numeric characters each[0..9]
Date = 1{char}8 **format dd/mm/yy
Time = 1{char}10 **format hh:mm AM or PM
OForename = 1{char}20
OSurname = 1{char}20
House# = 1{char}3 **usually numeric but can form from subset
[0..9|a..z|A..Z]

51
Street = 1{char}20 **usually from [A..Z|a..z|0..9,-]
Town = 1{char}20 **usually from [A..Z|a..z|0..9,-]
County = 1{char}20 **usually from [A..Z|a..z|0..9,-]
Postcode = 7{char}7 **format $$# %$$ where $=[A..Z] #=[1..99]
and %=[0..9]
Telephone = 1{char}15 **usually form [0..9]
Fax# = 1{char}15 **usually form [0..9]
Email = 1{char}40 **usually fom [A..Z|a..z|0..9|@]
Customer# = 1{char}30 **usually fom [A..Z|a..z|0..9|]
Pet Name = 1{char}30
Pet_Number = 1{char}40 **usually form [A..Z|a..z|0..9,-]
Insurance# = 1{char}30 **usually fom [A..Z|a..z|0..9|]
Date = Date
Treatment = 1{char}10 **usually [A..Z|0..9]
Code
Treatment = 1{char}100
Cost = 1{char}10 Currency
Total Paid = 1{char}10 Currency
Outstanding = 1{char}10 Currency
amount

52
3.2.12 Data Store Invoices

Data
structures:
INVOICES = {Invoice }
Invoice = Invoicet#+date+owner+3+owner#,Price+Total Amount
OWNER = OTitle+OForename+OSurname
OCONTACT = OForename+OSurname
OADDRESS = House#+Street+Town+County+Postcode
OCONTACT = Tel_No_Home
NO
PET = Pet Name
DATE OF = Date
TREATMENT
PRICE = Currency

Data
Elements:
Invoice# = 1{char}12 **numeric characters each[0..9]
Date = 1{char}8 **format dd/mm/yy
OForename = 1{char}20
OSurname = 1{char}20
House# = 1{char}3 **usually numeric but can form from subset
[0..9|a..z|A..Z]
Street = 1{char}20 **usually from [A..Z|a..z|0..9,-]
Town = 1{char}20 **usually from [A..Z|a..z|0..9,-]
County = 1{char}20 **usually from [A..Z|a..z|0..9,-]
Postcode = 7{char}7 **format $$# %$$ where $=[A..Z] #=[1..99]
and %=[0..9]
Telephone = 1{char}15 **usually form [0..9]

53
Fax# = 1{char}15 **usually form [0..9]
Email = 1{char}40 **usually fom [A..Z|a..z|0..9|@]
Treatment = 1{char}10 **usually [A..Z|0..9]
Code
Treatment = 1{char}100
Cost = 1{char}10 Currency
Total Amount = 1{char}10 Currency

54
3.2.13 Data Store Receipt

Data
structures:
RECEIPTS = {Receipt }
RECEIPTS = Receipt#+date+owner+3+owner#+Paid
OWNER = OTitle+OForename+OSurname
OCONTACT = OForename+OSurname
OADDRESS = House#+Street+Town+County+Postcode
OCONTACT = Tel_No_Home
NO
PET = Pet Name
DATE OF = Date
PAYMENT
PAID = Currency

Data
Elements:
Receipt# = 1{char}12 **numeric characters each[0..9]
Date = 1{char}8 **format dd/mm/yy
OForename = 1{char}20
OSurname = 1{char}20
House# = 1{char}3 **usually numeric but can form from subset
[0..9|a..z|A..Z]
Street = 1{char}20 **usually from [A..Z|a..z|0..9,-]
Town = 1{char}20 **usually from [A..Z|a..z|0..9,-]
County = 1{char}20 **usually from [A..Z|a..z|0..9,-]
Postcode = 7{char}7 **format $$# %$$ where $=[A..Z] #=[1..99]
and %=[0..9]
Telephone = 1{char}15 **usually form [0..9]

55
Fax# = 1{char}15 **usually form [0..9]
Email = 1{char}40 **usually fom [A..Z|a..z|0..9|@]
Date of = 1{char}8 Date
Payment
PAID = 1{char}10 Currency

56
3.2.14 Data Store Costs

Data
structures:
COSTS = {Cost }
CODE # = Code Number
NAME = Name of Product
PRICE = Price

Data
Elements:
Code # = 1{char}12 **numeric characters each[0..9]
Name = 1{char}40 **usually from [A..Z|a..z|0..9,-]
Price = 1{char}20 Currency

57
3.2.15 Data Store Treatments

Data
structures:
TREATMENT = Description
CODE # = Code Number
NAME = Name of Product
PRICE = Price

Data
Elements:
Treatment = 1{char}100 **usually from [A..Z|a..z|0..9,-]
Code # = 1{char}12 **numeric characters each[0..9]
Name = 1{char}40 **usually from [A..Z|a..z|0..9,-]
Price = 1{char}20 Currency

58
3.2.16 Data Store Drugs

Data
structures:
DRUGS = {Drug}
CODE # = Code Number
NAME = Name of Product
PRICE = Price
STOCK = #in stock

Data
Elements:
Drug = 1{char}100 **usually from [A..Z|a..z|0..9,-]
Code # = 1{char}12 **numeric characters each[0..9]
Name = 1{char}40 **usually from [A..Z|a..z|0..9,-]
Price = 1{char}20 Currency
Stock = 1{char}5 **numeric characters each[0..9]

59
3.2.17 Data Store Equipment

Data
structures:
EQUIPMENT = {Equipment}
CODE # = Code Number
NAME = Name of Product
PRICE = Price
STOCK = #in stock

Data
Elements:
Equipment = 1{char}100 **usually from [A..Z|a..z|0..9,-]
Code # = 1{char}12 **numeric characters each[0..9]
Name = 1{char}40 **usually from [A..Z|a..z|0..9,-]
Price = 1{char}20 Currency
Stock = 1{char}5 **numeric characters each[0..9]

60
3.2.18 Data Store Insurance Company

Data
structures:
INSURANCE = {Insurance Company }
COMPANIES
COMPANY = Company Name
NAME
CCONTACT = CForename+CSurname
CADDRESS = House#+Street+Town+County+Postcode
CCONTACT = Tel_No_Home
NO

Data
Elements:
CNAME = 1{char}50
CForename = 1{char}20
CSurname = 1{char}20
House# = 1{char}3 **usually numeric but can form from subset
[0..9|a..z|A..Z]
Street = 1{char}20 **usually from [A..Z|a..z|0..9,-]
Town = 1{char}20 **usually from [A..Z|a..z|0..9,-]
County = 1{char}20 **usually from [A..Z|a..z|0..9,-]
Postcode = 7{char}7 **format $$# %$$ where $=[A..Z] #=[1..99]
and %=[0..9]
Telephone = 1{char}15 **usually form [0..9]
Fax# = 1{char}15 **usually form [0..9]
Email = 1{char}40 **usually fom [A..Z|a..z|0..9|@]

61
3.3 Dataflows Structures and Elements

Name:

Description: appointment request made by owner


Content: = DIARY
Source: Process 1.3 Making an appointment
Data Store 4 diary
Destination: Process 1.3 Making an appointment
Data Store 4 diary
Read: Live/daily/weekly/monthly
Write: Live/daily/weekly/monthly
Status: Disk/Paperledger/Written Report

Name:

Description: Pet details are recorded and stored


Content: =PET
Source: Process 1.1 Registration of Pet(s)
Data Store 2. Pet
Destination: Process 1.1 Registration of pet(s)
Data Store 1 Pet
Read: Live/daily/weekly/monthly
Write: Live/daily/weekly/monthly
Status: Disk/Paperledger/Written Report

62
3.4 Process Descriptions

DATA DICTIONARY: PROCESS DESCRIPTORS


Name:

Description: processes registration enquiries, adds Pet to the


system/assigned pet ID Number
Data Inputs: dataflow reg info from data store 2. registration
dataflow vet from data store 2. registration
Data dataflow pet to data store 2. pet
Outputs: dataflow registration to data store 2. pet
Variables:
Mini-Spec: REPEAT
INPUT Register Pet
IF Pet Details = not exist THEN
Assign Pet Number
Register Pet to PETS
ELSE
Pet record exists

END

63
Make an Appointment

DATA DICTIONARY: PROCESS DESCRIPTORS


Name:

Description: Make an appointment


Data Inputs: dataflow appointment request from entity pet
dataflow pet from data store 2. pets
dataflow vet from data store 3. vets
dataflow appointment from data store 4. diary

Data dataflow appointment confirmation to entity patient


Outputs: dataflow appointment list to entity dentist
Variables:
Mini-Spec: INPUT Appointments
IF Date and Time = not exist THEN
Assign Pet
Register Appointment to Diary, Appointment, Pet,
Owner and
Vet
ELSE
Appointment exists

END

64
4 CRITICAL REVIEW

When I first started this System Analysis and Design I thought WHAT!!!. I will
never understand this it was a lot of double dutch to me, but by going to the
lectures and practicals I finally got the hang of it. I would not say that it is
perfect. I think I have missed a lot out of it but I have done what I think is
needed. I know that some of the datastore are wrong and have ven been
missed out on some diagrams.

I now have a better understanding of System Analysis and Design.

65
REFERENCES

Mansha Nawaz Home page - VetsConnor Vets.Youll Dentist Kitchener.h

APPENDIX

Figures 1.1 1.6 are to do with the Registration process


Figures 2.1 2.5 are to do with the Treatment and Payment process

Figure 3.1, 3.2 are top level diagrams for Registration, Treatment and
Payments

Figures 4.1 4.4 are low level diagrams for Registration process

66
Figure 5.1 - 5.6 are low level diagrams for Treatment and Payment process

67

You might also like