Monday, July 22, 2019
The United Kingdom awarding body Essay Example for Free
The United Kingdom awarding body Essay I have been asked to design a system for the United Kingdom Awarding Body (UKAB), an imaginary exam board. This system is going to be used for the monitoring of its post-examination re-marks. System Specification: The system specification needs to store the following data: à Candidate name Candidate number Centre number à Subject Reference Code à Original mark à Re-mark mark Whether the centre requested the return of the script It was also necessary to store the grade boundaries for each of the subjects. For the system I was asked to build the following table was provided for the grade boundaries of each subject: Subject Reference Grade Boundaries (%) Code A B C D E 01325 75 67 60 54 48 20094 70 60 50 40 30 28181 90 78 66 54 42 54821 85 79 74 64 55 64773 68 60 52 46 40 The system needed to be able to produce hard copies of the following: à A daily list of any re-marks completed where a mark change has affected the grade; A daily list of any re-marks still outstanding, i. e. that have not been completed within a three-week period; à A list of re-marks that have been requested for a particular subject; à A list of re-marks that have been requested from a particular centre. The system also needed to be able to produce documents which could be returned to the centre giving the results of the re-marking. The document needed to show the UKAB logo and also the following details: Centre number (integer) à Candidate name (string) Candidate number (integer) à Subject Reference Code (integer) à Original Mark (integer) à Original Grade (text) à Either the re-mark mark and grade, if changed, or a sentence to say that there has been no change (integer/text) Processes: The user of the system would need to be able to carry out the following processes: à Record information about candidates. Amend/delete information about candidates Record re-marks Query so as to obtain the information for the hard copies which I listed above. Firstly I needed to use the data requirements to start to design the entities and attributes that I would use in the system. Following is a brainstorm of the ideas I used to come to the first draft of the entities and attributes: Initial Entities: After this brainstorming I decided to start with the following 3 entities: Candidate(Candidate Name, Candidate Number, Centre Number, Subject Reference Code, Original Mark, Re-mark mark, Requested) Subject (Subject Reference Code, A, B, C, D, E). Centre (Centre Number, Centre Name, Centre Address) Where the underlined attributes represent the primary keys within each entity. In the candidate entity I decided to use both candidate number and also centre number as a joint primary key as candidate numbers were only unique to their centre. This would mean that there could be multiple candidates with the same candidate number; however the candidate number and centre number combined would always be unique. For the subject entity, subject reference code was the only sensible primary key as it was the only unique attribute in the entity. Centre Number is both a primary key in the centre entity and also a foreign key in the candidate entity. Another foreign key in this initial model is subject reference code in the candidate entity. Data Types: Candidate Name: text: 20 Candidate Number: integer Centre Number: long integer Subject Name: text: 15 Subject Reference Code: long integer Original Mark: integer Original Grade: text: 1 Re-mark Mark: integer Re-mark Grade: text: 1 A: integer B: integer C: integer D: integer E: integer Centre Name: text: 20 Centre Address: 200 For each of the field I altered the length of each field appropriately. I did this by either switching from long integer to integer, or changing the maximum number of characters in each field. In this way I was able to save on the space that the database used. Following is the reasons for choosing the data types for some of the fields I used in the database: Candidate Name: I limited the field length to 20 characters as this would be long enough to cater for any name but yet saves space as less space has to be set aside for each record. Candidate Number: as candidate number is only 4 digits long there would be no way in which it would exceed the maximum length an integer would provide. Therefore I chose to decrease the field length to integer so as to save space. Centre Number: I was not able to decrease the size of this field as Centre Number is a 5 digit number and therefore can exceed the maximum length of an integer of 32768. Subject Reference Code: this field again used long integer as its data type due to it being a 5 digit code. To ensure that the field could start with a 0 I altered the properties of the field as below: Original Grade: I decreased the length of this field to 1. The grade would always only be a 1 letter grade such as, A or B. Therefore I was able to decrease the length of this field to 1 at no consequence. Re-mark Mark: I changed this to integer as it was only a 2 digit number. Centre Address: I changed this to 200 characters as an address can be quite long. However I did not change the data type to memo which would have provided more space as it would make the system slower and the extra space would not have been needed First Normal Form: I realized that having the candidates and also the re-marks in the same table, that I would be unnecessarily duplicating data within the system. I therefore decided to split the entity up into two separate entities, candidate and re-mark. So my new entity list looked as below: Candidate (Candidate Name, Candidate Number, Centre Number) Re-mark (Subject Name, Subject Reference Code, Candidate Number, Centre Number, Original Mark, Original Grade, Re-mark mark, Re-mark Grade, Requested) Subject (Subject Reference Code, A, B, C, D, E) Centre (Centre Number, Centre Name, Centre Address) The new entity remark has a composite primary key consisting of, subject reference code, candidate number, and centre number. This was the only combination of attributes within this entity which would ensure that it was always unique. Also in this way I was able to ensure that all of my tables were in first normal form, satisfying the criteria of eliminating duplicative fields within the same table. By making the re-mark table a sub-form of candidate through the use of a one to many relationship between the two, I was able to have multiple re-marks for each candidate without having to break the first normal form which I need to adhere to. Second Normal Form: For a table to fulfill the requirements to be in second normal form, all of the non-key attributes within the entity must be functionally dependant upon the primary key of the table. All of my entities satisfied these criteria so therefore no changes needed to be made. Third Normal Form: For a table to fulfill the requirements to be in third normal form, it must first be in first and also second normal form. On top of the requirements for the first two forms, it must also be ensured that no non-key attributes are dependant upon other non-key attributes. My database already satisfies this requirement and can therefore be said to be in third normal form. As my database fulfills all of the requirements to be in first, second and third normal form my database has now been normalized. Relationships: After designing the entities my table will use while considering the normalization of my tables I have now come up with the following relationships: Above is a screenshot of my relationships that I have created in access. As can be noted there are no many to many relationships as I have eliminated them through the normalization process. Software: For this project I am going to be using Microsoft Access, as well as some coding within Visual Basic which I will implement into the database. I have chosen to use the following combination as it is an easy way to set up tables and the initial database, but also allows me to utilize the power of a programming language such as Visual Basic so I can fine tune and customize the user interface and other aspects of the database. I have chosen to use a package to create the initial database as opposed to programming the whole database as programming the whole database from the start is a larger task which I would not have been able to accomplish with my current understanding of programming. Also for this particular project the extra power that a programmed database could offer was not needed as the solution could be provided in a fairly simplistic form. My other main option for creating this database was to use Delphi, which is a form of Pascal. I have already covered most of the Pascal syntax and it would have been the best alternative choice, however I did not do this for the reasons above. On top of this I wanted to expand my knowledge of systems creation by experimenting with Visual Basic and also Access. Hardware: The hardware which I will be initially creating my solution on is my home PC. This PC was built by me and therefore I am very familiar with the hardware that I will be using. The hardware is of a medium to high specification: à AMD Athlon XP 1800+ (clocked at 1533 MHz) 512 MB DDR PC2100 RAM. 40 GB Hard drive However I wanted to ensure that the software that I was creating would work on a PC of lower specification so that anyone that was using it would not be forced to upgrade their systems to use my database. I therefore did some testing on the PCs at my College which were of a lower specification: à Intel Pentium III 800 MHz à 128 MB SD RAM à 10 GB Hard drive Design: Tables: Following are screen shots of the tables in my database: Candidate Design View: As can be seen in the properties of the candidate name attribute, I have changed the field size to 20. Also it can be seen that the primary key is a composite one made up of candidate number and centre number. Candidate Table View: Centre Design View: In the above view, the focus is on the centre number attribute, as can be seen the field size is set to long integer, also for the format I have altered it to 00000. This represents the number of digits that I was to be shown at any time, this is a work around of the problem that if a centre number begins with a zero then it will still be kept. The primary key for this entity is Centre Number. Centre Table View: The test data included 3 centres. So as to show the full address of each centre I have had to increase the height of each record within the table. Re-mark Design View: As can be seen for this table the primary key is a composite one comprising of subject reference code, candidate number and centre number. Re-mark Table View: Here is all of the test data for my database, it may be noted that there are more than 15 re-marks (the corresponding number of candidates). This is because I have given some candidates a number of re-marks so as to be able to test the effects of more than one re-mark per candidate. Subject Design View:In the subject table I have given the primary key to the only unique attribute within the entity which is subject reference code. Subject Table View: As can be seen for each grade boundary I have just given the singular value as opposed to the actual bounds for each grade. This is so as to make coding for the user interface easier later on in the solution. Validation Rules: In the specification there were a few rules by which some of the data needed to adhere to, these were: 1. Candidate Numbers are of 4 digits and will be unique within any centre, but not between centres. The solution should ensure that this is allowed for. 2. Centre numbers are allocated within the range 10000 to 80000 and are unique. 3. Subject Reference Codes are 5 numeric digits. The following are the validation rules that I used to ensure that my data was correct. 1. For the candidate numbers I used the following validation rule: (0) And (10000). This allowed for the numbers from 0001 up to 9999. 2. For the centre numbers I used the following validation rule: (9999) And (80001). This allowed for the numbers 10000 to 80000. 3. For the subject reference codes I used the following validation rule: (0) And (100000). This allowed for any 5 digit code. Other validation codes that I used include: 1. (=0) And (=100) : for the original mark and re-mark mark attributes. This ensured that every mark was expressed out of 100. 2. (=A) Or (=B) Or (=C) Or (=D) Or (=E) Or (=U) : for original grade and re-mark grade, this ensure that each was a valid grade. Queries: The first query that I needed to create needed to show any outstanding re-marks. Outstanding was defined as 3 weeks after it was received. This led to me needing to change the design of the re-mark table slightly. I needed to add an attribute (date received) so as to keep record of the date that it was received. After this the re-mark entity looked as follows: Re-mark (Subject Name, Subject Reference Code, Candidate Number, Centre Number, Original Mark, Original Grade, Re-mark mark, Re-mark Grade, Requested, Date Received) Forms: Main: To make the design as user friendly as possible, I have split it into 2 sections of input and output. This way it is easy for the user to distinguish between the two uses of the system. For all of my forms I have included an exit button in the bottom right of each form. I have kept this constant to stay in line with the element of least surprise design. New Centre: Similarly to the new centre button, the new subject button opens at a new record. The screenshot is of the subject form. New Re-marks: The new re-mark button unlike the first two buttons does not open at a new record. This is because it is more likely that the user will be inputting a user from an existing centre and therefore it would make more sense for the user to scroll through the centres. A small feature that I have included in this form is to improve the user interface of the system. It will input a code from a subject name or a subject name from a code automatically. I used the following code to achieve this effect. This code changes a subject name into code, it can be noted that this happens on exit of the subject_name field. For the opposite effect I used very similar code: Above is a small clip of how this code works, it follows on similarly for each code. Again this code takes place on exit of the subject_reference_code field. Re-mark Results: For this particular form I have locked many of the fields, this is because it will be used to input the re-mark results from previously submitted papers. The locked fields are coloured in grey. Another feature which is used in this table is an auto-grading system, where the system calculates the grade from the mark entered. This feature also takes into consideration the different subjects as each has different grade boundaries. The code is as follows: End Sub Where the grade boundaries are actually on the table but are hidden as shown: Each of these fields contains the grade boundaries from the subject table. They change in accordance to the subject reference code which is also on the table. This feature is put in place to increase the efficiency of the system for the end user. It may also be noted that when the re_mark_mark field is exited the re_mark_date field becomes equal to todays date. The field was like the grade boundary fields hidden on the form. Reports: The following are the reports which I included to provide hard copies for the end user. Beneath I have listed the names of each of these reports and have also printed out examples of each report. Each example is clipped onto the end of this report; the page number will be included next to the report name beneath: à Grade Changes (pg ) à Outstanding Re-marks (pg ) à Subject Report (pg ) à Centre Report (pg ) à Candidate Report (pg ). Each of these reports simply used the queries that I had already constructed. However the candidate report posed a small problem, the specification stated that it would like to show the grade change or if no grade change had been made, then it would like a sentence stating that there was no change. This meant that I would need to create two separate reports and then create some code which could go to the necessary report when I had inputted the details for the report. Test Purpose of test Data Used or Action Taken Expected Result Actual Result 1 Check that main form loads Click main form button Switchboard form displayed. Form opened 2 Check New Centre form Opens Click New Centre Button New Centre form at new record Form opened 3 Check New Subject form Opens Click New Subject Button New Subject form at new record Form opened 4 Check New Re-marks form opens Click New Re-marks Button New Re-mark form at first record Form opened 5 Check grade changes report opens Click Grade Changes Button Grade changes report preview Preview opened 6 Check outstanding re-marks report opens Click outstanding re-marks button Outstanding re-marks report preview Preview opened 7 Check subject report opens Click subject report button Pop up box then report preview. After entering criteria, opened 8 Check centre report opens Click centre report button Pop up box then report preview After entering criteria, opened 9 Check candidate report opens Click candidate report button 3 popup boxes then one of 2 reports After entering criteria, opened 10 Check exit button Click exit button Form closes Form closed 11 Check auto grade feature for original mark Insert mark Equivalent grade is generated Grade generated 12 Check auto grade feature for re-mark mark Insert mark Equivalent grade is generated Grade generated 13 Check validation rule for candidate number Insert 5 digit code. Rejection of the code Rejected 14 Check validation rule for centre number Insert number larger than 80000 Rejection of the code Rejected 15 Check Validation for subject reference code Insert 6 digit code Rejection of the code Rejected 16 Check validation for original mark Insert number larger than 100 Rejection of the number Rejected 17 Check validation code for re-mark mark Insert number larger than 100 Rejection of the number Rejected 18 Check validation code for original grade Insert the letter G Rejection of the letter Rejected 19 Check validation code for re-mark grade Insert the letter H Rejection of the letter. Rejected 20 Check auto subject reference code feature Insert word business Generation of the code 20094 Generated 21 Check auto subject name feature Insert code 01325 Generation of word Art Generated 22 Auto date feature Enter date field Generation of todays date Generated 23 Check that Auto grade feature works for alterations Change an existing mark Regeneration of grade to new grade Generated 24 Check validation of dates Insert abc into date received Rejection of date Rejected 25 Check that Duplicate Centre Numbers cannot be inputted Insert 66528 in new record Rejection of data Rejected.
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.