功能规格说明书
写在前面
项目简介
- 项目名称:Sunny图表
- 项目目标:实现一个方便用户进行图表绘制和制作的微信小程序。
- 项目开发者:团队介绍
本说明书目标
本说明书介绍了本项目的所面对的典型用户和场景,定义了专有名词和概念,并对项目实现功能进行了详细的叙述和分析,通过展示原型设计图来大致描述出项目软件使用过程中的流程和基础功能,并对软件可能存在的问题进行了分析。通过阅读本说明书,读者可以大致了解软件的目标人群、主要功能以及大致操作流程。
术语定义
术语 | 定义 |
---|---|
模板统一数据格式 | 模板统一数据格式是指一种我们底层自定义的配置文件,并据此格式对用户自定义的图表进行渲染和处理。 |
模板 | 模板是指我们在底层定义的模板统一数据格式的UI体现。 |
物理实验 | 同义于基础物理实验,在本文中二者等价。 |
图 | 在本文中特定于折线图、条形图、扇形图和散点图中的一种或几种,由模板和数据两部分组成。 |
典型用户
名字 | 小明 |
---|---|
用户身份 | 北航某需要做基础物理实验的学生。 |
用户情况 | 小明每次做基础物理实验时,都需要进行复杂繁琐的数据记录和处理,饱受折磨,深陷其中,无法解脱。 |
用户动机 | 希望能够摆脱复杂繁琐的数据记录和处理,并希望能够通过简单的操作就能够对基础物理实验过程中的数据进行记录和处理。 |
用户痛点 | 基础物理实验的数据记录往往要经历从实验中手写记录到手动输入到Excel表中再到手写画图这样的重复低效的过程。 |
用户比例 | 60%-70% |
名字 | 小新 |
---|---|
用户身份 | 需要记录账单的大学生 |
用户情况 | 平时花钱大手大脚,喜欢在不同的平台买各种各样的小东西。现在假期快到了萌生了对自己的每月、每周、每天的花费进行汇总记录,来对自己的账单进行统一管理和分析,并克制消费,为假期游玩做准备。 |
用户动机 | 希望能够整合不同平台的支付账单,并通过图表等方式进行分析消费记录,以便克制消费来对生活费进行管理和规划。 |
用户痛点 | 各平台消费记录和账单很难进行汇总,而且一般不支持导出图表。 |
用户比例 | 10%-20% |
名字 | 小张 |
---|---|
用户身份 | 小型商品零售商 |
用户情况 | 每两天或三天需要进行定期进货,每次进货前都需要列出进货列表包括货物名字、种类和数量等,在供应商进行送货时需要对供货商供货数量进行手写记录,并计算价格和账单。 |
用户动机 | 希望能通过简单、方便、安全的方式来记录自己进货数量。 |
用户痛点 | 传统笔记的方式需要手写,在进货时可能需要频繁的走动,手写并不方便。 |
用户比例 | 10%-20% |
典型场景
典型场景的分类对应上述中的三种典型用户,下面一一分析。
场景一
又到了周三,小明叹气道:“唉~,晚上又需要去做可恶的基础物理实验!这每次都要手写实验数据和重复的数据输入生活什么时候能结束啊!”,在小明一旁的LSP听到之后,心中暗暗窃喜,幸亏上周在学长的介绍下使用了Sunny图表小程序,我已经完全摆脱了基础物理实验的数据输入折磨!哈哈哈哈哈哈哈!
物理实验课上,LSP打开Sunny图表,在熟练的操作:创建图表、选择模板、选择基础物理实验模板、应用模板,一个精美的物理实验图表出现在手机屏幕上。随着老师的讲解,紧张的实验开始了。实验过程中,他时而对着手机语音输入数据,时而在手机上输入数据,时而拍下自己的手写数据上传......终于实验结束了,他的数据记录也结束了,又见他点击导出csv文件、保存到本地,然后开开心心的准备离开物理实验室。就在这个时候,一直在LSP左边沉默做实验的小明,记录完数据之后,终于忍不住向LSP问:“你刚刚实验的时候一直在用手机记录数据吗?我看你全程基本没有记录数据哎”。原来LSP实验过程中数据记录的过程全被小明看到眼里记在心里,当他看到LSP几乎全程不用纸和笔进行记录时,他内心充满了好奇和羡慕,因为他已经饱受数据记录的折磨很久了。LSP嘴角上扬说:”是啊,我一直在用手机记录数据,而且还可以使用别人的模板,最后将数据直接导出csv,非常方便“,一说到这个LSP就脸上出现了笑意,这可是他从学长软件工程作业那里白嫖到的小程序内测资格!小明一听到可以用手机记录数据竟是如此方便,带着喜悦和羡慕的眼神看着LSP,试图想让LSP将这个好用的工具分享给他。LSP看到他的神情之后,哈哈一笑,拿出手机将小程序的内测二维码展示给小明,小明急忙拿出手机扫码,从此之后这个世界上少了一个被基础物理实验数据记录所折磨的人。
场景二
五一快到了,小新看着自己的支付宝、微信和银行卡中的余额默默叹气,骑车去见LSP。在4月初的清明节假期,小新和她的好朋友LSP一起出去玩了密室逃脱,两个人活动于北京各大商场、小吃街、名声古迹,玩的好不快活,当然钱花的很快活。LSP因为家庭原因和自己的私房钱所以还是有点家底的,这样的三天假期对他来说还是负担的起。其实小新也也和LSP差不多,但小新作为女孩子特别喜欢买一些可可爱爱的小东西,看到可爱的玩偶、手饰、头饰等都会忍不住买下来,虽然每次花的钱不多,但久而久之买的东西多了,花的钱自然也就多了。一整个假期下来,小新反而剩下的钱不多了。但好在还够支持到五一,并且稍微省一点点理论上还可以攒出钱五一去玩耍。
屋漏偏逢连夜雨,好景不长,一向很善良很聪明的小新,被骗了!她相信了某个"朋友"的要治病的鬼话,将自己的生活费的一半借给了这个朋友,并想着对方马上会还钱,便没有太过于在意这些,而且还特意的使用一些小聪明去验证朋友是否是真正的朋友。但小新还是太天真了,道高一尺魔高一丈,小新大E了,完全没有意识到对方给出的信息全是假的。于是,小新一半的生活费打水漂了。
骑在车上小新内心充满了后悔和痛苦,见到LSP之后,LSP听她讲述故事之后,哈哈一笑,拿出手机将Sunny图表小程序的内测的二维码展示了出来,小新扫码之后,按照LSP的指导,点击创建图表、创建账单图表、选择模板、选择账单模板、使用模板,然后小新将这几天在不同的平台的消费记录输入之后,出现了她最近的消费图表。小新对着这个图表开始仔细分析自己的花费,决定制定自己的五一前的消费计划,并将记录记录在小程序中每日进行分析和对比,科学管理自己的消费。
终于五一到了!小新看着Sunny图表中的每天、每周合理的消费露出了开心的笑容,和LSP开始了京城5日游的快乐生活。
场景三
小张在小县城中经营着一家小型超市,在现在大超市如洪水猛兽一般疯狂抢占市场的条件下,小张这样的超市逐渐沦落为了顾客买东西的第二选择,但他没有办法不得不坚持经营下去。因为超市小,小型超市供货效率不高而且不稳定,做不到像大超市有很稳定的供应商,而且供应商有时候甚至不愿意来送货,因为供应商在他们这边能够赚取的钱不多,而且配送又会很慢很麻烦。所以小张有时候不得不同时使用好几家供应商的货物,碰到急需的商品小张有时候又不得不亲自去供应商那里去拉货。在这样的条件下,每次进货对于小张来说都是一件比较痛苦和麻烦的事情,他不得不用纸和笔记录在哪一个供货商买了什么商品,买了多少,花费多少,他也很想使用电脑或者手机,但电脑记录显然不太方便出门携带和记录,手机方便,但一直找不到比较合适的软件。纸和笔的记录最起码能够随身携带随身记录,虽然有时候会很麻烦,但也是目前最好的选择了。
这天刚刚忙活完小明来到隔壁小新家,小新听到小张的抱怨之后,也不知道改怎么办,毕竟她只是一个平时喜欢吃喝玩乐的孩子,便打电话想问问LSP能不能解决一下这样的问题,LSP在电话中听到之后,哈哈一笑,把内测码发了过去,并开了视频聊天教小张使用:点击创建图表选择语音输入,小张将自己今天进货的名字、数量、价格以及供货商通过语音输入之后,便出现了一个精美的图表和一个默认的条形图,小张看了看条形图和表格,选中了多个表项,然后点击计算,便出现了今天进货的各种花费。
经过一番试验之后,小张瞬间感觉这个小程序使用之后,以后出门进货只需要带着手机就够了,进了多少货语音输入一下就好了,还能节省自己打字的时间,很是方便,而且账单功能还可以用来记录进货的账单,一举两得。从此小张不再为进货时记录的问题而烦恼了。
系统功能
多种数据输入
此功能适用于上述全部典型场景。
我们支持用户进行多种方式的输入:语音、文字、图片等方式,让用户能够使用当前环境最适合的方式进行数据输入。
图表展示功能
此功能适用于上述全部典型场景。
作为一个图表小程序,图表展示功能是我们最重要的功能。我们目前支持绘制折线图、条形图、扇形图和散点图以及表格。
基础功能
前三种图中,支持不同的数据和变量以不同的颜色展示;支持多种数据的同时绘制;支持对图展示的精度的控制。特别的在扇形图和条形图中,我们支持用户通过手指拖动的方式来对图中的数据进行设置和更改;在散点图中支持用户在绘制结束之后对图中的点进行动态的删除和添加以及对数据进行修正和修改。除上述之外,我们还支持基础的数据命名、图表命名、坐标轴命名以及原点初始值设置等功能。
绘制方式
考虑到用户的数据输入可能是动态的输入也可能是一次性全部输入,我们支持实时绘图和一次性绘图,但无论哪种绘图我们都支持绘图之后的修改和修正以及动态的调整。
草稿箱
用户可能在数据输入过程中出现一些突发情况,导致图表在绘制一半时被打断,或者有时候用户想要将当前编辑的图表暂时保存,下次再次打开时可以直接从草稿箱中load。我们为此支持草稿箱功能,能够将用户的的输入保存在草稿箱中,能够让用户再次回到小程序时继续进行数据输入和图表绘制,而不至于重新输入。
模板功能
此功能适用于上述全部典型场景。
模板定义
我们支持用户进行自定义模板,用户对于一些经常使用到的图表,可以自定义图表属性。比如定义饼状图和折线图中每一部分和每一条线的颜色,折线图中和柱状图中的纵轴和横轴的数据(字符串、数值类型等)和名称,每一个图窗口的长和宽等属性。用户在定义模板后可以将模板保存到服务器中方便以后使用。
模板分享
在模板定义之后用户可以选择是否对其他用户进行分享,并在每次创建新的图表时可以选择使用默认模板和自定义模板,并可以通过模板分享链接将模板添加到自己的模板库中。
模板的管理
用户可以对模板进行分类,方便用户在使用模板时能够快速定位到自己想要的模板,也可以对每一个类别中的模板进行添加和删除。
模板的修改
用户可以选择模板(包括用户所拥有的模板、系统默认模板以及其他人所分享的模板)进行修改使其变为更适合自己需求的模板,这样可以提高模板的可扩展性和灵活性。
导出功能
我们允许用户对自己的数据图表进行特定格式的导出。用户可以将自己的图表导出为图片、csv、txt等格式的文件,并保存到本地或上传到百度网盘中,方便用户进行即时分享和长久的记录。
导入功能
我们支持用户将特定格式的文件(txt、csv、图片、手写数据等)导入到小程序中,我们会通过计算和分析将其转换为图表并绘制和展示,让用户能够及时对数据进行分析和记录。
数据分析功能
我们支持用户对自己的账单数据进行分析和统计,此功能主要适用于上述典型场景二。类似小新这种用户需要对自己在某一段时间内的消费进行统计和分析,我们为此提供了数据分析功能。用户可以自行选取某一确定时间段来进行分析,我们会根据用户在此时间段内的记录进行分析并生成图表。
此外,我们支持对图表中的数据进行一些常用数学的计算,比如求和、平均值、方差、极值等,来帮助用户进行简单的分析,主要适用于场景一中的物理实验。
验收标准
功能 | 验收标准 |
---|---|
多种数据输入 | 能够完成基本文字输入数据功能(Alpha阶段实现),能够完成准确的完成语音输入内容和图像处理内容(Alpha完成初步部署,Beta彻底完善),并能够将输入数据准确的交付给图表绘制功能模块(Alpha阶段实现)。 |
图表展示功能 | 在Alpha阶段完成基础功能中的全部,能够做到上述功能所描述的各种数据和属性的修改,图表拖动要保证流畅、丝滑的效果。图表绘制能够保证实时性绘图的流畅、丝滑和正确(Alpha阶段实现)。草稿箱功能能够对各种可能造成用户编辑数据丢失的情况进行保存,并在合适的时间恢复(Alpha阶段初步部署,Beta阶段完全实现)。 |
模板功能 | 能够定义出功能较为完善的模板统一数据格式,并允许用户对模板进行修改并正确保存到用户对应的数据库的中,提供一系列默认模板并支持用户创建时能够使用和修改(Alpha阶段实现),对于模板的分享需要能够保证模板通过二维码分享之后用户可以正确的识别模板并保存到自己的模板库中(Beta阶段实现)。模板的管理需要保证用户能够自定义文件夹来对自己的模板进行管理和保存,并能够对模板进行删除和添加(Beta阶段实现)。 |
导出功能 | 能够将图表按照用户要求格式准确无误的保存到本地,并能够正常打开和使用(Alpha阶段实现)。能够按照用户要求导出到网盘的特定的位置(Alpha初步实现,Beta完全实现)。 |
导入功能 | 能够准确解析txt,csv格式文件中的数据,并能将数据准确无误的交付给图表绘制功能模块(Alpha阶段实现)。图片和手写数据的导入能够准确识别出其中的数据,并能够将数据准确无误的交付给图表绘制功能模块(Alpha阶段初步部署,Beta完全实现)。 |
数据分析功能 | 后端能够准确的查找到时间段内用户的数据信息并进行整合后传送到前端图表绘制模块,图表绘制模块能够根据后端传入信息进行各种基本数据的准确计算和分析(Alpha阶段实现)。 |
界面原型设计
用户进入小程序后,首先进到主页。在主页用户选择自己需要绘制的图片,并且选择相应模板。
点击此处 查看界面原型设计。
可能的问题
问题 | 解决方案 |
---|---|
语音识别不准确 | 规定输入模板,并及时更新语音识别模块来保证模块识别的准确。 |
数据库容量不足 | 扩大数据库容量,购买更好的服务器。 |
用户使用的微信版本过低,不支持一些新版本的组件和特性, | 当出现这种情况时,我们会对用户进行提示微信版本过低,可能导致有些功能无法正确显示。并提醒用户对微信进行更新来获得更好的体验。 |
用户的账单信息不安全 | 我们承诺不会使用用户个人数据信息来做除用户请求分析以外的任何事情。 |
图表绘制速度慢 | 我们会尽量优化图表绘制模块的性能来实现不占用过多时间和内存流畅的绘制出图表。 |