202309-发际线与你作队 实验七 综合软件项目案例
项目 | 内容 |
---|---|
课程班级博客链接 | 2020卓越工程师班 |
这个作业要求链接 | 实验七 综合软件项目案例 |
团队名称 | 发际线与你们作队 |
我的课程学习目标 | 完成综合软件项目案例,对相关知识进行再次复习 |
这个作业在哪些方面帮助我实现学习目标 | (1)练习用例图、类图、顺序图、状态图等UML建模技术在软件开发过程中的用途。 (2) 掌握软件项目的数据库逻辑结构设计方法。 (3)掌握软件项目的软件结构设计方法。 (4)理解面向对象软件开发过程。 |
团队博客链接 | 发际线与你们作队 |
Github链接 | 本次作业Github链接 |
一、将高校学生管理软件部署在Tomcat服务器,在浏览器输入http://localhost:8080/Student/login.jsp 分别以管理员、教师、学生三类用户登录系统并对不同用户功能进行操作,其中管理员功能合并了教务员的职能。
- 在浏览器的登陆界面如下
- 以管理员身份登录
- 以教师身份登录
- 以学生身份登录
二、绘制高校学生管理软件的用例图
高校学生管理软件的用例图如下:
三、理解项目需求简介,采用简易应用规格说明技术,讨论高校学生教务管理系统的软件需求列表,采用面向对象分析方法绘制高校学生管理软件的类图
-
简易应用规格说明书
-
小组讨论软件需求列表
-
小组约束讨论
-
类图
四、绘制某一学生用户对象查询课程和成绩的顺序图;绘制教务员课程安排的顺序图
-查询课程顺序图
-查询成绩顺序图
-教务员排课顺序图
五、理解分析高校学生管理软件中数据库表的物理结构,结合各表外键的定义,正确绘制数据库对应的E-R图
- E-R图
六、理解分析高校学生管理软件代码结构,结合MVC软件设计模式特点,采用面向对象设计方法绘制高校学生管理软件的类图
1.类图
- 所有类的类图
- 类关系图
注:由于servlet过多,完整图中线过于复杂,这里只展示一部分
2、结合软件开发过程,总结任务3与任务6的类图与源代码中定义类的关系
在软件工程中,类图和源代码中定义类是紧密相关的。类图是一种表示软件系统的静态结构的图形化表示形式,其中包括类、接口、属性和方法等元素。与此相对应,源代码中也定义了程序中的类、接口、属性和方法等部分。
在类图中,类通常被表示为一个矩形,其中包含类的名称、属性和方法。类的属性通常被表示为一个或多个变量,而方法则被表示为函数。类之间的关系则使用不同的箭头、线条和符号来表示,如继承、实现、关联和依赖。
在源代码中,类通常被定义为一个类定义,其中包含类的名称、属性和方法的实现。类的属性通常被表示为一个或多个成员变量,而方法则被定义为函数或方法。类之间的关系则通过一些关键字和语法形式来表示,如继承、实现、关联和依赖等。
因此,类图和源代码中定义类之间的关系是相互对应的,类图是以图形化的形式表达源代码中定义的类的关系和结构,而源代码则更为详细地定义了类的实现细节和行为特征。两者相互依存,共同构成了一个完整的软件系统。
3、 尝试分析dao包中各java文件的用途
- Dao的作用是封装对数据库的访问:增删改查,不涉及具体的业务逻辑,只是达到按某个条件获得指定数据的要求,即只负责如何使用sql调用接口获取数据,不负责数据用来干嘛。
java文件 | 功能用途 |
---|---|
ICla2Sub | 封装了对Cla2Sub表的增删改查和分页方法的接口 |
IClass | 封装了对classes表的增删改查和分页方法的接口 |
IMajor | 封装了对major表的增删改查和分页方法的接口 |
IOperator | 封装了对operator表的增删改查和分页方法的接口 |
IPrivilege | 封装了对privilege表的增删改查和分页方法的接口 |
IRole | 封装了对role表的增删改查和分页方法的接口 |
IScore | 封装了对score表的增删改查和分页方法的接口 |
IStudent | 封装了对student表的增删改查和分页方法的接口 |
ISubject | 封装了对subject表的增删改查和分页方法的接口 |
ITeacher | 封装了对teacher表的增删改查和分页方法的接口 |
IPicture | 封装了对student表中的stu_pic字段的增加、删除、修改方法的接口 |
ILogin | 封装了login方法的接口 |
七、结合实际教务管理系统的使用体验,分别为高校学生管理软件的教务员和学生设计开发满足用户实际需求的功能。如为教务员开发统计各门课程成绩平均分、各分数段人数统计、绘制成绩分布图等功能
1、教师查看各门课程成绩平均分
- 课程平均成绩查询主界面:
- 本案例中所使用的教师账号截图如下:
- 该身份教师所管理的课程为JavaSE,则其所教课程平均成绩如下:
2、excel导入批量学生
3、各分数段成绩人数以及占比和绘制成绩分布图统计
4、学生端导出成绩
5、验证码
6、忘记密码
7、平时成绩、测试成绩、总成绩平均分
- 各门平均分分析
八、在2023-5-22至2023-6-10之间制定实验七任务的进度计划表和任务人员分工,任务实施期间记录完成各项任务实际花费的时间
1、 任务用时表(单位:min)
任务内容 | 预计花费时长 | 实际花费时长 |
---|---|---|
将高校学生管理软件部署在Tomcat服务器,在浏览器分别以管理员、教师、学生三类用户登录系统并对不同用户功能进行操作 | 20 | 40 |
绘制高校学生管理软件的用例图 | 60 | 100 |
理解项目需求简介,采用简易应用规格说明技术,讨论高校学生教务管理系统的软件需求列表,采用面向对象分析方法绘制高校学生管理软件的类图 | 130 | 180 |
绘制某一学生用户对象查询课程和成绩的顺序图;绘制教务员课程安排的顺序图 | 40 | 30 |
理解分析高校学生管理软件中数据库表的物理结构,结合各表外键的定义,正确绘制数据库对应的E-R图 | 40 | 110 |
理解分析高校学生管理软件代码结构,结合MVC软件设计模式特点,采用面向对象设计方法绘制高校学生管理软件的类图 | 150 | 250 |
结合实际教务管理系统的使用体验,分别为高校学生管理软件的教务员和学生设计开发满足用户实际需求的功能。如为教务员开发统计各门课程成绩平均分、各分数段人数统计、绘制成绩分布图等功能 | 360 | 400 |
在2023-5-22至2023-6-10之间制定实验七任务的进度计划表和任务人员分工,任务实施期间记录完成各项任务实际花费的时间 | 30 | 40 |
完成《实验七 综合软件项目案例》团队博文作业 | 80 | 150 |
2、 在2023-5-22至2023-6-10之间的进度计划表
时间 | 进度计划 |
---|---|
5.25-5.26 | 对项目整体部署构思 |
5.27-5.28 | 整体分析需求分析、绘制用例图 |
5.29-5.30 | 绘制顺序图、E-R图 |
5.31-6.3 | 绘制所有类图、类关系图 |
6.4-6.6 | 完成任务七的开发功能 |
6.8-6.9 | 分析类图等、完成博客作业 |
注:以上时间均为2023年份
3. 成员分工
成员 | 分工 |
---|---|
张*国 | 完成项目部署、绘制用例图、类图、顺序图 |
邓*超 | 完成绘制类图、E-R图 |
马*财 | 完成设计开发满足用户实际需求的功能 |
潘*荣 | 分析类图关系、完成博客作业 |
3. 本次实验心得
成员 | 心得 |
---|---|
张*国 | 本次实验我负责部署项目和顺序图、用例图以及组织组内人员采用简易应用规格说明技术讨论高校教务管理系统的需求并利用面向对象设计方法绘制讨论结果的类图,掌握本次案例软件的功能,结构。对于团队软件开发的过程有了更深一步的理解! |
邓*超 | 本次案例中我负责数据库ER图的绘制并结合开发实例利用面向对象设计方法绘制本案例的类图,在这一过程中我充分理解了各个类之间的关系,类的属性和方法,对开发软件的结构有了更深一步的理解。 |
马*财 | 本次实验我负责增量开发,开发了学生端导出学生成绩表以及教师端获取学生平均成绩的功能,并与舍友的交流过程中温故了类图的结构与功能。在开发过程中遇到了遗忘了如何在前端用js发送请求的并且如何接受返回指问题,在csdn的帮助下成功解决。本次实验提高了发现问题-解决问题的能力,与团队成员交流的能力,了解了软件的模块化开发的重要性,令我受益匪浅。 |
潘*荣 | 本次实验综合性较强,是对前几次实验的一个合并,在实验过程中绘制类图花费了我们大量的时间,增量开发的内容也极具挑战性,在本学期的案例学习中对于团队分工合作有了更深的认识,对于软工这门课从时间的角度也学到更多实践内容,最终在团队努力下完成了各项任务,也完成了部分自己的增量内容。 |