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:
- Introduction
- Functionality
- Usability
- Reliability
- Supportability
- Implementation Constraints
- Development Constraints
- Interfaces
- Domain Rules
- Licensing
- Information in Domains of Interest
Introduction
This document is the repository of all StickSync project requirements that are not captured in the use cases.
Functionality
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
Usability
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
Reliability
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.
Recoverability
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.
Supportability
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
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? !!!
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? !!!
Interfaces
The computers and PMSD are considered outside the system and so must be considered here. !!!
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
Licensing
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.
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
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 `.').