软件工程期末复习
Day1软件是什么软件 = 程序 + 数据 + 文档 软件分类系统软件:管理计算机资源(windows,驱动程序等等) 支撑软件:帮助开发软件的软件(IDEA等等) 应用软件:给用户使用的软件(QQ等等) 软件的特点复杂性:模块关系复杂,业务逻辑复杂,需求复杂 不可见性:出问题难以定位 服从性:软件必须服从外部需求 易变性:随着需求不断变化 软件危机定义:软件开发和维护过程中遇到的一系列严重问题。 出现原因:60年代硬件发展快,软件开发跟不上,导致项目越来越大 软件危机表现: 1.规模越来越大 2.复杂度越来越高 3.开发速度慢 4.成本高 5.质量差 如何解决软件危机重视需求分析 重视文档 充分测试 加强维护和管理 使用软件工程方法 什么是软件工程核心就是用工程化的方法开发软件 本质:将问题域映射到计算机实现域。 软件工程三要素方法:例如面向对象,结构化开发,告诉我们怎么做 工具:例如IDEA,git,帮助我们开发 过程:规定步骤 软件工程管理三要素成本(维护阶段占比最高,持续维护,新需求,新bug) 质量 工期 软件工程基本原理1.推迟实现:先分析,设计再编码 2....
Redis数据库
Day1Redis 是什么Redis 是一个高性能的 NoSQL 数据库,数据主要存储在内存中,所以读写速度很快。它支持 String、Hash、List、Set、ZSet 等数据结构,实际项目里常用来做缓存、验证码、登录 token、分布式锁、排行榜等。 Redis 和 MySQL 有什么区别?Redis 是内存型 key-value 数据库,速度快,适合做缓存;MySQL 是关系型数据库,数据主要持久化到磁盘,支持事务和复杂 SQL,适合做核心数据存储。实际项目中一般 MySQL 存真实数据,Redis 做缓存来提高访问速度。 Redis 为什么快一:基于内存操作 Redis 数据:直接存在内存 而 MySQL:主要在磁盘 二:使用高效的数据结构 redis 不是:简单 HashMap 它内部做了大量优化。 三:单线程避免线程切换和锁竞争 Redis 为什么单线程还快: 纯内存操作: 它的读写都在内存里完成,没有任何磁盘 I/O 带来的硬件瓶颈,速度是纳秒级别的。 高效的 I/O 多路复用: 也就是上面的多路复用机制,主线程只管处理“已经准备好”的事件,绝...
MySQL数据库
sql基础MySQL(关系型数据库)与 NoSQL(非关系型数据库) 特性 MySQL (关系型/RDBMS) NoSQL (非关系型) 存储模型 结构化存储(行/列),像 Excel 表格 多样化存储(键值、文档、图形、列族) 架构 (Schema) 固定模式。必须先定义表结构才能存数据 动态模式。支持非结构化或半结构化数据 查询语言 使用标准 SQL 语言 语法各异(如:MongoDB 的查询、Redis 命令) 扩展能力 纵向扩展(提高单机 CPU、内存、硬盘) 横向扩展(通过增加机器节点组成集群) 事务特性 严格遵循 ACID(强一致性) 遵循 BASE 理论(最终一致性) 表间关联 支持复杂的 JOIN 多表联查 通常不支持或弱支持 JOIN 数据库三大范式第一范式(1NF):要求数据库表的每一列都是不可分割的原子数据项。 **第二范式(2NF):**需要确保数据库表中的每一列都和主键相关,而不能只与主键的某一部分相关(主要针对联合主键而言)。 第三范式 (3NF):在 2NF 的基础上,非主键列必须“直接依赖”于主...
EDA期末复习
第一章:绪论数字技术与EDA技术概述模拟信号:在时间和数值上都是连续的物理量,如正弦波、矩形波等 。 数字信号:用数码表示,0和1没有数量意义,仅代表事物的对立两面,并遵循特定的码制原则 。 EDA技术定义:EDA(电子设计自动化)是一种以计算机为工作平台、以EDA软件工具为开发环境、以FPGA或ASIC为目标器件来实现电路系统设计的技术 。 发展阶段:经历了20世纪70年代的CAD初级阶段、80年代的CAE中级阶段,发展到90年代至今以可编程器件为核心的高级阶段 。 EDA设计方法与构成要素- 设计思想:EDA采用自上而下(Top-down)的设计方法,将整个数字系统分解为各个子系统和模块,便于逐层描述与仿真 。 - 构成要素:包含实现载体(可编程逻辑器件PLD,如FPGA和CPLD)、描述方式(原理图或HDL硬件描述语言等)、软件开发环境(如Quartus II或ModelSim)以及硬件开发环境(如DE2-115开发板) 。 传统方法与EDA方法的区别: 比较维度 传统设计方法 EDA设计方法 设计方向 自下而上(Bottom-u...
汇编期末复习
第一章机器语言与汇编语言的基础冯·诺依曼体系:该体系的核心思想是将程序当作数据存储起来,然后由计算机自动运行。 机器语言:它是机器指令的集合,而机器指令本质上就是一台机器可以正确执行的二进制码或电平脉冲命令。 汇编语言的产生:因为机器指令难以记忆,所以产生了汇编语言。汇编指令是机器指令的助记符,书写格式更接近人类语言,便于阅读和记忆。程序员编写的汇编指令需要通过“编译器”转换成机器码才能被计算机执行。 汇编语言的组成:它的核心是决定了语言特性的汇编指令,此外还包含由编译器执行的伪指令,以及供编译器识别的其他符号。 指令、数据与存储器(内存)指令与数据的统一性:指令和数据仅仅是应用上的概念区分。在内存或磁盘中,它们没有任何物理区别,全都是二进制信息。 存储器的重要性:CPU要工作,就必须从存储器(内存)中获取指令和数据。磁盘中的程序或数据如果不读入内存,CPU是无法直接使用的。 存储单元与容量:存储器被划分为若干个从0开始顺序编号的存储单元。一个存储单元可以存储8个bit(即8位二进制数,记作1B)。微机中常用的容量计量单位换算为:1KB=1024B,1MB=1...
