- 博客(51)
- 收藏
- 关注
原创 系统架构2-质量属性Quality Attributes
软件架构与质量属性摘要 软件架构是系统结构和组件关系的集合,包含外部可见属性和组件行为。架构是早期关键决策的体现,影响质量属性(如性能、安全性)的实现,并决定产品线开发效率。质量属性分为执行时可观察(性能、可用性)和不可观察(可维护性、可测试性)两类,需通过场景化定义(刺激、响应等6要素)精确描述。常用策略包括冗余(可用性)、延迟绑定(可修改性)和负载均衡(性能)。架构驱动需求(ASR)对设计决策有深远影响,可通过Utility树和角色驱动方法识别。折中权衡是架构设计的核心挑战。
2025-12-11 18:15:12
1229
1
原创 软件系统架构1-Intro
本文摘要:软件工程的核心概念围绕软件与硬件的本质区别展开,软件是虚拟且具有演化属性的。重点阐述了软件体系结构的定义,指出其作为系统基本组织,包含组件、连接件及其相互关系。文章对比了体系结构与设计的差异,强调体系结构是高层次设计决策,更关注非功能性需求(如性能、安全性等)。通过4+1视图模型介绍了多维度架构描述方法,并探讨了软件架构师在需求分析、技术决策和风险管理中的关键作用。最后总结了软件设计过程的方法论,包括分解、抽象等策略,以及质量评估技术。全文系统性地呈现了软件架构的理论框架和实践要点。
2025-12-11 18:13:25
852
原创 软件系统设计-原则模式期末复习
本文摘要: 本文系统介绍了软件系统设计中的核心设计原则和常用设计模式。主要内容包括: 七大设计原则及其关系: 单一职责原则 开闭原则 里氏代换原则 依赖倒置原则 接口隔离原则 合成复用原则 迪米特法则 常用设计模式: 创建型模式(工厂、建造者、原型) 结构型模式(适配器、装饰器、外观) 行为型模式(策略、状态、观察者、命令) 重点模式对比: 策略模式vs状态模式 工厂模式vs抽象工厂模式 组合模式vs装饰模式 实际应用场景: 通过具体代码示例展示了各模式在系统设计中的应用,如电商促销策略、视频播放状态管理等
2025-12-11 18:12:20
560
原创 软件系统设计-原则模式期末复习
本文总结了软件系统设计中常用的设计原则和模式,为期末复习提供参考。重点内容包括:1. 七大设计原则(单一职责、开闭、里氏替换、依赖倒置、接口隔离、合成复用、迪米特法则)及其相互关系;2. 常用设计模式(策略、状态、工厂、建造者、原型、命令、观察者、中介者、模板方法、外观、适配器、组合、装饰)的实现原理、优缺点及适用场景;3. UML六种箭头关系的识别;4. 典型考题解析,如策略与状态模式的区别、最小知识原则的应用等。文章通过具体代码示例说明各模式的实现方式,并分析其遵循的设计原则,帮助理解如何在系统设计中灵
2025-12-11 18:11:20
917
原创 软件测试-期末复习
是文档:体现被测单元的预期功能1(Intended Functionality)被测单元:模块、类、方法、函数、语句是机制:验证待测程序的行为是否符合预期是程序:判定程序的执行是否违反了某种正确性政策是约束:差分测试(Differential Testing)也称为差分模糊测试,是 一种常用的软件测试技术,通过向一系列类似的应用程序 (或同一应用程序的不同实现)提供相同的输入,根据这些相似程序执行结 果是否存在差异来判定是否检测到缺陷1,2。
2025-12-11 18:09:43
884
原创 软件质量管理期末复习
本文摘要: 文章系统阐述了软件项目管理和过程改进的核心概念。首先定义了管理的三大要素(目标、状态、纠偏)及软件项目管理的目标(成本、质量、工期)。然后详细介绍了软件过程改进模型,重点分析了CMM/CMMI的五个成熟度等级特征(初始级、可重复级、已定义级、已管理级、优化级),指出CMMI是过程改进模型而非具体开发方法。文章还对比了各类生命周期模型(瀑布、迭代等)的适用场景,强调应根据项目复杂度选择合适的模型。最后指出过程管理的本质是通过持续改进来提升软件质量和组织效能。
2025-12-10 15:16:53
1038
原创 打开数据库这个黑盒
数据库并发控制与性能优化要点总结 Oracle采用多版本并发控制机制,实现了读写不阻塞的高效并发模型。其核心特点是:只有修改操作会加行级锁,读操作完全不加锁,写入器不会阻塞读取器。这种设计通过Undo日志保存数据快照,虽然提高了吞吐量,但也需要开发者自行处理某些并发控制需求。性能优化需综合考虑CPU/IO负载情况,针对不同负载模式采取相应措施。SQL开发与程序设计存在差异,应避免使用布尔类型,推荐用具体状态字段替代标志位。数据库设计需平衡范式要求与实际查询效率,有时冗余字段可提升性能。
2025-12-10 15:10:54
309
原创 索引结构、实现及使用
本文介绍了数据库索引的基本概念及其核心数据结构B+树。索引作为DBMS中排序的数据结构,能够加速数据查询和更新。文章重点分析了从二叉搜索树到B+树的演进过程,详细阐述了B+树的高扇出、低高度特性及其对磁盘I/O的优化。通过图示展示了B+树的结构特点,包括叶节点指针设计如何提升范围查询效率。此外,文章还深入讲解了B+树的查找算法、节点分裂机制等实现细节,并对比了B树与B+树的差异。最后讨论了磁盘存储特性对索引设计的影响,强调了高扇出对改善数据局部性的重要性。
2025-12-10 15:09:55
532
原创 数据库B树结构的物理实现
本文系统梳理了数据存储的物理组织原理。首先介绍了大端序和小端序的概念,随后详细阐述了文件格式设计中的寻址方式、页式存储结构及数据库表结构。重点分析了B树节点的分裂合并机制、压缩策略和碎片维护方法。在数据分区方面,探讨了循环分区和数据驱动分区的实现方式及其优缺点。最后,针对高并发场景提出了分库分表的解决方案,包括垂直拆分、水平拆分和读写分离等技术,并讨论了全局ID生成策略。全文从底层存储原理到上层应用架构,完整呈现了数据物理组织的关键技术要点。
2025-12-10 15:08:40
648
原创 数据库期末重点
本文概述了OSI七层模型和TCP/IP四层模型的结构与功能。OSI模型从下至上包括物理层、数据链路层、网络层、传输层、会话层、表示层和应用层,每层都有特定功能和服务。TCP/IP模型则分为网络接口层、网际层、传输层和应用层。文章比较了两者的差异:OSI模型理论性强但实现复杂,TCP/IP模型更贴近实际协议。最后介绍了结合两者优点的五层协议模型,包括物理层、数据链路层、网络层、传输层和应用层,并总结了各层的功能特点。
2025-12-09 19:53:34
891
原创 计算机网络-ISO/OSI 和TCP/IP
本文概述了OSI七层模型和TCP/IP四层模型的结构与功能。OSI模型从下至上包括物理层、数据链路层、网络层、传输层、会话层、表示层和应用层,每层都有特定功能和服务。TCP/IP模型则分为网络接口层、网际层、传输层和应用层。文章比较了两者的差异:OSI模型理论性强但实现复杂,TCP/IP模型更贴近实际协议。最后介绍了结合两者优点的五层协议模型,包括物理层、数据链路层、网络层、传输层和应用层,并总结了各层的功能特点。
2025-12-09 19:52:08
1198
2
原创 计算机网络-物理层
本文介绍了数据通信的基本概念与关键技术,主要包括: 数据信号分类(模拟/数字信号)及速率指标(波特率、比特率) 两大传输定理:奈奎斯特定理(理想信道极限速率)和香农定理(噪声信道极限速率) 编码调制技术:数字编码(RZ/NRZ/曼彻斯特等)、数字调制(ASK/FSK/PSK/QAM)及模拟信号数字化(PCM) 三种交换方式比较:电路交换(独占线路)、报文交换(存储转发)和分组交换(分块传输),分析各自优缺点 分组交换的两种实现方式:数据报(无连接)和虚电路(面向连接) 文章系统阐述了数据通信的核心原理与技术
2025-12-09 19:51:25
811
原创 linux期末重点
本文总结了Linux操作系统期末考试的重点内容,主要包括: Linux基本概念:开放性、多用户、多任务、设备独立性等特性,以及GPL许可证的特点。 文件系统:磁盘分区方案(/boot、/usr、/var等)、文件类型(普通文件、目录、设备文件等)和典型目录结构。 常用命令:文件操作(ls、cp、mv等)、进程管理(ps、jobs、kill等)、权限管理(chown、chgrp)以及压缩解压命令。 重点考点:MBR、配置文件理解、虚拟终端、软硬链接区别、合理分区方案等。 文章还简要介绍了试卷结构和各章节考察要
2025-12-09 19:49:41
1190
原创 人机交互期末复习
本文整理了人机交互课程的期末复习要点,主要包括基础概念、交互框架、认知心理学原理和交互设计原则。内容涵盖人机交互定义、发展历史、执行评估框架、信息处理模型,以及格式塔心理学原则在界面设计中的应用。重点介绍了交互设计的两大目标:可用性目标(易学性、高效性等)和用户体验目标,并详细说明了简易可用性工程的四种主要技术(用户观察、场景法、边做边说、启发式评估)及其应用。文章适合快速回顾核心知识点,为考试提供系统性复习指南。
2025-12-09 19:46:30
1050
原创 ch13-ir-control-控制流语句的翻译
本文介绍了控制流语句的中间代码翻译方法,重点讨论了if-else和while语句的代码生成。作者采用visitor模式而非属性文法或监听器,通过临时变量和标签计数器管理控制流。文章展示了如何为布尔表达式生成中间代码,并使用标签实现条件跳转。特别讲解了break语句在嵌套结构中的处理方式,以及如何通过栈管理循环的跳转目标。代码示例演示了如何为if-else和while语句生成带标签的中间代码,包括条件判断、跳转指令和标签管理。该方法避免了简单翻译方案可能产生的冗余代码,旨在生成更高效的中间表示。
2025-11-21 08:38:39
328
原创 ch12-ir-expr-表达式翻译
本文讨论了表达式翻译在中间代码生成中的关键问题,重点分析了布尔表达式和控制流语句的翻译方法。文章指出父节点需要为子节点准备跳转指令的目标标签,并通过继承属性传递信息。具体讲解了赋值语句、数组引用和布尔表达式的翻译过程,包括中间代码生成和地址计算。通过实例展示了"a = b + -c"和"c + a[i][j]"等表达式的翻译步骤,详细说明了临时变量的生成和数组偏移地址的计算方法。文章强调了布尔表达式和非布尔表达式在翻译时的区别,以及它们在控制流语句中的不同作用。
2025-11-21 08:37:44
892
原创 软件工程II-ch02-软件工程的发展
科学计算机器为中心的科学主题第一代和第二代编程语言软件工程和硬件工程是相似的硬件主导的发展过程强调回溯和测试科学家和硬件工程师商业应用(批处理过程)应用为中心商业框架第三代编程语言软件不是硬件软件工艺的提出计算机科学系的出现软件危机的出现软件需求超过软件工程师的供应图灵奖(1966)软件产品商业微型计算机结构化编程语言结构化方法瀑布模型形式化模型量化方法生产力个人消费个人计算机图像界面现代化结构化方法。
2023-05-09 17:28:46
321
原创 软件工程II-ch01-软件工程基础
软件独立于硬件软件是工具软件 = 程序 + 文档 + 数据 + 知识软件的发展比编码更加复杂应用软件源于现实,但是高于现实(课本P4)应用系统的、规范的、可量化的方法来开发、运行和维护软件,即将工程应用到软件。对1)中各种方法的研究。
2023-05-09 17:28:04
227
原创 软件工程II-ch09-软件设计基础
软件设计是指关于软件对象的设计,是一种设计活动。软件设计既指软件对象实现的规格说明,又指这个规格说明产生的过程。软件设计活动以需求开发的制品(需求规格说明和分析模型)为基础,构建软件设计方案描述和原型,为后期的构造活动提供规划或蓝图。软件设计兼具工程性和艺术性,由于软件系统的可变性,软件设计具有演化性,也因为软件设计的过程实际上就是一系列决策发生的过程,软件设计具有决策性。Wiki:设计是为制作每个对象或系统奠定基础的计划。[Brooks 2010]认为上述定义的精髓在于计划、思维和后续执行。
2023-05-09 16:57:00
404
原创 编译原理ch08-parser-allstar
比如, (已知语法正确) 关闭默认错误处理功能, 提高运行效率比如, (出错代价太大) 在遇到第一个语法错误时, 就停止分析第 9 章: 错误报告与恢复:有点乱。
2023-05-06 17:48:05
739
原创 编译原理Compiler-ch07- LL(1) 语法分析器
L : 从左向右 (left-to-right) 扫描输入L : 构建最左 (leftmost) 推导1 : 只需向前看一个输入符号便可确定使用哪条产生式。
2023-04-23 15:10:17
1892
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅