【真题笔记】16年系统架构设计师要点总结
【真题笔记】16年系统架构设计师要点总结
- 存储部件
- 接口
- 嵌入式处理器
- 产品配置+配置管理
- 用户文档+系统文档
- CMM(能力成熟度模型)
- 螺旋模型
- 敏捷软件开发的方法学
- 软件工具
- 面向对象的分析模型+设计模型
- COP(面向构件的编程)
- 构件+原子构件+模块
- SOA(面向服务的架构)
- C2架构风格
- 可修改性
- 网络攻击
- 数学建模
- 内聚+耦合
在16年真题练习中,对错题+模棱两可的考点进行重点记录与内容延申。本博文只做新知识的记录,重复知识点补充已更新到之前的博文中。
存储部件

ps:存储速度最快的CPU,用寄存器组要清楚说的对象。
接口
- API(应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。所有操作系统(不仅仅是嵌入式操作系统)给应用程序提供的接口,称为API。
- GUI(图形用户界面,又称图形用户接口),是用户与操作系统之间的的接口,是指采用图形方式显示的计算机操作用户界面。
嵌入式处理器
是嵌入式系统的核心部件,一般可分为嵌入式微处理器(MPU)、微控制器(MCU)、数字信号处理器(DSP)、片上系统(SOC)。
- MPU采用增强型通用微处理器,由于嵌入式系统通常应用于比较恶劣的环境中,因而MPU在工作温度、电磁兼容性以及可靠性等方面的要求较通用的标准的微处理器高。但是,MPU在功能方面与标准的微处理器基本上是一样的,技术保密性也较差,对比其他芯片没有加强安全性和可靠性。而在实践过程中,智能计算不仅仅包括边缘计算,像人工智能计算,用到的芯片通常包括GPU、FPGA等硬件,MPU并不典型适用。
- MCP又称单片微型计算机或者单片机,是指随着大规模集成电路的出现及其发展,将计算机的CPU、RAM、ROM、定时计算器和多种I/O接口集成在一片芯片上,形成芯片级的计算机,为不同的应用场合做不同的组合控制。而且体积小从而使功耗和成本下降。
- DSP是一种独特的微处理器,是以数字信号来处理大量信息的器件,其实时运行速度可达每秒数以千万条复杂指令程序,远远超过通用微处理器,它的强大数据处理能力和高运行速度,是最值得称道的两大特色。
- SOC称为系统级芯片,也有称片上系统,表示它是一个产品,是一个有专用目标的集成电路,其中包含完整系统并有嵌入式软件的全部内容。
产品配置+配置管理
- 配置管理:是通过技术和行政手段对产品及其开发过程和生命周期进行控制、规范的一系列措施和过程。
- 产品配置:是指一个产品在其生命周期各个阶段所产生的各种形式和各种版本的文档、计算机程序、部件及数据的集合。
用户文档+系统文档
软件系统的文档可以分为用户文档和系统文档两类,用户文档主要描述系统功能和使用方法,并不关心这些功能是怎样实现的;系统文档描述系统设计、实现和测试等各方面的内容。
- 用户文档是用户了解系统的第一步,它可以让用户获得对系统的准确的初步印象,至少应该包括5方面的内容:功能描述、安装文档、使用手册、参考手册、操作员指南。
- 系统文档指从问题定义、需求说明到验收测试计划这样一系列和系统实现有关的文档。描述系统设计、实现和测试的文档对于理解程序和维护程序来说是非常重要的。
CMM(能力成熟度模型)
在软件开发机构中被广泛用来指导软件过程改进。该模型描述了软件处理能力的5个成熟级别。为了达到过程能力成熟度模型的第二级,组织结构必须具有6个关键过程域KPA(Key Process Areas)。
螺旋模型
是一种演化软件过程模型,它在快速模型的基础上扩展而来。螺旋模型沿着螺线进行若干次迭代,每次迭代都包括制订计划、风险分析、实施工程、客户评估四个方面的工作。该模型强调风险分析,使得开发人员和用户对每个演化分层出现的风险有所了解,继而做出应对的反映。因此,特别适用于庞大、复杂并具有高风险的系统。
敏捷软件开发的方法学
- XP(极限编程):以人为中心,但是高度纪律性,在一些对费用控制严格的公司中的使用,已经被证明是非常有效的。
- 水晶系列方法:以人为中心,探索用最少纪律约束而仍能成功的方法,从而在产出效率和易于运作上达到一种平衡。也就是说,虽然水晶系列不如XP那样的产出效率,但会有更多的人能够接受并遵循它。
- 开放式源码:与其他敏捷方法不同,一般的敏捷方法都强调项目组成员在同一地点工作,而该方法适合程序开发人员在地域上分布很广的情况,而且查错排障的高度并行性,任何人发现了错误都可将改正源码的补丁文件发给维护者,然后由维护者将这些补丁或是新增的代码并入源码库。
- SCRUM:该方法强调这样一个事实,即明确定义了的可重复的方法过程只限于在明确定义了的可重复的环境中,为明确定义了的可重复的人员所用,去解决明确定义了的可重复的问题。
- FDD(功用驱动开发方法):致力于短时的迭代阶段和可见可用的功能。在FDD中,一个迭代周期一般是2周。编程开发人员分成2类:首席程序员和类程序员,首席程序员是最富有经验的开发人员,他们是项目的协调者、设计者和指导者,而类程序员则主要做源码编写。
- ASD:核心是三个非线性的、重叠的开发阶段:猜测、合作和学习。
软件工具
通常可以按照软件过程活动将软件工具分为:软件开发工具、软件维护工具、软件管理和软件支持工具。
- 软件开发工具:需求分析工具、设计工具、编码与排错工具;
- 软件维护工具:版本控制工具、文档分析工具、开发信息库工具、逆向工程工具、再工程工具;
- 软件管理和软件支持工具:项目管理工具、配置管理工具、软件评价工具、软件开发工具的评价和选择。
ps:管理和评价的就是软件管理和软件支持工具;需求、设计、排错就是软件开发工具,其余维护工具。
面向对象的分析模型+设计模型
- 面向对象的分析模型主要由顶层架构图、用例与用例图、领域概念模型构成;
- 设计模型则包含以包图表示的软件体系结构图、以交互图表示的用例实现图、完整精确的类图、针对复杂对象的状态图和用以描述流程化处理过程的活动图等。
COP(面向构件的编程)
关注于如何支持建立面向构件的解决方案。面向构件的编程需要下列基本的支持:
- 多态性(可替代性);
- 模块封装性(高层次信息的隐藏);
- 后期的绑定和装载(部署独立性);
- 安全性(类型和模块安全性)。
构件+原子构件+模块
- 构件是一组通常需要同时部署的原子构件。构件与原子构件之间的区别在于,大多数原子构件永远都不会被单独部署,尽管它们可以被单独部署。相反,大多数原子构件都属于一个构件家族,一次部署往往涉及整个家族,因此是不可以同时在多个构件家族中共享。一个原子构件是一个模块和一组资源。
- 原子构件是部署、版本控制和替换的基本单元。原子构件通常成组地部署,但是它也能被单独部署。一个模块是不带单独资源的原子构件(在这个严格定义下,JAVA包不是模块,在JAVA中部署的原子单元是类文件)。
- 模块是一组类和可能的非面向对象的结构体,比如过程或者函数。
SOA(面向服务的架构)
- UDDI(Universal Description ,Discovery & Integration):用于Web服务注册和服务查找;
- WSDL(Web Service Description Language):用于描述Web服务的接口和操作功能;
- SOAP(Simple Object Access Protocol ):为建立Web服务和服务请求之间的通信提供支持,用于实现Web服务的远程调用;
- BPEL(Business Process Execution Language For Web Service):一种使用Web服务定义和执行业务流程的语言,用户可以通过组合、编排和协调Web服务自上而下地实现面向服务的体系结构(SOA)。而且提供了一种相对简单易懂的方法,可以将多个Web服务组合成一个新的复合服务(称作业务流程)中。
C2架构风格
通过连接件绑定在一起的按照一组规则运行的并行构件网络。系统组织规则如下:
- 系统中的构件和连接件都有一定顶部和底部;
- 构件的顶部应连接到某连接件的底部,构件的底部则应连接到某连接件的顶部,而构件与构件之间的直接连接是不允许的;
- 一个连接件可以和任意数目的其他构件和连接件连接;
- 当两个连接件进行直接连接时,必须由其中一个的底部到另一个的顶部。

可修改性
是指能够快速地以较高的性能价格比对系统进行变更的能力,通常以某些具体的变更为基准,通过考查这些变更的代价衡量可修改性。包含4个方面:
- 可维护性
- 可扩展性
- 结构重构
- 可移植性
ps:注意没有可变性。
网络攻击
- 被动攻击(passive attack):攻击者目的只是获取信息,这就意味着攻击者不会篡改信息或危害系统,系统可以不中断其正常运行。常见被动攻击包括:窃听和流量分析。
- 主动攻击(active attack): 可能改变信息或危害系统。威胁信息完整性和有效性的攻击就是主动攻击。主动攻击通常易于探测但却难于防范,因为攻击者可以通过多种方法发起攻击。常见的主动攻击包括:篡改、伪装、重放、拒绝服务攻击。
- 物理攻击:攻击者可以直接接触到信息与网络系统的硬件、软件和周边环境设备。通过对硬件设备、网络线路、电源、空调等的破坏,使系统无法正常工作,甚至导致程序和数据无法恢复。
- 分发攻击:指在软件和硬件开发出来之后到安装之前的这段时间,或当它从一个地方传输到另一个地方时,攻击者恶意修改软硬件,这种攻击可能给一个产品引入后门程序等恶意代码,以便日后在未获授权情况下访问信息或系统。
数学建模
对不同的问题,有不同的评价标准,数学模型难有统一的普适标准来评价。
内聚+耦合

ps:为了方便记忆,由高到低,进行如下谐音记忆:
内聚 恭喜通过顺喽欧
耦合 内功外控标数非
相关文章:
【真题笔记】16年系统架构设计师要点总结
【真题笔记】16年系统架构设计师要点总结 存储部件接口嵌入式处理器产品配置配置管理用户文档系统文档CMM(能力成熟度模型)螺旋模型敏捷软件开发的方法学软件工具面向对象的分析模型设计模型COP(面向构件的编程)构件原子构件模块S…...
2024 CSS保姆级教程二 - BFC详解
前言 - CSS中的文档流 在介绍BFC之前,需要先给大家介绍一下文档流。 我们常说的文档流其实分为定位流、浮动流、普通流三种。 1. 绝对定位(Absolute positioning) 如果元素的属性 position 为 absolute 或 fixed,它就是一个绝对定位元素。 在…...
Knowledge-refined Denoising Network for Robust Recommendation
Knowledge-refined Denoising Network for Robust Recommendation(Sigir23) 摘要 知识图(KG)包含丰富的边信息,是提高推荐性能和可解释性的重要组成部分。然而,现有的知识感知推荐方法直接在KG和用户-项目…...
轴流风机和后倾式风机的安装要求
后向离心风机风压大,风量足,安装方便。因为不需要蜗壳,所以风道往往需要自行设计,而风道的合理与否,大大影响了后向离心风机的效率。那么后向离心风机的安装技巧有哪些?怎样达到风机的最佳使用效果呢&#…...
代码笔录1
10-16 出入栈序列是否合法 // // Created by 86184 on 2024/10/16. // #include <stdio.h>//IIOOOIO int jude(char s[]) {int count 0, i 0;while (s[i] ! \0) {if (s[i] I) count;else if (s[i] O) count--;else return 0;if (count < 0) return 0;i;}if (cou…...
强网杯2024 Web WP
强网杯2024 参考链接:https://mp.weixin.qq.com/s/Mfmg7UsL4i9xbm3V3e5HMA https://mp.weixin.qq.com/s/vV_II8TpyaGL4HUlUS57RQ PyBlockly 源码: from flask import Flask, request, jsonify import re import unidecode import string import ast …...
《双指针篇》---盛最多水的容器_Java(中等但简单)
题目传送门 1.首先计算出暂时的盛水体积 2.求暂时体积和最大体积max的最大值 3.更新right和left。如果height[left] > height[right] 那么right--否则left; class Solution {public int maxArea(int[] height) {int left 0,right height.length-1; int ret 0;while (lef…...
Linux: network: 环境:网络burst的一个原因,虚拟机感染病毒导致,外部网络设备太忙
最近碰到一个问题,测试人员在测试一周内的产品稳定性,带有的业务非常大。 总是不能满足需要的时长,总是在一段时间内出现丢包,业务出现错误的现象。从tshark/tcpdump的抓包看,确实在某个时间段,有一次十几秒…...
idea使用Translation插件实现翻译
1.打开idea,settings,选择plugins,搜索插件Translation,安装 2.选择翻译引擎 3.配置引擎,以有道词典为例 3.1 获取应用ID,应用秘钥 3.1.1 创建应用 点击进入有道智云控制台 3.1.2 复制ID和秘钥 3.2 idea设…...
[OS] sys_mmap() 函数+
流程图分析 1. 调用 sys_mmap() 步骤:当用户程序调用 mmap() 时,操作系统会进入 sys_mmap() 函数。作用:这是整个 mmap() 操作的入口。系统调用的实现从这里开始。 2. 提取参数(Fetch Argument) 步骤:从…...
轧钢机辊道多电动机传动控制系统
轧钢机辊道多电动机传动控制系统是一种复杂的工业自动化系统,主要用于控制轧钢车间中多个电动机驱动的辊道,以实现轧件的高效、稳定输送和加工。以下是对该系统的详细介绍: 系统组成 轧线辊道TDC控制器:作为系统的核心控制单元&a…...
使用 Nginx 部署 Python 项目
今天的目标是完成一个 Python Web 项目的线上部署,我们使用最新的 Django 项目搭建一个简易的 Web 工程,然后基于 Nginx 服务部署该 Python Web 项目。 1. 前期准备 1.1 安装虚拟环境pyenv 使用虚拟环境逐渐成了 python 项目开发中的一种主流方式。py…...
[笔记] SQL 优化
一. 数据库设计优化 1. 选择合适的字段类型 设计表时,尽量选择存储空间小的字段类型: 整型字段:从TINYINT、SMALLINT、INT到BIGINT。小数类型:对于金额等需精确计算的数值使用DECIMAL,避免使用FLOAT和DOUBLE。字符串…...
【InfluxDB】InfluxDB 2.x基础概念及原理
InfluxDB简介 什么是时序数据库 时序数据库,全称时间序列数据库(Time Series Database,TSDB),用于存储大量基于时间的数据。时序数据库支持时序数据的快速写入、持久化,多维度查询、聚合等操作࿰…...
.net Core 使用Panda.DynamicWebApi动态构造路由
我们以前是通过创建controller来创建API,通过controller来显示的生成路由,这里我们讲解下如何不通过controller,构造API路由 安装 Panda.DynamicWebApi 1.2.2 1.2.2 Swashbuckle.AspNetCore 6.2.3 6.2.3添加ServiceAction…...
Spring框架和Spring Boot框架都使用注解来简化配置和提高开发效率,但它们之间存在一些区别
Spring框架和Spring Boot框架都使用注解来简化配置和提高开发效率,但它们之间存在一些区别: Spring框架注解: Autowired:自动导入对象到类中,被注入的类需要被Spring容器管理。Component、Repository、Service、Contro…...
从数据提取到管理:TextIn平台的全面解析与产品体验
一、引言 在现代信息时代,文档解析和管理已经成为企业和开发者不可或缺的工具。TextIn是合合信息旗下的一款智能文档处理平台,为开发者和企业提供高效、精准的文档解析工具,帮助用户轻松应对各种复杂的文档处理需求。本文将深入探讨TextIn的…...
2024 Rust现代实用教程 Error错误处理
文章目录 一、错误处理之:Result、Option以及panic!宏1.Result2.Option3.panic! 二、错误处理之:unwrap()与?1.unwrap()2.?运算符 三、自定义一个Error类型参考 一、错误处理之:Result、Option以及panic!宏 Rust中的错误可以分为…...
android 逆向破解360加固(MT管理器反编译)
1.需要准备的环境MT管理器 2.一台root手机 3,需要给app脱壳https://nop.gs/在这里脱壳 4.将脱壳的文件解压之后解压 5.用MT管理器打开需要反编译破解的app 6.然后把脱壳的classes.dex添加到破解的app里面删除原来的classes.dex 7.删除360加固的so,so在assets文件里面删除libjia…...
使用 SSH 蜜罐提升安全性和记录攻击活动
文章目录 使用 SSH 蜜罐提升安全性和记录攻击活动前言整体逻辑讲解安全最佳实践蜜罐的类型与选择数据分析与响应进一步学习资源修改 SSH 服务端口部署 FakeSSHFakeSSH 简介部署步骤记录攻击 部署 SSHSameSSHSame 简介部署步骤观察攻击行为 总结 使用 SSH 蜜罐提升安全性和记录攻…...
TDengine 快速体验(Docker 镜像方式)
简介 TDengine 可以通过安装包、Docker 镜像 及云服务快速体验 TDengine 的功能,本节首先介绍如何通过 Docker 快速体验 TDengine,然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。如果你不熟悉 Docker,请使用 安装包的方式快…...
51c自动驾驶~合集58
我自己的原文哦~ https://blog.51cto.com/whaosoft/13967107 #CCA-Attention 全局池化局部保留,CCA-Attention为LLM长文本建模带来突破性进展 琶洲实验室、华南理工大学联合推出关键上下文感知注意力机制(CCA-Attention),…...
Mybatis逆向工程,动态创建实体类、条件扩展类、Mapper接口、Mapper.xml映射文件
今天呢,博主的学习进度也是步入了Java Mybatis 框架,目前正在逐步杨帆旗航。 那么接下来就给大家出一期有关 Mybatis 逆向工程的教学,希望能对大家有所帮助,也特别欢迎大家指点不足之处,小生很乐意接受正确的建议&…...
【快手拥抱开源】通过快手团队开源的 KwaiCoder-AutoThink-preview 解锁大语言模型的潜力
引言: 在人工智能快速发展的浪潮中,快手Kwaipilot团队推出的 KwaiCoder-AutoThink-preview 具有里程碑意义——这是首个公开的AutoThink大语言模型(LLM)。该模型代表着该领域的重大突破,通过独特方式融合思考与非思考…...
如何在看板中有效管理突发紧急任务
在看板中有效管理突发紧急任务需要:设立专门的紧急任务通道、重新调整任务优先级、保持适度的WIP(Work-in-Progress)弹性、优化任务处理流程、提高团队应对突发情况的敏捷性。其中,设立专门的紧急任务通道尤为重要,这能…...
【Web 进阶篇】优雅的接口设计:统一响应、全局异常处理与参数校验
系列回顾: 在上一篇中,我们成功地为应用集成了数据库,并使用 Spring Data JPA 实现了基本的 CRUD API。我们的应用现在能“记忆”数据了!但是,如果你仔细审视那些 API,会发现它们还很“粗糙”:有…...
【Zephyr 系列 10】实战项目:打造一个蓝牙传感器终端 + 网关系统(完整架构与全栈实现)
🧠关键词:Zephyr、BLE、终端、网关、广播、连接、传感器、数据采集、低功耗、系统集成 📌目标读者:希望基于 Zephyr 构建 BLE 系统架构、实现终端与网关协作、具备产品交付能力的开发者 📊篇幅字数:约 5200 字 ✨ 项目总览 在物联网实际项目中,**“终端 + 网关”**是…...
ardupilot 开发环境eclipse 中import 缺少C++
目录 文章目录 目录摘要1.修复过程摘要 本节主要解决ardupilot 开发环境eclipse 中import 缺少C++,无法导入ardupilot代码,会引起查看不方便的问题。如下图所示 1.修复过程 0.安装ubuntu 软件中自带的eclipse 1.打开eclipse—Help—install new software 2.在 Work with中…...
零基础设计模式——行为型模式 - 责任链模式
第四部分:行为型模式 - 责任链模式 (Chain of Responsibility Pattern) 欢迎来到行为型模式的学习!行为型模式关注对象之间的职责分配、算法封装和对象间的交互。我们将学习的第一个行为型模式是责任链模式。 核心思想:使多个对象都有机会处…...
Java多线程实现之Thread类深度解析
Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...
