Mihai's WebShell Project:
Object-Oriented Analysis (v1.0)

SlothWare

WebShell Object-Oriented Analysis

version 1.0

Tuesday, February 16, 1999

Analyzing the functionality desired in the WebShell project, we came up with the following classes, each encapsulating independent amounts of information:

    the GUI class that hides all the details related to maintaining a tree and a list view

    the Console class that hides all the details related to parsing, interpreting and displaying commands and their output

    the HTTPfs (HTTP File System) class that will make the web pages look like directories on the local file system

The main program (which is in the Sloth class) will create the GUI and the Console windows. Applying the Model-View-Controller pattern, we came up with another class, the Control class, that will coordinate the actions and data exchanges between the GUI and the Console, on one hand, and the HTTPfs, on the other hand.

To make the Control class more general, we imposed a generic interface on the GUI and on the Console, the View interface, that unifies and provides the minimum of functionality and of type information.

Since the requirements changed to include browsing of the local file system, we similarly unified the HTTPfs and the Localfs under one interface, the FileSystem interface. This FileSystem interface provides functionality to query about the files and the file types existing in the current directory.

Because we were unsatisfied with the performance and the inconsistent functionality of the Java library class java.net.URL, we created our own URL handling class, called GenericURL, which is completely RFC-compliant. The GenericURL class is used by the Control and the Views to transfer and display file system information.

The FileInfo class acts as a data encapsulation unit, without any data hiding, its mission being that of allowing for the easy transfer and query of information from the FileSystem to the Views and the Control.

The Open class handles the open request of the WebShell, hiding the ugliness of system-dependent program invocation from the Control.

The GUI and the Console, as well as the HTTPfs, use helper classes to perform their required functionality. That is how the TablePanel, TreePanel, Command, MRV,and the HTMLParser were created.

2 of 2

Class Diagram

Object Diagram


Copyright 1998-2005 Mihai Christodorescu. All rights reserved.
Maintained by Mihai Christodorescu (http://mihai.christodorescu.org).
Created: Mon Dec 21 21:12:13 PST 1998
Last modified: Sat Oct 1 23:06:52 CDT 2005