项目文档──软件需求说明书 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上无差别地顺利运行。