Contract II - University of North Carolina at Chapel Hill

advertisement
Contract II
Computer Science 145
University of North Carolina at Chapel Hill
Boss: Professor Greg Welch
Client: Professor Russell Taylor
February 13, 2001
Client:
Russell Taylor
Team Members:
Jeff Adams
Brian Boyd
Glenn Jessup
Jeff Townsend
_________________
2
This document – Contract II – is the “final” version of the nanoManipulator Index
contract, to be submitted to the Client – Professor Russell Taylor. Its purpose is to set
product and personnel requirements for both the Client and the programming Team –
consisting of Jeff Adams, Brian Boyd, Glenn Jessup, and Jeff Townsend. This “final”
version consists of the compromises between the Team’s ideas and concepts – including
User-Level Requirements, System-Level Specifics, Hardware and Software Resource
Requirements, and Preliminary Schedule – and the Client’s ideas and concepts. This
document will be delivered to the Client on February 13, 2001, to be signed, and a final
copy will be delivered to the Boss – Professor Greg Welch – on the same day. A fully
signed copy will be delivered to the Boss, Client, and each Team member upon earliest
convenience. If needed, a Contract III will be created for further compromises.
Document Change History
 February 12, 2001
o Added Section 5: Verification and Validation, moving Scheduling to
o
o
o
o
o
Section 6
Rewrite of Section 3: System Requirement Specification
Deletion of un-needed Glossary Section
Amended Section 1: Introduction, Second Paragraph
Sizing changes to Figure 2
Added nanoManipulator Index Data Model to Appendix
1. Introduction
The Client, Professor Russell Taylor, works on the nanoManipulator Project, a joint
project between the University of North Carolina’s Physics and Computer Science
Departments. This project uses a very sharp needle to manipulate objects on a
microscopic scale for various experiments needed on such a scale. Each experiment is
recorded and stored with relevant information to be played back at any given time.
However, over the years, these files have been haphazardly placed in the existing
directories with various styles used in naming the files for a more short-term recollection
instead of long-term recognition. Normally, this would not have been an issue, but the
only way to see the content of a miscellaneous file was to open it up, and run it until the
user recognized the video stream. Thus the idea of the nanoManipulator Index was
created as a method of creating thumbnail JPEGs of each experiment, to be placed in the
same directory format as the original file directory for ease of searching and
identification. These JPEGs will be converted from Tiffs, an image file format that the
nanoManipulator Program is already able to create.
To facilitate this nanoManipulator Index, two other parts of the project must also be
created and implemented: an AutoIndexer and a shell script that runs the AutoIndexer at a
chosen interval with user-decided options, both further explained later in this document.
3
2. User-Level Requirement Specification
B. Web Interface
A. AutoIndexer
nanoManipulator
Index
C. Script
Figure 1 - Context Model Diagram
User Interface:
A. Indexer: The indexer program will convert the snapshots taken by the viewer
to jpegs, and store them in a directory.
B. Web Interface: The web interface will allow a user to view the JPEG
snapshots for any compatible VRPN video we have indexed.
C. Script: The script will tell the indexer when to run, and with what user
specified options.
Process:
A. User IO
B. Web Index
G. User IO
C. Nano AFS
D. Viewer
E. Indexer
F. Script
Figure 2 – Process Model Diagram
4
A. The user interacts with the interface.
B. The web interface sends and receives data from the server.
C. The server sends data to the interface and the indexer program. It receives data
from the interface, indexer program, and the current VRPN viewer.
D. The viewer interacts with the indexer, and writes data to the server.
E. The indexer interacts with the viewer, and also sends and receives data from
the server.
F. The script takes data from the user, and kicks off the indexer.
G. The user provides options for the script.
3. System-Level Requirement Specification
3.1 Functional Requirements
3.1-A. User Interface
3.1-A.1 Browse nanoManipulator File System
The user will be able to browse the nanoManipulator directories
and view HTML pages associated with each experiment data file.
3.1-A.1.1 View Snapshots
The HTML file associated with each experiment will
contain JPEG thumbprint images taken from the
experiment’s video.
3.1-A.1.2 View ReadMe File
The contents of the ReadMe text file associated with each
experiment will also be included in each HTML file.
3.1-B. AutoIndexer
3.1-B.1 Create Snapshots
The AutoIndexer will use the nanoManipulator viewer along with
the command-line option provided by the client and/or his
colleagues to create periodic Tiff snapshots of each experiment
video file.
3.1-B.2 Convert to JPEG
Each Tiff snapshot will be converted to a thumbnail JPEG image
that can be viewed with a web browser through the HTML pages.
3.1-B.3 Delete Tiffs
All Tiff files will be deleted after being converted to JPEG.
5
Start AutoIndexer Script
Execute Indexer
With Options
Indexer
Options
INDEXER
Determine which
Experiments to
Index
Experiment
File Names
NANO
FILESYSTEM
Run Experiment
Videos, Creating
Tiff Snapshots
Tiff Files
Convert Tiffs to
JPEGs
Tiff Files
Delete Tiffs
JPEG Files
Create HTML
Files
Figure 3 – AutoIndexer Data Flow
6
3.1-C. AutoIndexer Executer
3.1-C.1 Directory
The directory option will specify the top-level directory to be
indexed.
3.1-C.2 Recurse
The Recurse option will tell the indexer whether to recurse through
the subdirectories of the specified directory or to only index those
files in the immediate directory.
3.1-C.3 ReIndex
The ReIndex option will tell the indexer whether to skip over or
reindex any experiments that have already been indexed on a
previous indexing session.
3.2 Non-Functional Requirements
3.2-A. User Interface
The user interface will be web-based using HTML pages, therefore it must
be accessible via any Netscape or Internet Explorer browser.
3.2-B. AutoIndexer
n/a
3.2-C. AutoIndexer Executer
n/a
3.3 Domain Requirements
3.3-A. User Interface
n/a
3.3-B. AutoIndexer
3.3-B.1 Execution Domain
The AutoIndexer will run on an SGI machine that has access to the
nanoManipulator directories in AFS.
3.3-B.2 Storage Domain
The AutoIndexer and any supplemental data files will be stored in
the top level of the nanoManipulator directory tree.
3.3-C. AutoIndexer Executer
The script that periodically runs the AutoIndexer has the same
domain constraints as the AutoIndexer (see 3.3-B.1, 3.3-B.2).
7
3.4 Interface Requirements
3.4-A. Web User Interface
The web user interface will interface with the AutoIndexer through the
structure of the nanoManipulator directory tree.
3.4-B. AutoIndexer
3.4-B.1 NanoManipulator Viewer
The AutoIndexer will interface with the nanoManipulator viewing
software in order to run the experiments and create Tiffs.
3.4-B.2 Image Converter
The AutoIndexer will use command line functions of an image
converter program to convert Tiffs to Jpegs.
3.4-C. AutoIndex Executer
The AutoIndexer will provide the operator of the nanoManipulator Index
system with a command line interface to specify with which options to
execute the command that runs the AutoIndexer.
3.5 Goals
The goal of this product is to make it easier for the user to browse the
nanoManipulator video file directories. Therefore, no extraneous maintenance will be
required in order to sustain the operation of nanoManipulator Index system.
4. Hardware and Software Resource Requirements
The nanoManipulator Index project has one obvious hardware requirement, which
is for a small amount of disk space to store the required files. These files include the
HTML files, the AutoIndexer program, the Script, and the Image Converter Program. We
have estimated this need at approximately 20 megabytes. Additional space will be
required for temporary storage of the Tiff files and permanent storage of all indexer
created files – HTML files and JPEGs.
The nanoManipulator Index project also has one software requirement – a small
program that will convert our Tiff files to JPEG files.
5. Verification and Validation
5.1 Strategy
Testing will be done using a top-down approach. As each component is
implemented, it will be tested using white-box methods. Sample input will be
8
used to test the specific system-level requirements of each component. This
sample input will ensure that all execution paths of the component are tested. A
structured system will be designed from the start with stub routines for
subcomponents. Black box methods will be used to test the entire system as each
stub is replaced with a fully tested and functioning component. The sample input
for the system will test the interfaces between components and verify that the
output correctly matches the user requirements. This process will continue until
all stubs have been replaced and the entire system has been built.
5.2 Test Cases
5.2-A. Tiff Generator
The program provided by the client to create Tiff snapshots of an
experiment file will be tested for correctly creating, naming, and saving
the Tiff snapshots.
5.2-B. Disk Full
The indexer should exit with an error message as soon as the
disk/directory it is writing to runs out of space.
5.2-C. Invalid Directory
The indexer should report an error if it is run on a non-existent directory or
on a directory that the operator of the indexer does not have permission to
access.
5.2-D. Previously Indexed Experiments
The indexer should recognize and skip over experiments that have already
been indexed (experiments that already have HTML files) on previous
runs of the indexer.
5.2-E. JPEG Conversion
The component that converts the Tiffs to JPEGs should be tested to make
sure it correctly converts and saves all of and only the Tiffs associated
with the experiment currently being indexed.
5.2-F. Tiff Deletion
All Tiff files created by the indexer and only those Tiff files created by the
indexer should be deleted upon completion of the indexing session.
5.2-G. HTML File Creation
The component that creates HTML files will be tested using sample
JPEGs and ReadMe texts. This will test the writing of files and also the
layout of the objects on the HTML page.
9
6. Preliminary Schedule
6.1 Development Items
6.1 – 1 Phases
6.1 – 1.1 Design
6.1 – 1.1a Write specifications
6.1 – 1.1b Write AutoIndexer prototype
6.1 – 1.1c Write Interface prototype
6.1 – 1.2 Implementation
6.1 – 1.2a Write User Manual
6.1 – 1.2b Code Interface
6.1 – 1.2c Code AutoIndexer
6.1 – 1.2d Test Interface
6.1 – 1.2e Test AutoIndexer
6.1 – 1.3 Integration
6.1 – 1.3a Test compiled Project
6.1 – 1.4 Delivery
6.1 – 1.4a Write Implementation Manual
6.1 – 1.4b Install & test on Client system
6.1 – 2 Milestones
6.1 – 2a Contract signed
6.1 – 2b Specifications approved
6.1 – 2c User Manual delivered
6.1 – 2d Prototypes approved
6.1 – 2e Interface passes test
6.1 – 2f AutoIndexer passes test
6.1 – 2g Project passes integration test
6.1 – 2h Implementation Manual delivered
6.1 – 2i Project installed & tested
6.1 – 3 Deliverables
6.1 – 3a Contract I
6.1 – 3b Contract II
6.1 – 3c Design Specifications
6.1 – 3d User Manual
6.1 – 3e Prototypes
6.1 – 3f Implementation Manual
6.1 – 3g Web Site
6.1 – 3h Project Package
6.1 – 3i Team Report
6.1 – 3j Individual Reports
10
6.2 Scheduling Charts
6.2 – 1 GANTT Chart
ID
1
2/4
Task Name
De sign
2
cont ract signed
3
write specificat ions
4
specificat ions approved
5
writ e aut oIndex prot ot ype
6
writ e interface prot ot ype
7
8
write user manual
user manual delivered
11
code interface
12
code aut oIndex
13
t est interface
14
interface passes test
15
test aut oIndex
4/1
4/15
4/29
2/19
2/19
3/5
3/29
aut oIndex passes test
3/29
t est system
19
system passes int egrat ion test
4/19
De l ive ry
21
write implem entat ion manual
22
implement ation manual delivered
23
inst all & test on client system
5/3
6.2 – 2 PERT Chart – critical path: 3-4-8-17-18-19-20-21-22
1
5/13
In te gration
18
20
3/18
2/13
protot ypes approved
9
17
3/4
Im ple m e n tation
10
16
2/18
2
3
5
6
4
8
9
10
11
13
14
12
15
16
17
18
19
20
21
22
23
24
7
11
6.3 Risk Analysis
6.3 – 1 Identified Risks
6.3 –1a Integration depends on client nanoManipulator software providing
snapshots.
6.3 – 2 Plans
6.3 – 2a Responsibility for providing snapshot capability has been assigned to
client group.
12
Appendix
13
nanoIndex Data Model
1
has subdirectories
D
irectory
Name
n
1
has experiments
n
Experiment
name
1
has an HTML file
1
HTML File
name
has a ReadMe file
1
1
ReadMe File
name
has sn apshots
1
n
JPEG Snapshots
name
14
Preliminary Report version 1.1
Computer Science 145
University of North Carolina at Chapel Hill
Boss: Professor Greg Welch
Client: Professor Russell Taylor
January 24, 2001
Team Members:
Jeff Adams
Brian Boyd
Glenn Jessup
Jeff Townsend
15
Overall Goals:
Our goal for this project is to provide an easier means of browsing through
experiments conducted using the nanoManipulator. In order to accomplish this we aim to
build a product that will, in coordination with the Unix viewing software, save periodic
snapshots of all compatible recorded experiments. These tiff images will be converted to
smaller JPEG files, and will be stored in an easily identifiable index directory.
Previously, the user would have to load the entire video into the viewing software, which
requires an excessive amount of time. Instead, we will implement a web-based interface.
We may also include a keyword search function with the interface, which would allow
the user to scan the readme.txt files that are included with each recorded video. We
intend to include options which will allow for color images versus grayscale, and any
other useful options which we may decide upon after having some time to experiment
with the viewing software first hand. Our basic design has three parts: the web interface,
an indexing program, and a simple script to kick off our indexer.
Product Features:
Our project requires a new feature to be added to the current viewing software
used in the nanoManipulator Lab. It is necessary that the viewer be able to take multiple
snapshots of a video at our request. This is to be completed by someone in the
department.
Feature Importance Description
Label
Rating
A
10
Converts the tiff files to jpeg files.
B
10
Decrease the size of the jpeg files.
C
10
Delete the tiff files.
D
10
E
10
Searches the Unix file system for compatible recorded
experiments.
Move the jpeg files to the desired directory.
F
10
G
10
H
8
Provide a web interface that shows the Unix file system
containing the recorded videos.
Interface allows user to click on a given experiment, and
provides the user with the jpeg thumbnail images from that
experiment.
Allow the user to specify the desired directory.
16
I
8
Allow the user to specify color image versus grayscale.
J
6
K
6
L
5
Interface allows the user to enter keywords into a search field.
This searches the readme.txt files for all compatible experiments.
The matches are returned as a list, and can be clicked to bring up
the experiment thumbnails.
Enable the user to edit a project’s readme.txt file while browsing
the thumbnail images.
List those experiments that have not yet been indexed.
M
3
Return error code if incompatible video type found
Interface:
Our web interface will be clean and easy to use. It will show the user the file
system of indexed experiments by file name and date. The user can click on a given
experiment, bringing up thumbnail jpegs of snapshots taken from the experiment video.
From there, the user may be able to edit the ReadMe file accompanying the images. We
strive to add a search form allowing the user to perform a keyword search on the included
readme files. As far as the indexing program itself, we anticipate to stick to a simple
command line interface.
Sample Web Interface:
nanoManipulator Index
UNC-CH Dept. of Computer Science
Filesystem:
+alabasterVRPNs
-buckyballVRPNs
buckminster1VRPN
buckminster2VRPN
+zygoteVRPNs
17
Sample image interface:
buckminster1VRPN:
View/Edit ReadMe
Go Back
Package Options:
Package A: This includes features a through g.
Package B: This includes all features a-i.
Package C: This includes features a-k.
Package D: This includes all features a-m.
Critical Path Items:
Show Stoppers
-It is absolutely imperative that the department itself provides the ability to
take snapshots within the viewing software at the given interval.
Things to Learn
-Our team must learn how to interface with the graphical software
currently being used by our client.
-It may be necessary for us to learn the scripting language or development
languages we decide to use for our project.
Things to get
-We must find a simple product that will help perform the file type
conversion from tiff to jpeg.
-We would like to be able to get a reservation for a room in Sitterson to be
used for our group meetings.
Things to understand
18
-Our team must understand how the graphical software mentioned above
functions.
Fall Back Options:
-Obviously, we hope to achieve Package D explained above. If this turns
out to be impossible, our fall back options include Packages a-c.
Schedules:
-Our team meets every Wednesday at 3 pm.
-We will meet every other Monday at 8:30 am with our client.
Document Updates:
Feb. 1, 2001
 Updated Cover Sheet: WordArt, Document Name, Boss name, Art
 Grammar corrections – i.e. products which to products that
 Changed spelling – nanomanipulator to nanoManipulator, unix to
Unix, etc.
 Lined up Features Table
Download