软件需求工程与UML建模——第九组项目需求规格说明
项目需求规格说明文档
完成:第九小组
二零一九年六月
目 录
1.引言
1.1 目的
1.2 范围
1.3 文档组织
2.总体描述
2.1 项目前景
2.2 产品功能
2.3 用户特征
3.详细需求描述
3.1 对外接口需求
3.1.1 用户界面
3.1.2 其他接口
3.2 功能需求
3.2.1 模式1(组队)
3.2.2 模式2(答疑)
3.2.3 模式3(资料)
3.2.4 模式4(我的)
3.3 性能需求
3.4 约束
3.5 质量属性
1.引言
1.1 目的
本需求规格说明文档说明的主要目标是自习通,本产品是一款面向学生用户使用的集成自习组队平台,是一款完整的微信小程序。本文档预期读者是打算使用或了解的学生用户及验收产品的老师。
1.2 范围
项目名称:自习通。
功能范围:发布约自习信息以完成组队,填写学习目标及完成情况,置课件试卷等学习资料,开设讨论区方便用户自由问答。
应用说明:自习通界面分为4大板块,分别是:自习组队、学习资料、答疑讨论区、个人信息。
1、自习组队:首先是学习目标界面,用户可以建立一个个学习目标,在界面下方是组队按键,点击按键后显示组队列表,每个组队框中显示自习的时间地点以及一些备注,用户可以选择申请加入其中一个队伍或者自己组建队伍。
2、学习资料:学习资料分为资料列表和上传界面,点击资料列表中某个资料后将会显示该资料的主题以及百度云盘链接供用户自行下载,用户也可以在上传界面中上传学习资料。
3、答疑讨论区:分为问题总览界面和问题提出界面,点击问题总览界面可以查看问题描述以及相应的回答,用户可以在最下方填写自己的回答;问题提出界面则是提出自己需要别人帮助解答的问题。
4、个人信息:该界面将包含注册时所填写的所有基本信息。
1.3 文档组织
² 本文档余下内容如下目录所示:
2.总体描述
2.1 项目前景
2.2 项目功能
2.3 用户特征
3.详细需求描述
3.1 对外接口需求
3.1.1 用户界面
3.1.2 硬件接口
3.1.3 软件接口
3.1.4 通信接口
3.2 功能需求
3.2.1 模式1(组队)
3.2.2 模式2(答疑)
3.2.3 模式3(资料)
3.2.4 模式4(我的)
3.3 性能需求
3.4 约束
3.5 质量属性
3.6 其他需求
4.人员分工说明
² 本规格说明书的组织方式:按照操作模式进行组织
2.总体描述
2.1 项目前景
目前大学本科学生无不面临较大的课业压力,科目众多且科目难度较大,学生要想获得理想的成绩就离不开认真刻苦的学习,除了课堂上的认真听讲,课后的自习也是很重要的学习过程。经过调查,学生普遍认同组队自习可以提高学习效率。目前该方面项目的空缺和学生对组队自习平台的强烈需求产生了很大的对比,自习通是针对现况开发出的实现学生定目标.约自习.上传学习资料.讨论切磋提高成绩的多功能组队自习平台。
注:本产品是一款微信小程序,依附于微信平台。
2.2 产品功能
功能分解图:
自习通界面分为4大板块,分别是:自习组队、学习资料、答疑讨论区、个人信息。
自习组队
首先是学习目标界面,用户可以建立一个个学习目标,并在目标完成后打钩表示目标完成,在界面下方是组队按键,点击按键后显示组队列表,每个组队框中显示自习的时间地点以及一些备注,用户可以选择申请加入其中一个队伍或者自己组建队伍。
学习资料
学习资料分为资料列表和上传界面,点击资料列表中某个资料后将会显示该资料的主题以及百度云盘链接供用户自行下载,用户也可以在上传界面中上传学习资料。
答疑讨论区
分为问题总览界面和问题提出界面,点击问题总览界面可以查看问题描述以及相应的回答,用户可以在最下方填写自己的回答;问题提出界面则是提出自己需要别人帮助解答的问题。
个人信息
该界面将包含注册时所填写的所有基本信息。
2.3 用户特征
由于产品是微信小程序,所以面向的使用对象是微信用户,要求用户掌握小程序使用的基本知识。
3.详细需求描述
3.1 对外接口需求
3.1.1 用户界面
界面风格:采用云开发标准风格,极简易用,字体全为宋体黑色,表单栏格式统一为基本格式,选项开关醒目,操作按钮为绿色显眼突出,界面简单但合理搭配。
界面布局:一级界面上方显示界面信息,中间部分展示内容,划到下方有进入二级界面的按钮,最下方是导航栏。二级界面没有导航栏,上方显示界面信息,其余部分展示内容,可点击左上角返回一级界面。
界面操作:页面上的每一个按钮、文本框等都是经过设计人员精心设计目的就是用户使用系统更加方便快捷。
界面内容:表单填写框内有提示,发生错误的消息显示为弹出式显示。
3.1.2 其他接口
产品使用微信云开发平台开发,API格式统一为we.cloud.xxx,下省略前一部分的统一格式,只显示不同处。
接口一 名称:database
目的描述:获取数据库引用,返回 Database 对象
方法签名:function database(options?: object): Database
方法接受一个可选对象参数 options,其字段定义如下:
字段名:env
类型:string,非必填
说明:环境ID
接口二 名称:collection
目的描述:获取集合引用,返回 Collection 对象
方法签名:function collection(name: string): Collection
方法接受一个 name 参数,指定需引用的集合名称
接口三 名称:collection.get
目的描述:获取集合数据,或获取根据查询条件筛选后的集合数据。
函数签名:function get(): Promise<Result>
接口四 名称:collection.add
目的描述:在集合上新增记录
函数签名:function add(options: object): Promise<Result>
参数说明如下:
字段名:data
类型:Object,必填(新增记录的定义)
接口五 名称:collection.where
目的描述:指定筛选条件
函数签名:function where(rule: object): Query
方法接受一个必填对象参数 rule,用于定义筛选条件
3.2 功能需求
小程序由导航栏分出四个功能模式:组队、答疑、资料、我的;以用例图为例,参与者之间与参与者和用例之间关系如下图:
项目整体数据流动如下图所示:
其中创建组队环节较为复杂,涉及不同用户的操作以及用户间的信息传递、交互。用户之间的操作活动与系统的关系用如下活动图描述:
此环节数据流如图描述:
点击组队,界面显示各个自习小队,可以点击开关加入队伍。若队伍列表中无心仪队伍点击创建新队伍进入创建界面。填写信息后点击提交,信息完备后提交成功,队伍信息将在组队界面显示(若信息填写不完全将无法成功提交,并会进行提示)。
3.2.1
模式1(组队)
下属功能点:显示学习目标、填写学习目标、创建自习队伍、查看并加入队伍。
3.2.1.1 功能需求1.1
显示学习目标:在该板块下的屏幕中心位置展示填写好的学习目标。
3.2.1.2 功能需求1.2
填写学习目标:用户点击创建学习目标进入填写界面并完成填写。
3.2.1.3 功能需求1.3
创建自习队伍:用户点击组队,再点击最下方的创建新队伍开始创建队伍。
3.2.1.4 功能需求1.4
查看并加入队伍:用户点击组队,界面上方显示所有队伍信息并可点击开 关加入队伍。
3.2.2
模式2(答疑)
下属功能点:提出疑惑问题、查看问题描述、回答问题。
3.2.2.1 功能需求2.1
提出疑惑问题:点击该板块下方的提出新问题,填写详细内容
3.2.2.2 功能需求2.2
查看问题描述:界面显示所有用户提出的问题,点击查看问题描述。
3.2.2.3 功能需求2.3
回答问题:每个问题框内设有一行回答区域可以进行回答。
3.2.3
模式3(资料)
下属功能点:上传资料信息、查看资料信息。
3.2.3.1 功能需求3.1
上传资料信息:点击下方的添加新资料,填写信息上传。
3.2.3.2 功能需求3.2
查看资料信息:在该板块下的上方位置展示所有用户上传的资料信息。
3.2.4
模式4(我的)
下属功能点:进行注册、查看个人信息。
3.2.4.1 功能需求4.1
进行注册:未注册的用户点击注册进入注册界面,填写个人信息。
3.2.4.2 功能需求4.2
查看个人信息:注册成功后界面显示个人信息。
3.3 性能需求
产品要求可以参与交互的用户至少有100人,用户操作相应时间要在1秒内。
3.4 约束
限于开发平台、小程序特点及技术因素,要求依靠云开发平台进行设计和编码,API、结构风格等可能受限。
3.5 质量属性
易用性:小程序应采用下方导航栏,使得用户很容易了解程序主体内容模块,并能轻松获取相关信息。关于注册、添加目标、创建新队伍等功能都要设置醒目的按钮,用户使用这些功能不可以存在任何障碍。
小程序涉及到很多需要填写信息的表单界面,要求实现表单填写的完备性,即当信息填写不全时无法成功提交而会提示填写缺失的信息,让用户能迅速理解和转向正确填写。
此外,小程序的内容编排与人们认知和操作习惯保持一致,例如在进入组队界面的上方设置点击建立目标按钮,因为用户需要在每次组队约自习前建立学习目标。