Outputs
Once I have gathered all the information and put it into table form for the Sensei to see I will then need certain print outs and things for the club:
- I will need to printout a new form, which will be given out to members so they can give more of their details to the club for future use.
- I will also need to produce a list of the people who are taking part in competitions and what stage of the competition they are entered for and the time of their competition. So that the Sensei knows who will be taking part and how much he is owed so it will be easier to produce the bill for the member.
- The system will bring on the screen when someone brings up the system, the names of all the people who attend the club and their details. Just in case the Sensei has to get in touch with a member and would prefer to bring their details up on screen rather than referring back to the forms.
- I will also printout the details of all upcoming competitions so the Sensei can pin it on the wall and people can check when and where it is etc.
Processes
Now I know exactly what is required there are a few processes, which need to be performed:
- There will be a query in the system, which will allow the end user to bring up a persons address easier without having to search through the tables of information to find the details.
- There will be a bill produced for a member who takes part in every competition so they know how much to pay. The bill will be the amounts owing all added up and produced as an overall total.
- There will be simple command buttons produced which will allow the deletion of a record, the adding of a record and the amending of a record.
- There will also be a means of calculating the fees for each member and what they owe at the end of three months (as grading takes place then meaning people go a belt higher and so fees are better collected before this).
2.5 Data flow
2.6 End user requirements
My end user wants the system I create for him to be able to perform many tasks which will ensure the running of the club is a lot more efficient and organised but also this system will make life easier for the Sensei and people who have to use the system who aren’t very good at using a computer or have little experience with the software itself. This system will be able to be used by those with limited IT skills but will still do what they want it to do.
My end user firstly wants me to take the existing data of people off the forms they first fill in and add it to the system for future use. (The information is the people’s first name, surname and address). My end user has told me this is not enough information and so wants me to redesign a form and distribute it among the club so he will be able to store more information about people. He wants to know their telephone number, every part of their address e.g. post code and the three line address as well and he also wants to know their date of birth. This is so he knows whether to sort people into the children or adults’ classes.
My end user also wants a way of locating a persons details, mainly address, without having to search for it on the computer and he also wants to add new members and delete old ones as people sometimes leave or don’t come back anymore.
He also wants to know who takes part in each competition so he can keep track of who is suppose to be coming so he knows how long the competition will last.
Also because at the moment the Sensei relies on people paying and being honest about it, when they pay for competitions usually he loses track and gets confused about who has and hasn't paid, so he wants me to produce some way of finding out who will be taking part in the competitions and also to be able to tick who has paid and who hasn’t so he can ask the other people for the competition money and the bill can be produced at the end for each member either for them to pay or if a child, for their parents to pay.
Performance indicators
There are two types of performance indicators I must consider to ensure my system is a good working system. The first factor I must consider is something called quantitative. This has anything to do with numbers and my system must be able to work out the total amount owed by one person. For example, the calculation will be each lesson (usually twenty per term) added together to find the amount owing by one member.
This system has to be reusable as it needs to be able to be updated on a regular basis (the system actually will need to be updated every three months as people go a belt higher then and some children might move to the adults classes etc). This is known as cyclic as it will be done every three months to dispose of any unwanted data and to add or amend new data.
The system must also be able to store a lot of records, there could be one hundred people at one time in the karate club so the system has to be able to store all the information about every person in the club. Also there must be sufficient records for the competitions being held, as these will be changed all the time depending on who is in what competition.
Also my system should be quite efficient as there is a time factor involved. So when doing a search, say for a persons address, the search shouldn’t take too long e.g. if only locating one address it should take no longer than one minute to find the information, but if searching for a lot of data it will obviously take longer. A search should not take a ridiculous time like 20 minutes, as this is very time consuming indeed.
Also printouts should take about the same amount of time, they shouldn’t take too long, although it does depend on the size of the system.
The second factor I have to consider is the qualitative performance indicator. This makes sure the system works and it must be user friendly and easy to use. This means that the system must have a user-friendly interface so that the user doesn’t have to go through the back end of the system to find information etc. This will enable the end user to interact with the system without having to learn how o use MS Access. Also I will ensure there are buttons and macros on the front end so they only have to click a button to take them to the relevant part of the system, this saves time and makes sure they don’t get confused with the way the system works.
All the outputs the end user will require have to be correct and there has to be no mistakes as this can cause a lot of bother especially if the fees are wrong. So for the invoice being produced, the right amount owing should be displayed on the invoice as well as the other details such as the person’s details and the clubs details.
Also when the end user does a search for say the addresses of certain members the displayed results on screen should be clear to read, nicely presented and all the relevant data should be displayed.
As my end user wants another application form to be designed, I will design this as a data capture form. It must relate to the fields within the tables in the system so should collect data such as the name of the person applying and their date of birth as well. Also the form should be clear and well set out so people know what the required information is and also there must be enough boxes to display all the information e.g. for post code there must be seven boxes
Tools and Techniques
- Design
Design for tables
To be able to complete the computerised system for the karate club, I need to set-up the details of the members in the form of tables. This is the best way as it organises the data well and allows you to create such things as queries.
These tables are known as entities and one such entity I will be doing is the member’s details. This will consist of the members ID, their first name and surname, there address in the form of address 1, address2 and address 3. It will also have their postcode, telephone number and date of birth. This table will be the basis for all the other tables and is the first table I have to set up in order to create the other ones.
In a table there always has to be a key field (in this table it is memberID), the key field cannot be simply someone’s name as someone else can have the same name and so the field will therefore not be unique. The key field has to be unique and be able to identify the right data and a good key field would be a number e.g. 1 or F12.
I have decided to set this table up this way so the information is easy to view by someone with little knowledge of a computer and also has the 5required information needed about each member.
Obviously, I will have to format the information within the table to make sure it is readable and understandable. Also I will have to adjust the size of the columns within the table so that I can read all the text.
Also not only will I be formatted the front end of the table I will also be formatting the back end of the table. For each of the members details I will set the formatting so that it is not too extreme, e.g. for the persons surname there is no point in allowing 50 characters as not many people have fifty letters in their surname, so 25 would be sufficient. This is saving space and also makes the database realistic.
Also for options such as the postcode I will be adding an input mask so that the postcode is set to a seven character option e.g. CH433BT and if I type in a postcode wrong the error message will tell me, allowing me or the user to amend the mistake.
Also for such things as the area at which people come from (the majority come from Liverpool) I will include a default value for this specific column. This allows me to type the word Liverpool for the option address 3 and the default address will be Liverpool. This saves time and allows the user to adjust if they come from the Wirral.
Also I will be adding validation rules so that say I have numerical data to add in I can add a validation rule which won’t allow me to type in more than ten. If I try or another user does then an error message will appear saying you are not allowed to do this. This ensures that the wrong data isn’t added e.g. 100 instead of 10.
I will also use the lookup wizards provided in the software. I will use the lookup wizard in this table to assist me in anything and make things easier and clearer for the end user.
For my second table, which is the parent’s details, I am going to add the fields Title, Surname, First name, Work telephone number. I will add the work telephone number as their children’s information is already added in the first table and has the home number, so is needs be the Sensei can contact them at work about anything.
I will obviously format the table in a similar way too which I did before in the first table so that there is enough space to view all the details and that the text is readable, understandable and clear to see by anyone. I have taken into consideration that one of the people using this wears glasses, so I haven't made the text too fancy or too small.
I will be using an input mask in this table to make sure the phone number is inputted correctly and does not exceed a specific length. I will also add in default values and make the time a short time e.g. 13:00 (meaning 1:00pm).
The third table I will create is going to be a table called events. This will allow the end user to check which people are doing competitions and will also bring up their details.
The third table is for people in the club taking part in the competitions this year (2003). The data will be displayed under the field names competition ID, Type, Time, and Date.
I will use a lookup wizard for the field called 'type' as this means the type of competition they want to go in for. So I will create a drop down list with the options of sparring, routine and both. That way there will be a clear indication of who is doing what without the end user having to type in the options over and over again.
I am setting the tables up this way so they are easier to see and not too complicated for the end user to understand. It also saves time typing out some of the information such as the type of competition being entered for.
The linking table saves typing out the persons details again to say what competition and what there emergency phone number is, instead the end user can just pull up the information already found within the system.
Possible Solutions
For the database, which I am going, to be using there are two types, which I could use. I could use either a flat file database or a relational database.
However with a flat file database there can be several problems. For example, there can be a redundancy of data. This means that wherever you need the data in certain places you have to type it in over and over again and so you cant type it just the once and it will be on the whole system throughout. This is not very efficient and is a waste of time for the person who has to keep retyping the data and it also produces a lower level of integrity of the data. This means the correctness of the data e.g. a person could mistake the surname Odden and spell it Oden. It will still look correct to the person but when they come to do a search for the data of this particular person when they come to search they will not find data on Odden as it is typed in as Oden originally.
Also flat file databases don’t have the same range of validation and input masks as suppose to a relational database. This will affect the format of the data so you will lose consistency of the data within the database. Also input masks add conformity e.g. some people may like to type in phone numbers without the area code and some may add the area code, if you put on an input mask they have to type in say the area code otherwise an error message appears.
Chosen Solution
I am going to use a relational database as it doesn’t have all the above problems and you only have to enter the person’s details in once and never have to do it again. You can amend them easily and have a much greater consistency of data, and it avoids data redundancy.
A relational database stores all its data inside tables, and nothing more. All operations on data are done on the tables themselves or produces another tables as the result. You never see anything except for tables. Which is good for the end user, as they won't understand all the technical jargon behind the database such as input masks.
In my database I am designing it would be a lot better to use a relational database as the karate instructors (end user) will be doing a lot of amending if people leave or join and this database will be on computers throughout the club for other authorized people to use and so amending or adding data would be a hard task as if I used a flat file database they would need to change the data on every individual computer and they haven’t got time to do this at all.
In choosing which software I am going to use I have to make sure the data can be dependent of the program so it can be transferred to an upgraded version of the software so the structure should be transferable.
So I am going to use MS access for my system as it has the tools I need such as the ability to add input masks and add queries and I can also set-up relationships linking my tables according to the rules of normalization. With this system I can store the data needed nicely into tables so that it is organised, however I can create forms which will display the data in a nicer way and with forms you have the ability to format the colours and the text, you can change the font and even add pictures. Also with forms you are able to add macro buttons which allow the user to simply click a button and information he wants will be produced, this allows a novice to use the system and also makes sure they do not see the back end of the system.
In this database I can have different types of queries such as select queries, parameter queries, update, amend and delete queries.
Also I can create reports which will display a persons details on one page and so is more organised and this can display how much money a person owes and I am also able to produce a calculation which will total up all the members fees and give a grand total like an invoice.
I also have the ability to create macro buttons on my form, this allows forms to be linked and I can create a main menu, which will be the “linking form”. There will be a button on each of my forms linking back to the main menu so this prevents the end user having to go through the back end of the database.
I am able to create a main menu this is a form, however it has buttons on it (command buttons) such as search for addresses and the end user simply clicks on the button and types in the persons name, it will then bring up all the results in no time at all. This allows the user to get familiar with the use of the system and it isn’t too difficult to grasp. A main menu is also created for the user interface. The main menu is what the user will be working on so it has to be colourful and attractive (avoiding such colours as bright yellow because this isn’t soft on the eyes). I will also use readable but attractive fonts, this will ensure all users can read the information and it is clear but also isn’t a boring standard font as well. I will also add a picture and a big main title to make the main menu a lot more attractive and interesting.
Relationships
In a relational database you can have three different relationships depending on what data you have in your tables. For example for the relationship 'one to one' the information which would be a 'one to one' relationship would be husband to wife, as a husband only has one wife.
In a 'one to many' relationship it can be such things as a person placing several orders but the one order only goes to that one person. So this is a one to many relationship.
The final relationship is a 'many to many’ and in my particular database many people can take part in each competition and many competitions can have many people.
Each relationship can be shown in a diagram:
One to One
As shown this is a one to one relationship, it is simply connected by one single line meaning only one relationship.
One to many
As shown this is the relationship one to many, the many part of the relationship is represented by the infinity sign as there is no limit to how much data/information you can have in this one relationship.
Many to many
As shown this is a many to many relationship so there is no limit to the amount of information that can be contained in this type of relationship.
Design for forms
When designing my system I had to take into account the fact that the person using my system is a novice and isn’t that knowledgeable of the software I have used. So this is why I have created forms. This will create a friendly user interface for the user and all they will have to do is click on the appropriate buttons such as a search button and will be able to locate the information he wants quickly.
The forms will display the records of each member in the club whether they are an adult member or a child. The actual system I am designing will include five forms one of which is the main menu.
The first form I will design will be the members details, I will use the design wizard and using the query I have already set up for the members details I will add those fields from the query such as name and surname of a member. The form will at first have a standard format such as a grey in background and a standard black text. I will format this so that the colour of this form is two shades of blue, a darker blue for the background of the main body of the form and then a lighter coloured blue for the header and footer sections of my form. I have chosen blue as this is an easy colour on the eyes and is not too hard to stare at for long periods of time.
For each member the records shown on the form will be there member ID, their first name and their surname, their address in the format of address 1, address 2 and address 3. It will also display their postcode, telephone number and their date of birth. This is so all the information the end user wants is displayed in a sensible way.
The second form I will design will show the details of the children taking part in a competition. There will be displayed which competition there taking part in and when and where the competition is going to take place. This will allow the end user to know what competitions the members are taking part in and how much they will owe as the form will also show the costs of the competitions as well as the standard details such as there date of birth. I will actually use different shades of blue again for this part of the form as my end user requested shades of blue as it is his favourite colour and also he doesn’t mind staring at that colour for long periods of time so when designing these forms I will have to take into account what he wants. I will obviously design the form in the same way as I did with the previous one yet I will use the query named “childrenscomps” instead of the query for the member’s details.
The third form I will design will be the parent’s details. As the children as too young to pay the fees themselves, the parent’s details are needed to let the parents know how much they owe. This will allow the running of the club to be more efficient and I created a form for this to display the results in a better way.
I will design the form using the wizard and the query I will use will be the parent’s details query. There will be displayed the parents title i.e. Mrs and there first and second names. There will also be displayed there work telephone number in case of emergencies and the parent ID.
I will use for each of my form designs the font ms sans serif, as this is a nice style font which is easy to read and sensible to use and isn’t as plain as times new roman (the standard font used).
For this form I will use the colours purple for the header and footer sections and a dark pink for the body of the form. I know my end user says he prefers blue, but, there may be other people using the system in time so I have used these pastel colours as they are soft on the eyes and nice too look at.
The fourth form I will design is different for the current ones I have discussed. This form will not consist of any member’s details at all; it will simply have macro buttons on it, which will be called adult competitions, child competitions, competition details and address search. This will allow the end user to click on a button and he will be able to look at the information he wants. For example, for the button called address search, he will click on it and a box will appear saying, “Please enter first name” so he has to type in the first name. Then another box will appear saying, “please enter surname” then when entered it will bring up the details for a member.
The other buttons when clicked on, so the data straight away and allow the end user to view all that he wants with ease. He does not need to go through the back end of the system and scroll through all the information to try and locate a member, as this can be very time consuming indeed.
The searches form will have a main title in a pastel yellow saying; “peter Lloyds karate club” and purple will be used as the background colour. There will also be a picture of someone doing karate to make it more user friendly and attractive.
The next form I will design will be the main menu. This will be what the user will see the most and will have buttons on it to take the user to whatever part of the system he needs. On it there will be three buttons called member’s details, competition details and parent’s details. The end user simply has to click on the relevant button, which will make the system easier to use and not too complicated.
Macro Buttons
As I described for each of my forms I will be using macro buttons. These are buttons, which allow the forms to be linked together such as the member’s details being linked to the main menu. Each form I have designed (members details, parents and child details) will have a macro button on it called main menu. This once clicked will take the user straight back to the main menu almost instantaneously.
I will create buttons for each of my forms and they are also easy to setup. I go to create a new macro and then it will bring up a table. In this I simply have to state whether I want a form opened or closed and then in the form name I select the form I want e.g. members details. Then I will maximise the form being opened as this will display the results across the full screen avoiding the text looking too small or the forms looking too cluttered. I will do this for each button I have to create changing the criteria according to what is wanted e.g. close one form and take me back to the main menu or open a form and close the main menu.
Report design
Within MS Access there is also the ability of creating a report. This simply allows the information of a member to be displayed on one page and very clearly as well. I have decided that I will setup two reports-one for the childrens fees and one for the adults fees. These reports will show how many competitions a person has been involved in and what type of competition they did e.g. sparring and the date and time of the event. It will then display how much each individual competition they have been in and the grand total at the bottom. This will be the same for both the child and adults competitions but obviously the totals will be different as the adult competitions are more expensive.
I will create the reports by using the report wizard and the first step I have to do is to decide what information will be displayed in the report. So I will decide to display the members first name and surname, the place of the event, the type of event they took part in and also the date and the time. Obviously in each report there will be displayed the fees each member owes.
Calculations
As I said I will be using a calculation in each of my two reports to calculate the total amounts, the calculation has to be inputted by me as the report does not automatically calculate the totals for you. So I want to add the individual competition prices and create a grand total, so the calculation I will create is a simply adding sum. To design this I had to create a query and in that query there is something called expression builder. This allows me to create a calculation which will work in the report and so that everytime a different member takes part in a competition, the total amount owed will be automatically calculated up. This will ensure the user doesn’t have to calculate it manually and will make sure there are no mistakes so it will save him time.
I will have to do this for both reports however, once done will not have to be done again which saves time and also allows the user with little knowledge of the system to calculate costs easier.
2.10 Test strategy
2.11 Test plan
2.12 Test data
Implementation
Design of tables
The first table I am going to set up within my database is going to hold all the members details within the club and this is how I set it up and the way in which I formatted the fields:
Table parents details
The second table I am going to set-up will hold the parents details and the following screen shot shows how I did it and the formatting I had to do:
For my next table I had to design it in the same way as the previous tables only this table holds the details for upcoming events:
For my next table I had to create a table, which only had the member’s unique number and the event details unique key field:
For my final table I had to create a table, which had both the parent and children’s unique key numbers in, this is how it looked:
I created this table so that there was a link between parent and child so this will allow me to create queries later on.
Relationships
In order to help in the deleting of files and also setting up the queries, I set up relationships within my tables. This linked say members details to the competition they were taking part in, so if the end user need to amend some details he could do it in one table and it would change in all of them. This is how I set up my relationships:
Input masks
For some of my tables I inserted an input mask this allowed a certain type of formatting to be carried out e.g. postcode should be inputted as XXXX XXX. This is how I created them:
This is the second stage in the wizard:
For the parents details I used the same method as shown above to create an input mask.
Lookup Wizards
For the upcoming events table I used a lookup wizard to create a drop down list so to make the use of the database easier and this is how I created it:
This is the second stage:
Default Values
When formatting the tables it is sometimes better to add in a default value. Due to the fact the karate club is in Liverpool, the majority of people will be from Liverpool so I set up a default value to show this:
As my end user wants to search for specific details about members, I needed to set up queries to allow my system to be used by a person with limited IT capabilities, I set up four major queries within the system like so:
When designing the query to find the members details I set it up as shown below:
This is how it appears when the query is opened:
This is how the tables are now linked:
Forms
To enable a novice to use the system I have created forms, which display the information clearly and allow the user to find the information required efficiently. This is how I set up the form:
I created all my forms in the same way, yet, I had to create a main menu which creates a friendly user interface, this is how I created my main menu:
Macro Buttons
I added command buttons known as macros to each of my forms allowing my end user to just click a button and it will take him to the relevant information. This is how I set up my macro button to take you from the main menu to the member’s details:
Reports
To show the details of my form and to show the members how much they owe for competitions, I created reports. I created two separate reports, one for the adult members of the club and one for the children. These display the results separately as in one member per page and look more organised. This is how I created my reports:
This is the next stage and it allows you to group the data to make it more organised.
The report is then created and then I customized them to make then look attractive and user friendly.
When doing the report the results showed two copies of everything i.e. a persons surname appeared twice so to stop this from happening I had to change the setting “hide duplicates” to yes as shown below: