UML tutorial : Remote UML Diagrammer
UML tutorial : Remote UML Diagrammer
The Overall System Architecture describes the
Uses, User Interfaces and Top Level Tasks of the Remote UML Diagrammer. The Uses Section describes how the software
will be used and who will use it. The
User Interfaces Section describes how the users will interact with the software
in a graphical manner. The Top Level
Tasks Section describes each and every function that is accessible to the user
in detail. Each section will be divided
into a Client Section and a Server Section because the Remote UML Diagrammer will have two distinct
executables. One executable will be for
a client and the other will be for the server.
To help the reader I have included a system architecture diagram below.
The Remote UML Diagrammer is a tool to edit
and view UML Diagrams remotely. The
suite of applications includes a client application to edit and view UML
Diagrams and also a server application to store UML Diagrams and to help
initiate client connections with each other.
In addition the Remote UML Diagrammer Suite will support file
transfer. This Operational Concept
Document (OCD) describes the software architecture of the Remote UML
Diagrammer. It will discuss the uses,
user interfaces, top level tasks and context in Section 2. In Section 3 this OCD will describe the
critical issues of implementing the software architecture. The critical issues are latency of two
directly connected clients, locking issues with two directly connected clients,
maintainability, server goes offline, security, communication errors, disk
space, port number allocation, future communication over the internet, server-side
client handling, viewing synchronization and file transfer. Section 4 will detail the various modules and
partitions present in the design.
Section 5 will draw conclusions on the previous sections. Lastly, section 6 will list the references
and sections 7 and 8 are appendices.
The Remote UML Diagrammer is a tool for
users to collaborate to create UML Diagrams.
It is an extension of the UML Diagrammer in which users loaded and saved
UML diagrams and created and edited diagrams in either a text editor or a
graphical environment. The Remote UML
Diagrammer consists of a server executable and a client executable which will
be developed concurrently. The server
will feature a user login system in which a username and password is verified
against the known good. After a user is
logged in they will be placed in the main lobby. In the main lobby they will see a list of the
available UML diagrams on the server and who is editing them. The main lobby will also allow a user to edit
their password, upload/download and delete files and do file differences. From the main lobby the user can choose to
create or enter any number of rooms that allow for editing and viewing of UML
files. Inside one room there can be two
concurrent, directly connected UML Editor users and any number of UML Viewer
users. In this document we discuss the
system architecture, the critical issues and the partitions of the Remote UML
Diagrammer. After reading this document
the reader should have a clear understanding of how to create a high level and
detailed design for the Remote UML Diagrammer.
Shown in the diagram above is the general
system architecture for one room. This
diagram is basically repeated N number of times to achieve the functionality of
a server. In one room there is a server
thread that has a blocking queue. The
editors connect to the blocking queue through sockets to send edit and save
messages. The viewers connect to the
server to receive the edit messages. The
small boxes represent a socket. Lastly,
there is a direct connection between the two editors. This peer to peer connection will be used to
send messages (edit, chat, etc) as well as to do file transfers. In the final design there may be sockets from
the viewers to the server and sockets from the server to the editors for chat
and file transfer broadcast purposes.
Those sockets have been left out of this diagram for clarity.
The uses of the software architecture are
how people and other software interact with the system [Fawcett1]. The client and the server both have different
uses and I will talk about them below.
2.1.1
Client
Uses
The client program has use cases for two
users. These users are a UML Editor and
an UML Viewer. The client use cases
diagram is shown below.
Figure 2.1.1.1 – Uses cases for the Remote
UML Diagrammer Client
The UML Editor and the UML Viewer can be a
Software Developer, a Manager, a Student, a Teacher or anyone who wants to work
with UML Diagrams. The UML Editor is
someone who can create and edit UML Diagrams.
This user will be able to directly connect to another UML Editor to
collaborate. The UML Viewer is someone
who can view diagrams as read-only. He
or she can view a collaboration taking place or view static files.
The UML Diagrammer Client will have three
main modes or operation. The first mode
is main lobby. When in this mode the
user can upload and download diagrams, change the password, do file differences
and chat. The second mode is direct
connection. In this mode the user can
create and edit diagrams, transfer files to any user and chat. The last mode is viewing. When in the viewing mode the user can view
diagrams, transfer files to any user and chat.
Uploading and downloading diagrams consists
of choosing a file or files on the remote or local machine and then
transferring them over a socket.
Changing the password consists of sending the md5 encrypted password
over the socket to the server. Doing
file differences consists of viewing two files with the differences
highlighted.
Creating and editing diagrams consists of
manipulating files either directly connected to another UML Editor user or
not. Viewing diagrams consists of
viewing static or changing diagrams.
Chatting consists of sending text to the server. The server will broadcast the text to all
users in the room.
2.1.2
Server
Uses
As shown below there is only one user type
in the server. This is because there is
little code in the server related to user interface.
Figure 2.1.2.1 – Use cases for the Remote
UML Diagrammer Server
The server maintainer is the only use case
for the server. The reason that there is
any use case at all is because users sometimes do things like forget their
passwords, or create diagrams and then leave them on the server for extended
periods of time.
Renaming diagrams is to change the name of
a diagram. This is useful because a
client can name a diagram and then go on vacation. Normal users do not have permission to rename
the users diagram so the server maintainer must do this. Also, the server will check to see if anyone
is using the file before it is renamed.
Changing permissions involves changing the owner of a file and changing
who can access the file.
Deleting diagrams is to remove the diagram
from the server. The server maintainer
has the option to backup diagrams as well.
Backing up and deleting diagrams is needed because users sometimes
create a lot of diagrams for projects and then never remove them from the
server when the project is done. This
causes the server’s disk drives to become full.
As with renaming, the server will check to see if anyone is using the
file.
Creating, editing and deleting user groups
involve the Unix-like file permission system of the Remote UML Diagrammer. These permissions allow for the protection of
user’s documents while allowing someone to access someone else’s document.
Editing and deleting users allows for the
server maintainer to change users.
Editing is changing the user password, because sometimes this must be
reset since users can forget their password.
Deleting users involves removing an old user from the system.
The user interface is a graphical method
for the user to interact with the software.
The user interface for the client and server will be discussed
separately below.
2.2.1
Client
User Interface
The client user interface consists of three
main portions. The first portion is the
welcome screen. The second portion is
the main lobby and the third portion is the diagram editor/viewer. The welcome screen is shown below.
Image 2.2.1.1 – Image of Welcome Screen
From the welcome screen the user can enter
the hostname and port of the remote server.
Then he or she will enter a username and password. If the user does not have a username and
password he or she can make one up and click register. If the user clicks work offline the user will
be presented with the interface of project 2, the UML Diagrammer and he or she
will edit the diagram offline. If the
user clicks connect, a popup dialog will be shown that says “Connecting to
server” with a progress bar. Once the
user is connected to the server and the password has been verified as correct,
the screen shot below (Image 2.1.1.2) will be shown.
Image 2.1.1.2 – Image of Main Lobby
Above is an image of the main lobby. This is a place where the client can
communicate with other users who are in the main lobby, and also view what
files are being edited and viewed. As seen
in the image there is a listing of all files on the server (Files Available), a
listing of the users that are online (Users online) and a chat window (Chat
window). From here the user can edit,
view, delete, upload, download or do differences on a file. I will discuss each action separately.
If the user clicks edit, the server will
check how many users are editing the file.
If there are no users editing, the diagram editor/viewer will be
displayed (Image 2.1.1.3) and the user can begin editing. If there is one, the diagram editor/viewer
will be displayed and the two users will become directly connected to each
other. If there are two, the user will
be told that he or she can only view the file right now. The editor and viewer consist of the same
code and GUI. Editing features (except
panning) are disabled when the user is viewing.
Below I will show and discuss the editor/viewer GUI and then I will
begin talking about the other options that the user when he or she is in the
main lobby.
Image 2.1.1.3 – Image of Editor/Viewer
Pictured above (Image 2.1.1.3) is the
editor/viewer window. In this window we
will have an editing/viewing panel, a tree control showing the users in the
room and a listbox showing the chat conversation. The editor/viewer will be based on the
project 2 code and then extended to support chat, file transfer and remote
diagramming. In the editor/viewer window
there will be one extra option in the File Menu to send a file. When the user selects the Send a File option
he or she will be presented with a standard .NET 2.0 OpenFileDialog where he or
she will choose any number of files to send to the people in the room.
I will now return to discussing the
additional options in the main lobby that have not been discussed. These options are file delete, file upload,
file download and file differences. To do
file delete the user will select a file from the Files Available Listbox (Image
2.1.1.2) and choose delete. He or she
will be presented with a confirmation dialog and then the file will be deleted
if the user owns the file.
To upload a file the user will be presented
with a dialog to choose the file pattern.
Once this is done the standard .NET 2.0 OpenFileDialog will be shown and
the user can choose which files to upload.
If a conflict occurs the user will not be able to upload that file. To download a file the user will choose the
file from the Files Available Listbox and if it is not being edited, he or she
will receive the file in a local directory specified by him or her.....
UML tutorial : Remote UML Diagrammer
0 commentaires: