1、前言
本文主要是针对一个高校教务管理系统的分析与总结,主要阐述项目的完整设计方案和一些软件结构特点,并采用不同的视图来描述项目的软件系统概念原型。高校教务管理水平的高低直接反映了学校教学管理水平的高低,关系到学校在社会竞争中的生存与发展。随着科学技术的不断发展,随着教育改革的不断深入,学校教务管理将面临许多新的问题和挑战。而高校教务管理系统,可以有效地解决问题,提高工作效率,改进教学管理方式,提高教育教学管理水平。让用户、开发人员等更好的了解本项目。
2、软件设计方案总述
软件设计从大的方面来说,有软件架构风格与策略的不同,从具体实现方面来说,有设计模式的不同,从底层来说,数据的存取以及语言的实现也不一样。只有采取最适合项目的软件设计方案,综合性能、成本、开发效益、可用性,才能获得最好的软件设计效果。软件架构风格有很多,如分层架构、典型的MVC架构和MVVM架构、管道-过滤器、客户端-服务、P2P(如区域链)、发布订阅风格、CRUD、层次化架构等;典型的设计模式有工厂模式、单例模式、装饰模式、代理模式、外观模式、享元模式等;典型的软件架构的描述方法视图,比如分解视图、依赖视图、泛化视图、执行视图、实现视图、部署视图等。
3、设计模式
设计模式的本质是面向对象设计原则的实际运用总结出的经验模型。对类的封装性、继承性和多态性以及类的关联关系和组合关系的充分理解的基础上才能准确理解设计模式。正确使用设计模式具有以下优点。可以提高程序员的思维能力、编程能力和设计能力。使程序设计更加标准化、代码编制更加工程化,使软件开发效率大大提高,从而缩短软件的开发周期。使设计的代码可重用性高、可读性强、可靠性高、灵活性好、可维护性强。
4、软件架构
本系统包含多种用户,包含教师、学生、管理员等等,选择适应系统开发的B/S框架。B/S结构指的是Browser/Server(浏览器/服务器)结构,就是只需要安装维护一个服务器,而客户端采用浏览器的方式来运行软件。它是随着Internet技术而兴起的,是对C/S结构的一种变化和改进。主要利用了WWW浏览器技术,结合多种Script语言和新技术,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。是一种全新的软件系统构造技术。它只需要安装一个浏览器和数据库,就可以让浏览器通过Web Server同数据库进行数据交互。
- 该架构不需要安装客户端,可以直接运行在Web浏览器中。
- B/S架构可以直接放在Internet网络上,从而达到通过某些特权来控制多客户端访问的目的以及交互方式。
- B/S架构由于不需要安装客户端,因此不存在更新多个客户端以及升级服务器等问题。
B/S架构工作原理如下:
5、视图
分解视图
分解是构建软件架构模型的关键步骤,分解视图也是描述软件架构模型的关键视图,一般分解视图呈现为较为明晰的分解结构(breakdown structure)特点。分解视图用软件模块勾划出系统结构,往往会通过不同抽象层级的软件模块形成层次化的结构。分解视图由子系统(Subsystem)、包(Package)、类(Class)、组件(Component)、库(Library)、软件模块(Module)、软件单元(Software unit)等部分组成。
根据对高校教务管理系统的分析,分为四大模块,系统的分解视图如下:
依赖视图
依赖视图展现了软件模块之间的依赖关系。比如一个软件模块A调用了另一个软件模块B,那么我们说软件模块A直接依赖软件模块B。如果一个软件模块依赖另一个软件模块产生的数据,那么这两个软件模块也具有一定的依赖关系。依赖视图在项目计划中有比较典型的应用。比如它能帮助我们找到没有依赖关系的软件模块或子系统,以便独立开发和测试,同时进一步根据依赖关系确定开发和测试软件模块的先后次序。依赖视图在项目的变更和维护中也很有价值。比如它能有效帮助我们理清一个软件模块的变更对其他软件模块带来影响范围。
根据对高校教务管理系统的分析,系统的依赖视图如下:
泛化视图
泛化视图展现了软件模块之间的一般化或具体化的关系,典型的例子就是面向对象分析和设计方法中类之间的继承关系。值得注意的是,采用对象组合替代继承关系,并不会改变类之间的泛化特征。因此泛化是指软件模块之间的一般化或具体化的关系,不能局限于继承概念的应用。泛化视图有助于描述软件的抽象层次,从而便于软件的扩展和维护。比如通过对象组合或继承很容易形成新的软件模块与原有的软件架构兼容。
执行视图
执行视图展示了系统运行时的时序结构特点,比如流程图、时序图等。执行视图中的每一个执行实体,一般称为组件(Component),都是不同于其他组件的执行实体。如果有相同或相似的执行实体那么就把它们合并成一个。执行实体可以最终分解到软件的基本元素和软件的基本结构,因而与软件代码具有比较直接的映射关系。在设计与实现过程中,我们一般将执行视图转换为伪代码之后,再进一步转换为实现代码。
根据对高校教务管理系统的分析,分为四大模块,系统的执行视图如下:
学籍管理模块:
排课管理模块:
选课管理模块:
教务管理模块:
实现视图
实现视图是描述软件架构与源文件之间的映射关系。比如软件架构的静态结构以包图或设计类图的方式来描述,但是这些包和类都是在哪些目录的哪些源文件中具体实现的呢?一般我们通过目录和源文件的命名来对应软件架构中的包、类等静态结构单元,这样典型的实现视图就可以由软件项目的源文件目录树来呈现。实现视图有助于码农在海量源代码文件中找到具体的某个软件单元的实现。实现视图与软件架构的静态结构之间映射关系越是对应的一致性高,越有利于软件的维护,因此实现视图是一种非常关键的架构视图。
系统源代码目录如下:
部署视图
部署视图是将执行实体和计算机资源建立映射关系。这里的执行实体的粒度要与所部署的计算机资源相匹配,比如以进程作为执行实体那么对应的计算机资源就是主机,这时应该描述进程对应主机所组成的网络拓扑结构,这样可以清晰地呈现进程间的网络通信和部署环境的网络结构特点。当然也可以用细粒度的执行实体对应处理器、存储器等。部署视图有助于设计人员分析一个设计的质量属性,比如软件处理网络高并发的能力、软件对处理器的计算需求等。
系统的部署视图如下:
工作分配视图
工作分配视图将系统分解成可独立完成的工作任务,以便分配给各项目团队和成员。工作分配视图有利于跟踪不同项目团队和成员的工作任务的进度,也有利于在个项目团队和成员之间合理地分配和调整项目资源,甚至在项目计划阶段工作分配视图对于进度规划、项目评估和经费预算都能起到有益的作用。每个视图都是从不同的角度对软件架构进行描述和建模,比如从功能的角度、从代码结构的角度、从运行时结构的角度、从目录文件的角度,或者从项目团队组织结构的角度。软件架构代表了软件系统的整体设计结构,它应该是所有这些视图的集合。但我们不会将不同角度的这些视图整合起来,因为不便于阅读和更新。不过我们会有意识地将不同角度的视图之间的映射关系和重叠部分了然于胸,从而深刻理解软件架构内在的一致性和完整性,这就是系统概念原型。
最终小组内部工作分配安排如下:
6、数据库设计
数据库设计如下:
教师信息
数据项名称 | 字段数据类型 | 长度 |
教工号 | char | 20 |
教师姓名 | varchar | 20 |
密码 | varchar | 20 |
学生信息
数据项名称 | 字段数据类型 | 长度 |
学号 | char | 20 |
学生姓名 | char | 20 |
专业 | char | 20 |
班级号 | int | 20 |
密码 | varchar | 20 |
教务员信息
数据项名称 | 字段数据类型 | 长度 |
教务员编号 | char | 20 |
教务员姓名 | varchar | 20 |
密码 | varchar | 20 |
课程信息
数据项名称 | 字段数据类型 | 长度 |
课程号 | char | 20 |
学号 | char | 20 |
教工号 | char | 20 |
教室 | char | 20 |
上课时间 | char | 20 |
7、软件系统运行环境和技术选型
本项目采用JavaWeb应用开发技术,前端部分采用HTML、CSS、JavaScript等技术实现用户界面的开发,后台服务器端基于Java语言进行开发。数据库使用mysql数据库。
开发平台:javaeclipse
数据库:mysql
8、概念原型和系统核心工作机制
概念原型
- 概念是人对能代表某种事物或发展过程的特点及意义所形成的思维结论。
- 概念原型是一种虚拟的、理想化的软件产品形式。
本例中样例主要包括教务员可以通过Excel表格批量导入学生信息,同时对个别的学生信息进行修改,教务员可以录入预计开设的课程及相关信息,教务员可对已录入课程的信息进行修改,教务员可以删除已录入的课程,学生可对本人的课表信息进行查询,学生可以根据培养计划进行选课,教务员可以安排考场和考试时间,任课教师可以在规定的时间段内录入学生成绩。
核心工作机制
学籍管理模块
教务员可以通过Excel表格批量导入学生信息,同时对个别的学生信息进行修改。
排课管理模块
教务员进行
1.课程录入,教务员可以录入预计开设的课程及相关信息。
2.课程修改,教务员可对已录入课程的信息进行修改。
3.删除课程,教务员可以删除已录入的课程。
选课管理模块
学生进行
1.学生课表,学生可对本人的课表信息进行查询。
2.选课,学生可以根据培养计划进行选课。
考务管理模块
考务员进行
1.考试安排,教务员可以安排考场和考试时间。
2.成绩录入,任课教师可以在规定的时间段内录入学生成绩。
9、总结
根据上课所学知识最终完成了高校教务管理系统的设计方案,实现了对项目设计模式、软件架构、概念原型、以及运行环境和人员分工的描述,指导我们更好的进行系统开发。
参考资料:
https://gitee.com/mengning997/se/tree/master/ppthttps://zhuanlan.zhihu.com/p/71222679