UML tutorial : Remote UML Diagrammer
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.
1.1 Executive Summary
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.
2. Overall System Architecture
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.
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 184.108.40.206 – 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 220.127.116.11 – 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.
2.2 User Interface
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 18.104.22.168 – 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 22.214.171.124) will be shown.
Image 126.96.36.199 – 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 188.8.131.52) 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 184.108.40.206 – Image of Editor/Viewer
Pictured above (Image 220.127.116.11) 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 18.104.22.168) 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