软件工程实验-实验2 结构化分析与设计-总体设计和数据库设计
一、实验内容 1. 绘制工资支付系统的功能结构图和数据库 在系统设计阶段,要设计软件体系结构,即是确定软件系统中每个程序是由哪些模块组成的,以及这些模块相互间的关系。同时把模块组织成良好的层次系统:顶层模块通过调用它的下层模块来实现程序的完整功能,顶层模块下面的每个模块再调用更下层的模块从而完成程序的一个子功能,最下层的模块完成最具体的功能。通过对数据流图边界的划分,变换成软件结构,得到功能结构图。试根据实验指导书绘制工资支付系统的功能结构图。并完成如下任务: 任务1:总务办公管理系统总务办公管理系系统简介:某单位准备开发一个购买办公用品和设备的总务办公管理系统。办公用品的购买申请由各科室提出,由负责总务工作的办公室统一收集。其中, 购买申请的金额低于500 元(含500 元)可以由总务办公室直接审批,而高于500 元的购买申请由机构主管领导审批,批准的购买申请形成采购清单由采购员负责购买,同时应记录每次实际购买清单,进行入账。在提出购买申请时要包括下述数据:申请单位、物品名称、物品数量、预计价格、物品用途等。每次购买完成后应记录以下数据:物品名称、物品数量、价格、总金额、购买日期、经办人等。请对该系统进行设计,绘制出该系统的功能模块结构图和数据库模型图。 任务2:火车票预订系统系统简介:某高校后勤集团为了学生寒暑假返乡,办理代学生预订返乡火车票事务,订票必须提前三天办理,后勤订票处提前三天向火车站办理购票事务。订票处使用一台微机处理订票后购票事务,学生订票一次称为一个事务,由订票员将其输入在微机中,系统核实订单后,将订票信息记录放在订票库中。系统每天打印预订三天的购票单,并更新订票库。请对该系统进行设计,绘制出该系统的功能模块结构图和数据库模型图。 |
二、源代码及运行结果(或截图) 相关知识点 在系统设计阶段,要设计软件体系结构,即是确定软件系统中每个程序是由哪些模块组成的,以及这些模块相互间的关系。同时把模块组织成良好的层次系统:顶层模块通过调用它的下层模块来实现程序的完整功能,顶层模块下面的每个模块再调用更下层的模块从而完成程序的一个子功能,最下层的模块完成最具体的功能。通过对数据流图边界的划分,变换成软件结构,得到功能结构图。 1. 功能结构图 功能结构图(或模块结构图)是展示系统内部各个功能模块以及它们之间关系的图形化表示。它的作用是帮助开发人员理解系统的功能需求和模块间的交互,帮助系统分层,确保开发中的各个部分是清晰分工的。 模块化设计:模块化是软件设计中的核心思想,它将复杂的系统拆分成多个独立且自包含的模块,每个模块都有其明确的功能和职责。模块之间通过接口进行通信,降低模块之间的耦合度,提高系统的可维护性。模块化设计在后期的开发和维护过程中具有非常重要的意义,它让开发人员可以在不影响其他模块的情况下,对某一模块进行修改、优化或重构。 分层设计:分层设计将系统按功能复杂度和重要性分成多个层级,从而实现顶层模块控制整个系统的运作,下层模块实现更具体的功能。这种层次化的设计方式通常能够有效避免系统的功能冗余,同时提高代码复用性。例如,顶层的用户接口模块负责与用户交互,数据存储模块负责数据的持久化存储,业务逻辑模块负责数据的处理和业务规则的执行。通过分层设计,系统的各个模块之间可以通过接口和协议进行清晰的交互。 2. 数据库模型图 数据库模型图(E-R图,实体-关系图)是展示系统中各个数据实体之间关系的图形化工具。实体通常代表数据库中的表,而关系则代表表之间的关联。通过数据库模型图,可以清晰地了解数据的存储结构,并帮助开发者根据功能需求设计合理的数据表和关系,从而保证系统数据的完整性和一致性。 实体与关系:在数据库设计中,实体代表系统中的主要对象(例如:学生、订单、产品等)。每个实体包含若干个属性,通常是表中的字段。例如,学生实体包含学号、姓名、性别、班级等属性。而实体之间的关系,表示了不同实体之间的联系。关系的类型有“一对多”、“多对一”和“多对多”,例如一个学生可以有多个订单,但每个订单只能对应一个学生,表示学生和订单之间是“一对多”的关系。 规范化设计:在进行数据库设计时,我们会遵循规范化原则,以减少数据冗余和数据不一致问题。规范化是将数据分解成多个小的表格,并通过主键和外键建立表之间的关系,以保证数据的完整性。规范化通常分为不同的层级,如第一范式(1NF)、第二范式(2NF)、第三范式(3NF),每个范式都在上一范式的基础上解决了数据冗余和不一致问题。 数据完整性与一致性:数据完整性是指数据在数据库中的准确性、唯一性和完整性。为此,数据库设计时需要使用主键、外键等约束来保证数据的完整性。例如,订单表中的订单ID应该是唯一的,这样可以确保每个订单都能被唯一标识。外键约束则保证了表与表之间的关系准确无误,避免了因删除或修改一个实体导致其他表中数据丢失的风险。 任务1:总务办公管理系统 实验分析 系统需求分析 总务办公管理系统的主要目标是管理单位的办公用品采购流程。系统需要记录每个采购申请,包括物品信息、申请单位、金额等。根据金额大小,审批流程不同,系统应根据审批结果生成采购清单并进行物品购买,最后记录入账信息。
操作步骤 功能模块划分 根据系统需求,功能可以分为以下几个模块:
数据库设计
实验总结 总务办公管理系统涉及采购申请的提交、审批流程、采购与入账管理等功能,系统设计的关键在于确保不同角色(如各科室、总务办公室、主管领导等)之间的协作。系统中的每个模块(申请、审批、采购、入账)都与数据库中的不同表进行交互,确保数据能够在不同阶段之间正确传递。数据库设计时,我们特别注意了数据的规范化,避免冗余数据,并确保了采购流程的完整性。 通过模块化设计,系统的扩展性和维护性得到了很好的保证。系统的成功实现离不开对功能的精确划分和数据库设计的合理性。在实际开发中,这种模块化的设计方式能够帮助开发人员清晰理解每个模块的职责,并有效地管理系统复杂度。 实验截图 图 1 任务一功能结构图 图 2 任务一数据库模型图 任务2:火车票预订系统 实验分析 系统需求分析 火车票预订系统主要是为学生提供返乡购票的服务。系统需要处理学生的订票请求、核实订票信息、记录订单并生成预订记录。每个学生的订票请求会经过核实,符合要求后会被保存到数据库中,并每天打印三天后需要购票的学生名单。
操作步骤 功能模块划分
数据库设计
实验总结 火车票预订系统的设计主要围绕学生订票请求的处理展开,确保学生可以按时进行订票,并能够查询和打印购票单。系统设计时,我们注重了订单核实、订票状态管理等功能模块的构建,确保了订票过程的顺利进行。 数据库设计方面,我们建立了学生信息表、订单表和购票单s表,确保了订单和学生之间的关联性,订票状态的实时更新能够保证数据的一致性和完整性。系统的实现帮助我们理解了如何处理用户请求和如何在系统中实现状态管理。 总体来看,通过本次实验的设计与分析,我们掌握了从需求分析、数据库设计到系统开发、集成和测试的全过程。这为我们未来的系统开发打下了坚实的基础,尤其是在系统的模块化设计、数据库设计、权限管理等方面的实践经验。通过实验,我们学到了如何将理论知识与实际需求结合,形成一个完整的、可操作的系统设计。 实验截图 图 3 任务二功能结构图 图 4 任务二数据库模型图 |
相关文章:

软件工程实验-实验2 结构化分析与设计-总体设计和数据库设计
一、实验内容 1. 绘制工资支付系统的功能结构图和数据库 在系统设计阶段,要设计软件体系结构,即是确定软件系统中每个程序是由哪些模块组成的,以及这些模块相互间的关系。同时把模块组织成良好的层次系统:顶层模块通过调用它的下层…...

密码学精简版
密码学是数学上的一个分支,同时也是计算机安全方向上很重要的基础原理,设置密码的目的是保证信息的机密性、完整性和不可抵赖性,安全方向上另外的功能——可用性则无法保证,可用性有两种方案保证,冗余和备份࿰…...

开源模型迎来颠覆性突破:DeepSeek-V3与Qwen2.5如何重塑AI格局?
不用再纠结选择哪个AI模型了!chatTools 一站式提供o1推理模型、GPT4o、Claude和Gemini等多种选择,快来体验吧! 在全球人工智能模型快速发展的浪潮中,开源模型正逐渐成为一股不可忽视的力量。近日,DeepSeek-V3和Qwen 2.…...

【51单片机零基础-chapter4:LED数码管】
LED数码管本质是一种廉价的显示器,由多个发光二极管封装组成的8字形器件 如果要显示6,那么需要点亮除了B以外的所有段,并且开发板上默认是共阴极 阳极A->G除了B全点亮,所以7,4,2,1,9,10全接正极:10111110 这个就是段码,表示显示的数据 静态LED显示 开发板上是四个一体…...

【网络】什么是路由协议(Routing Protocols)?常见的路由协议包括RIP、OSPF、EIGRP和BGP
路由协议(Routing Protocols) 像 google map RIP (Routing Information Protocol):跳数 超了就废了 OSPF(Open Shortest Path First) 就好像拿着map找最短距离(跳数) EIGRP(Enhanced Interior Gateway Routing Protoco…...

Unity3D ILRuntime开发原则与接口绑定详解
引言 ILRuntime是一款基于C#的热更新框架,使用IL2CPP技术将C#代码转换成C代码,支持动态编译和执行代码,适用于Unity3D的所有平台,包括Android、iOS、Windows、Mac等。本文将详细介绍ILRuntime在Unity3D中的开发原则及接口绑定技术…...

闻泰科技涨停-操盘训练营实战-选股和操作技术解密
如上图,闻泰科技,今日涨停,这是前两天分享布局的一个潜伏短线的标的。 选股思路: 1.主图指标三条智能辅助线粘合聚拢,即将选择方向 2.上图红色框住部分,在三线聚拢位置,震荡筑底,…...

我用AI学Android Jetpack Compose之开篇
最近突发奇想,想学一下Jetpack Compose,打算用Ai学,学最新的技术应该要到官网学,不过Compose已经出来一段时间了,Ai肯定学过了,用Ai来学,应该问题不大,学习过程记录下来,…...

25考研王道数据机构课后习题-----顺序表链表部分
文章目录 1.顺序表题目2.链表相关题目3.我的个人总结 声明:以下内容来自于B站知名up主白话拆解数据结构,望获悉; 1.顺序表题目 下面的这个说的是:下面的哪一个是组成我们的顺序表的有限序列,这个应该是数据元素&#x…...

新能源电动汽车动力电池技术
新能源电动汽车动力电池技术是新能源汽车发展的核心之一,以下是动力电池技术的一些关键方面: 技术进展 能量密度提升:近年来,动力电池的能量密度有了显著提升,从2010年的100Wh/kg提高到2024年的300Wh/kg。能量密度的…...

修复 ITunes 在 Windows 或 Mac 上不断崩溃的问题 [100% 有效]
对于 iDevice 用户来说,只能通过 iTunes 在 iDevice 和计算机之间传输文件的困境一直是一个紧迫的问题。所有 iPhone 用户可能都知道,iTunes 并不是一款高效的应用程序,有时性能会很差,例如在 iDevices 和计算机之间传输文件时不断…...

Android设备使用AOA协议进行主机与配件模式通信
1.使用TYPC-C数据线连接两台华为手机: TYPE-C线,先连接下图右边的ACCESSORY 再连接左边的HOST 此时左边的HOST(白色) 会给右边的ACCESSORY(黑色) 充电 接着打开左连接的HostChart会自动调起授权,然后会启动右边的AccessoryChart USB HOS…...

Python爬虫入门实例:Python7个爬虫小案例(附源码)
引言 随着互联网的快速发展,数据成为了新时代的石油。Python作为一种高效、易学的编程语言,在数据采集领域有着广泛的应用。本文将详细讲解Python爬虫的原理、常用库以及实战案例,帮助读者掌握爬虫技能。 一、爬虫原理 爬虫,又…...

生成对抗网络 (Generative Adversarial Network, GAN) 算法MNIST图像生成任务及CelebA图像超分辨率任务
生成对抗网络 (Generative Adversarial Network, GAN) 算法详解与PyTorch实现 目录 生成对抗网络 (Generative Adversarial Network, GAN) 算法详解与PyTorch实现1. 生成对抗网络 (GAN) 算法概述1.1 生成器与判别器1.2 GAN的优势2. GAN的核心技术2.1 目标函数2.2 生成器2.3 判别…...

快速排序排序方法演示及算法分析(附代码和实例)
基本思想: 任取一个元素(比如第一个)为中心,称为枢轴(pivot)所有比它小的元素一律前放,比它大的元素后放,形成左右两个子表对各子表重新选择中心元素并以此规则调整直到每个子表的元…...

库迪困境:供应链补救失效背后的市场错配
作者 | 曾响铃 文 | 响铃说 近日,红餐网证实了库迪咖啡暂停便捷店招商的消息。库迪官方回应称,店中店模式招商只是按下了暂停键,不排除未来重启的可能。 但一批被“暂停”的便捷店加盟商,不知道等不等起库迪的未来重启。 小红…...

解决openpyxl操纵带公式的excel或者csv之后,pandas无法读取数值的问题
1 功能特点 openpyxl: 这是一个专门用于操作Excel文件(.xlsx/.xlsm)的库。它提供了丰富的功能来读取、写入和修改Excel文件的各个元素,如单元格、行、列、工作表等。例如,可以通过openpyxl轻松地创建一个新的Excel工作…...

基于傅立叶神经网络(FNN)与物理信息神经网络(PINN)求解泊松方程(附Pytorch源代码)
基于傅立叶神经网络(FNN)与物理信息神经网络(PINN)求解泊松方程 一、引言 偏微分方程(Partial Differential Equation, PDE)在科学与工程领域有着广泛的应用。传统数值方法(如有限差分法、有限元法)在求解这类问题时,尽管已经非常成熟,但随着问题复杂度的增加,其计…...

小程序组件 —— 28 组件案例 - 推荐商品区域 - 实现结构样式
这一节目标是实现底部推荐商品的结构和样式,由于这里要求横向滚动,所以需要使用上节介绍的 scroll-view 功能,并使用 scroll-x 属性支持横向滚动,推荐商品区域中的每一个商品是一个单独的 view,每个view 中需要写三个组…...

Flink读写Kafka(DataStream API)
在Flink里,已经预定义了kafka connector,使用该connector我们可以读写kafka,并且能实现exactly once的语义。 要使用需要引入相关的maven依赖,在这里,因为读写kafka,就会涉及一个问题,kafka-client和broker的版本兼容问题,不过因为kafka client和broker的双向兼容的良…...

SCAU期末笔记 - 数据库系统概念往年试卷解析
数据库搞得人一头雾水,题型太多太杂,已经准备摆烂了。就刷刷往年试卷,挂不挂听天由命。 2019年 Question 1 选择题 1. R ∩ S R∩S R∩S等于一下哪个选项? 画个文氏图秒了 所以选A. R ∩ S R − ( R − S ) R∩SR-(R-S) R∩…...

flutter在windows平台中运行报错
PS D:\F\luichun> flutter run当运行flutter项目时,【解决如下报错】 /C:/flutter/packages/flutter/lib/src/painting/star_border.dart:530:27: Error: The getter Matrix4 isnt defined for the class _StarGenerator.- _StarGenerator is from package:flut…...

HTML——75. 内联框架
<!DOCTYPE html> <html><head><meta charset"UTF-8"><title>内联框架</title><style type"text/css">iframe{width: 100%;height: 500px;}</style></head><body><!--iframe元素会创建包含…...

python对mongodb的增删查改
python对mongodb的增删查改 1. 安装 pymongo2. 连接 MongoDB3. 创建(插入)文档插入单个文档插入多个文档 4. 查询文档查询单个文档查询多个文档复杂查询嵌套查询分页条件查询(通用模版) 5. 更新文档更新单个文档更新多个文档更新嵌…...

【JS】期约的Promise.all()和 Promise.race()区别
概述 Promise.all() 和 Promise.race() 都是 JavaScript 中处理多个异步操作的 Promise 方法,但它们的行为和返回结果有所不同。 Promise.all()和Promise.race() 1. Promise.all() Promise.all() 接受一个由多个 Promise 实例组成的可迭代对象(例如数…...

使用 RxJS 库实现响应式编程
什么是 RxJS? RxJS(Reactive Extensions for JavaScript)是一个用于响应式编程的库,它使得处理异步数据流变得更加简单和优雅。通过使用 Observables(可观察对象),你可以轻松地处理事件、HTTP …...

ARP攻击的原理和实现 (网络安全)
ARP攻击的原理和实现 ARP(Address Resolution Protocol,地址解析协议)是一种网络协议,用于在局域网内将IP地址映射到MAC地址。在以太网中,设备通过广播ARP请求来查询目标IP地址对应的MAC地址,从而建立通信…...

chatgpt model spec 2024
概述 这是模型规范的初稿,该文档规定了我们在OpenAI API和ChatGPT中的模型的期望行为。它包括一组核心目标,以及关于如何处理冲突目标或指令的指导。 我们打算将模型规范作为研究人员和数据标注者创建数据的指南,这是一种称为从人类反馈中进…...

单片机-LED实验
1、51工程模版 #include "reg52.h" void main(){ while(1){ } } 2、LED灯亮 #include "reg52.h" sbit LED1P2^0; void main(){ while(1){ LED10; } } 3、LED闪烁 #include "reg52.h" sbit LED1P2^0; //P2大…...

QILSTE H10-C321HRSYYA高亮红光和黄光LED灯珠
在深入探讨H10-C321HRSYYA型号的复杂特性之前,我们首先需要明确其基本参数和功能。这款型号的LED产品以其独特的双色设计和卓越的性能在众多同类产品中脱颖而出。其外观尺寸为3.0x1.0x2.1mm,采用高亮黄光和红光的双色组合,赋予了其在多种应用…...