面向对象分析与设计
实验一 软件需求分析
1.1 业务需求描述
本系统主要包括系统管理员、教师、学生三种类型用户。学生可以查看个人成绩,查询学分和挂科数目以及学业预警。教师可以添加学生成绩,删除学生成绩,修改学生成绩,查看学生成绩查询挂科数目。教务处可以使用系统,输入学生信息、教师信息、课程信息,参与修改成绩审核,查询学生学分,对学生进行学业预警。
1.2 系统功能性需求分析
各科教师登录系统后可以查询和修改个人信息、修改自己的账号密码,查询自己的授课课程,实现对选修了自己课程的学生的成绩进行查询、录入和修改,各科老师可以对自己学生选修课程结束后给予分数。
每个学生登录系统后可以查询和修改个人信息、修改自己的账号密码,同时在课程结束后可以查询在校期间各个时间段选修课程的成绩与学分,以及学业预警。
教务处人员登录系统后可以查询和修改个人信息、修改自己的账号密码,在课程开始前输入学生信息、教师信息、院系信息、课程信息,参与修改成绩审核,查询学生学分,对学生进行学业预警。
1.3用例分析
1.3.1 系统参与者
学生:使用系统的目的是查询所学课程的成绩,查询学分和挂科数目以及学业预警。教师:完成学生成绩的录入、修改、查询、删除,查询挂科数目。教务处:输入学生信息、教师信息、课程信息,参与修改成绩审核,查询学生学分,对学生进行学业预警。
1.3.2 系统用例图
系统总用例图如图1-1所示。
图1-1 系统总用例图
1.3.3 用例描述
1.3.3.1 修改学生成绩用例描述
修改学生成绩用例描述如表1-1所示。
表1-1 修改学生成绩用例描述
用例名 | 修改学生成绩 |
主要业务参与者 | 教师(任课教师) |
其他参与者 | 教务管理员、学生(间接)、成绩管理系统 |
描述 | 允许教师在成绩提交截止前或经教务批准后,对已录入的学生成绩进行修改,并记录修改日志以确保可追溯性。 |
前置条件 | 1. 教师已成功登录成绩管理系统。 |
后置条件 | 1. 学生成绩被成功更新。 |
触发条件 | 教师发现已提交的成绩存在录入错误,或因补考、作业补交等原因需调整成绩。 |
基本流程 | 1. 教师进入“成绩管理”模块,选择对应课程。 2. 系统显示该课程所有学生的成绩列表。 3. 教师选择需要修改的学生,点击“编辑成绩”。 4. 教师输入新的成绩值并提交。 5. 系统验证成绩格式和范围(如0–100分或等级制)。 6. 系统保存新成绩,并自动记录修改日志。 |
替代流程 | A1:成绩已归档且无修改权限 若成绩已归档且未获教务授权,系统提示“成绩已锁定,无法修改”,并建议联系教务管理员。 A2:成绩格式无效 A3:需教务审批的修改 |
结束 | 成绩成功更新并记录日志,或操作被拒绝并给出明确原因。 |
实现约束和说明 | - 成绩修改仅限于任课教师本人所授课程。 - 所有修改必须留痕,不可覆盖原始记录。 - 系统应支持百分制、等级制等多种评分体系。 - 日志信息应包括:操作人、时间、课程、学生、原成绩、新成绩。 |
待解决问题 | - 是否允许批量修改成绩?若允许,如何保证操作安全? |
1.3.3.2 查询学分用例描述
查询学分用例描述如表1-2所示。
表1-2 查询学分用例描述
用例名 | 查询学分 |
主要业务参与者 | 查询学分 |
其他参与者 | 成绩管理系统、教务系统、辅导员(间接) |
描述 | 允许学生通过系统查询本人当前已获得的总学分、各课程类别(如必修、选修、实践等)的学分完成情况,以及毕业所需学分要求的对比信息。 |
前置条件 | 1. 学生已成功登录校园信息系统或成绩管理系统。 |
后置条件 | 1. 学生成功获取个人学分统计信息。 |
触发条件 | 学生需要了解自己的学分完成进度,例如在选课前、申请毕业或学业规划时。 |
基本流程 | 1. 学生登录系统后,进入“学分查询”或“学业进度”模块。 |
替代流程 | A1:无有效成绩数据 |
结束 | 学生成功查看个人学分信息,或系统给出明确错误提示并建议后续操作。 |
实现约束和说明 | - 学分计算必须严格依据学校现行培养方案和成绩管理规则。 |
待解决问题 | - 如何处理因课程替代、学分置换等特殊情况导致的学分认定? |
1.3.3.3 录入学生成绩用例描述
录入学生成绩用例描述如表1-3所示。
表1-3 录入学生成绩用例描述
用例名 | 录入学生成绩 |
主要业务参与者 | 教师(任课教师) |
其他参与者 | 成绩管理系统、教务管理员、学生(间接) |
描述 | 允许任课教师在课程结束后,在规定时间内将学生的课程成绩录入成绩管理系统,并提交审核或直接生效,确保成绩数据的准确性和及时性。 |
前置条件 | 1. 教师已成功登录成绩管理系统。 |
后置条件 | 1. 学生成绩被成功保存至系统数据库。 |
触发条件 | 课程考核(如期中、期末、实验、论文等)完成,教师需将评定后的成绩正式录入系统。 |
基本流程 | 1. 教师进入“成绩管理”模块,选择需要录入成绩的课程。 |
替代流程 | A1:成绩录入时间已截止 |
结束 | 成绩成功提交并保存,或因不符合条件被拒绝并给出明确提示。 |
实现约束和说明 | - 仅课程指定的任课教师可录入该课程成绩。 |
待解决问题 | - 如何处理合班课、跨院系课程的多教师协同录分? |
1.3.3.4 查询成绩用例描述
查询成绩用例描述如表1-4所示。
表1-4 查询成绩信息用例描述
用例名 | 查询成绩信息 |
主要业务参与者 | 学生 |
其他参与者 | 成绩管理系统、教务系统、辅导员(间接) |
描述 | 允许学生登录系统后查询本人已发布的课程成绩信息,包括各门课程的成绩详情、学分、绩点、考核方式及成绩状态(如正常、缺考、缓考等)。 |
前置条件 | 1. 学生已成功登录校园统一身份认证系统或成绩管理系统。 |
后置条件 | 1. 学生成功查看个人成绩信息。 |
触发条件 | 学生需要了解自己某学期或全部课程的成绩情况,例如期末结束后、申请奖学金、转专业或学业复盘时。 |
基本流程 | 1. 学生登录系统,进入“成绩查询”模块。 |
替代流程 | A1:无已发布成绩 |
结束 | 学生成功查看成绩信息,或系统给出明确提示说明无法查询的原因。 |
实现约束和说明 | - 严格限制为本人查询,禁止越权访问他人成绩。 |
待解决问题 | - 是否支持按课程类型(必修/选修)、成绩区间等条件筛选? |
1.3.3.5 查询挂科科目用例描述
查询挂科科目用例描述如表1-5所示。
表1-5 查询挂科科目用例描述
用例名 | 查询挂科科目 |
主要业务参与者 | 学生 |
其他参与者 | 成绩管理系统、教务系统、辅导员(间接) |
描述 | 允许学生查询本人所有未通过(挂科)的课程信息,包括课程名称、学分、考核方式、成绩及补考/重修状态,以便及时安排补考或重修计划。 |
前置条件 | 1. 学生已成功登录校园信息系统或成绩管理系统。 |
后置条件 | 1. 学生成功获取本人所有挂科课程列表及相关信息。 |
触发条件 | 学生在学期结束后希望了解自己未通过的课程,或在选课前确认是否需要重修。 |
基本流程 | 1. 学生登录系统,进入“学业信息”或“成绩管理”模块,选择“挂科科目查询”。 |
替代流程 | A1:无挂科记录 |
结束 | 学生成功查看挂科科目列表,或系统明确告知无挂科记录/数据不完整。 |
实现约束和说明 | - 挂科判定必须基于学校官方及格标准(可按课程类型差异化配置)。 |
待解决问题 | - 如何处理因成绩修改(如加分、申诉成功)导致的挂科状态变更? |
1.3.3.6 学业预警用例描述
学业预警用例描述如表1-5所示。
表1-5学业预警用例描述
用例名 | 学业预警 |
主要业务参与者 | 学生、辅导员(或学业导师) |
其他参与者 | 教务系统、成绩管理系统、学院教务 |
描述 | 系统根据预设的学业风险规则(如挂科门数、GPA过低、学分不足等),自动识别存在学业困难的学生,并向学生本人及辅导员发送预警通知,促使其及时干预和调整学习计划。 |
前置条件 | 1. 学生成绩、学分、注册状态等数据已在教务系统中完整记录。 |
后置条件 | 1. 符合预警条件的学生被标记为“学业预警对象”。 |
触发条件 | 每学期成绩发布后,或学生学籍/成绩数据发生变更(如补考成绩录入、重修退课等),系统自动运行学业预警评估任务。 |
基本流程 | 1. 系统在成绩发布完成后(或定时任务触发时)启动学业预警分析。 |
替代流程 | A1:无学生触发预警 |
结束 | 所有符合条件的学生完成预警通知发送,预警记录入库,辅导员可开始人工干预。 |
实现约束和说明 | - 预警规则应支持按年级、专业、培养层次(本科/专科)差异化配置。 |
待解决问题 | - 如何动态调整预警阈值以适应不同专业特点? |
1.4 用例活动图描述
1.4.1 录入学生成绩用例活动图
录入学生成绩用例描述如图1-2所示。
图1-2 录入学生成绩用例活动图
1.4.2 修改学生成绩用例活动图
修改学生成绩用例描述如图1-3所示。
图1-3 修改学生成绩用例活动图
1.4.3 查询成绩用例活动图
查询成绩用例描述如图1-4所示。
图1-4查询成绩用例活动图
1.4.4 学业预警用例活动图
学业预警用例描述如图1-5所示。
图1-5 学业预警用例活动图
1.4.5 查询学分用例活动图
查询学分用例描述如图1-6所示。
图1-6查询学分用例活动图
1.4.6 查询挂科科目用例活动图
查询挂科科目用例描述如图1-7所示。
图1-7 查询挂科科目用例活动图
1.5 系统非功能需求
1.5.1 硬件环境
设备1 | |
处理器 | 11th Gen Intel(R) Core(TM) i7-11800H @ 2.30GHz 2.30 GHz |
机带 | RAM 16.0 GB (15.6 GB 可用) |
设备ID | 3A4EBDEE-3DD2-4436-A128-8608A0AEE925 |
产品 ID | 00342-36262-33467-AAOEM |
系统类型 | 64 位操作系统, 基于 x64 的处理器 |
设备2 | |
处理器 | 11th Gen Intel(R) Core(TM) i5-11400H @ 2.70GHz 2.69 GHz |
机带 | RAM 16.0 GB (15.7 GB 可用) |
设备 ID | EC7F63BD-5158-4686-AD93-E50F8ECADEAA |
产品 ID | 00342-36273-37396-AAOEM |
系统类型 | 64 位操作系统, 基于 x64 的处理器 |
1.5.2 软件环境
分类 | 名称 |
数据库 | Navicat Premium 15 |
编译器 | IntelliJ IDEA 2020.3.4 x64 |
浏览器 | Microsoft Edge浏览器 |
1.6本次实验小结
本次实验围绕“面向对象分析与设计”课程中的软件需求分析展开,通过对学生成绩管理系统的业务场景进行深入剖析,明确了系统涉及的三类核心用户(学生、教师、教务处)及其各自的功能需求。在用例分析阶段,详细描述了包括“修改学生成绩”“查询学分”“录入学生成绩”等关键用例的前置条件、基本流程、替代流程及实现约束,为后续系统建模奠定了坚实基础。同时,通过识别非功能性需求(如硬件配置、开发环境),进一步确保了系统设计的可行性与实用性。整体而言,本次实验有效锻炼了从现实业务到软件需求的抽象转化能力,强化了对用例驱动开发方法的理解与应用。
实验二 领域模型
2.1 概念类分析
2.1.1修改成绩用例概念类分析
修改成绩用例概念类分析,如表2-1所示。
表2-1 修改成绩用例概念类分析
名词 | 属性 |
教师 | 姓名,科目,教工号,课程 |
学生 | 姓名,班级,学号,性别 |
课程 | 科目,编号,学分 |
成绩 | 科目,分数 |
学生列表 | 序号,学生信息 |
2.1.2 查询挂科科目用例概念类分析
查询挂科科目用例概念类分析,如表2-2所示。
表2-2查询挂科科目用例概念类分析
名词 | 属性 |
教师 | 姓名,科目,教工号,课程 |
学生 | 姓名,班级,学号,性别 |
课程 | 科目,编号,学分 |
成绩 | 科目,分数 |
学生列表 | 序号,学生信息 |
2.1.3录入成绩用例概念类分析
录入成绩用例概念类分析,如表2-3所示。
表2-3 成绩录入用例概念类分析
名词 | 属性 |
教师 | 姓名,科目,教工号,课程 |
学生 | 姓名,班级,学号,性别 |
课程 | 科目,编号,学分 |
成绩 | 科目,分数 |
学生列表 | 序号,学生信息 |
2.1.4 学业预警用例概念类分析
学业预警用例概念类分析,如表2-4所示。
表2-4学业预警用例概念类分析
名词 | 属性 |
教师 | 姓名,科目,教工号,课程 |
学生 | 姓名,班级,学号,性别 |
课程 | 科目,编号,学分 |
成绩 | 科目,分数 |
学生列表 | 序号,学生信息 |
学业预警单 | 颜色,挂科数 |
2.1.5查询学分用例概念类分析
查询学分用例概念类分析,如表2-5所示。
表2-5 学分查询用例概念类分析
名词 | 属性 |
教师 | 姓名,科目,教工号,课程 |
学生 | 姓名,班级,学号,性别 |
课程 | 科目,编号,学分 |
成绩 | 科目,分数 |
学生列表 | 序号,学生信息 |
学分 | 数字 |
2.1.6 查询成绩用例概念类分析
查询成绩用例概念类分析,如表2-6所示。
表2-6 查询成绩用例概念类分析
名词 | 属性 |
教师 | 姓名,科目,教工号,课程 |
学生 | 姓名,班级,学号,性别 |
课程 | 科目,编号,学分 |
成绩 | 科目,分数 |
学生列表 | 序号,学生信息 |
2.2 领域模型(概念类图)
2.2.1 修改成绩用例领域模型
2.2.2 录入成绩用例领域模型
2.2.3 查询挂科科目用例领域模型
2.2.4 学业预警用例领域模型
2.2.5 查询成绩用例领域模型
2.2.6 查询学分用例领域模型
2.3 系统领域模型
2.4 本次实验小结
本次实验通过深入分析成绩管理系统中的多个用例,包括修改成绩、查询挂科科目、录入成绩、学业预警、查询成绩和查询学分等,识别并定义了各个用例中的核心概念类及其属性。我们发现,尽管不同用例的功能各异,但它们共享许多相同的核心概念类,如教师、学生、课程和成绩等,这表明在设计系统时应重视这些基础实体的设计与实现,以确保系统的稳定性和扩展性。此外,通过构建领域模型(概念类图),不仅帮助我们更清晰地理解各用例间的内在联系和数据流动方式,而且为后续的系统设计和开发提供了宝贵的指导。本次实验强化了我们对领域驱动设计的理解,即通过专注于业务领域的核心概念来指导软件开发过程,从而提高软件质量和开发效率。同时,我们也认识到了在实际应用中灵活运用面向对象分析方法的重要性,这将有助于我们在未来的项目中更好地捕捉用户需求,并转化为有效的软件解决方案。
实验三 软件设计
3.1 成绩录入用例详细设计
3.1.1 成绩录入用例顺序图
成绩录入用例顺序图如图3-1所示。
图3-1 成绩录入用例顺序图
3.1.2 成绩录入用例类图
模块名 | 类名 | 说明 |
成绩录入 | Teacher | 教师类,信息从教师信息文件提取 |
Frame | 录入成绩界面前端显示,主要用于界面之间的显示跳转关闭 | |
Result | 主要用于成绩例如系统的各种方法的实现,具体有成绩录入,文件读取保存,显示信息等 | |
graed | 课程类,信息从课程文件地区 | |
controller | 控制器类,起协调作用 | |
grade | 成绩类,从成绩文件信息提取,其中可以判断成绩的格式 |
成绩录入用例类图如图3-2所示。
图3-2 成绩录入用例类图
3.2 成绩查询用例详细设计
3.2.1 成绩查询用例顺序图
成绩查询用例顺序图如图3-3所示。
图3-3 成绩查询用例顺序图
3.2.2 成绩查询用例类图
模块名 | 类名 | 说明 |
成绩查询 | student | 学生类,信息从学生信息文件提取 |
Interface | 查询成绩界面前端显示,主要用于界面之间的显示跳转关闭 | |
Graed_list | 主要用于成绩例如系统的各种方法的实现,具体有文件读取保存,显示成绩等 | |
Teacher | 教师类,信息从教师信息文件地区 | |
Controller | 控制器类,起协调作用 | |
Grade_note | 成绩单类,从成绩文件信息提取 |
成绩查询用例类图如图3-4所示。
图3-4 成绩查询用例类图
3.3成绩修改审核用例详细设计
3.3.1 成绩修改审核用例顺序图
成绩修改审核用例顺序图如图3-5所示。
图3-5 成绩修改审核用例顺序图
3.3.2 成绩修改审核用例类图
模块名 | 类名 | 说明 |
成绩修改审核 | Teacher | 教师类,信息从教师信息文件提取 |
Frame | 查询成绩界面前端显示,主要用于界面之间的显示跳转关闭 | |
Grade_list | 主要用于成绩例如系统的各种方法的实现,具体有申请单的显示,读取,记录的备份等 | |
Administrator | 管理员类,信息从管理员信息文件地区 | |
Controller | 控制器类,起协调作用 | |
Grade_note | 成绩单类,从成绩文件信息提取 |
成绩修改审核用例类图如图3-6所示。
图3-6 成绩修改审核用例类图
3.4 查询学分用例详细设计
3.4.1 查询学分用例顺序图
查询学分用例顺序图如图3-7所示。
图3-7 学分查询用例顺序图
3.4.2 查询学分用例类图
模块名 | 类名 | 说明 |
查询学分 | Student | 学生类,信息从学生信息文件提取 |
Interface | 查询成绩界面前端显示,主要用于界面之间的显示跳转关闭 | |
Grade_list | 主要用于成绩例如系统的各种方法的实现,具体有申请单的显示,读取,记录的备份等 | |
Administrator | 管理员类,信息从管理员信息文件地区 | |
Controller | 控制器类,起协调作用 | |
graed | 学分类,从成绩文件信息提取 |
查询学分用例类图如图3-8所示。
图3-8 查询学分用例类图
3.5 学业预警用例详细设计
3.5.1 学业预警用例顺序图
学业预警用例顺序图如图3-9所示。
图3-9 学业预警用例顺序图
3.5.2 学业预警用例类图
模块名 | 类名 | 说明 |
学业预警 | Student | 学生类,信息从学生信息文件提取 |
Interface | 查询成绩界面前端显示,主要用于界面之间的显示跳转关闭 | |
Schoolwork | 主要用于成绩例如系统的各种方法的实现,具体有申请单的显示,读取,记录的备份等 | |
Administrator | 管理员类,信息从管理员信息文件地区 | |
Controller | 控制器类,起协调作用 | |
grade | 成绩类,从成绩文件信息提取 |
学业预警用例类图如图3-10所示。
图3-10 学业预警用例类图
3.6 成绩修改用例详细设计
3.6.1 成绩修改用例顺序图
成绩修改用例顺序图如图3-11所示。
图3-11 成绩修改用例顺序图
3.6.2 成绩修改用例类图
模块名 | 类名 | 说明 |
成绩修改 | Frame | 查询成绩界面前端显示,主要用于界面之间的显示跳转关闭 |
Grade_list | 主要用于成绩例如系统的各种方法的实现,具体有申请单的显示,读取,记录的备份等 | |
Teacher | 教师类,信息从教师信息文件地区 | |
Controller | 控制器类,起协调作用 | |
graed | 成绩类,从成绩文件信息提取 |
成绩修改用例类图如图3-12所示。
图3-12 成绩修改用例类图
3.7 系统类图
3.8 本次实验小结
本次实验通过对成绩管理系统中多个关键用例的详细设计,包括成绩录入、查询、修改审核、学分查询、学业预警以及成绩修改等功能模块的设计与实现,深化了我们对软件设计过程的理解。通过绘制顺序图和类图,明确了各功能模块内部及其相互之间的交互流程和结构关系,不仅提升了我们在实际项目中运用面向对象设计方法解决具体问题的能力,也为后续的系统开发提供了清晰的设计蓝图。同时,强调了控制器类在协调不同模块间工作的重要性,确保了系统的高内聚低耦合,为构建一个灵活、可扩展的成绩管理系统奠定了坚实的基础。此外,通过本次实验,我们也认识到了数据一致性和安全性在成绩管理系统中的重要性,这将指导我们在未来的工作中更加注重这些问题。
结构化分析与设计
实验四 成绩管理系统需求分析
4.1 系统相关者
学生、教师、系统管理员。
4.2 数据流分析
(1)顶层DFD
成绩管理系统顶层数据流图如图4-1所示。
图4-1 成绩管理系统顶层DFD
(2)功能层DFD如图4-2所示。
图4-2 功能层DFD
(3)细节层DFD
录入成绩层的细节层如图4-3所示。
图4-3 录入成绩层DFD分解
修改成绩层DFD分解层如图4-4所示。
图4-4 修改成绩层DFD分解
查询成绩层DFD分解层如图4-5所示。
图4-5 查询成绩层DFD分解
4.3 数据字典
(1)数据项定义
姓名的数据项定义如表4-1所示。
表4-1 数据项“姓名”的条目
数据项名:姓名 |
别名:用户姓名 |
取值范围及含义:2{汉字}5 |
备注:代表的是用户姓名 |
学号的数据项定义如表4-2所示。
表4-2 数据项“学号”的条目
数据项名:学号 |
别名: 学生学号 |
取值范围及含义:“0000 001”..”9999 999” |
备注:代表的是学生唯一识别学号 |
密码的数据项定义如表4-3所示。
表4-3 数据项“密码”的条目
数据项名:密码 |
别名:用户密码 |
取值范围及含义:2{字符}10 |
备注:代表用户登录的密码 |
入学时间的数据项定义如表4-4所示。
表4-4 数据项“入学时间”的条目
数据项名:入学时间 |
别名:入学年份 |
取值范围及含义:年+月+日 |
备注:代表的是学生入学的时间 |
(2)数据流定义
学生信息的数据流定义如表4-5所示。
表4-5 数据流“学生信息”的字典条目
数据流名:学生信息 别名:学生基本信息 数据流的来源:教师、学生、系统管理员、加工2.1审核信息 数据流的去向:加工2.1审核信息、加工2.2修改信息、加工3.1检查学生信息合法性 数据流组成:{学号+姓名+密码+入学时间} 备注:学生基本信息 |
学生成绩的数据流定义如表4-6所示。
表4-6 数据流“学生成绩”的字典条目
数据流名:学生成绩 别名 :学生成绩详情 数据流的来源:教师、加工1.1检查成绩合法性、加工3.3检验用户身份 数据流的去向:加工1.1检查成绩合法性、加工1.2录入成绩、加工3.4统计成绩、加工3.5筛选挂科科目 数据流组成:{学生id + 平时分 + 期中考试分 + 期末考试分 + 总成绩 + 考试卷子详情} 备注:学生成绩详情 |
(3)数据存储
学生信息表如表4-7所示。
表4-7 数据存储“学生信息表”的字典条目
数据存储名称:学生信息表 |
编号:F1 |
简述:是存储学生个人基本信息的明细表 |
流入的数据流:加工2.1审核信息 |
流出的数据流:加工2.1审核信息、加工3.1检查学生信息合法性 |
数据流组成:{学号+姓名+密码+入学时间} |
备注:学生基本信息表 |
学生成绩表如表4-8所示。
表4-8 数据存储“成绩信息表”的字典条目
数据存储名称:成绩信息表 |
编号:F2 |
简述:是通过过学生基本信息统计学生成绩的明细表 |
流入的数据流:来源于教师成绩的录入 |
流出的数据流:去向是用户查询、统计、修改成绩 |
数据流组成:{学生id+(姓名)平时分+期中考试分+期末考试分+总成绩+考试卷子详情} |
备注:学生成绩信息表 |
4.5 加工逻辑
(1)加工1.1检查成绩合法性的加工逻辑
输入学生成绩
检索“成绩信息表”文件上的学生成绩,获得成绩信息表中的成绩,判断输入的成绩精 度是否与成绩信息表一致。
Begin
如果成绩不合法
则需要教师重新输入成绩
否则
退出录入成绩系统
End
(3)加工1.2录入成绩的加工逻辑
Begin
如果成绩合法
则将学生成绩插入到”成绩信息表中”
否则
系统提示 成绩不合法
End
4.6 软件非功能需求
4.6.1 硬件需求
设备1 | |
处理器 | 11th Gen Intel(R) Core(TM) i7-11800H @ 2.30GHz 2.30 GHz |
机带 | RAM 16.0 GB (15.6 GB 可用) |
设备ID | 3A4EBDEE-3DD2-4436-A128-8608A0AEE925 |
产品 ID | 00342-36262-33467-AAOEM |
系统类型 | 64 位操作系统, 基于 x64 的处理器 |
设备2 | |
处理器 | 11th Gen Intel(R) Core(TM) i5-11400H @ 2.70GHz 2.69 GHz |
机带 | RAM 16.0 GB (15.7 GB 可用) |
设备 ID | EC7F63BD-5158-4686-AD93-E50F8ECADEAA |
产品 ID | 00342-36273-37396-AAOEM |
系统类型 | 64 位操作系统, 基于 x64 的处理器 |
4.6.2 软件需求
分类 | 名称 |
数据库 | Navicat Premium 15 |
编译器 | IntelliJ IDEA 2020.3.4 x64 |
浏览器 | Microsoft Edge浏览器 |
4.7 本次实验小结
本次实验通过对成绩管理系统进行详细的需求分析,涵盖了从系统相关者的确定到数据流分析、数据字典的定义,再到加工逻辑和非功能需求的明确等多个方面。我们首先识别了系统的主要参与者,包括学生、教师和系统管理员,并通过数据流图(DFD)对系统的顶层结构、功能层以及细节层进行了全面剖析,从而清晰地展现了成绩管理系统的数据处理流程和各组件之间的交互关系。此外,通过数据字典明确了系统中涉及的数据项、数据流及数据存储的具体定义,确保了数据的一致性和准确性。加工逻辑部分则进一步规范了成绩录入与审核的具体操作流程,为后续的程序开发提供了明确指导。最后,针对硬件和软件的非功能需求进行了详细的规划,为系统的实现奠定了坚实的基础。通过这次实验,我们不仅深化了对成绩管理系统设计的理解,还提升了在实际项目中应用需求分析技术的能力。
实验五 成绩管理系统设计
5.1 软件结构设计
将功能层数据流图化分边界,如图5-1所示。
图5-1划分边界的数据流图
按SD方法将数据流图转换为软件结构图,如图5-2所示。
图5-2 功能层的SC图
录入层SC图,这一层的数据流图为变换型,画分边界的DFD如图5-3所示。
图5-3 化分边界的录入层DFD
根据化分边界的DFD画出的SC图如图5-4所示。
图5-4 录入层的SC图
其中:
OC1为获取操作命令
D1为学生成绩
D2为合法学生成绩
D3为响应结果
修改成绩层的SC图这一层的数据流图为变换型,画分边界的DFD如图5-5所示。
图5-5 化分边界的修改成绩的DFD
根据化分边界的DFD画出的SC图如图5-6所示。
图5-6修改成绩层的SC图
其中:
OC2为获取操作命令
OC3为请求修改成绩
D1为学生信息
D2为有效学生信息
D3为同意请求
D4为学生成绩
5.2 详细设计-程序流程图
(1)录入成绩程序流程图,如图5-7所示。
图5-7 录入成绩流程图
(2)修改成绩程序流程图,如图5-8所示。
图5-8 修改成绩流程图
5.3 本次实验小结
本次实验主要围绕成绩管理系统的软件结构设计与详细设计展开,通过将数据流图转换为软件结构图(SC图),并进一步细化到程序流程图的设计过程,深入理解了结构化设计(SD)方法在实际软件开发中的应用。实验中,我们首先分析了功能层、录入层以及修改成绩层的数据流图,并据此绘制了相应的软件结构图,明确了各个模块之间的关系和数据流动方向。接着,通过具体的程序流程图设计,如录入成绩和修改成绩的流程,我们掌握了如何从系统层面逐步细化至具体程序逻辑的设计思路。此次实验不仅增强了对软件开发过程中不同设计阶段的理解,还提升了将理论知识应用于实践的能力,为今后参与更复杂的软件项目奠定了坚实的基础。
若觉得有帮助,欢迎点赞关注,一起成长进步~
声明:本文仅供学习交流,禁作商用;禁篡改、歪曲及有偿传播,引用需标明来源。侵权必究。