需求规格说明书(SRS)
主要负责人:蒲其刚
审核人:邱晓裕、邱奕浩、邵梓硕
一、引言
1. 总览
1.1 目的
此开题报告编制目的是明确本项目的详细需求,供用户确认项目的功能和性能,和用户形成一致的理解和确认,作为进一步详细设计软件的基础。
1.2 背景
随着互联网的普及与智能手机的发展,越来越多的用户加入互联网,在互联网上,人们可以方便的进行信息交互。而在大学生活中,很多大学生都有一定的课余时间可以去完成一些零散的任务,赚取一定的零花钱。而对于一些有任务需求的人,可以在这个平台上发布自己的任务,其他用户在看到任务后,可以接取并完成。
1.3 预期读者与阅读建议
预期读者 | 阅读建议 |
---|---|
项目经理 | 项目经理在阅读完本文档后,可以根据此文档的内容,了解产品的预期功能,分析产品的用户需求,并对项目进行系统的设计和管理。 |
开发人员 | 开发人员在阅读完本文档后,可以对项目的需求进行分析,并对项目前端和后台系统进行架构设计。最后根据需求与设计,实现项目功能,编写用户手册。 |
营销人员 | 根据文档内容,了解项目的背景及功能,设计对应的营销策略。 |
测试人员 | 根据文档了解项目预期的功能,并设计相应的测试用例。 |
用户 | 了解项目的功能,与开发人员协商需求的改动与项目的预期效果。 |
2.项目概述
2.1 产品描述
我们所实现的项目叫做挣闲钱,这是一个面向大学校园的任务众包平台,旨在帮助大学生利用课余的时间,完成一些零散的任务,赚取一些额外的零花钱。该项目实现的是一个网站,该网站可通过PC端或者移动端进行访问。在这个项目中,用户可以发布任务或者接取任务,发布任务者需要向完成任务者支取一定的费用,而完成任务者在完成任务之后,经过平台的验证,则可以获取赏金。
2.2 产品功能
本产品主要有以下功能:
- 发布任务
- 接取任务
- 用户的注册与登录
- 虚拟货币的充值与提现
2.3 用户场景
通过分析典型用户场景得出各位用户的需求:
-
小甲——在读本科生
姓名 小甲 性别 女 年龄 21 身份 某高校大一学生 用户偏好 平时零散时间较多,经常外出活动 典型场景 小甲在从图书馆返回宿舍之前,通过平台接收到代拿快递的任务,在回宿舍的路中,顺便代拿快递,送到发布任务者的手中,经验证后,完成任务,获得相应报酬。 -
小乙——在读本科生
姓名 小乙 性别 男 年龄 20 身份 某高校大三学生 用户偏好 平时宅在宿舍,经常上网 典型场景 小乙在平台接受到数据标定的任务后,通过平台网站,在宿舍完成任务,获得相应报酬。 -
小丙——在读本科生
姓名 小丙 性别 男 年龄 22 身份 某高校大四学生 用户偏好 平时参与科研工作 典型场景 小丙最近的在参与一项研究,需要对大量的数据进行标定,他将数据标定任务以问卷的形式发布在平台上,在其他用户完成所有任务后,通过平台下载问卷信息(即标定后的数据)
2.4 运行环境
- 操作系统:Linux(Ubuntu或CentOS)
- 数据库:MySQL 8.0.16
- 浏览器:Google Chrome、Edge等主流浏览器
2.5 一般约束
-
开发环境约束
- Web框架:React(前端)
- 开发语言:JavaScript、JSX、GO
- 开发工具:VSCode、Pycharm-professional
- 开发测试浏览器:Google Chrome
-
时间约束
该项目需要在2个月内完成开发,故需合理规划项目开发计划,并完成所需求的主要功能。
-
技术约束
项目成员开发框架与开发语言掌握不够熟练,故在项目前期,需要对相应的开发技能进行学习并实践,在开发后期,开发技能熟练之后,需要加快开发节奏,完成开发任务。
2.6 假设与依据
本项目是否能够成功实施,主要取决于以下条件:
- 项目规划合理,时间安排符合所有开发人员的需求;
- 项目难度符合预期,未出现某个开发人员无法解决的需求;
- 开发任务无特殊情况,如突然加重的课程压力、突然出现的其他项目开发要求等;
- 开发人员学习能力符合预期,能够熟练掌握相应的开发技能,并按时完成开发要求。
二、用例图(Usecase Diagram)
三、用例和活动图(Usecase And Activity Diagram)
1. 基本用例
Use case 1.1 登录
范围: 挣钱宝应用
级别: 子功能
主要参与者: 学生用户和“奶牛”用户
涉众及其关注点:
- 用户(学生或“奶牛”):正确输入用户名和密码后可以正常登录系统,输入错误后有相应的提示,以便有效的检查和更改错误输入;在短时间内登录过系统后,不需要重复登录,以减少重复操作。
- 系统管理员:只有正确输入用户名和密码的用户才可以顺利的登录系统,以此来保证用户账户的安全;可能需要判断一些恶意的输入,防止一些恶意用户利用这里的输入入侵系统;对于短时间内登录过的用户,可以直接使其跳转主页,方便用户的使用,改善用户的使用体验。
前置条件:用户访问了本系统的登录界面。
成功保证(或后置条件):得到正确的用户信息,经系统数据库确认后登录成功
主成功场景(或基本流程):
- 用户访问系统的登录界面
- 要求用户输入用户名和密码
- 系统验证用户名和密码的正确性
- 用户信息正确则跳转主页
- 用户信息输入错误则留在登录页面,并提示相关错误信息
活动图
扩展(或替代流程):
用户短时间内登录过本系统,则可以免除输入用户信息 ,直接登录
- 验证用户提供的cookie是否过期
- 如果cookie合法且未过期,则直接跳转系统主页
- 如果cookie不合法或者已经过期,则留在登录界面,请求用户输入相关信息
特殊需求:
- 支持多种语言
- 对于不同分辨率的显示支持
技术与数据变元表:
- 用户名与密码的输入可以是键盘输入,也可以是复制粘贴
发生频率:可能会不断地发生
未决问题:
- 针对恶意的脚本登录如何判别?
- 如果用户名和密码的输入中有恶意的代码,系统是否会被入侵?
Use case 1.2 奶牛任务管理(新建、修改、删除)
范围:挣钱宝应用
级别:用户目标
主要参与者:“奶牛”用户
涉众及其关注点:
- “奶牛”用户:可以方便快捷的管理自己的任务,对于一些常见的任务,可以快速的使用类似的模板生成。
- 系统管理员:用户能够正确的生成自己的任务,并将任务存储在服务器的数据库中。
前置条件:用户的角色必须是“奶牛”。
成功保证(后置条件):正确存储用户已经创建的任务,对于已经用户已经存储的任务,可以正确的修改与删除。
主成功场景(或基本流程):
-
“奶牛”用户进入任务管理界面,选择新建、修改或者删除已有任务。
若用户选择新建任务,则
- 跳转进入一个空的任务界面
- 有一些子任务类型供用户选择
- 用户选择完子任务的类型后,进一步输入任务的相应信息
- 之后用户可以继续添加、修改或删除子任务,或者完成任务的创建
若用户选择修改已有任务,则
- 对于该任务中的子任务,用户可以修改其相应的信息
- 用户可以继续新建子任务
- 用户可以删除已有的子任务
若用户选择删除已有的任务,则
- 询问用户是否确认删除
- 确认则删除任务,否则取消删除
-
用户完成新建、修改或者删除操作后,跳转回任务管理界面,并更新相应的任务列表,同时更新服务器数据库
扩展(或替代流程):
- 用户误操作删除了任务:
- 对于用户删除的任务,先放入回收站
- 用户可以进入回收站恢复之前删除的任务
- 回收站中的任务经过一定的时长会自动删除
- 用户在新建或者修改任务时,想取消操作
- 用户点击取消按钮,则当前操作取消
- 用户在新建或者修改任务时,可以暂时保存
- 用户点击保存按钮,任务的新建或者修改暂时保存
技术与数据元变化表:
- 暂时保存任务可以是点击相应的保存按钮,也可以是通过快捷键保存。
发生频率:可能会不断地发生
未决问题:
- 用户点击完成提交新建的任务或者修改的任务时,万一网络连接断开该怎么办?
- 用户修改相应的任务并保存后,想取消修改,应该怎么办?
2. 非正式用例
Use case 2.1 注册
主成功场景:用户登录注册页面,输入相关信息,验证无误后注册成功。
交替场景:
- 用户输入的用户名已存在,注册失败,提示用户用户名已存在
- 用户两次输入的密码不相同,注册失败,提示用户确认密码有误
- 用户未输入全部信息就点击注册按钮,注册失败,提示用户填写完整的注册信息
Use case 2.2 发布任务
主成功场景:“奶牛”用户选择要发布的任务,选择相关发布信息,如任务开始时间、任务结束时间、任务对象、任务奖励等,确认信息正确后,发布成功。
交替场景:
- 任务开始时间选择在当前时刻之间,提示用户任务开始时间已过,是否将任务开始时间修改为当前时刻并继续发布。
- 任务结束时间在开始时间之前、或在当前时刻之前,提示用户任务结束时间错误,请求重新输入。
- 点击发布按钮后,最后一次请求用户确认发布信息,确认则成功发布,否则返回发布界面重新修改信息。
Use case 2.3 完成任务
主成功场景:学生用户点击选择相应的任务后进入任务完成页面,在完成所有问题后,任务完成。
交替场景:
- 用户没有完成所有问题就点击提交按钮,提示用户未完成任务。
- 用户放弃任务,点击放弃按钮,任务结束。
3. 简述用例
Use case 3.1 浏览所有任务
- Actor:用户
- Type:Primary
- Description:用户成功登录后跳转主页,主页上显示了当前时刻所有任务的列表,及各个任务的简要信息。
四、领域模型(Domain Model)
五、状态模型(State Model)
-
某个任务的状态转移过程
-
用户登录注册过程中的状态转移过程
-
用户登录后,浏览任务到完成任务的状态转移过程
六、功能模型(System Sequence Diagrams)
1. 用户登录
2. 用户注册
3. 更新用户信息
4. 问卷编辑和更新
七、补充需求(Supplementary Requirements)
1. 消息通知需求
我们主要关注任务发布者的消息通知,建立专门的消息通知记录模块。主要有以下几种情景需要:
- 某一任务已经超过截止时间仍未全部完成,通知;
- 某一任务在截止时间内全部完成,通知;
- 任务未全部完成需要退还余款信息时,通知;
2. 闲钱结算需求
在闲钱结算方面 ,我们定义以下规则和需求:
- 用户在创建有偿任务时,需要根据任务设定的金额和个数支付给系统相应的资金;
- 用户完成有偿任务之后,系统会根据任务的金额及时返回资金;
- 用户有偿任务到期仍未全部完成时,系统自动结算退还资金;
- 由于支付接口要求限制,用户可以指定金额进行充值满足有偿任务的发布。