第4章 系统分析
4.1系统分析介绍
4.1.1技术可行性
本系统采用微软的ASP技术,Microsoft的Active Sever Pages(ASP)是服务器端脚本编写环境,使用它可以创建和运行动态、交互的WEB服务器应用程序。使用ASP可以组合HTML页、脚本命令和ActiveX组建以创建交互的Web页和基于Web的功能强大的应用程序。ASP应用程序很容易开发和维护。
4.1.2经济可行性
本系统由于本身并不复杂,采用先进的ASP技术后,不需要投入太多的人力、物力,从而开发所需要的资金投入也不会很大,在经济上是完全可行的。
4.1.3操作可行性分析
随着校园网的建成与发展,正是此系统大显身手的好机会,且此系统是在校园内部网上运行的。
通过以上方面的分析得出结论:基于校园网的毕业设计综合管理系统符和软件开发的要求,可以实现。
4.2 系统的综合要求
本系统的开发采用B/S模式,即浏览器/服务器模式,是一种从传统的二层C/S模式发展起来的新的网络结构模式,其本质是三层结构的C/S模式。B/S是在用户和数据库之间加入一个Web服务器从而较圆满的克服了传统的C/S模式的缺点。
主要表现在:
1. 由于客户端软件为浏览器,B/S模式提供了一致的用户界面,且实现客户端的零配置和客户端平台无关。
2. 系统开发维护和升级都集中在服务器端,因而易于升级扩展和集成。B/S模式基于开放的TCP/IP协议,具有良好的开放性,扩展性。
3. B/S模式提供灵活的信息交流和信息发布。
4. B/S模式具有很好的经济性且易于推广。
4.2.1系统功能要求
(1) 方便强大的资料管理功能,良好的人机界面;尽量避免字和长字符串的人工重复输入。
(2) 灵活,方便的查询性能快速实现符合关键条件的查询。
(3) 应有较强的可扩充性。
(4) 教师完成课题申报,修改,选择学生,成绩评定;院系完成审核;学生选择,给教师打分;提供综合查询,打印等功能。
4.2.2系统运行要求
本系统使用环境分为服务器和客户端。
(1) 服务器环境如下:
CPU:Pentium II及其以上CPU机器
硬盘:不少于1GB
内存:64MB以上
软件:Windows98/2000/NT 4.0+IIS 4/5.0或PWS 3/4.0,数据库采用Microsoft Access,浏览器 IE4.0或Netscape4.0以上的版本。
(2) 客户端环境如下:
CPU:Pentium II及其以上CPU机器
硬盘:不少于640MB
内存:32MB以上
软件:Win 9X/ME/NT/2000 +浏览器 IE4.0或Netscape4.0以上的版本。
4.3系统数据流图
通过对整个系统的数据分析绘制出整个系统的数据流图如下:
图4-1 系统顶层数据流图
图4-2 教师模块数据流
图4-3 审核数据流图
课题信息
图4-4 学生数据流图
4.4数据字典
数据字典是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合。它为用户提供查阅,对不了解的条目解释和有关数据的描述。本系统的部分重要数据字典表示如下
表4-1 教师代码表
名字:教师代码 别名: 描述:唯一的标识全校的一个特定的老师 定义:教师代码={教师代码} 位置:课题信息表(ktxxb) 教师信息表(jsxxb) 课题选择表(ktxz) 评议表(pyb) |
表4-2 学生代码表
名称:学生学号 别名:学号 描述:唯一的表示全校学生中的一个特定的学生 定义:学生学号={学号} 位置:打分表(dafen) 课题选择表(ktxz) 学生信息表(xszcb) |
名称:课题名称 别名: 描述:唯一的表示全校所有课题中一个特定的课题 定义:课题名称={课题名称} 位置:打分表(dafen) 课题信息表(ktxxb) 课题选择表(ktxz) 评议表(pyb) |
表4-3 课题代码表
名称:志愿 别名: 描述:表示学生选择志愿的顺序 定义:志愿={名字} 位置: 课题选择表(ktxz) |
表4-4 学生志愿表
表4-5 回复留言表
名称:回复给 别名: 描述:表示回复留言时回复对象的名字,可以是教师和学生的名字 定义:回复给=8{字符}8 位置:留言表(bbs) |
表4-6 学科门类表
名称:学科类 别名:学科门类 描述:表示不同的学科类别,以此区分不同的提交表单 定义:学科类=4{字符}4 位置:课题选择表(ktxz) 教师信息表(jsxxb) 审核人员表(zjb) 课题信息表(ktxxb) |
第5章 系统设计
软件设计开始于对软件需求分析之后,它是构造软件所需的三项活动—项活动——设计,代码生成和测试——之一。
软件设计的原则:
1.设计过程不应受“隧道视野”的限制。
2.设计对应于分析模型应该时刻跟踪的。
3.设计应该缩短软件和现实世界中问题的“智力距离”。也就是软件设计的结构应该模拟问题域的结构。
4.设计应该适应修改。
5.设计应表现出一致性和集成性。
6.设计应该构造类似的遇到异常现象的数据,时间,或操作条件时也能够平衡,轻巧的降级。
7.设计应该复审设计,减少概念性错误。
5.1系统总体设计
5.1.1系统的综合要求
1.应具有方便,强大的资料管理和良好的人机界面,使用户易于操作,便于浏览。
2.系统的健壮性,扩展性良好。系统具有对数据备份和日志记录的功能。
3.系统的安全性好,通过密码和权限的管理是用户的数据不受到侵害。
4.系统的动态信息交互功能强,系统根据不同的用户的权限开放不同的处理权限;不同的用户可以通过留言板进行信息的沟通。
5.系统尽量给用户提供一个良好的操作环境。
5.1.2系统结构
根据功能分为教师,学生的前台操作和系教务人员的综合管理。
系统有四个主要的角色组成:学生.教师.院系.管理人员。
1. 教师完成的操作:
个人信息的管理,课题的申报、修改、选择学生,设计期间与学生的交流与辅导、成绩的评定。
2. 学生完成的操作:
注册自己的个人信息,选择课题,设计期间利用留言板和教师进行交流,对教师的指导进行打分、评定。
3. 各院系的教务人员:
对教师提交课题进行一审、二审;对没有课题的学生进行调剂,对选题的结果,成绩进行查询、统计、打印;对教师的指导情况进行查询、打印和备案。
4. 管理人员:
对教师,学生的信息查询,添加和删除;对数据库进行备份和恢复,完成数据的初始化;网站的设置与管理。
5.1.3 系统结构层次图
5.1.4数据库结构
本系统在开发阶段采用Microsoft Access 2000数据库对数据进行存储和管理。数据库逻辑设计结果ER图如下:
图5-2 ER图
数据库物理结构设计基于以下的原则:
1.在实现基本功能的前提下,尽量减少数据的冗余。
2.结构设计与操作设计相结合。
3.数据结构有相对的稳定性。
数据表的结构设计如下:
表5-1 课题信息表(ktxxb):
字段名称 | 类型及长度 | 注释 |
院系 | 文本,15 | 教师所在的院系 |
专业名称 | 文本,15 | 课题所属的专业 |
课题名称 | 文本,30 | 课题的名称 |
教师代码 | 数字,长整型 | 分辨教师唯一关键字 |
课题主要内容 | 文本,255 | |
立题次数 | 数字,长整型 | |
指导教师 | 文本,5 | |
略 | 略 | |
最终人数 | 数字,长整型 | 标识最终有几个学生选择该课题 |
审核结果 | 文本,5 | 该课题是否适用 |
表5-2 课题选择表(ktxz)
字段名称 | 类型及长度 | 注释 |
学号 | 数字,长整,(必填) | 标识学生的唯一关键字 |
学生姓名 | 文本,8,(必填) | |
课题名称 | 文本,30,(必填) | |
教师代码 | 数字,长整 | |
指导教师 | 文本,5 | |
专业名称 | 文本,15 | |
院系 | 文本,15 | |
志愿 | 数字,长整 | 学生选择课题的顺序 |
最终结果 | 数字,长整 | 教师选择学生后,该记录的该字段设为1,表示被选中 |
评价 | 文本,5 | 毕业设计的成绩 |
表5-3 审核意见表(pyb):
字段名称 | 类型及长度 | 注释 |
课题名称 | 文本,30 | |
指导教师配备 | 文本,10 | 评议内容 |
指导本课题学生人数 | 文本,10 | 下同 |
文字处理写作要求 | 文本,10 | |
计算机应用要求 | 文本,10 | |
培养学生三基能力要求 | 文本,10 | |
阅读中外文资料要求 | 文本,10 | |
专业知识覆盖面 | 文本,10 | |
审核小组修改意见 | 文本,10 | |
教师代码 | 数字,长整 |
表5-4 学生注册表(xszcb):
字段名称 | 类型及长度 | 注释 |
xsxm | 文本,5,(必填) | 学生姓名 |
xh | 数字,长整,(必填) | 学号 |
ssyx | 文本,15 | 所属院系 |
zy | 文本,15,(必填) | 专业 |
xb | 文本,3 | 性别 |
mm | 文本,10,(必填) | 密码 |
xqtc | 文本,255,(必填) | 兴趣特长(教师选择学生的重要依据) |
表5-5 教师信息表(jsxxb):
字段名称 | 类型及长度 | 注释 |
教师姓名 | 文本,5,(必填) | |
教师代码 | 数字,长整,(必填) | 标识教师的唯一的关键字 |
性别 | 文本,3 | |
出生年月 | 文本,10 | |
职称 | 文本,10,(必填) | |
所属院系 | 文本,15,(必填) | |
学科类 | 文本,5,(必填) | 用来区分不同的提交表单 |
学科部 | 文本,15 | |
密码 | 文本,10,(必填) | |
研究方向及成果 | 文本,255,(必填) | 学生查看教师能力的依据 |
表5-6 审核人员表(zjb):
字段名称 | 类型及长度 | 注释 |
姓名 | 文本,5,(必填) | |
代码 | 数字,长整,(必填) | 审核人员的标志 |
院系 | 文本,15,(必填) | |
密码 | 文本,10,(必填) | |
专业名称 | 文本,15,(必填) | |
学科部 | 文本,15 | |
学科类 | 文本,5,(必填) |
表5-7 留言板(bbs):
字段名称 | 类型及长度 | 注释 |
号码 | 数字,长整 | |
姓名 | 文本,5 | |
时间 | 文本,10 | 留言的时间 |
主题 | 文本,255 | |
回复 | 文本,8,(必填) | |
回复给 | 文本,8 | |
内容 | 文本,255,(必填) | |
院系 | 文本,15 | |
课题 | 文本,30 | |
教师 | 文本,5 |
表5-8 打分表(dafen)
字段名称 | 类型及长度 | 注释 |
学生姓名 | 文本,5 | |
课题名称 | 文本,30 | |
学号 | 数字,6 | |
指导教师 | 文本,5 | |
院系 | 文本,15 | |
文件 | 数字,长整 | 评议的各项内容 |
选题 | 数字,长整 | 下同 |
开题 | 数字,长整 | |
资料 | 数字,长整 | |
要求 | 数字,长整 | |
指导 | 数字,长整 | |
纪律 | 数字,长整 | |
答辩 | 数字,长整 |
以下为部分数据库中的表:
图5-3 学生注册表
图5-4 课题选择表
5.2详细设计
毕业设计网上管理系统的特点:
(1) 管理方便,整个过程只须操作电脑就能完成
安全可靠
(2) 强大的容错功能,操作者的每一步操作都有系统提示,不用担心进行了错误的操作
(3) 完善的后台管理,采用分级权限管理
(4) 自动化程度高,教师在进行立题之后,学生便可以在网上进行选题,并可进行对教师的评价等操作,点击鼠标便可将所有信息输入数据库,繁琐的管理项目由系统自动完成
(5) 模块化设计,可以将程序进行扩充,完成另一些功能
(6) 设有留言板和论坛,学生和教师可以利用此设施进行信息的反馈。
(7) 对必要的结果能进行打印的功能,作为资料进行保存。
针对系统的特点我们对以下功能进行了详细的设计:.
5.2.1安全性设计
本系统采用目前比较成熟的ASP作为开发技术,采用ACCESS作为数据存储的实体,在网络安全上比较成熟,鉴于以前的不安全的因素,综合多种经验我们采用以下措施确保系统的安全性:
(1) 由于该系统只是对毕业设计进行管理,所以只在毕业设计的阶段在学校的局域网上发布和运行,这样有效的阻止恶意访问,同时节省网络资源。
(2) 不同身份的人员由不同的界面登录,导航到不同的主界面,杜绝越权访问。
(3) 系统维护人员负责整个系统的数据维护,是保证系统运行的关键。因此,对登录到管理人员界面的操作记录时间、IP地址和具体的操作,供管理人员查看。
(4) Access数据库被下载的漏洞尤其值得我们注意。如果攻击者通过某种方法获知或者猜到了网站的后台Access数据库存放的文件系统的路径及数据库的名字,那么攻击者利用一个很正常的Ftp工具就能把这个数据库下载了。数据库中一般存放的都是核心数据,如果泄露出去,会给网站造成不可估量的损失。解决的方法是使用不规则的名字和路径。起个较为复杂的名字或者是把文件放在多级目录下,这样就不容易被攻击者猜到,从而进行破坏了。还一种就是利用Access数据库本身带的编码及加密功能,对数据库进行加密设置,这样即使被人下载了数据库,他也无从下手。
5.2.2算法设计
(1)教师模块算法:
教师提交个人信息注册表单,写入数据库的教师信息表中,进入系统后根据不同的学科类别导航到不同的提交课题的表单,填写完成后写入数据库中;课题修改根据教师的代码从课题信息表中找出相对应的课题的名称,填加到下拉菜单中,再以名称为关键字从表中将信息读出到表单的容器中供教师修改;选择学生时,根据教师的代码从课题信息表中取出审核通过的课题的名称,再根据课题名称从课题选择表中取出对应的学生的姓名,循环显示出来,教师点击学生姓名可以查看学生的信息(以学号为关键字从学生信息表中读出)。课题选择表设一最终结果字段(初始值默认为0)教师要选择此学生,首先检查该学生所选择的课题的记录的最终结果字段值之和是否大于等于1,如果成立则表示该学生已经被其他教师选择,否则将该课题对应的记录的最终结果字段值设为1,选择成功;如果课题名称和最终结果为1的记录的个数等于5,则提示课题人数已满,放弃选择;成绩评定时采用和选择学生一样的方法循环显示出课题名称和已经选择的学生名单,只是在学生姓名后面加一个下拉菜单用来提供成绩输入,同时记录学生的人数为n,成绩以字符串的方式提交,采用split函数将字符串分割存入数组,同时循环n次将成绩写入学生信息表中;再综查询中可以根据课题的名称从评议表中读出评议的结果供教师查询。
(2)选课模块:
在第一次进入系统时,学生必须注册自己的基本信息。注册后,再次进入只需登录。进入系统后,可以对本专业的毕业课题进行选择。学生最多有三个志愿,选完后将自动显示选择的结果;如果没有选够三个课题那么在离开选课界面后,将不能再次进行选择。教师对选择自己课题的学生进行选择后,每个学生只有一个确定的课题,学生才可以进行毕业设计。在设计过程中,学生需要对自己的指导教师进行评价。在评价时,学生根据页面上的项目对教师进行打分,打完后如果不满意可以修改。在设计过程中,学生难免会遇到问题,可以通过留言板向教师进行咨询。查看留言时,可以查看所有留言,但只能针对自己院系的留言进行回复讨论。
(3)评议模块:
根据专家所在的院系从课题信息表中选出属于自己院系的课题信息,填写评议表单后提交,将最终评议结果写入课题信息表的审核结果字段中,将评议的其他写入评议表,在二审时,从课题信息表中读出自己院系且审核结果为‘修改’的课题,将审核结果更新到数据库中;审核人员根据课题名称查看教师的分数。
5.2.3代码设计原则
代码指明了事物的名称,属性,状态。运用计算机处理时,为了使处理方便,为了节省存储空间,提高处理的速度,效率和精度,采用代码设计时,通常用数字,字母和一些特殊的符号组成的代码来识别事物和处理数据。
代码设计的原则:
(1) 要适合计算机处理。
(2) 要便于使用。
(3) 要具有系统性,通用性和扩展性。
(4) 选择最小的代码。
(5) 代码设计的标准化。
(6) 代码的注释也很重要。
5.2.4各模块详细设计过程
界面设计是重要的组成部分,操作人员主要通过对界面的浏览和操作实现系统的运转。
系统主界面包括:学生,教师,专家评议,系统维护,帮主等链接,不同的人员点击不同的链接进行操作。
(1) 系统登录界面
图5-5 系统主界面
(2) 教师注册界面
图5-6 教师注册界面
教师完成个人信息的注册,例如,姓名,代码,密码,研究成果及方向等;采用文本框和下拉菜单。将特定的数据写入菜单中,这样可以使操作简洁,输入的数据规范,可以减少操作上带来的不便;研究成果及方向可能需要填写较多的数据,因此采用文本域控件。在点击”提交信息”按钮时,将会触发由JAVA语言编写的CLICK事件,用来检查是否有未填写的信息以及验证密码是否一致。完成以后系统会弹出一个对话框,要求您对填写的信息进行最后的确认,以确保信息的准确。
(3) 教师主界面
教师主界面包括课题申报,课题修改,选择学生,综合查询,成绩评定,论坛等模块的超级连接,教师可以点击不同的超链接进行不同的操作。
图5-7 教师主界面
(4) 选择学生界面
系统从课题选择表中将选择该课题的学生的姓名及志愿读出,连接显示到课题名称对应的表格中;同时给名字加上超级链接。教师可以点击学生的姓名查看学生的基本信息来决定该学生是否符合该课题。
图5-8 选择学生
(5)成绩评定界面
系统从数据库中将教师最终选择的学生的名单提取出来,名字后面采用下拉菜单显示成绩的等级,例如,优,良,中,及格,不及格等档次。
将提交的字符串用SPLIT函数分割存入数组a,num表示学生的个数,采用循环的方式将成绩写入数据库。其主要代码如下:
for i=1 to num
score=a(j)
name=request.form("name"&i)
name1=clng(name)
set conn=server.createobject("adodb.connection")
conn.open " driver={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath("db1.mdb")
sql="update ktxz set 评价='"&score&"' where 学号="&name1&" and 最终结果=1"
图5-9 成绩评定
(6) 课题显示界面
将数据库中的课题信息显示到表格里,供审核人员评议。课题的主要的项采用特殊颜色的字符标注,以加强鲜明的效果。同时用IF语句根据不同的学科的类别进行判断,显示不同的课题内容。由于课题的内容和备注可能有很长的信息,显示到表格里没有换行,会导致页面很不美观。因此根据表格单元的大小决定每30个字符换一次行。
<%s1=rs("备注")
cr=int(len(s1)/35)
c=0
do while c<=cr
ss1=mid(s1,1+10*c,35)
sss1=sss1&ss1&"</p>"
c=c+1
loop
%>
图5-10 课题显示
其他的定制服务 下方联系卡片↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ 或者私信作者