User:LukeRobinson/Design study
LukeRobinson (Talk | contribs) |
LukeRobinson (Talk | contribs) |
||
Line 82: | Line 82: | ||
As the name suggests, this is an object that reads data from a file, it is a spectral kind of reader that can asynchronous read packet records backward or forward from the current position in a CSV log file. | As the name suggests, this is an object that reads data from a file, it is a spectral kind of reader that can asynchronous read packet records backward or forward from the current position in a CSV log file. | ||
* Graph | * Graph | ||
+ | |||
+ | A graph is the actual object that displays the pretty pictures, it has a bunch of controls and internal objects but we don't need to worry about them here. | ||
* GUI | * GUI | ||
+ | |||
+ | The overall GUI, contains a graph and controls. | ||
* Model | * Model | ||
+ | |||
+ | main control center of the program, controls the parsers etc., is sent commends from the GUI. | ||
* MyCollections | * MyCollections | ||
* NetInterface | * NetInterface |
Revision as of 02:47, 1 August 2010
Contents |
Project
Introduction
I am doing my assignment on my Honors project, which is a program to visualize network data. So far, I have already created quite a bit of the program, although it is not finished.
Background
The goal of the project is to display network logs in a simple way so the people with little training can get an understanding of whats happening in the network. We want to help people both identify possible threats and better understand the normal flow of network usage. The network logs I am using come from a small network Bob Ward takes care of here in Christchurch, he has given us access to anonymized logs, I currently have just over one month of logs, which amount to a few hundred megabytes. Here is an example network packet log:
Time | protocol | size | source ip | source port | destination ip | destination port | packet type |
---|---|---|---|---|---|---|---|
1269687620.676725 | IP | 48 | 192.168.100.6 | 4212 | 192.168.83.37 | 9101 | TCP |
1269687625.489346 | IP | 48 | 192.168.100.6 | 4213 | 192.168.110.12 | 9100 | TCP |
1269687632.684662 | IP | 328 | 192.168.109.26 | 68 | 192.168.99.1 | 67 | UDP |
So basically the program needs to read data from the log files, parse the packet records, and present them to the user by why of the graph as desired.
Design Study
Requirements
There are two major requirements that this program must meet. The first is speed, because the user will need to interact with the interface, this means that it cannot lag while reading or parsing the large log files.
The second is extensibility, the program needs to be extensible in three different ways.
The first way in which it needs to be extensible to allow new data types. This will allow it to support new firewalls and packet formats.
The program will also need to be extensible to allow new display types. Currently the program only displays information in a graph, but we may want to add new displays.
Finally, because this is my Hons project, I will only be working on it until the end of this year, therefore, afterward others may want to change and extend it so its needs to allow such changes and be easily understood by others.
Constraints
The only really constraints are speed, as mentioned before, and that the program is written in C#.
Initial Design
When I initially wrote the program, I did try to make it extensible to allow new packet formats. However, I did not make it extensible in other areas. Although I did try to keep good OOD in mind, the program has several poor design issues.
UML Diagram
This UML class diagram on 16/7/10, it is the beginning state of the project. I will make changes to it and update this page as I go.
Description of Classes
- FileReader
As the name suggests, this is an object that reads data from a file, it is a spectral kind of reader that can asynchronous read packet records backward or forward from the current position in a CSV log file.
- Graph
A graph is the actual object that displays the pretty pictures, it has a bunch of controls and internal objects but we don't need to worry about them here.
- GUI
The overall GUI, contains a graph and controls.
- Model
main control center of the program, controls the parsers etc., is sent commends from the GUI.
- MyCollections
- NetInterface
- OpenFile
- Packet
- Parser
- Parser1
- PaserBuffer
- EventListener
- ChangedEventHandler
Design Critique
As seen in the initial UML diagram, I have used poor naming style.
Final Design
Design Improvements
The first improvement, a very minor one, is to rename classes so that they all start with uppercase letters.