软件工程课程设计学生选课管理系统开发报告作者:2009242012***2009242014颉翔1引言 (3)1.1编写目的 (3)1.2背景 (3)1.3参考资料 (3)2任务概述 (3)2.1任务目标 (3)2.2用户的特点 (4)2.3假定和约束 (4)2.3.1进度约束: (4)2.3.2系统约束: (4)2.3.3用户约束 (5)2.3.4假设与前提条件. (5)3需求分析 (5)3.1对功能的规定 (5)3.2对性能的规定 (6)3.3输人输出要求 (6)3.4故障处理要求 (6)4软件设计与实现 (7)4.1系统功能结构 (7)4.2系统数据结构 (8)4.2.1概念结构设计 (8)4.2.2逻辑结构设计: (9)4.2.3物理结构设计 (9)4.3功能需求与程序的关系 (10)4.4运行环境规定 (10)5软件测试 (10)5.1测试概要 (10)5.2测试结果及调试 (11)5.3测试结论 (13)6小结 (13)1引言1.1编写目的此报告完整呈现了我们开发“学生选课系统”的整个软件生命周期,包括需求分析阶段,软件设计与实现阶段和测试阶段。
在需求分析阶段,明确所要开发的软件应具有的功能、性能与界面,使系统使用人员及系统开发人员能清楚地了解用户的需求,并在此基础上进一步提出概要设计说明书和完成后续设计与开发工作。
在软件设计与实现阶段,进一步细化软件设计阶段得出的软件总体概貌,把它加工成在程序细节上非常接近于源程序的软件表示,然后着手于实践。
最后在测试阶段检验了我们的软件的实用性,发现了许多不足。
这个报告即是对最后软件的总体描述。
1.2背景目前国内各高校的规模越来越大,进而造成教师教学管理等工作量日趋加大。
然而,现代教育的信息化、网络化已经成为教育发展的一个重要方向,同时也为解决高校教学管理效率低下的现状,使管理突破时空限制,提高工作效率和办学水平,提供了一个很好的突破口。
基于这种情况,选课系统应运而生。
1.3参考资料1.张海藩,《软件工程导论》,清华大学出版社;2.王珊、萨师煊,《数据库系统概论》,高等教育出版社;3.张瑞丰、董渊、郑莉,《C++语言程序设计》,清华大学出版社。
2任务概述2.1任务目标由于学生多,老师多,课程多,学生课程每学期变动,造成进行课程分配,老师任务分配极为复杂不便,同时由于人员的流动(例如学生转专业,老师跨学院授课等等),对学生选课,老师授课的安排显得力不从心,有时查找与重新整理文件要浪费许多的人力、物力。
而且近年来,由于学校扩招力度的加强和教育的改革,选课,成绩档案的管理不当会严重到导致学校管理混乱的局面。
于是大家不断地在探索希望能找到解决的方法。
为了解决以上的问题,让学校能够有效的管理,同学能够方便的选课,及促进成绩管理的信息化、规范化和集成化,我们小组多方听取意见、追加和完善部分实用功能,进而了解学生选课流程,同时结合各部门、各专业与同学选课管理的方法,开发出一套适合于多学院,多课程的复杂的选课系统。
2.2用户的特点本项目所开发的系统用户有三类,学生、老师和系统管理员。
系统中有哪些可选的课程由管理员添加,学校公布选课信息后,学生就应该急时登陆选课系统进行选课。
凡是想要选课的学生,必须是在该学校有注册信息的学生,只有具有该校学生资格,才可以进行选课。
课程重要的信息之一就是该课程的代课老师。
老师同样应该具有该校的教师(teacher)资格,才可以教授该校所开设的课程。
当老师登陆时,可以查看自己所教的课程的报名情况,以及学生对该课的评价等等信息。
学生和老师都不可能使用管理员的功能。
2.3假定和约束2.3.1 进度约束:在2011年9月8日前完成全部进度,分三周进行,第一周完成需求分析说明书和详细设计说明书;第二周完成SQL语句的编写,系统界面设计以及调试等相关工作;第三周进行系统调试和修改完善工作。
2.3.2 系统约束:1.系统中所有账户能够供用户随时使用,能够随时使用相应功能。
2.同一时刻,所有账户不能在多个地方登陆。
3.学生选课数目不能超过学校限制。
4.不能选已经超过规定人数的的课程,不能选已经开课的课程。
5.没有达到规定人数的课程不能开课。
6.该系统必须确保所有数据安全,以免损失。
所有用户都要登陆才能访问,每个用户只能使用所属角色的权限,必要时限定访问次数。
7.界面友好,操作简单。
8.软件系统开放性好,结构灵活,可扩充,方便维护。
9.安全可靠。
2.3.3用户约束1.一个学生至少要选择一门课程(course),也可以选择多门课程,每一门课程的选课人数必须达到一定数量才能开课。
2.学校为了教学内容的丰富,会不定期的增加一些课程(course),并且请一位相关专业的教师进行讲解,同时为了调动老师积极性,也鼓励一个老师同时开设多门课程(course)。
3. 如果教师开设的课程受学生欢迎,下一学年可以继续开设该们课程。
4.所有选课信息(stucourse)都必须记录,以备将来教学评估以及对学生选课信息的查询。
2.3.4假设与前提条件.1.假设学生不在学校,照样可以选课。
只要有联网的电脑,登录学校官网就可进行选课。
2.假设用户忘记密码,系统设置找回密码的方法,也可与管理员联系。
3需求分析3.1对功能的规定1.学生根据所在院系的名称(college),查看本学期所开设的课程的信息。
2.教师根据教师编号(tid)可以查看自己所教课程的信息。
3.学生可以根据课程编号(cid),查询某课程的信息,从而对该课程进行相应的选择。
4.教师通过课程编号(cid),查看选择该课程的学生的信息。
5.管理员查询学生选择课程人数最多的前三门课程的信息,从而对其进行教学评估。
6.管理员可以更新学生、教师、课程的信息。
3.2对性能的规定3.2.1安全性要求:①系统应设置访问用户的标识以鉴别是否是合法用户,并要求合法用户设置其密码,保证用户身份不被盗用;②系统应对不同的数据设置不同的访问级别,限制访问用户可查询和处理数据的类别和内容;③系统应对不同用户设置不同的权限,区分不同的用户,如区分普通用户(学生),管理员。
3.2.2完整性要求:①各种信息记录的完整性,信息记录内容不能为空;②各种数据间相互的联系的正确性;③相同的数据在不同记录中的一致性。
3.3输人输出要求该系统为教学管理系统的一个模块,因此它的输入数据由总系统的其它模块提供,其输出数据一部分可显示给用户,另一部分作为其它子模块的输入。
3.4故障处理要求1.面对突然死机,断电等情况能够还原原有数据,自动备份;2.数据输入错误能够识别并提醒;3.选修课程后未参加考试没有成绩则删除此学生的这条选修信息。
4软件设计与实现4.1系统功能结构4.2系统数据结构4.2.1概念结构设计4.2.1.1系统实体属性图:1. 具有学生资格的学生应该包括如下信息:学号(Sno),学生姓名(Sname),性别(Gender),年龄(Age),政治面貌(Political),系别(Branches),班级(Class);4.2 学生属性图2. 每门课程应该包括如下信息:课程号(Cid),课程名称(Cname),学分(Credit),课时(Hour),需求人数(Total),课称描述(Decription):4.3 课程属性图3.教师信息应该包括如下:教师号(Tid),教师姓名(Tname),职称(Title),所在系别(Branches),研究方向(Professional),简介(Introduce),年龄(Age),性别(Gender):4.4 教师属性图4.2.1.2实体联系图图4.5 系统E-R图4.2.2逻辑结构设计:学生信息(sid,sname,gender,age, branches,class);教师信息(tid,tname,ag,gender,title,branches,professional,introduce);课程信息(cid,cname,credit,hour),total,decription);学生选课信息(sid,cid,checkdata,grade);教师开课信息(tid,cid,opendata,counter,teachdata)。
4.2.3 物理结构设计表4.1 学生信息数据字典字段中文名称字段名类型长度说明学号Sno Varchar 10 学生学号姓名Sname Varchar 8 学生姓名性别Gender Varchar 2班级Class Int 6 学生所在班级政治面貌Political Varchar 2年龄Age Int 2系别Branches Varchar 15表4.2教师信息数据字典字段中文名称字段名类型长度说明教师号Sno Varchar 14 学生学号姓名Sname Varchar 8 学生姓名性别Gender Varchar 2简介Introduce Varchar 14 学生所在班级职称Title Varchar 2年龄Age Int 2系别Branches Varchar 15表4.3课程信息数据字典表4.4学生选课信息数据字典4.3功能需求与程序的关系4.4运行环境规定1.硬件平台:Windows 2000/XP/server 2003/72.软件平台:Microsoft Visual C++ 6.0SQL server 20053.设备:处理器:Inter (R) Core(TM)2 Quad;内存:2G 外存:250G;存储格式:exe,mdf,dsw;输入及输出设备:键盘,鼠标,显示器,打印机。
5软件测试5.1测试概要由于时间有限,我们主要对以下主要模块进行了测试:A:用户登录;B更新学生信息;C:更新教师信息;D:更新课程信息;E:学生进行选课;F:教师查看选课情况; G:教师进行评分; H:更新教师信息;I:数据库备份、数据库还原;5.2测试结果及调试表5.1 测试结果表图5.1 学生进行选课模块代码测试结果与预期的差别A可以按学生、教师、管理员各自的身份进行登录无 B 可以实现 无 C 可以实现 无D 可以实现无E根据现有的课程进行选课,并且更新数据库无 F 可以实现 无 G可以实现 无H没有完善这个程序中教师只能查看选修自己课程的学生信息,并且进行评分,没有更新自己信息的模块。
I不够完善没有进行这方面的考虑。
图5.2管理员添加课程信息图5.3 教师对学生所选课程进行评分图5.4 学生修改自己的密码5.3测试结论该程序能实现学生选课系统数据流图中的大部分功能,但由于时间不够,程序中没有对教师信息进行更新的功能模块。
经过对登录界面、学生界面、教师界面和管理员界面进行的登录增删改测试,初步证明了该程序基本稳定安全。
6小结经过这个小学期的软件工程课程设计活动,我们终于对整个软件开发过程有了一个更加详细的了解。