3 系统分析
3.1系统可行性分析
需要使用大部分精力开发的面向智慧教育的实习实践系统为了充分降低开发风险,特意在开发之前进行可行性分析这个验证系统开发是否可行的步骤。本文就会从技术角度,经济角度,还有用户使用的程序的运行角度进行综合阐述。
3.1.1 技术可行性分析
开发程序选择的是面向对象的,功能强大的,简单易用的Java程序设计语言,数据库的开发工具使用到了Mysql数据库,由于自己之前接触过一些简单的程序开发方面的设计作品,所以对Myeclipse工具的使用比较熟练,对于数据库的操作技巧也有一定的积累。另外,程序开发需要在自己电脑上安装的软件并不多,在win7操作系统的大环境下,能够完全搭建好程序开发的操作环境,比如Myeclipse工具,Mysql数据库工具,游览器,以及处理程序图片的Photoshop工具等都能安装在自己的电脑上。总的说来,开发这个程序在技术上是可以实现的。
3.1.2 经济可行性分析
开发出来的程序并不是朝着商业程序的方向进行设计开发的,它只是作为一个毕业设计项目进行开发,主要用于检验学生在学校所学知识的一个检验,也锻炼学生运用网络,图书等工具进行自学的能力。所以开发这个程序软件并不会涉及到经济上面的开销,在开发软件的选择上也不会额外付费安装软件,在开发软件的官网上面就可以下载需要的软件,并根据提示的安装步骤安装软件到自己的电脑上面。总的说来,开发这个程序在经济上也不存在经费支出。
3.1.3 运行可行性分析
因为这个程序软件从开始开发到开发截止都是根据用户的需求进行定制,考虑到此程序软件是面向广大普通操作用户,鉴于他们的知识文化水平,特意开发出一个可操作性强的,能够很容易让使用用户上手的,具有可视化操作界面的一个程序软件。总的说来,这个程序站在用户运行程序的角度上分析,是不存在操作难的问题的。用户只要打开程序就可以免去专人培训进行程序功能操作。
经过上面从技术的角度,从经济的角度,从程序运行的角度这三个角度分析现打算开发的程序,可以得出该程序软件是可以进行开发操作的。
3.2系统性能分析
3.2.1 系统安全性
程序在使用中是不允许其他访问者随意窃取程序里面的隐秘信息,也不允许其他操作者越权操作其他管理用户操作的功能,要真正杜绝这些现象就必须在程序开发之前把程序的安全性给考虑进去。
比如现在很多程序都会把用户注册的功能给考虑进去,让用户在注册页面功能区填写自己的个人信息,这些数据信息涵盖了用户本人的姓名,用户对程序登录设置的密码,用户经常使用的邮箱,用户的常用联系方式还有用户的所住地址等信息,这些信息都是设计到用户本人的隐私,那么这些信息在传输给程序后台时,是需要进行管理并保存至对应的数据库文件里面。要是有人恶意窃取程序的数据信息,也就会让那些注册了此程序软件的用户的个人隐秘信息都会遭到泄露。这些信息落入其他不法分子手里,他们极有可能根据用户的隐私信息去骚扰用户,并把这些信息用于各种商业用途谋取其他非法的利益。所以数据安全性是一个系统能不能使用的首要标准。
3.2.2 数据完整性
数据完整性是确保数据信息是否具有可靠性,是否具有参考价值的一个重要因素,数据信息只描述一部分,或者必有的数据信息反而为空等现象都是代表着这个数据信息不完整,有数据缺陷,这是个很严肃的问题,因为这样的数据信息跟垃圾信息没什么两样。
说到数据完整性,不得不提最常用的程序表单功能。这些表单主要就是提取广大用户的数据信息的,需要广大用户根据表单上的要求,填写自己的姓名信息,以及自己的联系方式信息,有些也会有额外的信息填写要求,有必须要填的选项,也有不需要必填的选项。假如广大用户为了保护自己的隐私,或者不想受到其他人的骚扰,不填写必填项等信息,广大用户在最后提交此表单的时候,往往都是提交不了的。
数据完整性不仅仅限于登记的数据要完整,它也需要程序里面的所有数据信息之间存在关联,而且这种联系也是要求不能出差错的。
由于数据表之间也会存在一定的联系,所以同一个数据也会出现在另一个表格里面,那么这两个表格记录的同一个数据应该是一样的。不能够是同样的数据信息在不同表中不一样。
3.2.3系统可扩展性
一切事物都是一直在发展,程序员开发软件也需要带着发展的思维去进行软件开发操作,这样的话,开发出来的程序在应对管理所需时,也会相对应的进行程序升级与更新。不论是功能完善还是数据库升级都能在原来的基础上对原有程序进行迭代升级。让开发出来的程序能够走得越来越远。这也是广大用户对程序软件的使用要求。
3.3系统流程分析
管理员假如要操作系统提供的功能,那么管理员就要在系统的登录界面,填写管理员登录的账号信息,填写相应的密码信息,管理员需要保证这两者能够验证身份的账号以及密码信息的正确性,这样管理员就可以通过登录界面进入系统后台操作界面。图3.1就是开发的程序软件面向智慧教育的实习实践系统它的操作流程图。
图3.1 系统操作流程图
3.3.1系统登录流程
面向智慧教育的实习实践系统的登录流程,针对的角色就是操作员的操作角色。在登录界面需要的必填信息就是账号信息,配上登录的密码信息就能登录面向智慧教育的实习实践系统,需要注意的就是必填的账号信息和登录密码信息,都需要进行验证,系统会判断账号还有填写的密码信息的正确性,只有这两者信息都正确了,就能成功登录面向智慧教育的实习实践系统了。系统登录流程图如下图。
图3.2 系统登录流程图
3.3.2信息添加流程
用户在添加信息的界面填写的任何数据信息也是需要验证的,系统会判断用户填写信息的格式还有数据信息是不是合法信息,如果用户填写的信息是合法内容,系统就会在数据库对应的数据表里面添加信息。添加信息流程如下图。
图3.3 添加信息流程图
3.3.3信息删除流程
对于那些已经失效的信息,需要用户及时进行删除,这样有利于腾出空间存放其他信息。删除信息也是先从数据库对应数据表里面删除数据,接着就是更新数据表的信息。这样删除的数据,在用户操作界面就查看不到了。信息删除流程如下图所示。
图3.4 信息删除流程图
3.4系统功能分析
面向智慧教育的实习实践系统具有管理员角色,用户角色,这几个操作权限。
面向智慧教育的实习实践系统针对管理员设置的功能有:添加并管理各种类型信息,管理用户账户信息,管理实践任务信息,管理公告信息等内容。
面向智慧教育的实习实践系统针对用户设置的功能有:查看并修改个人信息,查看实践任务信息,查看公告信息等内容。
4 系统设计
4.1系统概要设计
面向智慧教育的实习实践系统并没有使用C/S结构,而是基于网络浏览器的方式去访问服务器,进而获取需要的数据信息,这种依靠浏览器进行数据访问的模式就是现在用得比较广泛的适用于广域网并且没有网速限制要求的小程序结构,图4.1就是开发出来的程序工作原理图。
图4.1 程序工作的原理图
4.2系统功能结构设计
面向智慧教育的实习实践系统针对管理员设置的功能有:添加并管理各种类型信息,管理用户账户信息,管理实践任务信息,管理公告信息等内容。
面向智慧教育的实习实践系统针对用户设置的功能有:查看并修改个人信息,查看实践任务信息,查看公告信息等内容。
4.3数据库设计
4.3.1数据库E-R图设计
程序设计是离不开对应数据库的设计操作的,这样的做法就是减少数据对程序的依赖性,所以数据库的设计也是需要花费大量的日常时间来进行设计的,在设计中对程序开发需要存储的数据信息进行实体划分,先确认实体,然后设计实体的属性等操作,这种设计就是数据库设计里面不能少的必须有的E-R模型设计。为了降低程序设计的对应的数据库设计难度,开发人员也可以使用相应的工具来进行E-R模型设计,现在市面上设计E-R模型的工具有PowerDesigner建模工具,Navicat制作工具,还有微软的Visio绘图工具。为了简便起见,本程序在设计E-R模型的时候,就选用了微软的Visio这款功能强大,操作便利的绘图工具。
(1)下图是企业实体和其具备的属性。
企业实体属性图
(2)下图是用户实体和其具备的属性。
用户实体属性图
(3)下图是公告实体和其具备的属性。
公告实体属性图
(4)下图是任务交流实体和其具备的属性。
任务交流实体属性图
(5)下图是任务收藏实体和其具备的属性。
任务收藏实体属性图
(6)下图是任务留言实体和其具备的属性。
任务留言实体属性图
(7)下图是任务订单实体和其具备的属性。
任务订单实体属性图
(8)下图是菜单实体和其具备的属性。
菜单实体属性图
(9)下图是任务实体和其具备的属性。
任务实体属性图
4.3.2 数据库表结构设计
本次程序开发选用的数据库管理工具是Mysql数据管理工具,使用它存放数据也需要创建程序对应的数据库文件,并命名刚创建的数据库文件,有了数据库也需要创建各种数据表来充实数据库,在数据表的创建中,不仅需要对数据表命名,也需要对数据表的字段进行设计,包括每个数据表里面需要设置的字段名称,字段对应的数据类型信息,字段的主键设置这个也是不可缺少的,因为每个数据表里面的主键就是标记着这个数据表跟其他数据表相区分的唯一标志。就相当于生活中的每个人都有姓名,但是上网搜索自己的名字,会发现全国上下有很多人的名字跟自己的名字一模一样,包括姓氏以及名字,区分每个人的唯一信息就是每个人的身份证号信息,主键在数据表里面也是起着这样的重要作用。下面就介绍本次开发的程序面向智慧教育的实习实践系统的数据表结构信息。
表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 | gonggao_name | String | 公告名称 | 是 |
3 | gonggao_photo | String | 公告图片 | 是 |
4 | gonggao_types | Integer | 公告类型 | 是 |
5 | insert_time | Date | 公告发布时间 | 是 |
6 | gonggao_content | String | 公告详情 | 是 |
7 | create_time | Date | 创建时间 | 是 |
表4.3菜单表
序号 | 列名 | 数据类型 | 说明 | 允许空 |
---|---|---|---|---|
1 | Id | Int | id | 否 |
2 | role_zh_name | String | 角色汉字 | 是 |
3 | role_en_name | String | 角色表名 | 是 |
4 | direction | String | 使用方向 | 是 |
5 | yiji_menu_name | String | 一级菜单名称 | 是 |
6 | yiji_menu_icon | String | 一级菜单图标 | 是 |
7 | erji_menu | String | 二级菜单 | 是 |
8 | beizhu | String | 备注 | 是 |
9 | insert_time | Date | 添加时间 | 是 |
10 | update_time | Date | 更新时间 | 是 |
11 | create_time | Date | 创建时间 | 是 |
表4.4企业表
序号 | 列名 | 数据类型 | 说明 | 允许空 |
---|---|---|---|---|
1 | Id | Int | id | 否 |
2 | qiye_name | String | 企业名称 | 是 |
3 | qiye_lianxiren | String | 企业联系人 | 是 |
4 | qiye_phone | String | 企业联系方式 | 是 |
5 | qiye_photo | String | 企业logo | 是 |
6 | qiye_address | String | 企业位置 | 是 |
7 | qiye_email | String | 企业邮箱 | 是 |
8 | hangye_types | Integer | 行业 | 是 |
9 | create_time | Date | 创建时间 | 是 |
表4.5任务表
序号 | 列名 | 数据类型 | 说明 | 允许空 |
---|---|---|---|---|
1 | Id | Int | id | 否 |
2 | qiye_id | Integer | 企业 | 是 |
3 | shijianrenshu_name | String | 任务题目 | 是 |
4 | shijianrenshu_uuid_number | String | 任务编号 | 是 |
5 | shijianrenshu_photo | String | 任务照片 | 是 |
6 | shijianrenshu_types | Integer | 任务类型 | 是 |
7 | shijianrenshu_clicknum | Integer | 任务热度 | 是 |
8 | shijianrenshu_text | String | 任务要求 | 是 |
9 | shijianrenshu_content | String | 任务内容 | 是 |
10 | renwuzhuangtai_types | Integer | 任务状态 | 是 |
11 | shangxia_types | Integer | 是否上架 | 是 |
12 | insert_time | Date | 发布时间 | 是 |
13 | create_time | Date | 创建时间 | 是 |
表4.6任务交流表
序号 | 列名 | 数据类型 | 说明 | 允许空 |
---|---|---|---|---|
1 | Id | Int | id | 否 |
2 | yonghu_id | Integer | 提问人 | 是 |
3 | qiye_id | Integer | 回答人 | 是 |
4 | shijianrenshu_chat_issue_text | String | 问题 | 是 |
5 | issue_time | Date | 问题时间 | 是 |
6 | shijianrenshu_chat_reply_text | String | 回复 | 是 |
7 | reply_time | Date | 回复时间 | 是 |
8 | zhuangtai_types | Integer | 状态 | 是 |
9 | shijianrenshu_chat_types | Integer | 数据类型 | 是 |
10 | insert_time | Date | 提问时间 | 是 |
11 | create_time | Date | 创建时间 | 是 |
表4.7任务收藏表
序号 | 列名 | 数据类型 | 说明 | 允许空 |
---|---|---|---|---|
1 | Id | Int | id | 否 |
2 | shijianrenshu_id | Integer | 任务 | 是 |
3 | yonghu_id | Integer | 用户 | 是 |
4 | shijianrenshu_collection_types | Integer | 类型 | 是 |
5 | insert_time | Date | 收藏时间 | 是 |
6 | create_time | Date | 创建时间 | 是 |
表4.8任务留言表
序号 | 列名 | 数据类型 | 说明 | 允许空 |
---|---|---|---|---|
1 | Id | Int | id | 否 |
2 | shijianrenshu_id | Integer | 任务 | 是 |
3 | yonghu_id | Integer | 用户 | 是 |
4 | shijianrenshu_liuyan_text | String | 留言内容 | 是 |
5 | insert_time | Date | 留言时间 | 是 |
6 | reply_text | String | 回复内容 | 是 |
7 | update_time | Date | 回复时间 | 是 |
8 | create_time | Date | 创建时间 | 是 |
表4.9任务订单表
序号 | 列名 | 数据类型 | 说明 | 允许空 |
---|---|---|---|---|
1 | Id | Int | id | 否 |
2 | shijianrenshu_order_uuid_number | String | 订单号 | 是 |
3 | shijianrenshu_id | Integer | 任务 | 是 |
4 | yonghu_id | Integer | 用户 | 是 |
5 | shijianrenshu_order_types | Integer | 状态类型 | 是 |
6 | insert_time | Date | 申请接单时间 | 是 |
7 | shijianrenshu_order_file | String | 成果文件 | 是 |
8 | shijianrenshu_order_yesno_types | Integer | 审核状态 | 是 |
9 | shijianrenshu_order_yesno_text | String | 审核回复 | 是 |
10 | shijianrenshu_order_shenhe_time | Date | 审核时间 | 是 |
11 | create_time | Date | 创建时间 | 是 |
表4.10用户表
序号 | 列名 | 数据类型 | 说明 | 允许空 |
---|---|---|---|---|
1 | Id | Int | id | 否 |
2 | yonghu_name | String | 用户姓名 | 是 |
3 | yonghu_phone | String | 用户手机号 | 是 |
4 | yonghu_id_number | String | 用户身份证号 | 是 |
5 | yonghu_photo | String | 用户头像 | 是 |
6 | yonghu_email | String | 电子邮箱 | 是 |
7 | create_time | Date | 创建时间 | 是 |
表4.11管理员表
序号 | 列名 | 数据类型 | 说明 | 允许空 |
---|---|---|---|---|
1 | Id | Int | id | 否 |
2 | username | String | 学生名 | 是 |
3 | password | String | 密码 | 是 |
4 | role | String | 角色 | 是 |
5 | addtime | Date | 新增时间 | 是 |
5 系统实现
5.1管理员功能介绍
5.1.1管理员登录
系统登录功能是程序必不可少的功能,在登录页面必填的数据有两项,一项就是账号,另一项数据就是密码,当管理员正确填写并提交这二者数据之后,管理员就可以进入系统后台功能操作区。下图就是管理员登录页面。
图5.1 管理员登录页面
5.1.2 实践任务管理
项目管理页面提供的功能操作有:查看实践任务,删除实践任务操作,新增实践任务操作,修改实践任务操作。下图就是实践任务管理页面。
图5.2 实践任务管理页面
5.1.3 公告信息管理
公告信息管理页面提供的功能操作有:新增公告,修改公告,删除公告操作。下图就是公告信息管理页面。
图5.3 公告信息管理页面
5.1.4公告类型管理
公告类型管理页面显示所有公告类型,在此页面既可以让管理员添加新的公告信息类型,也能对已有的公告类型信息执行编辑更新,失效的公告类型信息也能让管理员快速删除。下图就是公告类型管理页面。
图5.4 公告类型列表页面
6系统测试
为了保证所开发出来的系统质量过关,让所开发出来的系统具备可靠性并能够投入运行使用,这就需要进行系统开发的最后一个关键步骤,那就是系统测试。可以说系统测试就是对系统开发前面的步骤,比如系统分析与设计等进行复查。尽管在程序开发期间,人们一直很注意避免系统出错,但这样还是会让很多的潜在的系统缺陷不容易被人们肉眼察觉,只有经过反复不断地测试才能及时暴露系统的运行问题,这个时候进行系统问题的纠正就能真正避免财产损失,截止到目前,市面上还没有从根本上解决开发出的程序的正确性证明。所以发现系统的错误以及缺陷的重要手段还是要依赖于系统测试。
6.1 本系统测试
本系统的测试结合了计算机的软件以及硬件系统,对程序的全部功能,还有程序的运行稳定性等性能上进行了测试,测试过程中也再次对程序配套数据库的连接问题进行了系统化地测试操作。接下来就选取系统的一些功能进行测试演示。
6.1.1 登录功能测试
系统的登录功能主要起到一个验证身份的作用,目的就是防止外人恶意攻击系统,窃取系统的相关数据信息,系统的登录功能验证的信息有两项,一个是用户名,另一个就是密码信息。任何一个数据出现问题,系统就会提示。当然用户也不能进入系统。测试数据信息见下表。
表6.1 登录功能测试数据
测试项目 | 测试数据 | 期望结果 | 测试结果 |
---|---|---|---|
填写数据库里面的用户名,密码 | 用户名:a1密码:123456 | 登录通过 | 登录通过 |
填写的用户名,密码在数据库中并不存在 | 用户名:a1密码:aaaaa | 登录不通过 | 登录不通过 |
填写数据库的用户名,但填写密码有误 | 用户名:a1 密码:aaaaa | 登录不通过 | 登录不通过 |
填写的用户名在数据库里面没有,但填写的密码无误 | 用户名:a111密码:123456 | 登录不通过 | 登录不通过 |
6.1.2 注册功能测试
游客需要注册来获取账号密码信息,游客要是曾经进行过注册,再次填写同样的账号信息时,系统也会提示数据库已有相同账号信息,游客就不能注册成功了。测试结果详细见下表。
表6.2 注册功能测试数据
测试项目 | 测试数据 | 期望结果 | 测试结果 |
---|---|---|---|
填写的用户名,密码在数据库里面已经存在 | 用户名:a1密码:123456 | 不能注册 | 不能注册 |
填写的用户名,密码在数据库里面没有 | 用户名:a99密码:123456 | 注册通过 | 注册通过 |
6.2测试结果分析
经过了程序开发的最后一个测试环节,对开发的程序软件面向智慧教育的实习实践系统也下了定论,在测试期间程序的功能能够跟最开始的用户需求文档保持一致性,程序的界面设计以及数据库设计也都是参照用户的需求完成设计的。另外,程序开发也充分解决了系统的升级以及长时间保持稳定运行的问题,说明该程序软件还是挺可靠的,进行验收上交也是达标的。总的说来,截止到目前,该面向智慧教育的实习实践系统功能可靠,有着简单的操作流程,能够从一定程度上解决数据信息操作方面出现的各种问题。
结 论
开发面向智慧教育的实习实践系统是作为毕设作品进行设计的,这个毕设作品是我在校进行知识学习的一个毕业考核项目,也是检验我通过网络工具,图书工具等学习工具进行自学的能力水平,让我在根据程序开发的需求分析初步完成程序功能之外,还接触了程序的测试过程,了解程序测试的具体的过程,以及遇到问题怎么去寻找相应的解决办法等等,毕业作品的制作以及设计才是学校对我真正的考验。
在程序软件没能进行开发之前,我去了学校的图书馆借了有关数据库操作的书籍,在查看了sqlserver和mysql两种数据库的相关知识之后,我最后选择了我比较熟悉的mysql数据库。在编程语言的抉择上,由于自己之前接触过Java程序的开发,所以为了让我尽快在短时间内完成程序制作,我确定用Java编程语言进行程序编程。另外我从百度上下载了很多的有关信息增加,信息删除等操作的源代码,并通过不断调试以及完成配套的数据库的设计,开始完成程序的各个部分的功能。每当我粗心大意,致使我深陷程序开发困扰不能自拔之时,值得庆幸的是,我就会得到老师,还有我的寝室同学的耐心指导。
历经长达几个月的毕业作品制作,我凭借自己的知识技能,还有大家的指导帮助,能够在学校规定的时间段之内提交毕业作品。虽然已经算是完成了毕业作品,但是付出了这么多心血,还是想把这个作品做得更加完美一点。针对我的毕业作品面向智慧教育的实习实践系统,我觉得还有很多方面需要完善,第一就是界面上需要细微调整,比如色彩搭配有点违背广众的审美,需要细微调整,还有系统里面的字体大小也需要调大一点,太小的字体看起来有些费眼。然后在程序的功能上因为自己的入门开发水平的影响,所以目前只能做到这个境界,这个系统相比其他类似系统来说功能很简单,逻辑结构设计得也比较合理。
自己一个人完成程序的开发,我不仅亲自体验了程序的开发流程,体验到了程序开发的各种不易。这种体验也还加深了我对知识的尊重。学海无涯,知识不是大学短短四年就能学完的,在大学学到的知识在最终经历检验时,才会深深地明白自己的知识积累原来还很浅薄。所以今后不管身在何处,自己的学习心态一定要时刻体现出来,要深刻明白知识学到手里就是自己的。同时,自己也不必过多抱怨学到的知识没有用处,相信学到的知识总会有派上用处的那天。不要等到需要用时再去学习知识,那样就会导致自己错失很多本该属于自己的机遇。