在之前的工作中,我们小组已经完成了MyFlag的初步系统设计,现在,我们团队开始考虑到进一步细化系统设计,并开始进行详细设计。这几天我们小组主要针对了以下几点进行了讨论:
- 用户端的系统模块的划分
- 用户端详细设计的初步进行
- 接口文档的进一步确定
- 用户界面设计的进行
一、用户端的系统设计
在APP的系统设计中,我们发现之前的系统设计模块划分太过于细致,导致模块数量过多,因此,对之前系统设计进行了一些修改,现已基本确定了如下模块。
在APP的系统设计中,我们发现之前的系统设计模块划分太过于细致,导致模块数量过多,因此,对之前系统设计进行了一些修改,现已基本确定了如下模块。
- 网络请求工具模块,封装了与服务器通信的方法
-
用户模块,功能包括
- 用户注册
- 用户登录
- 修改个人信息
- 修改密码
- 查找用户
-
社区模块,功能包括
- 添加好友
- 确认添加好友
- 改变备注
- 我的朋友
- 获得好友请求列表
-
用户Flag模块
- 创立Flag
- 查看我的Flag
- 更新我的Flag
- 删除我的Flag
-
社区Flag模块,主要功能有
- 查看朋友的Flag
- 请求朋友监督自己的Flag
- 处理要求监督Flag的请求
- 评价朋友的Flag
- 查看朋友对自己Flag的评价
在此基础上,画出的UML组件图如下所示。
可以看到,这四个模块的功能基本已经包括了系统的全部功能,并且这四个模块之间的关系并不紧密,这满足了模块间低耦合的要求;单个模块的功能比较单一,这满足了模块内高内聚的要求。且模块数量不多,便于管理。如果认为单个模块的功能还是偏于复杂,可以进行二次划分,进行简化。
二、用户端的初步详细设计
此外,在用户端方面,详细设计已经初步开始,现已完成了登录和注册的详细设计。伪代码如下:
注册:
1.检查网络是否可用,不可用跳转到9
2.检查用户信息是否输入合法,不合法跳转到9
3.检查两次密码输入是否一致,不一致跳转到9
4.建立链表,将所有注册信息存入其中
5.调用网络工具类的相应接口,等待返回结果
6.判断返回结果是否成功,不成功跳转到9
7.验证返回的json数据是否正确,不正确跳转到9
8.注册成功,跳转到登录界面
9.注册失败
登录:
1.检查网络是否可用,不可用跳转到9
2.检查账户输入是否合法,不合法跳转到9
3.检查密码输入是否合法,不合法跳转到9
4.建立链表,将账户和密码存入其中
5.调用网络工具类的相应接口,等待返回结果
6.判断返回结果是否成功,不成功跳转到9
7.验证返回的用户数据是否为空,为空跳转到9
8.登录成功,跳转到主界面
9.登录失败
三、接口文档的确定
经过我们小组这两天的努力,接口文档已经基本确定了下来,该文档基本定义了客户端与服务器的所有接口,具体如下所示。
经过我们小组这两天的努力,接口文档已经基本确定了下来,该文档基本定义了客户端与服务器的所有接口,具体如下所示。
一 关于用户
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 评语
四、用户界面的设计
目前为止,用户界面的设计已经完成了六个部分,具体如下
1.登录界面 2.注册界面
3.个人首页界面 4.新建Flag界面
5.好友界面 6.社区界面
其他界面的设计也在不断跟进之中。