The Devil in the Data - The International Institute of ... · The Devil in the Data a gruesome tale...
Transcript of The Devil in the Data - The International Institute of ... · The Devil in the Data a gruesome tale...
The Devil in the Dataa gruesome tale
.....of software development
Mike Goodland
The Consultant Physician: Mr Smith
2©Metadata Training
The Hospital IT Director
Patient
Administration
Ward
Treatments
Pharmacy
Pathology
Theatre
Management
Clinical Staff
Management
GP
3©Metadata Training
Mr Smith’s request
Dear IT Director,
Please order 30 iPads; one for each doctor who works for me on the wards. Each iPad will be linked to an electronic file which the IT department will hold.
A doctor can list all the wards in the hospital. Each ward would have its own screen and by tapping, the doctor would be able to list all patients in the ward, tapping on the patient name would bring-up patient details showing all drugs and treatments prescribed in the last five days. A doctor can create a patient’s prescription - this is stored and fired-off to the pharmacy system.
Many thanks
Mr Smith (Consultant Physician)
• List out some functional requirements for this solution. We use the verb noun format (e.g. Book Training Course)
Some Functional Requirements
• Display all wards
• Display one ward and its management
• Display patients in ward
• Create prescription for patient
• Display patient prescriptions in last five days
• Others implied: Create ward, Create patient, Modify ward, Modify patient...
5©Metadata Training
I need 30 iPads to show treatments and linked to
the Pharmacy system
It can go into next years budget - need to investigate how it integrates with our other new systems...maybe
1 year?
Huh...not that hard...young Bart Smith could fix it in a week or
two
The Conversation
6©Metadata Training
The Geek
Bart, Mr Smith’s nephew
1st year BSc Computer Science
PHP, MySQL
Give me 3 weeks and an
iPad
7©Metadata Training
8
2 months later installed....
6 months later....data (from Hell)
9
Any problems with this data?
©Metadata Training
Attributes• Smallest unit of system information of independent significance
– Atoms of business data
• Attributes often need to be fully defined
– Name, description, format, range of values, validation rules, method of derivation
– Naming and documentation standards must be decided
• Part of functional specification, wireframes, screen designs, report layouts, forms design, system interfaces as well as database design
Attribute (Type)
patientSurname
patientID
dateOfBirth
Attribute Occurrence (or value)
Moneybags
Penniless
1234
1235
23/7/1953
16/8/1958
©Metadata Training
Classes and Objects
Ward
No.
Ward
Name
Type Number
of beds
3
11
10
Nightingale
Fleming
Barnard
Medical
Medical
Surgical
8
12
21
Ward
• Classes (entities) become a
database Table
• Object = Instance = Occurrence = Row in Table
• a Class is a type thing representing many Objects sharing the
same Attribute types (and Operations)
• information systems and their classes:
– Library - books, borrowers, loans, reservations
– Personnel - employees, jobs, grades, skills
– Hospital - patients, wards, doctors, prescriptions
Ward
wardID
wardName
wardType
noBeds
©Metadata Training
Links between Objects
• Objects are linked to other
objects
– Moneybags is treated in Ward 10
• Can name at both ends:
– A ward treats zero or more
patients
– A patient is treated in zero
or one wardA. Foot
S. Bottom
etc
Wards Patients
Ward 10
M. Moneybags
S. Head
B. Leg
P. Hand
etc
Ward 11
©Metadata Training
Associations between Classes
• ‘One-to-Many’ association in that one
ward object can have many patient
objects linked
• 0… * = 0 to many, 0…1 = 0 or 1
• Can name at both ends:
– A ward treats zero or more
patients
– A patient is treated in zero or one
ward
Patient
patientID
patientSurname
patientDOB
wardID
Ward
wardID
wardName
wardType
noBeds
0..*
0..1treats
is treated in
©Metadata Training
Hospital Class Model Improvedbut grossly simplified
©Metadata Training
Patient
patientID
patientSurname
patientDOB
wardID
Ward
wardID
wardName
wardType
noBeds
0..*
0..1
Prescription
Item
dateTimePresc
dosage
frequency
patientID
drugCode
doctorID
Drug
drugCode
drugName
given>
0..*
1
contains>
0..*
1
Doctor
doctorID
doctorSurname
responsible for<0..*
1
given by>
1
0..*
Key Points
Attributes need to be clearly defined and documented
– Not just a database admin (DBA) job
– Part of functional specifications
Data must be organised
– Attributes grouped into interlinked Classes
– Models / Diagrams give big picture and detail
– Enable testing of reporting requirements
– Basis for database design
Data must be understood by business analysts
– Not just a functional / process view
15©Metadata Training
Thank You
Please visit metadatatraining.co.uk for
– Data Modelling courses
– Other Business Analysis courses leading to the BCS BA
Diploma and the IIBA CBAP
– Agile courses including AgileBA and Prince2 Agile
16©Metadata Training