需求规格说明书(final)
1. 引言
1.1 编写目的
该文档是关于微信小程序自习吧的功能和性能描述,重点描述了小程序的功能需求,并作为小程序开发设计阶段的主要输入。
本文档的预期读者包括:triple兔成员,软件工程老师,用户。
1.2 项目背景
项目名称:自习吧。
项目提出者:华中农业大学信息学院Triple兔软件工程小组。
用户:全校学生。
1.3 缩写说明
华农:华中农业大学。
Triple兔:华中农业大学信息学院triple兔软件工程小组。
1.4 版本信息
版本编号 |
修改日期 |
修改后版本 |
修改内容概述 |
1.0.0 |
2019.6.20 |
对图进行修改 |
2. 任务概述
2.1 系统定义
2.1.1 小项目来源及背景
该项目起初源自Triple兔小组一名成员的想法,经过讨论权衡分析最终确定以该想法----华中农业大学空教室查询作为项目主题,并在此基础上进行功能拓展:约自习、蹭课,以微信小程序为应用平台,为华农全体学生提供便利的空教室查询途径。
2.1.2 项目要达到的目标
该软件是为了让学生时时刻刻都能方便找到空教室而研发的,避免每次在找空教室自习的时候浪费很多时间;并且会提供约自习的功能,这样可以让同学们找到合适的人一起结对学习,互相监督,有助于提高同学们的学习效率;另外还会提供蹭课功能,帮助同学们方便地根据兴趣充分利用校内资源拓展自己。
线上问卷调查显示该项目很具有实用性,是大多数同学们一致希望能研发出来的产品。
2.1.3 系统整体结构
下图给出了系统的物理组成结构:
2.1.4 系统各部分组成、与其他部分的关系、各部分的接口等
该软件是建立在微信原生系统之上,微信提供所有接口。
2.2 运行环境
2.2.1 设备环境
微信内置运行环境。
2.2.2 硬件环境
只针对移动端设备(手机/平板)使用。
2.2.3 软件环境
支持android、ios系统和各种屏幕尺寸。
2.2.4 网络环境
设备需要联网。
2.2.5 操作系统
手机登录微信小程序。
2.2.6 应用环境
系统总工作流程如下图所示:
该软件主要分为四大功能:
1. 登录
2. 查询空教室
3. 找同校生约自习
4. 蹭课
描述:
首先用户打开小程序,一开始的页面会停留在空教室信息页面上,在用户选择教学楼,楼栋,楼层之后,显示该楼层的教室的状态,空闲或忙碌。
点击tabbar左端页面,会检查是否已登录授权,如果未授权,跳转到授权页面;如果已授权,则进入约自习页面,会出现不同学生所发布的约自习动态,在这里你可以找到自己想要约自习的对象,发布自习邀约的同学会留下联系方式,用户自行联系该同学。注意,用户不可以在其他人的自习邀请下评论。当邀约达成,发出邀约者自行删除邀请,该邀请将不再展示在公共、个人页面中。用户填写了约自习信息后,将用户信息保存到服务器。在约自习界面添加邀约时,会要求用户填写邀约信息和个人信息。用户可在“我的”版块查看自己发布的邀约,并且可以修改或删除该条自习邀约。
点击tabbar右端页面,是蹭课界面,在这里你可以在页面上方的搜索栏里查询自己想蹭的课的课程信息,可以根据专业、课程名、教师名检索。
2.3 条件限制
2.3.1 列出进行本软件开发工作的假定和约束,如经费限制、开发期限等
本项目是在微信开发者工具上进行前端开发的,后端用java语言在idea上编程,本项目由Triple 兔小组成员自行完成,并由软工老师进行指导提建议而完成。无开发经费,并进行了长达半个学期的开发。
2.3.2 列出本软件的最终用户、用户的教育水平和技术专长
最终用户面向全体华中农业大学学生,使用微信即可登录此微信小程序。
2.3.3 列出本软件的预期使用频度等
经过前期问卷调查,发现该小程序得到广大华中农业大学学生一致认可,应该会被广泛运用,用户数量会很多,可支持很多人共同使用。
3. 数据描述
3.1 静态数据
1. 全校教学楼课程情况
2. 全校开设的所有课程信息
3. 用户身份信息
3.2 动态数据
1. 用户发布的约自习信息
3.3 数据库描述
本系统需要导入全校课表、需要存储用户身份信息、需要存储用户发布的约自习信息,涉及到数据库的使用,数据库用MySQL 5.7。
3.4 数据字典
数据字典描述系统的实体-关系图中实体和关系,以及数据流图中的过程、数据流、数据存储的部分内容。
数据项名 |
编号 |
数据类型 |
长度 |
用户ID |
user_id |
int |
11 |
用户名 |
user_name |
varchar |
20 |
性别 |
sex |
varchar |
8 |
专业 |
major |
varchar |
40 |
学院 |
sdept |
varchar |
40 |
自习铭 |
motto |
varchar |
100 |
便签 |
note |
varchar |
255 |
微信开放ID |
open_id |
varchar |
100 |
会话ID |
session_key |
varchar |
255 |
约自习ID |
invitation_id |
int |
11 |
期待性别 |
opposite_sex |
char |
8 |
描述 |
illustration |
text |
0 |
关键字 |
key_words |
varchar |
255 |
联系方式 |
contact_information |
varchar |
255 |
课程ID |
id |
varchar |
20 |
星期几 |
weekday |
varchar |
20 |
上课节次 |
class_time |
varchar |
40 |
上课周 |
week |
varchar |
40 |
具体上课周 |
week_detail |
varchar |
255 |
课程编号 |
cno |
varchar |
20 |
课程名称 |
cname |
varchar |
100 |
教师名称 |
tname |
varchar |
100 |
教学楼名称 |
site_name |
varchar |
100 |
详细上课时间 |
class_time_detail |
varchar |
400 |
详细上课地点 |
site_name_detail |
varchar |
400 |
课程性质 |
course_nature |
char |
20 |
教学楼名称 |
building |
varchar |
100 |
专业 |
major |
varchar |
300 |
3.5 数据采集
系统运行时需要先预读数据,从数据库中导入教室及课程信息。系统启动时,需要读取用户选择的教学楼和座号的结果信息。
4. 功能需求
4.1 功能划分
4.1.1 系统功能组成
查询空教室、发布自习邀约、查看自习邀约、检索自习邀约、管理自己发布的自习邀约、展示可蹭课程的信息、检索想蹭的课、自习铭(用来激励自己自习的话)修改与展示
4.1.2 功能编号和优先级
系统功能优先级如表所示:
编号 |
名称 |
优先级 |
描述 |
主要发起者 |
1 |
查询空教室 |
极重要 |
展示华农所有教室的实时状态 |
系统 |
2 |
发布自习邀约 |
重要 |
发布者发布自习邀约 |
用户、系统 |
3 |
查看自习邀约 |
重要 |
展示自习邀约 |
系统 |
4 |
检索自习邀约 |
重要 |
提供按关键词检索自习邀约 |
用户 |
5 |
管理自己发布的自习邀约 |
重要 |
查看、修改、删除历史发布 |
用户 |
7 |
检索想蹭的课 |
重要 |
支持关键词检索相关课程 |
用户 |
8 |
自习铭修改与展示 |
次要 |
展示用户自定义(可随时修改)的自习铭 |
用户 |
4.1.3 功能定义
(1) 查询空教室:在小程序“首页”按教学楼、楼栋号、楼层展示华农所有教室的实时状态(暂时不支持显示教室是否被借用)
(2) 发布自习邀约:发布者点击发布按钮,留下邀约、联系方式,同时需要用户填写个人信息,最终生成一条自习邀约
(3) 查看自习邀约:在“约自习页面”,默认按发布时间先后顺序展示自习邀约
(4) 检索自习邀约:在“约自习页面”顶部的搜索栏内,用户可按发布者设置的关键词检索自习邀约
(5) 管理自己发布的自习邀约:在“我的发布”页面,用户可查看、修改、删除历史发布(默认按时间先后展示)
(6) 展示可蹭课程的信息:在“蹭一蹭”页面,按学院、年级、专业展示课程,点击课程可查看详情
(7) 检索想蹭的课:在“蹭一蹭”页面顶部的搜索栏内,用户可按关键词(专业名称、课程名称、教师名字)检索感兴趣的课程
(8) 设置个人信息:在“约自习”页面,点击添加约自习邀约button需要用户同时填写个人信息,包括:昵称、性别、专业、期待的对方性别和自习铭。
(9) 自习铭修改与展示:在小程序“首页”展示用户自定义(可随时修改)的自习铭,来勉励自己好好学习天天向上。
4.2 功能描述
4.2.1 板块组成
自习吧微信小程序包含四个板块:空教室查询、约自习、蹭课、信息管理。
4.2.1.1总数据流图:
4.2.2 功能划分
4.2.2.1查询空教室板块
1.外部用户
用户:合法用户
2.功能
查询空教室:查询某栋教学楼某楼层的空教室信息
3.数据流图
4.2.2.2约自习板块
1.外部用户
用户:合法用户
2.功能
发布自习邀约
浏览自习邀约
删改自己发布的自习邀约
3.数据流图
4.2.2.3蹭课板块
1.外部用户
用户:合法用户
2.功能
蹭课:查询用户感兴趣的课程信息
3.数据流图
4.2.2.4信息管理板块
1.外部用户
用户:合法用户
2.功能
信息管理:填写或修改个人信息和自习铭
3.数据流图
5. 性能需求
5.1 数据精确度:
要按照严格的数据格式输入,对符合数据格式要求的输入进行提示。
5.2 时间特性
1. 软件启动时间:
2. 系统实时响应时间:小程序使用过程中,对用户在各个功能模块点击操作的响应时间需在用户的容忍范围以内,一般要求小于1秒
3. 数据的转换传送时间:对小程序不同模块间的数据交互,要求数据的转换和传送时间不得超过0.5秒
4. 数据更新时间:用户刷新操作后0.1秒,进行数据更新
5.3 适应性
小程序构建于微信平台之上,为手机端程序,支持用户触屏点击。灵活性要求软件能够方便的适应精度和有效时限的变化。
6. 运行需求
6.1 用户界面
该软件主要功能为查询课表、约自习、蹭课,主界面要求简介易懂,便于操作。约自习界面采用卡纸模式,每位用户发布的帖子由时间顺序依次排列,方便用户进行查找,筛选。
6.2 软件接口
1. 该软件为基于微信平台开发的微信小程序,适用于各种手机系统,如安卓,ios等。
2. mysql数据库
3. JDK1.8以上
6.3 硬件接口
1. 微信云服务器
2. 远程腾讯云服务器
3. 用户手机微信小程序客户端
6.4 故障处理
1. 在软件的使用过程中,如果出现软件使用故障,应当具有报警信息提示。
2. 当软件依赖的文件损毁或丢失时,软件以对话框的形式进行提示,报告损毁或丢失的文件等相关错误,以帮助用户及时修复软件的正常功能。
3. 对软件需要用户输入项的情况,如果发生缺少输入项、输入项格式错误或不符合规则等情况,软件应以合理的方式予以提示。
4. 为了防止用户由于未及时保存而导致信息丢失的情况,软件提供定时保存机制,每隔一定时间自动对信息进行保存,从而保证用户数据的安全。
需求规格说明书(final)的更多相关文章
- 基于 Java Web 的毕业设计选题管理平台--选题报告与需求规格说明书
一.选题报告 目录 团队名称 团队成员 项目名称 项目描述 创新与收益 用户场景分析 真实用户调研 未来市场与竞争 项目导图 比例权重 总结 1.团队名称--指南者团队 2.团队成员 孔潭活:2015 ...
- 需求规格说明书(SRS)特点
需求说明书的7大特征: 完整性 正确性 可行性 必要性 划分优先级 无二义性 可验证性 每条需求规格说明书的4大特点: 完整性 一致性 可修改性 可跟踪性 需求管理就是一种获取.组织并记录系统需求的系 ...
- 天转凉了,注意保暖,好吗(需求规格说明书放在github了)
团队项目——AI五子棋(小程序) 一.团队展示: 队名:未来的将来的明天在那里等你 小组 队员: 龙天尧(队长)(3116005190),林毓植(3116005188),黄晖朝(3116005178) ...
- 【软件需求工程与建模 - 小组项目】第6周 - 成果展示2 - 软件需求规格说明书V4.3
成果展示2 - 软件需求规格说明书V4.3
- 【项目 · Wonderland】需求规格说明书 · 终版
[项目 · Wonderland]需求规格说明书 · 终版 Part 0 · 简 要 目 录 Part 1 · 流 程 / 分 工 Part 2 · 需 求 规 格 说 明 书 Part 1 · 流 ...
- 失物找寻APP软件需求规格说明书——第三次团队作业
⭐对于软件需求规格说明书的理解 在没写这份软件需求规格说明书的时候我们组成员都不是很理解它的必要性,当然,写完之后才知道它的作用. 软件需求说明书的存在是为了使用户和软件开发者双方对该软件的初始规定有 ...
- 需求规格说明书——阿里八八“好记”APP
工作流程 ① 组长查阅相关文档.示例文件等,根据本小组项目特点进行定制需求规格说明书目录. ② 根据选题报告工作进行任务分配,追求工作量最小化.效率最大化. ③ 分工编辑文档. ④ 组长搭建Githu ...
- <项目需求规格说明书> - 福大易宝
福大易宝-<项目需求规格说明书> 流程 在开会时统一了项目的开发背景,具体功能,然后在同一个工作环境下进行该说明书的编写. 分工 1.李佳铭.杜宏庆共同负责引言和项目描述的内容. 2.刘双 ...
- 软件需求规格说明书(转自http://blog.csdn.net/li_canhui/article/details/6927540)
转自http://blog.csdn.net/li_canhui/article/details/6927540 1概述 1.1编写目的 指出编写<需求规格说明书>的目的.下面是示例: 编 ...
- 《次元唤醒 需求规格说明书v1.0》
一.团队分工 组员 工作比例 参与范围 王诚荣 17% 原型设计,需求规格说明书整合,LOGO设计 马祎特 22% PPT制作,演讲,博客模板,用户描述 陈斌 21% 评审表格制作,引言,项目描述,功 ...
随机推荐
- [Spring]:java.lang.NoSuchMethodError: 'java.lang.String javax.annotation.Resource.lookup()'
错误信息 11月 05, 2019 9:32:15 下午 org.springframework.test.context.TestContextManager prepareTestInstance ...
- 松软科技web课堂:SQLServer之UCASE() 函数
UCASE() 函数 UCASE 函数把字段的值转换为大写. SQL UCASE() 语法 SELECT UCASE(column_name) FROM table_name SQL UCASE() ...
- SQL Server关于AlwaysOn的理解
(一)SQL Server-AlwaysOn 技术:SQL Server AlwaysOn 即“全面的高可用性和灾难恢复解决方案” 1.数据库级可用性-只读副本:SQL Server 2012-4个, ...
- MySql 表结构修改、约束条件、表关系
表结构修改(alter) 查看表的结构:desc 表名; 修改表名:alter table 表名 rename to 新表名; 修改字段名:alter table 表名 change 旧字段名 新字段 ...
- TICK技术栈(四)Grafana安装及使用
1.什么是Grafana? Grafana是一款采用go语言和Angular框架编写的开源的可视化工具,主要用于大规模指标数据的可视化展示,提供包括折线图,饼图,仪表盘等多种监控数据可视化UI,是网络 ...
- Resolving RMAN-06023 or RMAN-06025 (Doc ID 2038119.1)
Resolving RMAN-06023 or RMAN-06025 (Doc ID 2038119.1) APPLIES TO: Oracle Database - Enterprise Editi ...
- QPNP 8909 8916 充电相关(2)【转】
上一篇主要讲电池相关的一些知识,上节忘记讲了,电池一般分为电量计电池和非电流计电池,电量计电池,就不需要用pmu8916的IC,当然这只是只,不需要BMS来计算soc,而jni层也需要读取电流计的电池 ...
- layui 获取radio单选框选中的值
Layui 获取 radio的值,layui判断radio选中的单选值 layui form 表单获取radio选中的值 首先准备两个radio <input type="radio& ...
- 预览本地图片原生js
<!-- 样似总结: 用a标签代替file,做文件上传. 将file进行绝对定位,透明度设置为0:宽度为“上传图片”的宽度,超出部分隐藏. 这样做是为了将file隐藏起来.用a标签代替file ...
- qt qrc 资源文件
qt qrc 资源文件 qt qrc 资源文件 qt qrc 资源文件