剖析 SSM 校园一卡通密钥管理系统 PF 技术架构中安全机制的深度融合

第4章 系统设计

市面上设计比较好的系统都有一个共同特征,就是主题鲜明突出。通过对页面简洁清晰的布局,让页面的内容,包括文字语言,或者视频图片等元素可以清晰表达出系统的主题。让来访用户无需花费过多精力和时间找寻需要的内容。

4.1界面设计原则

一般来说,大部分用户使用系统,有些是想从系统中获取需要的信息,有些则是使用系统提供的服务。所以,为了改善用户体验,提高系统的使用率,在对系统界面设计时,需要按照下面的原则进行。

第一点,对用户进行分析,了解用户使用系统的目的,以及使用系统的方式,考虑大部分用户的阅读习惯,设计Z字形或F型结构可以方便用户获取信息。

第二点:设计有效的导航,这个包括每个页面上都有导航条的显示,有时也可以在页面的底部设计导航条,当用户进入具体页面时,要设计相应的位置提示,在页面中比较特殊的位置,需要设计返回链接,可以返回上个页面,也可以返回首页等。

第三点:对整个系统要运用统一的设计方案,包括色彩方案的一致性,页面模板的相似性等,对相同操作和专业术语的描述在整个系统中也应该保持一致。

第四点:设计的界面要保证传达的内容清晰准确。要避免在同一个页面设计非常多的内容,另外可以准确对系统内容进行分类,把页面中用户视觉集中的位置,用来显示重要信息。

作为初学者,并没有那么多的设计经验,但是可以运用上面提到的界面设计原则设计出比较好的系统,可以让用户产生良好的使用体验。

4.2功能结构设计

为了让系统的编码可以顺利进行,特意对本系统功能进行细分设计,设计的系统功能结构见下图。

图4.1 系统功能结构图

4.3数据库设计

一般来说,对用户进行调查,了解其需求,主要还是完成功能上的分析设计,殊不知,设计功能时,也要展示对数据库的设计。数据库服务于程序,它可以按照设定的规则对程序的数据进行保存,因此,也可以说数据库就是程序相关数据的集合。为了保证程序的高质量,数据库提供的数据存储服务也需要快速响应,同时数据信息也要安全合法可靠,所以设计一个数据库这样的任务也需要高度重视,并花时间和精力去努力完成。毕竟这影响到后期程序的开发和使用。试想而知,假设设计一个不好的数据库,遇到的问题将会有:第一,面对信息处理,会有着繁琐的业务逻辑,延长事务处理时间。第二:程序编码期间,将会产生更多的代码去完成数据处理的功能,产生大量的数据冗余,而且也不方便注释代码,还会占用更多的存储空间。综上所述,设计出合理的数据库是多么的重要。

(1)下图是学生实体和其具备的属性。

学生实体属性图

(2)下图是日志信息实体和其具备的属性。

日志信息实体属性图

(3)下图是密钥实体和其具备的属性。

密钥实体属性图

(4)下图是公告信息实体和其具备的属性。

公告信息实体属性图

(5)下图是工作人员实体和其具备的属性。

工作人员实体属性图

(6)下图是密钥发放实体和其具备的属性。

密钥发放实体属性图

4.3.2 数据库物理设计

作为程序后台的支持,本数据库也需要设计数据存储的结构。而数据存储结构的设计就包括了数据表结构的设计和创建。数据表结构包括了字段,数据类型,还有字段的取值范围等信息。而E-R模型中的实体就是一张表,实体的特征就可以作为该表中的字段,根据本程序信息存储要求,设计每个字段需要的类型,还有该字段的取值范围等。每当设计完成一张数据表,就需要及时保存在数据库里面,并对该设计的数据表准确命名,要求设置的数据表的名称尽量不要是中文,而且要方便记忆。因为在程序编码阶段,通过SQL语句可以把程序里面的数据写入在各个数据表里面,而这个环节需要使用到数据表的名称。如果数据表名称是中文的话,可能会乱码并影响程序运行。下面就以表格形式展示设计的结果。

表4.1字典表

序号 列名 数据类型 说明 允许空

1 Id Int id 否

2 dic_code String 字段 是

3 dic_name String 字段名 是

4 code_index Integer 编码 是

5 index_name String 编码名字 是

6 super_id Integer 父字段id 是

7 beizhu String 备注 是

8 create_time Date 创建时间 是

表4.2密钥表

序号 列名 数据类型 说明 允许空

1 Id Int id 否

2 miyao_uuid_number String 密钥编号 是

3 miyao_name String 密钥名称 是

4 miyao_types Integer 密钥类型 是

5 yonghu_id Integer 员工 是

6 miyao_content String 密钥介绍 是

7 miyao_yesno_types Integer 密钥审核 是

8 miyao_yesno_text String 审核结果 是

9 insert_time Date 录入时间 是

10 create_time Date 创建时间 是

表4.3密钥发放表

序号 列名 数据类型 说明 允许空

1 Id Int id 否

2 miyao_id Integer 密钥 是

3 xuesheng_id Integer 学生 是

4 miyaofafan_time Date 密钥有效期 是

5 miyaofafang_types Integer 访问权限 是

6 insert_time Date 分配时间 是

7 create_time Date 创建时间 是

表4.4日志信息表

序号 列名 数据类型 说明 允许空

1 Id Int id 否

2 miyaorizhi_name String 日志标题 是

3 miyaorizhi_types Integer 日志类型 是

4 miyaofafang_id Integer 密钥 是

5 yonghu_id Integer 员工 是

6 insert_time Date 添加时间 是

7 miyaorizhi_content String 日志详情 是

8 create_time Date 创建时间 是

表4.5公告信息表

序号 列名 数据类型 说明 允许空

1 Id Int id 否

2 news_name String 公告标题 是

3 news_types Integer 公告类型 是

4 news_photo String 公告图片 是

5 insert_time Date 添加时间 是

6 news_content String 公告详情 是

7 create_time Date 创建时间 是

表4.6学生表

序号 列名 数据类型 说明 允许空

1 Id Int id 否

2 xuesheng_name String 学生姓名 是

3 xuesheng_photo String 学生头像 是

4 xuesheng_id_number String 身份证号 是

5 xuesheng_phone String 联系方式 是

6 xuesheng_email String 电子邮箱 是

7 xuexiao_types Integer 学校 是

8 xueyuan_types Integer 学院 是

9 zhuanye_types Integer 专业 是

10 xuesheng_delete Integer 逻辑删除 是

11 create_time Date 创建时间 是

表4.7工作人员表

序号 列名 数据类型 说明 允许空

1 Id Int id 否

2 yonghu_name String 工作人员姓名 是

3 yonghu_photo String 工作人员头像 是

4 yonghu_id_number String 身份证号 是

5 yonghu_phone String 联系方式 是

6 yonghu_email String 电子邮箱 是

7 yonghu_delete Integer 逻辑删除 是

8 create_time Date 创建时间 是

表4.8管理员表

序号 列名 数据类型 说明 允许空

1 Id Int id 否

2 username String 用户名 是

3 password String 密码 是

4 role String 角色 是

5 addtime Date 新增时间 是

第6章 系统测试

尽管系统在编码过程中,程序的编制人员也会对编程的功能模块进行逐个测试,但还是避免不了已经组合完成的系统整体没有错误。很多时候,面对功能繁多,逻辑复杂的系统时,系统的测试就需要不同人来测试,并设计一些故障来检验系统的应对能力,以及发现很多系统内部的潜在问题。并通过寻求解决办法去完善系统,确保系统质量。

6.1 系统测试方法

根据系统的测试流程,划分的系统测试方法有单元测试,集成测试,系统测试,验收测试。接下来就开始描述这些内容。

单元测试:这个测试环节在编码中用得最多,主要是编程人员进行的,通常对编码实现的各个子模块当成一个单元完成测试,主要基于代码的层面去发现问题,所以它也是白盒测试中的一种。

集成测试:这个环节进行的前提是,已经把系统的各个子模块进行了组合,然后把组合的完整系统进行测试,检验组成目标系统的各个子模块是否具备兼容性,还有目标系统是否根据预期目标正常运行。

系统测试:这个环节用到了黑盒测试,主要是检验系统的功能。并确定目标系统的各个功能是否运行正常。

验收测试:这个环节需要用户参与,让用户在系统操作界面上通过对不同数据的输入,检测系统的输出结果,以此检验目标系统与用户需求之间存在的差异程度。存在的差异越小,就代表着越符合用户的期望。

6.2 功能测试

校园一卡通密钥管理系统的目标用户最终面向的是系统的功能,所以检验本系统的功能也是一项重要任务,只有该系统的功能都能保证正常使用,才会吸引更多的用户来使用。

6.2.1 登录功能测试

本系统在编码时,提前在登录模块编写了安全验证规则,通过判断访问者提供的数据,引导符合要求的用户进入指定页面。测试表如下。错误的数据输入,在本系统中会得到及时的反馈提示。

表6.1 登录功能测试表

功能 录入的数据 预期结果 实际结果 结论

管理员登录 用户名:空

密码:空 提示请填写用户名 提示请填写用户名 通过测试

管理员登录 用户名:guanliyuan

密码:空 提示请填写密码 提示请填写密码 通过测试

管理员登录 用户名:guanliyuan

密码:gly 提示用户名密码不匹配 提示用户名密码不匹配 通过测试

管理员登录 用户名:guanliyuan

密码:guanliyuan 提示登录成功,并跳转到功能操作区 提示登录成功,并跳转到功能操作区 通过测试

6.3 测试结果分析

通过测试,可以发现校园一卡通密钥管理系统具备完善的功能,同时具备易操作性和易维护性的特点,在系统安全性上也有比较健全的数据保护机制。至此,校园一卡通密钥管理系统可以投入使用。

相关推荐
靠近彗星1 分钟前
如何检查 HBase Master 是否已完成初始化?| 详细排查指南
大数据·数据库·分布式·hbase
嘵奇2 分钟前
深入解析 Spring Boot 测试核心注解
java·spring boot·后端
癞皮狗不赖皮6 分钟前
Java安全基础-反射机制
java·反射机制·java安全基础
郑梓妍9 分钟前
ubuntu改用户权限
服务器·网络·数据库
别惊鹊12 分钟前
(三)安装和使用Maven
java·maven
w236173460118 分钟前
存储型XSS漏洞解析
数据库·oracle·xss·存储型xss
兢兢业业的小白鼠26 分钟前
Java高级JVM知识点记录,内存结构,垃圾回收,类文件结构,类加载器
java·开发语言·jvm·tomcat
落榜程序员1 小时前
Java 基础-29-final关键字-详解
java·开发语言
SelectDB1 小时前
Apache Doris 2025 Roadmap:构建 GenAI 时代实时高效统一的数据底座
大数据·数据库·aigc
用户3315489111071 小时前
【零停机】一次400万用户数据的双写迁移技术详解
java·面试