【系统架构设计师】知识点总结汇总

一、系统架构设计师概述基础知识点
1、现代信息系统的架构有三个要素:构件、模式和规划。
2、软件系统架构是关于软件系统的结构、行为和属性的高级抽象。
3、系统架构设计师是软考软件设计师的高级资格。
4、系统架构设计师提出系统的总体构架,给出开发指导。
5、系统架构设计师在项目中担任技术骨干的角色,负责技术实施中的重点技术问题攻关。又是系统分析师的技术顾问。
二、计算机与网络基础知识
1、操作系统是计算机系统中的核心系统软件,负责管理和控制计算机系统中硬件和软件资源,合理地组织计算机工作流程和有效地利用资源,在计算机与用户之间起接口的作用。
2、操作系统的特征:并发性(concurrency)、共享性(sharing)、虚拟性(virtual)、不确定性(non-determinacy)。
3、操作系统的功能:进程管理、文件管理、存储管理、设备管理、作业管理。
4、典型的操作系统:
(1)批处理操作系统
(2)分时操作系统
不同用户有不同的任务,把不同的任务的运行时间分片,按时间片轮流执行各个任务,如果某一个任务在分的时间片里没有执行完,该任务就会被中断,把处理机让给另一个任务使用,等待下一轮时再继续运行。
(3)实时操作系统
最核心的特点是实时性强。
(4)网络操作系统
(5)分布式操作系统
(6) 嵌入式操作系统
微型化、代码质量高、专业化、实时性强、可裁剪可配置。
要求有一个统一的操作系统,实现系统操作的一致性,负责全系统的资源分配和调度,为用户提供统一的界面。
5、在操作系统中,进程是进行系统资源分配、调度和管理的最小单位。
6、进程控制块PCB是进程存在的唯一标志,PCB描述了进程的基本情况,其内容可分为:
(1)调度信息:供进程调度使用,包括进程当前的一些基本属性
(2)执行信息:即现场,刻画了进程的执行情况
PCB随着进程的建立而产生,随着进程的完成而撤销。
7、进程状态划分:可分为三态模型和五态模型
(1)三态模型
运行态:占用处理器正在运行。
就绪态:具备运行条件,等待系统分配处理器运行。
等待态:不具备运行条件,正在等待某个事件的完成。
进程在创建后将处于就绪态。
(2)五态模型
进程不能总是全部存在于内存之中,有时需要将某些进程挂起,兑换到磁盘镜像区中,使之暂时不参与进程调度,起到平滑系统操作负荷的目的。
静止就绪态:表明进程具备运行条件但目前在二级存储器(外存储器、外村、辅存)中,只有当它被对换到内存中才能被调度执行。
活跃就绪态:具备运行条件,加载进程到内存中了,可以被调用执行了。
运行态:正在运行。
活跃阻塞态:表明进程正在等待某一个事件且在内存中。
静止阻塞态:表明进程正在等待某一个事件且在二级存储器中。
8、信号量和PV操作
信号量和PV操作是用来解决并发问题的。
(1)信号量是一种特殊的变量,表现形式是一个整型S和一个队列。
(2)P操作:S=S-1,若S<0,表示当前没有资源分配给该进程,进程暂停执行,进入等待队列;
(3)V操作:S=S+1,若S<=0, 表示阻塞队列中有等待该资源的进程,唤醒等待队列中的第一个进程。
互斥控制是为了保护共享资源,不让多个进程同时访问这个共享资源,就是阻止多个进程同时进入访问这些资源的代码段,这个代码段称为临界区,而这种一次只允许一个进程访问的资源称为临界资源。对于互斥来说,信号量S初值应该置为1,一个进程获取共享资源之前进行P操作(S-1),进程运行之后进行V操作(S+1).
同步控制,PV操作应该是在不同的进程中成对出现的. 进程A执行到某一刻a需要进程B执行到b才能接着往下执行,那么就需要在进程A中的a处设置P操作,进程B中的b处设置V操作,信号量的初始值设置为0,A做P操作后信号量值小于<0,就会被阻塞,B在运行到b后,执行V操作信号量值=0,进程A继续执行。
9、管程与线程
(1)管程
组成:管程由管程名、局部子管程的变量说明、使用共享资源并在数据集上进行操作的若干过程,以及对变量赋初值的语句4个基本部分组成。
执行过程:每一个管程管理一个临界资源。当有几个进程调用某管程时,仅允许一个进程进入管程,其他调用者必须等待。
(2)线程
线程时进程的活动成分,是处理器分配资源的最小单位,它可以共享进程的资源与地址空间,通过线程的活动,进程可以提供多种服务(对服务器进程而言)或实行子任务并行(对用户进程而言)。采用线程机制的最大优点是节省开销、创建时间短,而且线程切换(处理器调度)比进程切换快。
10、死锁问题
产生死锁的4个必要条件:
(1)互斥条件:即一个资源每次只能被一个进程使用。
(2)请求保持条件:有一个进程已获得了一些资源,但因请求其他资源被阻塞时,对已获得的资源保持不放。
(3)不可剥夺条件:有些系统资源是不可抢占的,当某个进程已获得这种资源后,系统不能强行收回,只能由进程使用完时自己释放。
(4)环路条件:若干个进程形成环形链,每个都占用对方要申请的下一个资源。
死锁的4个条件只要打破任何一个,都不会产生死锁。
银行家算法是指在分配资源之前先看清楚资源分配后是否会导致系统死锁,如果会死锁,则不分配;否则就分配。
AI芯片的特点包括:
(1)新型的计算范式,AI计算既不脱离传统计算,也具有新的计算特质,如处理的内容往往是非结构化数据(视频、图片等)。处理过程通常需要很大的计算量,基本的计算主要是线性代数运算,而控制流程则相对简单。处理的过程参数量大。
(2)训练和推断AI系统通常涉及训练和推断过程。简单来说,训练过程是指在已有数据中学习,获得某些能力的过程;而推断过程则是指对新的数据,使用这些能力完成特定任务(比如分类、识别等)。
(3)大数据处理能力人工智能的发展高度依赖海量的数据。满足高效能机器学习的数据处理要求是AI芯片需要考虑的最重要因素。
(4)数据精度低精度设计是AI芯片的一个趋势,在针对推断的芯片中更加明显。对一些应用来说,降低精度的设计不仅加速了机器学习算法的推断(也可能是训练),甚至可能更符合神经形态计算的特征。
(5)可重构的能力针对特定领域而不针对特定应用的设计,将是AI芯片设计的一个指导原则,具有可重构能力的AI芯片可以在更多应用中大显身手,而且可以通过重新配置,适应新的AI算法、架构和任务。
(6)开发工具就像传统的CPU需要编译工具的支持,AI芯片也需要软件工具链的支持,才能将不同的机器学习任务和神经网络转换为可以在AI芯片上高效执行的指令代码。
ER图集成时产生的冲突及解决办法:
属性冲突:包括属性域冲突和属性取值冲突。
命名冲突:包括同名异义和异名同义。
结构冲突:包括同一对象在不同应用中具有不同的抽象,以及同一实体在不同局部E-R图中所包含的属性个数和属性排列次序不完全相同。
Soc称为片上系统,是一个有专用目标的集成电路,其中包含完整系统并有嵌入软件的全部内容。同时,它又是一种技术,用以实现从确定系统功能开始,到软/硬件划分,并完成设计的整个过程。
基于网络的数据库系统(Netware Database System, NDB)是基于4G/5G的移动通信之上,主要由客户端、通信协议和远程服务器等三部分组成,比如我们常见的web开发。NDB是以文件方式存储数据库数据。即数据按照一定格式存储在磁盘中,使用时由应用程序通过相应的驱动程序甚至直接对数据文件进行读写。
交换机接收到数据帧后,如果没有相应的表项,交换机会采用ARP泛洪操作,即广播方式进行转发。交换机通过读取输入帧中的源地址来添加相应的MAC地址表项。交换机的MAC地址表项是动态增长的。
internet网的网络层核心协议是IP协议,而IP协议是一种分组交换的协议。
分组交换是一种存储转发的交换方式,它将用户的报文划分成一定长度的分组,以分组为存储转发。因此,它比电路交换的利用率高,比报文交换的时延要小,而具有实时通信的能力。
分组交换允许多个发送者在共享的网络中传输数据,实现方式是:将数据分为小的块,称为分组(或数据包,简称包packet),并将预期的接收者的标识符写在每个分组中。在整个共享的网络中的每一个设备中都包含了发送到每一个可能的目的地的相关信息。当一个分组到达一个设备时,该设备选择一个能够到达目的地的路径,将分组数据发送出去,这样分组可以到达正确的目的地。
SDN(Software Defined Network)的网络架构中包含:控制层、转发层和应用层。
应用层:包含组织使用的典型网络应用或功能,这可能包括入侵检测系统、负载均衡或防火墙。
控制层:代表集中式SDN控制器软件,充当软件定义网络的大脑,该控制器驻留在服务器上并管理整个网络的策略和流量。
转发层:也叫基础设施层,由网络中的物理交换机组成,这些交换机将网络流量转发到它们的目的地。
企业数字化转型的5个发展阶段依次是:
1)初始级发展阶段
处于该阶段的组织,在单一职能范围内初步开展了信息技术应用,但尚未有效发挥信息技术对主营业务的支持作用。
2)单元级发展阶段
处于该阶段的组织,在主要或若干主营业务单一职能范围内开展了新一代信息技术应用,提升相关单项业务的运行规范性和效率。
3)流程级发展阶段
处于该阶段的组织,在业务线范围内,通过流程级数字化和传感网级网络化,以流程为驱动,实现主营业务关键业务流程及关键业务与设备设施、软硬件、行为活动等要素间的集成优化。
4)网络级发展阶段
处于该阶段的组织,在全组织(企业)范围内,通过组织(企业)级数字化和产业互联网级网络化,推动组织(企业)内全要素、全过程互联互通和动态优化,实现以数据为驱动的业务模式创新。
5)生态级发展阶段
处于该阶段的组织,在生态组织范围内,通过生态级数字化和泛在物联网级网络化,推动与生态合作伙伴间资源、业务、能力等要素的开放共享和协同合作,共同培育智能驱动型的数字新业务。
信息化的主体是全体社会成员,包括政府、企业、事业、团体和个人。
国家信息化体系包括6个要素:
1)信息技术应用
2)信息资源
信息资源、材料资源和能源共同构成了国名经纪和社会发展的三大战略资源。
3)信息网络
目前,人们通常将信息网络分为电信网、广播电视网和计算机网。
4)信息技术和产业
5)信息化人才
6)信息化政策法规和标准规范
组织信息化需求包含3个层次:
1)战略需求
信息化可以把组织战略提升到一个新的水平,为组织带来新的发展契机,特别是对于企业,信息化战略是企业竞争的基础。
2)运作需求
3)技术需求
适配系统升级、完善、集成和整合。
单位或个人可以开发未经国家正式批准的软件。但是以下5种情况不可以:
1)侵犯他人知识产权的;
2)含有计算机病毒的;
3)可能危害计算机系统安全的;
4)含有国家规定禁止传播内容的;
5)不符合我国软件标准规范的。
CMMI(Capability Maturity Model Integration For Software,软件能力成熟度模型集成)一共分为5个级别,1级最低,5级最高:
1)一级,完成级
不需认证,企业要对项目的目标和要做的努力很清晰。
2)二级,管理级
认证价值不高,一般企业都可以达到。企业在项目实施上能够遵守既定的计划与流程,有资源准备,权责到人,对相关的项目实施人员有相应的培训,对整个流程有监测与控制,并与上级单位对项目与流程进行审查。
3)三级,定义级
企业不仅能够对项目的实施有一整套的管理措施,并保障项目的完成;而且企业能够根据自身的特殊情况以及自己的标准流程,将这套管理体系与流程予以制度化。
4)四级,量化管理级
量化管理级分析对软件工程和产品质量的详细度量数据,对软件过程和产品都有定量的理解与控制,管理有一个做出结论的客观依据。
5)五级,优化级
优化管理级的量化反馈和先进的新思想、新技术促使过程持续不断改进。企业不仅能够通过信息手段与数字化手段来实现对项目的管理,而且能够充分利用信息资料,对企业在项目实施的过程中可能出现的次品予以预防。能够主动地改善流程,运用新技术,实现流程的优化。
产品配置是指一个产品在其生命周期各个阶段所产生的各种形式(机器可读或人工可读)和各种版本的文档、计算机程序、部件及数据的集合。
需求工程包括需求开发和需求管理两大类活动。
需求开发包括:需求获取、需求分析、需求定义、需求验证这些主要活动。
需求管理包括:变更控制、版本控制、需求跟踪和需求状态跟踪这些活动。
需求跟踪是将单个需求和其他系统元素之间的依赖关系和逻辑联系建立跟踪,这些元素包括各种类型的需求、业务规则、系统架构和构件、源代码、测试用例,以及帮助文档等。需求跟踪一般采用需求跟踪矩阵做跟进工作,跟踪矩阵将从需求源头一直跟进到最终的软件产品。
根据传统的软件声明周期方法学,可以把软件生命周期划分为:软件定义、软件开发、软件运行、软件维护。
敏捷方法是适应型,而非可预测型。
敏捷方法是以人为本,而非以过程为本。
敏捷方法是迭代增量式的开发过程。
RUP(Rational Unified Process)软件开发生命周期是一个二维的软件开发模型,RUP有9个核心工作流,分为6个核心过程工作流和3个核心支持工作流。
1)商业建模
2)需求
3)分析和设计
4)实现
5)测试
6)部署
7)配置和变更管理
8)项目管理
9)环境
结构化设计是一种面向数据流的设计方法,盒图、HIPO图、程序流程图属于结构化设计工具。
顺序图属于面向对象分析与设计工具。
环路复杂度:V(G)=E-N+2,其中,E是流图中边的条数,N是节点数。
软件构建有3个核心特点:
1)独立部署单元
2)作为第三方的组装单元
3)没有外部的可见状态
信息泄露是指信息被泄露或透露给某个非授权的实体。
破坏信息的完整性是指数据被非授权地进行修改。
拒绝访问是指对信息或其他资源访问被无条件地阻止。
业务流分析是指对系统进行长期监听,利用统计分析方法对诸如通信频度、通信地信息流向、通信总量的变化等参数进行研究,从而发现有价值的信律。
静态测试是指被测试程序不在机器上运行,而采用人工监测和计算机辅助分析的手段对程序进行监测。静态测试包括对文档的静态测试和对代码的静态测试。
动态测试是利用计算机运行得到测试结果的方式进行测试。动态测试中的黑盒测试不关注程序的内部结构,只从程序块的功能、输入、输出角度分析问题,设计测试用例并展开测试工作。
4+1视图模型各个部分情况如下:
1)逻辑视图
主要支持系统的功能需求,即系统提供给最终用户的服务。一般用类图和对象图描述。
2)开发试图
也叫模块视图,在UML中被称为实现视图,主要侧重于软件模块的组织和管理。该视图可描述源代码,系统文件结构。
3)过程视图
侧重于系统的运行特性,主要关注一些非功能性需求,例如性能和可用性等。强调并发性、分布性、系统集成性和容错能力,以及逻辑视图中的功能抽象如何适合进程结构等,它也定义了逻辑视图中的各个类的操作具体是在哪一个线程中被执行的。
4)物理视图
在UML中被称为部署视图,主要考虑如何把软件映射到硬件上,通常要考虑到解决系统拓扑结构、系统安装和通信等问题。
5)场景
使4个视图联系起来,对应UML中的用例视图。
物联网从架构角度来看,分三层:
感知层:识别物体、信息采集。
网络层:传递信息和处理信息。
应用层:解决信息处理和人机交互的问题。
在特定领域架构中,垂直域关注的是与行业相关的,聚焦于行业特性的内容;而水平域关注的是各行业共性部分的内容。
性能是指系统的响应能力,即要经过多长时间才能对某个事件做出响应,或者在某段事件内系统所能处理的事件的个数。
在web服务器的测试中,反映其性能的指标主要有:最大并发连接数、响应延迟和吞吐量等。常见的web服务器性能评测方法有基准性能测试、压力测试和可靠性测试。
软件模块之间的耦合性从低到高为:
1)非直接耦合:两个模块之间没有直接关系,它们之间的联系完全是通过主模块的控制和调用来实现的。
2)数据耦合:一组模块借助参数表传递简单数据。
3)特征耦合:一组模块通过参数表传递记录信息(数据结构)。
4)控制耦合:模块之间传递的信息中包含用于控制模块内部逻辑的信息。
5)外部耦合:一组模块都访问同一全局简单变量,而且不是通过参数表传递该全局变量的信息。
6)公共耦合:多个模块都访问同一个公共数据环境。
7)内部耦合:也叫内容耦合,指一个模块直接访问另一个模块的内部数据;一个模块不通过正常入口转到另一个模块的内部;两个模块有一部分程序代码重叠;一个 模块有多个入口。
软件模块内聚按高到底排列为:
1)功能内聚:完成一个单一功能。
2)顺序内聚:处理元素相关,而且必须顺序执行。
3)通信内聚:所有处理元素集中在一个数据结构的区域上。
4)过程内聚:处理元素相关,而且必须按特定的次序执行。
5)瞬时内聚:时间内聚,所包含的任务必须在同一时间间隔内执行。
6)逻辑内聚:完成逻辑上相关的一组任务。
7)偶然内聚:也叫巧合内聚,完成一组没有关系或松散关系的任务。
COM不支持任何形式的实现继承。COM支持两种形式的对象组装:包含和聚集。
包含是一个对象拥有指向另一个对象的唯一引用,外部对象只是把请求转发给内部对象。包含的层次较深,会存在性能上的问题。
聚集直接把内部对象接口引用传递给外部对象的客户,而不是再转发请求。
场景(scenarios):在进行体系结构评估时,一般首先要精确地得出具体的质量目标,并以之作为判定该体系结构优劣的标准。为得到这些目标而采用的机制叫做场景。场景是从风险承担者的角度对与系统的交互的简短描述。在体系结构评估中,一般采用刺激、环境和响应三方面来对场景进行描述。
敏感点和权衡点是关键的架构决策。
敏感点:一个或多个构建的特性。
权衡点:影响多个质量属性的特性,是多个质量属性的敏感点。
每个数字证书上都会有其颁发机构的签名,我们可以通过验证CA对数字证书的签名来核实数字证书的有效性。如果证书有效,说明此网站经过CA中心的认证,是可信的网站,所有这个动作是用来验证网站真伪的,而不能验证客户方的真伪。
委托创作中,没有约定著作权归属,则默认由创作方获得著作权。
在3层C/S架构中,是将应用功能分成表示层、功能层和数据层三部分。
改编、翻译、注释、整理已有作品而产生的作品,其著作权由改编、翻译、注释、整理人享有,但行使著作权时不得侵犯原作品的著作权。
合作作品的著作权归属于所有参数人不含组织创作的人。