团队作业2-《需求规格说明书》
这个作业属于哪个课程 | 软件工程 |
---|---|
作业要求 | 团队作业2-《需求规格说明书》 |
作业目标 | 撰写需求规格说明书 |
1.1 引言
1.1.1 编写的目的
此需求规格说明书的编写目的是明确本项目的详细需求,供开发人员确认项目的功能和性能,作为进一步详细设计软件的基础。
本文档仅供本次开发项目的开发人员进行参考。
1.1.2 背景
-
项目名称:简版预约占座app
-
-
面向用户:广东工业大学全体学生
1.1.3 项目范围
随着学校的扩招以及学生之间的内卷,越来越多的同学选择去图书馆或者空教室自习。但由于个人素质参差不齐,占座现象频频发生,导致诺大的图书馆/空教室经常无位可坐。
本次简版预约占座app的开发,旨在解决以上痛点。极简主义的预约系统,省去了一切繁琐花哨的设计,远离喧嚣,专注于纯粹的文字表达,给同学们提供预约座位的平台的同时,还给计广工大的学子们营造了一个良好的学习氛围。
1.1.4 项目开发意义
-
真实性: 本项目立足于广工学子真实遭遇,切身之痛万分真实。
-
可用性: IGDUT及GDUT课表+等项目的成功,都让我们认识到广工学子对新生事物的接受度是非常高的。而且大家确实经常饱受占座的困扰,本次项目更是旨在解决学子们无位可坐的问题,只要我们自身质量过硬,不愁用户量的问题。
-
价值所在: 本项目给同学们提供订位的平台的同时,还给广工的学子们营造了一个良好学习氛围。有价值有情怀,可谓是用心良苦。
1.2 用户需求分析
1.2.1 目标
预期用户数量:20+
1.2.2 用户的特点
面向用户:广东工业大学全体学生
-
本科学生:有较强的自学能力和适应新事物的能力
-
广工学子:因为向往安静的学习环境及良好的学习氛围而去图书馆/空教室学习
1.2.3 用户场景分析
我们的系统主要面向以下几类用户:
-
新生群体,给该类用户提供一个了解图书馆/空教室座位分布的平台
-
老生群体,给该类用户一个预定座位的窗口
1.3 功能需求分析
1.3.1 功能结构图
1.3.2 具体功能列表
功能 | 具体描述 |
---|---|
登陆注册 | 用户使用邮箱或用户名+密码登录 用户注册一个账号 |
查询 | 用户查询教室/座位略缩图 |
预定 | 用户预定座位 |
取消预定 | 用户取消预定 |
座位设定 | 图书馆-2楼-a区、教一-2楼-217等结构 |
创建教室 | 创建空座位略缩图 |
1.4 技术需求分析
1.4.1 安卓技术选型
技术选型 | 原因 |
---|---|
简易版MVVM框架 | 优化程序结构,使各个模块分工明确 |
1.4.2 后台技术选型
技术 | 说明 | 官网 |
---|---|---|
SpringBoot | MVC框架 | https://spring.io/projects/spring-boot |
SpringSecurity | 认证和授权框架 | https://spring.io/projects/spring-security |
MyBatis | ORM框架 | https://mybatis.org/mybatis-3/ |
Redis | 缓存 | https://redis.io/ |
Druid | 数据库连接池 | https://github.com/alibaba/druid |
JWT | JWT登录支持 | https://github.com/jwtk/jjwt |
Lombok | 简化对象封装工具 | https://github.com/rzwitserloot/lombok |
fastjson | json转换工具 | https://github.com/alibaba/fastjson |
Nginx | HTTP和反向代理web服务器 | http://nginx.org/ |
Hutool | Java工具包类库 | https://hutool.cn/docs/#/ |
二、团队计划
2.1 团队GitHub仓库
2.1.1 地址
捕鱼达人:https://github.com/YizheYang/Book
2.1.2 团队项目issues截图
2.2 具体分工
职责 | 人员 |
---|---|
PM、安卓 | 杨伊辙 |
开发 | 刘栋濠、肖丽萍 |
测试 | all |
数据 | 容海量 |
2.3 团队计划
2.3.1 修正前的团队计划
第 9 周 | |
---|---|
1.团队组队、团队博客 | |
2.团队介绍、成员展示、角色分配、选题确定 | |
3.制定团队计划安排,团队贡献分的规定 | |
第10周 | |
1.需求规格说明书 | |
2.原型设计,队员估计任务难度并学习必要的技术 | |
3.编码规范完成、平台环境搭建完成、初步架构搭建 | |
第11周 | |
1.原型改进(给目标用户展现原型,并进一步理解需求) | |
2.架构设计,WBS, 团队成员估计各自任务所需时间 | |
3.测试计划 | |
第12、13周 | |
1. 团队项目Alpha任务分配计划 | |
2. 连续7天的Alpha敏捷冲刺,7 篇 每日Scrum Meeting博客+代码提交 | |
第14周 | |
1.用户反馈+测试计划改进 | |
2. 团队Alpha阶段个人总结 | |
3. 团队项目Alpha博客:发布说明、测试报告、展示博客、项目管理 | |
第15周 | |
1. 团队项目Alpha博客:事后分析 |
2.3.2 修正后的团队计划
时间 | 完成模块 |
---|---|
第9周 | 项目搭建,分好模块,利用easymock和eolinker完成好模拟数据 |
第10、11周 | 1.团队项目 Alpha 任务分配计划 |
2.连续7天的 Alpha 敏捷冲刺,7篇每日 Scrum Meeting 博客+代码提交 | |
3.开始各模块并行开发 | |
第12周 | 对接接口 |
第13周 | 1.打包测试 |
2.用户反馈+测试计划改进 | |
3.团队 Alpha 阶段个人总结 | |
4.团队项目 Alpha 博客:发布说明、测试报告、展示博客、项目管理、事后分析 |
2.3.3 修正算法
-
实际情况 考虑到大家的学习进度,适当延长了学习时间、缩短了开发时间。
-
效率优化 为了提高效率,采取了假数据开发方法。后台先完成接口设计,安卓根据后台提供的数据进行app开发,避免了app在后台开发过程中无事可做的情况。两条线同步进行,大大提高了效率。
三、当前完成情况
个人感想及完成情况
成员 | 感想 | 完成情况 |
---|---|---|
杨伊辙 | 很有意思也很有意义的项目 | 理清思路,初步设计好界面 |
刘栋濠 | 学习了一些java后台技术,还得继续努力 | 1.学习java后台技术 2.完成了接口设计 |
肖丽萍 | 任务艰巨,要加快自己的学习进度以及积极与队友的沟通 | 1.跟进开发语言的学习 2.管理仓库和添加issue |
容海量 | 跟着同学一起学习非常棒 | 很好! |
杨健鹏 | 戴上幸福面具,徜徉在学习的海洋中 |