在之前的工作中,我们小组已经完成了MyFlag的初步系统设计,现在,我们团队开始考虑到进一步细化系统设计,并开始进行详细设计。这几天我们小组主要针对了以下几点进行了讨论:

  • 用户端的系统模块的划分
  • 用户端详细设计的初步进行
  • 接口文档的进一步确定
  • 用户界面设计的进行
一、用户端的系统设计
在APP的系统设计中,我们发现之前的系统设计模块划分太过于细致,导致模块数量过多,因此,对之前系统设计进行了一些修改,现已基本确定了如下模块。
  • 网络请求工具模块,封装了与服务器通信的方法
  • 用户模块,功能包括
    • 用户注册
    • 用户登录
    • 修改个人信息
    • 修改密码
    • 查找用户
  • 社区模块,功能包括
    • 添加好友
    • 确认添加好友
    • 改变备注
    • 我的朋友
    • 获得好友请求列表
  • 用户Flag模块
    • 创立Flag
    • 查看我的Flag
    • 更新我的Flag
    • 删除我的Flag
  • 社区Flag模块,主要功能有
    • 查看朋友的Flag
    • 请求朋友监督自己的Flag
    • 处理要求监督Flag的请求
    • 评价朋友的Flag
    • 查看朋友对自己Flag的评价
在此基础上,画出的UML组件图如下所示。
MyFlag Step3:APP的系统设计、界面设计和初步详细设计

可以看到,这四个模块的功能基本已经包括了系统的全部功能,并且这四个模块之间的关系并不紧密,这满足了模块间低耦合的要求;单个模块的功能比较单一,这满足了模块内高内聚的要求。且模块数量不多,便于管理。如果认为单个模块的功能还是偏于复杂,可以进行二次划分,进行简化。

二、用户端的初步详细设计

此外,在用户端方面,详细设计已经初步开始,现已完成了登录和注册的详细设计。伪代码如下:

注册:

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为必须,其余参数任选若干。
 
  4  修改密码
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.注册界面
MyFlag Step3:APP的系统设计、界面设计和初步详细设计                      MyFlag Step3:APP的系统设计、界面设计和初步详细设计

3.个人首页界面                                                       4.新建Flag界面
MyFlag Step3:APP的系统设计、界面设计和初步详细设计                   MyFlag Step3:APP的系统设计、界面设计和初步详细设计

5.好友界面                                                                6.社区界面
MyFlag Step3:APP的系统设计、界面设计和初步详细设计                MyFlag Step3:APP的系统设计、界面设计和初步详细设计

其他界面的设计也在不断跟进之中。

相关文章: