Version: Inception, Completed 9/5/2002

Supplementary Specification

This is the supplementary specification for the StickSync project. This page is divided into the following sections:

  1. Introduction
  2. Functionality
  3. Usability
  4. Reliability
  5. Supportability
  6. Implementation Constraints
  7. Development Constraints
  8. Interfaces
  9. Domain Rules
  10. Licensing
  11. Information in Domains of Interest


This document is the repository of all StickSync project requirements that are not captured in the use cases.

Return to top


The system shall run on Macintosh and Windows computers and shall support synchronization between any combination of two such computers (for example, two Macs or one Mac and one Windows computer).

The system shall support synchronizing sets of files whose total size exceeds the capacity of the PMSD, as long as the total size of the changed files does not exceed the capacity (with some margin for additional data).

!!! to be completed

Return to top


Users of the supported computers expect graphical user interfaces. The system should provide one.

Power users are also comfortable with, and sometimes prefer, a command-line interface. Should the system provide a command-line interface? !!!

What user-level help and documentation should be provided? !!!

!!! to be completed

Return to top


Failure Avoidance

!!! reasonable heading?

Copies of data structures used by the system and stored on disk should be locked when the system is running to prevent multiple instances of the system from corrupting the data structures.


If a PMSD that has been used by the system fails it should be easy for the user to synchronize the computers using another PMSD.

Return to top


The system must be well-documented within the source code to ease future maintenance and to increase the likelihood that documentation will be maintained.

Future support for computers running Linux is desirable.

Should the system support future internationalization of the graphical user interface?

!!! to be completed

Return to top

Implementation Constraints

The project must be implemented in Java. This is important both for cross-platform operation and because this project is to serve as an example for Com S 362, which requires use of the Java Programming LanguageTM.

others? !!!

Return to top

Development Constraints

System development must use tools that are available on both Windows and Macintosh systems.

Because the project is to serve as an example for Com S 362, the developers must use object-oriented analysis and design techniques and the Unified Process.

Are there other development constraints? !!!

Return to top


The computers and PMSD are considered outside the system and so must be considered here. !!!

Return to top

Domain Rules

This section should discuss constraints imposed by the Mac and PC file systems. Since they are outside to system boundary they are part of the problem domain.

It seems that the implementation requires that the PMSD contain at least a table giving the modification date for every synchronized file on both synchronization partners. Is this true, or is this premature design? (Both) !!!

!!! to be completed

Return to top


To support sharing of this example project for educational purposes, and because the developers believe that open source software is important for improving the overall quality of software, the project will be licensed under an open source license.

Though premature for a typical project, we have already chosen a license (the BSD license) for this project. Typically licensing decisions would be made closer to the release date for the project, but since we're putting all the project artifacts on the web from the beginning we decided to choose a license at inception.

Return to top

Information in Domains of Interest

Should include a section on Java and Swing with appropriate hyperlinks. A section with information and links for various PMSDs would also be helpful. !!!

!!! to be completed

Return to top

Last modified Tuesday, April 8, 2003.

This web page is for the StickSync project, developed as an example for Com S 362 at Iowa State University. Please direct any comments or questions about this project to Gary T. Leavens at leavens@cs-DOT-iastate-DOT-edu or Curtis Clifton at cclifton@cs-DOT-iastate-DOT-edu (after replacing -DOT- with `.').