Dates
Technology
OO Programming, OO Analysis/Design, Design Patterns, Java, Java3D, db4o (ODBMS), C# (.NET), BlueJ, Microsoft Visual Studio, Microsoft Visio
Info
For My Undergraduate Degree Dissertation, I Developed A Research-Based ‘3D Windows Explorer’ in Java & Java3D. The app used visual cues to help identify directory structures. Using the Waterfall Model development lifecycle, I performed all aspects of software development. Extensive Object Oriented Analysis and Design (using Unified Modelling Language) led to a solution that was implemented and tested, before it was critically evaluated against its requirements to complete my dissertation.
Persisting Data
Directory data (e.g. files, folders and associated meta-data) was persisted to a database, using the object database – db4o.
Monitoring Directory Changes
The database had to be updated when changes were made to the directory structure, e.g. creating a new file, deleting a file, moving or renaming a file. After researching different ways of monitoring for changes in the directory structure, I decided to use Windows’ directory change notification service. As Java did not support this feature, I experimented with 3 different approaches. In the first 2 approaches, I tried JNI (Java Native Interface), and then JNA (Java Native Access) for bridging my Java app with a C++ app that listened for directory change notifications. In the approach that I adopted, my Java-based 3D Windows Explorer app would interact with a .NET based console app that listened for directory change notifications from Windows.
Researched
Similar Products:
- Cone Trees (from Xerox PARC)
- Q-PIT
- VR-VIBE
- File System Navigator (FSN – from Silicon Graphics)
- File System Viewer (FSV)
Database Technologies:
- Relational databases (e.g. Java DB)
- Object databases (e.g. OZONE, db4o)
- Hierarchical databases
- Network (graph) databases
Images
Images showing my 3D Windows Explorer:
Images showing Windows Explorer that comes with Microsoft Windows:
Analysis & Design
These images show some of the Analysis and Design work that I carried out during this assignment.
Use Case Diagrams:
Class Diagrams:
Hierarchical Task Analysis:
Storyboard of my app interface:
Mock-up of 3D interface:
Images showing some of the program classes I coded: