吴彦组 实验七 综合软件项目案例
| 项目 | 内容 |
|---|---|
| 课程班级博客链接 | 2020级卓越工程师班 |
| 这个作业要求链接 | 实验七 综合软件项目案例 |
| 团队名称 | 吴彦组 |
| 团队的课程学习目标 | 1.练习用例图、类图、顺序图、状态图等UML建模技术在软件开发过程中的用途; 2.掌握软件项目的数据库逻辑结构设计方法; 3.掌握软件项目的软件结构设计方法; 4.理解面向对象软件开发过程。 |
| 这个作业在哪些方面帮助团队实现学习目标 | 本次实验中,我们通过部署软件开发环境,导入资源包以及数据库开发技术,并自己增加了一些功能完成本次实验。令我们复习了Java Web开发的基础并且通过上网查阅资料学习到了如何将数据库技术与项目工程进行结合,完成了本次综合软件项目案例。 |
| 团队博客链接 | 吴彦组 |
| 团队项目Github地址链接 | https://github.com/sangsang295/ |
任务1:将高校学生管理软件部署在Tomcat服务器,在浏览器输入:http://localhost:8080/Student/login.jsp,分别以管理员、教师、学生三类用户登录系统并对不同用户功能进行操作,其中管理员功能合并了教务员的职能。
(1)用户登录页面

(2)管理员主界面

(3)教师主界面

(4)学生主界面

任务2:绘制高校学生管理软件的用例图
以下是高校学生管理软件的用例图:

解释:
- 登录:用户通过用户名和密码登录系统。
- 查询个人信息:学生可以查询自己的基本信息,包括姓名、年龄、性别等。
- 修改个人信息:学生可以修改自己的基本信息。
- 查询课程信息:学生可以查询开设的课程信息。
- 选修课程:学生可以选择自己感兴趣的课程进行学习。
- 查看课表:学生可以查看自己的课程表。
- 查询成绩:学生可以查询自己的成绩。
- 教务管理:教务员可以对课程进行管理,包括添加、删除、修改和查询课程信息等操作。
- 成绩管理:教师可以录入、修改和查询学生成绩等成绩管理操作。
- 系统管理:管理员可以管理系统用户和角色权限。
任务3:理解项目需求简介,采用简易应用规格说明技术,讨论高校学生教务管理系统的软件需求列表,采用面向对象分析方法绘制高校学生管理软件的类图。
(1)简要陈述采用简易应用规格说明技术讨论案例软件用户需求的过程。
本项目旨在开发一款高校学生教务管理系统,提供全面的学生信息管理、课程管理、成绩管理等功能。该系统需要满足以下需求:
- 学生信息管理:包括学生基本信息、选课信息、考试信息等;
- 课程管理:包括课程信息、任课教师信息、上课时间表等;
- 成绩管理:包括学生成绩录入、查询、统计等;
- 系统权限管理:包括系统管理员、教师、学生三种角色的权限区分和管理。
| 需求编号 | 需求描述 |
|---|---|
| REQ001 | 学生信息管理 |
| REQ002 | 课程信息管理 |
| REQ003 | 成绩管理 |
| REQ004 | 用户权限管理 |
| REQ005 | 学生选课管理 |
| REQ006 | 教师授课管理 |
| REQ007 | 学生课表管理 |
| REQ008 | 成绩统计分析 |
(2)在作业博客中提供所绘制类图,类图名称自拟,类图中每个类需要提供类名、属性及其方法名,并正确建立类关系。

上图为高校学生管理软件的类图。其中,系统管理员、教师和学生为三种角色。每个角色都有对应的权限和功能。
- User类:描述系统用户的基本信息,包括用户名、密码、角色等。
- Student类:描述学生对象的属性和方法,包括姓名、年龄、性别、学号等基本信息,以及选课、查看成绩等操作。
- Teacher类:描述教师对象的属性和方法,包括姓名、年龄、性别、教工号等基本信息,以及授课、录入成绩等操作。
- Course类:描述课程对象的属性和方法,包括课程名称、课程编号、学分等基本信息,以及任课教师、上课时间等操作。
- Grade类:描述成绩对象的属性和方法,包括学生对象、课程对象、成绩等基本信息。
该类图能够较好地反映高校学生管理软件的核心功能和角色权限,并可用于后续系统设计和开发。
任务4:绘制某一学生用户对象查询课程和成绩的顺序图;绘制教务员课程安排的顺序图。
(1)学生用户对象查询课程的顺序图
以下是学生用户对象查询课程的顺序图:
解释:
- 学生用户向课程控制器发出查询请求。
- 课程控制器将请求转发给课程数据库进行查询。
- 如果查询到了指定的课程,课程数据库将课程信息返回给课程控制器。
- 课程控制器将课程信息返回给学生用户。
- 如果未查询到指定的课程,课程数据库将返回空结果。
- 课程控制器将空结果返回给学生用户。
(2)学生用户对象查询成绩的顺序图
以下是学生用户对象查询成绩的顺序图:
解释:
- 学生用户向成绩控制器发出查询请求。
- 成绩控制器将请求转发给成绩数据库进行查询。
- 如果查询到了指定的成绩,成绩数据库将成绩信息返回给成绩控制器。
- 成绩控制器将成绩信息返回给学生用户。
- 如果未查询到指定的成绩,成绩数据库将返回空结果。
- 成绩控制器将空结果返回给学生用户。
(3)教务员课程安排的顺序图
以下是教务员课程安排的顺序图:
解释:
- 教务员向课程控制器发出添加新课程的请求。
- 课程控制器将新课程信息转发给课程数据库进行添加操作。
- 如果添加操作成功,课程数据库将返回成功信息给课程控制器。
- 课程控制器将添加结果返回给教务员,显示添加操作成功。
- 如果添加操作失败,课程数据库将返回失败信息给课程控制器。
- 课程控制器将添加结果返回给教务员,显示添加操作失败。
任务5:理解分析高校学生管理软件中数据库表的物理结构,结合各表外键的定义,正确绘制数据库对应的E-R图。

任务6:理解分析高校学生管理软件代码结构,结合MVC软件设计模式特点,采用面向对象设计方法绘制高校学生管理软件的类图。
(1)在作业博客中提供所绘制类图,类图名称自拟,类图中每个类需要提供类名、属性及其方法名,并正确建立类关系。

(2)结合软件开发过程,总结任务3与任务6的类图与源代码中定义类的关系。
任务3:高校学生教务管理系统的软件需求列表
功能性需求:
- 学生管理:包括学生基本信息、课程信息、成绩信息等,可增删改查。
- 教师管理:包括教师基本信息、所授课程信息、学生信息等,可增删改查。
- 课程管理:包括课程基本信息、上课时间地点、选课情况等,可增删改查。
- 成绩管理:包括成绩录入、成绩查询、成绩统计等功能。
- 选课管理:包括学生选课、退课、教师开设课程等功能。
非功能性需求:
- 系统安全性要求高,需要进行权限管理和数据加密。
- 系统易用性要求高,操作简单明了,界面友好美观。
- 系统可靠性要求高,保证数据的准确性和完整性,避免数据丢失和损坏。
任务6:高校学生管理软件的类图
采用MVC设计模式,将系统分为三层:模型(Model)、视图(View)和控制器(Controller)。
-
Model层:负责处理业务逻辑、数据存储和访问。
-
View层:负责展示数据和交互界面。
-
Controller层:负责协调Model和View的交互,处理用户请求并转发给Model和View。
-
学生类(Student):存储学生信息。
-
教师类(Teacher):存储教师信息。
-
课程类(Course):存储课程信息。
-
成绩类(Score):存储成绩信息。
-
选课类(Selection):存储选课信息。
-
数据库类(Database):提供对数据的增删改查操作。
-
学生控制器类(StudentController):处理学生相关的用户请求。
-
教师控制器类(TeacherController):处理教师相关的用户请求。
-
课程控制器类(CourseController):处理课程相关的用户请求。
-
成绩控制器类(ScoreController):处理成绩相关的用户请求。
-
选课控制器类(SelectionController):处理选课相关的用户请求。
-
视图类(View):负责展示数据和交互界面。
总结:
在任务3中,我们列举了高校学生教务管理系统的功能和非功能需求。在任务6中,我们采用MVC设计模式绘制了高校学生管理软件的类图。可以看出,类图中定义的类与任务3中列举的系统需求是密切相关的。在软件开发过程中,需要对这些类进行细致的设计和实现,以满足系统需求并保证代码结构清晰、可维护性高。
(3)尝试分析dao包中各java文件的用途。
ICla2Sub.java:定义了管理课程与班级之间关系的数据访问接口。
IClasses.java:定义了对班级信息进行管理的数据访问接口。
IFeedback.java:定义了对学生反馈信息进行管理的数据访问接口。
ILogin.java:定义了对用户登录信息进行管理的数据访问接口。
IMajor.java:定义了对专业信息进行管理的数据访问接口。
IOperator.java:定义了对操作员信息进行管理的数据访问接口。
IPicture.java:定义了对图片信息进行管理的数据访问接口。
IPrivilege.java:定义了对用户权限信息进行管理的数据访问接口。
IRole.java:定义了对角色信息进行管理的数据访问接口。
IScore.java:定义了对学生成绩信息进行管理的数据访问接口。
IStudent.java:定义了对学生信息进行管理的数据访问接口。
ISubject.java:定义了对科目信息进行管理的数据访问接口。
ITeacher.java:定义了对教师信息进行管理的数据访问接口。
通过使用这些接口,我们可以在应用程序的不同层之间定义清晰的接口,提高了代码的可维护性和可扩展性,同时也使得我们可以更好地对数据库进行管理和操作。
任务7:结合实际教务管理系统的使用体验,分别为高校学生管理软件的教务员和学生设计开发满足用户实际需求的功能。如为教务员开发统计各门课程成绩平均分、各分数段人数统计、绘制成绩分布图等功能。
(1)为教务员开发统计各门课程成绩平均分、各分数段人数统计、绘制成绩分布图,共三个功能


(2)为学生开发查看自己的成绩排名,评教功能,共两个功能



(3)将代码上传至github:
项目链接:https://github.com/sangsang295/Student_Manager

任务8:实验总结
| 任务 | 花费时间/mins | 分工 |
|---|---|---|
| 将高校学生管理软件部署在Tomcat服务器 | 5 | 马维骁 |
| 绘制高校学生管理软件的用例图 | 30 | 李震 |
| 采用面向对象分析方法绘制高校学生管理软件的类图 | 60 | 李震 |
| 绘制某一学生用户对象查询课程和成绩的顺序图;绘制教务员课程安排的顺序图 | 60 | 李震 |
| 绘制数据库对应的E-R图 | 60 | 李震 |
| 采用面向对象设计方法绘制高校学生管理软件的类图 | 60 | 李震 |
| 为高校学生管理软件的教务员和学生设计开发满足用户实际需求的功能 | 240 | 马维骁 |
| 完成《实验七 综合软件项目案例》团队博文作业 | 120 | 马维骁 |
| 将软件源码上传到团队github仓库 | 10 | 马维骁 |
实验心得:
李*:使用合适的建模技术可以帮助我们更好地理解和描述系统的功能和行为,从而更高效地进行系统设计和开发。例如,在绘制用例图和顺序图时,我们可以清晰地表示不同用户在系统中的操作流程,并明确每个操作之间的关系和依赖性;在绘制类图时,我们可以清晰地表示各数据实体之间的关系及属性信息,方便开发者进行数据模型设计和开发。总之,本次实验让我更深入地了解了面向对象的软件开发过程和相关技术,使我对软件开发的理解更加深入和全面。我相信这次实验对我的职业发展和个人成长都将有着积极的影响。
马*:在本次实验中,通过绘制用例图、类图、顺序图、状态图等UML建模技术,了解了如何使用面向对象的思路来进行软件开发。同时,在学习和实践过程中,我也更深入地理解了软件项目的数据库逻辑结构设计和软件结构设计方法。同时,在实践过程中,我也深刻认识到了软件开发是一个多元化和复杂的过程。只有灵活应对不同的情况,才能更好地完成开发任务。因此,我们在学习和实践中要不断地学习和积累,尝试不同的方法和工具,以提高自己的开发能力和水平。
浙公网安备 33010602011771号