项目 | 内容 |
---|---|
课程班级博客链接 | 2020级计算机科学与技术 |
本次作业要求链接 | 实验七:综合软件项目案例 |
团队名称 | 什么是快乐星球组 |
团队成员分工描述 | 张倩:任务三、任务四、任务六 贾小萌:任务二、任务六、撰写博客 葛薇:任务一、任务五、任务七、任务八 |
团队的课程学习目标 | 1.掌握软件项目的数据库逻辑设计方法和软件结构设计方法 ; 2.练习StarUML软件工具绘制用例图、顺序图、类图等; |
本次作业在哪些方面帮助团队实现学习目标 | 1.练习用例图、类图、顺序图、状态图等UML建模技术在软件开发过程中的用途。 2.掌握软件项目的数据库逻辑结构设计方法。 3.掌握软件项目的软件结构设计方法。 4.理解面向对象软件开发过程。 |
团队博客链接 | 什么是快乐星球组 |
团队项目Github仓库地址链接 |
实验内容与步骤
任务1:将高校学生管理软件部署在Tomcat服务器,在浏览器输入:http://localhost:8080/Student/login.jsp,分别以管理员、教师、学生三类用户登录系统并对不同用户功能进行操作,其中管理员功能合并了教务员的职能。
- 用户登录界面
- 以管理员身份登录
- 以教师身份登录
- 以学生身份登录
任务2:绘制高校学生管理软件的用例图
- 高校学生管理软件用例图如下:
任务3:理解项目需求简介,采用简易应用规格说明技术,讨论高校学生教务管理系统的软件需求列表,采用面向对象分析方法绘制高校学生管理软件的类图。
-
简要陈述采用简易应用规格说明技术讨论案例软件用户需求的过程
分析各类用户需求
学生:我的资料、查询课程、查询成绩
教师:我的资料、修改成绩、学生查询、课程查询
管理员:学生管理、教师管理、班级管理、课程管理 -
高校学生管理软件类图如下:
任务4:绘制某一学生用户对象查询课程和成绩的顺序图;绘制教务员课程安排的顺序图
- 学生查找课程顺序图
- 学生查找成绩顺序图
- 教务员课程安排顺序图
任务5:理解分析高校学生管理软件中数据库表的物理结构,结合各表外键的定义,正确绘制数据库对应的E-R图。
- er图如下
任务6:理解分析高校学生管理软件代码结构,结合MVC软件设计模式特点,采用面向对象设计方法绘制高校学生管理软件的类图。
-
绘制的类图如下:
-
结合软件开发过程,总结任务3与任务6的类图与源代码中定义类的关系。
类图描述系统的静态结构,类图中包含从用户的客观世界模型中抽象出来的类、类的内部结构和类与类之间的关系帮助人们简化对系统的理解,它是系统分析和设计阶段的重要产物,也是系统编码和测试的重要模型依据。
代码中的类实质是一种引用数据类型,类的内部封装了属性和方法,用于操作自身的成员。类是对某种对象的定义,具有行为(behavior),它描述一个对象能够做什么以及做的方法(method)。
类图是对源代码中类的具体表示。 -
分析dao包中各java文件的用途。
DAO (DataAccessobjects 数据存取对象)是指位于业务逻辑和持久化数据之间实现对持久化数据的访问。通俗来讲,就是将数据库操作都封装起来。
ICla2Sub.java:封装了对班级、教师、课程管理的接口。
IClasses.java:封装了对班级信息管理的接口。
ILogin.java:封装了对用户登录管理的接口。
IMajor.java:封装了对专业信息管理的接口。
IOperator.java:封装了对操作者管理的接口。
IPicture.java:封装了对图片信息管理的接口。
IPrivilege.java:封装了对用户权限管理的接口。
IRole.java:封装了对角色信息管理的接口。
IScore.java:封装了对学生成绩信息管理的接口。
IStudent.java:封装了对学生信息管理的接口。
ISubject.java:封装了对课程信息管理的接口。
ITeacher.java:封装了对教师信息课程管理的接口。
任务7:结合实际教务管理系统的使用体验,分别为高校学生管理软件的教务员和学生设计开发满足用户实际需求的功能。如为教务员开发统计各门课程成绩平均分、各分数段人数统计、绘制成绩分布图等功能
- ①课程平均分
- ②各分数段统计(柱状图)
- ③各分数段统计(饼状图)
- ④评教功能
任务8:在2023-5-22至2023-6-10之间制定实验七任务的进度计划表和任务人员分工,任务实施期间记录完成各项任务实际花费的时间
- 任务进度计划表及分工
任务 | 成员 | 预计完成时间 |
---|---|---|
将高校学生管理软件部署在Tomcat服务器,并以三种身份登录 | 葛* | 5.23-5.26 |
绘制高校学生管理软件的用例图 | 贾*萌 | 5.26-5.27 |
绘制高校学生管理软件的类图 | 张* | 5.28-5.30 |
将绘制学生用户对象查询课程和成绩的顺序图;绘制教务员课程安排的顺序图 | 张* | 5.31 |
绘制高校学生管理软件数据库对应的E-R图 | 葛* | 6.1 |
类图与源代码中定义类的关系 | 张* | 6.2 |
分析dao包中各java文件的用途 | 葛* | 6.3 |
为高校学生管理软件的教务员和学生设计开发满足用户实际需求的功能 | 张倩、贾小萌、葛薇 | 6.4-6.8 |
撰写博客 | 贾*萌 | 6.9 |
- 各项任务花费时间(hour)
任务 | 预计花费时间 | 实际花费的时间 |
---|---|---|
任务一 | 3 | 2 |
任务二 | 1 | 0.8 |
任务三 | 3 | 4 |
任务四 | 1 | 1.5 |
任务五 | 2.5 | 3 |
任务六 | 4 | 5 |
任务七 | 25 | 35 |
任务八 | 0.5 | 0.3 |
撰写博客 | 2 | 2 |
团队成员完成本次实验学习心得:
张* :通过本次实验,对软件开发的整个过程有了更加深刻的理解,更加明白MVC设计模式的应用,这次实验内容明显感觉到与之前内容相比,有了明显的难度,在整个实验过程中,无论是增量开发还是类图的绘制,都花费了大量的时间,不仅对软件工程的开发流程更加熟悉,对starUML的使用也更加熟练,这次的实验,提升了我整体的软件工程素养能力和分析能力,为以后的相关学习和工作打下了坚实的基础。
贾*萌 :本次实验是一个综合软件项目案例,在实验中理解分析项目,掌握软件项目的数据库逻辑设计方法和结构设计方法,并采用面向对象分析方法绘制了用类图,联系实际,将理论加以应用,站在用户的角度考虑问题,为系统设计开发满足用户实际需求的功能。通过本次实验,为软件项目开发积累了不少经验,为之后的项目开发打下坚实基础,也进一步提升了我的能力。
葛* :通过本次实验,参与了一个完整项目的开发,自我提升了很多。通过分析项目明确了类与类之间的关系,巩固了之前所学习的知识,在绘制er图顺序图的过程中清楚了实体和实体之间的关系以及通信。由于本次实验任务繁多,所以更加深刻的体会到了小组合作分工的重要性,既不能完全独立工作,又不能全部人一起工作,需要我们直接相互配合,更加训练了小组的合作粘性。总的来说,这次实验收获颇丰,为以后的系统性学习和开发也打下了基础!