Introduction
java,,,,,
,,
Requirement
1.0 Design Brief
Overall Aim.
To implement a multi-threaded software system in C#, that can read data in standard XML, store and retrieve data from an SQL database in a user friendly manner.
2.0 Assignment
2.1 Assignment Aims
Students will be provided with the following software (on blackboard) :
An Access database file.
Five XML files with data.
The aim of the coursework is to give students practical experience in object oriented software development by implementing a system in an object oriented language (C#) that involves a number of real-world engineering applications (writing threaded code, reading standard data format (XML), database access and storage, user interface design).
2.2 The System.
UCLan have conducted a series of experiments measuring wind speed and temperature during a Unmanned Autonomous Vehicle (UAV) flight between Site A and Site B .The UAV flies in a roughly linear flight path that takes around 100 minutes. During the flight once every second the UAV stores the following data in an XML file:
Time (this is an incremental integer count started from 1).
The UAV’s current Latitude (a double).
The UAV’s current Longitude (a double).
The UAV’s altitude (a double measured in Metres).
The current measured air temperature (a double measured in degrees Celsius.).
The current measured wind speed (a double measured in Metres per Second).
You have been given the task of writing a software system that can take the readings file, save its contents to a database and allow engineers to access the data.
The database file (Readings.mdb) contains a single empty table (UAVData) that has the following structure :
Day Time Latitude Longitude Altitude Temperature WindSpeed
Where :
Day is the day the readings took place, this is an integer value representing which of the five datasets is being stored (note the UAV is only ever flown once a day).
Time is the time the UAV has been flying, in seconds.
Latitude is a double indicating part of the UAV GPS co-ordinates.
Longitude is a double indicating part of the UAV GPS co-ordinates.
Altitude is a double indicating the height the UAV is being flown at (the UAV tries to remain around 50m but this can vary).
Temperature is a double, this is the air temperature measured by the UAV’s sensors.
WindSpeed is a double, this is the Wind Speed measured by the UAV’s sensors.
The databases table has a composite primary key consisting of Day Time.
2.3 Part One - Software development.
The student is required to write a C# program that performs the following actions :
Load and Parse the 5 XML files generated by the UAV.
Permanently stores the data in the database file.
Allows a novice user to run some basic queries on the database. (See below)
Allows expert users to run custom SQL queries on the database. (See below)
Allow the GUI to remain responsive whilst loading and storing the (quite large) XML files by implementing threaded code.
There are two types of user that you need to account for when writing this program.
1)Novice Users. These users know no SQL or database theory at all, they need to be able to retrieve simple information out of the database. The information your program should allow them access to is as follows :
i)For a user selected day, the maximum and average readings of the temperature and wind speed sensor
ii)For a user selected day, the minimum readings of the temperature and wind speed sensors.
iii)For a user selected day, all the readings (along with time) where altitude exceeded 55M or dropped below 45M.
2)Expert User. These users should be allowed to write any SQL query they wish and have it run against the database. The program should return sensible errors any time the SQL written is not valid. The expert users should NOT be allowed to add, modify or delete data from the database.
2.4 Part Two - Documentation
Students are required to produce a report that details their development of the program written for part one. The report should include the following sections :
Development description. A detailed account of what the student did in order to produce the submitted program. This may include diagrams showing data / process flow and control, UML etc., any necessary assumptions made, testing details, explanation of algorithms used etc.
Brief discussion on ideas for improving the program, this discussion is theoretical and the student is not expected to implement changes, therefore the discussion should not be limited to changes that are either within the student’s ability range or within the time allocated for the coursework.
learning outcomes :
1. Develop appropriate software solutions to technological problems.
2. Describe and apply features of an object oriented programming language.
3. Effectively exploit the programming language and development environments.
4. Effectively apply software design and development principles.