毕业设计管理系统需求分析与架构设计1 背景毕业设计是实现学校培养目标的一个重要教学环节,是使学生将所学基础理论、专业知识与技能,加以综合、融会贯通并进一步深化和应用于实际的一项基本训练。
毕业设计(论文)工作是使学生综合运用所学知识和技能,理论联系实际,独立分析和解决问题,为从事工程技术、经济管理和科学研究工作进行的基本训练过程。
目前我校高职生毕业设计管理工作都是基于手工操作,管理过程繁琐、信息交流困难、错漏情况易于发生,总体来说工作效率极其低下。
而很多院校采用了校园网上毕业设计管理信息系统,应用效果较好,为毕业设计的管理带来了很大的便利。
因此,本项目拟开发一套校园网上能够使用的毕业设计管理信息系统,从而使学生、教师和管理部门都能够方便地利用网络完成各项毕业设计管理任务。
2 需求2.1 功能需求2.1.1 毕业设计管理工作流程毕业设计是高职生三年级第二学期的教学内容,但管理工作在这之前就已开始,并一直持续到学生毕业离校之前。
其完整的工作流程如下:1、各系进行毕业设计工作动员。
(具体包括:各系进行工作动员、系里汇总毕业设计题目方向、学生选题目、教师和学生见面、指导教师填写任务书、签发任务书)2、开题。
(具体包括:各系组织开题检查、调整确定题目及内容、第四周末提交开题报告、前期毕业设计工作进行检查)3、期中检查。
(具体包括:中期检查毕业设计任务书中规定的工作量完成50~60%、毕业设计完成质量情况、填写检查记录表)4、学生提交毕业论文。
(具体包括:初稿交指导教师、教师评阅毕业设计(论文)、评阅教师评审、毕业设计答辩小组和答辩委员会名单确定)5、答辩工作。
(具体包括:毕业设计答辩资格审查、给出答辩成绩、二次答辩)6、校级答辩和总结工作。
(具体包括:成立校级毕业设计答辩委员会、校组织校级答辩、统计毕业设计有关数据、毕业设计工作总结)7、论文归档后期检查工作。
(具体包括:资料归档工作、“毕业设计题目汇编”工作、“优秀毕业设计论文”工作、编辑出版优秀论文工作)以上为一般工作流程,经过初步调查和分析,对毕业设计管理信息系统的目标范围进行确定,得到活动图如图1所示。
图1 毕业设计管理系统主要流程2.1.2 功能结构本系统粗略的功能结构如图2所示,详细功能定义见用例模型一节。
图2 毕业设计管理系统总体结构2.1.3 用例模型1、用户管理图3 用户管理用例图2、题目管理图4 课题管理用例图3、文档管理图5 文档管理用例图4、评审和答辩管理图6 评审及答辩管理用例图5、其它图7 其他功能用例图2.2 性能需求每年毕业生人数大约2000人左右,同时在线人数在学生选题和最后论文提交截至日期时为最高峰,估计100人左右。
系统关键业务平均响应时间应不超过10秒。
2.3 非功能需求学校毕业设计管理流程将来会有变化,因此要求设计的可变更性好,结构较为灵活,这样流程或规则变化引起的程序维护能够在较短时间内完成。
3 环境环境包括硬件与软件环境。
开发时,要注意软、硬件的相互协调。
4 架构设计4.1总体设计本系统采用面向对象设计方法,设计方案主要采用类图和顺序图进行描述。
4.2功能分配4.2.1管理员功能1、维护教师部门管理员要负责登记教师所在的部门,本项目仅考虑一级部门设置。
根据需要可能执行的操作包括:创建新部门、修改部门信息和删除部门。
维护教师部门管理员要负责登记教师的相关信息,包括编号、姓名、所在的部门、职称等,根据需要可能执行的操作包括:添加教师、修改教师信息和删除教师。
维护教师信息3、维护学生班级管理员要负责登记所有班级。
根据需要可能执行的操作包括:创建新班级、修改班级信息和删除班机。
维护学生班级管理员要负责登记所有参加毕业设计的学生信息,包括编号、姓名、所在班级、联系方式等。
根据需要可能执行的操作包括:添加学生、修改学生信息和删除学生。
维护学生信息5、登记校外课题管理员要负责登记在校外完成毕业设计的课题资料。
在登记前,应将所设计的单位信息和教师信息提前登记到系统中。
可能执行的操作包括:增加校外课题、修改校外课题信息和删除课题。
(校内课题由指导教师负责维护)登记校外课题6、为学生分配教师管理员要负责为每个学生分配一个校内的负责教师,一旦分配好教师,后期所有事务均由负责教师承担,包括课题任务书的书写,周志检查、教师评语书写等。
如果是校外课题的学生,在登记校外课题时已完成分配,所以此处的分配针对所有校内毕设的学生。
为学生分配教师7、维护答辩小组管理员要负责组建答辩小组,每个小组设置一位组长和多名组员。
可能的操作是增加答辩小组、修改和删除,对某个答辩小组添加教师或删除教师等。
维护答辩小组8、学生答辩分组管理员要负责为每个答辩小组分配若干学生,答辩小组成员中应不包含学生的指导教师和督导教师。
学生答辩分组9、发布通知管理员要负责按时发布和毕设管理流程有关的通知,学生和教师可以随时查看最新通知,通知允许包含附件文件。
修改、删除事件流略。
发布通知4.2.2教师功能1、教师登记毕设课题管理员要负责登记教师所在的部门,本项目仅考虑一级部门设置。
根据需要可能执行的操作包括:创建新课题、修改课题信息、删除课题。
其中修改课题信息可以根据毕设流程的需要实现提交课题任务书、分配课题学生等功能。
登记课题2、教师签写周志教师可以浏览本人所带的所有课题,并可检查每个课题学生所填写的周志,对每周的完成情况填写进度情况。
签写周志3、教师检查毕设成果教师可以浏览名下的所有课题,可以查看每个课题学生已提交哪些文档,已提交的文档可以下载到本地。
检查毕设成果4、指导教师评审教师可以浏览名下的所有课题,对课题填写评审意见和分数。
指导教师评审5、评阅教师评审教师可以浏览名下的所有需要评阅的课题,对课题填写评审意见和分数,其中校外课题的评阅教师自动设为课题的督导教师。
评阅教师评审6、分配评阅教师作为答辩小组组长的教师可以浏览分配到该小组的所有课题和所有答辩小组成员教师,对每个课题分配一个小组内的教师作为评阅教师,其中校外课题的评阅教师自动设为课题的督导教师。
分配评阅教师7、记录答辩成绩作为答辩小组组长的教师可以浏览分配到该小组的所有课题,在答辩之后填写每个课题的答辩成绩。
记录答辩成绩4.2.3学生功能1、学生选择教师教师提交课题之后,学生可以自愿选择导师,每个学生可以选择的志愿数在可以从系统设置参数中获取,志愿不允许重复教师。
选择指导教师2、学生书写周志毕设开始之后,学生应每周提交本周计划,教师对计划完成情况进行检查,书写检查结果。
可能执行的操作包括新周志的增加,更改已有内容,以及删除,其中更改和删除在教师签写之后不允许执行。
下面的序列图仅绘制了增加的事件流,其它事件流略。
书写周志3、学生提交文档学生应按照要求提交开题报告、论文、工作成果(如源程序、有关的完整报告等),文档提交后,所有文件上传到服务器指定目录下存放。
提交文档4.2.4其他功能1、查看通知系统的所有用户都可以参看毕设有关通知。
2、修改密码系统的所有用户都可以修改自己的登录密码。
4.3 接口设计4.3.1 外部接口设计本系统设计为网页方式实现校园网内访问,所以用户界面统一为超文本形式,要求客户端使用IE6.0以上版本。
本系统和其它外部系统之间无接口。
3.3.2 内部接口设计本系统内部采用分层设计,界面层依赖于业务逻辑层,业务逻辑层依赖于数据库访问层。
界面层通过使用业务逻辑层对象来存取数据,一部分采用数据绑定方式实现,另一部分直接使用业务逻辑对象实现。
业务逻辑层和数据库访问层使用DataTable对象来存取数据。
4.4 数据结构设计4.4.1 公共数据结构设计本项目中所使用的全局数据结构主要是Session对象和SettingBLL对象。
●Session对象:用于存放页面之间共享的数据,比如用户登录信息。
●SettingBLL对象:用于存放整个系统有关的参数设置,比如年度信息。
4.4.2 数据库设计本系统数据库表结构直接由类导出,类图如下所示:部门表:CREATE TABLE [dbo].[Department]([DepartmentNO] [nvarchar](10) COLLATE Chinese_PRC_CI_AS NOT NULL,[DepartmentName] [nvarchar](10) COLLATE Chinese_PRC_CI_AS NULL,[DepartmentType] [nvarchar](10) COLLATE Chinese_PRC_CI_AS NULL, CONSTRAINT [PK_Department] PRIMARY KEY CLUSTERED教师职称表:CREATE TABLE [dbo].[Title]([TitleNO] [nvarchar](10) COLLATE Chinese_PRC_CI_AS NOT NULL,[TitleName] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NOT NULL, CONSTRAINT [PK_Title] PRIMARY KEY CLUSTERED教师表:CREATE TABLE [dbo].[Teacher]([UserName] [nvarchar](20) COLLATE Chinese_PRC_CI_AS NOT NULL,[Password] [nvarchar](20) COLLATE Chinese_PRC_CI_AS NULL,[FullName] [nvarchar](20) COLLATE Chinese_PRC_CI_AS NULL,[DepartmentNO] [nvarchar](10) COLLATE Chinese_PRC_CI_AS NULL,[EMail] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NULL,[Phone] [nvarchar](20) COLLATE Chinese_PRC_CI_AS NULL,[Mobile] [nvarchar](15) COLLATE Chinese_PRC_CI_AS NULL,[Title] [nvarchar](10) COLLATE Chinese_PRC_CI_AS NULL,[Role] [nvarchar](10) COLLATE Chinese_PRC_CI_AS NULL, CONSTRAINT [PK_Teacher] PRIMARY KEY CLUSTERED班级表:CREATE TABLE [dbo].[Class]([ClassNO] [nvarchar](10) COLLATE Chinese_PRC_CI_AS NOT NULL,[ClassTutor] [nvarchar](10) COLLATE Chinese_PRC_CI_AS NULL, CONSTRAINT [PK_Class] PRIMARY KEY CLUSTERED学生表:CREATE TABLE [dbo].[Student]([UserName] [nvarchar](20) COLLATE Chinese_PRC_CI_AS NOT NULL,[Password] [nvarchar](20) COLLATE Chinese_PRC_CI_AS NULL,[FullName] [nvarchar](20) COLLATE Chinese_PRC_CI_AS NULL,[ClassNO] [nvarchar](10) COLLATE Chinese_PRC_CI_AS NULL,[EMail] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NULL,[Phone] [nvarchar](20) COLLATE Chinese_PRC_CI_AS NULL,[Mobile] [nvarchar](15) COLLATE Chinese_PRC_CI_AS NULL,[TeacherNO] [nvarchar](20) COLLATE Chinese_PRC_CI_AS NULL, CONSTRAINT [PK_Student] PRIMARY KEY CLUSTERED学生志愿表:CREATE TABLE [dbo].[StudentAssignment]([AssignmentID] [int] IDENTITY(1,1) NOT NULL,[StudentUserName] [nvarchar](20) COLLATE Chinese_PRC_CI_AS NOT NULL, [TeacherUserName] [nvarchar](20) COLLATE Chinese_PRC_CI_AS NOT NULL,[Year] [nvarchar](10) COLLATE Chinese_PRC_CI_AS NOT NULL, CONSTRAINT [PK_StudentAssignment] PRIMARY KEY CLUSTERED毕设课题表CREATE TABLE [dbo].[Project]([ProjectNO] [int] IDENTITY(1,1) NOT NULL,[ProjectName] [nvarchar](100) COLLATE Chinese_PRC_CI_AS NULL,[ProjectType] [nvarchar](10) COLLATE Chinese_PRC_CI_AS NULL,[Year] [nvarchar](10) COLLATE Chinese_PRC_CI_AS NULL,[Content] [nvarchar](500) COLLATE Chinese_PRC_CI_AS NULL,[Result] [nvarchar](500) COLLATE Chinese_PRC_CI_AS NULL,[Demand] [nvarchar](500) COLLATE Chinese_PRC_CI_AS NULL,[Research] [nvarchar](500) COLLATE Chinese_PRC_CI_AS NULL,[Reference] [nvarchar](500) COLLATE Chinese_PRC_CI_AS NULL,[Equipment] [nvarchar](500) COLLATE Chinese_PRC_CI_AS NULL,[Plan] [nvarchar](500) COLLATE Chinese_PRC_CI_AS NULL,[Director] [nvarchar](20) COLLATE Chinese_PRC_CI_AS NULL,[Supervisor] [nvarchar](20) COLLATE Chinese_PRC_CI_AS NULL,[Student] [nvarchar](20) COLLATE Chinese_PRC_CI_AS NULL,[DirectorComment] [nvarchar](500) COLLATE Chinese_PRC_CI_AS NULL, [DirectorScore] [nvarchar](10) COLLATE Chinese_PRC_CI_AS NULL,[DirectorCommentDate] [datetime] NULL,[InspectorComment] [nvarchar](500) COLLATE Chinese_PRC_CI_AS NULL, [InspectorScore] [nvarchar](10) COLLATE Chinese_PRC_CI_AS NULL,[InspectorCommentDate] [datetime] NULL,[InspectorTeacherNO] [nvarchar](20) COLLATE Chinese_PRC_CI_AS NULL, [AnswerComment] [nvarchar](500) COLLATE Chinese_PRC_CI_AS NULL, [AnswerScore] [nvarchar](10) COLLATE Chinese_PRC_CI_AS NULL,[AnswerCommentDate] [datetime] NULL,[AnswerTeacherNO] [nvarchar](20) COLLATE Chinese_PRC_CI_AS NULL, [AnswerTeamNO] [int] NULL,CONSTRAINT [PK_Project] PRIMARY KEY CLUSTERED毕设课题类型表CREATE TABLE [dbo].[ProjectType]([ProjectTypeNO] [nvarchar](10) COLLATE Chinese_PRC_CI_AS NOT NULL, [ProjectTypeName] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NULL, CONSTRAINT [PK_ProjectType] PRIMARY KEY CLUSTERED毕设周志表:CREATE TABLE [dbo].[WeekLog]([LogNO] [int] IDENTITY(1,1) NOT NULL,[WeekNum] [int] NULL,[StudentPlan] [nvarchar](100) COLLATE Chinese_PRC_CI_AS NULL,[TeacherCheck] [nvarchar](100) COLLATE Chinese_PRC_CI_AS NULL,[LogDate] [datetime] NULL,[CheckDate] [datetime] NULL,[ProjectNO] [int] NULL,CONSTRAINT [PK_WeekLog] PRIMARY KEY CLUSTERED毕设文档表CREATE TABLE [dbo].[Document]([DocumentNO] [int] IDENTITY(1,1) NOT NULL,[DocumentType] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NULL,[DocumentDate] [datetime] NULL,[DocumentPath] [nvarchar](500) COLLATE Chinese_PRC_CI_AS NULL,[ProjectNO] [int] NULL,[Memo] [nvarchar](100) COLLATE Chinese_PRC_CI_AS NULL,CONSTRAINT [PK_Document] PRIMARY KEY CLUSTERED答辩小组表:CREATE TABLE [dbo].[AnswerTeam]([AnswerTeamNO] [int] IDENTITY(1,1) NOT NULL,[Year] [nvarchar](10) COLLATE Chinese_PRC_CI_AS NULL,[TeamNO] [nvarchar](20) COLLATE Chinese_PRC_CI_AS NULL,[TeamLeader] [nvarchar](20) COLLATE Chinese_PRC_CI_AS NULL, CONSTRAINT [PK_AnswerTeam] PRIMARY KEY CLUSTERED答辩小组成员表:CREATE TABLE [dbo].[AnswerTeamMember]([MemberNO] [int] IDENTITY(1,1) NOT NULL,[AnswerTeamNO] [int] NULL,[TeacherNO] [nvarchar](20) COLLATE Chinese_PRC_CI_AS NULL, CONSTRAINT [PK_AnswerTeamMember] PRIMARY KEY CLUSTERED通知表CREATE TABLE [dbo].[Notice]([NoticeNO] [int] IDENTITY(1,1) NOT NULL,[NoticeName] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NULL,[Content] [nvarchar](1000) COLLATE Chinese_PRC_CI_AS NULL,[NoticeDate] [datetime] NULL,[AttachmentPath] [nvarchar](500) COLLATE Chinese_PRC_CI_AS NULL, CONSTRAINT [PK_Notice] PRIMARY KEY CLUSTERED系统设置表:CREATE TABLE [dbo].[Setting]([Name] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NOT NULL,[Value] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NULL,CONSTRAINT [PK_Setting] PRIMARY KEY CLUSTERED4.4.3 数据结构同程序的关系本系统采用严格的面向对象方法完成设计和编程,组件化程度高,即使是公共数据结构也是作为对象来处理,对象的数据直接通过数据库的表来存取,所以系统个个构件之间的耦合度非常低,公共数据结构对于程序基本无影响。