团队作业3--需求改进&系统设计
一、需求分析
1.1 课堂讨论问题
- 问题1:市面上有类似的博客平台,项目优势不明显
- 问题2:系统功能描述不详细
1.2 问题修改
- 解决1:本项目主要面向在校大学生,可和大学生的学习生活有机结合起来,打造一个内容更丰富、更接地气的交流社区
- 解决2:对功能描述进行补充,结合用户需求进行说明
1.3 用户需求调查
1.3.1 调查方式
为了进一步了解用户的需求,改善用户的体验,我们发布了项目的原型,并通过发放问卷的形式调查用户的需求,并收集用户对于项目的建议。以下是问卷的数据报表和分析。
1.3.2 调查结果分析
(1)同类产品的缺点
结果分析:现有的交流社区用户身份比较杂,大学生很难直接从上面获取与自己有关的信息,而且操作起来也不太方便,功能太多、页面太繁杂,所以我们需要打造一个面向大学生的交流社区,使得操作更方便,信息更符合大学生需求
(2)希望分享的内容
结果分析:可以看出大家希望在社交平台上分享的内容都是很贴近大学生活的,因此我们可以联合学校相关组织和社团,为用户推送更多他们感兴趣的内容
(3)对于平台功能的建议
结果分析:用户对于平台信息的质量有一定要求,并且希望能与其他用户进行互动,对不喜欢的用户进行屏蔽,我们可以在项目中赋予普通用户一定权限满足他们的要求,并在管理员端增加一些功能管理平台上的内容
1.3.3 需求规格说明书修改和完善
普通用户
(1)注册登陆
- 用户注册
- 登录时输入账号密码,如果输入错误会有警告
- 登录时会有图片验证码
- 忘记密码功能
(2)个人主页
- 编辑个人信息(头像、昵称等)
- 查看用户数据(关注、粉丝、文章等)
- 消息中心
- 各种功能设置
(3)文章
- 发表新文章,浏览文章
- 可以调节文章字体,设置多级标题
- 可以在文中插入图片、链接等
- 文章分类存放
- 点赞、收藏、评论
- 搜索文章、分类浏览
- 删除、修改文章
- 屏蔽某个用户的的文章
(4)好友管理
- 添加好友
- 给好友设置分组
- 好友黑名单设置
管理员
- 监控、管理平台内容
- 管理用户权限
- 发布公告
1.3.4 功能分析
根据《构建之法》中四象限管理法的理念,我们将任务按照重要程度和紧急程度分为四大模块:重要且紧急、重要但不紧急、紧急但不重要、既不重要也不紧急。
二、系统设计
系统 | 功能 |
---|---|
前端页面 | 直接与用户打交道,与用户进行交互 |
后端系统 | 负责处理用户的请求,提供用户数据、文章数据的存储、更新等功能 |
2.1 前端页面设计
我们团队主要使用HTML+CSS进行页面的布局,用Javascript来处理简单的交互和数据处理。在页面布局设计的过程中 ,我们主要追求整体简洁,使用户容易上手。在必要时,我们还会引入Vue前端框架,利用其相应式的特性让我们用更少的代码完成更多的交互设计。
Vue是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue 也完全能够为复杂的单页应用提供驱动。
2.2 后端系统设计
MVC 架构程序的工作流程: (1)用户通过 View 页面向服务端提出请求,可以是表单请求、超链接请求、AJAX 请求等 (2)服务端 Controller 控制器接收到请求后对请求进行解析,找到相应的 Model 对用户请求进行处理 (3)Model 处理后,将处理结果再交给 Controller (4)Controller 在接到处理结果后,根据处理结果找到要作为向客户端发回的响应 View 页面。页面经渲染(数据填充)后,再发送给客户端。
Servlet(Server Applet),全称Java Servlet,未有中文译文。是用Java编写的服务器端程序。其主要功能在于交互式地浏览和修改数据,生成动态Web内容。狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为后者。
Servlet运行于支持Java的应用服务器中。从实现上讲,Servlet可以响应任何类型的请求,但绝大多数情况下Servlet只用来扩展基于HTTP协议的Web服务器。
-
具体工作模式:
客户端发送请求至服务器
服务器启动并调用Servlet,Servlet根据客户端请求生成响应内容并将其传给服务器
服务器将响应返回客户端
2.3 数据库设计
ER图
三、任务分配计划
3.1 Product Backlog
3.2 甘特图
四、测试计划
4.1 单元测试
测试功能名称 | 测试负责人 |
---|---|
注册登录 | 李泽强、李鹏举 |
编辑个人信息 | 李鹏举 |
个人主页其他功能 | 唐振凯 |
文章编辑 | 唐振凯、叶杞豪 |
点赞、收藏、评论、搜索 | 刘宇杰、李泽强 |
好友管理 | 潘新坤 |
管理员功能 | 刘宇杰、潘新坤 |
单元测试标准
-
按照单元测试计划完成了所有规定单元的测试
-
达到了测试计划中关于单元测试所规定的覆盖率的要求
-
软件单元功能与设计一致
-
在单元测试中发现的错误已经得到修改,各级缺陷修复率达到标准
4.2 压力测试
-
测试目标:使用LR模拟真实用户对服务器施加压力。
-
测试范围:项目服务器(阿里云服务器ECS)
-
完成标准:直到服务器卡死。获得服务器资源,最大与链接数等数据。
-
需考虑的特殊事项:测试机是否满足需求。
-
使用工具:Jmeter
4.3 易用性测试
测试目标 | 模拟真实用户,无经验用户,测试系统的易用性。 |
---|---|
测试范围 | 前台 |
完成标准 | 成功地核实出前台各个页面符合可接受易用性标准。 |
需考虑的特殊事项 | 无 |
4.4 可靠性测试
-
测试目标:使用LR模拟真实用户对服务器施加一定压力。
-
测试范围:项目服务器。
-
完成标准:持续运行特定时间不出现问题。
-
需考虑的特殊事项:测试机是否满足需求。
4.5 回归测试
-
测试目标:确保BUG修复的完整性。
-
测试范围:项目中出BUG的部分。
-
完成标准:项目中出现的BUG完成修复,并将缺陷保存下来。
-
需考虑的特殊事项:出BUG的功能和BUG相关的功能都需要回测。