项目文档──软件需求说明书 beta

(注:最新的版本可以在这里得到。)

软件需求说明书beta

作者:王聪

1. 引言

1.1 编写目的

对整个项目做总体分析,参与开发的每个人都应该读一下。这份文档是为客户端编写,服务器端和此可作互相参考。

1.2 背景

a.
项目名称:xylFTP

b.
指导老师:陈老师,王老师
开发者:
服务器端:林峰,刘洋,董溥,刘伟,贾孟树,聂海海,郭拓

客户端:孔建军,金明洁,王聪,赵崇日,周晓炜

1.3 定义

FTP—File Transfer Protocol, See RFC 959.

1.4 参考资料

a. TCP/IP Illustrated, Vol I, W. Richard Stevens
b. Unix Network Programming, Vol I, W. Richard Stevens, etc.
c. The Art Of Unix Programming, Eric S. Raymond
d. The Mythical Man-Month: Essays on Software Engineering, Anniversary
Edition (2nd Edition), Frederick Phillips Brooks, Jr
e. Unix Systems Programming: Communication, Concurrency and Threads,
Robbins, Steve Robbins
f. Java Network Programming, Elliotte Rusty Harold
g. 软件文档国家标准

2. 任务概述

2.1 目标

开发一个功能完善的FTP客户端和服务器端,初期实现基本功能,具体见[3.1]。如果初期顺利完成,则在此基础之上进行下一步的开发。

2.2 用户特点

xylFTP客户端是面向Linux/Windows普通用户。

2.3 假定和约束

经费:无
期限:1~2个月

3. 需求规定

3.1 对功能的规定

(注:[]里面的表示可选,不带[]的则是必选)

(1) 使用命令行界面,用Java开发。
(2) 能处理简单的命令行参数,两种格式大致如下:

xylftp [-h|—help] [-V|—version]

显示帮助信息,或版本信息。

xylftp [-v|—verbose][-u $USERNAME|—user=$USERNAME][-p $PASSWORD | —password=$PASSWORD][-d|—debug] $HOST

建立与$HOST的连接。

-v或—verbose:显示较多的额外信息
-u $USERNAME或—user=$USERNAME:以$USERNAME用户身份连接,如果无此选项,则尝试默认的anonymous
-p $PASSWORD或—password=$PASSWORD:用$PASSWORD密码登录。如果此项未指定,尝试默认的空密码。
(FIXME:当用户名是anonymous时,密码能不为空吗?)
-d或—debug:显示比—verbose更多的信息,供开发者使用。

(3) 交互式地接受简单的命令,包括:

help [$CMD] — 显示本客户端支持的命令列表
quit — 退出
bye — 等同于quit
open $HOST — 建立与$HOST的FTP连接,如果启动此客户端时没有指定的话
pwd — 列出服务器端的当前路径
cwd [$DIR] — 进入服务器$DIR目录
dir [$DIR] — 列出服务器$DIR目录下的文件
get $FILE — 从服务器获取名为$FILE的文件,保存至本地当前路径
put $FILE — 将本地的$FILE文件传送至服务器端的当前路径
close — 断开当前连接,并返回交互式界面
!! — 执行本地shell
? [$CMD] — 等同于help

3.3 输人输出要求

客户端应该采用交互界面,因此还要能处理错误输入。

3.4 安全性要求

服务器端应该首先考虑系统安全问题,比如:文件存储权限,日志记录,用户管理。
3.5 故障处理要求

下列错误应予以考虑,出错信息列表:

客户端:

01-无法连接远程主机
02-无法上传文件出错
03-无法下载文件出错
04-下载过程中出错
05-远程主机关闭
4 运行环境规定

4.1 设备

客户端使用Java编写,应该能在所有带JVM的机器上运行。

4.2 支持软件

客户端应该在Linux/Windows上无差别地顺利运行。