需求规格说明书(SRS)

主要负责人:蒲其刚

审核人:邱晓裕、邱奕浩、邵梓硕

一、引言

1. 总览

1.1 目的

此开题报告编制目的是明确本项目的详细需求,供用户确认项目的功能和性能,和用户形成一致的理解和确认,作为进一步详细设计软件的基础。

1.2 背景

随着互联网的普及与智能手机的发展,越来越多的用户加入互联网,在互联网上,人们可以方便的进行信息交互。而在大学生活中,很多大学生都有一定的课余时间可以去完成一些零散的任务,赚取一定的零花钱。而对于一些有任务需求的人,可以在这个平台上发布自己的任务,其他用户在看到任务后,可以接取并完成。

1.3 预期读者与阅读建议

预期读者 阅读建议
项目经理 项目经理在阅读完本文档后,可以根据此文档的内容,了解产品的预期功能,分析产品的用户需求,并对项目进行系统的设计和管理。
开发人员 开发人员在阅读完本文档后,可以对项目的需求进行分析,并对项目前端和后台系统进行架构设计。最后根据需求与设计,实现项目功能,编写用户手册。
营销人员 根据文档内容,了解项目的背景及功能,设计对应的营销策略。
测试人员 根据文档了解项目预期的功能,并设计相应的测试用例。
用户 了解项目的功能,与开发人员协商需求的改动与项目的预期效果。

2.项目概述

2.1 产品描述

我们所实现的项目叫做挣闲钱,这是一个面向大学校园的任务众包平台,旨在帮助大学生利用课余的时间,完成一些零散的任务,赚取一些额外的零花钱。该项目实现的是一个网站,该网站可通过PC端或者移动端进行访问。在这个项目中,用户可以发布任务或者接取任务,发布任务者需要向完成任务者支取一定的费用,而完成任务者在完成任务之后,经过平台的验证,则可以获取赏金。

2.2 产品功能

本产品主要有以下功能:

  1. 发布任务
  2. 接取任务
  3. 用户的注册与登录
  4. 虚拟货币的充值与提现

2.3 用户场景

通过分析典型用户场景得出各位用户的需求:

  1. 小甲——在读本科生

    姓名 小甲
    性别
    年龄 21
    身份 某高校大一学生
    用户偏好 平时零散时间较多,经常外出活动
    典型场景 小甲在从图书馆返回宿舍之前,通过平台接收到代拿快递的任务,在回宿舍的路中,顺便代拿快递,送到发布任务者的手中,经验证后,完成任务,获得相应报酬。
  2. 小乙——在读本科生

    姓名 小乙
    性别
    年龄 20
    身份 某高校大三学生
    用户偏好 平时宅在宿舍,经常上网
    典型场景 小乙在平台接受到数据标定的任务后,通过平台网站,在宿舍完成任务,获得相应报酬。
  3. 小丙——在读本科生

    姓名 小丙
    性别
    年龄 22
    身份 某高校大四学生
    用户偏好 平时参与科研工作
    典型场景 小丙最近的在参与一项研究,需要对大量的数据进行标定,他将数据标定任务以问卷的形式发布在平台上,在其他用户完成所有任务后,通过平台下载问卷信息(即标定后的数据)

2.4 运行环境

  1. 操作系统:Linux(Ubuntu或CentOS)
  2. 数据库:MySQL 8.0.16
  3. 浏览器:Google Chrome、Edge等主流浏览器

2.5 一般约束

  1. 开发环境约束

    • Web框架:React(前端)
    • 开发语言:JavaScript、JSX、GO
    • 开发工具:VSCode、Pycharm-professional
    • 开发测试浏览器:Google Chrome
  2. 时间约束

    该项目需要在2个月内完成开发,故需合理规划项目开发计划,并完成所需求的主要功能。

  3. 技术约束

    项目成员开发框架与开发语言掌握不够熟练,故在项目前期,需要对相应的开发技能进行学习并实践,在开发后期,开发技能熟练之后,需要加快开发节奏,完成开发任务。

2.6 假设与依据

本项目是否能够成功实施,主要取决于以下条件:

  1. 项目规划合理,时间安排符合所有开发人员的需求;
  2. 项目难度符合预期,未出现某个开发人员无法解决的需求;
  3. 开发任务无特殊情况,如突然加重的课程压力、突然出现的其他项目开发要求等;
  4. 开发人员学习能力符合预期,能够熟练掌握相应的开发技能,并按时完成开发要求。

二、用例图(Usecase Diagram)

用例图 v1.0

三、用例和活动图(Usecase And Activity Diagram)

1. 基本用例

Use case 1.1 登录

范围: 挣钱宝应用

级别: 子功能

主要参与者: 学生用户和“奶牛”用户

涉众及其关注点:

前置条件:用户访问了本系统的登录界面。

成功保证(或后置条件):得到正确的用户信息,经系统数据库确认后登录成功

主成功场景(或基本流程):

  1. 用户访问系统的登录界面
  2. 要求用户输入用户名和密码
  3. 系统验证用户名和密码的正确性
  4. 用户信息正确则跳转主页
  5. 用户信息输入错误则留在登录页面,并提示相关错误信息

活动图

login

扩展(或替代流程):

用户短时间内登录过本系统,则可以免除输入用户信息 ,直接登录

  1. 验证用户提供的cookie是否过期
  2. 如果cookie合法且未过期,则直接跳转系统主页
  3. 如果cookie不合法或者已经过期,则留在登录界面,请求用户输入相关信息

特殊需求:

技术与数据变元表:

发生频率:可能会不断地发生

未决问题:

Use case 1.2 奶牛任务管理(新建、修改、删除)

范围:挣钱宝应用

级别:用户目标

主要参与者:“奶牛”用户

涉众及其关注点:

前置条件:用户的角色必须是“奶牛”。

成功保证(后置条件):正确存储用户已经创建的任务,对于已经用户已经存储的任务,可以正确的修改与删除。

主成功场景(或基本流程):

  1. “奶牛”用户进入任务管理界面,选择新建、修改或者删除已有任务。

    若用户选择新建任务,则

    • 跳转进入一个空的任务界面
    • 有一些子任务类型供用户选择
    • 用户选择完子任务的类型后,进一步输入任务的相应信息
    • 之后用户可以继续添加、修改或删除子任务,或者完成任务的创建

    create

    若用户选择修改已有任务,则

    • 对于该任务中的子任务,用户可以修改其相应的信息
    • 用户可以继续新建子任务
    • 用户可以删除已有的子任务

    modify

    若用户选择删除已有的任务,则

    • 询问用户是否确认删除
    • 确认则删除任务,否则取消删除

    delete

  2. 用户完成新建、修改或者删除操作后,跳转回任务管理界面,并更新相应的任务列表,同时更新服务器数据库

扩展(或替代流程):

  1. 用户误操作删除了任务:
    • 对于用户删除的任务,先放入回收站
    • 用户可以进入回收站恢复之前删除的任务
    • 回收站中的任务经过一定的时长会自动删除
  2. 用户在新建或者修改任务时,想取消操作
    • 用户点击取消按钮,则当前操作取消
  3. 用户在新建或者修改任务时,可以暂时保存
    • 用户点击保存按钮,任务的新建或者修改暂时保存

技术与数据元变化表:

  1. 暂时保存任务可以是点击相应的保存按钮,也可以是通过快捷键保存。

发生频率:可能会不断地发生

未决问题:

2. 非正式用例

Use case 2.1 注册

主成功场景:用户登录注册页面,输入相关信息,验证无误后注册成功。

交替场景:

Use case 2.2 发布任务

主成功场景:“奶牛”用户选择要发布的任务,选择相关发布信息,如任务开始时间、任务结束时间、任务对象、任务奖励等,确认信息正确后,发布成功。

交替场景:

Use case 2.3 完成任务

主成功场景:学生用户点击选择相应的任务后进入任务完成页面,在完成所有问题后,任务完成。

交替场景:

3. 简述用例

Use case 3.1 浏览所有任务

四、领域模型(Domain Model)

五、状态模型(State Model)

六、功能模型(System Sequence Diagrams)

1. 用户登录

2. 用户注册

3. 更新用户信息

4. 问卷编辑和更新

七、补充需求(Supplementary Requirements)

1. 消息通知需求

我们主要关注任务发布者的消息通知,建立专门的消息通知记录模块。主要有以下几种情景需要:

  1. 某一任务已经超过截止时间仍未全部完成,通知;
  2. 某一任务在截止时间内全部完成,通知;
  3. 任务未全部完成需要退还余款信息时,通知;

2. 闲钱结算需求

在闲钱结算方面 ,我们定义以下规则和需求:

  1. 用户在创建有偿任务时,需要根据任务设定的金额和个数支付给系统相应的资金;
  2. 用户完成有偿任务之后,系统会根据任务的金额及时返回资金;
  3. 用户有偿任务到期仍未全部完成时,系统自动结算退还资金;
  4. 由于支付接口要求限制,用户可以指定金额进行充值满足有偿任务的发布。