团队项目之需求规格说明书

GitHub:https://github.com/123diandian/tomato

 

<番茄时钟app>

 

需求规格说明书

 

修订历史记录

日期

版本

说明

2019.05.06

V1.0

比较粗糙的第一版

 2019.05.22

 

 添加了编程规范化、平台环境搭建

 

 

 

 

 

 

 

目录

1.       引言

1.1目的

1.2背景

1.3定义

1.4参考文献

2.       项目概述

2.1产品描述

2.2产品功能

2.3用户特点

2.4一般约束

2.5假设与依据

3.       具体需求

3.1功能需求

3.1.1系统账号注册

3.1.2用户登陆

3.1.3系统设置

3.1.4查看番茄森林

3.1.5启动番茄时钟

3.1.6新建任务清单

3.1.7查看任务报表

3.1.8设置任务提醒

3.1.9分享给好友

3.2外部接口需求

3.2.1用户接口

3.2.2硬件接口

3.2.3软件接口

3.2.4通信接口

3.3性能需求

3.3.1精度需求

3.4属性

3.4.1性能需求

3.4.2安全性需求

3.4.3可靠性需求

3.4.4兼容性需求

3.4.5数据保密需求

3.4.6可用性需求

3.4.7可测试性需求

3.4.8可维护性需求

 

4.       系统编程规范化

 

4.1前端

 

4.1.1HTML.

 

4.1.2JavaScript

 

4.1.3CSS

 

4.2后台

 

5.       平台环境搭建

 

5.1安装apicloud.

 

5.2搭建番茄时钟项目

5.3阿里云服务器的部署  

 

 

1. 引言

1.1目的

本文首先对本次团队项目的整体结构和功能结构进行概述,同时对功能需求、性能需求进行详细的描述。便于开发团队和用户的项目产品的理解,可用于后续开发团队对产品系统结构的理解,以及在模型进行改进后,能够快速了解已有的框架体系结构,并对此修改做出针对性的措施。本文档在系统体系架构方面做出了重要的决策,可作为后续团队开发的基础及依据。

本文档面向的读者对象:

(1)项目经理:项目经理可以根据该文档了解预期产品的功能,并据此进行系统设计、项目管理。

(2)设计员:对需求进行分析,并设计出系统,包括数据库的设计。

(3)程序员:了解系统功能,编写《用户手册》。

(4)测试员:根据本文档编写测试用例,并对软件产品进行功能性测试和非功能性测试

(5)用户:了解预期产品的功能和性能,并与分析人员一起对整个需求进行讨论和协商。

在阅读本文档时,首先要了解产品的功能概貌,然后可以根据自身的需要对每一功能进行适当的了解。

1.2背景

本次待开发的软件为:“凉拌番茄”——一个用于时间管理的手机app。

用户通过使用该app在移动终端设置即将完成的任务,并设置时间。系统根据用户手机是否亮屏来监听用户是否完成任务,完成则生成一个番茄,没有完成则番茄枯萎。

1.3定义

序号

缩写

定义

1.

app

应用程序,Application的缩写,一般指手机软件。

2.

Android

Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。

1.4参考文献

[1].[EB/OL].https://github.com/CourseManagement/Data,.

2. 项目概述

2.1产品描述

通过开发基于APICloud平台的“凉拌番茄”app提高学生的自制力,自律性。用户在工作的同时,也是在种植番茄的过程。该app会以完成的任务量为水,为用户栽种一棵成长之树,让人在相对轻松的工作方式下进行,工作中我们会获得别样的成就感,我们能通过该软件将延时收益碎片化成多次瞬时收益感受。小树变成大树的过程同样也是人在成长的过程,在此过程中,将人们的负面情绪慢慢转化为正面的积极的期待希望。

2.2产品功能

目前学生的作业比较多,任务比较繁忙,经常不是不想完成作业,而是作业太多没有动力完成,或是过于繁忙以至于忘记某些作业而不能及时完成作业。于是我们团队决定开发“凉拌番茄”app来解决这类问题。该app是以种番茄的形式,促使学生更快更早的完成任务。当学生看到自己的劳动成果变成了番茄,最后成长成一棵小树,甚至是一片森林,就会有成就感,就会更有动力完成任务。从而提高工作效率。

用户具体功能如下:

 

 

2.3用户特点

该app主要针对的用户是学生。在高速发展的信息时代,生活条件越来越好,信息产品也越来越普遍。然而学生的压力也越来越大,要学习的东西越来越多,任务越来越繁重。特别是对于那些想要考证、考研的学生,该app能够帮助学生有效的整理自己待完成的任务清单,做出合理的规划,提高工作效率,不断地提高、完善自我。

本项目的开发人员是由在校的学生组成,了解用户的具体需求,便于对软件的功能的调整与改善,尽可能的满足用户的需求。

本软件一经注册之后,用户随时可以进行登录、操作、退出等功能。

2.4一般约束

进行本软件开发工作的约束条件如下:

(1)开发周期短:从确定项目到截止提交成品的时间只有短短的两个月,时间比较紧促,需要开发者合理规划时间,做到多项任务并发。

(2)所采用的方法与技术有限:项目团队成员的技术水平不够成熟,编程基础相对薄弱,需要在开发中并发学习多种技术和能力。

2.5假设与依据

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

(1)团队成员的积极合作配合,为了项目的开发和实施,对个人时间进行合理规划同时为团队做出合理牺牲,配合队友完成任务。

(2)团队的要合理分工,根据团队成员的技能爱好,对成员进行分工,各成员各司其职,成员之间相互交流合作。

(3)团队掌握先进的能够适用于该项目的技术,这是系统的性能是否优化和项目能否成功的保证。

3. 具体需求

首先,为更清晰的了解该项目的各界面之间的关系,引入页面流程图如下。

 

 

3.1功能需求

3.1.1系统账号注册

页面:首页,login Up

用户通过一下页面,点击右侧“注册”按钮进入注册页面,用户可使用邮箱或者手机号码进行注册。

 

 

   

3.1.2用户登陆

页面:login in,password

用户通过自己的手机号码或者邮箱和相应的账号密码进行登录,进入主界面。若用户忘记密码,也可点击左下角的忘记密码,通过邮箱或者手机号进行短信验证,重新设置密码。

 

 

 

 

     

 

3.1.3系统设置

页面:主页面,Settings

进入主界面,点击右上角的“设置”图标,可对系统进行设置,包括休息时长,铃声等。

 

 

   

3.1.4查看番茄森林

页面:plant

通过主页面进入“番茄森林”,可以查看自己的成就。

 

 

3.1.5启动番茄时钟

页面:clock

通过主页面进入“番茄时钟”,点击“start”按钮之后开启番茄之旅。开启番茄时钟之后,在一个番茄时钟不能使用其他软件,系统通过监听手机亮屏来控制是否使用了其他软件,如果使用了其他软件,番茄就会被强制杀死。点击新建任务也可以添加新的任务,将任务单的时间调至需要完成的任务的截止时间,任务可以选择不同的属性区分不同的任务类型。用户需要自己对任务的难度进行判断,自己设置完成任务可获得的番茄数。

 

 

 

   

3.1.6新建任务清单

页面:list

通过主页面进入“任务清单”,按日期查看已完成的任务以及所获得的番茄数。

 

 

3.1.7查看任务报表

页面:report

通过主页面进入“任务报表”,可以清晰的展现自己完成任务情况,有时长的汇总,番茄数的汇总,以及番茄数的变化趋势,有日趋势和月趋势两种可以切换。

 

   

3.1.8设置任务提醒

页面:remind

通过主页面进入“任务提醒”。有一些任务比较重要,不能被忘记,就可以开启任务提醒,提醒自己要按时完成任务。

 

 

 

3.1.9分享给好友

页面:主页面

在主页面点击“分享好友”,可以将自己的成就(即所获得的番茄数)分享给好友,可通过QQ、电子邮箱、蓝牙分享,也可以保存图片。


3.2外部接口需求

3.2.1用户接口

本系统采用C/S架构,用户界面的具体功能在功能需求文档钟描述。

3.2.2硬件接口

无特殊需求。

3.2.3软件接口

无特殊需求。

3.2.4通信接口

无特殊需求。

3.3性能需求

3.3.1精度需求

(1)登录账号信息精度

用户登录账号:不能为空。可以是邮箱账号或者手机账号。对于邮箱账号,符合邮箱的正则表达式,包含@字符。对于手机号码:只允许11位的数字组成。

用户密码:密码由6-12个字符组成。密码只能由数字、英文字符、下划线组成。为空。

(2)任务清单

任务清单的内容:任务清单内容由不超过200个的字符组成。可以包含任何的字符,包括数字,英文字符,汉字,标点符号,表情包(占两个字符)。

任务日期:日期弹框选择。

截止时间点:时间点弹框选择。

(3)番茄时钟的设置

时钟的长度:由用户自定义输入一个数字,单位为分钟。

3.4属性

3.4.1性能需求

①响应时间:在95%的情况下,一般时段响应时间不超过1.5秒,高峰时段不超过4秒;

②系统容量:支持3万用户,支持GB级数据且数据库表行数不超过100万行,数据库最大容量不超过1000GB,磁盘空间至少需要40G以上;

③资源使用率:CPU占用率<=50%。内存占用率<=50%。

3.4.2安全性需求

①保证管理者和注册用户的密码安全,数据库访问控制。

②提供运行日志管理及安全审计功能,可追踪系统的历史使用情况。

③系统要有足够的防御能力,防御普通黑客的攻击,尽量减少各种可能出现的漏洞,防止用户信息被不良分子窃取。

④严格权限访问控制,用户在经过身份认证后,只能访问其权限范围内的数据,只能进行其权限范围内的操作。

⑤能经受来自互联网的一般性恶意攻击。如病毒(包括木马)攻击、口令猜测攻击、黑客入侵等。至少99%的攻击需要在10秒内检测到。

3.4.3可靠性需求

①对输入有提示,数据有检查,防止数据异常;

②系统健壮性强,应该能处理系统运行过程中出现的各种异常情况,如:人为操作错误、输入非法数据、硬件设备失败等,系统应该能正确的处理,恰当的回避;

③因软件系统的失效而造成不能完成操作的概率要小于5‰;

④要求系统7x24小时运行,全年持续运行故障停运时间累计不能超过10小时。

3.4.4兼容性需求

系统应支持IOS,Android , windows操作系统;

3.4.5数据保密需求

网络传递数据应经过加密。需要保证数据在采集、传输和处理过程中不被偷窥、窃取、篡改。

3.4.6可用性需求

①在95%的故障中,系统最多需要20秒重启;

②提供数据备份和恢复功能,使得在由于系统的错误或其他原因引起系统的数据丢失或系统的数据被破坏时,能够及时恢复和还原数据。

3.4.7可测试性需求

①一个模块的最大圈复杂度不能超过15;

②交付的系统必须通过单元测试,并且是100%覆盖;

③开发活动必须使用回归测试,并允许在12小时内重新进行完整的测试。

3.4.8可维护性需求

从接到修改请求后,对于普通修改应在1~2天内完成;对于评估后为重大需求或设计修改应在1周内完成。及时修改软件以适应需求环境的变化。

1. 系统编程规范化

4.1前端

4.1.1HTML

u  缩进使用soft tab(四个空格)

u  嵌套的节点应该缩进

u  在属性上,使用双引号,不要使用单引号

u  属性名全小写,用中划线做分隔符,如:

<h1 class="hello-world">Hello, world!</h1>

u  属性应该按照特定的顺序出现保证易读性,如:

①class

②id

③name

④data-*

⑤src, for, type, href, value, max-length, max, min, pattern

⑥placeholder, title, alt

⑦aria-*, role

⑧required, readonly, disabled

4.1.2JavaScript

u  命名标准如下:

①标准变量采用小驼峰式命名(除了对象的属性外,主要是考虑到cgi返回的数据)

②'ID'在变量名中全大写

③'URL'在变量名中全大写

④常量全大写,用下划线连接

⑤构造函数,大写第一个字母,即大驼峰命名法

⑥一般函数用小驼峰命名法

⑦类的成员中,公共属性和方法 : 同变量命名方式

⑧类的成员中,私有属性和方法 : 前缀为下划线(_)后面跟公共属性和方法一样的命名方式

⑨jquery对象必须以'$'开头命名

var thisIsMyName;
 
var goodID;
 
var reportURL;
 
var AndroidVersion;
 
var iOSVersion;
 
var MAX_COUNT = 10;
function Person(name) {
    this.name = name;}
// not good
var body = $('body');
// good
var $body = $('body');

u  使用soft tab(四个空格)

u  函数参数之间用’, ’分割,注意逗号后有一个空格

u  以下几种情况后需要加分号:

①变量声明

②表达式

③return

④throw

⑤break

⑥continue

⑦do-while

u  以下几种情况不需要空格:

①对象的属性名后

②前缀一元运算符后

③后缀一元运算符前

④函数调用括号前

⑤无论是函数声明还是函数表达式,'('前不要空格

⑥数组的'['后和']'前

⑦对象的'{'后和'}'前

⑧运算符'('后和')'前

u  以下几种情况需要空格:

①二元运算符前后

②三元运算符'?:'前后

③代码块'{'前

④下列关键字前:else, while, catch, finally

⑤下列关键字后:if, else, for, while, do, switch, case, try, catch, finally, with, return, typeof

⑥单行注释'//'后(若单行注释和代码同行,则'//'前也需要),多行注释'*'后

⑦对象的属性值前

⑧for循环,分号后留有一个空格,前置条件如果有多个,逗号后留一个空格

⑨无论是函数声明还是函数表达式,'{'前一定要有空格

⑩函数的参数之间

u  以下几种情况需要空行:

①变量声明后(当变量声明在代码块的最后一行时,则无需空行)

②注释前(当注释在代码块的第一行时,则无需空行)

③代码块后(在函数调用、数组、对象中则无需空行)

④文件最后保留一个空行

u  换行的地方,行末必须有’,’或则运算符,以下几种情况需要换行:

①代码块'{'后和'}'前

②变量赋值后

4.1.3CSS

u  命名规则如下:

①类名使用小写字母,以中划线分隔

/* class */.element-content {

    ...}

②id采用驼峰式命名

/* id */

#myDialog {

    ...}

u  使用soft tab(四个空格)

u  颜色16进制用小写字母

u  每个属性声明末尾都要加分号

.element {
    width: 20px;
    height: 20px;
 
    background-color: red;}

u  以下几种情况不需要空格:

①属性名后

②多个规则的分隔符','前

③!important '!'后

④属性值中'('后和')'前

⑤行末不要有多余的空格

u  以下几种情况需要空格:

①属性值前

②选择器'>', '+', '~'前后

③'{'前

④!important '!'前

⑤@else 前后

⑥属性值中的','后

⑦注释'/'后和'/'前

u  以下几种情况需要换行:

①'{'后和'}'前

②每个属性独占一行

③多个规则的分隔符','后

4.2后台

由于团队开发时间限制,团队成员技术还不够成熟,暂时对该项目不进行后台数据的开发。

2. 平台环境搭建

5.1安装apicloud

下载APICloud Studio2(可点击https://www.apicloud.com/devtools 下载)

 

点击下载,然后解压,然后就可以看到apicloud-studio-2的应用程序,右键——发送到——桌面快捷方式(一般以后使用)

 

 

然后就可以在桌面上看到应用程序的图标了。

5.2搭建番茄时钟项目

先注册一个APICloud账号,打开APICloud Studio2,然后登陆,点击文件,新建窗口。

新建应用

 

 

点击左上角那个新建项目。输入应用名称,应用说明(选填),选择应用框架,点击完成。

 

 

然后选择要保存的应用的路径,右键创建一个空文件夹(这里创建的是番茄文件夹),然后点击创建。

 

 

然后会自动生成以下代码文件(在刚刚那个番茄文件夹里)

 

然后编辑代码(包括新建页面框架,新建模板文件,插入组件等)

云端代码同步

右键番茄——git——git add+commit提交文件

 

 

然后在下方命令行输入提交的说明(根据需要自己写)

 

 

输入完成之后按ctrl + s 保存提交。

 

 

然后右键根目录,选择代码管理——从云端同步

 

 

然后右键根目录,选择代码管理——同步到云端,出现以下页面表示同步完成。

 

 

进行云编译前先进行自定义APP Loader,确保代码正确,不发生冲突。

 

 

编译完成,想看看成品就可以右键根目录,选择云编译。

 

 

编译完成后,下面会有编译记录

 

 

可以用手机扫描二维码下载,也可以复制链接用手机下载。

 

5.3阿里云服务器的部署

使用Github将本地代码部署到服务器,使用命令git clone 克隆。

 

posted @ 2019-05-08 23:21  zhengxiaodian  阅读(684)  评论(0)    收藏  举报