Docsity
Docsity

Prepare for your exams
Prepare for your exams

Study with the several resources on Docsity


Earn points to download
Earn points to download

Earn points by helping other students or get them with a premium plan


Guidelines and tips
Guidelines and tips

Design Specification Documents - Advanced Software Engineering | CS 430, Study notes of Software Engineering

Material Type: Notes; Professor: Cukic; Class: Advanced Software Engineering; Subject: Computer Science; University: West Virginia University; Term: Spring 2008;

Typology: Study notes

Pre 2010

Uploaded on 07/30/2009

koofers-user-rqj
koofers-user-rqj 🇺🇸

10 documents

Partial preview of the text

Download Design Specification Documents - Advanced Software Engineering | CS 430 and more Study notes Software Engineering in PDF only on Docsity!

Design Specification Document

Secure Transfer

Version 1.

March 11, 2008

Alex Baker

Matt Bartenschlag

Sue Morris

Yin Xu

Contact: Matt Bartenschlag ([email protected])

  • 1 Software Design Specification
    • 1.1 Goals and Objectives.............................................................................................
    • 1.2 Statement of Scope...............................................................................................
    • 1.3 Software Context...................................................................................................
    • 1.4 Major Constraints...................................................................................................
      • 1.4.1 Hardware Limitations.......................................................................................
      • 1.4.2 System Security..............................................................................................
  • 2 Data Design
    • 2.1 Internal Software Data Structure............................................................................
      • 2.1.1 File Listing Management.................................................................................
      • 2.1.2 Managing File Transfers..................................................................................
      • 2.1.3 Managing Files on the Remote Server............................................................
    • 2.2 Global Data Structures...........................................................................................
    • 2.3 Database Design...................................................................................................
      • 2.3.1 Patients Table Structure..................................................................................
  • 3 Architectural and Component-Level Design
    • 3.1 Program Structure.................................................................................................
      • 3.1.1 Architecture Diagram.......................................................................................
    • 3.2 connect................................................................................................................
      • 3.2.1 PSPEC..........................................................................................................
      • 3.2.2 Interface Description.....................................................................................
      • 3.2.3 Processing Detail..........................................................................................
    • 3.3 disconnect...........................................................................................................
      • 3.3.1 PSPEC..........................................................................................................
      • 3.3.2 Interface Description.....................................................................................
      • 3.3.3 Processing detail...........................................................................................
    • 3.4 queueTransfer.....................................................................................................
      • 3.4.1 PSPEC..........................................................................................................
      • 3.4.2 Interface Description.....................................................................................
      • 3.4.3 Processing detail...........................................................................................
    • 3.5 getNextTransfer...................................................................................................
      • 3.5.1 PSPEC..........................................................................................................
      • 3.5.2 Interface Description.....................................................................................
      • 3.5.3 Processing Detail..........................................................................................
    • 3.6 stopTransfer.........................................................................................................
      • 3.6.1 PSPEC..........................................................................................................
      • 3.6.2 Interface Description.....................................................................................
      • 3.6.3 Processing Detail..........................................................................................
    • 3.7 stopAllTransfers...................................................................................................
      • 3.7.1 PSPEC..........................................................................................................
      • 3.7.2 Interface Description.....................................................................................
      • 3.7.3 Processing Detail..........................................................................................
    • 3.8 clearTransfer........................................................................................................
      • 3.8.1 PSPEC..........................................................................................................
      • 3.8.2 Interface Description.....................................................................................
      • 3.8.3 Processing Detail..........................................................................................
    • 3.9 clearAllTransfers..................................................................................................
      • 3.9.1 PSPEC..........................................................................................................
      • 3.9.2 Interface Description.....................................................................................
      • 3.9.3 Processing Detail..........................................................................................
    • 3.10 clearCompletedTransfers...................................................................................
      • 3.10.1 PSPEC........................................................................................................
      • 3.10.2 Interface Description...................................................................................
      • 3.10.3 Processing Detail........................................................................................
    • 3.11 clearTerminatedTransfers..................................................................................
      • 3.11.1 PSPEC........................................................................................................
      • 3.11.2 Interface Description...................................................................................
      • 3.11.3 Processing Detail........................................................................................
    • 3.12 sendFile.............................................................................................................
      • 3.12.1 PSPEC........................................................................................................
      • 3.12.2 3.2.2 Interface description...........................................................................
      • 3.12.3 Processing detail.........................................................................................
    • 3.13 getFile................................................................................................................
      • 3.13.1 PSPEC........................................................................................................
      • 3.13.2 Interface Description...................................................................................
      • 3.13.3 Processing Detail........................................................................................
    • 3.14 search................................................................................................................
      • 3.14.1 PSPEC........................................................................................................
      • 3.14.2 Interface Description...................................................................................
      • 3.14.3 Processing Detail........................................................................................
    • 3.15 displayOptionsPane...........................................................................................
      • 3.15.1 PSPEC........................................................................................................
      • 3.15.2 Interface description....................................................................................
      • 3.15.3 Processing detail.........................................................................................
    • 3.16 showAdminLogin...............................................................................................
      • 3.16.1 PSPEC........................................................................................................
      • 3.16.2 Interface Description...................................................................................
      • 3.16.3 Processing Detail........................................................................................
    • 3.17 showAdminPane................................................................................................
      • 3.17.1 PSPEC........................................................................................................
      • 3.17.2 Interface Description...................................................................................
      • 3.17.3 Processing Detail........................................................................................
  • 4 User Interface Design
    • 4.1 Description of the User Interface..........................................................................
      • 4.1.1 Transfers Pane..............................................................................................
      • 4.1.2 Search Pane.................................................................................................
      • 4.1.3 Login Box......................................................................................................
      • 4.1.4 Local Pane....................................................................................................
      • 4.1.5 Admin Pane...................................................................................................
    • 4.2 Screenshot: Local Pane, Search Pane, and Transfers Pane...............................
    • 4.3 Screenshot: Login Box.........................................................................................
    • 4.4 Interface Design Rules........................................................................................
      • 4.4.1 Transfers Pane..............................................................................................
  • 5 Restrictions, Limitations, and Constraints
  • 6 Testing Issues
    • 6.1 Classes of Tests..................................................................................................
      • 6.1.1 Client Testing................................................................................................
      • 6.1.2 Server Testing...............................................................................................
    • 6.2 Expected software response................................................................................
      • 6.2.1 Client Testing................................................................................................
      • 6.2.2 Server Testing...............................................................................................
    • 6.3 Performance bounds............................................................................................
  • 7 Appendices
    • 7.1 References..........................................................................................................
      • 7.1.1 SSH Protocol – RFC 4250.............................................................................
      • 7.1.2 SSH Protocol – RFC 4251.............................................................................
      • 7.1.3 SSH Protocol – RFC 4252.............................................................................
      • 7.1.4 SSH Protocol – RFC 4253.............................................................................
      • 7.1.5 SSH Protocol – RFC 4254.............................................................................
      • 7.1.6 JSCAPE Secure FTP Factory.......................................................................

1 Software Design Specification

1.1 Goals and Objectives

This document defines the implementation details for the Secure Transfer system as well as the functions, error handling and the general constraints put on the software.

1.2 Statement of Scope

This system will be responsible for many tasks. It will allow the encrypted transfer of medical records and other critical files; it will provide enhanced security to prevent unauthorized users from accessing the system; finally, it will provide logging functionality so that all interactions with the system can be viewed. The management, security, and accuracy of the files transmitted by this system are not within the scope of this project.

1.3 Software Context

The United States Government has requested an application that will allow rapid access to the medical records of military personnel from a central server in Washington, D.C. These records will allow doctors, nurses, and other qualified individuals to quickly aid a patient by having immediate access to the patient’s medical history. Conversely, physicians and other qualified individuals will be able to update the currently stored file on the central server.

2 Data Design

2.1 Internal Software Data Structure

2.1.1 File Listing Management

Lists are used to manage the records available on both to local machine and the remote server.

2.1.2 Managing File Transfers

The system is specified to only allow 3 concurrently active transfers at any given time. Once 3 transfers have been started, subsequent requests are stored in the queued queue. When less than 3 transfers are active, the first item in the queued queue is started. 2.1.2.1 Active The active transfers are managed by a list. Once a transfer is started, or once one completes, it is removed from this list. The size of this list is static; by fixing the length of the active list, it is easier to ensure that only 3 active transmissions can be running at any time. 2.1.2.2 Queued Queued transfers are managed by a queue of any length. Ideally, the queue will be implemented as a linked list so that the queue may grow and shrink freely. 2.1.2.3 Transfers List The transfers list is a set of FTPTransfer objects which include all objects in the active and queued queues, as well as all transfers that have been completed or terminated.

2.1.3 Managing Files on the Remote Server

Remote files (files stored on the server) are stored in a split-directory tree format, where single-character commonalities are stored as directory trees. Files are stored based off a 9-digit integer based off of Social Security Numbers. For an example case of the Social Security Number “123-45-6789”, the file would be remotely stored as BASEDIR/1/2/3/4/5/6789.ext, where ext is an arbitrary file extension.

2.2 Global Data Structures

Global data structures are discouraged. No global data structures should be used during implementation.

2.3 Database Design

Database functionality has been incorporated into the Secure Transfer program to allow for accelerated access to data. The Secure Transfer database contains a single table, the People table. All medical records available for transfer must be listed in the database.

2.3.1 Patients Table Structure

2.3.1.1 fName This column is used to store the first name of a patient in the people table. For practice purposes, the first name is limited to a length of 255 characters. 2.3.1.2 lName This column is used to store the last name of a patient in the people table. For practical purposes, the last name is limited to a length of 255 characters. 2.3.1.3 dob This column is used to store the date of birth for a patient in the people table. This string follows the format YYYY-MM-DD; it therefore is never longer than 10 characters in length. 2.3.1.4 mid This column is used to store the Military ID associated with a patient in the people table. Because Military IDs are of different formats, the only restriction on this field is that it must be no longer than 100 characters. 2.3.1.5 ssn This column is used to store the Social Security Number associated with a patient in the people table. Social Security Numbers are stored in the table in the format NNN-NN-NNNN where N is a digit 0…9.

3.2 connect

3.2.1 PSPEC

This function connects a local machine to the remote server. Processes performed during the connection are encapsulated into this function. If the connection fails, a Dialog box appears to indicate that an error was encountered. Successfully logging into the system changes the state of the client to active.

3.2.2 Interface Description

This function accepts no parameters. This function has no return type. The side effect of this function is that the SFTP object representing a connection to the remote server now has an open socket associated with it.

3.2.3 Processing Detail

3.2.3.1 Restrictions and Limitations None 3.2.3.2 Local Data Structures None 3.2.3.3 Performance Issues Special consideration should be given to network connectivity. 3.2.3.4 Design constraints Only one active connection may be allowed at any given time. This function relies on the SFTP object which represents a connection to the remote server.

3.3 disconnect

3.3.1 PSPEC

This function terminates the connection between the remote server and the local machine. If no connection is present, the system ignores disconnect requests.

3.3.2 Interface Description

This function has no parameters. This function has no return type. The side effect of this function is that the SFTP object representing a connection to the remote server closes the socket connection to the server.

3.3.3 Processing detail

3.3.3.1 Restrictions and Limitations None 3.3.3.2 Local Data Structures None 3.3.3.3 Performance Issues None 3.3.3.4 Design constraints The client will ignore disconnect attempts if there is not an active connection. This function relies on the SFTP object which represents a connection to the remote server.

3.5 getNextTransfer

3.5.1 PSPEC

This function returns the next queued transfer from the queued transfers queue.

3.5.2 Interface Description

This function accepts no parameters. This function returns a single transfer to be completed. The side effects of this function include the removal of the front element of the queued queue.

3.5.3 Processing Detail

3.5.3.1 Restrictions and Limitations There are no restrictions or limitations for this function. 3.5.3.2 Local Data Structures No Local Data Structures are required for this function. 3.5.3.3 Performance Issues This function should not cause a significant decline in system performance. 3.5.3.4 Design Constraints This function requires ready access to the queued queue.

3.6 stopTransfer

3.6.1 PSPEC

This function stops an active transfer.

3.6.2 Interface Description

This function accepts as a parameter a unique identifier for the transfer. This function has no return type. This side effects of this function include a file transfer is stopped, all temporary files associated with the transfer are deleted, and the Transfer Pane is updated to reflect this change.

3.6.3 Processing Detail

3.6.3.1 Restrictions and Limitations There must be an existing file transfer. 3.6.3.2 Local Data Structures This function requires no Local Data Structures. 3.6.3.3 Performance Issues This function should not cause a significant decline in performance. 3.6.3.4 Design Constraints This function requires ready access to the active and queued transfers queues. The Transfers Pane should allow for this function to be called via a context menu associated with each transfer.

3.8 clearTransfer

3.8.1 PSPEC

This function removes a selected transfer from the Transfers Pane. This is a GUI function.

3.8.2 Interface Description

This function requires no parameters. There is no return type for this function. This function removes the selected transfer from the Transfers Pane.

3.8.3 Processing Detail

3.8.3.1 Restrictions and Limitations There are no restrictions or limitations for this function. 3.8.3.2 Local Data Structures No Local Data Structures are needed for this function. 3.8.3.3 Performance Issues System performance should not be significantly impacted by this function. 3.8.3.4 Design Constraints This function is called from a context menu within the GUI. That is, a user right clicks on one or more selected transfers and then chooses to “Clear Selected Transfer(s)” from the context menu. This action removes the transfer from the transfer pane, so the list of transfers and the transfers GUI must be accessible by this function.

3.9 clearAllTransfers

3.9.1 PSPEC

This function removes all completed or terminated transfers from the Transfers Pane.

3.9.2 Interface Description

This function accepts as a parameter a list of terminated and completed transfers. This function has no return type. This side effects of this function include the modification of the Transfers Pane and the removal of all terminated and completed transfers from the transfers list.

3.9.3 Processing Detail

3.9.3.1 Restrictions and Limitations There are no restrictions or limitations for this function. 3.9.3.2 Local Data Structures This function requires no Local Data Structures. 3.9.3.3 Performance Issues There are no Performance Issues associated with this function. 3.9.3.4 Design Constraints This function is called from a context menu within the GUI. That is, a user right clicks on one or more selected transfers and then chooses to “Clear All Transfers” from the context menu. This action removes all completed and terminated transfers from the transfer pane, so the list of transfers and the transfers GUI must be accessible by this function.

3.11 clearTerminatedTransfers

3.11.1 PSPEC

A processing narrative for component n is presented.

3.11.2 Interface Description

This function requires an action or event by the user requesting to clear the terminated transfers from the status list. This function takes input from the user in the form of a button click, and the output is blanking the status list where terminated transfers exist. The function also deletes any temporary files associated to existing terminated transfers. The function requires no parameters and returns nothing.

3.11.3 Processing Detail

3.11.3.1 Restrictions and Limitations None 3.11.3.2 Local Data Structures Access to the temporary files location on the user’s system, ability to delete temporary files. 3.11.3.3 Performance Issues Special consideration should be given to considerably large files. 3.11.3.4 Design Constraints Local file system is inaccessible or unwritable, making the function unable to delete, in which case the user is prompted of this error and instructed to inform an administrator. At least one terminated transfer must exist in the status list, and a temporary file must exist to be deleted.

3.12 sendFile

3.12.1 PSPEC

A processing narrative for component n is presented.

3.12.2 3.2.2 Interface description

This function accepts as a parameter the file name to be uploaded to the remote server. This function returns a Boolean true if the transfer was successful, or it returns a Boolean false if the transfer failed. There are no side effects for this function.

3.12.3 Processing detail

3.12.3.1 Restrictions and Limitations The user has read access to the local file, and has write access on the server. 3.12.3.2 Local Data Structures File objects stored on the remote server are required for this function. 3.12.3.3 Performance Issues Special consideration should be given to considerably large files, and network connectivity. 3.12.3.4 Design constraints The file must exist on the local file system, and must be read accessible to the user.