.《数字化智能评估系统》需求说明书路璐2016/10/12一、目的编写详细设计说明书是软件开发过程必不可少的部分,其目的是为了使开发人员在完成概要设计说明书的基础上完成概要设计规定的各项模块的具体实现的设计工作。
二、软件总体设计1、软件需求概括本软件采用传统的软件开发生命周期的方法,采用自顶向下,逐步求精的结构化的软件设计方法。
本软件主要有以下几方面的功能:创建管理知识库;创建管理风评项目;项目评分与上传;评分结果汇总和导出;账号管理和权限控制。
定义本项目定义为一个风险评估软件。
它将实现知识库的创建、项目的评分和评分汇总整个风险评分流程的功能。
2、需求概述●基于MongoDB的数据的持久化存储;●知识库满足上传文件导入和后台直接编辑修改的需求;●权限职责划分清晰,用户管理完善;●汇总统计结果能进行评分筛选和项目筛选。
3、条件与限制系统开发的条件是普通PC以及相对应的系统,本次程序server端所用的系统是WINDOW SERVER2003。
Client端需要win7及以上的64位处理器的环境。
4 、技术架构服务端:本系统服务端基于node进行开发,使用express作为后端框架,使用MongoDB数据库进行数据的持久化存储。
Node.js 是一个基于Chrome V8引擎的JavaScript运行环境。
Node.js使用了一个事件驱动、非阻塞式I/O的模型,轻量而高效。
Express 是一个基于Node.js 平台的极简、灵活的开源后端开发框架。
有丰富的HTTP 快捷方法和任意排列组合的Connect 中间件,能快速构建简洁、健壮的API。
MongoDB是一个开源的基于分布式文件存储的数据库。
由C++ 语言编写。
是目前最流行的非关系型数据库。
拥有稳定、高效、可拓展等诸多特性。
客户端:本系统客户端采用React+ Flux架构,并使用Electron 打包为多平台桌面应用。
Electron是流行的跨平台应用开发平台,基于Node.js 和Chromium。
操作系统支持情况如下:●MacOS:10.9及以上,64位处理器;●Windows:win7及以上,32位及64位处理器;●Linux:ubuntu 12.04及以上;Fedora 21及以上;Debian 8及以上;●MacOS:10.9及以上,64位处理器;●Windows:win7及以上,32位及64位处理器;●Linux:ubuntu 12.04及以上;Fedora 21及以上;Debian 8及以上。
ReactReact是Facebook 推出的一个用来构建用户界面的JavaScript 库。
实现了单向响应的数据流以及组件化开发。
从而减少了重复代码。
Flux是facebook推出的应用程序架构库。
适用于复杂应用的开发。
5、模块功能逻辑关系系统详细的模块信息所示:本系统采用C/S架构。
客户端(client)由知识库编辑模块、专家评分模块、账号管理模块和汇总统计模块组成;服务端(server)由业务模块、数据库模块组成。
6、设计和描述本软件的主要功能是依据知识库实现项目评分和结果的汇总导出。
三、软件功能描述1、登陆功能流程描述使用本软件需要首先进行登陆操作,输入项为用户名和密码,账号信息的验证在后端进行,将验证结果返回客户端后,客户端执行相应操作。
在本系统中,用户名可以看做是唯一标识,不同用户之间的用户名不可重复。
但是在客户端与后台进行交互通信时,使用的是用户账号的uid来进行的。
2、账号管理功能流程描述本软件账号系统为封闭性,只能通过管理员操作进行用户管理。
在用户管理界面,管理员可以进行用户的创建、修改和删除操作。
在用户执行修改操作时,即使对用户名进行了修改,该用户与其评分的关联仍然存在(如果该用户为专家用户)。
删除用户后并不会删除该用户提交过的评分数据。
3、知识库创建操作本软件中知识库的创建时非常重要的工作,知识库是所有功能和操作的基础。
在知识库管理界面可以点击创建按钮建立新的知识库,知识库的指标数据可通过规定格式的csv 文件上传导入,也可以手动编写。
需保证所有指标的权重之和为100才能通过数据验证并在server端保存。
此外还需要填写等级描述和元信息。
点击知识库列表项即可进入知识库修改的界面,进行修改后不会保存为新的知识库记录而是覆盖原有的知识库记录。
4、风险评分项目创建操作流程评分项目的创建在项目管理界面进行,项目名为必填项,密码为选填项,项目名并不是唯一标识。
项目在删除之后,不会影响该项目收到的评分,但是会同时删除该项目之前获得评分的统计结果。
5、项目配置在创建完项目后还需要进行项目配置工作。
首先要选择唯一的知识库与项目相关联,知识库与项目的关联是一对多的关联,即可能多个项目公用一个知识库。
此外还需要上传定量指标的预处理得分,上传完后点击开启评分的开关按钮即完成项目配置工作。
6、项目评分操作流程在创建好项目后专家即可对项目开始评分。
在进入评分界面时,如果项目设有密码需要对项目密码进行验证操作,在对项目评分时,只有填写完所有的评分项才能进行提交或者对结果进行汇总查看。
专家可以在评分结束后直接上传评分结果,也可以在汇总统计界面确认统计结果后再提交结果。
7、项目评分汇总查看操作流程在收到专家评分后,管理员和项目管理可在项目界面对项目评分的所有结果进行汇总查看,同时可以筛选专家评分和项目对统计结果进行筛选修改。
筛选专家能修改本次评分分数,筛选项目能对排行榜和图表的结果产生影响。
四、接口设计1、人机接口本系统的人机接口即用web制作的人机交互界面。
在封装打包成可执行应用程序之后,用户能够在pc端打开运行。
因为web的交互友好性,用户能够方便的通过鼠标键盘进行操作。
此外本程序对原生点击和滑动事件进行了优化,对弹出层和提示层等UI组件进行了优化。
在UI 和布局上使用了Material设计,以React为视图层框架进行开发。
2、部接口本程序客户端与后台之间通过RESTFUL API进行通信,完成数据存储和调用。
主要api接口如下:3、安全与稳定出错输出信息本程序在运行出错时会通过弹出框的方式对用户进行提醒,同时记录日志,后台程序运行故障时会自动重启。
最大可能保证程序的稳定性。
程序视图层有错误提示交互组件,配个后台api返回信息进行错误提醒。
安全性:本应用从防止SQL注入、XSS、CSRF三个方面来保证应用安全性。
SQL注入SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语法里的一些组合,通过执行SQL语句进而执行攻击者所要的操作,其主要原因是程序没有细致地过滤用户输入的数据,致使非法数据侵入系统。
根据相关技术原理,SQL注入可以分为平台层注入和代码层注入。
前者由不安全的数据库配置或数据库平台的漏洞所致;后者主要是由于程序员对输入未进行细致地过滤,从而执行了非法的数据查询。
基于此,SQL注入的产生原因通常表现在以下几方面:●不当的类型处理;●不安全的数据库配置;●不合理的查询集处理;●不当的错误处理;●转义字符处理不合适;●多个提交处理不当。
本程序采取的措施如下:●对用户的输入进行校验,通过正则表达式,限制长度,对单引号和双”-"进行转换等,防止在输入环节嵌入恶意代码。
●不使用动态拼装sql,本次采用参数化的sql进行数据查询存取。
●不使用管理员权限的数据库连接,为每个应用使用单独的权限有限的数据库连接。
●不直接存放机密信息,对关键信息进行加密,hash掉密码和敏感的信息。
●应用的异常信息应该给出简短提示,对错误信息进行了自定义封装。
●检查Referer字段HTTP头中有一个Referer字段,这个字段用以标明请求来源于哪个地址。
在处理敏感数据请求时,通常来说,Refere字段应和请求的地址位于同一域名下。
●添加校验token 由于CSRF的本质在于攻击者欺骗用户去访问自己设置的地址。
可维护性:本应用以下面几个方面来控制代码的可维护性。
可理解性:其他人可以接手代码并理解它的意图,无需原开发人员花太多时间解释。
可读性性:代码中可以让人快速上手,尽管其操作过程复杂。
可适应性:代码以一种数据上的变化不要求完全重写方法。
可扩展性:在代码架构上可对核心功能的扩展。
可调式性:出错时,代码可以给你足够的信息来直接确定问题所在。
函数和方法:描述其目的和参数代表,返回值等。
Hack :因各浏览器的差异,javascript的hack用于解决的问题进行描述。
变量和函数的命名变量名以名词开始:如car,person函数名以动词开始:如getName(),返回布尔类型值的函数一般以is开头,如: isEnable();此外,本程序在开发过程中保持松散耦合原则:●解耦HTML/JavaScript 在web应用中,html专注于展示数据,css专注于样式,javascript专注于行为交互;●解耦CSS/Javascript在现代web应用中常常需要javascript来更改样式,我们采用修改CSS类名的方式来控制样式的改变;解耦应用逻辑和事件处理程序。
五、系统说明硬件环境:CPUP3 800 MHz 以上,建议P4 1.8GHz存256 MB以上,建议512MB显卡标准VGA,24位真彩色其它键盘、鼠标、网卡、能连通互联网。
软件环境:Windows2000及以上;编程语言:开发:nodejs 和javascript;打包编译:electron;源程序量:8000行。
主要功能和技术特点:行业风险动态评估系统是针对行业的风险而开发的一款动态评估软件,是国首个智能风评系统,主要服务于多个行业的量化风险评估、风险点跟踪监测、执行方案决策。
1、模块说明本系统主要由四个功能模块组成:专家评分模块,知识库管理模块,项目管理模块,用户管理模块。
专家评分模块主要功能是进行项目评分,专家在选择一个待评项目进入后通过勾选选项的方式对该项目的定性指标进行评分,评分结束后可以查看汇总结果和进行提交。
知识库管理模块负责知识库的创建、修改和删除。
知识库创建的时候可以上传CSV文件导入知识库;已保存知识库在进行修改时会覆盖原有的知识库。
项目管理模块负责项目的创建、删除以及项目评分流程的控制。
项目创建的时可以选设密码;项目创建后需要选择知识库和上传定量指标结果,并勾选开启评分,之后专家方可对该项目进行评分和提交操作。
再汇总统计中对结果进行保存之后方可开启下一轮平分。
用户管理模块负责用户账号的创建和修改删除。
该系统为封闭系统。
账号完全由管理员后台创建。
在账号创建后可以对其用户名、权限和密码进行修改。
2、权限说明本系统登陆账号有三种权限角色:管理员、项目管理和专家。
管理员在本系统中没有功能限制,能够访问所有的功能模块。