成绩管理系统软件体系结构设计

成绩管理系统软件体系结构设计

  1. 文档简介
    1.1 目的
    1.2 范围
    1.3 定义、首字母缩写词和缩略语
    1.4参考资料
    1.5 概述
  2. 体系结构表示方式
  3. 软件体系结构的目标和约束
    3.1 结构清晰
    3.2 支持外包开发
    3.3 可扩展性
    3.4 系统安全性
    3.5 可移植性
    4体系结构模式
  4. 逻辑视图
  5. 进程视图
    6.1 学生进程视图
    6.2 教师进程视图
    6.3 教务进程视图
  6. 开发视图
  7. 物理视图
  8. 用例视图

1.文档简介
主要是描述软件体系结构设计说明书的目的、范围、相关术语、参考资料和本文档的摘要性介绍。软件体系结构设计属于高层设计文档,是符合现代软件工程要求的概要设计。
1.1 目的
成绩管理系统软件体系结构设计说明书,将从设计的角度对系统进行综合的描述,使用不同的视图来描述其不同方面。在本小节中,将对该文档的结构进行简要的说明,明确该文档针对的读者群,指导他们正确的地使用该文档。
1.2 范围
本文档的范围限定在该软件的作用的范围之内,其影响内容包括所有和成绩管理系统有关的内部开发人员及外部合作人员。
1.3 定义、首字母缩写词和缩略语

首字母缩写词全称
UIInterface
缩略语全称
InfoInformation

1.4参考资料
[1]百度文库 软件体系结构设计
[2]Ian Sommerville 软件工程 机械工业出版社 原书第九版
1.5 概述
本文档的组织方式,严格按照业界推崇的面向对象的软件体系设计说明书的格式。包括下列章节:
 文档简介
 体系结构表示方式
 软件体系结构的目标和约束
 体系结构模式
 逻辑视图
 进程视图
 开发视图
 物理视图
 用例视图
2. 体系结构表示方式
软件体系结构在当前系统中起到蓝图的作用,不再赘述。
本文档采用被广泛接受的统一软件过程推荐的多种表示方式,包括用例视图、逻辑视图、进程视图、部署视图或实施视图等,这些视图包含的模型元素符合统一建模语言的规约要求,不再赘述。
本文档采用“4+1”视图模式:(4 views + 1 => architecture)
在这里插入图片描述

  1. 软件体系结构的目标和约束
    成绩管理系统担负着极大的使命,在此再次明确成绩管理系统体系机构的目标。

3.1 结构清晰

在这里插入图片描述

3.2 支持外包开发
3.3 可扩展性
本系统可使用动态加载的插件、顶端有抽象接口的认真设计的类层次结构、有用的回调函数构造以及功能很有逻辑并且可塑性很强的代码结构,有利于处理更大规模的业务。
3.4 系统安全性
本系统尽极大可能地保证其安全性,用户登录时有密码保护,后台管理目录可以通过更改目录名来防止攻击,全站和管理后台的IP访问限定功能可以实现访问范围的最小化,后台管理文件对访问用户身份的统一验证,从整体上限制直接输入地址访问后台文件。
3.5 可移植性
本系统采用通用的程序设计语言和运行支撑环境,以保证良好的可移植性。
4体系结构模式
本系统采用分层结构模式,分层系统体系结构有以下优点: 第一,支持基于抽象程度递增的系统设计。这允许设计者可以将一个复杂系统设计按递 增的步骤进行分解。 第二,支持扩充。因为每层至多和与之相邻的上层和下层交互,所以,改变某层的功能 最多只会影响与之相邻的其它两层。第三,支持重用。与抽象数据类型一样,只要对相邻层提供同样的接口,每层可以有很 多不同的可相互替代的实现方法。 因此,可能出现对于标准的层接口的定义可以有不同的实现方法。
分层图如下所示:(由用户界面、用户通信和身份验证、信息检索和修改、事务管理数据库四层组成)
在这里插入图片描述

  1. 逻辑视图
    该系统采用分层体系结构,顶层支持用户界面,底层是系统数据库。最上层实现用户接口,UI通过Web浏览器实现;第二层提供用户接口的功能,包括允许用户登录系统的组件和确保他们使用的操作符合他们身份的检验组件,显示信息给用户的表格和菜单管理组件及核对信息一致性的数据确认组件;第三层实现系统功能并提供:实现有关系统信息安全,学生成绩管理(包括录入,更改,查询等),学生信息管理(包括添加,编辑等),系统信息设置(用户管理);最后,最底层是数据库管理,它提供事务管理和持久的数据存储。
    系统层次视图如下:
    在这里插入图片描述

系统总共有三大功能:学生成绩管理,学生信息管理,系统信息设置。其功能模块视图如下:
在这里插入图片描述

  1. 进程视图
    本节主要描述该软件体系结构下,系统运行态的情况。描述系统在执行时,包括哪些进程(包括线程、进程、进程组),以及它们之间是如何进行通信的、如何进行消息传递、接口如何。并且来说明如何进行组织。
    6.1 学生进程视图
    在这里插入图片描述

6.2 教师进程视图
在这里插入图片描述

6.3 教务进程视图
在这里插入图片描述

7.开发视图
本节主要描述该软件系统部署后的样子,需要哪些硬件、支撑软件、网络环境。在每个物理节点上所运行的模块,它们之间是如何连接的,这些物理节点与进程之间的映射关系等等。
该系统采用分层体系结构:用户界面层、用户通信和身份验证授权层将基于MFC设计实现,信息检索和修改、事务管理将基于MySQL数据库管理系统。其系统架构的开发视图如下:
在这里插入图片描述

其中,桌面部分的目标程序编译的过程如下:
在这里插入图片描述

8.物理视图
该系统关于数据传输的部分采用的是C-S模型,客户端和服务器端分布在不同的机器上,客户端为学生、教师、管理员提供查询、更改、添加、删除等功能,而学生的成绩等信息放置在服务器端的数据库表格中。当用户进行操作时,向另一端发送消息,在服务器端进行处理后,将查询结果或者修改成功的确认信息返回给客户端,用户操作成功。其物理视图如下:
在这里插入图片描述

9.用例视图

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/465655.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

单臂路由实现不同VLAN之间设备通信

转载请注明出处 本实验为单臂路由配置,目的为让不同VLAN之间的设备能够互相通信。 1.首先,按照要求配置两个pc的ip地址,以pc0为例子: 2在交换机创建vlan10和vlan20 3.划分vlan,pc0为vlan10的设备,pc1为vla…

机器学习(三)——决策树(附核心思想、重要算法、概念(信息熵、基尼指数、剪枝处理)及Python源码)

目录 关于1 基本流程2 划分属性的选择2.1 方法一:依据信息增益选择2.2 方法二:依据增益率选择2.3 方法三:依据基尼指数选择 3 剪枝处理:防止过拟合3.1 预剪枝3.2 后剪枝 4 连续与缺失值4.1 连续值处理4.2 缺失值处理 5 多变量决策…

Ubuntu和Debian系列的Release默认shell解释器变更

Debian 12 Bookworm 和 Ubuntu 24.04 中默认的 shell 解释器已经由 bash 变更为了 dash 。 这个变化对于我们直接在 CLI 上执行 Linux command 无影响,但对于执行shell解释性程序有影响,已知 bash 中的 变量正规表达式 (如 ${GIT_COMMIT:0:8…

ReLU6替换ReLU为什么可以增强硬件效率?

ReLU6(Rectified Linear Unit 6)是ReLU的一种变体,它在ReLU的基础上增加了一个上限值6,即输出范围被限制在[0, 6]之间。 这种变化在硬件实现中可以带来以下几个方面的效率提升: 1. 数据表示的简化 ReLU的输出范围是[…

vscode在windows和linux如何使用cmake构建项目并make生成可执行文件,两者有什么区别

vscode在windows和linux如何使用cmake构建项目并make生成可执行文件,两者有什么区别 windows默认使用的是最新的visual studio,而linux默认就是cmake 文章目录 vscode在windows和linux如何使用cmake构建项目并make生成可执行文件,两者有什么…

Spirngboot集成Knife4j spirngboot版本2.7.17 Knife4j版本4.0.0

Knife4j是什么?有什么作用? ‌Knife4j‌是一个基于Swagger的Java RESTful API文档工具,旨在帮助开发者轻松生成和维护API文档。它继承并增强了Swagger的功能,简化了使用流程,并提供了一系列增强功能,如接口…

ROS2humble版本使用colcon构建包

colcon与与catkin相比,没有 devel 目录。 创建工作空间 首先,创建一个目录 ( ros2_example_ws ) 来包含我们的工作区: mkdir -p ~/ros2_example_ws/src cd ~/ros2_example_ws 此时,工作区包含一个空目录 src : . └── src1 directory, …

GY-56 (VL53L0X) 激光测距

文章目录 一、GY-56 简介二、引脚功能三、通信协议1.串口协议: 当 GY-56 PS 焊点开放时候使用(默认)(1)串口通信参数(默认波特率值 9600bps)(2)模块输出格式,每帧包含 8-13 个字节&a…

C语言 | Leetcode C语言题解之第541题反转字符串II

题目&#xff1a; 题解&#xff1a; void swap(char* a, char* b) {char tmp *a;*a *b, *b tmp; }void reverse(char* l, char* r) {while (l < r) {swap(l, --r);} }int min(int a, int b) {return a < b ? a : b; }char* reverseStr(char* s, int k) {int n strl…

提升网站安全性 HTTPS的重要性与应用指南

内容概要 在如今数字化快速发展的时代&#xff0c;网站安全显得尤为重要。许多用户在访问网站时&#xff0c;尤其是涉及个人信息或金融交易时&#xff0c;对数据传输的安全性有着高度的关注。HTTPS&#xff08;超文本传输安全协议&#xff09;正是为了满足这种需求而诞生的。通…

Transformer究竟是什么?预训练又指什么?BERT

目录 Transformer究竟是什么? 预训练又指什么? BERT的影响力 Transformer究竟是什么? Transformer是一种基于自注意力机制(Self-Attention Mechanism)的神经网络架构,它最初是为解决机器翻译等序列到序列(Seq2Seq)任务而设计的。与传统的循环神经网络(RNN)或卷…

OpenDroneMap Webodm

OpenDroneMap & Webodm OpenDroneMap Webodm 开源无人机航拍系列图像及其它系列图像三维重建软件。很棒的开源无人机测绘软件OpenDroneMap,从航拍图像生成精确的地图、高程模型、3D 模型和点云。 应用领域 Mapping & Surveying 测绘和测量 从图像测量获得高精度的可…

Java+Swing可视化图像处理软件

JavaSwing可视化图像处理软件 一、系统介绍二、功能展示1.图片裁剪2.图片缩放3.图片旋转4.图像灰度处理5.图像变形6.图像扭曲7.图像移动 三、系统实现1.ImageProcessing.java 四、其它1.其他系统实现2.获取源码 一、系统介绍 该系统实现了图片裁剪、缩放、旋转、图像灰度处理、…

迈入国际舞台,AORO M8防爆手机获国际IECEx、欧盟ATEX防爆认证

近日&#xff0c;深圳市遨游通讯设备有限公司&#xff08;以下简称“遨游通讯”&#xff09;旗下5G防爆手机——AORO M8&#xff0c;通过了CSA集团的严格测试和评估&#xff0c;荣获国际IECEx及欧盟ATEX防爆认证证书。2024年11月5日&#xff0c;CSA集团和遨游通讯双方领导在遨游…

string模拟实现插入+删除

个人主页&#xff1a;Jason_from_China-CSDN博客 所属栏目&#xff1a;C系统性学习_Jason_from_China的博客-CSDN博客 所属栏目&#xff1a;C知识点的补充_Jason_from_China的博客-CSDN博客 string模拟实现reserve 这里实现的是扩容 扩容这里是可以实现缩容&#xff0c;可以实现…

如何实现KIS私有云数据到聚水潭的高效集成

KIS私有云数据集成到聚水潭&#xff1a;KIS-供应商——>空操作案例分享 在企业信息化建设中&#xff0c;数据的高效流动和准确对接是提升业务效率的关键。本文将重点介绍如何通过轻易云数据集成平台&#xff0c;将KIS私有云中的供应商数据无缝集成到聚水潭系统&#xff0c;…

GESP4级考试语法知识(算法概论(三))

爱因斯坦的阶梯代码&#xff1a; //算法1-12 #include<iostream> using namespace std; int main() {int n1; //n为所设的阶梯数while(!((n%21)&&(n%32)&&(n%54)&&(n%65)&&(n%70)))n; //判别是否满足一组同余式cout<<n<…

【无标题】123

软件包管理器yum yum类似应用商店客户端&#xff0c;有人已经把软件写好放在服务器上了&#xff0c;通过yum找到服务器上的软件下载 软件操作 yum list 可以显示所有可下载软件&#xff0c;我们要找lrzsz软件 yum install 下载 yum remove 卸载 yum源 yum下载软件是通过下载…

【Golang】sql.Null* 类型使用(处理空值和零值)

sql.NullString 和 sql.NullInt64 类型&#xff08;以及其他类似的 sql.Null* 类型&#xff09;在处理数据库操作时非常有用&#xff0c;尤其是在 Go 语言的 database/sql 包中。它们的主要用途包括&#xff1a; 表示 NULL 值&#xff1a; 在数据库中&#xff0c;NULL 表示“没…

【昇腾】从单机单卡到单机多卡训练

昇腾&#xff1a;单机单卡训练->单机多卡训练 分布式训练 &#xff08;1&#xff09;单机单卡的训练流程 硬盘读取数据CPU处理数据&#xff0c;将数据组成一个batch传入GPU网络前向传播计算loss网络反向传播计算梯度 &#xff08;2&#xff09;PyTorch中最早的数据并行框…