UML网上学生选课系统程序设计.docx
《UML网上学生选课系统程序设计.docx》由会员分享,可在线阅读,更多相关《UML网上学生选课系统程序设计.docx(16页珍藏版)》请在冰豆网上搜索。
UML网上学生选课系统程序设计
软件工程课程设计报告
(大三下期2015年)
课程名称:
软件工程课程设计
题目:
学生选课系统
院系:
软件工程
完成时间:
2015.5.8
组员:
张中秋(U)
高蕾(U)
曾昭杰(U)
UML网上学生选课系统程序设计
一、课程设计的目的与要求
UML统一建模课程是一门面向对象开发方法的设计语言。
UML统一建模课程设计实验课,着重加强面向对象建模技术。
使用UML统一建模语言,用需求模型简化业务领域;用分析模型验证用例的正确性,一致性,完备性,可行性;用设计模型标识解决方案。
通过模型实现了从业务领域到软件领域的映射。
通过建模,使问题可视化,形式化。
通过以序列的建模和迭代活动,对于提高学生综合素质十分必要。
通过软件开发的实践训练,进一步掌握软件工程的方法和技术,提高软件开发的实际能力,培养工程设计能力和综合分析、解决问题的能力。
二、设计正文
1.概述
1.1课题题目:
网上学生选课系统
1.2系统的主要目标:
本系统目标是实现选课系统所需的各种基本功能,包括学生选课、查看已修课程、查看已选课程、退课功能和教师查看选修课程、提交课程成绩功能以及管理员添加学生、维护学生信息、成绩管理、添加教师、维护教师信息、维护选修课程,还有公用的修改密码等功能。
1.3系统的开发环境及运行环境:
操作系统:
window7
建模工具:
RationalRose2007
2.系统需求分析
学生选课系统主要满足来自三方面的需求,这三个方面分别是学生用户(Student)、教师用户(Teacher)和管理员用户(Administrator),也即是三类用户角色。
(1)学生用户是主要的需求者,主要需求功能是查询可选课程、查看自己选课情况及进行选课、、查看已修课程、退课操作等;
(2)教师用户主要需求功能是查看自己所教授的课程、课程有哪些学生选修、以及利用本系统提交学生的成绩;
(3)管理员用户的功能需求较为复杂,包括对学生信息、教师信息、课程信息进行管理。
在学生信息管理子模块中,实现对学生信息的添加、修改、删除操作,还可以输入查询条件进行查询操作。
在教师管理子模块中,实现对教师信息的添加、修改、删除、查询等操作。
在课程管理子模块中,实现对课程信息的添加,添加时为其分配任课教师、上课时间和地点,实现对课程的修改、删除、查看某个课程的详细信息等。
本系统将管理员用户、教师用户、学生用户的身份及权限进行严格的划分,让管理员拥有最高权限,可以查看、维护系统中的所有信息,如添加学生,添加课程,修改课程信息等;让教师拥有查看自己开设的课程的信息,以及提交所开设课程成绩的权限;让学生拥有选课和退选的权限;而修改密码模块的权限每个用户都可拥有,用以修改自己的密码信息。
通过进行严格的权限划分,可以更好地进行管理,也可更好地保护用户信息安全。
2、1用例图
图A用例图包
系统的用例图分为三个部分,分别有三个角色:
学生、老师和管理员。
图B学生用例图
学生用例中,学生能进行的活动有注册、修改自己登录密码、登陆、学生管理(里面包括查看课程内容、选课、退选、查看已修的课程以及更改自己的信息)。
图C老师用例图
老师用例中,老师能进行的活动有修改自己的密码、登陆、老师管理(里面包括查看个人信息、查看学生成绩、提交学生成绩以及提交自己要开设的课程)。
图D管理员用例图
管理员的用例中,管理员能进行的活动有修改自己的密码、学生信息管理(增加学生、修改学生信息以及删除学生)、老师信息管理(增加老师、删除老师以及修改老师的信息)、课程信息管理(增加课程、修改课程信息、删除课程以及录入分数)。
从上面的三个不同角色的用例图我们可以看出管理员的权限最大,教师的权限次之,学生的权限最低。
2、2类图
图E类图分包
类图分包中,将所有的类图分成界面类(Boundries)、控制类(Control)、实体类(Entities)。
图F界面类
在界面类中,拥有登陆界面(LoginFrame),注册界面(RegisterFrame),学生自我管理界面(StudentFrame),老师自我管理界面(TeacherFrame),管理员管理界面(AdministratorFrame,其中管理员管理界面又由学生信息界面(StudentInformationManagement)、老师信息管理界面(TeacherInformantionManagement)和课程信息管理界面(CourseInformationManagement)三个部分组成。
)但以上的所有界面组合成主界面(MainFrame)。
其中大多数界面都有着相同的方法CreateWindows(),这是界面类创建的方法。
图G控制类
控制类的设计主要是根据用例图中的功能设计的,具体分为注册控制(Register)、登录控制(Login)、学生自我管理控制(StudentManagement)、教师自我管理控制(TeacherManagement)、管理员管理控制(AdminManagement,它有三个子类学生信息管理控制(StudentInformationManagement)、老师信息管理控制(TeacherInformationManagement)和课程信息管理控制(CourseInformationManagement))。
图H实体类
实体类的开发就像是JavaBean一样,所以在实体类中主要有学生类(Student)、教师类(Teacher)、管理员类(Administrator)、课程信息类(CourseInformation)、成绩信息类(GradeInformation)、选课单信息类(TheSelectedCourseInformation)。
2、3活动图
图I学生注册课程的活动图
活动途中包括了对学生注册的活动进行描写,注册的成功与失败,学生登录与失败的反应。
包含查看课程信息、选择课程。
退选、擦看已修课程成绩、改个人信息,修改密码等操作。
2、4时序图
图J学生注册时序图
这里面主要是注册界面到学生管理界面的过渡,设计到的方法有创建一个新的窗口,提交,注册验证,以及获取JavaBean。
图K学生登录时序图
这里主要是登陆界面到学生管理界面的过渡,涉及到的方法有创建新窗口,提交,登录验证,获取学生类的JavaBean实体类。
图L学生修改个人信息密码时序图
这里主要是在学生管理界面中实现对学生实体类中密码和个人信息的修改。
图M学生选课退课查看成绩时序图
这里主要是对学生查看课程,选择课程、查看选择的课程、退选课程、查看成绩的实现。
2、5状态图
图N学生登录类状态图
此图中主要涉及了登录未登录,是否重新登录,密码验证等状态。
图O学生管理类的状态图
此图中涉及到是否选课状态、选课是否成功的状态、是否获取自己的信息状态、是否退选状态等状态。
图P组件图
此图中的所有组件代表着一个类,有控制类,界面类以及实体类。
图Q部署图
此图中的结构有四层,数据层,程序应用层,网络传输层和用户客户端。
3部分核心类代码
3、1学生信息管理类
//Sourcefile:
D:
\\Java_SDK\\jdk7\\StudentInformationManagement.java
importControl.AdminManagement;
publicclassStudentInformationManagementextendsAdminManagement
{
publicStringStudentNumber;
privateStringStudentName;
privateStringStudentPassword;
privateStringsex;
privateStringProfessional;
privateStringClassNumber;
publicAdminManagementtheAdminManagement;
/**
*@roseuid554FF
*/
publicStudentInformationManagement()
{
}
}
3、2登陆类
//Sourcefile:
D:
\\Java_SDK\\jdk7\\Login.java
importControl.AdminManagement;
publicclassLogin
{
privateStringStudentNumber;
privateStringStudentPassword;
privateStringTeacherNumber;
privateStringTeacherPassword;
privateStringAdminNumber;
privateStringAdminPassword;
publicStudentManagementtheStudentManagement;
publicTeacherManagementtheTeacherManagement;
publicAdminManagementtheAdminManagement;
/**
*@roseuid554F
*/
publicLogin()
{
}
/**
*@returnString
*@roseuid554C7DF90296
*/
publicStringSubmit()
{
returnnull;
}
/**
*@returnString
*@roseuid554C7E1D02FA
*/
publicStringCancel()
{
returnnull;
}
/**
*@returnString
*@roseuid554C7E2400C0
*/
publicStringLoginCheck()
{
returnnull;
}
}
3、3学生实体类
//Sourcefile:
D:
\\Java_SDK\\jdk7\\Student.java
publicclassStudent
{
privateStringStudentNumber;
privateStringStudentName;
privateStringSex;
privateStringStudentPassword;
privateStringProfessional;
privateIntegerClassNumber;
publicGradeInformationtheGradeInformation;
publicTheSelectedCourseInformationtheTheSelectedCourseInformation;
/**
*@roseuid554F7A
*/
publicStudent()
{
}
/**
*@roseuid554C46E40313
*/
publicvoidLogin()
{
}
/**
*@roseuid554C46EF0276
*/
publicvoidregesiter()
{
}
/**
*@roseuid554CA
*/
publicvoidLogOff()
{
}
/**
*@roseuid554C
*/
publicvoidModifyStudentPassword()
{
}
/**
*@roseuid554C474A02B9
*/
publicvoidLoginCheck()
{
}
/**
*@roseuid554C47AA01F8
*/
publicvoidSelectTheCourses()
{
}
/**
*@roseuid554C47B70351
*/
publicvoidViewTheSelectedCourses()
{
}
/**
*@roseuid554C47FC0226
*/
publicvoidDropCourses()
{
}
/**
*@roseuid554C480C00EB
*/
publicvoidSeeTheCompletetedCourses()
{
}
/**
*@roseuid554C481F0276
*/
publicvoidChangeOfStudentInformation()
{
}
/**
*@roseuid554C4F28036A
*/
publicvoidRegisterCheck()
{
}
}