自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(56)
  • 收藏
  • 关注

原创 从分布式到中央计算:深度拆解下一代 Zonal 车载 EEA 架构变革

摘要:智能汽车电子电气架构(EEA)正经历从分布式ECU向"中央计算+区域控制+AI原生"的变革。新一代架构通过中央计算单元整合算力、区域控制器简化布线、AI原生设计实现软硬件解耦,解决了传统架构线束复杂、升级困难等问题。舱驾融合、SOA服务化和车载以太网技术推动软件复杂度激增,倒逼EEA升级。生成式AI、10BASE-T1S以太网和车载光通信构成下一代技术栈核心,大众、比亚迪等车企已率先落地区域架构。未来3-5年,这一架构将成为智能汽车差异化竞争的关键。

2026-06-02 16:57:58 260

原创 系统架构设计-网络OSI七层模型

1. 物理层(第1层):彻底无安全协议仅传输光电信号,无任何安全防护,是全程裸奔的层级。2. 会话层(第5层):无专属安全协议只管理会话连接,不具备独立安全能力,所有安全依赖上层或下层协议。其余五层(应用、表示、传输、网络、数据链路)均具备专属安全协议/安全机制。OSI七层模型看似枯燥,但只要理清「每层作用+核心协议+安全能力」的逻辑,就能彻底吃透。尤其是物理层、会话层无安全协议这个核心知识点,是网络面试、考试、日常排错的高频重点。

2026-05-22 10:46:31 385

原创 系统架构设计-关键路径真题详解

本文系统讲解软考系统架构师考试中关键路径计算的解题方法。首先列出4个核心公式(ES、EF、LF、LS)和2个时差公式(TF、FF),强调关键路径判定标准。通过真题示例演示解题四步法:梳理活动关系、顺推计算ES/EF、逆推计算LF/LS、确定关键路径。重点纠正"ES是否需要加1"的常见误区,指出考试计算的是时间点而非自然天数。最后提供速记口诀帮助考场快速解题,强调总时差为零的活动即为关键活动,其串联形成关键路径。

2026-05-18 17:22:13 465

原创 系统架构设计-④系统架构评估-CBAM评估案例

系统:网上书店(与 ATAM 案例相同)现状问题:大促期间下单接口 TPS 仅为 2000,但业务目标要求5000 TPS,响应时间 ≤ 500ms已有 ATAM 分析:识别出三个候选架构方案(A、B、C),均能满足性能目标,但成本、风险不同评估目标:通过 CBAM 量化每个方案的成本与收益,选择最优方案评估团队:架构师、产品经理、运维负责人、财务代表(共 5 人)维度ATAMCBAM核心问题架构能否满足质量属性?如何权衡?哪个架构方案最划算?输入业务目标、效用树、架构方法。

2026-05-13 16:57:52 411

原创 系统架构设计-④系统架构评估-ATAM和SAAM对比

对比维度ATAM(网上书店)SAAM(企业 CMS)评估时长3 天1 天核心问题性能 vs 安全 vs 可用性 怎么取舍?未来改需求时,哪个模块最痛苦?场景结构效用树(层次,带优先级和量化)扁平列表(投票排名)关键产物权衡点、敏感点、风险架构弱点、场景交互影响量化程度高低适合阶段架构设计中期,已有多个备选方案架构早期,或对可修改性特别关注。

2026-05-13 16:57:30 435

原创 系统架构设计-④系统架构评估-SAAM评估案例

系统:企业 CMS(支持文章编辑、发布、分类、标签、多语言翻译、用户权限等)架构:传统分层架构(前端 Vue + 后端 Spring Boot + MySQL),所有功能在一个单体应用中评估目标:评估该单体架构在未来两年内对各类变更的适应能力,识别高风险修改点评估团队:评估组长 + 架构师 + 开发负责人 + 运维负责人 + 业务代表(共 6 人)时间:1 天(工作坊形式)阶段主要产出描述架构模块依赖图、强耦合点记录开发场景6 个未来变更场景,优先级排序评估每个场景。

2026-05-13 16:56:50 427

原创 系统架构设计-④系统架构评估-ATAM评估案例

ATAM评估案例:网上书店系统架构分析摘要 本案例展示了ATAM方法在网上书店系统架构评估中的应用。评估历时3天,聚焦性能、安全性和可维护性等质量属性。关键发现包括:1)同步支付调用存在高并发风险,建议改为异步方式;2)缓存策略需优化以防止数据库过载;3)JWT机制需增加黑名单功能以提升安全性。评估识别出多个权衡点,如性能与数据一致性的平衡,并提出了具体改进建议。最终产出包括效用树、风险清单和架构优化方案,为系统上线前的架构决策提供了重要依据。该案例展示了ATAM方法如何系统性地评估架构风险并指导优化决策。

2026-05-13 15:45:01 450

原创 软件工程-⑥面向对象

本文系统梳理了面向对象(OO)的核心概念与方法论,重点围绕软考考点展开。面向对象以对象为基本单元,通过封装、继承、多态三大特性实现系统建模,其核心优势在于提升复杂系统的可维护性和扩展性。文章详细解析了面向对象建模的四个阶段(OOA、OOD、OOI、OOT)、类之间的五种关系(关联、继承、聚合、组合、依赖)以及七大设计原则(如单一职责、开闭原则等)。同时归纳了创建型、结构型、行为型三类设计模式的典型应用场景,并阐述了面向对象思想在分层架构、微服务架构中的实践应用。全文紧扣教材核心内容,突出软考高频考点,为系统

2026-05-11 14:55:56 346

原创 软件工程-⑤系统运行与维护

摘要: 系统运行与维护是系统上线后的持续性活动,贯穿其生命周期,核心目标是保障系统的可用性、安全性和性能优化。其特点包括持续性、复杂性、突发性、关联性和经济性,需遵循预防为主、全面覆盖、标准化等五大原则。运维流程分为运行监控、故障诊断与修复、系统优化、更新升级及系统退役五个阶段,涵盖硬件、软件、数据和安全四大维护任务。架构设计与运维相互影响,良好的架构降低维护成本,运维反馈优化架构。软考重点考察运维定义、原则、流程、故障分级及维护类型(纠错性、适应性等),强调架构师在运维策略设计中的核心作用。

2026-05-11 14:50:00 373

原创 软件工程-④测试

本文围绕软件测试相关内容,首先明确软件测试的定义、核心目标及 6 大基本原则,强调其贯穿软件生命周期的重要性;随后详细拆解测试的 6 个核心流程(测试计划、设计、执行、缺陷管理、回归测试、测试总结),明确各阶段任务与输出;接着分类讲解测试类型(按阶段分为单元、集成、系统、验收测试,按目标分为功能、性能等测试)及核心测试方法(黑盒、白盒、灰盒测试),明确各类方法的定义、适用场景及关键要点;还阐述了架构设计与软件测试的相辅相成关系,最后总结软考高频考点,助力备考与工作备查。

2026-05-11 14:27:56 497

原创 软件工程-③结构化分析与设计

本文系统梳理了《系统架构设计师教程(第2版)》中结构化分析与设计的核心内容。该方法采用"自顶向下、逐步分解"思想,分为结构化分析(SA)和结构化设计(SD)两个阶段。SA通过数据流图(DFD)、状态转换图(STD)和E-R图三大模型描述系统功能、行为和数据特征,并辅以数据字典详细定义各元素。SD则将分析成果转化为模块化设计,遵循高内聚、低耦合原则,通过模块结构图等工具实现系统架构设计。文章重点突出了软考高频考点,包括DFD绘制、数据字典编写、模块设计等内容,为备考和工作提供实用参考。

2026-05-11 14:16:41 506

原创 软件工程-②需求工程

摘要:需求工程是系统开发的关键环节,通过系统化方法确定客户真实需求,避免需求偏差导致的失败。需求分为业务需求、用户需求和系统需求(功能与非功能需求)。需求工程流程包括获取、分析、规格说明、确认验证和管理五个阶段,核心输出为《软件需求规格说明书》。需求变更需遵循规范流程,通过变更控制委员会审批。需求跟踪矩阵(RTM)确保需求与开发成果一致。结构化分析方法使用数据流图(DFD)和数据字典(DD)梳理系统功能与数据关系。掌握需求工程对架构设计和软考备考至关重要。

2026-05-11 14:08:01 483

原创 系统架构设计-Redis设计-缓存穿透、缓存击穿、缓存雪崩

Redis缓存问题的核心区别:缓存穿透是查询不存在的数据(如id=-1),请求直击数据库;缓存击穿是热点Key过期瞬间(如秒杀商品),大量请求涌入数据库;缓存雪崩是大批量Key同时失效或Redis宕机(如整点缓存集体过期),导致数据库瘫痪。解决方案:穿透用布隆过滤器拦截;击穿采用互斥锁或逻辑过期;雪崩通过随机过期时间和服务限流应对。记忆口诀:穿透查无此物,击穿单点热点,雪崩集体失效。

2026-05-08 10:51:55 257

原创 系统架构设计-数据库-数据库设计

摘要:数据库系统采用三级模式(外模式、模式、内模式)和两级映射(外模式-模式、模式-内模式)的体系结构,实现数据独立性与层次化抽象。数据库设计全过程包含需求分析、概念结构设计(E-R图)、逻辑结构设计(关系模型转换)、物理结构设计、实施及运维六个阶段。其中E-R图转换关系模式时需遵循1:1、1:N、M:N关系的特定规则,物理设计阶段需考虑存储结构与索引优化。整个设计过程从业务需求出发,最终形成可落地的数据库系统并持续维护优化。(149字)

2026-04-29 17:05:43 434

原创 系统架构设计-数据库-关系代数

本文详细介绍了关系代数的核心运算及其在数据库中的应用。主要内容包括:基础运算符(并、交、差、笛卡尔积、投影、选择、自然连接)的定义和SQL实现;数据表S1和S2的示例演示;重点讲解了自然连接与笛卡尔积的转换公式,通过选择运算过滤冗余行和投影运算剔除重复列来实现等价连接。文中提供了各种运算的关系代数表达式、运算结果示例和对应的SQL语句,帮助读者理解关系代数作为SQL底层逻辑的核心作用。特别说明了不同数据库对INTERSECT和EXCEPT的支持差异,以及自然连接的特性(自动去重和等值匹配)。

2026-04-29 16:20:16 403

原创 软件工程-①软件开发模型、CMMI、逆向工程

软件开发模型对比摘要 软件生命周期包含定义、开发、维护三阶段,其中维护成本占比最高(60%-70%)。主流开发模型包括: 瀑布模型:线性流程,需求冻结,适合需求明确的小型项目(如工具软件);其改进型V模型通过测试左移提升质量,适用于医疗/军工软件。 原型模型:快速验证模糊需求,分抛弃型和演化型,适合交互密集型系统(如APP)。 螺旋模型:风险驱动,每轮迭代含风险分析,适用于高风险大型项目(金融/航天系统)。 敏捷模型:短周期迭代,响应变化快,适合互联网产品(如短视频APP),但文档较弱。 RUP模型:用例驱

2026-04-23 18:04:01 559

原创 系统架构设计-学习建议

《软件架构师官方教材(第二版)备考优先级指南》将教材内容分为四类:必须掌握(5、6、7、8、13、14、15、20章),覆盖全题型核心考点;一般掌握(2、3、4、9、18、19章),侧重选择题;了解即可(1、10、11、12、17章),仅需记忆基础概念;无需深入(16章)可放弃。建议考生根据优先级分配复习时间,重点精读核心章节并配合刷题,次要章节通读概念,低频考点简单浏览即可高效提分。

2026-03-26 14:23:42 426

原创 系统架构设计-③系统架构评估

架构评估中三种架构评估方法:SAAM、ATAM和CBAM。

2026-03-26 11:38:53 573

原创 系统架构设计-②质量属性

本文系统梳理了软件系统质量属性的分类及应用场景。质量属性分为开发期属性和运行期属性:开发期属性包括易理解性、可扩展性等6个,影响开发维护效率;运行期属性包括性能、安全性等7个,直接影响用户体验。架构评估重点关注8个核心属性,如性能、可靠性等。文章还介绍了质量属性场景描述的6要素模板,以及敏感点与权衡点的区别。不同场景关注的质量属性数量不同,这是由于评估视角的差异:运行期关注用户体验全面性,架构评估侧重设计合理性,场景描述则强调可量化性。这些概念为软件架构设计和评估提供了系统化的理论框架。

2026-03-23 11:49:00 467

原创 系统架构设计-①软件架构风格

软件体系结构风格是描述某一个特定应用领域中系统组织方式的惯用模式,一个体系结构风格定义了一个词汇表和一组约束。一个词汇表中包含一些构件和连接件类型;一组约束指出系统是如何将这些构件和连接件组合起来的。

2026-03-16 17:22:04 459

原创 MQTT开发:【第②步】Windows搭建EMQX图形化客户端-MQTTX

本文介绍了MQTTX客户端的下载安装及连接配置过程。首先从官网下载对应系统版本的安装包,然后完成安装。配置时需添加新连接,填写EMQX服务器地址等参数。连接成功后,可在EMQX服务器端验证新客户端的连接状态。整个流程包括下载、安装、配置和验证四个主要步骤,帮助用户快速搭建MQTT通信环境。

2025-11-21 13:26:14 307

原创 MQTT开发:【第①步】Ubuntu搭建MQTT消息服务器-EMQX

本文详细介绍了在Ubuntu系统中安装和配置开源MQTT消息服务器EMQX的完整流程。首先通过curl命令获取并执行安装脚本配置软件源,然后使用apt-get完成安装。安装完成后,使用systemctl启动服务,并通过netstat命令验证18083(管理平台)和1883(MQTT协议)端口的监听状态。最后说明可通过127.0.0.1:18083访问Web管理控制台,默认凭据为admin/public。整个指南提供了从下载安装到验证运行的一站式解决方案。

2025-11-13 11:19:18 350

原创 使用 systemd 服务实现脚本或python程序开机自启动

使用systemd服务实现程序开机自启动

2025-07-16 15:27:59 768

原创 Android dumpsys命令总结

dumpsys

2024-05-23 16:05:24 442

原创 Excel单元格里的值等于指定值,高亮它所在的一行或一个区域

高亮一行

2022-11-09 14:28:38 3068

原创 bat脚本-批量删除文件前缀

windows批量删除文件名前缀

2022-08-31 22:57:57 5820

原创 树莓派调试板适配

串口名称是 USB-SERIAL CH340,波特率是115200,其余默认即可。关闭log中的内核error:echo 0 > /proc/sys/kernel/printk

2021-12-03 17:17:26 250

原创 Android源码URL

https://www.androidos.net.cn/sourcecode

2021-04-27 09:59:54 173

原创 树莓派Android10源码试装

树莓派Android10系统试装

2020-11-10 09:12:05 2745 2

原创 Android源码编译(基于配置好的环境)

该博客是已经配置成熟的编译环境,用于快速的下载新代码参照,如果没有配置编译环境,请参照我的另一篇博客链接。(1)切换Python至version3.6+:sudo update-alternatives --config python有问题,请参照我的另一篇博客链接。(2)初始化源码仓库,这里将repo文件中的google的REPO_URL改成清华的url:repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/man

2020-10-19 17:58:29 231

原创 Android源码编译(逐步演绎版:遇到问题,解决问题,直至完成)

查看repo库上分支版本:git --git-dir=.repo/manifests/.git/ branch -a

2020-10-19 17:54:58 769

原创 Android源码编译时Python版本问题(EOFError: marshal data too short)

在repo init时,需要python3.6+,在编译android源码时,又需要Python2.7,可以使用如下方式配置:使用update-alternatives 命令处理 Linux 系统中软件版本的切换,使其多版本共存。向系统注册python3.8.2:sudo update-alternatives --install /usr/bin/python python /usr/local/bin/python3.8 2向系统注册python2.7:sudo update-alternat

2020-09-24 14:20:37 2937

原创 APP安装时的广播通知

结论:安装新APP时系统发出的广播:09-15 06:11:12.838 18166 18166 D test1 : action = android.intent.action.PACKAGE_ADDED, packageName = package:com.estrongs.android.pop替换APP时系统发出的广播:09-15 06:09:15.329 18166 18166 D test1 : action = android.intent.action.PACKAGE_REM

2020-09-15 15:23:28 731

原创 线程池

C++:

2020-06-11 07:39:52 201

原创 Git命令使用[日常随记]

//创建分支并切换$ git checkout -b work、//查看本地分支$ git branchmasterwork

2020-05-25 16:52:23 211

原创 C++和Java的语法区别整理

#前言:当使用某种语言开发做一段项目后,再切换其他语言时,总是会出现一些不适用的情况,虽然大多数语言都是相通的,但还是有必要先整理他们的区别,方便切换时使用。#正文:(1)创建和销毁对象:C++:Java:(2)(3)(4)(5)(6)(7)(8)(9)(10)...

2020-02-06 12:26:53 1463

原创 Visual Studio调试Linux平台的C++程序(CMake)

CMake是一个跨平台编译工具,可以生成各平台的makefile,非常方便。关于“Visual Studio调试Linux平台的C++程序”,请参照我的另一篇文章,https://blog.csdn.net/liudi_ly/article/details/104110079构建CMake工程:打开Visual Studio,新建CMake Project,配置CMake settings ...

2020-01-29 22:02:39 1384

原创 Visual Studio调试Linux平台的C++程序

开发环境:Windows8.1Visual Studio 2019虚拟机运行ubuntu-18.04.1-desktop-amd64.iso使用Visual Studio Installer安装Linux development with C++工具包配置:新建一个Console App工程,按照工程中的Getting Started页,进行设置即可。比如需要在linux系统...

2020-01-29 21:09:47 1017

原创 Android开发注意事项

(1)Android推荐使用SparseArray来替代HashMap:(执行不一定快,但是节省内存)Map<Integer, String> bbb = new HashMap<>();替换为:SparseArray ccc = new SparseArray<>();...

2020-01-19 17:23:07 203

原创 androidx.lifecycle.Transformations函数分析

package androidx.lifecycle;import androidx.annotation.MainThread;import androidx.annotation.NonNull;import androidx.annotation.Nullable;import androidx.arch.core.util.Function;/** * Transforma...

2019-12-26 20:22:14 980

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除