1 引言
1.1 编写目的
本系统,即高校调查问卷管理系统,其主要实现的是政府通过发布调查问卷的方式对高校整体情况的调查,调查问卷的设计具有多样性,由政府设计并发布问卷,通过高校的师生填写的调查问卷信息得到反馈,获取高校教师和学生以及学校教学、管理等方面的具体情况。本节描述软件产品需求规格说明书(SRS)的目的和作用是:
a) 定义软件总体要求,作为软件开发人员和用户之间交流的有效工具;
b) 提供整体框架的设计、性能需求、功能需求以及其它非功能需求的详细描述;
c) 该文档也是编写单元测试和系统测试的主要依据。
1.2 适用范围
1.3 参考资料
(1)GB/T 9385-2008,计算机软件需求规格说明规范[S].
(2)Leszek A. Maciaszek,Requirements Analysis and System Design,机械工业出版社,2009.
2 综合描述
2.1 系统目标
项目的最终目的是实现一个高校调查问卷管理系统。在该系统中,政府相关人员可以设计并发布问卷,并在高校师生填写调查问卷后,完成问卷的收集,并对问卷信息进行整理,将反馈信息提供给发布者查看,以便发布者获取高校教师和学生以及学校教学、管理等方面的具体情况,帮助政府相关人员了解各高校的教学与管理情况。其中对系统和系统相关人员的操作分析如下:
对于问卷发布者:
- 登录系统
- 保存所设计的问卷模板
- 导入模板问卷并进行编辑问题
- 设计并发布问卷
- 确定填写问卷者人员
- 规定问卷截止时间
对于问卷统计:
- 回收问卷,查看问卷整体填写情况
- 导出统计数据并分析数据
- 查看历史问卷
对于问卷填写者:
- 填写并提交问卷
- 需保证个人基本信息正确
- 在问卷截止时间内完成问卷填写
- 查看曾填写过的问卷
2.2 系统概述
该系统可用于高校师生用户去发布问卷调查,问卷分析,以及得到问卷分析反馈,
2.3 运行环境
(1)Web Application Servers
Web Application Server,即网页应用服务,理解起来相对简单一些。它们负责执行核心的业务逻辑,处理用户的请求,并返回HTML给用户浏览器。为了完成工作,它们通常需要访问多种后端服务,比如数据库、缓存、任务队列、搜索服务等。在Load Balancer中提到过了,Web Application Server通常有多个副本,它们从Load Balancer获取用户请求。Web Application Server需要使用特定的编程语言(Java, Node.js, Ruby, PHP, Scala, Java, C# .NET等) 和MVC框架(Node.js有Express, Ruby有Rails, Scala有Play, PHP有Laravel等)来实现。Fundebug后端语言用的是Node.js,框架用的是Express。
(2)Database
现代应用基本上都需要使用1个或者多个Dabase(数据库)来存储数据。利用数据库,我们可以方便地对数据进行各种处理,比如定义数据结构、插入数据、查找数据、更新数据、删除数据、对数据进行计算等。一般来说,Web Application Servers会直接访问数据库,Job Server也一样。另外,每一种后端服务都有可能会需要独立的数据库。
目前,业界最受欢迎的开源数据库技术有MySQL、MongoDB等。
(3)MySQL数据库
MySQL是一种关系型数据库管理系统,关系型数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
特点:
· 开源
· 支持大型的数据库
· 使用标准的SQL数据库语言形式
· 可以运行于多个系统上,并且支持多种语言
· 对PHP有很好的支持
· 可以定制
(4)B/S机制与C/S机制介绍
B/S结构即浏览器和服务器结构。它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但主要事务逻辑在服务端(server)实现,形成所谓三层3-tier结构。
C/S又称Client/Server或客户/服务器模式。服务器通常采用高性能的PC、工作站或小型机,并采用大型数据库系统,如Oracle、Sybase、Informix或SQL server。客户端需要安装专用的客户端软件。
(5)HTTP简介
HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(www:world wide web)服务器传输超文本到本地浏览器的传送协议。
HTTP是一个基于TCP/IP通信协议来传递数据(HTML文件,查询结果等)。
HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。目前www中使用的是HTTP/1.0的第六版,HTTP/1.1的规范化工作正在进行中,而且HTTP-NG(Next Generation of HTTP)的建议已经提出。
(6)Web中间件
中间件是一类连接软件组件和应用的计算机软件,它包括一组服务。以便运行在一台或多台服务器上的多个软件通过网络进行交互。该技术所提供的互操作性,推动了一致分布式体系架构的演进,该架构通常用于支持并简化那些复杂的分布式应用程序,它包括web服务器、事务监控器和消息队列软件。
中间件(middleware)是基础软件的一大类,属于可复用软件的范畴。顾名思义,中间件处于操作系统软件与用户的应用软件的中间。
2.4 程序结构说明
标题 |
内容 |
用例名称 |
注册 |
用例简要说明 |
用户注册 |
前置条件 |
用户未注册 |
事件流 |
|
后置条件 |
后台系统正确的收集到用户的信息并保存到数据库表中 |
扩展点 |
|
优先级 |
高 |
标题 |
内容 |
用例名称 |
登录 |
用例简要说明 |
用户登录 |
前置条件 |
账号已册 |
事件流 |
|
后置条件 |
后台系统正确的收集到用户的登录信息并保存到数据库表中 |
扩展点 |
1.账号密码不正确 2.登录失败,提示重新输入 |
优先级 |
高 |
标题 |
内容 |
用例名称 |
发布问卷 |
用例简要说明 |
问卷的发布 |
前置条件 |
用户已经登陆 |
事件流 |
|
|
|
后置条件 |
无 |
扩展点 |
预览问卷 |
优先级 |
高 |
标题 |
内容 |
用例名称 |
问卷结果分析 |
用例简要说明 |
对收集的问卷信息统计分析 |
前置条件 |
已发布问卷调查且收集到相关填写的问卷 |
事件流 |
1.点击“分析”按钮 2.查看统计结果 3.点击表格查看图形化结果 |
后置条件 |
访问历史问卷 |
扩展点 |
将收集的问卷信息保存到该用户个人信息账号上 |
优先级 |
高 |
标题 |
内容 |
用例名称 |
填写问卷 |
用例简要说明 |
高校师生填写问卷 |
前置条件 |
用户发布问卷调查 |
事件流 |
1.高校师生接受问卷调查 2.按照要求填写问卷 3.提交填写好的问卷 |
后置条件 |
填写个人基本信息正确 |
扩展点 |
提示问卷必要问题是否全部填写 |
优先级 |
高 |
3 系统详细设计
3.1 UI模块
3.1.1 模块职责与功能描述
职责:
1、向用户展示信息。
2、用于与系统的交互解释为指令。
功能描述:
UI其实是一个广义的概念
从字面上看由用户与界面两个部分组成,但实际上还包括用户与界面之间的交互关系。UI是指人与信息交互的媒介,它是信息产品的功能载体和典型特征。UI作为系统的可用形式而存在,比如以视觉为主体的界面,强调的是视觉元素的组织和呈现,UI是指信息的采集与反馈、输入与输出,这是基于界面而产生的人与产品之间的交互行为。在这一层面,用户交互,这是界面产生和存在的意义所在。人与非物质产品的交互更多依赖于程序的无形运作来实现,这种与界面匹配的内部运行机制,需要通过界面对功能的隐喻和引导来完成。UI的高级形态可以理解为User Invisible。对用户而言,在这一层面UI是“不可见的”,这并非是指视觉上的不可见,而是让用户在界面之下与系统自然地交互,沉浸在他们喜欢的内容和操作中,忘记了界面的存在(糟糕的设计则迫使用户注意界面,而非内容)
3.1.2 模块交互模型
模块交互模型图
3.1.3 模块设计类图
类名 |
User |
所属包 |
user |
|||||
继承 |
无 |
|||||||
实现 |
首界面的登录和注册功能的具体实现 |
|||||||
属性 |
||||||||
名称 |
类型 |
默认值 |
Pub/Prv/Pro |
|||||
number |
String |
0 |
Prv |
|||||
Password |
String |
0 |
Prv |
|||||
方法 |
||||||||
名称 |
参数 |
返回值 |
异常 |
描述 |
||||
账号验证 |
Number,password |
true/flase |
账号不存在/密码不正确 |
对用户输入的账号和密码进行验证,验证账号是否存在,若存在验证输入的密码是否正确。 |
||||
账号注册 |
无 |
true/flase |
账号已经存在/密码格式不正确 |
为新用户注册一个新的账号,用于登录系统。 |
||||
事件 |
||||||||
名称 |
条件 |
参数 |
目的 |
|||||
登陆 |
账号密码输入且正确 |
Number,password |
用户进入系统 |
|||||
注册 |
无账号 |
无 |
新用户注册账号 |
类名 |
System |
所属包 |
system |
|||||
继承 |
无 |
|||||||
实现 |
验证客户功能的具体实现 |
|||||||
属性 |
||||||||
名称 |
类型 |
默认值 |
Pub/Prv/Pro |
|||||
number |
String |
0 |
Prv |
|||||
Password |
String |
0 |
Prv |
|||||
方法 |
||||||||
名称 |
参数 |
返回值 |
异常 |
描述 |
||||
验证客户 |
Number,password |
true/flase |
账号不存在/密码不正确 |
对用户输入的账号和密码进行验证,验证账号是否存在,若存在验证输入的密码是否正确。 |
||||
事件 |
||||||||
名称 |
条件 |
参数 |
目的 |
|||||
发布问卷 |
账号是否登录 |
Number,password |
用户发布问卷 |
|||||
查看问卷 |
账号是否登录 |
无 |
用户查看问卷 |
类名 |
Database |
所属包 |
database |
|||||
继承 |
无 |
|||||||
实现 |
保存数据功能的具体实现 |
|||||||
属性 |
||||||||
名称 |
类型 |
默认值 |
Pub/Prv/Pro |
|||||
type |
String |
0 |
Prv |
|||||
option |
String |
0 |
Pub |
|||||
方法 |
||||||||
名称 |
参数 |
返回值 |
异常 |
描述 |
||||
保存数据 |
type option |
option |
问卷的填写格式不正确 |
对用户输入的选项和回答进行验证,验证选项存在,或者验证输入回答是否正确。 |
||||
事件 |
||||||||
名称 |
条件 |
参数 |
目的 |
|||||
数据存储 |
问卷的填写格式正确 |
option |
数据进行保存 |
类名 |
Teacher |
所属包 |
teacher |
|||||
继承 |
无 |
|||||||
实现 |
填写问卷具体实现 |
|||||||
属性 |
||||||||
名称 |
类型 |
默认值 |
Pub/Prv/Pro |
|||||
Id |
String |
0 |
Prv |
|||||
name |
String |
0 |
Prv |
|||||
方法 |
||||||||
名称 |
参数 |
返回值 |
异常 |
描述 |
||||
问卷完整度检验 |
无 |
true/flase |
问卷未填完整 |
提醒问卷填写者有选项未填写。 |
||||
事件 |
||||||||
名称 |
条件 |
参数 |
目的 |
|||||
问卷填写 |
填写完整了问卷信息 |
无 |
上传问卷信息 |
类名 |
Student |
所属包 |
student |
|||||
继承 |
无 |
|||||||
实现 |
填写问卷具体实现 |
|||||||
属性 |
||||||||
名称 |
类型 |
默认值 |
Pub/Prv/Pro |
|||||
id |
String |
0 |
Prv |
|||||
name |
String |
0 |
Prv |
|||||
方法 |
||||||||
名称 |
参数 |
返回值 |
异常 |
描述 |
||||
问卷完整度检验 |
无 |
true/flase |
问卷未填完整 |
提醒问卷填写者有选项未填写。 |
||||
事件 |
||||||||
名称 |
条件 |
参数 |
目的 |
|||||
问卷填写 |
填写完整了问卷信息 |
无 |
上传问卷信息 |
3.1.4 设计类说明
在对本系统数据库的具体设计过程中,所采用的是自底向上的设计方法,即自顶向下地进行需求分析,得到每一集体的应用需求,然后反过来根据每一子需求,采用自底向上法分步设计每一局部模型,综合各局部模型,逐层向上回到顶端,最终产生全局模型。
User主要是问卷的设计及发布者,以及能够得到问卷反馈的信息的人。
高校授课老师和学生是问卷的填写人员,在规定时间内完成问卷的填写并提交问卷。问卷系统是数据库的一个模型,主要区分问卷类型,问卷的发布者登录系统从而发布具体类型的问卷,而发布的问卷由师生填写完毕后反馈给User。
3.2 系统管理模块详细设计
3.2.1 系统管理模块职责与功能描述
职责:
1、负责数据处理
2、负责UI与数据库的交互
3、管理问卷调查系统的正常运行。
功能描述:
该模块是整个系统核心,它的关注点主要集中在业务规则的制定、业务流程的实现等与业务需求有关的系统设计
负责控制和协调外部计算机算机及其外部设备,保证计算机独立处理高校系统问卷,为了满足用户发布问卷的各种需求,帮助用户自己管理问卷系统并维护执行用户命令、数据分析等任务的资源。帮助用户提高工作质量和效率,可以帮助用户解决难题。从用户的角度看,它是用户与计算机硬件系统的接口;从资源管理的角度看,它是计算机系统资源的管理者。其主要作用及目的就是提高系统资源的利用率;提供友好的用户界面;创造良好的工作环境,从而使用户能够灵活、方便地使用计算机,使整个计算机系统能高效地运行。
3.2.2 模块交互模型
模块交互模型图
3.3 数据库模块
3.3.1 数据库模块职责与功能描述
职责:1、收集用户数据
2、处理高校问卷数据
3、为系统模块提供数据支持。
功能描述:
(1)数据库是一个实体,它是能够合理保管数据的“仓库”,用户在该“仓库”中存放要管理的事务数据,“数据”和“库”两个概念结合成为数据库。
(2)数据库是数据管理的新方法和技术,它能更合适的组织数据、更方便的维护数据、更严密的控制数据和更有效的利用数据。
数据库管理 系统(Database Management System)是一种操纵和管理数据库的大型软件,用于建立、使用和维护 数据库,简称 DBMS。它对 数据库进行统一的管理和 控制,以保证 数据库的安全性和完整性。用户通过 DBMS访问 数据库中的数据, 数据库管理员也通过 dbms进行数据库的维护工作。它可使多个 应用程序和用户用不同的方法在同时或不同时刻去建立,修改和询问 数据库。大部分 DBMS提供 数据定义语言DDL(Data Definition Language)和 数据操作语言 DML(Data Manipulation Language),供用户定义 数据库的模式结构与权限约束,实现对数据的追加、删除等操作。
数据库管理系统是数据库系统的核心,是管理数据库的软件。数据库管理系统就是实现把用户意义下抽象的逻辑数据处理,转换成为计算机中具体的物理数据处理的软件。有了数据库管理系统,用户就可以在抽象意义下处理数据,而不必顾及这些数据在计算机中的布局和物理位置。
3.3.2 数据库模块交互模型
数据库模块交互模型
更简单形象的理解,数据库和我们生活中存放杂物的储物间仓库性质一样,区别只是存放的东西不同,杂物间存放实体的物件,而数据库里存放的是数据。数据库是计算机应用系统中的一种专门管理数据资源的系统。数据有多种形式,如文字、数码、符号、图形、图像以及声音等。数据是所有计算机系统所要处理的对象。人们所熟知的一种处理办法是制作文件,即将处理过程编成程序文件,将所涉及的数据按程序要求组织成数据文件,用程序文件来调用。数据文件与程序文件保持着一定的对应关系。在计算机应用迅速发展的情况下,这种文件式方法便显出不足。比如,它使得数据通用性差,不便于移植,在不同文件中存储大量重复信息、浪费存储空间、更新不便等。数据库系统便能解决上述问题。数据库系统不从具体的应用程序出发,而是立足于数据本身的管理,它将所有数据保存在数据库中,进行科学的组织,并借助于数据库管理系统,以它为中介,与各种应用程序或应用系统接口,使之能方便地使用数据库中的数据。
这段说明介绍的确非常详细,不过你可能看得头晕眼花了,其实简单地说数据库就是一组经过计算机整理后的数据,存储在一个或多个文件中,而管理这个数据库的软件就称之为数据库管理系统。