6. 状态图
这里我们为一个非常简单的FTP实现呈现状态图. 只使用回复代码的第一位数字. 每组FTP命令或命令序列有一个状态图.
命令分组是通过为每个命令构建模型, 然后将具有结构相同模型的命令收集在一起来确定的.
对于每个命令或命令序列, 有三种可能的结果: 成功 (S)、失败 (F) 和错误 (E). 在下面的状态图中, 我们使用符号B表示"开始", 符号W表示"等待回复".
我们首先呈现代表最大一组FTP命令的图:
1,3 +---+
----------->| E |
| +---+
|
+---+ cmd +---+ | 2 +---+
| B |---------->| W |----------> | S |
+---+ +---+ | +---+
|
| 4,5 +---+
----------->| F |
+---+
此图对以下命令建模:
- ABOR, DELE, CWD, CDUP, SMNT, HELP, MODE, NOOP, PASV, QUIT, SITE, PORT, SYST, STAT, RMD, MKD, PWD, STRU, 和 TYPE
其他图对命令序列建模, 更为复杂.