软件工程-需求分析作业

在线选课管理系统需求分析

2013599 田佳业

一、引言

编写目的

  • 对要实现的软件功能做总体描述,帮助判断所规定的软件是否符合当前要求。

  • 尽可能的除了在管理日常教学事务层面活动的同时考虑后续各种情况,使系统具有良好的可拓展性。

  • 提高开发效率,为成本计划和编制计划进度提供基础。

项目背景

学校选课信息数据庞杂,且各种限制条件繁多,由教师及管理员手动进行选课信息处理负担较重,且效率极低,耽误正常教学工作的进行。而学生选课系统的应用将使选课管理工作规范化,系统化,程序化,避免选课管理的随意性,提高信息处理的速度和准确性,能够及时,准确,有效的查询和修改选课情况。系统的主要功能是为了方便学校对教师信息、学生基本信息、课程信息、学生成绩录入、修改、查询,提高学校的工作效率。

二、任务概述

任务目标

本项目所开发的学生选课系统完成学校对学生的选课信息的统计与管理,减少数据错漏的情况,同时也节约人力、物力和财力,告别以往的人工统计。学生在规定选课时间段内在校园网内(特殊时期可开放外网访问)登录选课系统完成选课的申请,而学校可以方便地对系统进行管理和控制,提高工作效率。方便学生、老师、教务处使用,学生可以在线查看可选课程信息、在线选课、补选、退选等,老师可以填写和修改自己的课程信息,查询自己的课程人数、课程信息(包括开课时间、地点、开课方式),教务处可以对整个系统进行管理(包括系统管理、用户管理、课程管理)。

用户特点

  • 管理员

    具备整个系统的所有权限,如可在选课前中后对课程信息进行调整,指定教师和学生的权限,调整筛选策略等。

  • 教师

    具备自己所教授的课程的管理权限。如录入课程信息等。

  • 学生

    学生需要在指定时间选课,通常情况下登录系统时间较为集中,可针对自己的课表进行安排。

假定和约束

假定

  • 用户:假定该选课系统主要服务于学生和教师,其中学生可登录系统进行选课和查看课程表,教师可登录系统进行课程管理和成绩管理。其他外来人员能够通过通过验证码的方式进行屏蔽。

  • 性能:选课系统有较高性能要求,例如响应时间、并发处理能力、系统可用性等。

  • 数据完整性:假定该选课系统能够通过数据备份,定期检查等方式保证所处理的数据的完整性和准确性,以避免数据错误和损坏。

  • 用户交互:假定用户可能通过手机或电脑进入浏览器选课。

  • 拓展性:假定学校根据需要可对选课系统进行调整,如调整选课时间,二学位课和主修课对换等。

约束

  • 项目需要在学生选课前15天(8月16日前)开发完成,至少需满足本文档下述 的全部需求。

  • 项目以chrome内核浏览器显示界面为UI标准,能够在PC端和移动端完整显示。不对IE浏览器UI显示做要求,但需要在IE浏览器能够正常使用所有功能。

  • 项目总预算xx万元,其他事宜详见项目合同。

三、业务描述

系统总业务流程图及其描述

image-20230227190111733
  • 学生

    登录系统,查看课表或进行选课。选课分为预选、正选和补退选三个阶段。有辅修/双学位的学生还需要进行辅修选课。

  • 教师

    登录系统,录入课程信息,或查看自己所教授课程的选课情况。

  • 管理员

    查看或修改用户的信息或权限。以及处理选课过程中的数据,并负责处理教师修改信息相关的申请。

各个子业务流程图及其描述

学生选课

下面以主修选课为例,说明选课子业务的流程:

image-20230302191509591

选课需要在对应时间选课,并根据学生点击选课入口进行对应课程的子入口。学生课根据课程序号,课程名称等进行课程的搜索,点击“选课”按钮进行选课。若已选过,应当显示“退课”。然后进行条件初步判断,若满足条件选课成功,返回分入口。

其他子业务

其他子业务均为单流程,满足对应业务各自约束即可。

四、数据需求

数据需求描述

  1. 学生信息:包括学生的个人基本信息:学号、姓名、性别、入学时间、学院。
  2. 课程信息:包括课程的基本信息:课程编号(内部唯一ID)、课程代号(前端展示)、课程名称、课程学分、授课教师、上课时间、课程选课人数上限。
  3. 选课信息:包括学生选课的信息:选课记录编号、学生学号、课程编号、选课时间。
  4. 教师信息:包括教师的基本信息:教师编号、姓名、性别、职称。

数据流图

image-20230307231017064

数据字典

下面采用数据库表的方式描述项目主要流程中使用的数据字典:

image-20230308091548193
sql
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Table structure for Course
-- ----------------------------
DROP TABLE IF EXISTS `Course`;
CREATE TABLE `Course` (
  `CourseID` int DEFAULT NULL,
  `CourseCode` varchar(255) DEFAULT NULL,
  `CourseName` varchar(255) DEFAULT NULL,
  `Credits` int DEFAULT NULL,
  `Teacher` varchar(255) DEFAULT NULL,
  `MaxCapccity` int DEFAULT NULL,
  `StartWeek` tinyint DEFAULT NULL,
  `EndWeek` tinyint DEFAULT NULL,
  `Place` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

-- ----------------------------
-- Table structure for Select
-- ----------------------------
DROP TABLE IF EXISTS `Select`;
CREATE TABLE `Select` (
  `SelectID` int DEFAULT NULL,
  `StudentID` varchar(255) DEFAULT NULL,
  `CourseID` int DEFAULT NULL,
  `SelectTime` datetime DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

-- ----------------------------
-- Table structure for Student
-- ----------------------------
DROP TABLE IF EXISTS `Student`;
CREATE TABLE `Student` (
  `studentID` int DEFAULT NULL,
  `Name` varchar(255) DEFAULT NULL,
  `Gender` varchar(255) DEFAULT NULL,
  `Age` int DEFAULT NULL,
  `Institute` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

-- ----------------------------
-- Table structure for Teacher
-- ----------------------------
DROP TABLE IF EXISTS `Teacher`;
CREATE TABLE `Teacher` (
  `TeacherID` int DEFAULT NULL,
  `TeacherName` varchar(255) DEFAULT NULL,
  `Gender` varchar(255) DEFAULT NULL,
  `Title` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

SET FOREIGN_KEY_CHECKS = 1;

注意:

1.由于选课系统会频繁进行数据表的插入删除,设置外键会使数据库性能下降,故需将异常处理交由软件处理,以加快正常情况下的选课相应速度。

2.数据表及数据表项可根据实际开发进行添加,但以上所列出为必需项。

五、功能需求

功能划分

公共功能

  • 登录

  • 查看当前选课状态

  • 查看课程信息

学生

  • 选课

  • 退课

  • 查看可选和已选课程

教师

  • 发布课程信息

  • 请求修改课程信息

管理员

  • 录入和修改用户信息

  • 选课结果汇总

  • 筛选选课结果

功能描述

登录

用户输入用户名和密码登录选课系统,系统根据输入的信息验证用户身份,并进入相应的用户界面。

查看当前选课状态

在选课系统中查看当前各个课程选课人数(不包含具体选课的学生信息)

查看课程信息

在选课系统中查看课程的详细信息,包括课程名称、授课教师、上课时间、上课地点、学分等。

选课

学生可以在选课系统中选择需要选修的课程,并提交选课请求。系统会根据当前选课人数进行相应,并在不同选课阶段之间根据筛选条件进行进行审核,审核通过后自动为学生添加选课记录。

退课

学生可以在选课系统中查看已选课程,并选择需要退选的课程。提交退课请求后,系统会自动删除相应的选课记录。

查看可选和已选课程

学生可查看当前选课阶段可选和已选的课程,以列表方式呈现。

发布课程信息

教师可以在选课系统中发布课程信息,包括课程名称、授课教师、上课时间、上课地点、学分等。发布后,学生可以在选课系统中进行选课操作。

请求修改课程信息

当教师需要对已发布的内容进行修改,如修改上课地点,修改可容纳人数等。

录入和修改用户信息

管理员可以在选课系统中录入和修改学生和教师的个人信息,包括姓名、学号、联系方式、职称、专业等。

选课结果汇总

管理员可以在选课系统中查看所有学生的选课情况,并对选课结果进行汇总统计,包括已选课程、未选课程和已退课程。注意:需要按照课程和学生两种维度分别给出结果汇总。

筛选选课结果

管理员可以在选课系统中对选课结果进行筛选和分析,根据不同的条件进行查询,包括学生学号、课程编号、成绩等级等。同时管理员可以对查询结果进行导出和打印。

六、非功能需求

  1. 性能:由于正选阶段学生选课时间集中,选课系统应具有高性能,能够支持大量的并发用户访问,并快速响应用户的请求,避免出现系统瓶颈或崩溃现象。即便确实出现了瓶颈,也应及时进行自发控制,避免系统崩溃。
  2. 可靠性:系统应具有高可靠性,保证数据的完整性、安全性和可用性,有数据库日志及备份和恢复功能。
  3. 安全性:系统应具有高安全性,对用户数据进行保护,包括用户个人信息和选课记录等敏感数据,确保数据不被窃取、篡改或损坏。
  4. 易用性:系统应具有高易用性,界面友好、操作简单,学生可以快速地进行选课和退课等操作,避免学生使用过程中出现操作困难或错误,特别注意避免出现误容易出现误导操作的UI布局或文字描述。管理员页面由于需显示数据较多,需要采用较为简洁的界面,利于管理和维护。
  5. 可扩展性:系统应具有高可扩展性,能够灵活地添加新的功能和模块,以适应不同阶段或特殊/紧急状态的需求。
  6. 软件质量:系统应具有高软件质量,包括高代码质量、高稳定性、高可维护性、高可测试性和高可重用性等。同时,系统应具有高可靠性、高安全性和高可用性等。特别的,代码需要有明确的功能描述注释及负责人信息,确保可追溯
  7. 兼容性:系统应具有高兼容性,能够在不同的操作系统、设备上运行,在Chrome和Firefox上均需保证界面正确和功能完全可用,IE浏览器需保证界面可见和功能完全可用,确保用户能够方便地访问和使用系统。

七、系统要求

需部署在CentOS7.7(或基于此二次开发的兼容系统),使用docker进行环境和打包,并提供需挂载的数据。

服务器2核CPU,带宽4M,内存8GB。

Docker使用LAMP环境,具体版本要求:

PHP>=7.4且<9.0

MySQL>=8.0

务必不要使用5.x版本的Mysql

Apache>=2.4.6

使用PHP框架或JSP框架开发均可。


软件工程-需求分析作业
http://lunaticsky-tql.github.io/posts/53897/
作者
Lunatic sky
发布于
2023年3月22日
许可协议