第9组(71) 需求分析报告

1.组长博客链接

点这里

2.团队基本情况

  • 团队项目的整体计划安排
计划安排 预计时间
编写需求说明书 10.17-10.20
约定好编码规范,初步架构搭建,完成需求规格说明书最终版 10.17-10.23
UI设计,完成架构设计,制定测试计划 10.24-10.30
完成Alpha版本——编码+测试+项目管理同步推进 10.31-11.28
完善项目,确定用户试用反馈和对测试计划改进 待定
完成Beta版本——以上面为基础进行改良+测试+项目管理推进 待定
确定最终版本与完善,编写用户手册 待定
  • 整体团队分工(大概,还会在细分)
分工 负责人
后端 叶飞扬,何坤杰,肖少东
前端,原型 张郑峰,宋静慧
美工 刘维凝
ppt,测试 柳越,罗彤
各类文档报告,测试 赖彪
答辩,测试 魏霖涛
  • 本次需求分析任务团队分工
    所有人需做的部分:对各个版本的文档进行讨论分析,决定改进方向
姓名 具体分配任务 具体分值(%)
魏霖涛(组长) 博客,燃尽图,演示视频 5
宋静慧 设计和描述原型,思维导图,演示视频 20
张郑峰 设计和描述原型,实现前端 10
刘维凝 项目logo 5
柳越 制作PPT 9
罗彤 制作PPT,答辩负责人,项目logo 10
赖彪 需求分析报告 9
叶飞扬 UML图,爬取数据 10
肖少东 UML图,搭建后端基本框架 10
何坤杰 UML图,爬取数据 12
  • 项目功能导图和燃尽图
    功能导图:

    燃尽图:

3.UML图

(1) 用户管理部分

负责人:肖少东

描述:用户管理包含用户注册、用户登录修改个人信息、重置密码,创建队伍,目标路线管理、好友管理的部分

该部分面临的问题:用户身份认证,用户间的通信,创建队伍的逻辑以及用户隐私的控制

解决的问题:

  • ​ 认证采用认证中间件拦截处理模块,使用Json Web Token Authorization,对不同的用户使用不同的token;
  • ​ 用户交流采用websocket长连接以支持用户之间的实时通信。
  • ​ 隐私信息保护,为隐私信息加入混淆再进行传输。

用例图

user
user
注册
注册
登录
登录
修改个人信息
修改个人信息
Include
Include
竞赛
竞赛
证书
证书
Include
Include
我的路线
我的路线
报名
报名
好友列表
好友列表
Extends
Extends
我的队伍
我的队伍
Extends
Extends
用户中心
用户中心

类图

Team(队伍)+ tid: uuid+ owner: uuid+ create_date: datetime+ name: varchar+ description: varcharUserJoinInfo(用户的比赛记录)+ jid: uuid + uid: uuid+ ctid: uuid (比赛子项)+ tid: uuid (比赛队伍,可为null)+ create_date: datetimeUserAward (用户的获奖情况)+ aid: uuid+ uid: uuid+ name: varchar+ type: int (0代表证书,1代表比赛)+ ctid: uuid (证书或者比赛的子项)+ description: varcharAwardRes(获奖资源)+ rid: uuid+ aid: uuid + name: varchar+ url: varchar+ ext: varcahr+ size: bigintUserResume(用户简历)+ rid: uuid+ uid: uuid+ name: varchar+ info: varchar+ create_time: datetime+ update_time: datetimeApplyInfo(报名记录)+ aid: uuid+ tid: uuid+ uid: uuid+ title: varchar+ content: varchar+ status: int (报名状态)FriendUser(好友列表)+ owner: uuid+ uid: uuid+ group: varchar+ remarks: varchar+ create_time: datetimeChatMessage+ cid: uuid+ fuid: uuid(发送方)+ tuid: uuid(接收方)+ content_json: varcharFriendApplyInfo(好友申请信息)+ fid: uuid+ owner: uuid+ uid: uuid+ status: int+ message: varcharTeamPartner(队伍成员)+ tid: uuid+ uid: uuid+ remarks: varchar+ create_date: datetimeUser(用户)+ id: uuid+ username: varchar+ password: varchar+ email: varchar+ phone: varchar+ avatar: varchar+ born: datetime+ login_times: int+ last_login_ip: varchar+ create_date:datetime+ last_login_date: datetimeUserRouteItem( 用户路线具体子项)+ rtid: uuid+ rid: uuid+ name: varchar+ type: int (0代表证书,1代表比赛)+ ctid: uuid (证书或者比赛的子项)UserRoute(用户参与路线)+ rid: uuid+ name: varchar (参与路线的自定义名称)+ description: varchar (路线的具体描述)
活动图

user
user
登录成功
[Not supported by viewer]
no
no
yes
yes
登录
[Not supported by viewer]
注册
[Not supported by viewer]
yes
yes
no
no
注册
[Not supported by viewer]
功能选择
[Not supported by viewer]
我的报名
[Not supported by viewer]
竞赛
[Not supported by viewer]
证书
[Not supported by viewer]
指定竞赛页面
[Not supported by viewer]
指定证书页面
[Not supported by viewer]
聊天
[Not supported by viewer]
个人信息
[Not supported by viewer]
好友列表
[Not supported by viewer]
指导私聊
[Not supported by viewer]
队伍群聊
[Not supported by viewer]
修改个人信息
[Not supported by viewer]
注销
[Not supported by viewer]

状态图

未登入
未登入
已注册
已注册
未注册
未注册
遗忘密码
遗忘密码
账号正常
账号正常
重置密码
重置密码
注册
注册
已登入
已登入
登入
登入
收藏
收藏
消息
消息
报名
报名
Viewer does not support full SVG 1.1

(2) 权限部分

负责人:叶飞扬

描述:为区分管理员、普通用户、特殊用户进行细粒化权限控制

该部分面临的问题:权限控制越细处理越复杂同时效率也越低,如何权衡效率以及粒度。

解决的问题:

采用基于角色的权限控制,并将统一资源定位变换为资源与方法进行细粒化控制,同时加入自动化权限分配策略。

用例图

User
User
自身权限
自身权限
Admin
Admin
修改用户权限
修改用户权限
权限模块
权限模块

类图

Permission+ pid: uuid+ name: varchar+ url: varchar+ create_date: datetime+ method: varchar+ description: varcharRole+ rid: uuid+ name: varchar+ create_time: datetimeUser(用户)+ id: uuid+ username: varchar+ password: varchar+ email: varchar+ phone: varchar+ avatar: varchar+ born: datetime+ login_times: int+ last_login_ip: varchar+ create_date:datetime+ last_login_date: datetime
活动图

user
user
权限不够
[Not supported by viewer]
在竞赛模块
[Not supported by viewer]
no
no
yes
yes
申请成为队长
[Not supported by viewer]
权限等级上升
[Not supported by viewer]

状态图

普通权限
普通权限
管理员权限
管理员权限
普通队员权限
普通队员权限
队长权限
队长权限
成为队长
成为队长
管理员权限
管理员权限
Viewer does not support full SVG 1.1

(3) 证书部分

负责人:何坤杰

描述:证书的爬取、收集、证书的自动化分类以及排序存储

该部分面临的问题:证书的官方网站散而多,各省的证书网站都不近相同,如何做到自动化获取这些信息是一个难点

解决的问题:

爬虫爬取资源以及人工手动收集标记,然后逐步转为自动化收集以及标记。

用例图

User
User
搜索比赛
搜索比赛
查看证书
查看证书
Include
Include
报名
报名
Admin
Admin
维护证书信息
维护证书信息
证书模块
证书模块

类图

Certificate(证书)+ cid: uuid+ name: varchar+ create_date: datetime+ description: varchar+ website: varchar+ ccid: uuidCertificateClassification(证书分类)+ ccid: uuid+ name: varchar+ create_date: datetimeCertificateItem(证书具体考证)+ ctid: uuid+ cid: uuid+ exam_start: datetime+ exam_end: datetime+ apply_start: datetime+ apply_end: datetime+ address: varcharCertificateRes(证书的资源)+ rid: uuid+ name: varchar+ url: varchar+ ext: varchar+ size: bigint+ cid: uuid+ ctid: uuidFCertificateClassification+ ccid: uuid+ cid: uuid
活动图

user
user
证书
[Not supported by viewer]
搜索证书
[Not supported by viewer]
指定证书
[Not supported by viewer]
详情
[Not supported by viewer]
官方公告
[Not supported by viewer]
相关文件
[Not supported by viewer]
报名
[Not supported by viewer]

状态图

证书状态
不可报名
不可报名
创建
创建
报名期
报名期
比赛期
比赛期
时间超过
时间超过
Viewer does not support full SVG 1.1

(4) 竞赛部分

负责人: 何坤杰

描述:比赛的爬取、收集以及自动化分类以及排序

该部分面临的问题:比赛的部分相对于证书部分会有专门的网站进行收集,爬取相对容易,但是如何区分一个比赛的区域以及比赛的正规性等等相对比较难。

解决的问题:

基于文本分析过滤一些水赛,只提取比较重要的比赛,同时通过前期的手动分类逐步转化为后期的自动化分类。

用例图

User
User
搜索比赛
搜索比赛
查看比赛
查看比赛
Include
Include
报名
报名
组队
组队
Include
Include
Admin
Admin
维护比赛信息
维护比赛信息
比赛模块
比赛模块

类图

Competition(比赛)+ cid: uuid+ name: varchar+ create_time: datetime+ description: varchar+ website: varchar+ max_people_count: int+ ccid: uuidCompetitionClassification(比赛分类)+ ccid: uuid+ name: varchar+ create_time: datetimeCompetitionItem(比赛的具体子项)+ ctid: uuid+ cid : uuid+ name: varchar (具体的名字,赛道) + competition_start: datetime+ competition_end: datetime+ apply_start: datetime+ apply_end: datetime+ address: varchar+ create_time: datetimeCompetitionRes(比赛的资源)+ rid: uuid+ name: varchar+ url: varchar (OSS对象存储的定位标识)+ ext: varchar+ size: bigint+ cid: uuid (比赛的项目,可为null)+ ctid: uuid(比赛的子项,可为null)FCompetitionClassification+ cid: uuid+ ccid: uuid
活动图

user
user
竞赛
[Not supported by viewer]
搜索比赛
[Not supported by viewer]
指定比赛
[Not supported by viewer]
详情
[Not supported by viewer]
官方公告
[Not supported by viewer]
相关文件
[Not supported by viewer]
报名
[Not supported by viewer]
人数符合
[Not supported by viewer]
组队
[Not supported by viewer]
报名成功
[Not supported by viewer]
查看队伍
[Not supported by viewer]
创建队伍
[Not supported by viewer]
申请入队
[Not supported by viewer]
Yes
Yes
No
No

状态图

队伍尚未创建
队伍尚未创建
报名队伍
报名队伍
队伍筹备
队伍筹备
队长创建
队长创建
报名失败
报名失败
报名成功
报名成功
人员不足,时间超时
人员不足,时间超时
报名人数满足
报名人数满足
Viewer does not support full SVG 1.1

实体关系图(总图)

用户
用户
用户名
用户名
邮箱
邮箱
头像
头像
出生日期
出生日期
手机号码
手机号码
比赛
比赛
分类
分类
比赛时间
比赛时间
报名时间
报名时间
资源
资源
名称
名称
地点
地点
比赛介绍信息
比赛介绍信息
长度
长度
创建的时间
创建的时间
拥有
拥有
1
1
n
n
队伍
队伍
属于
属于
n
n
n
n
名称
名称
描述信息
描述信息
分类
分类
证书
证书
名称
名称
名称
名称
报名时间
报名时间
考试时间
考试时间
官方网站
官方网站
官方网站
官方网站
地点
地点
拥有
拥有
n
n
1
1
证书信息
证书信息
奖项
奖项
名称
名称
属于
属于
1
1
n
n
描述
描述
获奖证书图片
获奖证书图片
属于
属于
1
1
n
n
拥有
拥有
n
n
1
1
添加好友
添加好友
n
n
n
n
路线规划
路线规划
描述
描述
名称
名称
创建时间
创建时间
拥有
拥有
n
n
n
n
拥有
拥有
n
n
n
n
邮箱
邮箱
用户名
用户名
头像
头像
描述
描述
名称
名称
获奖证书图片
获奖证书图片
报名时间
报名时间
邮箱
邮箱
用户名
用户名
头像
头像
描述
描述
名称
名称
获奖证书图片
获奖证书图片
报名时间
报名时间
证书信息
证书信息
考试时间
考试时间
名称
名称
官方网站
官方网站
地点
地点
描述
描述
名称
名称
创建时间
创建时间
地点
地点
邮箱
邮箱
用户名
用户名
头像
头像
描述
描述
名称
名称
获奖证书图片
获奖证书图片
报名时间
报名时间
分类
分类
证书信息
证书信息
考试时间
考试时间
名称
名称
官方网站
官方网站
地点
地点
描述
描述
名称
名称
创建时间
创建时间
地点
地点
比赛时间
比赛时间
名称
名称
报名时间
报名时间
分类
分类
用户部分
用户部分
比赛部分
比赛部分
证书部分
证书部分
角色
角色
名称
名称
创建时间
创建时间
有效期
有效期
权限
权限
拥有
拥有
名称
名称
资源
资源
操作
操作
n
n
n
n
创建时间
创建时间
属于
属于
n
n
n
n
权限部分
权限部分
Viewer does not support full SVG 1.1

时序图

首页
首页
个人信息界面
个人信息界面
竞赛界面
竞赛界面
证书界面
证书界面
组队界面
组队界面
用户
用户
查看我的队伍
查看我的队伍
登录竞枢
登录竞枢
点击我的
点击我的
查看参赛信息
查看参赛信息
登录失败
登录失败
报名参赛
报名参赛
查看报名信息
查看报名信息
聊天界面
聊天界面
队伍群聊
队伍群聊
好友私聊
好友私聊

通信图

证书列表
证书列表
证书详细
证书详细
查看
查看
返回
返回
报名
报名
登入
登入
报名
报名
返回
返回
成功
成功
验证
验证
验证成功
验证成功
Viewer does not support full SVG 1.1

部署图

Firewall
Firewall
Spider Server
Spider Server
Scrapy
Scrapy
Gateway
Gateway
Nginx
Nginx
User client
User client
Browser
Browser
DB Server
DB Server
Mysql
Mysql
Web Server
Web Server
Java Web Api
Java Web Api
Viewer does not support full SVG 1.1

4.作业记录相关

  • UML设计工具的选择,理由及评价

    使用的工具:VSCode Drawio插件、坚果云绘图

    理由:白嫖+多网盘支持,多平台支持——支持在vscode、桌面端、web端。比visio轻量,无需下载,易移植。

    评价:基本满足要求,很多模板支持,画UML图非常容易

  • 遇到的困难及解决方法

    • 遇到的困难:首先是对uml的陌生,对于各种uml设计图没有一个明确的概念,经常会混淆不同图的画法与意义。然后小组成员对于工具的使用还不熟练。
    • 解决的方法:查阅各种uml教程与博客,多用工具试试手。
  • PSP

PSP2.1 Personal SoftwareProcess Stages 预估耗时(分钟) 实际耗时(分钟)
Planning 计划 45 50
·Estimate ·估计这个任务需要多少时间 30 40
Development 开发 100 50
·Analysis · 需求分析 (包括学习新技术) 70 80
·Design Spec · 生成设计文档 30 20
·Design Review ·设计复审 30 10
·Coding Standard · 代码规范 (为目前的开发制定合适的规范) 30 45
·Design · 具体设计 260 300
·Coding · 具体编码 30 40
·Code Review · 代码复审 0 0
·Test · 测试(自我测试,修改代码,提交修改 0 0
Reporting 报告 60 50
·Test Repor ·测试报告 30 50
·Size Measurement ·计算工作量 15 20
· Postmortem & Process Improvement Plan ·事后总结, 并提出过程改进计划 80 60
· 合计 810 815
  • 学习进度表
第N周 新增代码(行) 累计代码(行) 本周学习耗时(小时) 累计学习耗时(小时) 重要成长
1 200 200 10 10 掌握新技能,增强组员的合作和相互学习
posted @ 2020-11-01 17:35    阅读(97)  评论(0编辑  收藏  举报