软件工程课程设计报告(大三下期2015年)课程名称:软件工程课程设计题目学生选课系统院系:软件工程完成时间:2015.5. 8组员:张中秋()高蕾()曾昭杰()UML网上学生选课系统程序设计一、课程设计的目的与要求UML统一建模课程是一门面向对象开发方法的设计语言。
UML统一建模课程设计实验课,着重加强面向对象建模技术。
使用 UML统一建模语言,用需求模型简化业务领域;用分析模型验证用例的正确性,一致性,完备性,可行性;用设计模型标识解决方案。
通过模型实现了从业务领域到软件领域的映射。
通过建模,使问题可视化,形式化。
通过以序列的建模和迭代活动,对于提高学生综合素质十分必要。
通过软件开发的实践训练,进一步掌握软件工程的方法和技术,提高软件开发的实际能力,培养工程设计能力和综合分析、解决问题的能力。
二、设计正文1. 概述1.1课题题目:网上学生选课系统1.2系统的主要目标:本系统目标是实现选课系统所需的各种基本功能,包括学生选课、查看已修课程、查看已选课程、退课功能和教师查看选修课程、提交课程成绩功能以及管理员添加学生、维护学生信息、成绩管理、添加教师、维护教师信息、维护选修课程,还有公用的修改密码等功能。
1.3系统的开发环境及运行环境:操作系统:wi ndow7建模工具:Ratio nal Rose 20072. 系统需求分析学生选课系统主要满足来自三方面的需求,这三个方面分别是学生用户(Student )、教师用户(Teacher)和管理员用户(Administrator ),也即是三类用户角色。
(1)学生用户是主要的需求者,主要需求功能是查询可选课程、查看自己选课情况及进行选课、、查看已修课程、退课操作等;(3)管理员用户的功能需求较为复杂,包括对学生信息、教师信息、课程信息进行管理。
在学生信息管理子模块中,实现对学生信息的添加、修改、删除操作,还可以输入查询条件进行查询操作。
在教师管理子模块中,实现对教师信息的添加、修改、删除、查询等操作。
在课程管理子模块中,实现对课程信息的添加,添加时为其分配任课教师、上课时间和地点,实现对课程的修改、删除、查看某个课程的详细信息等。
本系统将管理员用户、教师用户、学生用户的身份及权限进行严格的划分,让管理员拥有最高权限,可以查看、维护系统中的所有信息,如添加学生,添加课程,修改课程信息等;让教师拥有查看自己开设的课程的信息,以及提交所开设课程成绩的权限;让学生拥有选课和退选的权限;而修改密码模块的权限每个用户都可拥有,用以修改自己的密码信息。
通过进行严格的权限划分,可以更好地进行管理,也可更好地保护用户信息安全。
2、1用例图图A用例图包系统的用例图分为三个部分,分别有三个角色:学生、老师和管理员。
图B学生用例图学生用例中,学生能进行的活动有注册、修改自己登录密码、登陆、学生管理(里面包括查看课程内容、选课、退选、查看已修的课程以及更改自己的信息) 。
图C老师用例图老师用例中,老师能进行的活动有修改自己的密码、登陆、老师管理(里面包括查看个人信息、查看学生成绩、提交学生成绩以及提交自己要开设的课程) 。
图D管理员用例图管理员的用例中,管理员能进行的活动有修改自己的密码、学生信息管理(增加学生、修改学生信息以及删除学生)、老师信息管理(增加老师、删除老师以及修改老师的信息)、课程信息管理(增加课程、修改课程信息、删除课程以及录入分数) 。
从上面的三个不同角色的用例图我们可以看出管理员的权限最大,教师的权限次之,学生的权限最低。
2、2类图图E类图分包类图分包中,将所有的类图分成界面类(Boundries )、控制类(Control )、实体类(Entities )。
图F界面类在界面类中,拥有登陆界面(LoginFrame),注册界面(RegisterFrame),学生自我管理界面(StudentFrame),老师自我管理界面(TeacherFrame),管理员管理界面(Admi ni stratorFrame ,其中管理员管理界面又由学生信息界面(StudentlnformationManagement )、老师信息管理界面(TeacherInformantionManagement、和课程信息管理界面(CourseInformationManagement、三个部分组成。
、但以上的所有界面组合成主界面(Mai nF ram^。
其中大多数界面都有着相同的方法 CreateWi ndows (),这是界面类创建的方法。
图G控制类控制类的设计主要是根据用例图中的功能设计的,具体分为注册控制( Register )、登录控制(Login )、学生自我管理控制(StudentManagement)、教师自我管理控制(TeacherManagemen]、管理员管理控制(AdminManagemer,它有三个子类学生信息管理控制(StudentlnformationManagement )、老师信息管理控制(TeacherInformationManagement、和课程信息管理控制图H实体类实体类的开发就像是JavaBean—样,所以在实体类中主要有学生类(Student )、教师类(Teacher)、管理员类(Administrator )、课程信息类(Courselnformation )、成绩信息类(GradeInformation )、选课单信息类(TheSelectedCourselnformation )。
2、3活动图图I学生注册课程的活动图活动途中包括了对学生注册的活动进行描写,注册的成功与失败,学生登录与失败的反应。
包含查看课程信息、选择课程。
退选、擦看已修课程成绩、改个人信息,修改密码等操作。
2、4时序图图J学生注册时序图这里面主要是注册界面到学生管理界面的过渡,设计到的方法有创建一个新的窗口,提交,注册验证,以及获取JavaBean。
图K学生登录时序图这里主要是登陆界面到学生管理界面的过渡,涉及到的方法有创建新窗口,提交,登录验证,获取学生类的JavaBean实体类。
图L学生修改个人信息密码时序图这里主要是在学生管理界面中实现对学生实体类中密码和个人信息的修改。
图M学生选课退课查看成绩时序图这里主要是对学生查看课程,选择课程、查看选择的课程、退选课程、查看成绩的实现。
2、5状态图图N学生登录类状态图此图中主要涉及了登录未登录,是否重新登录,密码验证等状态。
图0学生管理类的状态图此图中涉及到是否选课状态、选课是否成功的状态、是否获取自己的信息状态、是否退选状态等状态。
图P组件图此图中的所有组件代表着一个类,有控制类,界面类以及实体类。
图Q部署图此图中的结构有四层,数据层,程序应用层,网络传输层和用户客户端。
3部分核心类代码3、 1学生信息管理类//Source file: D:\\Java_SDK\\jdk7\\Stude ntln formatio nMan ageme nt.javaimport Con trol.Admi nMan ageme nt;public class Stude ntl nformati onMan ageme nt exte nds AdminMan ageme nt{public String Stude ntNumber;private Str ing Stude ntName;private Str ing Stude ntPassword;private Stri ng sex;private Stri ng Professi on al;private Str ing ClassNumber;public AdminMan ageme nt theAdm inMan ageme nt;/**public Stude ntl nformatio nMan ageme nt() {}}3、2登陆类//Source file: D:\\Java_SDK\\jdk7\\Logi n.javaimport Con trol.Admi nMan ageme nt;public class Log in{private Str ing Stude ntNumber;private Str ing Stude ntPassword;private Stri ng TeacherNumber;private Stri ng TeacherPassword;private Str ing Admin Number;private Str ing Admin Password;public Stude ntMa nageme nt theStude ntMa nageme nt; public TeacherMa nageme nt theTeacherMa nageme nt;public AdminMan ageme nt theAdm inMan ageme nt;/***/public Logi n(){}/*** @return Stri ng* @roseuid 554C7DF90296*/public Stri ng Submit。
{return n ull;}/*** @return Stri ng* @roseuid 554C7E1D02FA*/public String Can cel(){return n ull;}/*** @return Stri ng* @roseuid 554C7E2400C0*/public String Log in Check()}3、3学生实体类//Source file: D:\\Java_SDK\\jdk7\\Stude nt.javapublic class Stude nt{private Str ing Stude ntNumber;private Str ing Stude ntName;private Str ing Sex;private Str ing Stude ntPassword;private Stri ng Professi on al;private In teger ClassNumber;public Grade In formati on theGradeI nformatio n;public TheSelectedCoursel nformatio n theTheSelectedCourse In formati on;/* †* @roseuid 554F7A590353*/public Stude nt(){}* @roseuid 554C46E40313*/public void Log in(){}* @roseuid 554C46EF0276*/public void regesiter(){}* @roseuid 554C4702006A*/public void LogOff(){}/*** @roseuid 554C474A02B9*/public void Log in Check()public void ModifyStude ntPassword() {}* @roseuid 554C47AA01F8*/public void SelectTheCourses(){}* @roseuid 554C47B70351*/public void ViewTheSelectedCourses() {}* @roseuid 554C47FC0226*/public void DropCourses(){}/‡§* @roseuid 554C480C00EB*/public void SeeTheCompletetedCourses() { }‡@roseuid 554C481F0276*/public void Cha ngeOfStude ntl nformatio n() {}/*** @roseuid 554C4F28036A*/public void RegisterCheck()。