Aqa Comp4 Coursework

Before you start making your project you need to know what you are going to make. This is where your analysis comes in useful and it's also worth 12 marks, that's 16% of the overall project! We'd better get started.

What do you need to include?[edit]

Hopefully by now you have some idea of your user and what they want you to do, we need to codify (write it down) it all so we can start getting some marks. The exam board has been very kind and if you check out the mark scheme they even provide a list of things that you need to include in your Analysis. We're going to take these and use them as our headings.

Research Methods[edit]

This should be done first. You have an idea on the sections that you need to present so you should put together some questions for your main user to get the answers you need to start putting this together. From your research you need to know the following:

  • The current system and how it runs
  • The problems with the current system
  • The users
  • The skill levels of people using it
  • What they want the new system to do
  • Any preferences in terms of web based, phone based, application based. What platform are you developing for

A structured interview might do the trick and you need to note down all the responses to each of your questions. You should try to understand the current situation and the problem and it is recommended you perform and evidence at least two of the following methods and explain why you used each:

  • Interview
  • Questionnaire (for multiple users)
  • Observation of current system

Once you have finished presenting your research you need to summarise what it said and explain why you used each research method.

Don't forget to:

Make sure that all information on users, current system problems, proposed system features etc. comes directly from your research, otherwise it looks like you haven't done your research properly

Background to/identification of the Problem[edit]

You need to introduce your problem, a quick two paragraphs of what the problem is and how a computer might solve it. For example mention how the current system is paper based, slow and people are always losing things, the computerised system would be faster, secure and allow them to run reports and calculate things. But don't mention any languages or databases at this point, we will decide that at the end of the analysis.

Description of the current system[edit]

Describe the current system, what it does and how it currently stores its data. Describe the flaws in the current system, is it slow, secure, easy to query, easy to use, can it have multiple people use it at once, is it easy to access? Back up your description using as many resources as you can, including interviews, observations and pictures. This will prove to the marker that your project has a real client.

Identification of prospective user(s)?[edit]

In some instances your system will involve only one user, the person you are writing it for. In most cases it will involve more than one person. You need to recognise all the users, big and small, of your system.

For example if you were making a maths revision website you have the maths teacher as your main user, but who else is going to use the system? The students of course! You would then need to write how each of these user groups would use the system and how some users would have more access than others. The teacher would be able to change the tests and see the results of all their students, they should be able to add and delete student users. The students should be able to take tests and only see their results.

For example if you were making a stock control system then the system administrator should be able to add/delete/update and re-order items of stock, run reports and add/delete/update users and suppliers. The general shop floor staff should only be able to sell items and print out receipts. The customers will have no direct use of the system.

You should also mention for each user the skills they possess. For example if they use a Mac all the time then an interface similar to an OS X interface would be useful. If they use Microsoft Office 2010 then an interface similar to that software suite would be suitable.

Identification of user needs and acceptable limitations[edit]

Summarise your research findings, what do each of your users want you to do? For example:

The teacher needs me to create a system that

  • stores students high scores
  • shows student progress
  • allows them to add, edit and delete questions

The students need me to create a system that

  • allows them to log in
  • allows them to answer exam style questions

Limitations are slightly harder to list. You need to write down what your system won't be doing for reasons of time, complexity, or user preference. These might include the system not storing user log in details as these will be managed by LDAP or, a system not enforcing spin on a pool ball, as that specific feature isn't needed by the teacher and the developer not having enough time to implement it.

Data source(s) and destination(s)[edit]

In most cases you'll use a database, but you could also use a file-based system or xml. By now you should have mentioned a couple things that your project will need to store and process (this should have come from your interviews). Where are you going to get this data from?

  • What is it -> where is it from -> where is it going

For example the current system might say:

What is itSourceDestination
Customer Detailsnew customers filling in formscustomers paper records
Questions for examspast papers and teachersphotocopies for students

The new system would then look like (notice that there might be some more attributes):

What is itSourceDestination
Customer Detailsnew customers filling in online formscustomers db table
Questions for examspast papers and teachersquestions XML file
Admin detailsManagerusers db table

Data volumes[edit]

An important thing to think about when building any system is how much data you will need to store and how much processing is required. This should come directly from your research and will influence how you complete your project and what sort of hardware you will need to use. For example if you only have one person sitting an online test at one time, you only need a simple computer. If you are looking to have hundreds of people using your system at once then you will need a very fast computer and probably a web based solution.

For example:

  • I will be storing several hundred customers and...
  • The revision system will store up to 100 different questions and 300 student details
  • Each student will have their attempt at each question recorded, making potentially 300*100 = 30000 question answer results
  • The system only needs to process one sale at a time because...

Data Dictionary[edit]

Like a dictionary describing all the words you can use in a sentence, this will record all the pieces of data that you want to store and process in your system. You will need to provide the following information for everything you will store data on:

Field NameField PurposeField TypeField SizeExample DataValidation
First NameStores the name of the playerString30PeterNot blank
Date of BirthStores the date of birth of the playerDate/TimeDD/MM/YY (6 figures)19/08/76Date/Time format
ScoreStores the top score of the playerinteger47643bigger than 0, less than 10000

If you are storing a database make sure that you have stored data on all the fields that will be in your database, for example the data above is storing data on a student in a school. What data will you need to store for your system to work?

If you are making a program, you will want to list all the variables that your program will store whilst it is running. For example, if you were creating a program to tally the score someone achieved in a quiz, you should list the variable that will store this score.

Field NameField TypeStart ValueDescription
ScoreInteger0This will keep track of the score of the player
First NameStringNULLThis will keep track of the first name of a player
Date of BirthDate01/01/1990This will keep track of the date of birth of the player

Warning: A very common mistake is to mis-size your fields. For example you are making a markbook system where you will store the age of students. The ages are between 11 and 16, so why not make the age 16 in length? The answer is because length sixteen allows you to store the age "9999999999999999 years", and this is impossible to have a student (let alone a human) that old. The length should be a more sensible 3. While the expected numbers are two digits long it is conceivable that the software may be extended to be used for older students one day and so the length should be set to cover this contingency. Do not repeat the "year 2000" problem where developers stored the year as only two digits causing millions of pounds to be spent fixing it when the year "ticked over" to zero again.

Data Flow Diagrams[edit]

There are many ways that you can draw data flow diagrams, so if your teacher tells you one way and the way you read here is completely different, don't worry. The important thing is that you show how data moves through the current system, where it is stored, where it will be processed and how you plan it to move through the new system. It is called a data flow diagram after all! For these examples we are using the Gane Sarson method.

There are four main components that you need to be aware of:

NameDescriptionSymbol
EntityThis generally shows all the people involved in the system. It may also indicate other external systems that you are interacting withCircle
ProcessThis describes the processing that happens to the data as it is moved from one location to another, it has data inputted and will output to a data store, another process or an entitySquare
StoreGenerally this indicates the different computational stores used to hold your data, such as hard disk files, databases, CD ROMs etc.Rectangle
TransferThis shows how data moves from one part of the system to another. You need to label the arrows to explain exactly what is moving about.Arrow

Using the descriptions we can see the diagram above means the following:

  1. A customer can enquire about store items, the system processes the enquiry and fetches the data from the item datastore, sending the results to the customer
  2. A customer can order an item, the system checks that the customer is real, checks the item is in stock, sends an order and finally sends the item and an invoice to the customer.

You need to produce four data flow diagrams, two showing the current situation and two showing the proposed system. For each you must show the following diagrams:

You can make them using a word processor but it's far easier to use specialist software. You can try to use dia or Open ModelSphere, which are both free. Alternatively you can use Microsoft Visio.

Extension: Use Cases

In software and systems engineering, a use case is a list of steps, typically defining interactions between a role (known in UML as an "actor") and a system, to achieve a goal. The actor can be a human or an external system. For example in a system where a user wants to invite some people to a party on a social network. Person:

  1. logs in
  2. selects to create an event
  3. picks a date and time from, using a date picker
  4. picks a date and time to, using a date picker
  5. selects a location, using a map
  6. adds a picture of the venue from their picture collection
  7. adds description
  8. selects private event
  9. sends invites

Entity Relationship Diagrams (for databases)[edit]

When thinking about how you are going to save data on your system you might decide to use a database, if this is the case you must include an E-R Diagram. If you aren't using a database explain that there is no need to complete this section. You need to recognise your main tables. There should be at least 3 tables and relationships between them. The tables don't have to be normalised at this stage but the relationships should be described in a little detail.

Object Orientation planning (for Object Orientation)[edit]

For each class that you are using describe:

  • overview of what it does
  • inheritance
  • overriding
  • public and private variables
  • public and private methods

For example, the attributes of a monster class might contain:

Access TypeField NameField TypeInitial ValueDescription
PrivateHealthInteger100This will store the health of the monster, when the health gets to 0 the monster should die
PrivatexInteger0This will track the x location of the monster

you also need to note the methods that the monster class would use:

Access TypeMethod NameParametersReturn ValuesDescription
PublicMoveLeftnonenoneThis will move the monster 3 points to the left
PublicHurtdamagethe current health of the monsterthis allows you to damage monsters

Objectives[edit]

This is the most important part of your Analysis, because this is how you are going to check if your end system meets all your user needs. You need to outline three sets of objectives that are all SMART and numbered:

  • System Objectives
  • Processing Objectives
  • User Objectives

As far as possible all your objectives should be SMART. But what does SMART mean?

LetterMajor TermDescriptionExampleNot acceptable!
SSpecificMake sure that it's not ambiguous and it concerns a part of your systemThe system should be able to display 5 top scores in descending orderMy system should be good
MMeasurableIs there any way that you can easily prove that you have met this objective.Each page should load in less than 5 secondsMy pages will be beautiful
AAttainableMake sure that within the time and resources available you will be able to complete the objectiveMy system will allow the saving of user preferencesThere will be a facial recognition system to allow users to log into the system
RRelevantIs the objective going to help you meet your user needs?A receipt will be printed and emailed to the customerMy cashier system will play MP3s in the background
TTime-boundYou are limited in the time you have to complete this project. You must list the deadline in your Analysis somewhere and can you finish each objective in time?I will show the player position on the map using 2D Vector graphicsThe game will have 3D graphics as good as League of Legends

As you can probably recognise, several of the incorrect objectives above fail to meet multiple SMART criteria. Test yourself, which of these objectives are SMART enough to get you started on a good project:

The system will allow staff to update stock and add new stock items. <click>
  • S - Yes
  • M - Yes, You could evidence this by showing screen shots of this happening
  • A - Yes, this should be possible
  • R - Yes, this is core to running the system
  • T - Yes, this should be achievable within the time given
 
The sports club system will have a clock displaying the current time on each page <click>
  • S - Yes
  • M - Yes, You could evidence this by showing screen shots of this happening
  • A - Yes, this should be possible
  • R - No, why can't they use the clock on the desktop
  • T - Yes, this should be achievable within the time given
 
The system will use custom code to interpret and display SVG game graphics <click>
  • S - Yes
  • M - You could evidence this by showing screen shots of this happening
  • A - Maybe, this should be possible, but why are you writing your own code, can't you use a library?
  • R - Yes, the game will need graphics
  • T - No, SVG is a complex thing to use, will you have time to implement this? Is it that core to what you are doing? Why not use pre-existing libraries?
 
The system will calculate and display the total number of sales per customer <click>
  • S - Yes
  • M - Yes, You could evidence this by showing screen shots of this happening and the code behind it
  • A - Yes,
  • R - Yes, as long as this is called for from the interview or other part of the analysis
  • T - Yes
 
The system will process 5,000,000 transactions a second <click>
  • S - Yes
  • M - Yes, You could evidence this by showing debug information, maybe a counter tallying transactions
  • A - Maybe, you would be hitting processing speed limitations and probably limitations in speed
  • R - No, this system sounds too complex as this level of speed would only be required in something like Google or Facebook
  • T - No, this sounds like cutting edge industry level stuff, are you sure you could achieve it in the time given?
 

Don't forget to:

Get these numbered objectives signed off by your client and put evidence in your writeup. This might involve copying an email into the document.

Potential Solutions[edit]

There are several ways that you could solve the problem at hand you need to list at least 3 different options. For each of them you need to mention positive and negative things and then argue out your chosen solution.

For example. If I was tasked with making a stock control system I could use the following things (with a lot more detail!)

Suggested SolutionPositivesNegatives
Excel and VBA desktop application
I know how to use excel
the user also has experience in excel
Excel and VBA will allow me to perform calculations and display results
Excel is a flat file database and won't let me handle links between data.
The solution will only be available offline
Visual Basic.NET application and Access Database backendI have some experience of Visual Basic from the first year
VB.NET lets me easily build a solution that will have similar interfaces to MS Office programs
They already own Access and use Windows
I need to learn more VB.NET to complete this project
This solution will be offline only
ASP.NET and MSSQL database website based solutionThis solution will allow the user to login online.
Relationships will be enforceable
I will be able to use SQL to perform searches
I have a lot to learn in ASP.NET
The user doesn't need to access it from multiple computers
It requires a server and networking know-how

Chosen Solution[edit]

From the choices that you suggested pick the best one and explain why. This is going to be how you are going to solve this problem!

Other evidence[edit]

In this section you need to justify that the techniques you used to write your analysis were correct and made sure that you managed to get all the objectives of the new system. Go back to the questionnaires, interview and observations. Include them here and explain how this made sure that you could produce a comprehensive Analysis.

Next steps[edit]

Now you have completed your Analysis you need to start making your project. You should have some idea of how you are going to make your system and you now need to start acquiring all the skills you will need to complete this project. Get yourself a text book about the programming language you have chosen and make sure you can perform some simple tasks using it. At this point it would be a good idea to write a quick list of skills that you will need to learn.

Whilst you are getting those skills, head over to Design

Make sure your research leads directly to your objectives
You might have multiple users
A typical Data Flow Diagram, you'll need a lot more detail!
Four related entities shown using Crow's Foot notation. This relationship shows that a receipt has one customer, one staff member and one product. And a customer can have many receipts; a staff member can process many receipts; and a category of product can be sold many times.
Make sure your objectives are numbered and SMART

Please note, that the AQA Computing practical has since been updated, the proportion of marks allocated to the technical solution has been significantly increase to 42/75 (56%), compared to the 20/75 (27%) on the old specification.

As such anyone on the current specification will not need to do the following documentation:

  • i. System Maintenance
  • ii. User Guide

The following subsections are also no longer required:

  • i. Analysis: Realistic appraisal of the feasibility of potential solutions
  • ii. Analysis: Justification of chosen solution
  • iii. Design: Identification of storage media
  • iv. Design: Description of measures planned for security and integrity of data
  • v. Design: Description of measures planned for system security
  • vi. Design: Overall test strategy

This chapter aims to give you the skills to complete your A2 Computing project. Unlike the rest of the course this unit is entirely based on coursework submitted in May. This is great because if you work hard enough then you can make sure you get some really good marks, you have access to the mark scheme after all!

Your project involves making a complex programming project that will likely involve data processing, and then writing a report about it. You have to make a program for a real user, this is very important, you can't just make them up. It doesn't have to be incredibly complicated, but you need a degree of complexity in order to write a good report. You can write a computer game but they can be an awful lot of work (2–3 years with a team of 40+ people for the latest console games) and it's often difficult to find a real life user and a real need.

Over the course of the project you will be creating a report. This is really important and lots of people spend so much time coding that they forget to complete the write up. The write up is worth nearly 70% of the mark and will take you through a waterfall model of system development. There are many other forms of system development out there and you might find yourself completing sections of the course not necessarily in the order given, the important thing is that you make it a cohesive whole and complete everything.

Please use the links below to get you started and note where all the marks are awarded, you might create a brilliant bit of code but if you don't complete your writeup your grade will suffer.

The classic waterfall model

0 comments

Leave a Reply

Your email address will not be published. Required fields are marked *