myflag step 3 :详细系统设计
在上周,我和我的小组已经完成了MyFlag的初步系统设计,经过我们充分的讨论,决定开始细化系统设计。这几天我们小组主要针对了以下几点进行了讨论:
- 用户端的系统模块的划分
- 用户端详细设计的初步进行
- 接口文档的进一步确定
- 用户界面设计的进行
一、用户端的系统设计
虽然客户端是由其他同学来完成,但是考虑到客户端的重要性,美观、实用与否直接决定着产品的成败,所以我和我的小组决定共同探讨这个话题,作为队长,首先要做的就是让大家充分发表意见,然后形成合力。经过我们一致的讨论,结果如下:
虽然客户端是由其他同学来完成,但是考虑到客户端的重要性,美观、实用与否直接决定着产品的成败,所以我和我的小组决定共同探讨这个话题,作为队长,首先要做的就是让大家充分发表意见,然后形成合力。经过我们一致的讨论,结果如下:
- 网络请求工具模块,封装了与服务器通信的方法
- 用户模块,功能包括
- 用户注册
- 用户登录
- 修改个人信息
- 修改密码
- 查找用户
- 社区模块,功能包括
- 添加好友
- 确认添加好友
- 改变备注
- 我的朋友
- 获得好友请求列表
- 用户Flag模块
- 创立Flag
- 查看我的Flag
- 更新我的Flag
- 删除我的Flag
- 社区Flag模块,主要功能有
- 查看朋友的Flag
- 请求朋友监督自己的Flag
- 处理要求监督Flag的请求
- 评价朋友的Flag
- 查看朋友对自己Flag的评价
在此基础上,画出的UML组件图如下所示。
可以看到,这四个模块的功能基本已经包括了系统的全部功能,并且这四个模块之间的关系并不紧密,这满足了模块间低耦合的要求;单个模块的功能比较单一,这满足了模块内高内聚的要求。且模块数量不多,便于管理。如果认为单个模块的功能还是偏于复杂,可以进行二次划分,进行简化。
二、
在讨论完基本的功能之后,接着要考虑的就是接口文档,他是后台与android端的连接口,我们一致确定之后在进行开发,主要是我和android的两位同学在进行讨论,考虑了实际的功能之后,我们得出了以下结论。
在讨论完基本的功能之后,接着要考虑的就是接口文档,他是后台与android端的连接口,我们一致确定之后在进行开发,主要是我和android的两位同学在进行讨论,考虑了实际的功能之后,我们得出了以下结论。
一 关于用户
1 用户注册
URL:/user/Register
Parameter: nickname 用户昵称
password 用户密码
phone 手机号 (11位)
email 电子邮件
information 个人信息
return:json格式的id(用户id)
2 登陆
URL:/user/Login
Parameter:
id 用户的id
password 用户密码
return:json格式的user
3 修改个人信息
URL:/user/UpdateInformation
Parameter:
id 用户的id
nickname 昵称
email 邮箱
information 个人信息
return:0:失败
1:成功
备注:参数id为必须,其余参数任选若干。
1 用户注册
URL:/user/Register
Parameter: nickname 用户昵称
password 用户密码
phone 手机号 (11位)
email 电子邮件
information 个人信息
return:json格式的id(用户id)
2 登陆
URL:/user/Login
Parameter:
id 用户的id
password 用户密码
return:json格式的user
3 修改个人信息
URL:/user/UpdateInformation
Parameter:
id 用户的id
nickname 昵称
email 邮箱
information 个人信息
return:0:失败
1:成功
备注:参数id为必须,其余参数任选若干。
4 修改密码
URL:/user/UpdatePassword
Parameter:
id 用户id
newPassword 新密码
oldPassword 旧密码
return:0:失败
1:成功
URL:/user/UpdatePassword
Parameter:
id 用户id
newPassword 新密码
oldPassword 旧密码
return:0:失败
1:成功
5 查找用户
URL:/user/FindUser
Parameter
id id查找
phone 按照用户查找
return:
return:json格式的user(手机号为0,无email信息)
user: uid 用户id
nickname 用户昵称
phone 手机号 (11位)
email 电子邮件
information 个人信息
二:关于添加好友
1 添加好友
URL:/friend/AddFriend
Parameter:
id 想要添加的好友的id
requestId 发起添加请求的id
message 添加时发送给被添加者的信息
remark 好友备注
2 确认添加好友
URL:/friend/ConfirmFriend
Parameter:
id 确认者的id
requestId 发起添加请求的id
agree:int 是否同意添加(0 未确定 1 不同意 2 同意)
remark 对添加者的备注(不同意则没有此参数)
3 改变备注
URL:/friend/UpdateRemark
Parameter:
aId 用户a的id
bId 用户b的id
newRemark 用户a对用户b的新备注
renturn: 0:失败
1:成功
4 我的朋友
URL:/friend/MyFriends
Parameter:
id 用户的id
return:
list[friend] friend friends列表
friend:
uid: 朋友的id
nickname 用户的昵称
remark 对朋友的备注
5 获得好友请求列表
URL : /friend/GetFriendRequest
Parameter:
id 用户id
return:
list[TempFriend] request 请求列表
TempFriend :
nickname: 请求者的昵称
phone: 请求者的电话
message: 请求者的信息
requestUid: 请求者的id
agree: 我是否同意 (0 :未作出决定 1:不同意 2:同意)
三:创建flag
1 创立flag
URL:/flag/CreateFlag
Parameter:
id: 创建者的id
content: 内容
award: 奖励
isTeam: 是否为团队 (true 或者 false)
startTime 开始时间
endTime 截止时间
supervise 监督者(格式 : iid1#id2#id3 以#作为分隔符)
member 成员(格式 : iid1#id2#id3 以#作为分隔符)
return:0 创建失败
1 创建成功
所有和时间有关的均使用Unix时间戳,长度为10位,如1469980800
2 查看我的flag(一次最多返回15个)
URL:/flag/MyFlag
Parameter:
id: 用户id
time 查找该时间之前的flag(默认为现在的时间)
return
list[FlagDetail] :flags flag列表
FlagDetail
FLag :flag
Vector<SuperviseBrief> :friendsJudge评价者的评价
Vector<Integer> member 返回参与人员的id列表
Flag
fid:int flag的id
id:int 创建者的id
content:String内容
award: String 奖励
isTeam: boolean 是否为团队 (true 或者 false)
startTime:long开始时间
endTime :long 截止时间
ahcieve :int 是否完成(0:未确定 1 失败 2完成)
createTime:long创建时间
SuperviseBrief
uid:int 用户的id
achieve :int 评价者给出是否完成(0:未确定 1 失败 2完成 )
state:int 是否同意评价请求(0 未确定 1 同意 2 不同意)
评语:String 评语
3 查看朋友们的flag(一次最多返回15个)
URL:/flag/FriendsFlag
Parameter:
id: 用户id
time 查找该时间之前的flag(默认为现在的时间)
return
list[FlagDetail] :flags flag列表
4 删除flag
URL:/flag/DeleteFlag
Parameter:
id: flag的id
return
0 删除失败
1 删除成功
5 处理要求监督flag的要求
URL:/flag/ConfirmSuperviseRequest
Parameter:
fid flag的id
uid 用户的id
agree 是否同意要求(1 为不同意 2 为同意)
return: 0 失败
1 成功
6 评价flag
URL:/flag/JudgeFlag
Parameter:
fid flag的id
uid 用户的id
achieve 是否完成(1 为 未完成 2 为完成)
evaluate 评语
return: 0 失败
1 成功
FlagDetail
FLag :flag
Vector<SuperviseBrief> :friendsJudge评价者的评价
Vector<Integer> member 返回参与人员的id列表
Flag
fid:int flag的id
id:int 创建者的id
content:String内容
award: String 奖励
isTeam: boolean 是否为团队 (true 或者 false)
startTime:long开始时间
endTime :long 截止时间
ahcieve :int 是否完成(0:未确定 1 失败 2完成)
createTime:long创建时间
SuperviseBrief
uid:int 用户的id
achieve :int 评价者给出是否完成(0:未确定 1 失败 2完成 )
agree:int 是否同意评价请求(0 未确定 1 不同意 2 同意)
评语:String 评语