项目分析笔记(1)---聊天室项目分析与实现(2008.6.11)
我们将要创建的聊天室程序是按照客户机/服务器范型来架构的。客户会随机连接聊天室。如果某个聊天室接收了客户,客户就会发送消息给这个聊天室。然后聊天室广播每条消息,除了发送者以外,每个与聊天室建立连接的客户都会收到一份拷贝.备注:聊天室是有人数上线的当达到人数上线是用户是无法连接的。
需求分析:
参与者:色狼,管理员
用例图
色狼 ------------------》 登入聊天室
|---------------------》 向MM们发送问候信息
《-------------------- 系统转发MM对色狼的厌恶之意。
|----------------------》 退出聊天室
管理员 ------------------》 增加聊天室
|-----------------------》 删除聊天室
|----------------------》 修改聊天室信息
用例规约
用例1 色狼登入聊天室
1. 客户端获取聊天室的地址
2. 系统放回一个聊天室的地址
3. 客户连接该聊天室
4. 系统放回登入成功信息
5。 用例结束
前置条件: 用户必先知道聊天室服务器的地址
后置条件:某一个聊天室增加一个用户
备用事件流1
4 当用户连接的聊天室已经达到人数上线时,系统返回该聊天室已满的消息
备用事件流2
4 当用户已经登入了一个聊天室,再登入的聊天室就是所在聊天室时,系统返回登入以及在改聊天室消息
用例2 色狼向mm们发送问候
1 客户端向聊天室发送消息
2 系统返回确认信息
前置条件: 色狼必须先登入改聊天室
后置条件: 该聊天室增加一条待转发消息
用例3 系统转发mm对色狼的鄙视之意
1 系统向客户端发送一条其他客户的信息
2 客户端向聊天室提交接受确认
前置条件: 色狼必须先登入该聊天室
后置条件: 聊天室不在向色狼发送这条消息。
用例4 管理员增加聊天室
1 输入新增加的聊天室的名称以及人数上线信息
2 系统返回成功信息
前置条件: 管理员必须先登入系统
后置条件: 系统增加一个聊天室
用例5 管理员删除一个聊天室
1 输入要删除的聊天室编号
2 系统返回成功信息
前置条件: 管理员必须先登入系统
后置条件: 系统中减少一个聊天室
备注事件流1
2 当该聊天室中有存在用户时??????? (请教各位大侠对于这种情况改如何处理?)
用例6 色狼退出聊天室
1 向聊天室提出退出请求
2 系统返回确认信息。
前置条件: 用于登入了聊天室
后置条件: 聊天室将减少一个用户
用例7 修改聊天室信息
1 输入修改的聊天室信息:包括聊天室的名称,人数上线
2 系统返回成功信息
前置条件:管理员必须登入系统
后置条件: 聊天室信息被修改(人数问题???)
粗略的类分析:
TCharRoomServer TCharRoom TClient
Count MaxCount ClientName
Charroom[]:TCharRoom ClientCount CharRoomName
Address Clients[]: TClient RecvMsgs: TMessage
MsgCount RecvMsgCount
Msgs[]: TMessage SendMsg(Msg: string)
TMessage
ClientName;
Msg
需求分析:
参与者:色狼,管理员
用例图
色狼 ------------------》 登入聊天室
|---------------------》 向MM们发送问候信息
《-------------------- 系统转发MM对色狼的厌恶之意。
|----------------------》 退出聊天室
管理员 ------------------》 增加聊天室
|-----------------------》 删除聊天室
|----------------------》 修改聊天室信息
用例规约
用例1 色狼登入聊天室
1. 客户端获取聊天室的地址
2. 系统放回一个聊天室的地址
3. 客户连接该聊天室
4. 系统放回登入成功信息
5。 用例结束
前置条件: 用户必先知道聊天室服务器的地址
后置条件:某一个聊天室增加一个用户
备用事件流1
4 当用户连接的聊天室已经达到人数上线时,系统返回该聊天室已满的消息
备用事件流2
4 当用户已经登入了一个聊天室,再登入的聊天室就是所在聊天室时,系统返回登入以及在改聊天室消息
用例2 色狼向mm们发送问候
1 客户端向聊天室发送消息
2 系统返回确认信息
前置条件: 色狼必须先登入改聊天室
后置条件: 该聊天室增加一条待转发消息
用例3 系统转发mm对色狼的鄙视之意
1 系统向客户端发送一条其他客户的信息
2 客户端向聊天室提交接受确认
前置条件: 色狼必须先登入该聊天室
后置条件: 聊天室不在向色狼发送这条消息。
用例4 管理员增加聊天室
1 输入新增加的聊天室的名称以及人数上线信息
2 系统返回成功信息
前置条件: 管理员必须先登入系统
后置条件: 系统增加一个聊天室
用例5 管理员删除一个聊天室
1 输入要删除的聊天室编号
2 系统返回成功信息
前置条件: 管理员必须先登入系统
后置条件: 系统中减少一个聊天室
备注事件流1
2 当该聊天室中有存在用户时??????? (请教各位大侠对于这种情况改如何处理?)
用例6 色狼退出聊天室
1 向聊天室提出退出请求
2 系统返回确认信息。
前置条件: 用于登入了聊天室
后置条件: 聊天室将减少一个用户
用例7 修改聊天室信息
1 输入修改的聊天室信息:包括聊天室的名称,人数上线
2 系统返回成功信息
前置条件:管理员必须登入系统
后置条件: 聊天室信息被修改(人数问题???)
粗略的类分析:
TCharRoomServer TCharRoom TClient
Count MaxCount ClientName
Charroom[]:TCharRoom ClientCount CharRoomName
Address Clients[]: TClient RecvMsgs: TMessage
MsgCount RecvMsgCount
Msgs[]: TMessage SendMsg(Msg: string)
TMessage
ClientName;
Msg