团队作业3--需求改进&系统设计
团队作业3--需求改进&系统设计
需求&原型改进
需求修改
-
问题一:如何让平台显示内容更加真实可信
- 修改:增加用户身份区分,校内学生使用校内同一身份登录,对于校外用户,尤其是商家用户,对其发表内容进行额外标注与甄别,使得内容更加可靠
-
问题二:如何让校内的学生更倾向使用本平台
-
修改:简化系统平台界面,突出实用功能,发动可直接与校内用户沟通交流的优势,更有针对性的设计平台
需求规格书改进
- 校园身份验证系统:通过学校邮箱验证用户身份,确保点评真实性
- 校外用户甄别:对非校内用户发表的内容进行表明,尤其是商家的言论
- 评论机制:简化评论机制,将点评制作成选项,让用户可在更短的时间完成点评
-
场景参考(User Story):
桂恭子同学在平时的定评网站使用时,会有商家刷评论的现象,同时,在进行点评的时候,常因为点评程序繁琐而感到厌烦,结合这一现象,我们通过学校邮箱验证用户身份,确保点评真实性,对非校内用户发表的内容进行表明,尤其是商家的言论,同时我们还简化评论机制,将点评制作成选项,让用户可在更短的时间完成点评
功能分析的四个象限
根据《构建之法》第5节“功能的定位和优先级”,我们可以将功能分为四个象限,基于用户需求的重要性和技术实现的难易程度进行划分:
| 象限 | 高重要性,低难度 | 高重要性,高难度 |
|---|---|---|
| 功能描述 | 核心功能,易实现,需优先开发 | 核心功能,技术复杂,需重点投入 |
| 功能 | 1. 用户注册/登录(学校邮箱验证) | 1. 课程时间表整合推荐功能 |
| 2. 商户信息展示 | 2. 个性化推荐(基于用户历史行为) | |
| 3. 点评系统(评分、文字、图片) | 3. 数据统计分析模块 | |
| 开发优先级 | 第一优先级 | 第二优先级 |
| 象限 | 低重要性,低难度 | 低重要性,高难度 |
|---|---|---|
| 功能描述 | 辅助功能,易实现,可后续开发 | 辅助功能,技术复杂,可延后或简化 |
| 功能 | 1. 收藏夹功能 | 1. 校园活动联动推荐功能 |
| 2. 点评点赞/举报功能 | 2. 敏感信息脱敏处理 | |
| 3. 商户分类筛选 | 3. 防XSS攻击 | |
| 开发优先级 | 第三优先级 | 第四优先级 |
开发的任务分解以及项目进度计划
| 周 | 模块 | 任务 |
|---|---|---|
| 第1周 | 1. 用户模块 | 1.1 用户注册/登录(学校邮箱验证) |
| 1.2 个人信息管理 | ||
| 6. 安全与性能 | 6.1 用户密码加密存储 | |
| 第2周 | 2. 商户模块 | 2.1 商户信息展示 |
| 2.2 商户分类(餐饮、娱乐、生活服务等) | ||
| 3. 点评模块 | 3.1 评分系统(1-5星) | |
| 第3周 | 3. 点评模块 | 3.2 文字评价 |
| 4. 搜索与推荐模块 | 4.1 基于位置的搜索 | |
| 4.2 评分排序 | ||
| 第4周 | 5. 管理模块 | 5.1 用户管理 |
| 5.2 商户信息审核 |
系统架构设计
- 表现层(Presentation Layer):
- 负责与用户交互,展示数据,并接收用户的输入。
- 使用前端技术(如HTML, CSS, JavaScript, React/Vue.js)构建用户界面。
- 通过HTTP请求与后端服务进行通信。
- 应用层(Application Layer):
- 处理业务逻辑,执行用户请求。
- 包括用户管理、商铺管理、博客管理等模块。
- 使用RESTful API提供服务,如用户登录、发送验证码、查询商铺等。
- 业务逻辑层(Business Logic Layer):
- 包含核心业务规则和逻辑处理。
- 例如,处理用户认证、商铺信息的验证、博客的点赞逻辑等。
- 数据访问层(Data Access Layer):
- 负责数据的持久化和检索。
- 使用ORM(如Hibernate, Sequalae)与数据库交互。
- 执行CRUD操作,如新增商铺、查询博客等。
- 数据库层(Database Layer):
- 存储所有数据,包括用户信息、商铺信息、博客内容等。
- 使用关系型数据库(如MySQL, PostgreSQL)或NoSQL数据库(如MongoDB)。
数据库设计
ER图(实体关系图)
- 用户表(User):存储用户信息,如用户ID、手机号、密码等。
- 商铺表(Shop):存储商铺信息,如商铺ID、名称、类型、地址、评分等。
- 博客表(Blog):存储博客内容,如博客ID、用户ID、内容、点赞数等。
- 点赞表(Like):记录用户对博客的点赞,包括用户ID和博客ID。
接口框架
src
├── main
│ ├── java
│ │ ├── com.nanting.point
│ │ │ ├── controller // 控制器层
│ │ │ │ ├── ShopController.java // 商铺相关接口
│ │ │ │ ├── VoucherController.java // 优惠券相关接口
│ │ │ ├── service // 服务层
│ │ │ │ ├── ShopService.java // 商铺业务逻辑
│ │ │ │ ├── VoucherService.java // 优惠券业务逻辑
│ │ │ ├── dao // 数据访问层
│ │ │ │ ├── ShopDao.java // 商铺数据访问
│ │ │ │ ├── VoucherDao.java // 优惠券数据访问
│ │ │ ├── entity // 实体层
│ │ │ │ ├── Shop.java // 商铺实体
│ │ │ │ ├── Voucher.java // 优惠券实体
│ │ │ │ ├── Result.java // 统一返回结果实体
│ │ │ │ ├── LoginFormDTO.java // 登录表单DTO
│ │ │ │ ├── UserDTO.java // 用户DTO
│ ├── resources
│ │ ├── application.yml // 配置文件
│ │ ├── mapper // MyBatis映射文件
│ │ │ ├── ShopMapper.xml // 商铺SQL映射
│ │ │ ├── VoucherMapper.xml // 优惠券SQL映射
├── test
│ ├── java
│ │ ├── com.nanting.point
│ │ │ ├── controller // 控制器测试
│ │ │ ├── service // 服务层测试
│ │ │ ├── dao // 数据访问层测试
接口与框架对应关系
| 接口功能 | 控制器 | 服务层 | 数据访问层 | 实体层 |
|---|---|---|---|---|
| 根据ID查询商铺 | ShopController |
ShopService |
ShopDao |
Shop, Result |
| 新增商铺 | ShopController |
ShopService |
ShopDao |
Shop, Result |
| 按类型查询商铺 | ShopController |
ShopService |
ShopDao |
Shop, Result |
| 按名称查询商铺 | ShopController |
ShopService |
ShopDao |
Shop, Result |
| 新增优惠券 | VoucherController |
VoucherService |
VoucherDao |
Voucher, Result |
| 查询店铺优惠券 | VoucherController |
VoucherService |
VoucherDao |
Voucher, Result |
Alpha任务分配
1. Product Backlog(选取待实现的功能项)
| 模块 | 任务 | 依赖关系 |
|---|---|---|
| 1. 用户模块 | 1.1 用户注册/登录(学校邮箱验证) | 无 |
| 1.2 个人信息管理 | 依赖1.1 | |
| 2. 商户模块 | 2.1 商户信息展示 | 无 |
| 2.2 商户分类(餐饮、娱乐、生活服务等) | 依赖2.1 | |
| 3. 点评模块 | 3.1 评分系统(1-5星) | 依赖1.1, 2.1 |
| 3.2 文字评价 | 依赖3.1 | |
| 4. 搜索与推荐模块 | 4.1 基于位置的搜索 | 依赖2.1, 2.2 |
| 4.2 评分排序 | 依赖3.1, 4.1 | |
| 5. 管理模块 | 5.1 用户管理 | 依赖1.1 |
| 5.2 商户信息审核 | 依赖2.1 | |
| 6. 安全与性能 | 6.1 用户密码加密存储 | 依赖1.1 |
2. Sprint Backlog(任务分解与认领)
队员编号:
陈天鹏(1)黄皓维(2)秦嘉胜(3)黄鹏翔(4)杜家楷(5)张伟聪(6)钟宝骏(7)
| 任务 | 子任务 | 预估时间 | 认领人 |
|---|---|---|---|
| 1.1 用户注册/登录(学校邮箱验证) | 1.1.1 设计注册/登录页面 | 4小时 | 1 |
| 1.1.2 实现邮箱验证功能 | 6小时 | 2 | |
| 1.1.3 集成登录接口 | 4小时 | 3 | |
| 1.2 个人信息管理 | 1.2.1 设计个人信息页面 | 4小时 | 1 |
| 1.2.2 实现信息编辑功能 | 6小时 | 5 | |
| 2.1 商户信息展示 | 2.1.1 设计商户信息页面 | 4小时 | 5 |
| 2.1.2 实现商户数据获取接口 | 6小时 | 4 | |
| 2.2 商户分类 | 2.2.1 设计分类筛选功能 | 4小时 | 5 |
| 2.2.2 实现分类数据获取接口 | 6小时 | 2 | |
| 3.1 评分系统 | 3.1.1 设计评分组件 | 4小时 | 1 |
| 3.1.2 实现评分数据存储接口 | 6小时 | 7 | |
| 3.2 文字评价 | 3.2.1 设计评价输入框 | 4小时 | 5 |
| 3.2.2 实现评价数据存储接口 | 6小时 | 3 | |
| 4.1 基于位置的搜索 | 4.1.1 集成地图API | 6小时 | 2 |
| 4.1.2 实现位置搜索功能 | 6小时 | 6 | |
| 4.2 评分排序 | 4.2.1 设计排序功能 | 4小时 | 5 |
| 4.2.2 实现排序算法 | 6小时 | 4 | |
| 5.1 用户管理 | 5.1.1 设计用户管理页面 | 4小时 | 2 |
| 5.1.2 实现用户数据管理接口 | 6小时 | 2 | |
| 5.2 商户信息审核 | 5.2.1 设计商户审核页面 | 4小时 | 4 |
| 5.2.2 实现审核功能接口 | 6小时 | 1 | |
| 6.1 用户密码加密存储 | 6.1.1 集成加密库 | 4小时 | 7 |
| 6.1.2 实现密码加密存储逻辑 | 6小时 | 7 |
测试计划
| 模块 | 测试类型 | 测试内容 | 测试时间 | 测试负责人 |
|---|---|---|---|---|
| 用户模块 | 功能测试 | 验证注册、登录、个人信息管理功能是否正常 | 3小时 | 2 |
| 边界测试 | 测试无效邮箱、密码长度等边界情况 | 1小时 | 3 | |
| 性能测试 | 测试大量用户同时操作时的响应速度 | 2小时 | 4 | |
| 商户模块 | 功能测试 | 验证商户信息展示、分类功能是否正常 | 3小时 | 5 |
| 兼容性测试 | 测试不同设备(PC、手机)的显示效果 | 1小时 | 6 | |
| 点评模块 | 功能测试 | 验证评分、文字评价功能是否正常 | 3小时 | 7 |
| 安全性测试 | 测试评价内容是否包含敏感词或非法字符 | 1小时 | 2 | |
| 搜索与推荐模块 | 功能测试 | 验证位置搜索、评分排序功能是否正常 | 3小时 | 3 |
| 性能测试 | 测试大量商户数据时的搜索和排序响应速度 | 2小时 | 4 | |
| 管理模块 | 功能测试 | 验证用户管理、商户信息审核功能是否正常 | 3小时 | 5 |
| 安全性测试 | 测试管理员权限是否正常 | 1小时 | 6 | |
| 安全与性能 | 安全性测试 | 验证密码是否加密存储 | 2小时 | 7 |
| 性能测试 | 测试密码加密对系统性能的影响 | 1小时 | 1 |
组员(队名:EFBI)
| 姓名 | 学号 |
|---|---|
| 陈天鹏 | 3123004220 |
| 黄皓维 | 3123004228 |
| 秦嘉胜 | 3123004238 |
| 黄鹏翔 | 3123004229 |
| 杜家楷 | 3123004223 |
| 张伟聪 | 3123004247 |
| 钟宝骏 | 3123004249 |

浙公网安备 33010602011771号