架构师备考-背诵精华(系统架构评估)
- 系统架构评估是在对架构分析、评估的基础上,对架构策略的选取进行决策。它利用数学或逻辑分析技术,针对系统的一致性、正确性、质量属性、规划结果等不同方面,提供描述性、预测性和指令性的分析结果。
重要概念
- 敏感点:敏感点是一个或多个构件的特性。研究敏感点可使设计人员或分析人员明确在搞清楚如何实现质量目标时应注意什么。
- 权衡点:权衡点是影响多个质量属性的特性,是多个质量属性的敏感点。例如,改变加密级别可能会对安全性和性能产生非常重要的影响。提高加密级别可能会对安全性和性能产生非常重要的影响。提高加密级别可以提高安全性,但可能要耗费更多的处理时间,影响系统性能。如果某个机密消息的处理有严格的时间延迟要求,则加密级别可能就会成为一个权衡点。
- 风险点:风险点是指那些可能导致项目质量属性目标无法实现的不确定事件或条件
- 非风险点:非风险点是指那些不会对项目质量属性目标实现构成威胁的事件或条件。它们通常是项目中的确定因素,不具备风险的特点
- 风险承担者/利益相关人:系统的架构涉及很多人的利益,这些人都对架构施加各种影响,以保证自己的目标能够实现。
- 场景:进行架构评估时,一般首先要精确地得出具体的质量目标,并以之作为判定该架构优略的标准。为得出这些目标而采用的机制称之为场景。
- 场景是从风险承担者的角度对系统的交互的简单描述。在架构评估中,一般采用刺激、环境和响应三方面对场景进行描述。
- 刺激用于描述利益相关者如何引发与系统的交互。
- 环境用于描述刺激发生时的系统情况
- 响应用于描述系统是如何对刺激做出反应的。
- 场景是从风险承担者的角度对系统的交互的简单描述。在架构评估中,一般采用刺激、环境和响应三方面对场景进行描述。
架构评估方法
系统架构评估的方法通常可以分为3类:基于调查问卷或检查表的方式、基于场景的方式、基于度量的方式
- 基于调查问卷或检查表的方式:该方法的关键是要设计好问卷或检查表,充分利用系统相关人员的经验和知识,获得对架构的评估。该方法的缺点是在很大程度上依赖于评估人员的主观推断。
- 基于场景的方式:基于场景的方式由卡耐基梅隆大学软件工程研究所首先提出并应用在架构权衡分析法(ATAM)和软件架构分析方法(SAAM)中。它是通过分析软件架构对场景的支持程度,从而判断该架构对这一场景所代表的质量需求和满足程度。
- 基于度量的方式:它是建立在软件架构度量的基础上的,涉及3个基本活动,首先需要建立质量属性和度量之间的映射原则,然后从软件架构文档中获取度量信息,最后根据映射原则分析推导出系统的质量属性。
SAAM 软件体系结构分析方法
- SAAM 的目标是对描述应用程序属性的文档,验证基本的架构假设和原则。
- SAAM 使用的评估技术是场景技术。场景代表了描述架构属性的基础,描述了各种系统必须支持的活动和可能存在的状态变化。
- 可修改性是SAAM 分析的主要质量属性
- SAAM 的主要输入是问题描述、需求声明和架构描述。
- SAAM 分析评估架构的过程包括 5个步骤包括:场景开发、架构描述、单个场景评估、场景交互和总体评估。

- SAAM 是一种成熟的方法,已被应用到众多系统中,这些系统包括空中交互管制、嵌入式音频系统、WRCS (修正控制系统)、KWIC (根据上下文查找关键词系统)等
ATAM 系统权衡分析法
- 系统权衡分析方法(ATAM)是在SAAM 的基础上发展起来的,主要针对性能、实用性、安全性和可修改性,在系统开发之前,对这些质量属性进行评价和折中。
- 架构描述基于5种基本结构来进行,这5种结构是从Kruchten 的 4+1 视图派生而来的。其中逻辑视图被分为功能结构和代码结构。这些结构加上它们之间适当的映射可以完整地描述一个架构。
- 评估技术。可以把ATAM 方法视为一个框架,该框架依赖于质量属性,可以使用不同的分析技术。它集成了多种优秀的单一理论模型,其中每种都能够高效、实用的处理属性。该方法使用了场景技术。从不同的架构角度,有3种不同类型的场景:
- 用例(包括对系统典型的使用、引出信息)
- 增长场景(用于涵盖那些对它的系统的修改)
- 探测场景(用于涵盖那些可能会对系统造成过载的极端修改)
- ATAM 还使用特定的启发式分析方法,在对一个质量属性构造了一个精确分析模型时要进行分析,定性的启发式分析方法就是这种分析的粗粒度版本。
- ATAM 被分为 4个主要的活动领域,分别是场景和需求收集、架构视图和场景实现、属性模型构造和分析、架构决策与折中。整个评估过程强调以属性作为架构评估的核心概念。
- 现在的ATAM 的4个活动分为:描述和介绍阶段、调查和分析阶段、测试阶段、报告阶段

- ATAM 采用有效用树这一工具来对质量属性进行分类和优先级排序。效用树的结构包括:树根-质量属性-属性分类-质量属性场景。得到初始效用树后,需要修剪这棵树,保留重要场景(通常不超过50个),再对场景按重要性给定优先级,再按场景实现的难易程度来确定优先级(H/M/L的形式),这样对所选定的每个场景就有一个优先级对(重要度、难易度),如(H、L)表示该场景重要且易实现。
架构评估实践
阶段1-- 演示
演示阶段包括的步骤有:介绍ATAM、介绍业务驱动因素(需求)、介绍要评估的体系结构
- 介绍 ATAM:评估小组负责人向参加会议的项目干系人介绍ATAM 评估方法
- 介绍业务驱动因素:项目决策者从业务的角度介绍系统的概况。该描述应该包括系统最重要的功能、技术/管理/经济和政治方面的任何相关限制、与该项目相关的业务目标和上下文、主要的项目干系人,以及架构的驱动因素等。
- 介绍要评估的体系结构:包括技术约束(如操作系统、硬件和中间件等)将与本系统进行交互的其它系统、用以满足质量属性要求的架构方法等。
阶段2-- 调查和分析
调查和分析步骤包括:确定架构方法、生成质量属性效用树、分析体系结构方法
- 确定架构方法:通过理解架构方法来分析架构,在这一步,由架构设计师确定架构方法。
- 生成质量属性效用树:评估小组、设计小组、管理人员和客户代表一起确定系统最重要的质量属性目标,并对这些质量目标设置优先级和细化。
- 分析体系结构方法:这一步的主要结果是一个架构方法或风格的列表,与之相关的一些问题,以及设计师对这些问题的回答。通常产生一个风险列表、敏感点和权衡点列表。
- 这一步分为四个主要阶段
- 找出风险、非风险、敏感点和权衡点
- 分析问题的答案:根据架构对上述分析问题提供合理的解释或答案
- 创建分析问题:收集上面讨论过的高优先级场景中产生的分析问题。在现实生活中,所有利益相关者都会收集分析问题。分析问题与上面讨论的每种架构方法相关联,并面向重要的质量属性
- 调查架构方法:在识别出对系统目标至关重要的质量属性后,我们分析结构并确定它如何支持这些质量属性。我们对体系结构进行详细的调查,以了解这些质量属性要求是否得到满足。
阶段3-- 测试
测试阶段包括:头脑风暴和优先场景、分析架构方法
- 头脑风暴和优先场景:项目干系人进行两项相关的活动,分别是集体讨论用例场景和改变场景。用例场景是场景的一种,在用例场景中,项目干系人是一个终端用户,使用系统执行的一些功能。一旦收集了若干个场景后,必须设置优先级。评估人员通过投票表决的方式来完成。
- 分析架构方法:在收集并分析了场景之后,设计师就可把最高级别的场景映射到所描述的架构中,并对相关的架构如何有助于该场景的实现做出解释。在这一步中,评估小组要重复第6步中的工作,把新得到的最高优先级场景与尚未得到的架构工作产品对应起来。在第7步中,如果未产生任何在以前的分析步骤中都没有发现的高优先级场景,则在第8步就是测试步骤。
阶段4-- 报告 ATAM
最后,要把ATAM 分析中所得到的各种信息进行归纳,并反馈给项目干系人。ATAM 的评估结果包括一个简洁的架构描述、表达清楚的业务目标、用场景集合捕获的质量属性、所确定的敏感点和权衡点的集合、有风险决策和无风险决策、风险主题的集合。
ATAM 团队的主要发现通常包括:
- 一种效用树
- 一组生成的场景
- 一组分析问题
- 一套确定的风险和非风险;确定的架构方法
CBAM 成本效益分析法
在大型复杂系统的构建过程中,经济性通常是需要考虑的首要因素。因此,需要从经济角度建立成本、收益、风险和进度等方面的软件的“经济”模型。成本效益分析法(CBAM)是在ATAM 上构建,用来对架构设计决策的成本和收益进行建模,是优化此类决策的一种手段。CBAM 的思想就是架构策略影响系统的质量属性,反过来这些质量属性又会为系统的项目干系人带来一些收益,CBAM 协助项目干系人根据其投资回报(ROI)选择架构策略。CBAM 在 ATAM 结束时开始,它实际上使用了ATAM 评估的结果。
步骤
- 整理场景。整理ATAM 中获取的场景,根据商业目标确定这些场景的优先级,并选取优先级最高的1/3 的场景进行分析。
- 对场景进行求精。为每个场景获取最坏情况、当前情况、期望情况和最好情况的质量属性相应级别。
- 确定场景的优先级。项目关系人对场景进行投票其投票是基于每个场景“所期望的:响应值,根据投票结果和票的权值,生成一个分值(场景的权值)。
- 分配效用。对场景的响应级别(最坏情况、当前情况、期望情况和最好情况)确定效用表。
- 架构策略涉及哪些质量属性及响应级别,形成相关的”策略-场景-相应级别“的对应关系。
- 使用内插法确定”期望的“质量属性相应级别的效用。即根据第4步的效用表以及第5步的对应关系,确定架构策略及其对应场景的效用表。
- 计算各架构策略的总收益。根据第3步的场景的权值及第6步的架构策略效用表,计算出架构策略的总收益得分。
- 根据受成本限制影响的ROI 选择架构策略。根据开发经验估算架构策略的成本,结合第7步的收益,计算出架构策略的ROI,按ROI 排序,从而确定选取策略的优先级。
SAEM
将软件架构看作一个最终产品以及设计过程中的一个中间产品,从外部质量属性和内部质量属性两个角度来阐述它的评估模型,旨在为软件架构的质量评估创建一个基础框架。
- 外部属性指用户定义的质量属性,而内部属性指开发者决定的质量属性。该软件架构评估模型包含以下几个流程。
- 对待评估的质量属性进行规约建模,参考ISO/IEC 9126-1 标准中的质量模型,先从用户的角度描述架构的外部质量属性,再基于外部质量属性规约从开发者的角度描述架构的内部质量属性。
- 为外部和内部的质量属性创建度量准则,先从评估目的,评估角度,评估环境出发来定义架构评估的目标,再根据目标相关的属性来提出问题,然后回答每个问题并提出相应的度量准则。
- 评估质量属性,包括数据集、度量和结果分析3个活动。该模型已在相关系统领域得到应用。
SAABNet
软件架构定性的评估技术依赖于专家知识,包括某些特定类型问题的解决方案以及可能的诱导因素、统计知识、审美观等,这些定性的知识比较含糊且难以文档化。SAABNet 是一种用来表达和使用定性知识以辅助架构的定性评估。
SACMM
SACMM 方法是一种软件架构修改的度量方法,首先基于图内核定义差异度量准则来计算两个软件架构之间的距离,图内核的基本思想是将结构化的对象描述为它的字结构的集合,通过子结构的配对比较来分析对象之间的相似性。
SASAM
SASAM 方法通过对预期架构(架构设计阶段的相关描述材料)和实际架构(源代码中执行的架构)进行映射和比较来静态地评估软件架构,并将静态评估与架构开发方法PuLSE-DSSA 结合,识别出10种不同的目的和需求来指导静态的架构评估。
静态评估方法对预期架构模型和实际架构模型中的每个元素进行映射,比较某个模型元素或关联是否在两个架构模型中都存在,还是只存在于其中某个架构模型中,从而得到评估结果,其中映射需要手工完成,比较评估可以在软件架构可视化和评估工具SAVE 中执行。10个评估目的包括:
- 产品线可能性。分析几个不相干的系统是否适用于某个共有的架构,即分析它们是否能成为预期产品线的一部分。
- 产品对准性。评估系统的软件架构是否与产品线的软件架构一致。
- 重用可能性。分析组件是否能重用
- 组件充分性。评估组件的内在质量。
- 对软件架构的理解
- 一致性。评估架构文档和执行的一致性
- 完备性。检测未被文档化的架构实体。
- 软件系统或产品线的文档
- 控制演化
- 支持架构结构的分解
ALRRA
ALRRA 是一种软件架构可靠性风险评估方法,该方法使用动态复杂度准则和动态耦合度准则来定义组件和连接件的复杂性因素,其中,动态复杂度准则在某个场景的执行中分析组件的动态行为来度量组件的复杂性,动态耦合度准则在某个场景的执行中分析连接件的消息传递协议来度量连接件的复杂性。该方法利用失效模式和影响分析(FMEA)来定义故障引起的后果的严重性因素,并将复杂度和严重性因素组合起来定义组件和连接件的启发式风险因素,然后基于组件依赖图定义风险分析模型和风险分析算法,将组件和连接件的风险因素集成到架构层次的风险因素中。
使用 ALRRA 方法进行软件架构可靠性评估的步骤
- 使用架构描述语言(ADL)建模软件架构
- 使用仿真进行复杂性分析
- 使用FMEA 和失效严重性分析
- 为组件和连接件启发式的定义可靠性风险因素
- 构造架构的CDG ,对每个结点 Ci 赋予组件的可靠性风险hrfi,对Ci 和Cj 之间连接件赋连接件的可靠性风险hrfij。
- 用图遍历算法执行架构的风险评估和分析,架构的可靠性风险因素可以通过集成其组件和连接件的风险因素获取。
AHP
层次分析法(AHP) 是多种架构评估度量方法的基础理论。AHP 的特点是把复杂问题中的各种因素通过划分为相联系的有序层次使之条理化,并在一般情况下通过两两对比,根据一定客观现实的主观判断结构,把专家意见和分析者的客观判断结果直接、有效地结合起来,将一定层次上元素的某些重要性进行定量描述,之后利用数学方法计算反应每一层次元素的相对重要性次序的权值,并最后通过所有层次之间的总排序计算所有元素的相对权重及对权重进行排序。
层次分析法对AHP 问题域的分析、度量一般分为5步
- 通过对系统的深入认知,确定该系统的总目标,得出规划决策所涉及的范围、所要采取的措施方案和政策、实现目标的准则以及策略和各种约束条件等,并广泛收集在分析过程中要用到的多种信息。
- 建立一个多层次的递阶结构,按目标的不同、实施功能的差异,将系统分为几个等级层次。
- 确定以上递阶结构中相邻层次元素间的相关程度,通过构造比较判断矩阵即矩阵运算的数学方法,确定对于上一层次的某个元素而言本层次中与其相关元素的重要性排序,即相对权值。
- 计算各层元素对系统目标的合成权重,进行总排序,确定递阶结构图中底层的各个元素的重要程度。
- 根据分析计算结果,考虑相应的决策。
软件架构评估包括对各种质量属性的评估以及其他一些非功能非质量因素的评估,这些属性之间有时存在某些冲突。AHP 是一种重要的辅助决策方法,通常被用来解决这些冲突。AHP 可以帮助对提供的设计方案进行整体排名。
COSMIC + UML
基于面向对象系统源代码的可维护性度量准则.针对不同表达方式的软件架构,采用统一的软件度量COSMIC 方法来进行度量和评估。例如,针对UML 组件图描述的软件架构,其可维护性度量包括以下3个步骤。
- 将面向对象的度量准则与COSMIC 方法相关联。
- 对COSMIC 标记进行完善以适用于描述UML 组件图。
- 提出UML 组件图的度量准则:复杂度、耦合度和内聚度等
该方法主要是为了辅助分析软件架构的演化方案是否可行,并在开源软件DCMMS 的软件架构UML 组件图上得以验证。
相关文章:
架构师备考-背诵精华(系统架构评估)
系统架构评估是在对架构分析、评估的基础上,对架构策略的选取进行决策。它利用数学或逻辑分析技术,针对系统的一致性、正确性、质量属性、规划结果等不同方面,提供描述性、预测性和指令性的分析结果。 重要概念 敏感点:敏感点是…...
QT 实现自定义水波进度条
1.界面实现效果 以下是具体的项目需要用到的效果展示。 2.简介 原理:随着进度的改变,在我们的绘制图像void paintEvent(QPaintEvent *) override;事件中绘制图形。 使用QPainter来绘制正弦波,通过定时器,不断的更新我们绘制的图形,动态改变正弦波的参数来创建动画效果…...
厨房老鼠数据集:掀起餐饮卫生监测的科技浪潮
厨房老鼠数据集:掀起餐饮卫生监测的科技浪潮 摘要:本文深入探讨了厨房老鼠数据集在餐饮行业卫生管理中的重要性及其相关技术应用。厨房老鼠数据集通过收集夜间厨房图像、老鼠标注信息以及环境数据,为深度学习模型提供了丰富的训练样本。基于…...
Linux系统:more命令
1、命令详解: more命令是Linux系统中的一个文本查看器,它可以一次显示一页内容,并提供了一些方便的浏览操作,比如向下滚动、向上滚动、搜索等。当需要查看大型文件或长文本时,通过分页显示可以很好地避免一次性将整个文…...
ESP32-S3学习笔记:分区表(Partition Table)的二进制分析
一、参考资料 用于研究的官方示例代码:esp-idf-v5.3\examples\storage\partition_api\partition_find参考的官方文档:ESP-IDF编程指南:分区表 二、准备工作 用VS Code打开示例代码,打开示例代码的CSV自定义分区表,如…...
04,perl
1 ,作用 : 2 ,原理 : 3 ,使用场景 :...
Js 更加优雅地实现Form表单重置
文章目录 前言代码实现代码优化 前言 最近在做一个后台项目 不免大量使用表单 表单查询 编辑 还原 导入导出 不免要经常实现 记录下表单重置的一些方法 代码实现 <div class"Query"><el-form :model"ruleForm" ref"ruleFormref" labe…...
基于微信小程序的驾校预约系统设计与实现
文章目录 前言项目介绍技术介绍功能介绍核心代码数据库参考 系统效果图文章目录 前言 文章底部名片,获取项目的完整演示视频,免费解答技术疑问 项目介绍 当今社会已经步入了科学技术进步和经济社会快速发展的新时期,国际信息和学术交流也不…...
利用python进行数据处理,得到对自己有利的内容
一,介绍 在2025年的公务员录取信息发布后,许多考生和求职者可能会感到困惑,尤其是在面对庞大的职位列表时,如何快速找到适合自己的职位成为了一个亟待解决的问题。面对这样的问题,以下几点建议或许能够帮助大家更有效地…...
Java面试题五
一、谈谈你对Java内存模型(JVM Memory Model)的理解。 Java内存模型(Java Memory Model,简称JMM)是Java虚拟机(JVM)规范中定义的一种关于内存访问、共享变量在多线程之间的可见性、以及原子性、…...
2013 lost connection to MySQL server during query
1.问题 使用navicat连接doris,会有这个错误。 2.解决 换低版本的navicat比如navicat11。...
【英特尔IA-32架构软件开发者开发手册第3卷:系统编程指南】2001年版翻译,2-1
文件下载与邀请翻译者 学习英特尔开发手册,最好手里这个手册文件。原版是PDF文件。点击下方链接了解下载方法。 讲解下载英特尔开发手册的文章 翻译英特尔开发手册,会是一件耗时费力的工作。如果有愿意和我一起来做这件事的,那么ÿ…...
Android便携式WLAN热点分析
Android便携式WLAN热点分析 Platform: RK3368 OS: Android 6.0 Kernel: 3.10.0 文章目录 Android便携式WLAN热点分析分析Android开启WLAN热点的路由策略和防火墙便携式WLAN热点开启流程路由表路由策略iptables(防火墙) 用hostapd命令手动开启WLAN热点1.加载驱动2.配置wlan0 …...
从经济学原理看团队分工合作
最近我接触到一个经济学概念叫"比较优势"。学过经济学的同学应该很熟悉,但为了让不了解经济学的朋友们也能明白,我们先来解释下什么是比较优势,然后再谈谈为什么我认为这个原理应当被用在团队合作的分工当中。 比较优势是19世纪初…...
企业一级流程架构规划方法
在之前关于企业业务流程规划的系列文章中,我们已经分别对企业业务流程规划的价值和原则、企业的业务流程架构的应用、两种常见的企业总体业务流程架构模式等进行了比较深入的分析和阐述,相信大多数企业同仁,已经对企业的业务流程规划…...
用ESP32驱动stt7735 TFT屏幕
操作流程: 1 在esp32项目中搜索TFT库 2 找到对应TFT_eSPI库,添加进所在项目中(这里可能下载很久) 3 找到对应屏幕文件下的User_Setup.h 修改,将驱动换成ST7735_DRIVER,并修改对应屏幕引脚和屏幕尺寸&…...
Yolo目标检测:Yolo v1简介
一、Yolo系列介绍 YOLO(You Only Look Once)是一种基于深度学习的目标检测算法,由Joseph Redmon等人于2016年提出。它的核心思想是将目标检测问题转化为一个回归问题,通过一个神经网络直接预测目标的类别和位置。YOLO算法将输入图…...
Java動態轉發代理IP詳解
Java中實現動態轉發代理IP 在Java中實現動態轉發代理IP並不複雜,通常可以通過一些開源庫和框架來實現。下麵是一個簡單的實現思路: 設置HTTP請求:在Java中,可以使用HttpURLConnection或Apache HttpClient來發送HTTP請求。在發送…...
Android15之解决gdb:Remote register badly formatted问题(二百三十六)
简介: CSDN博客专家、《Android系统多媒体进阶实战》一书作者 新书发布:《Android系统多媒体进阶实战》🚀 优质专栏: Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏: 多媒体系统工程师系列【…...
【Router】路由器中NAT、NAPT、NPT是什么?
参考链接 NAT vs. NAPT: What’s the Difference? IPv6 Network Prefix Translation (NPt) | pfSense Documentation (netgate.com) 趣谈NAT/NAPT的原理,这篇不可不读! - 知乎 (zhihu.com) NAT (Network Address Translation) NAT说明 NAT&#x…...
关于nvm与node.js
1 安装nvm 安装过程中手动修改 nvm的安装路径, 以及修改 通过nvm安装node后正在使用的node的存放目录【这句话可能难以理解,但接着往下看你就了然了】 2 修改nvm中settings.txt文件配置 nvm安装成功后,通常在该文件中会出现以下配置&…...
postgresql|数据库|只读用户的创建和删除(备忘)
CREATE USER read_only WITH PASSWORD 密码 -- 连接到xxx数据库 \c xxx -- 授予对xxx数据库的只读权限 GRANT CONNECT ON DATABASE xxx TO read_only; GRANT USAGE ON SCHEMA public TO read_only; GRANT SELECT ON ALL TABLES IN SCHEMA public TO read_only; GRANT EXECUTE O…...
SpringBoot+uniapp 的 Champion 俱乐部微信小程序设计与实现,论文初版实现
摘要 本论文旨在设计并实现基于 SpringBoot 和 uniapp 的 Champion 俱乐部微信小程序,以满足俱乐部线上活动推广、会员管理、社交互动等需求。通过 SpringBoot 搭建后端服务,提供稳定高效的数据处理与业务逻辑支持;利用 uniapp 实现跨平台前…...
JavaScript基础-API 和 Web API
在学习JavaScript的过程中,理解API(应用程序接口)和Web API的概念及其应用是非常重要的。这些工具极大地扩展了JavaScript的功能,使得开发者能够创建出功能丰富、交互性强的Web应用程序。本文将深入探讨JavaScript中的API与Web AP…...
代码规范和架构【立芯理论一】(2025.06.08)
1、代码规范的目标 代码简洁精炼、美观,可持续性好高效率高复用,可移植性好高内聚,低耦合没有冗余规范性,代码有规可循,可以看出自己当时的思考过程特殊排版,特殊语法,特殊指令,必须…...
从“安全密码”到测试体系:Gitee Test 赋能关键领域软件质量保障
关键领域软件测试的"安全密码":Gitee Test如何破解行业痛点 在数字化浪潮席卷全球的今天,软件系统已成为国家关键领域的"神经中枢"。从国防军工到能源电力,从金融交易到交通管控,这些关乎国计民生的关键领域…...
Python 训练营打卡 Day 47
注意力热力图可视化 在day 46代码的基础上,对比不同卷积层热力图可视化的结果 import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms from torch.utils.data import DataLoader import matplotlib.pypl…...
6个月Python学习计划 Day 16 - 面向对象编程(OOP)基础
第三周 Day 3 🎯 今日目标 理解类(class)和对象(object)的关系学会定义类的属性、方法和构造函数(init)掌握对象的创建与使用初识封装、继承和多态的基本概念(预告) &a…...
软件工程 期末复习
瀑布模型:计划 螺旋模型:风险低 原型模型: 用户反馈 喷泉模型:代码复用 高内聚 低耦合:模块内部功能紧密 模块之间依赖程度小 高内聚:指的是一个模块内部的功能应该紧密相关。换句话说,一个模块应当只实现单一的功能…...
DeepSeek越强,Kimi越慌?
被DeepSeek吊打的Kimi,还有多少人在用? 去年,月之暗面创始人杨植麟别提有多风光了。90后清华学霸,国产大模型六小虎之一,手握十几亿美金的融资。旗下的AI助手Kimi烧钱如流水,单月光是投流就花费2个亿。 疯…...
