202306-人民当家作组 实验七 综合软件项目案例

发布时间 2023-06-10 22:40:35作者: 人民当家作组
项目 内容
课程班级博客链接 2020级卓越工程师班
这个作业要求链接 实验七 综合软件项目案例
团队名称 人民当家作组
团队的课程学习目标 (1)练习用例图、类图、顺序图、状态图等UML建模技术在软件开发过程中的用途;
(2)掌握软件项目的数据库逻辑结构设计方法;
(3)掌握软件项目的软件结构设计方法;
(4)理解面向对象软件开发过程;
这个作业在哪些方面帮助团队实现学习目标 (1)通过下载安装并且动手操作,逐渐熟悉软件
(2)通过绘制类图和顺序图,结合书本上学到的知识,掌握一门新技术-UML建模技术
团队博客链接 人民当家作组
团队Github链接 https://github.com/chloe-do/se

任务1 :将高校学生管理软件部署在Tomcat服务器,在浏览器输入:http://localhost:8080/Student/login.jsp,分别以管理员、教师、学生三类用户登录系统并对不同用户功能进行操作,其中管理员功能合并了教务员的职能。

管理员登录页面:

教师登录页面:

学生登录页面:

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

用户1:管理员

用户2:教师

用户3:学生

任务3:理解项目需求简介,采用简易应用规格说明技术,讨论高校学生教务管理系统的软件需求列表,采用面向对象分析方法绘制高校学生管理软件的类图。

(1)简要陈述采用简易应用规格说明技术讨论案例软件用户需求的过程。

在软件开发过程中,需求分析是首要工作。在本系统系统中,主要涉及到学生、教师、管理员。
各个用户的需求列表包括以下内容:
学生:查看个人信息、修改个人信息、接收通知、查询课程、查询成绩、查询课表、查询同班同学、查询考试安排、进行教学评价
教师:查看个人信息、修改个人信息、接收通知、查询学生、查询学生成绩、查询班级、查询班级课程表、导出班级成绩、查询评价、查询我的课程
管理员:添加学生、查询学生、添加班级、查询班级、添加班级课程、查询班级课程、添加教师、查询教师、查询学生成绩、查询班级课程、添加课程、添加专业、绘制成绩图表、添加考试安排、向学生和教师发送通知

(2)绘制类图,类图名称自拟,类图中每个类需要提供类名、属性及其方法名,并正确建立类关系。

任务4:绘制某一学生用户对象查询课程和成绩的顺序图;绘制教务员课程安排的顺序图。

学生查询课程顺序图

学生查询成绩顺序图

教务员课程安排顺序图

任务5:理解分析高校学生管理软件中数据库表的物理结构,结合各表外键的定义,正确绘制数据库对应的E-R图。

任务6:理解分析高校学生管理软件代码结构,结合MVC软件设计模式特点,采用面向对象设计方法绘制高校学生管理软件的类图。

1:类图

2:结合软件开发过程,总结任务3与任务6的类图与源代码中定义类的关系。
在软件工程中,类图和源代码中定义类是紧密相关的。类图是一种表示软件系统的静态结构的图形化表示形式,其中包括类、接口、属性和方法等元素。与此相对应,源代码中也定义了程序中的类、接口、属性和方法等部分。在类图中,类通常被表示为一个矩形,其中包含类的名称、属性和方法。类的属性通常被表示为一个或多个变量,而方法则被表示为函数。类之间的关系则使用不同的箭头、线条和符号来表示,如继承、实现、关联和依赖。在源代码中,类通常被定义为一个类定义,其中包含类的名称、属性和方法的实现。类的属性通常被表示为一个或多个成员变量,而方法则被定义为函数或方法。类之间的关系则通过一些关键字和语法形式来表示,如继承、实现、关联和依赖等。任务3和任务6中的类图和源代码中定义类之间的关系是相互对应的,类图是以图形化的形式表达源代码中定义的类的关系和结构,而源代码则更为详细地定义了类的实现细节和行为特征。两者相互依存,共同构成了一个完整的软件系统。任务3的类图是在需求分析和设计阶段创建的,用于描述系统的结构和组件之间的关系。源代码中的类定义和任务3的类图对应,包含了类的属性和方法的实现。
任务6的源代码是在编码和实现阶段创建的,根据任务3的设计和类图进行实现。源代码中的类定义包含了类的属性和方法的定义和实现,与任务3的类图中的类对应关系保持一致。

3:尝试分析dao包中各java文件的用途
ICla2Sub.java:定义教师,学生,课程之间对应关系的接口,包含了增删改查等操作
IClasses.java:定义班级信息接口,包含增删改查等操作
ILogin.java:与operator表中的信息对比,检验账号是否匹配;
IMajor.java:定义专业信息接口,包含了增删改查等操作
IOperator.java:此系统用户登录信息账号,密码等,包含了对这些信息的增删改查等操作
IPicture.java:与student表中的信息对比,检验学生是否更新、上传或删除了照片;
IPrivilege.java:定义三种角色的特权功能接口,包含了增删改查等操作
IRole.java:定义角色信息接口,包含了增删改查等操作
IScore.java:定义成绩信息接口,包含了增删改查等操作
IStudent.java:定义学生信息接口,包含了增删改查等操作
ISubject.java:定义课程信息接口,包含了增删改查等操作
ITeacher.java:定义教师信息接口,包含了增删改查等操作

任务7:结合实际教务管理系统的使用体验,分别为高校学生管理软件的教务员和学生设计开发满足用户实际需求的功能。

功能1:为学生和教师添加 忘记密码


功能2:教务员向学生和教师发通知

功能3:学生和教师接受通知

功能4:教务员进行考试安排

功能5:学生可查看考试安排

功能6:学生可进行教评

功能7:教师可查看评分

功能8:教务员绘制成绩图表

github链接:|https://github.com/chloe-do/se

任务8:

1:任务实施期间记录完成各项任务实际花费的时间。

任务内容 预计花费时间 (min) 实际花费时间 (min)
将高校学生管理软件部署在Tomcat服务器,在浏览器分别以管理员、教师、学生三类用户登录系统并对不同用户功能进行操作 20 30
绘制高校学生管理软件的用例图 90 150
理解项目需求简介,采用简易应用规格说明技术,讨论高校学生教务管理系统的软件需求列表,采用面向对象分析方法绘制高校学生管理软件的类图 200 300
绘制某一学生用户对象查询课程和成绩的顺序图;绘制教务员课程安排的顺序图 60 80
理解分析高校学生管理软件中数据库表的物理结构,结合各表外键的定义,正确绘制数据库对应的E-R图 100 120
理解分析高校学生管理软件代码结构,结合MVC软件设计模式特点,采用面向对象设计方法绘制高校学生管理软件的类图 200 240
结合实际教务管理系统的使用体验,分别为高校学生管理软件的教务员和学生设计开发满足用户实际需求的功能。 500 600

2:在2023-5-22至2023-6-10之间的进度计划表

时间 进度计划
5.23-5.26 小组内交流讨论,形成整体框架
5.27- 5.30 开发新功能
5.31-6.3 绘制类图,类关系图
6.4-6.6 绘制用例图
6.7-6.8 绘制E-R图
5.9-6.10 绘制顺序图,撰写博客

3:成员分工

成员 分工
郭思彤 部署项目,设计开发新功能
古丽努尔·开萨尔 绘制类图和建立类关系,E-R图
美合日阿依·麦麦提敏 绘制顺序图,用例图,撰写博客

实验心得

成员 是实验心得
郭思彤 通过本次实验,我掌握了软件项目的数据库逻辑结构设计方法,掌握了类图关系的建立,加强了实践操作能力,熟练掌握了starUML的操作。
古丽努尔·开萨尔 在本次实验中,我通过画类图和类之间的关系,对代码中的类和类之间的关系有了更深刻的了解,对类中所采用的属性和方法的认识也更深了,深刻体会到软件项目的开发离不开各方面知识,也深刻认识到了软件工程的重要性。
美合日阿依·麦麦提敏 本次实验中我负责了,绘制顺序图,用例图,以及撰写博客,进一步掌握了软件项目的软件结构设计方法,在画图过程中遇到了不少问题,这些问题通过上网查资料,小组成员一起讨论得到了解决。