Skip to content

Latest commit

 

History

History
662 lines (309 loc) · 18.2 KB

软件需求说明书.md

File metadata and controls

662 lines (309 loc) · 18.2 KB

软件需求说明书

版本

序号 变更人员 变更内容详细描述 变更后版本号
1 李荣聪、覃琛焯、王锦成、刘航、王海涛 initial commit v1.0
2 李荣聪、覃琛焯、王锦成、刘航、王海涛 修订需求描述 v2.0
3 王海涛、李荣聪 修订需求描述、优化语言 v3.0

贡献

人员 学号 贡献内容
王锦成 180310308 引言、软件原型
刘航 180110712 软件一致性描述
王海涛 180110724 功能需求描述
覃琛焯 180110623 功能需求描述
李荣聪 180110617 其他需求描述

1. 引言

  1. 引言

1.1 编写目的

​ 编写此文档的目的是进一步定制软件开发的细节问题,希望能使本软件开发工作更具体。为了使用户、软件开发者及分析和测试人员对该软件的初始规定有一个共同的理解,它说明了本软件的各项功能需求、性能需求和数据需求,明确标识各项功能的具体含义,阐述实用背景及范围,提供需解决的问题或达到目标所需要的条件或权能,提供一个度量和遵循的基准,同时为后面的软件测试和用户手册制作 提供直接参考。具体而言,编写软件需求说明的目的是为所开发的软件提出:

  1. 软件设计总体要求,作为软件开发人员、软件测试人员相互了解的基础。

  2. 功能、性能要求,数据结构和采集要求,重要的接口要求,作为软件设计人员进行概要设计的依据。

  3. 软件确认测试的依据。

1.2 读者对象

​ 项目开发人员、项目测试人员、文档开发人员、项目验收人员(老师+TA)

1.3 软件项目概述

  1. 项目名称:随手记Pro

  2. 用户单位:哈尔滨工业大学(深圳)

  3. 开发单位:哈尔滨工业大学(深圳)计算机类本科2018级 软工第十组

  4. 开发人员(贡献不分先后):李荣聪、覃琛焯、刘航、王海涛、王锦成

  5. 用途:记账本

  6. 预计功能:记账、统计账单、分析账单等业务,全部由手工方式改为计算机应用

1.4 文档概述

​ 本文档描述了项目的所有需求,主要通过四部分内容来展现:

一般性描述

功能需求

非功能需求

软件原型图

1.5 定义

2. 软件一致性描述

2.1软件产品与其外部环境之间的关系

2.1.1外部的用户

Image text 

2.1.2外部的系统

Image text

2.2约束条件

2.2.1 硬件的限制

  • 客户端:支持android7.0及以上的所有客户端

2.2.2与其他应用的接口

  • 数据库的接口:调用sqlfilte相关的包

2.2.3编程语言

  • 客户端语言
    • Dart语言
  • 数据库语言
    • sql语句

2.2.4运行环境

  • android手机,或者支持android的模拟器
  • 支持Android7.0(API等级24)及以上

2.3假设与前提条件

2.3.1影响需求的假设因素

  • 操作和开发环境:
    • 1.操作环境:
      • 客户端: Android Studio 4.0 Flutter 
      • 数据库:Sqflite
    • 2.开发环境:
      • Windows Linux

2.3.2 1对外部的前提

  • 1.客户端能访问数据库的权限

3. 功能需求描述

3.1 系统的划分

用户系统划分图

3.2 用户系统

3.2.1 用户系统的用例图

用户系统用例图

3.2.1 用户系统的用例描述

设置用户密码

  1. 目标: 本用例允许用户设置用户密码

  2. 事件流:

  3. 常规流程 当用户希望设置用户密码时,系统准备收集用户的密码信息时,本用例开始执行。 1. 系统要求用户选择设置的密码类型,有字符密码,手势密码。 2. 系统要求用户输入新的密码。 3. 系统检测密码是否合乎要求,若不符合则提示错误信息。 4. 系统确认密码符合规范后,保存用户密码。

  4. 扩展流程 2. 若用户输入密码不合乎规范,则提示用户密码不符合规范,用例结束。

  5. 前置条件:用户已经进入主页面。可以是一开始没有设置密码,或者设置密码后成功登陆。

  6. 后置条件:如果用例执行成功,新增用户密码,否则,系统状态不变。

登录用户账号

  1. 目标: 本用例允许用户登录记账系统。

  2. 事件流:

  3. 常规流程 当用户希望登录自己的记账系统时,系统准备收集用户的密码信息时,本用例开始执行。 1. 系统显示默认登录方式界面。 2. 系统要求用户输入密码。 3. 系统检查密码是否匹配。 4. 系统确认密码匹配后,进入用户界面。

  4. 扩展流程 2. 若用户输入密码不匹配,提示密码错误。

  5. 前置条件:用户已经设置至少一种密码,且设置了默认登录方式。

  6. 后置条件:如果用例执行成功,进入用户界面,否则,系统状态不变。

修改用户密码

  1. 目标: 本用例允许用户修改用户密码。

  2. 事件流:

    1. 常规流程 当用户希望修改自己的密码时,系统准备收集用户的新旧密码信息时,本用例开始执行。
      1. 系统要求用户选择修改的密码种类,有文本密码和图形密码两种选项。
      2. 系统要求用户输入新密码。
      3. 更新密码,用例结束。
    2. 扩展流程
      1. 用户开启流程却为输入新密码,用户密码状态不变。
  3. 前置条件:用户已经设置至少一种密码。

  4. 后置条件:如果用例执行成功,更新用户密码,否则,系统状态不变。

3.3 流水系统

3.2.1 流水系统的用例图

用户流水用例图

3.2.2 流水系统的用例描述

收支记账

  1. 目标: 本用例允许系统登记用户的收支记账信息。

  2. 事件流:

    1. 常规流程 当用户希望记录收支信息时、系统准备登记有关的收支信息时,本用例开始执行。
      1. 系统要求用户选择记账所属账户。
      2. 系统要求用户选择记账类型,分为收入、支出、转账等。
      3. 系统要求用户输入金额。
      4. 系统要求用户选择收入的一级,二级分类。
      5. 用户可以选择填入当前时间。
      6. 用户可以选择记录成员。
      7. 用户确认输入完毕信息后,系统确认信息是否完整,其他为选项保持默认情况。
      8. 系统确认后无误后,增加一个新的收支记录。
    2. 扩展流程
      1. 用户输入信息不完整:在主流程中,如果用户输入信息不完整,如缺少金额,系统将显示错误信息,用例结束。
      2. 用户可建立账户:在主流程中,用户可以选择新增账户
      3. 用户可以自定义一级,二级分类:在主流程中,用户可以添加新的分类。
  3. 前置条件:用例开始前,用户必须登录成功;

  4. 后置条件:如果用例执行成功,该用户的收支记账记录被更新,否则,系统状态不变。

修改记录

目标: 本用例允许系统登记用户修改的记账内容

事件流:

  1. 常规流程 当用户希望修改记账内容时,系统准备登记有关的修改信息时,本用例开始执行
    1. 系统要求用户选择需要修改的记账信息
    2. 用户选择后,修改该记账信息。可以更改该记录的所属账户,几张类型,一级,二级分类,金额,名称,时间,成员等
    3. 用户确认提交后,系统确认修改后信息是否完整。
    4. 系统确认完整后,修改旧的记录为新的记录
  2. 扩展流程:
    1. 用户输入信息不完整:在主流程中,如果用户输入信息不完整,如缺少金额,缺少名称等必填信息,系统将显示错误信息,不修改记录,本用例结束。
    2. 用户可建立/修改账户:在主流程中,用户选择所属账户时,可以新增账户,或修改/删除已有的账户
    3. 用户可以自定义一级,二级分类:在主流程中,在用户选择一级,二级分类时,用户可以添加新的分类,或修改/删除已有的分类

前置条件:用例开始前,用户必须登录成功,且位于流水显示页面。

后置条件:如果用例执行成功,该用户的记录被更新,否则,系统状态不变。

删除记录

目标: 本用例允许系统登记用户删除的记账内容

事件流:

  1. 常规流程 当用户希望删除记账内容时,系统准备登记有关的删除信息时,本用例开始执行
    1. 系统要求用户选择需要修改的记账信息
    2. 用户选择后,点击删除按钮,删除该记账信息。
    3. 系统删除数据库对应记账信息。
    4. 系统返回,显示流水页面。
  2. 扩展流程: 无

前置条件:用例开始前,用户必须登录成功,且位于流水显示页面。

后置条件:如果用例执行成功,该用户的记录被更新,否则,系统状态不变。

流水分类 目标: 本用例允许用户按照不同条件筛选显示的流水

事件流:

  1. 常规流程 当用户希望修改记账内容时,系统准备登记有关的修改信息时,本用例开始执行
    1. 系统从数据库中搜索所有账单,在搜索过程中,显示正在搜索,请稍等动画。
    2. 系统找到所有的数据后,默认显示按照时间的月筛选的数据,且第一分类默认下拉。
    3. 系统等待用户选择筛选条件,筛选条件有:
      1. 按照时间筛选:
      2. 按照分类筛选:
        • 一级分类
        • 二级分类
      3. 按照账户筛选
      4. 按照成员筛选
    4. 用户选择筛选条件后,系统按照条件筛选分类后的流水信息,并显示。
  2. 扩展流程: 无。

前置条件:用例开始前,用户必须登录成功,且进入流水显示页面。

后置条件:如果用例执行成功,该用户显示的流水记录被更新,否则,系统状态不变。

3.4 图表系统

3.4.1 图表系统的用例图

3.4.2 图表系统的用例描述

选择收入或支出
  1. 目标 本用例允许用户选择收入或者支出的账户信息进行图形绘制。
  2. 事件流 常规流程: 用户选择绘图对象为收入类型的消费记录还是支出类型的消费记录。
  3. 前置条件 用户已登陆成功且有记录信息。
  4. 后置条件 用户选择合理的时间段和图形呈现形式(若不选择则选择默认)。
选择时间段
  1. 目标 本用例允许用户选择收入或者支出的账户信息进行图形绘制。
  2. 事件流 常规流程: 用户选择绘图的消费记录所处的起止时间,供多种选项给用户选择,包括单天,单月,单季度,单年等。用户选择后立即生成对应图形,若不选择则默认选择默认设定。
  3. 前置条件 用户已登陆成功且有记录信息。
  4. 后置条件 无
选择图形呈现形式
  1. 目标 本用例允许用户选择收入或者支出的账户信息进行图形绘制。
  2. 事件流 常规流程: 用户选择绘图呈现形式,饼图或条形图可供选择。用户选择后立即生成对应图形,若不选择则默认选择默认设定。
  3. 前置条件 用户已登陆成功且有记录信息。
  4. 后置条件 无

4. 其他需求描述

4.1 性能要求

4.1.1 响应性能

该软件为非实时性能软件,无硬实时、软实时响应要求。只要软件能够在不影响用户体验的延时内响应即可。

4.1.2 运行效率

该软件服务只运行在本地客户端,所有的存储、计算统计和图表构建都在本地客户端完成。

4.2 设计约束

4.2.1 开发工具

甲方对于开发工具无要求,主要考虑是否主流和入门难度,以便上手开发和后期维护。暂定项目构建于Flutter平台,由Visual Studio Code和Android Studio创建,开发。

4.2.2 运行环境

客户端运行在IOS或者Android系统中,Android版本至少为4.0,建议为9.0+,IOS建议为10.0+。

4.2.3 安全性

通讯安全:本软件不提供数据传输服务。认证安全:保证用户在系统认证上的安全。数据安全:保证用户密码、账目数据等信息在本地客户端数据库中的完整性以及存储安全。

4.2.4 可靠性

客户端
  • 对于客户端异常,客户端会出现对于的报错代码,用户可以把相应报错反馈给运营维护人员。

4.3 界面要求

4.3.1 界面设计导向

  • 统一:全部页面、动画效果采用Flutter平台的MAterial Design风格。
  • 简洁:排除所有冗余设计,保持干净直观。
  • 美观:在风格保持统一和简洁的前提下,采用美观的设计。

4.3.2 界面设计原则

  • 简单直观:所有功能在两步操作之内能够达到。
  • 高内聚低耦合:统一相近功能的入口,减少各个独立功能页面之间的参差交叉。
  • 整齐:对界面各个组件进行整齐合适的摆放,不过度追求视觉效果。

4.4 进度要求

时间 事项
9.7~9.22 学习上手Flutter平台。
9.22~9.29 完成包括主页、底部导航、侧边栏以及数据库管理器在内整体框架的的设计以及编码。
9.30~10.7 完成记账、查看流水以及图表功能。
10.8~10.14 完成密码验证、手势验证、指纹验证、账户切换和数据备份功能。
10.15~10.22 优化界面和交互逻辑,进行功能测试
10.23~10.29 完善文档、重构代码优化质量

4.5 交付要求

  • 源代码:通过GitHub代码仓库进行交付
  • 可执行文件:项目打包为apk文件,可以运行在4.0+版本的Android系统上。

4.6 验收要求

  • 基础功能
    • 记账:用户可以选择不同的账户,以及不同的类型和子类型,记录收入或者支出项目。
    • 查账:用户可以查看指定时间、指定类别、指定成员的账目统计以及流水数据。
    • 图表分析:用户可以以图表形式直观查看账目的统计数据。
    • 系统验证:用户户可以选择密码、指纹以及手势验证登入功能,在错误时会提出错误提示。
  • 拓展功能:
    • 暂无

5. 软件原型

软件原型图

零、登入界面:

(1)密码登入

img

(2)图形登入

img

(3)登入错误

img

登入后界面:(已完成)

imgimg

一、收支等记账功能

  1. 可建立账户,分账户记账

img

  1. 记账类型分为收入、支出和转账等

img

  1. 记账类别具备一级和二级选项,可自定义一级和二级类别

  2. 记账自动填上当前时间,可修改

  3. 可选是否记录成员

img

二、统计功能

  1. 各账户总体统计信息

  2. 分账户月度、年度、余额统计

  3. 分账户月度、年度、余额统计

  4. 流水浏览功能

img

三、图表分析功能

  1. 按一级或二级分类展示支出或收入功 能

img

  1. 按成员展示支出或收入功能

  2. 可自定义时间段进行统计展示

img

  1. 流水浏览功能

img

  1. 按账户、项目、商家等统计, 数据导出、导入、备份功能