The following report is a detailed description of the 'non trivial software solution to a non trivial problem'. Also included in the report is information gathered from the sponsor themselves, explaining what they require to solve their current problem. Along with the above there will be an analysis of the problem and any areas, which may cause concern for the developers.
All Secondary schools in the country give students academic reports.
The reports show the student as well as the parents how well the student is doing, their attendance and if they are achieving what they potential is capable of. 
I have chosen to work on one particular school, Cranford Community College. The school is located in the west of London.
Cranford Community School currently gives out long reports to all their students from years 7 to 11, ages 12 to 16 respectively. Each report contains the students:
* Predicted grades
* Teachers comments
* Attendance and punctuality
* The report given in the first term also tells what will be covered in the year.
At the moment the school has to go through a very lengthy process this is shown in a data flow diagram in Appendix A.
The school needs to consider if a student would require a report after they have left or if they have lost the one they were given is there anyway of them obtaining another copy of the report? 
By creating a computerised system the school would be able to keep reports for many years in case a student/parent would like them. By them doing this it also helps teachers to check how certain students did or are doing should they need to for example give a student a job reference this can be done easily as they will have something to look at and refer too while they write out the reference.
2.1 Current System
2.1.1 Currently the teachers use their electronic registers to send their predicted grades and attendance for each student. This information is sent over a server; this is then captured and entered into a mail-merged document that produces the basic report but then the teachers must also provide comments.
The current users of the system are only teachers. The teachers use the ERS (Electronic register system) to send the information, once all the basic information is received a teacher that is trained with the way the current system will take this information and paste it into a Microsoft excel spreadsheet. Once this is set up the teachers will, when suitable enter their comments for the students, once this is done the report is complete.
With this system if an error were to occur then there would only be two stages where the errors could be caught or recognised:
* When the qualified teacher would past the information received into a excel spreadsheet.
* When the teacher types up their comments into mail-merged document.
2.2 Research on other schools
After vast research in this field I found that school across the country and worldwide have given opportunities to students and their parents to access reports from home via the internet. This would only be done if a student has a valid username and password. This could be less time consuming for schools, as there is no need to print the reports and could also save money for the school. 
At the moment the only type of security the school has on the electronic register system is a password and username. Each username and password is unique.
To design, build and evaluate a report system, which schools can use, and which will make producing term reports and daily attendance tracking easier. , 
4.1 Identify all problems with the current system
4.2 Understand all requirement of Cranford Community College
4.3 Analyse current report system, and research any progress made by the school on the current system
4.4 Design and implement a piece of software that allows the school to be able to produce reports.
4.5 To test and critically evaluate the system produced
4.6 Discuss all results from the evaluation and make any further suggestions for the future.
5. User Requirements
5.1. After carrying out an interview with Mr O' Conner (Head of the Information technology department) at the school, the requirements for the school were a lot clearer. I carried out a questionnaire, which consisted of a few simple questions (questions can be found in appendix B). This helped me increase my understanding of the problems with the current system.
(A list of the user requirements is in appendix B).
6. Strategies for Solution
6.1 Conceptual Approach
6.1.1 Currently the school only has the one method for producing reports. This involves a very lengthy process and can this process can be made easier and shortened. I believe there is another way of producing the reports which could be a lot easier can provide more functionality.
6.1.2 The current system is the latest update to the schools report system. Before this system the reports were all paper based and never involved any use of any technology.
6.1.3 To overcome the problems with the current system I have decided to implement a system, which will produce the reports quickly, more efficiently and for the system to be extended from the current system.
6.1.4 The system will work in a similar way to the current system but have more functionality i.e. teachers should be allowed to send their students attendance over the Electronic register systems, which will alert the reception if students are not attending. The actual report system will be a piece of software which allows teachers to enter in student details, grades, comments etc into a GUI which will automatically create the report. This data will all be grouped accordingly using the chosen database package.
6.2 Constraints on Approach
6.2.1 The only users of the system will be the teachers. The system will be simple to use and very self-explanatory. If a teacher is not computer literate then training will need to be provided.
6.2.2 The reports will only be formed once the teacher has entered in a sufficient amount of data that is of the correct format. For example grade will only have a character length of 1 and can only be from A-f or a U.
6.2.3 The system should be delivered by the set deadline date thus it is very important to have a plan. This should indicate what will be done in order to meet the deadline date and when it will be done, this will also allow me to increment the system bit by bit rather than as a whole making it easier to recognise where if any problems arise.
6.3 Lifecycle Approach
6.3.1 The project would not be considered a high-risk project. As the school is not depending on this system for the day-to-day running school. However it would be good to complete the system and hand in something, which the school can use in the future. I believe that for this project all the requirements are clearly defined and understood unless any changes occur in the near future.
6.4.1 Analysis and design
* The system/software will require a GUI (graphical user interface).
* The system will require a username and password so access can be granted to a user.
* The system will require alphanumeric data input by a user.
* The system will output a report for a student.
6.4.2 Languages and development environments
I believe that I need an environment, which will allow data to be stored easily and captured easily from a GUI.
The best option is to have a database to store all the data and organise it accordingly and then to create an interface using a suitable language, which will allow the connectivity of the database and GUI to be compatible. I currently have a choice of languages and development environments they are:
* Visual Baisc.net (Language)
* Visual Basic (Language)
* Microsoft Access (Database)
* Oracle (Database)
Further research is required in order for me to make my decision about what language and database program to use.
6.4.3 Product evaluation and testing approach
Once the system has been completed it is important to test the system. This is to insure that the system does exactly what it is required to do and also to check if it meets the user requirements and objectives. I am most likely to perform a black box test. This is just to test the functionality of the software; once this is done a selected teacher from the school can perform an acceptance test to ensure the system does meet their chosen requirements.
7. Area of Uncertainty
Every project will have some areas, which a developer will find weak or even impossible to do. These weaknesses need to be identified and prioritised accordingly to the project in hand.
Doing this at a early stage will allow the me to carry out further research into how to overcome the problems, this can help avoid the system/software being incomplete and be closer to meeting the demands of the school.
7.1 Possible weaknesses
* Lack of knowledge in chosen programming and developing environment
* Lack of research into chosen topic
* Requirements need to be broken down and understood so that I know what is required
* Not enough knowledge of the schools electronic register system
* If the requirements can be met and a system can be up and running which is suitable to what the school requires.
7.2 Prioritising weaknesses and evaluating each weakness
1. Requirements need to be broken down. The school needs to explain in depth what is required. It would help if the requirements were broken down to their simplest level to increase understanding.
2. Can the given requirements be met? This is a very important question as there is no point taking on a project if the schools requirements cannot be met and a system cannot be delivered.
3. Lack of knowledge on chosen topic can lead to misunderstanding of requirements and ideas, which are all required to develop a system.
4. Lack of knowledge in programming environment can raise big problems as the knowledge is required to develop the software. I don't believe learning as you go along is an option. Once a choice had been made to what languages and packages are to be used maybe exploiting the packages would be an idea to check all functionality allowed by the languages.
5. Lack of knowledge of the schools electronic system can cause problems but this can also be found out by arranging an interview with a member of the school. The interview can be used to figure how all the attendance is sent over etc.
The entire above are equally important as they can balance each other out. Overcoming all the above questions can lead to designing a suitable system, which the school will be happy with as long as all requirements are met.
8. Resolving Areas of Uncertainty
When to Overcome
How To Overcome Problems
Requirements not fully understood and need to be broken down.
There will be a further meeting with the head of the information technology department. This meeting should include a discussion of the requirements given and any further ones if required. The requirements should be explained in as much depth as possible and the discussion the system can also take place.
Once priority number 1 has been completed
Can the requirements be met?
Once the above meeting takes place it will be clearer if the requirements can be met as all requirements will be put into perspective. This may also be a good time to check if anything further can be done in order to help meet the requirements.
Once priority number 2 has been completed
Lack of knowledge in chosen topic area?
Once priority numbers 1 and 2 are met I believe that this will also be met as more knowledge will be applied to the area of concern.
Once priority number 3 has been completed or before if suitable too
Lack of knowledge in programming/ developing environment
This will be the heart of the system. Establishing what programs to use is vital as the sooner this is achieved the sooner the project can be started. Using an elimination process may be helpful as this will show what programs best suit the project in hand.
Any time before developing stage
Lack of knowledge in the current ERS (Electronic register system) used
This can be done in a meeting with the head of the I.T dept. the sooner this is done the better as it will give a clearer insight to how the school works at the moment.
Below is a simple Data flow diagram to show how the school currently produces reports:
Below is a list of some of the questions that were asked to the head of the information technology department (Mr E O'Conner):
1. What are the problems with the current system?
2. How does the current system work?
3. What is the current input and output form? Would you like to keep this the same for the new system?
4. Where is the data stored?
5. Do you have any constraints?
6. Would you like secuirty on the new system?
7. Could you explain how the ERS system works?
8. What you like the new system to do?
9. What are the main objectives of the new system?
10. Would you like the new system to use any programs or environements in particular? If so why?
Below is a list of the user requirements given by Mr O' Conner:
1. The system must have suitable secuirty
2. The system should allow teachers to create reports.
3. The system should allow teachers to edit reports
4. The sytem should allow teachers to delete report
5. The system should take less time than the current system to produce reports.
6. The system should alert the reception if a student is away for a certain amount of time.
7. The system should allow the teachers to enter information into a GUI
8. The system should allow the reports to be viewable on screen before printing
9. The reports should be automatically put together once the required information has been entered correctly.
10. the system should prompt the user for a username and password.
11. The system should be available to all teachers on and off site
12. All reports must be stored for a certain amount of time (to be confirmed)
13. The system should have appropaite handling error checks
14. the reports should be available within the agreed storage time whenever requested.
References and Bibliography
 Sommerville, I, (2001), Software Engineering, 6th Ed, Addison Wesley
 Lakshman, B, (2000), Oracle Developer Forms Techniques, SAMS
 Siebold, D, (1999), Visual Basic Developers Guide to SQL Server, SyBex
 KoneMan, P.A, (2000), Projects for Microsoft Access 2000, Addison Wesley