Theory of Operations
Total Page:16
File Type:pdf, Size:1020Kb
School of Engineering Phone 503 943 7314 5000 N. Willamette Blvd. Fax 503 943 7316 University of Portland Portland, OR 97203-5798
Theory of Operations
Project Breitenbush: An Internet- Based Backup System
Contributors:
Toby Scherf
Dustin Digmann
Philip Johnston
Approvals
Name Date Name Date Dr. Vegdahl Mr. Van Dresser Insert checkmark (√) next to name when approved.
UNIVERSITY OF PORTLAND SCHOOL OF ENGINEERING CONTACT: P JOHNSTON . THEORY OF OPERATIONS. REV. 1.0 PAGE II PROJECT BREITENBUSH. . Revision. History
Rev. Date Author Reason for Changes 0.1 12/1/05 Team Initial draft 0.2 12/3/05 Tobias Scherf Updated GUI mockups and added GUI descriptions. 0.3 12/4/05 Phil Johnston Filled in various sections and added descriptions for diagrams. 0.4 12/5/05 Dustin Digmann, Added further descriptions for the Tobias Scherf class diagram. Filled in missing descriptions, and wrote conclusion. Fixed some of the diagrams, as we found issues. 0.5 12/7/05 Team Corrections and additions of missing GUI class diagrams. Also added key descriptions for DB, frequency of use for queries, expected system load, preconditions, post conditions, exceptions and more. 0.7 1/22/06 Dustin Digmann, Updated to final GUI drawings, Tobias Scherf read through for grammar and logic errors 0.8 1/26/06 Philip Johnston Made changes (Non-GUI) based on feedback from Dr. Ward, and Dr. Vegdahl 0.85 1/30/06 Tobias Scherf Made changes (GUI-based) on feedback from Dr. Ward, and Dr. Vegdahl. 0.86 2/1/06 Philip Johnston Inserted : Overwrite GUI, and procedure for dealing with Accounts (See Login section) 0.94 2/706 Dustin Digmann Fixed errors suggested during review meeting. 0.95 2/9/06 Philip Johnston, Fixing small edits that Dr. Dustin Digmann Vegdahl recommened. We also made some more recommendations given to us in the review meeting.
UNIVERSITY OF PORTLAND SCHOOL OF ENGINEERING CONTACT: P JOHNSTON . THEORY OF OPERATIONS. REV. 1.0 PAGE III PROJECT BREITENBUSH. . Table of .Contents
Summary...... 1
Introduction...... 2
Background...... 3
Technologies...... 3
MySQL – v4.0.25-max...... 3
Java – v1.5...... 4
FreeBSD UNIX – v5.4...... 4
Architecture...... 5
General Description...... 5
Design Overview...... 6
Graphical User Interfaces...... 6
Login:...... 6
Backup / Upload:...... 9
Restore/Download:...... 16
Data Model...... 27
Data Flow...... 29
Class Diagram...... 33
Conclusions...... 40
Appendices...... A
Traceability Table...... A
Functional Requirements...... C
Client Software...... C
Server Software...... C
Communication Security...... D
Use Cases...... D
UNIVERSITY OF PORTLAND SCHOOL OF ENGINEERING CONTACT: P JOHNSTON . THEORY OF OPERATIONS. REV. 1.0 PAGE IV PROJECT BREITENBUSH. . Login...... D Logout...... F
Upload...... G
Download...... H
Diagram Appendix:...... I
Glossary...... L
Links...... M
UNIVERSITY OF PORTLAND SCHOOL OF ENGINEERING CONTACT: P JOHNSTON . THEORY OF OPERATIONS. REV. 1.0 PAGE V PROJECT BREITENBUSH. . List of Figures.
Figure 1: High Level Architecture Diagram...... 5
Figure 2: GUI Welcome Screen...... 7
Figure 3: Login Internet Connection Error...... 8
Figure 4: Login Invalid User Information...... 9
Figure 5: GUI Backup Screen...... 10
Figure 6: GUI Backup Transfer Screen...... 11
Figure 7: GUI Backup File Transmission Failed...... 12
Figure 8: Backup File Transmission Failed...... 13
Figure 9: Backup Internet Connection Error...... 14
Figure 10: Backup Inadequate Storage Space...... 15
Figure 11: GUI Backup File Transfer Successful...... 16
Figure 12: GUI Restore Screen...... 18
Figure 13: GUI Restore File Selection Screen...... 19
Figure 14: GUI Restore Transfer Screen...... 20
Figure 15 : Overwrite File Dialog...... 21
Figure 16: Restore File Transmission Failed...... 22
Figure 17: Restore Internet Connection Error...... 23
Figure 18: Restore Inadequate Storage Space...... 24
Figure 19: GUI Restore File Transmission Failed...... 25
Figure 20: GUI Restore File Transfer Successful...... 26
Figure 21: Data Model Diagram...... 27
Figure 22: Data Flow Level 0 Diagram...... 29
Figure 23: Data Flow Level 1 Diagram...... 30
Figure 24: User Verification Data Flow Level 2 Diagram...... 31
Figure 25: Upload Data Flow Level 2 Diagram...... 31
Figure 26: Download Data Flow Level 2 Diagram...... 32
UNIVERSITY OF PORTLAND SCHOOL OF ENGINEERING CONTACT: P JOHNSTON . THEORY OF OPERATIONS. REV. 1.0 PAGE VI PROJECT BREITENBUSH. . Figure 27: System. Class Diagram...... 33 Figure 28: GUI Class Diagram...... 34
Figure 29: Login Swimlane Diagram...... I
Figure 30: Logout Swimlane Diagram...... J
Figure 31: Upload Swimlane Diagram...... J
Figure 32: Download Swimlane Diagram...... K
Figure 33: State Diagram...... K
UNIVERSITY OF PORTLAND SCHOOL OF ENGINEERING CONTACT: P JOHNSTON . THEORY OF OPERATIONS. REV. 1.0 PAGE VII PROJECT BREITENBUSH. . List of Tables.
Table 1: Traceability Table...... A
Table 2: Client Software Specifications...... C
Table 3: Server Software Specifications...... C
Table 4: Communication Security Specifications...... D
UNIVERSITY OF PORTLAND SCHOOL OF ENGINEERING CONTACT: P JOHNSTON . THEORY OF OPERATIONS. REV. 1.0 PAGE 1 PROJECT BREITENBUSH. . Chapter . 1 Summary
Breitenbush’s Theory of Operations document provides a detailed technical summary of the project, including Graphical User Interface mockups and class-design of the database communications module.
Project Breitenbush is an implementation of an Internet backup system. This system will allow everyday computer users to backup and restore their personal files from any location that offers an Internet connection. File backup to the system will be made possible through the Breitenbush client application.
The implementation of this system will replace traditional file backup systems, such as Floppy disks, CD ROMs, DVDs, Flash Memory and similar devices. No longer will users have to fear that their vital data is in jeopardy of a failing backup device, such as the ones mentioned before.
The Breitenbush Internet Backup System will allow users to:
Backup important personal files to our server using the internet.
Backup files using any computer that has access to the Breitenbush client.
Restore important personal files from our server using the internet.
Restore files to any computer that has access to the Breitenbush client.
This document will show the design details necessary to implement the Breitenbush Internet Backup System. Detailed information regarding the chosen architecture, necessary graphical user interfaces, the data model, data flow diagrams, class diagrams, a traceability table, use cases, swimlane diagrams outlining system behavior, and a state diagrams are given below.
UNIVERSITY OF PORTLAND SCHOOL OF ENGINEERING CONTACT: P JOHNSTON . THEORY OF OPERATIONS. REV. 1.0 PAGE 2 PROJECT BREITENBUSH. . Chapter . 2 Introduction
Breitenbush’s theory of operations is intended to provide a detailed technical description of Project Breitenbush as documentation of our current design and reference for any future use or modification thereof. Team Breitenbush is implementing an Internet backup system to allow everyday computer users to backup their important personal files using the internet. The entire system consists of a server, client, and communications library. The server consists of a database holding the files of various users. The client application, which all users of the Breitenbush Internet backup system, will be used to backup and restore their files. A communications library will be used by the client application to access the Breitenbush system.
The information contained herein is a technical description of our current product, limited to a description of how Breitenbush works. There will be no references in regards to marketing plans or other information regarding marketing questions. This document has been divided into three major sections as follows:
- The Background describes the uses and market for the finished product.
- The Architecture section describes the software architecture with graphical user interface mockups, data model, data flow, state, and class diagrams.
- The Design Overview gives detailed technical descriptions of the manner in which the architecture is implemented.
The Conclusions section gives a short recap of the entire Breitenbush project.
UNIVERSITY OF PORTLAND SCHOOL OF ENGINEERING CONTACT: P JOHNSTON . THEORY OF OPERATIONS. REV. 1.0 PAGE 3 PROJECT BREITENBUSH. . Chapter . 3 Background
Currently, personal media backup devices such as CD-ROMs, DVDs, hard disk drives, floppies, and any other type of media do not guarantee indefinite persistence. There exists a need to store information remotely just as corporations do currently with offsite data archival. The proposed system will enable everyday users to save important information, just as corporations do, with the ease of use and accessibility of the Internet.
The Breitenbush Project will implement a system that will allow multiple users to have the ability to backup and restore files remotely. Access will be made with the use of a client application, the Internet, and a storage server. It will include a software package that will be distributed to clients and a server package that will not be distributed. Functionality that the Breitenbush system includes is:
Provide the user with the ability to:
o Upload user specified files from the user’s machine to the Breitenbush server
o Download files that have previously been uploaded by the user, onto the user’s machine.
o Isolate the user’s files from all other user files.
o Provide password-protected security of user files.
Prior to this document a Functional Specification and Project Plan were generated. The Functional Specification describes from a managerial perspective what the overall expectations of what the Breitenbush Project needs to succeed. The Project Plan gave a timeline and estimated component breakdown of the workload that is required to accomplish our goal. This document provides a detailed description of what is necessary for each component work and how each data object, component, super-system, and subsystem interact to bring the Breitenbush Project to completion.
Technologies
MySQL – v4.0.25-max
MySQL is an open source database that allows for inexpensive and reliable implementation of database functionality. This database will allow the user information and user files to be stored in a secure manner while also allowing for the retrieval of the data over the Internet. A key utility that the MySQL project provides is a library allowing Java to communicate with the MySQL database.
UNIVERSITY OF PORTLAND SCHOOL OF ENGINEERING CONTACT: P JOHNSTON . THEORY OF OPERATIONS. REV. 1.0 PAGE 4 PROJECT BREITENBUSH. . Java – v1.5 .
Java allows for the rapid development of the user application while at the same time allowing for the communication between the user application and the database where the information is stored. This application enables the user to utilize the functionality of the Breitenbush system.
FreeBSD UNIX – v5.4
FreeBSD provides the Operating System (OS) for the Breitenbush Project. FreeBSD is an open source OS which is provided at no fee by the University of California at Berkeley. FreeBSD provides inherent stability and a platform for MySQL to run on.
Technology Note: The manufacturers at no charge provide all of these technologies to the educational user.
UNIVERSITY OF PORTLAND SCHOOL OF ENGINEERING CONTACT: P JOHNSTON . THEORY OF OPERATIONS. REV. 1.0 PAGE 5 PROJECT BREITENBUSH. . Chapter . 4 Architecture
General Description
Client Client Application 1 Application 2
DB Server Client Client Application 3 Application 4
Client Application 5
Figure 1: High Level Architecture Diagram
The architecture used for the Breitenbush project is based on a Data-Centered Architecture. The database is in the center of the system and holds various user information items including the files of the individual users (see Data model). Each client application depicted in Figure 1: High Level Architecture Diagram represents a unique user connecting to the central database. These client applications will hold the Breitenbush communications library, which will be developed in this project (see Class diagrams).
UNIVERSITY OF PORTLAND SCHOOL OF ENGINEERING CONTACT: P JOHNSTON . THEORY OF OPERATIONS. REV. 1.0 PAGE 6 PROJECT BREITENBUSH. . Chapter . 4 Design Overview
Graphical User Interfaces
Login:
After the user starts the application, the user is presented with a login screen (Figure 2: GUI Welcome Screen) prompting for login information (Login Use case, scenario 1). The user will enter username and password into presented fields, with the restrictions that a username must be between 1 and 255 characters, and the password must be between 6 and 255 characters (Login Use case, scenario 1.1). The password will also be hidden from being read with the use of asterisks (*) – one for every character typed.
Once the user has entered the appropriate login information, he/she clicks on the Login button, which starts the login procedure (Login Use case, scenario 1.1). If an Internet connection is not established, the GUI will inform the user with an error message (Figure 3: Login Internet Connection Error). If the login information was invalid, the user is again prompted with the same screen to provide appropriate login information (Figure 4: Login Invalid User Information). The user has three chances to enter valid login information (Login Use case, scenario 1.3). After a third attempt with invalid login information, the application quits and has to be restarted to repeat the login procedure.
If at any time, the user wants to close the application, he/she can click on the button labeled “Cancel”, or click on the Windows “close” ‘X’ button in the upper right hand corner of the window (Login Use case, scenario 2).
After a successful login procedure, the application advances to the next screen with tabs labeled “Backup” and “Restore”, and the “Backup” tab will be active (Login Use case, scenario 1.2).
Note: New Account, Password Change, Remove Account, and Username and Password Retrieval : In order to obtain a valid login the user must contact the system administrator for the Breitenbush system. The administrator will create a user login entry in the database. The administrator will then notify the user of their account access, and inform them of the correct username and password to use. If the user forgets their username, or password the user must contact the system administrator for said information. If the user wishes to remove their access to the Breitenbush system the user will contact the system administrator for such an action. If the user wishes to change their password the user will again contact the system administrator for said action.
For all future GUI diagrams, window sizes will be static and will not be able to be resized. All forms containing file names will not be resized if the file name is too large for the current sized box.
UNIVERSITY OF PORTLAND SCHOOL OF ENGINEERING CONTACT: P JOHNSTON . THEORY OF OPERATIONS. REV. 1.0 PAGE 7 PROJECT BREITENBUSH. . . Breitenbush Backup. Tool v. 1.0
Breitenbush Backup Tool v. 1.0
User Name: Java Dude
Password: ******
Login Cancel
Figure 2: GUI Welcome Screen
UNIVERSITY OF PORTLAND SCHOOL OF ENGINEERING CONTACT: P JOHNSTON . THEORY OF OPERATIONS. REV. 1.0 PAGE 8 PROJECT BREITENBUSH. . . Breitenbush Backup. Tool v. 1.0
Breitenbush Backup Tool v. 1.0 Internet ConnectionConnection ErrorError
User Name: Internet ConnectionJava Dude Error
Password: ****** An Internet connection error has occurred. Please check your Internet connection and try again. Cancel Login
OK
Figure 3: Login Internet Connection Error
UNIVERSITY OF PORTLAND SCHOOL OF ENGINEERING CONTACT: P JOHNSTON . THEORY OF OPERATIONS. REV. 1.0 PAGE 9 PROJECT BREITENBUSH. . . Breitenbush Backup. Tool v. 1.0
Breitenbush Backup Tool v. 1.0 InvalidInvalid UsernameUsername oror PasswordPassword ErrorError
Invalid Username or Password User Name: Error Java Dude
Password: ****** The username or password specified are invalid please try again. Cancel Login
OK
Figure 4: Login Invalid User Information
Backup / Upload:
After a successful login, the user is presented with the Backup / Restore screen and the Backup tab is activated (Figure 5: GUI Backup Screen). From here, the user can select a file on the local hard drive in the file selection window to the left and back it up (Upload use case, scenario 1.1). The two fields on the right hand side labeled “File Name” and “File Size” show the name and the size of the file selected in the file selection window to the left. The field labeled “Last Backup” shows the status of the last file transfer, which can be any of the following: “No file backup attempted”, “File transmission failed” and “Successful”. These three options for “Last Backup” are session based and will not log past backups except during the current session. After the user has selected a file, he/she clicks on the button labeled “Backup” (Upload use case, scenario 1.2). After clicking on the button labeled “Backup” a window is displayed indicating the file transfer.
If the user wishes to logout and close the application, he/she can click on the button labeled “Cancel” or simply close the application with the Windows “close” button in the upper right hand corner of the window.
UNIVERSITY OF PORTLAND SCHOOL OF ENGINEERING CONTACT: P JOHNSTON . THEORY OF OPERATIONS. REV. 1.0 PAGE 10 PROJECT BREITENBUSH. . . Breitenbush Backup. Tool v. 1.0
Backup Restore
C:\ My Documents File Name: Filexyz.doc Filexyz.doc Fileyzx File Size: 624 KB
Last Backup: No file backup attempted
Backup Cancel
Figure 5: GUI Backup Screen
When a backup was initiated by the user, a popup window is displayed showing the user that the file transfer is in progress (Upload use case, scenario 1.3 and 1.4). When the “File Transfer” popup is displayed the application is deactivated and the user can only interact with the popup window. Note that this will not generally affect windows of other applications, or other applications.
If the user wishes to cancel the file transfer, then he/she can click on the button labeled “Cancel” on the “File Transfer” popup window, or click on the Windows “close” button located in the upper right hand corner of the “File Transfer” popup window. If the user cancels the file transfer, then the file will not be saved remotely, and the field “Last Backup” will show the status “File transmission failed” (Figure 7: GUI Backup File Transmission Failed).
UNIVERSITY OF PORTLAND SCHOOL OF ENGINEERING CONTACT: P JOHNSTON . THEORY OF OPERATIONS. REV. 1.0 PAGE 11 PROJECT BREITENBUSH. . . Breitenbush Backup. Tool v. 1.0
Backup Restore
File Transfer
C:\ My Documents FilenameFile :TransferFilenameFilexyz in .docProgress: Filexyz.doc Fileyzx Filesize: Filesize624 KB :
Last Backup: In Progress
Cancel
Backup Cancel
Figure 6: GUI Backup Transfer Screen
There are three possible errors which may occur while backing up a file. The errors are:
“File Transmission failed” (Figure 8: Backup File Transmission Failed)
“Internet Connection Error” (Figure 9: Backup Internet Connection Error)
“Inadequate Storage Space” (Figure 10: Backup Inadequate Storage Space)
In order to proceed, the user will have to click the “OK” button or the Windows “close” button in the top right hand corner of the “File Transfer Error” popup. In order to backup the file successfully the user will have to attempt the backup again.
After the “File Transfer Error” popup has been acknowledged by the user, the application will display the Backup/Restore window with the “Backup” tab activated. The field “Last Backup” will now read the status message “File transmission failed” (Figure 7: GUI Backup File Transmission Failed).
UNIVERSITY OF PORTLAND SCHOOL OF ENGINEERING CONTACT: P JOHNSTON . THEORY OF OPERATIONS. REV. 1.0 PAGE 12 PROJECT BREITENBUSH. . . Breitenbush Backup. Tool v. 1.0
Backup Restore
C:\ My Documents File Name: Filexyz.doc Filexyz.doc Fileyzx File Size: 624 KB
Last Backup: File transmission failed
Backup Cancel
Figure 7: GUI Backup File Transmission Failed
UNIVERSITY OF PORTLAND SCHOOL OF ENGINEERING CONTACT: P JOHNSTON . THEORY OF OPERATIONS. REV. 1.0 PAGE 13 PROJECT BREITENBUSH. . . Breitenbush Backup. Tool v.. 1..0
Backup Restore
Transmission failed
C:\ My Documents FilenameTransmission: Filename Filexyzfailed.doc: Filexyz.doc Fileyzx Filesize: Filesize624 KB :
Last Backup: Failed The transmission failed due to corruption. Please try again.
OK
Backup Cancel
Figure 8: Backup File Transmission Failed
UNIVERSITY OF PORTLAND SCHOOL OF ENGINEERING CONTACT: P JOHNSTON . THEORY OF OPERATIONS. REV. 1.0 PAGE 14 PROJECT BREITENBUSH. . . Breitenbush Backup. Tool v. 1.0
Backup Restore
InternetInternet ConnectionConnection ErrorError
C:\ My Documents FilenameInternet: ConnectionFilenameFilexyz. docError: Filexyz.doc Fileyzx Filesize: Filesize624 KB :
LastAn Internet Backup connection: Failed error has occurred. Please check your Internet connection and try again.
OK
Backup Cancel
Figure 9: Backup Internet Connection Error
UNIVERSITY OF PORTLAND SCHOOL OF ENGINEERING CONTACT: P JOHNSTON . THEORY OF OPERATIONS. REV. 1.0 PAGE 15 PROJECT BREITENBUSH. . . Breitenbush Backup. Tool v. 1.0
Backup Restore
InadequateInadequate storagestorage spacespace
C:\ My Documents FilenameInadequate: Filename storageFilexyz .spacedoc: Filexyz.doc Fileyzx Filesize: Filesize624 KB :
Last Backup: Failed Inadequate storage space available on server, please contact the server admin.
OK
Backup Cancel
Figure 10: Backup Inadequate Storage Space
If the file transmission succeeds, then the “File Transfer” popup closes and the application becomes active again. The field “Last Backup” will now read the status message “Successful”, indicating that the last backup procedure was successful and the file was saved to the server (Figure 11: GUI Backup File Transfer Successful Use Case, Scenario 1.4.1).
UNIVERSITY OF PORTLAND SCHOOL OF ENGINEERING CONTACT: P JOHNSTON . THEORY OF OPERATIONS. REV. 1.0 PAGE 16 PROJECT BREITENBUSH. . . Breitenbush. Backup Tool v .. 1..0
Backup Restore
C:\ My Documents File Name: Filexyz.doc Filexyz.doc Fileyzx File Size: 624 KB
Last Backup: Successful
Backup Cancel
Figure 11: GUI Backup File Transfer Successful
Restore/Download:
After a successful login, the user is presented with the Backup / Restore screen and the Backup tab is activated (Figure 5: GUI Backup Screen). If the user wishes to restore a file from the server, then he/she will click on the tab labeled “Restore”. After clicking the “Restore” tab will become active and the user is presented with a file listing showing all files available for restore (Figure 12: GUI Restore Screen and Download use case, scenario 1). The two fields on the right hand side labeled “File Name” and “File Size” show the name and the size of the file selected in the file selection window to the left. The field labeled “Last Restore” shows the status of the last file transfer, which can be any of the following: “No file Restore attempted”, “File transmission failed” and “Successful”. After the user has selected a file, he/she clicks on the button labeled “Restore” (Download use case, scenario 1.1 and 1.2). After clicking on the button labeled “Restore” a window is displayed prompting the user to select a restore- destination for the file (Figure 13: GUI Restore File Selection Screen and Download use case, scenario 1.3).
If the user wishes to logout and close the application, he/she can click on the button labeled “Cancel” or simply close the application with the Windows “close” button in the upper right hand corner of the window (Download use case, scenario 1.2.1).
UNIVERSITY OF PORTLAND SCHOOL OF ENGINEERING CONTACT: P JOHNSTON . THEORY OF OPERATIONS. REV. 1.0 PAGE 17 PROJECT BREITENBUSH. . . Breitenbush Backup. Tool v. 1.0
Backup Restore
C:\ My Documents File Name: Filexyz.doc Filexyz.doc Fileyzx File Size: 624 KB
Last Backup: No file backup attempted
Backup Cancel
UNIVERSITY OF PORTLAND SCHOOL OF ENGINEERING CONTACT: P JOHNSTON . THEORY OF OPERATIONS. REV. 1.0 PAGE 18 PROJECT BREITENBUSH. . .
Breitenbush Backup Tool v. 1.0
Backup Restore
Remote Server Filexyz.doc File Name: Filexyz.doc Fileyzx File Size: 624 KB
Last Restore: No file restore attempted
Restore Cancel
Figure 12: GUI Restore Screen
With the “Pick Restore – Destination” popup window open, all other application windows become inactive and the user can only operate in the popup window. Note that all other windows and applications that are not part of the Breitenbush backup system are not affected. The user has to select a destination and acknowledge with the button labeled “OK” to proceed with the file restore. If the user wishes to cancel the restore procedure, he/she can click on the button labeled “Cancel” or click on the Windows “close” button in the upper right hand corner of the “Pick Restore – Destination” popup window.
UNIVERSITY OF PORTLAND SCHOOL OF ENGINEERING CONTACT: P JOHNSTON . THEORY OF OPERATIONS. REV. 1.0 PAGE 19 PROJECT BREITENBUSH. . .
Breitenbush Backup Tool v. 1.0
Backup Restore
Pick Restore - Destination
Remote Server C:\ Filexyz.doc Filexyz.doc My DocumentsFilename: Fileyzx Filexyz.doc Filesize: 624 KB Fileyzx Last Backup: File selected
Cancel OK
Restore Cancel
Figure 13: GUI Restore File Selection Screen
If the user cancels the restore procedure, the “Pick Restore – Destination” popup window is closed and the application is active again. From here, the user can, as usual, close the application using the “Cancel” or Windows “close” button, attempt another restore or switch to the backup procedure by clicking on the tab labeled “Backup”.
If the user acknowledges the restore – destination by selecting an appropriate destination in the “Pick Restore – Destination” popup and clicking on the button labeled “OK”, then the application proceeds with the file transfer (restore) and displays a “File Transfer” popup dialog ( Figure 14: GUI Restore Transfer Screen and Download use case, scenario 1.4 and 1.5).
During the file transfer, the application window is deactivated and the only window remaining active is the “File Transfer” popup. Note this does not affect any other applications running on the user’s computer. If the user wishes to cancel the file transfer, he/she can click on the button labeled “Cancel” or click on the Windows “close” button in the upper right hand corner of the “File Transfer” popup dialog. Canceling the file transfer does not save any portions of the file to the client.
UNIVERSITY OF PORTLAND SCHOOL OF ENGINEERING CONTACT: P JOHNSTON . THEORY OF OPERATIONS. REV. 1.0 PAGE 20 PROJECT BREITENBUSH. . .
Breitenbush Backup Tool v. 1.0
Backup Restore
File Transfer
Remote Server Filexyz.doc Filename: Filexyz.doc Fileyzx File Transfer in Progress Filesize: 624 KB
Last Backup: Transmission in Progress
Cancel
Restore Cancel
Figure 14: GUI Restore Transfer Screen
There are three possible errors which may occur while restoring a file. The errors are:
“File Transmission failed” (Figure 16: Restore File Transmission Failed)
“Internet Connection Error” (Figure 17: Restore Internet Connection Error)
“Inadequate Storage Space” ()
In order to proceed, the user will have to click the “OK” button, or the Windows “close” button in the top right hand corner of the “File Transfer Error” popup (Download use case, scenario 1.5.2). In order to restore the file successfully, the user will have to attempt the file restore again. After the “File Transfer Error” popup has been acknowledged by the user, the application will display the Backup/Restore window with the “Restore” tab activated. The field “Last Restore” will now read the status message “File transmission failed” (Figure 19: GUI Restore File Transmission Failed).
UNIVERSITY OF PORTLAND SCHOOL OF ENGINEERING CONTACT: P JOHNSTON . THEORY OF OPERATIONS. REV. 1.0 PAGE 21 PROJECT BREITENBUSH. . . Breitenbush. Backup Tool v. 11.0
Backup Restore
Pick Restore - Destination
Remote Server Overwrite Destination? C:\ Filexyz.doc Filexyz.doc My DocumentsFilename: Fileyzx Filexyz.doc Filesize: 624 KB Fileyzx Last Backup: File selected The file “FILENAME” already exists in the destination directory. Do you wish to overwrite?
Yes No Cancel OK
Restore Cancel
Figure 15 : Overwrite File Dialog
When a user attempts to restore a file and the file with the same name exists in the selected destination directory, a warning dialog will display and prompt the user for permission to override the existing file. The text reads, “The file “FILENAME” already exists in the destination directory. Do you wish to overwrite?” (Figure 15)
UNIVERSITY OF PORTLAND SCHOOL OF ENGINEERING CONTACT: P JOHNSTON . THEORY OF OPERATIONS. REV. 1.0 PAGE 22 PROJECT BREITENBUSH. . . Breitenbush Backup. Tool v.. 1..0
Backup Restore
Transmission failed
Remote Server Filexyz.doc TransmissionFilename failed : Filexyz.doc Fileyzx Filesize: 624 KB
Last Backup: Restore failed The transmission failed due to corruption. Please try again.
OK
Restore Cancel
Figure 16: Restore File Transmission Failed
UNIVERSITY OF PORTLAND SCHOOL OF ENGINEERING CONTACT: P JOHNSTON . THEORY OF OPERATIONS. REV. 1.0 PAGE 23 PROJECT BREITENBUSH. . . Breitenbush Backup. Tool v. 1.0
Backup Restore
InternetInternet Connection ErrorError
Remote Server Filexyz.doc Internet ConnectionFilename Error: Filexyz.doc Fileyzx Filesize: 624 KB
An Internet connectionLast errorBackup has : Restore failed occurred. Please check your Internet connection and try again.
OK
Restore Cancel
Figure 17: Restore Internet Connection Error
UNIVERSITY OF PORTLAND SCHOOL OF ENGINEERING CONTACT: P JOHNSTON . THEORY OF OPERATIONS. REV. 1.0 PAGE 24 PROJECT BREITENBUSH. . . Breitenbush Backup. Tool v. 1.0
Backup Restore
InadequateInadequate storagestorage spacespace
Remote Server Filexyz.doc InadequateFilename storage space: Filexyz.doc Fileyzx Filesize: 624 KB
There is not enoughLast storage Backup : Restore failed available on the system for file storage, please specify a location that can store this file.
OK
Restore Cancel
Figure 18: Restore Inadequate Storage Space
UNIVERSITY OF PORTLAND SCHOOL OF ENGINEERING CONTACT: P JOHNSTON . THEORY OF OPERATIONS. REV. 1.0 PAGE 25 PROJECT BREITENBUSH. . . Breitenbush Backup. Tool v. 1.0
Backup Restore
Remote Server Filexyz.doc File Name: Filexyz.doc Fileyzx File Size: 624 KB
Last Restore: File transmission failed
Restore Cancel
Figure 19: GUI Restore File Transmission Failed
If the file transmission succeeds, then the “File Transfer” popup closes and the application becomes active again. The field “Last Restore” will now show the status message “Successful”, indicating that the last restore procedure was successful and the file was saved to the local computer in the specified destination (Figure 20: GUI Restore File Transfer Successful and Download use case, scenario 1.5.1).
UNIVERSITY OF PORTLAND SCHOOL OF ENGINEERING CONTACT: P JOHNSTON . THEORY OF OPERATIONS. REV. 1.0 PAGE 26 PROJECT BREITENBUSH. . . Breitenbush Backup. Tool v. 1.0
Backup Restore
Remote Server Filexyz.doc File Name: Filexyz.doc Fileyzx File Size: 624 KB
Last Restore: Successful
Restore Cancel
Figure 20: GUI Restore File Transfer Successful
UNIVERSITY OF PORTLAND SCHOOL OF ENGINEERING CONTACT: P JOHNSTON . THEORY OF OPERATIONS. REV. 1.0 PAGE 27 PROJECT BREITENBUSH. . .
Data Model
User -userName:varchar -password:varchar
1 *
File -fileID:int(15) -fileName:varchar -fileData:longblob -#userName:varchar
Figure 21: Data Model Diagram
Database Notes
The Data Model Diagram above represents all data being moved between the Breitenbush Database and individual clients. There is a one – to – many relationship between the User and File tables. This will allow each user to store as many files as the system allows.
User Table
Expected Size = 3 simultaneous users and 20 total system users.
Insert Frequency = 1 time per user creation
Update Frequency = Never. Users are unable to update information because function is out of scope.
Delete Frequency = Never. There is no functionality to remove users from the system.
Select Frequency = 1 time per login session, expected 3 sessions per hour (72 per day)
Usage: The User table will be queried to find a user with a specified user name and password in a manner that counts the number of users with such information. The reason for such a query querying is due to security issues. A result of a 1 on this query will be considered a success; otherwise a failure will be issued. To lower queries across the Internet, this information will be stored in instance variables in the Breitenbush Library for later user. This will make it so this information is not required to be queried on that session again.
UNIVERSITY OF PORTLAND SCHOOL OF ENGINEERING CONTACT: P JOHNSTON . THEORY OF OPERATIONS. REV. 1.0 PAGE 28 PROJECT BREITENBUSH. . . Users for this prototype will be manually added to the system. Toby, Phil, and Dustin . will be at least three of these users. All other users will be added as necessary, determined by the Breitenbush Team.
Passwords will be encrypted with a 16-bit DES encryption algorithm. This encryption will be done before transmission of any kind to ensure the privacy of the users. The database will also hold the values for the password in such a format.
File Table
Expected Size = 200 rows per users * 20 users = 4000 rows
Update Frequency = Never. Users are unable to update file information because this functionality is out of scope.
Delete Frequency = Never. There is no functionality to remove files from the system.
Insert Frequency = Every time a file is uploaded, expected 3 uploads per session per user. This equates to 3 files * 3 users * 1 hour or 9 inserts per hour (216 per day). At these rates, the Breitenbush system will be at capacity in approximately one month.
Select Frequency = Every time a file is downloaded. This should occur at the same rate as upload or 3 files * 3 users * 1 hour (9 selects per day or 216 per day).
Usage: The File table will be queried on many other items, making it a high use and risk table. First this table will need to be queried to find the file size of a given file. It will also need to be able to show if the database can hold more information. The File table is used primarily in this case because file sizes in this table will make it much larger then the User table. The table will also need to insert new files as well as select the file and pass it to the application. The table will also need to be able to get a remote file listing.
Primary and Foreign Keys
The User table will have one primary key and zero foreign or secondary keys. The username attribute will be that key. This key will distinguish any user from another user and thus will need to be unique.
The File table on the other hand will have one primary and one foreign key. The primary key is the fileID. This will be an identifier associated to any file and will need to be unique from all the other entries in the table. The username will be the same username that is in the User table and is the foreign key. With these two keys Breitenbush will be able to isolate files from users as well as distinguish files from other files for a given user.
High Use Queries
Query of file listing for a particular user.
UNIVERSITY OF PORTLAND SCHOOL OF ENGINEERING CONTACT: P JOHNSTON . THEORY OF OPERATIONS. REV. 1.0 PAGE 29 PROJECT BREITENBUSH. . . To lower bandwidth usage when the user requests a remote file listing, the file data . will not be received from the database but just the existing file information. The query to receive a remote file listing will occur on every login and after every upload to the server. This frequency will be the same as the insert frequency in the File table (or 216 per day).
High Volume
Query for requesting a file.
Query to insert a file.
Limitations
The current server setup imposes the following limitations:
- The cumulative space requirements of all files stored on the server cannot exceed the hard drive capacity.
- The number of users is restricted to available hard drive space on the server. In the event that the hard drive space is exhausted, no new users may be accepted into the system.
Data Flow
Sent Files File Information Data Storage System User User User Information Receive Files
Figure 22: Data Flow Level 0 Diagram
From Figure 22: Data Flow Level 0 Diagram the user is the sole provider of data that flows into the Data Storage System. The user is also the sole recipient of the data as well. With this system it is not limited to a single user, but for the purposes of this diagram a single user is represented.
Types of information that flow into and out of the system are defined by the Use Cases and Design documents. Information that is part of the User Information path includes ‘userName’ and ‘password’ for authentication purposes, ‘fileName’ and ‘fileData’. These data objects are defined in Figure 27: System Class Diagram. The process of interaction is defined by figures Figure 29: Login Swimlane Diagram, Figure 30: Logout Swimlane Diagram, Figure 31: Upload Swimlane Diagram, and Figure 32: Download Swimlane Diagram. For a more detailed description of the system please see Figure 23: Data Flow Level 1 Diagram.
UNIVERSITY OF PORTLAND SCHOOL OF ENGINEERING CONTACT: P JOHNSTON . THEORY OF OPERATIONS. REV. 1.0 PAGE 30 PROJECT BREITENBUSH. . . User User Login. Information Verification User Verification User Login Information
Connection/ Verification Status Connection/ Verification Status Database File User File Upload
File Request File Download File
Figure 23: Data Flow Level 1 Diagram
Figure 23: Data Flow Level 1 Diagram explodes the ‘Data Storage System’ from Figure 22: Data Flow Level 0 Diagram. With this the ‘User Verification System’ (UVS), ‘Upload System’ (US), ‘Download System’ (DS) and ‘File Listing System’ (FLS) are created.
The purpose of the UVS is to provide a utility for the system to verify a user is connected to the Breitenbush Database and has the ability to access the database with the user provided ‘userName’ and ‘password’. The other systems will query the UVS for user validity before each action.
The UVS will maintain a communication link between the database and client application as well. The US will provide the functionality allowing for the user to upload files to the database. This system will receive a file for upload; query the UVS for permission to commence this action, and the upload the file. The flow for the functionality is described in Figure 31: Upload Swimlane Diagram.
The DS will receive a ‘File Request’ from the user to download a file, query the UVS for permission to commence this action, and then download the file and return the file to the user. This action is exemplified in the Figure 32: Download Swimlane Diagram.
The FLS provides functionality for the system to return a remote file listing from the database to the user application. This will intern allow the user to request a file to download. The FLS checks to see if the user is valid and connected, and then queries the database for a file listing. The flow for this action is described in the Figure 32: Download Swimlane Diagram.
UNIVERSITY OF PORTLAND SCHOOL OF ENGINEERING CONTACT: P JOHNSTON . THEORY OF OPERATIONS. REV. 1.0 PAGE 31 PROJECT BREITENBUSH. . . Database
User Information Count
User User Information Verify User Success/Fail Notify User
Listing
User Name File Listing
Figure 24: User Verification Data Flow Level 2 Diagram
The User Verification Process in the Data Flow Level 1 Diagram breaks up into the Level 2 diagram as demonstrated in Figure 24: User Verification Data Flow Level 2 Diagram. The User will give user information to a verification process. This process will verify that user information by querying the database and get a count of those users with such information (This will be 0 or 1). A notification of success or failure is then passed to a notification process. The user verification process will also spawn the process to get a remote file listing.
File Verify Storage File Push File File Database User Notify (fail) Availibility
File Name Query Availability
Verify File Available Storage User Name File Listing Push Database Listing
Notification / File Listing User
Figure 25: Upload Data Flow Level 2 Diagram
The Upload Process in the Data Flow Level 1 Datagram breaks up into the Level 2 diagram as demonstrated in Figure 25: Upload Data Flow Level 2 Diagram. The user will pass a file to a storage availability process which will verify that there is enough space for the file to upload to the server. If the there is not enough space, the user will be notified of the failure. If there is enough space, the requested file will be given to a push file process which will be pushed to the database. The push process will then try to verify that the file was uploaded successfully. This verification will do so with a new remote file listing and notify the user of success as well as make the new listing available.
UNIVERSITY OF PORTLAND SCHOOL OF ENGINEERING CONTACT: P JOHNSTON . THEORY OF OPERATIONS. REV. 1.0 PAGE 32 PROJECT BREITENBUSH. . . Local System
User File Name Get File Size File Name, Size File User Available Storage
Query AvailibilityAvailable Storage
Verify Local Notify (failed) Storage Database Query File Notify File Information Store File Success / Failure File Download File Data Request File Verify
Figure 26: Download Data Flow Level 2 Diagram
The Download Process in the Data Flow Level 1 Diagram breaks up into the Level 2 diagram as demonstrated in Figure 26: Download Data Flow Level 2 Diagram. The user will first need to get the file size of that file from the database. The file name and its size will then be past to a verification process for determining if the local machine can store the given file. If not, the user is notified. If there is enough space, the file is requested for download. This download request then needs to get the file from the database and get the actual file data. A storage system then tries to save this file to the local machine. A verification process is taken to make sure the file was saved properly and the user is notified of the success or failure of the save.
UNIVERSITY OF PORTLAND SCHOOL OF ENGINEERING CONTACT: P JOHNSTON . THEORY OF OPERATIONS. REV. 1.0 PAGE 33 PROJECT BREITENBUSH. . .
Class Diagram
GUI Package
1 1 Connection BreitenBush -connectionToDB -connection -dbUserName -userPassword -dbPassword -userName -userName -failedLoginCount -userPassword +BreitenBush() -databaseLocation +Boolean login(in userName, in password) 1 1 +Connection(inout userName : string, in userPassword : string) +Boolean push(in file) +Boolean push(in file) +File pull(in fileName) +File pull(in fileName) +String[] getFileListing() +String[] getFileListing() +Boolean logout() +Boolean logout() +long getFileSize(in fileName)
Figure 27: System Class Diagram
UNIVERSITY OF PORTLAND SCHOOL OF ENGINEERING CONTACT: P JOHNSTON . THEORY OF OPERATIONS. REV. 1.0 PAGE 34 PROJECT BREITENBUSH. . .
Client Controller -Login login -Backup backup The classes listed here are -Restore restore part of the client package -BreitenBush breitenBush +Controller() +login_init() +restore_init() 1 +backup_init() 1 +main()
1
1 1 1
Login Backup Restore -String pageTitle -String tabTitle -String tabTitle -JLabel nameLabel -JFileChooser fileListing -JFileChooser FileListing -JLabel passwordLabel -JLabel fileName -JLabel fileName -JTextField userName -JLabel fileSize -JLabel fileSize -JTextField password -JLabel lastBackup -JLabel lastRestore -JButton cancel -JTextField fielNameField -JTextField fileNameField -JButton login -JTextField fileSizeField -JTextField fileSizeField +Login() -JTextField lastBackupField -JTextField lastRestoreField -JButton cancel -JButton cancel -JButton backup -JButton restore +Backup() +Restore()
Figure 28: GUI Class Diagram
Instance Variable Invariants
Breitenbush
connection (Instance – Connection)
userPassword (Instance – String, 5 < Length <= 255)
userName (Instance – String, 0 < Length <= 255)
failedLoginCount( Instance – Int, 0 <= Length < 3, incremented on connection failure, =0 on connection success)
Connection ( The connection takes the inputs from the Breitenbush class. The connection class acts as an interface to the Breitenbush class.)
connectionToDB (Instance – JDBC)
dbUserName (Instance – static final String, not null)
dbPassword (Instance – static final String, not null)
userName (Instance – String, not null)
UNIVERSITY OF PORTLAND SCHOOL OF ENGINEERING CONTACT: P JOHNSTON . THEORY OF OPERATIONS. REV. 1.0 PAGE 35 PROJECT BREITENBUSH. . . userPassword (Instance – String, not null) databaseLocation (Static Final – InetAddress, not null)
Controller
breitenBush (Instance – Breitenbush, not null)
All other instance variables are for GUI-management and demonstrate no logical algorithms.
Method Descriptions
Each method within the library is invoked from the GUI, such that the GUI calls on the Breitenbush class, which calls on the Connection class and the Connection class in turn calls on the Database.
Breitenbush Class:
login(in userName, in password) - Public
Preconditions:
Username(String): must be an alphanumeric and special characters string of length 1 to 255.
Password(String, encrypted): must be an alphanumeric and special characters string of length 6 to 255.
Not currently logged in.
Has ability to access Breitenbush system (e.g. Internet connection).
Post conditions:
A connection has been established if valid userName and password have been provided.
If an invalid userName and password were provided, no connection will be established.
For every failure the failedLoginCount will be incremented.
Exceptions:
Internet Connection Error: When an Internet connection is not available this error will be thrown to the GUI. Text for this error will read, “An Internet connection error has occurred. Please check your Internet connection and try again.”
Invalid Username or Password Error: If a username and/or password do/does not match a specific user record this error will be thrown to the GUI. The text for this error will
UNIVERSITY OF PORTLAND SCHOOL OF ENGINEERING CONTACT: P JOHNSTON . THEORY OF OPERATIONS. REV. 1.0 PAGE 36 PROJECT BREITENBUSH. . . read, “The username or password specified are invalid . please try again.”
Results:
This method takes a username and password from the GUI and creates an instance of the Connection class with those parameters. A handle to the Connection class instantiation, as well as the password and the username are stored within the Breitenbush Class. The Connection class will store the username and password upon successful instantiation.
Upon a failed login in Breitenbush, the failedLoginCount will increment by one. If there have been three failed logins, before a successful login, then the client application will close.
On successful login, the failedLoginCount is set to zero (reset).
push(in file) - Public
Preconditions:
File(File): Is a valid file that the user wishes to upload to the server, non-null.
A valid connection to the database must be available.
Post conditions:
Upon completion a file will have been inserted into the system.
Exceptions:
If an Internet connection is not present or is lost during a transmission, an exception will be thrown to the calling method. Text for this error will read, “An Internet connection error has occurred. Please check your Internet connection and try again.”
If the server cannot accept the file for lack of available storage space, then an exception will be thrown to the calling method. Text for this error will read, “Inadequate storage space available on server, please contact the server admin.”
If the file is corrupted during transit an exception will be thrown to the calling method. Text for this error will read, “The file transmission failed due to corruption please try again.”
UNIVERSITY OF PORTLAND SCHOOL OF ENGINEERING CONTACT: P JOHNSTON . THEORY OF OPERATIONS. REV. 1.0 PAGE 37 PROJECT BREITENBUSH. . . Results: Upon a request from the GUI package to upload a file to the server, a file is passed through this method to the Connection class’ push method. The Connection class push method will then upload the file to the server (database). Boolean values are returned to indicate successful or failed file transfer.
pull(in fileName) - Public
Preconditions:
fileName(String): Is a valid file name of a file in the Breitenbush system that the user wishes to download, non- null.
A valid connection to the system must be available.
Post conditions:
Upon completion a file will have been downloaded from the system.
Exceptions
If an Internet connection is not present or is lost during a transmission, an exception will be thrown to the calling method. Text for this error will read, “An Internet connection error has occurred. Please check your Internet connection and try again.”
If the client cannot accept the file for lack of available storage space, then an exception will be thrown to the calling method. Text for this message will read, “There is not enough storage available on the system for file storage, please specify a location that can store this file.”
If the file is corrupted during transit an exception will be thrown to the calling method. Text for this error will read, “The file transmission failed due to corruption please try again.”
Results:
Upon a request from the GUI package to download a file from the server, a filename is passed through this method to the Connection class’ pull method. The Connection class’ pull method will then download the file from the server (database) to the client. The requested file is passed as a return value throughout these method calls.
getFileListing() - Public
Preconditions:
UNIVERSITY OF PORTLAND SCHOOL OF ENGINEERING CONTACT: P JOHNSTON . THEORY OF OPERATIONS. REV. 1.0 PAGE 38 PROJECT BREITENBUSH. . . A valid connection to the database must be available. Post conditions:
A file listing will be returned to the calling method.
Exceptions:
If an Internet connection is not present or is lost during a transmission, an exception will be thrown to the calling method. Text for this error will read, “An Internet connection error has occurred. Please check your Internet connection and try again.”
If the listing is corrupted during transit an exception will be thrown to the calling method. Text for this error will read, “The file transmission failed due to corruption please try again.”
Results:
Upon a request from the GUI package to get a listing of the files stored on the server (database), the method calls on the Connection class’ getFileListing() method, which then queries the server (database) in order to return an appropriate listing. All methods incorporated in this transaction will return an array of Strings to the caller.
logout() – Public
Preconditions:
A connection has been established at some point during the operation of the client application.
Post conditions:
Upon completion a client will be logged out of the Breitenbush system. A Boolean will be returned to the client.
Exceptions:
None.
Results:
When the client application is closed, the GUI package sends a method call to logout from the system. The Breitenbush class’ logout method then calls on the connection class which closes the open connection to the server. Notice this also ends the instantiation of both, the Breitenbush class and the Connection class.
UNIVERSITY OF PORTLAND SCHOOL OF ENGINEERING CONTACT: P JOHNSTON . THEORY OF OPERATIONS. REV. 1.0 PAGE 39 PROJECT BREITENBUSH. . . Connection Class: See descriptions in the Breitenbush class.
Controller Class:
This class and other classes within the GUI Package have no logical algorithms.
UNIVERSITY OF PORTLAND SCHOOL OF ENGINEERING CONTACT: P JOHNSTON . THEORY OF OPERATIONS. REV. 1.0 PAGE 40 PROJECT BREITENBUSH. . Chapter . 5 Conclusions
Project Breitenbush provides the everyday computer user with an Internet based backup tool. Breitenbush is a software project that could be further refined and marketed to the general public. The Breitenbush system will allow users to backup and restore their personal files at any location that has access to the Internet. Users can therefore use the service from a variety of places such as their office, their home, an internet café, and the airport.
The system will be accessible through the Breitenbush client application. In this design we have extracted the communications module, which is the connection-bridge between client and server (database). The extraction of the communications module allows incorporating access to the server system through other solutions, as long as they comply with the requirements of the communications class. This is not planned at this stage, but the design was made to accommodate a high degree of flexibility to adjust to future demands.
UNIVERSITY OF PORTLAND SCHOOL OF ENGINEERING CONTACT: P JOHNSTON . THEORY OF OPERATIONS. REV. 1.0 PAGE A PROJECT BREITENBUSH. . . Appendices
Traceability Table
Table 1: Traceability Table
Req. Login Logout Upload Download GUI
100 X Client Login
101 X X Client Logout
102 X X Client Upload
103 X X Client Download
104 X X Remote File Selection
105 X X Local File Selection(UL ) 106 X X Local File Destination (DL) 200 X Server Login
201 X X Server Logout
UNIVERSITY OF PORTLAND SCHOOL OF ENGINEERING CONTACT: P JOHNSTON . THEORY OF OPERATIONS. REV. 1.0 PAGE B PROJECT BREITENBUSH. . . Req. . Login Logout Upload Download GUI
202 X X Upload File to Server
203 X X Download File from Server 204 X X X Remote File Listing (Server side) 205 X X File Size Limitations
206 X X X X File Isolation
300 X Login Encryption
Table 1: Traceability Table demonstrates which components of the Breitenbush system implement the functional requirements specified in the Functional Specification document. The ‘Req.’ column a list of the requirements in that document, while the other columns show which function in the Breitenbush system satisfy this requirement.
UNIVERSITY OF PORTLAND SCHOOL OF ENGINEERING CONTACT: P JOHNSTON . THEORY OF OPERATIONS. REV. 1.0 PAGE C PROJECT BREITENBUSH. . . Functional. Requirements
Client Software
Table 2: Client Software Specification contains a list of the system software specifications and their required values.
Table 2: Client Software Specifications
Req. # Requirement 100 Login: The user shall login to the system with an assigned username and password. The user will not have the option to change their password. 101 Logout: The user shall logout when closing the application. There will be no auto logout function because the server will implement this. The client will only know that it lost connection after a certain period of time. 102 Upload: The user shall have the ability to transfer files from their own computer to the server computer. 103 Download: The user shall have the ability to transfer files from the server to their computer. 104 Remote File Choice for Download: The user shall have the ability to view a listing of the files that are stored on the server. 105 Local File Choice for Upload: The user shall have the ability to choose a file from their computer to upload. 106 Local File Download Destination: The user shall have the ability to designate the destination for a file to download to using a file chooser.
Server Software
Table 3: Server Software Specification contains a listing of requirements for the server software package.
Table 3: Server Software Specifications
Req. # Requirement 200 Login: The server will allow the client to login to the system. 201 Logout: The server shall allow the client to logout when
UNIVERSITY OF PORTLAND SCHOOL OF ENGINEERING CONTACT: P JOHNSTON . THEORY OF OPERATIONS. REV. 1.0 PAGE D PROJECT BREITENBUSH. . . closing the client application. 202 Upload to Server: The server shall have the ability to receive files from the client computer. 203 Download from Server: The server shall allow the client to transfer files from the server to their computer. 204 File Choice for Download from Server: The server shall allow the client to request a file listing. The listing will be a flat structure (e.g. no directories). If the file exists then the user will be warned and it will be overwritten if the user allows. 205 File Size Limit: File sizes uploaded to the server will be limited to 4 GB. 206 File Isolation: The user will only be allowed to access his/her own files.
Communication Security
Table 4: Communication Security Specifications contains a list of the security requirements, for the client and server communication.
Table 4: Communication Security Specifications
Req. # Requirement 300 Login: The username and password will be encrypted during communication.
Use Cases
Login
Primary Actor: User (novice). Goal in context: The User requests access to files (establish connections between Client and server). Preconditions: Internet connection and the server are accessible, Client application is opened, and a supported platform (Microsoft Windows) is being used. Trigger: Client application is opened.
Scenario: 1. Client application is opened and user is prompted to enter user name and password. 1.1. - The User types in its user name and password and clicks on the ‘Ok’ button.
UNIVERSITY OF PORTLAND SCHOOL OF ENGINEERING CONTACT: P JOHNSTON . THEORY OF OPERATIONS. REV. 1.0 PAGE E PROJECT BREITENBUSH. . 1.2. - If access. is granted (correct user name and password was entered), further functionality will be available.. 1.3. - If access is not granted (incorrect user information was entered), then request user name and password again (this will continue 3 times, until user clicks on ‘Cancel’ button, or login is successful). 2. ‘Cancel’ button is clicked and application closes.
Exceptions: 1. The Login information (user name and password) is corrupted in transit Internet connection is lost. This works like failed login (see scenario 1.3). 2. Server is unavailable. User is informed using an error dialog. 3. User account does not exist. User is prompted for correct login information (see scenario 1.3).
Priority: High When available: 1.0 Frequency of use: Every time the client is opened or a session needs to be established. Channel to actor: Mouse, Keyboard and graphical user interface of the client application. Secondary actors: Server Channels to secondary actors: The Internet Open issues: Time limitations of open sessions, security of data in transit, encryption of login information and preventing multiple logins of one user.
UNIVERSITY OF PORTLAND SCHOOL OF ENGINEERING CONTACT: P JOHNSTON . THEORY OF OPERATIONS. REV. 1.0 PAGE F PROJECT BREITENBUSH. . Logout .
Primary Actor: User Goal in context: Close all open connections to the server and close the client application. Preconditions: Client is not uploading or downloading during logout. The client application is open. Trigger: The user closes the client application, or the connection to the server was lost.
Scenario: 1. The User selects close button (Windows red X button) 1.1. - The connection to the server is closed 1.2. – The client application is closed
Exceptions: 1. If no open connection is present, the client application still closes.
Priority: High When available: 1.0 Frequency of use: Every time the client application is closed. Channel to actor: Mouse and graphical user interface of the client application. Secondary actors: Server Channels to secondary actors: The Internet Open issues: JVM problems or failures, client computer or server crashes.
UNIVERSITY OF PORTLAND SCHOOL OF ENGINEERING CONTACT: P JOHNSTON . THEORY OF OPERATIONS. REV. 1.0 PAGE G PROJECT BREITENBUSH. . Upload .
Primary Actor: User Goal in context: The user wants to save a selected file on the remote server. Preconditions: The user has successfully logged into the system, and the Server has space available. Trigger: The user wants to save a file to a remote server.
Scenario: 1. The user is presented with a local directory structure view. 1.1. - The user selects a file from directory structure. 1.2. - The user clicks on the ‘Backup’ button. 1.3. - Clicking the button initiates the file transfer to the remote server (choosing a destination directory path is not an option for the user). Note that existing files with the same name are overwritten without warning. 1.4. - A dialog, which disables other functions of the client application, displays during the file transmission and is titled ‘File Transfer’. 1.4.1. - Upon failed completion, a dialog with an “Ok” button appears indicating the a transmission error. A successful transmission is indicated in the field “Last Backup” with a status message reading “Successful”. 1.4.2. – If an error is displayed, the user clicks the ‘Ok’ button, which closes the dialog box and re-enables the client application for further use.
Exceptions: 1. The ‘Backup’ button is disabled until a file is selected. 2. A File cannot be added to the selection list if one is already selected (i.e. only one file may be selected at a time). 3. If no connection exists, a login is attempted using existing login information, after two login failures the system errors and returns to the login screen.
Priority: High When available: 1.0 Frequency of use: Every time the user uploads a file. Channel to Actor: Mouse and graphical user interface of the client application. Secondary Actors: None. Channels to secondary actors: None. Open issues: Encryption of files, transmission errors, and storage space availability. Other issues include the ability to choose a file from the remote server.
UNIVERSITY OF PORTLAND SCHOOL OF ENGINEERING CONTACT: P JOHNSTON . THEORY OF OPERATIONS. REV. 1.0 PAGE H PROJECT BREITENBUSH. . Download .
Primary Actor: User Goal in context: The user requests a file from a remote server. Preconditions: The user has successfully logged into the system. Trigger: The user tries to download a file from a remote server
Scenario: 1. The user is presented with a remote file listing view 1.1. - The user selects a file from the listing. 1.2. – The user clicks on the ‘Restore’ button 1.2.1. – The user also has the option to cancel the operation with the use of a button labeled, “Cancel.” 1.3. - The user is asked where on the local directory structure to save the file. This is presented in the form of a file chooser. 1.4. - Once the destination is selected, the file transfer begins. 1.5. - A dialog, which disables other functions of the client application, displays during the file transmission and shows the message ‘File Downloading’. In this dialog there is a “Cancel” button to terminate the transmission. 1.5.1. - Upon failed completion, a dialog with an “Ok” button appears indicating the failed transmission status. A successful transmission is indicated in the field “Last Restore” with a status message reading “Successful”. 1.5.2. - If an error is displayed, the user clicks the ‘Ok’ button, which closes the dialog box and re-enables the client application for further use. Exceptions: 1. The ‘Restore’ button is disabled until a file is selected 2. A file cannot be added to the selection list if one is already selected (i.e. only one file may be selected at a time). 3. An error is presented (through dialog) to the user if there is a hard drive or memory limitation. 4. If the selected file already exists in the destination directory, then the user is presented with a warning dialog asking to confirm whether it is okay to overwrite the existing file. 5. If no connection exists, a login is attempted using existing login information after two login failures the client application displays an e error and returns to the login screen.
Priority: High When available: 1.0 Frequency of use: Every time the user requests a download, Channel to actor: Mouse and graphical user interface of the client application. Secondary actors: None Channels to Secondary actors: None Open issues: Encryption of files and transmission errors.
UNIVERSITY OF PORTLAND SCHOOL OF ENGINEERING CONTACT: P JOHNSTON . THEORY OF OPERATIONS. REV. 1.0 PAGE I PROJECT BREITENBUSH. . . Diagram .Appendix:
Login r e s Decides to Use System U
Provides Login Information n o
i Allow Further Execution t
a Login Process Denied Access Access Denied Access Granted c i l p p
A Provides Login Information Denied Granted
e m g Determine Access e a t
r Verify Login Information s o y t S S
Figure 29: Login Swimlane Diagram
UNIVERSITY OF PORTLAND SCHOOL OF ENGINEERING CONTACT: P JOHNSTON . THEORY OF OPERATIONS. REV. 1.0 PAGE J PROJECT BREITENBUSH. . . Logout.
Quit r
e Decides to Quit / Logout s U
Quit Request n o i t
a Application Quits c i l p p A
e m g e a t r s o y t S S
Figure 30: Logout Swimlane Diagram
Upload File
Login System Upload System r
e User Receives Notification s Decides to Upload File Login Chooses File U
File Listing File Name Notification File Upload Request Not Connected n o i
t Status Request Connected
a Detect Connection Status Request File Upload File Notify User c i l p p A File Success Failure
e
m File Transmissions Status g e a t Receive File r s o y t S S
Figure 31: Upload Swimlane Diagram
UNIVERSITY OF PORTLAND SCHOOL OF ENGINEERING CONTACT: P JOHNSTON . THEORY OF OPERATIONS. REV. 1.0 PAGE K PROJECT BREITENBUSH. . Download .
Login System Download System
r Chooses File
e Decides to Download File s Login User Receives Notification U
File Name File Download Request File Listing with Display Not Connected Notification
n Success o i Status Request Connected t File Transmissions Status Error
a Notify User
c Detect Connection Status Request File Listing Request File Request Download File Receive File i l p p
A File Listing Request File Listing File Name File Data
e m g e a t
r Returns File Listing Send File s o y t S S
Figure 32: Download Swimlane Diagram
Figure 33: State Diagram
UNIVERSITY OF PORTLAND SCHOOL OF ENGINEERING CONTACT: P JOHNSTON . THEORY OF OPERATIONS. REV. 1.0 PAGE L PROJECT BREITENBUSH. . .
Glossary
Word Definition Backup Backup refers to the copying of data for the purpose of having an additional copy of an original source.
Client Client (computing), a piece of software that accesses remote services from another piece of software called a server. Often (although not always) the client software and server software reside on two separate computers. Download The transfer of data (usually a file) from a server to a client. Encryption In cryptography, encryption is the process of obscuring information to make it unreadable without special knowledge. File A file in a computer system is a stream (sequence) of bits stored as a single unit, typically in a file system on disk or magnetic tape. Isolation Isolation is to store a file in a way where another user does not have access to it Login A login (also log in, log on, sign in, sign on) is the process of accessing a computer by identification of the user in order to obtain credentials to permit access. It is an integral part of computer security procedure. Logout To logout (also: log out, log out, sign out, sign out) refers to the process of ceasing use of a computer system by removing the user credentials. It is the opposite of login. MTBF Mean Time Between Failure is a failure rate expressing the average frequency with which something fails. Server A computer software application that carries out some task (i.e. provides a service) on behalf of yet another piece of software called a client.
UNIVERSITY OF PORTLAND SCHOOL OF ENGINEERING CONTACT: P JOHNSTON . THEORY OF OPERATIONS. REV. 1.0 PAGE M PROJECT BREITENBUSH. . . Links .
For our design document please follow this link.
http://lewis.up.edu/EGR/SRDesign06/breitenbush/documents.htm
UNIVERSITY OF PORTLAND SCHOOL OF ENGINEERING CONTACT: P JOHNSTON