软考架构师知识点
2025-12-22 14:25:43 0 举报
AI智能生成
根据系统架构师考试大纲,需掌握的关键内容包括软件架构设计原理、系统建模方法、分布式系统设计、网络安全和性能优化等方面。这些知识点不仅是文档基础,而且是设计高可用、高可靠、高性能系统架构的核心。具体文件类型涉及范围广泛,包含系统架构描述文档(SAD)、架构设计文档(ADD)、需求文档、测试计划等。修饰语应体现出专业性和准确性,例如“详尽的架构分析”、“系统的稳健性设计”、“精确的性能评估”等。这些内容要求考生不仅理解概念,还要能结合实际案例进行分析,具备将理论知识转化为项目实践的能力。
作者其他创作
大纲/内容
操作系统
线程
线程共享资源
地址空间
全局变量
打开的文件
子进程
信号量
定时器
线程独享资源
程序寄存器
寄存器
栈(栈指针)
状态字
前趋图
箭头代表前趋关系,节点表示进程,每个前趋关系可以用(节点1,节点2)的形式表示
本图中P1是起点, P7是终点,一共有11个前趋关系,P1 到P2之间的前趋关系可用:(P1,P2)表示
表示为:→={(P1, P2), (P1, P3), (P1, P4), (P2, P5), (P2, P3), (P3, P4), (P3,P5), (P4,P5), (P5, P6), (P5, P7),(P6,P7)}
表示为:→={(P1, P2), (P1, P3), (P1, P4), (P2, P5), (P2, P3), (P3, P4), (P3,P5), (P4,P5), (P5, P6), (P5, P7),(P6,P7)}
位示图
位示图是利用二进制的一位来表示磁盘中的一个盘快的使用情况,一般把“1”作为盘块已分配的标记,把“0”作为空闲标志
物理块计算
磁盘的容量为300GB,物理块的大小为4MB,那么该磁盘有300*1024/4=76800个物理块
计算机字长
表示一个字可记录物理块的个数
字长为32位,一个字可记录32个物理块
位示图大小计算
物理块总数/字长
嵌入式操作系统
实时
实时是指计算机对于外来信息能够以足够快的速度进行处理,并在被控对象允许的时间范围内做出快速响应
实时操作系统
保证在一定时间限制内完成特定功能的操作系统
分类
硬实时
硬实时要求在规定的时间内必须完成操作,这是在操作系统设计时保证的
软实时
软实时则只要按照任务的优先级,尽可能快地完成操作即可
微内核操作系统
微内核操作系统与传统操作系统对比
优点
提高系统灵活性、可扩展性
由于微内核OS的许多功能是由相对独立的服务器软件来实现的,当开发了新的硬件和软件时,微内核OS只须在相应的服务器中增加新的功能,或再增加一个专门的服务器。与此同时,也必然改善系统的灵活性,不仅可在操作系统中增加新的功能,还可修改原有功能,以及删除已过时的功能,以形成一个更为精干有效的操作系统
增强系统的可靠性和可移植性
由于微内核是出于精心设计和严格测试的,容易保证其正确性;另一方面是它提供了规范而精简的应用程序接口(API),为微内核外部的程序编制高质量的代码创造了条件。此外,由于所有服务器都是运行在用户态,服务器与服务器之间采用的是消息传递通信机制,因此,当某个服务器出现错误时,不会影响内核,也不会影响其他服务器。另外,由于在微内核结构的操作系统中,所有与特定CPU和I/O设备硬件有关的代码,均放在内核和内核下面的硬件隐藏层中,而操作系统其他绝大部分(即各种服务器)均与硬件平台无关,因而,把操作系统移植到另一个计算机硬件平台上所需作的修改是比较小的。
提供了对分布式系统的支持
由于在微内核OS中,客户和服务器之间以及服务器和服务器之间的通信,是采用消息传递通信机制进行的,致使微内核OS能很好地支持分布式系统和网络系统。事实上,只要在分布式系统中赋予所有进程和服务器唯一的标识符,在微内核中再配置一张系统映射表(即进程和服务器的标识符与它们所驻留的机器之间的对应表),在进行客户与服务器通信时,只需在所发送的消息中标上发送进程和接收进程的标识符,微内核便可利用系统映射表,将消息发往目标,而无论目标是驻留在哪台机器上。
段页式存储
页式存储地址转换相关计算
逻辑地址=逻辑段号+页内地址
物理地址=物理块号+页内地址
段页式存储的基本概念
段页式存储管理方式即先将用户程序分成若干个段,再把每个段分成若干个页,并为每一个段赋予一个段名,使用段页表来进行管理
分区式管理
页式管理
段式管理
数据库系统
规范化理论
闭包
由一个属性直接或间接推导出的所有属性的集合
(X) + F =Y闭包求法
第一步:设最终将成为闭包的属性集是Y,把Y初始化为X;
第二步:检查F中的每一个函数依赖A→B,如果属性集A中所有属性均在Y中,而B中有的属性不在Y中,则将其加入到Y中;
第三步:重复第二步,直到没有属性可以添加到属性集Y中为止。
分布式数据库
基本概念
分片透明
是指用户不必关系数据是如何分片的,它们对数据的操作在全局关系上进行,即关系如何分片对用户是透明的,因此,当分片改变时应用程序可以不变。
分片透明性是最高层次的透明性,如果用户能在全局关系一级操作,则数据如何分布,如何存储等细节自不必关心,其应用程序的编写与集中式数据库相同。
复制透明
在分布式数据库系统中,可以把一个场地的数据复制到其他场地存放,应用程序可以使用复制到本地的数据在本地完成分布式操作,避免通过网络传输数据,提高了系统的运行和查询效率。但是对于复制数据的更新操作,就要涉及到对所有复制数据的更新。
位置透明
指用户不必知道所操作的数据放在何处,即数据分配到哪个或哪些站点存储对用户是透明的。
数据分片模式的改变,如把数据从一个站点转移到另一个站点将不会影响应用程序,因而应用程序不必改写。
逻辑透明(局部映像透明性)等
是最低层次的透明性,该透明性提供数据到局部数据库的映像,即用户不必关系局部DBMS支持哪种数据模型、使用哪种数据操纵语言,数据模型和操纵语言的转换是由系统完成的
局部映像透明性对异构型和同构异质的分布式数据库系统是非常重要的。
数据库设计
概念结构设计
概念设计也称为概念结构设计,其任务是在需求分析阶段产生的需求说明书的基础上,按照特定的方法将它们抽象为一个不依赖于任何DBMS的数据模型,即概念模型。概念模型的表现形式即ER模型。
逻辑结构设计
也称为逻辑结构设计,其主要任务是将概念设计阶段设计好的E-R图转换为与选用的具体机器上的DBMS所支持的数据模型相符合的逻辑结构(如:关系模式)。
派生属性
数据库中的衍生数据,是一种特殊属性
指可以由其他属性进行计算来获得的属性,如年龄可以由出生日期和系统当前时间计算获得,是派生属性
设计过程的任务
(1)把概念结构设计阶段设计好的基本E-R图转换为关系数据库的关系模式;
(2)对关系模式进行优化;
(3)设计用户视图
物理结构设计
物理设计也称为物理结构设计,其任务是对给定的逻辑模型选取一个最适合应用环境的物理结构,所谓数据库的物理结构,主要是指数据库在物理设备上的存储结构和存取方法。
超类型
当较低层次上实体类型表达了与之联系的较高层次上的实体类型的特殊情况时,就称较高层次上实体类型为超类型,反之为子类型
子类到超类的过程为概化,超类到子类的过程为特化
①子类与超类之间具有继承特点,即子类包含了超类的所有属性,并且可以比超类拥有更多的属性。
②这种继承性是通过子类实体和超类实体有相同的实体标识符实现的。
关系模型的完整性规则
是对关系的某种约束条件,关系模型中可以有三类完整性约束:实体完整性、参照完整性和用户定义的完整性。实体完整性规定基本关系的主属性不能取空值。由于员工关系E中的员工编号、仓库关系w中的仓库编号和产品关系P中的产品编号都不能为空且唯一标识一个记录,所以应满足实体完整性约束:参照完整性规定实体间引用的完整性,本表中外码的值必须取空值或者在被引用的表中存在的相对应的主码值。由于仓库关系的负责人引用了员工关系的员工编号,所以应满足参照完整性约束;实体完整性和参照完整性是所有数据库系统都要支持的完整性约束。而用户定义的完整性是针对某一具体关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。
软件架构设计
软件架构风格
经典风格
分层结构(系统)
特点
分层架构是低耦合的
依赖关系非常简单
上层只能依赖于下层
没有循环依赖
所以底层错误将导致整个系统无法运行,而上层错误一般影响的是错误的这一部分,对整个系统的影响并不是完全的
C/S架构
基于资源不对等,且为实现共享而提出来的,C/S结构将应用一分为二,服务器(后台)负责数据管理,客户机(前台)完成与用户的交互任务
C/S软件架构具有强大的数据操作和事务处理能力,模型思想简单,易于人们理解和接受
传统的二层C/S结构存在的局限
1.二层C/S结构为单一服务器且以局域网为中心,所以难以扩展至大型企业广域网或Internet;
2.软、硬件的组合及集成能力有限;
3.服务器的负荷太重,难以管理大量的客户机,系统的性能容易变坏;
4.数据安全性不好。因为客户端程序可以直接访问数据库服务器,那么,在客户端计算机上的其他程序也可想办法访问数据库服务器,从而使数据库的安全性受到威胁。
三层C/S结构
三层C/S结构是将应用功能分成表示层、功能层和数据层三个部分。
表示层
表示层是应用的用户接口部分,它担负着用户与应用间的对话功能。
它用于检查用户从键盘等输入的数据,并显示应用输出的数据。在变更用户接口时,只需改写显示控制和数据检查程序,而不影响其他两层。检查的内容也只限于数据的形式和取值的范围,不包括有关业务本身的处理逻辑。
功能层
功能层相当于应用的本体,它是将具体的业务处理逻辑编入程序中。
而处理所需的数据则要从表示层或数据层取得。表示层和功能层之间的数据交往要尽可能简洁。
数据层
数据层就是数据库管理系统,负责管理对数据库数据的读写。
数据库管理系统必须能迅速执行大量数据的更新和检索。因此,一般从功能层传送到数据层的要求大都使用SQL语言。
软件脆弱性
脆弱性可以看成是系统内部的薄弱点。脆弱性是客观存在的,但它本身没有实际伤害
软件质量属性
信息隐藏
是提高可修改性的典型设计策略,又因为信息隐藏可以有一定保密作用,所以也可以提高安全性。
常考质量属性及相应设计策略
性能
性能(performance)是指系统的响应能力,即要经过多长时间才能对某个事件做出响应,或者在某段时间内系统所能处理的事件的个数。
代表参数:响应时间、吞吐量 设计策略:优先级队列、资源调度
队列调度主要提高系统的性能
可用性
可用性(availability)是系统能够正常运行的时间比例。经常用两次故障之间的时间长度或在出现故障时系统能够恢复正常的速度来表示。
代表参数:故障间隔时间 设计策略:冗余、心跳线
Ping/Echo主要提高系统的可用性
安全性
安全性(security)是指系统在向合法用户提供服务的同时能够阻止非授权用户使用的企图或拒绝服务的能力。安全性又可划分为机密性、完整性、不可否认性及可控性等特性。
设计策略:追踪审计
限制访问主要提高系统的安全性
可修改性
可修改性(modifiability)是指能够快速地以较高的性能价格比对系统进行变更的能力。通常以某些具体的变更为基准,通过考察这些变更的代价衡量可修改性。
主要策略:信息隐藏
运行时注册主要提高系统的可修改性
接口-实现分离主要提高系统的可修改性
信息隐藏主要提高系统的可修改性
可靠性
可靠性(reliability)是软件系统在应用或系统错误面前,在意外或错误使用的情况下维持软件系统的功能特性的基本能力。主要考虑两个方面:容错、健壮性。
代表参数: MTTF、MTBF 设计策略:冗余、心跳线
主动冗余提高系统的可靠性
可测试性
记录-回放主要提高系统的可测试性
构件与中间件技术
构件基本概念
如果把软件系统看成是构件的集合,那么从构件的外部形态来看,构成一个系统的构件可分为5类
独立而成熟的构件
独立而成熟的构件得到了实际运行环境的多次检验,该类构件隐藏了所有接口,用户只需用规定好的命令进行使用。例如,数据库管理系统和操作系统等。
有限制的构件
有限制的构件提供了接口,指出了使用的条件和前提,这种构件在装配时,会产生资源冲突、覆盖等影响,在使用时需要加以测试。例如,各种面向对象程序设计语言中的基础类库等。
适应性构件
适应性构件进行了包装或使用了接口技术,把不兼容性、资源冲突等进行了处理,可以直接使用。这种构件可以不加修改地使用在各种环境中。例如ActiveX等。
装配的构件
装配(assemble)的构件在安装时,已经装配在操作系统、数据库管理系统或信息系统不同层次上,使用胶水代码(glue code)就可以进行连接使用。目前一些软件商提供的大多数软件产品都属这一类。
可修改的构件
可修改的构件可以进行版本替换。如果对原构件修改错误、增加新功能,可以利用重新“包装”或写接口来实现构件的替换。这种构件在应用系统开发中使用得比较多。
中间件基本概念
中间件是一种独立的系统软件或服务程序,可以帮助分布式应用软件在不同的技术之间共享资源。
作用
1、负责客户机与服务器之间的连接和通信,以及客户机与应用层之间的高效率通信机制。
2、提供应用的负载均衡和高可用性、安全机制与管理功能,以及交易管理机制,保证交易的一致性。
3、提供应用层不同服务之间的互操作机制,以及应用层与数据库之间的连接和控制机制。
4、提供多层架构的应用开发和运行的平台,以及应用开发框架,支持模块化的应用开发。
5、屏蔽硬件、操作系统、网络和数据库的差异。
6、提供一组通用的服务去执行不同的功能,避免重复的工作和使应用之间可以协作。
架构”4+1“视图
当考虑架构时,重要的是从不同的视角(perspective)来检查,这促使设计师考虑具体架构的不同属性。例如:展示功能组织的静态视角能判断质量特性,展示并发行为的动态视角能判断系统行为特性。
在ABSD(基于架构的软件设计)方法中,使用不同的视角来观察设计元素,一个子系统并不总是一个静态的架构元素,而是可以从动态和静态视角观察的架构元素。将选择的特定视角或视图与Kruchten提出的类似,也就是逻辑视图、进程视图、实现视图和配置视图。使用逻辑视图来记录设计元素的功能和概念接口,设计元素的功能定义了它本身在系统中的角色,这些角色包括功能性能等。进程视图也称为并发视图,使用并发视图来检查系统多用户的并发行为。使用“并发”来代替“进程”,是为了强调没有对进程或线程进行任何操作,一旦这些执行操作,则并发视图就演化为进程视图。使用的最后一个视图是配置视图,配置视图代表了计算机网络中的节点,也就是系统的物理结构。
逻辑视图
记录设计元素的功能和概念接口,设计元素的功能定义了它本身在系统中的角色,这些角色包括功能性能等。
进程视图也称为并发视图
使用并发视图来检查系统多用户的并发行为。使用“并发”来代替“进程”,是为了强调没有对进程或线程进行任何操作,一旦这些执行操作,则并发视图就演化为进程视图。
配置视图
配置视图代表了计算机网络中的节点,也就是系统的物理结构。
软件架构评估
评估内容
敏感点
敏感点是一个或多个构件(和/或构件之间的关系)的特性。
权衡点
权衡点是影响多个质量属性的特性,是多个质量属性的敏感点。
风险点
风险点是指架构设计中潜在的、存在问题的架构决策所带来的隐患。
非风险点
是指不会带来隐患,一般以“XXX要求是可以实现(或接受)的”方式表达。
评估方法
架构权衡分析方法(Architecture Tradeoff AnalysisMethod,ATAM)
架构权衡分析方法(Architecture Tradeoff Analysis Method,ATAM)是一种系统架构评估方法,主要在系统开发之前,针对性能、可用性、安全性和可修改性等质量属性进行评价和折中。
ATAM可以分为4个主要的活动阶段
需求收集
架构视图描述
属性模型构造
分析、架构决策与折中
改变加密级别可能会对安全性和性能产生非常重要的影响。 提高加密级别可以提高安全性,但可能要耗费更多的处理时间,影响系统性能。如果某个机密消息的处理有严格的时间延迟要求,则加密级别可能就会成为一个权衡点
软件架构重构
软件架构重构是一个解释性、交互式和反复迭代的过程,包括了多项活动
UML 2.0
交互图
概览图
定时图
顺序图(序列图)
通信图(协作图)
状态图
活动图
软件体系结构风格
概念
是描述某一特定应用领域中系统组织方式的惯用模式
体系结构风格定义一个系统家族,即一个体系结构定义一个词汇表和一组约束。
词汇表中包含一些构件和连接件类型
约束指出系统是如何将这些构件和连接件组合起来的。
体系结构风格反映了领域中众多系统所共有的结构和语义特性,并指导如何将各个模块和子系统有效地组织成一个完整的系统。
ANSI/IEEE 1471-2000标准
系统是为了达成利益相关人(Stakeholder)的某些使命(Mission),在特定环境 (Enviroment)中构建的。每一个系统都有一个架构(Architecture)。架构是对所有利益相关人的关注点(Concern)的响应和回答,通过架构描述(Architecture Description)来说明。每一个利益相关人都有各自的关注点。这些关注点是指对其重要的,与系统的开发、运营或其他方面相关的利益。架构描述(Architecture Description)本质上是多视图的。每一个视图(View)是从一个特定的视角(Viewpoint)来表述架构的某一个独立的方面。试图用一个单一的视图来覆盖所有的关注点当然是最好的,但实际上这种表述方 式将很难理解。视角(Viewpoint)的选择,基于要解决哪些利益相关人的哪些关注点。 它决定了用来创建视图的语言、符号和模型等,以及任何与创建视图相关的建模方法或者分析技术。一个视图(View)包括一个或者多个架构模型(Model),一个模型也可能参与多个视图。模型较文本的表述的好处在于,可以更容易的可视化、检查、分析、管理和集成。
软件可靠性
可靠性定义
指产品在规定的条件下和规定的时间内完成规定功能的能力
指在特定环境和特定时间内,计算机程序无故障运行的概率
故障
故障指软件行为与需求的不符,故障有等级之分
纠正一个故障可能会引入其他的错误,而这些错误会导致其他的故障,
可靠性能够通过历史数据和开发数据直接测量和估算出来
软件工程基础知识
软件工程
软件工程定义
是指应用计算机科学、数学及管理科学等原理,以工程化的原则和方法来解决软件问题的工程,
目的是提高软件生产率、提高软件质量、降低软件成本
软件开发生命周期
软件定义时期
过程
1.可行性研究
2.详细需求分析
任务
确定软件开发工程必须完成的目标
问题定义
可行性研究
需求分析等
软件开发时期
软件的设计与实现
概要设计
详细设计
编码
测试等
软件运行和维护
软件产品移交给用户使用
软件系统文档
用户文档
主要描述系统功能和使用方法,不关心这些功能怎么实现
系统文档
描述系统设计、实现和测试等各方面的内容
软件工程的过程
定义
指为获得软件产品,在软件工具的支持下由软件工程师完成的一系列工程活动
过程
1.P(Plan)
软件规格说明
规定软件的功能及其运行时的限制
2.D(Do)
软件开发
开发出满足规格说明的软件
3.C(Check)
软件确认
确认开发的软件能够满足用户的需求
4.A(Action)
软件演进
软件在运行过程中不断改进以满足客户新的需求
软件设计
数据设计
软件结构(体系结构)设计
人机界面(接口)设计
过程设计
软件过程模型(软件开发模型)
定义
是软件开发全部过程、活动和任务的结构模型
典型模型
瀑布模型
将软件生命周期中的各个活动规定为依据线性顺序连接的若干个阶段,包括需求分析、设计、编码、测试、运行和维护。
如同瀑布流水逐级下落
以文档作为驱动、适合软件需求很明确的软件项目的开发
优点
容易理解
成本低
强调开发的阶段性早期计划及需求调查和产品测试
缺点
客户必须能完整、正确和清晰地表达需求
难以评估项目的进度状态
项目快结束时,出现大量的集成与测试工作
需求或设计的错误往往只有到了项目后期才能被发现,对项目风险的控制能力弱,通常会导致项目延期,开发费用超出预算
原型模型(快速原型模型)
通过快速构建原型并交付用户使用,收集客户反馈意见,目的是明确当前系统的需求。
原型法对用户的需求是动态响应、逐步纳入的
适用
适用于用户需求不明确、需求经常变化且系统规模不太大、不太复杂的软件项目
原型应该具备的特点
实际可行
具有最终系统的基本特征
构造方便、快速,造价低
螺旋模型
定义
将生命周期模型(瀑布模型)和原型模型结合起来,加入两种模型均忽略的风险分析。
螺旋周期步骤
目标设定
风险分析
开发和有效性验证
评审
螺旋模型强调风险分析,与瀑布模型相比,支持用户需求的动态变化。
适用
庞大、复杂且具有高风险的系统
增量模型
定义
将需求分段为一系列产品,每个增量都可以分别开发
优点
可交付的版本成本和时间很少
降低了适应用户需求变更的成本
具有瀑布模型所有的特点
缺点
若没有对用户的变更要求进行规划,那么产生的初始增量可能回造成后来增量的不稳定
由于并不是从系统整体角度规划各个模块,因此不利于模块划分
难点在于如何将客户需求划分为多个增量
与原型不同的是增量模型的每一次增量版本都可作为独立可操作的产品,而原型的构建一般是为了演示
喷泉模型
定义
以用户需求为动力、以对象为驱动的模型,适用于面向对象的开发方法。喷泉模型使开发过程具有迭代性和无间隙性
优点
各个阶段没有明显的界限,开发人员可以同步进行
可以提高软件项目的开发效率,节省开发时间
缺点
由于在各个开发阶段时重叠的,在开发过程中需要大量的开发人员,不利于项目的管理
要求严格管理文档,使得审核的难度加大
基于构件的开发模型(CBSD)
定义
指利用预先包装的构件来构造应用系统。
构件可以是组织内部开发的构件,也可以是商品化成品软件构件
特点
增强复用性
构件
是面向软件体系架构的可复用软件模块
是可复用的软件组成成份,可悲用来构建其它软件
它可以是被封装的对象类、功能模块、软件框架、软件架构、文档、设计模式等。
形式化方法模型
是建立在严格数学基础上的一种软件开发方法,主要活动是生成计算机软件形式化的数学规格说明
敏捷模型
开发宣言
个体和交互胜过过程和工具、可以工作的软件胜过面面俱到的文档、客户合作胜过合同谈判、响应变化胜过遵循计划
特点
是“适应性”而非“预设性”
是“面向人的”而非“面向过程的”
核心思想
敏捷方法是适应型,而非可预测型。拥抱变化,适应变化
敏捷方法是以人为本,而非以过程为本。发挥人的特性
迭代增量式的开发过程。以原型开发思想为基础,采用迭代增量式开发,发行版本小型化
主要的敏捷方法
极限编程(XP)
四大价值观
交流
朴素
反馈
勇气
任何一个软件项目都可以从四个方面进行改善
加强交流
从简单做起
寻求反馈
勇于实事求是
水晶法(Crystal)
与XP方法一样,都有以人为本的理念,但在事件上有所不同。其目的是发展一种提倡机动性的方法,包含具有共性的核心元素,每个都含有独特的角色、过程模式、工作产品和实践。认为人对软件质量有重要的影响,随着开发人员素质的提高,项目和过程的质量也随之提高。
并列争球法(Scrum)
一种迭代的增量化过程,把每段时间一次的迭代称为一个冲刺,并按需求的优先级来实现产品,多个自组织和自治的小组并行的递增实现产品
特征驱动开发方法(FDD)
是一个迭代的开发模型。FDD认为有效的软件开发需要3个要素:人、过程和技术。
核心过程
开发整体对象模型
构造特征列表
计划特征开发
特征设计
特征构建
统一过程模型(RUP)
定义
描述了如何有效的利用商业的、可靠的方法开发和部署软件,是一种重量级过程。RUP类似一个在线的指导者,可以为所有方面被层次的程序开发提供知道方针、模版以及实例支持。
生命周期
核心流程
业务建模
理解待开发系统所在的机构及其商业运作,确保所有人员对待开发系统所在的机构有共同的认识,评估待开发系统对所在机构的影响
需求
定义系统功能及界面,使客户知道系统的功能,使开发人员理解系统的需求,为项目预算及计算提供基础
分析与设计
把需求分析的结果转化为分析与设计模型
实现
把设计模型转换为实现结果,对开发的代码做单元测试,将不同实现人员开发的模块集成为可执行系统
测试
部署
配置与变更管理
项目管理
环境
生命周期为多个循环,每个循环由四个阶段组成
初始阶段
定义最终产品视图和业务模型,并确定系统范围
细化阶段
设计及确定系统的体系结构,制定工作计划和资源要求
构造阶段
构造产品并继续演进需求、体系结构、计划直至产品提交
移交阶段
吧产品移交给用户使用
核心概念
角色(Role)
Who的问题。角色描述某个人或一个小组的行为与职责
活动(Activity)
How的问题。活动是一个又明确目的的独立工作单元
制品(Artifact)
What的问题。制品是活动生成、创建或修改的一段信息。
工作流(Workflow)
When的问题。工作流描述了一个有意义的连续的活动序列,每个工作流产生一些有价值的产品,并显示了角色之间的关系
RUP和用例驱动、一体系结构为中心、迭代和增量的软件开发过程。其特点为
用例驱动
需求分析、设计、实现和测试等活动都是用例驱动的
以体系结构为中心
包括系统的总体组织和全局控制、通讯协议等。
4+1模型
逻辑视图
最终用户关心的是系统的配置、装配等问题,会侧重于逻辑视图
实现视图
程序员关心的是系统的配置、装配等问题,会侧重于实现视图
进程视图
系统集成人员关心的是系统的性能、可伸展性、吞吐率等问题,侧重于进程视图
部署视图
系统工程师关心的是系统的发布、安装、拓扑结构等问题,会侧重部署视图
用例视图
分析人员和测试人员关心的是系统的行为,侧重于用例视图
迭代与增量
把整个项目开发分为多个迭代过程。每次迭代中,只考虑系统的一部分需求,进行分析、设计、实现、测试、部署等过程;每次迭代是在已完成部分的基础上进行的,每次增加一些新的功能实现,以此进行下去,直至最后项目的完成。
软件能力成熟度模型
能力成熟度模型CMM
定义
是对软件组织进行阶段的描述,随着软件组织的定义、实施、测量、控制和改进其软件过程,软件组织的能力经过这些阶段逐步提高。
软件过程的改进分为五个成熟度级别
初始级
项目完成依靠于个人的努力和英雄式核心任务的作用
可重复性
建立了基本的项目管理过程和实践来跟踪项目费用,进度和功能特性
已定义级
管理和工程两方面的软件过程已经文档化、标准化
已管理级
制定了软件过程和产品质量的详细度量标准
优化级
通过过程质量反馈和来自新观念、新技术的反馈不断地改进软件过程
需求工程
系统分析与设计
软件测试
调试
软件度量
软件维护
净室软件工程
基于构件的软件工程
软件项目管理
计算机网络
TCP/IP协议族
DNS
DNS的相关应用
当进行DNS解析的时候,需要系统指定一台DNS服务器,以便当系统要解析域名的时候,可以向所设定的域名服务器进行查询
/etc/resolv.conf
包括Linux系统在内的大部分UNIX系统中,DNS服务器的IP地址都存放在/etc/resolv.conf文件中
每一行是由一个关键字和随后的参数组成的
常见的关键字
Nameserver
指定DNS服务器的IP地址,可以有多行,查询的时候按照次序进行,只有当一个DNS服务器不能使用的时候,才查询后面的DNS服务器。
Domain
用来定义默认域名(主机的本地域名)。
Search
Search它的多个参数指明域名查询顺序。当要查询没有域名的主机,主机将在由Search声明的域中分别查找。domain和Search不能共存;如果同时存在,后面出现的将会被使用。
DNS是域名系统,Domain Name System的缩写,是一个服务
修改DNS的好处
适当提高上网速度
更换DNS可以访问某些因为域名解析存在问题而不能访问的网站;
可以屏蔽运营商的广告,还可以帮助您避免被钓鱼的危险;
修改DNS带来的副作用
无法访问页面或者访问的页面不是你想要的页面;
访问速度没有你从运营商处获得的DNS访问分速度快,延时比较大;
受到DNS劫持,插入广告和被钓鱼网站攻击;
其它
对等网络
即对等计算机网络,是一种在对等者(Peer)之间分配任务和工作负载的分布式应用架构,是对等计算模型在应用层形成的一种组网或网络形式。
在对等网络中,由于采用总线式的连接,因此网络中的终端数量越多,终端所能够分配到的转发时隙就越小,所带来的延迟也就越大
路由器
一般采取存储转发方式
存储转发方式需要对待转发的数据包进行重新拆包,分析其源地址和目的地址,再根据路由表对其进行路由和转发
交换机
直接转发方式
相比存储转发方式,直接转发方式转发时延更小
网络延迟
网络延迟=处理延迟+排队延迟+发送延迟+传播延迟
网络通讯
核心基础
奈奎斯特(Nyquist)定理
由电子工程师哈里·奈奎斯特(Harry Nyquist)在1928年提出。它解决了模拟信号数字化时的采样精度问题,为现代数字通信系统奠定了基石
采样定理
采样定理:奈奎斯特采样定理指出,为了无失真地重建一个频率最高为
B
B 赫兹的信号,采样频率必须大于或等于
2
B
2B 赫兹。这意味着,如果采样频率低于信号最高频率的两倍,就会发生混叠现象,导致信号失真。
信道容量
奈奎斯特定理还描述了在无噪声信道中,信号的最大传输速率。对于带宽为 B赫兹的信道,最大数据传输速率 R max可以表示为:
R max =2B⋅log2 (M)
R max =2B⋅log2 (M)
法律法规与标准化
知识产权
知识产权人确定
著作权
著作权是知识产权中的例外,因为著作权的取得无须经过个别确认,这就是人们常说的“自动保护”原则
软件经过登记后,软件著作权人享有发表权、开发者身份权、使用权、使用许可权和获得报酬权
软件著作权自软件开发完成之日起产生
未经软件著作权人许可,修改、翻译、复制、发行著作人的软件的,属于侵权行为,应承担相应的民事、行政和刑事责任。
保护期限
《中华人民共和国著作权法》规定:作者的署名权、修改权、保护作品完整权的保护期不受限制。发表权的保护期限为作者终生及死后50年(第50年12月31日),发行权和复制权的保护期限为作者终生及死后50年(第50年12月31日),合作开发,以最后死亡作者为准。
数学与经济管理
应用数学中随机模拟相关应用
专业英语
信息安全
其它
区块链技术的相关应用
数字货币
“双花”问题
指一笔数字现金在交易中被反复使用的现象
工作原理
区块链依靠共识机制来验证交易并防止双重支出。
当一个人通过利用区块链共识机制中的漏洞两次花费相同的数字货币时,就会发生双重支出。
该攻击利用了网络内交易传播和确认之间的时间延迟。
类型
芬尼攻击(Finney Attack)
攻击者私下挖掘一个包含另一笔交易的区块。一旦确认了另一笔交易,攻击者发布这个私下挖掘的区块,有效地进行双花,从而成功地窃取资金。
竞争攻击(Race Attack)
攻击者向网络的一部分广播另一笔交易,并同时挖掘一个不包含该交易的区块。如果另一笔交易在合法交易之前被确认,攻击者就能够成功地进行双花攻击。
Vector76攻击(Vector76 Attack)
该攻击针对依赖BIP16付款协议变体的加密货币。通过利用付款协议中的漏洞,攻击者可以执行一个双花攻击。
预防和对策
等待足够的确认
商家和个人可以在考虑交易最终性之前等待多个确认,从而降低双花风险。
增加网络算力
更高的网络算力使得攻击者更难控制大部分计算能力,从而降低了成功双花攻击的可能性。
利用共识机制
先进的共识机制,例如权益证明(PoS)或委托权益证明(DPoS),相比传统的工作量证明(PoW)机制,可以提供更强的安全性来抵御双花攻击。
实施零确认政策
一些商家和服务可能会选择接受零确认交易,但这会增加双花风险。实施要求最少确认数的政策可以缓解此风险。
对区块链生态系统的影响
信任缺失
成功的双花攻击可能会破坏受影响的区块链网络的信任,阻止商家和用户参与
财务损失
受到双花攻击的受害者在接受后来被撤销的交易时遭受财务损失,导致业务操作可能会被打乱。
声誉损害
成为双花攻击目标的区块链项目可能面临声誉损害,使其未来难以吸引投资者和用户
“挖矿”
比特币
比特币网络通过“挖矿”来生成新的比特币
比特币网络会自动调整数学问题的难度,让整个网络约每10分钟得到一个合格答案。随后比特币网络会新生成一定量的比特币作为区块奖励,奖励获得答案的人
比特币网络会自动调整数学问题的难度,让整个网络约每10分钟得到一个合格答案。随后比特币网络会新生成一定量的比特币作为区块奖励,奖励获得答案的人
实质上是用计算机解决一项复杂的数学问题,来保证比特币网络分布式记账系统的一致性
本质
挖矿的过程就是计算哈希函数,并以此来确认交易的过程
哈希函数
哈希函数值具有不可篡改、不可逆性
哈希碰撞
哈希函数输入的原始数据长度是不定长的,可以随意长度,而得出的摘要值是固定长度的。因此,存在一个可能,同样一个哈希值对应的不止一个数据串。这个现象就是哈希碰撞
共识机制
工作量证明机制(PoW)
工作量证明机制PoW就是工作越多,收益越大
这里的工作就是计算出一个满足规则的随机数,谁能最快地计算出唯一的数字,谁就能做信息公示人。
系统安全
系统监视
目标是为了评估系统性能
所需性能数据
常规性能数据
该信息可帮助识别短期趋势(如内存泄漏)。经过一两个月的数据收集后,可以求出结果的平均值并用更紧凑的格式保存这些结果。这种存档数据可帮助人们在业务增长时作出容量规划,并有助于在日后评估上述规划的效果。
比较基准的性能数据
该信息可帮助人们发现缓慢、历经长时间才发生的变化。通过将系统的当前状态与历史记录数据相比较,可以排除系统问题并调整系统。由于该信息只是定期收集的,所以不必对其进行压缩存储。
服务水平报告数据
该信息可帮助人们确保系统能满足一定的服务或性能水平,也可能会将该信息提供给并不是性能分析人员的决策者。收集和维护该数据的频率取决于特定的业务需要。
进行系统监视通常有 3 种方式。
通过系统本身提供的命令
如 UNIX/Liunx 中的 w、ps、last,Windows 中的 netstat 等
通过系统记录文件查阅系统在特定时间内的运行状态
集成命令、文件记录和可视化技术
如Windows的Perfmon 应用程序
网络攻击
SYN Flooding攻击
SYN Flood攻击利用TCP三次握手的一个漏洞向目标计算机发动攻击。
原理
攻击者向目标计算机发送TCP连接请求(SYN报文),然后对于目标返回的SYN-ACK报文不作回应。目标计算机如果没有收到攻击者的ACK回应,就会一直等待,形成半连接,直到连接超时才释放。攻击者利用这种方式发送大量TCP SYN报文,让目标计算机上生成大量的半连接,迫使其大量资源浪费在这些半连接上。目标计算机一旦资源耗尽,就会出现速度极慢、正常的用户不能接入等情况。攻击者还可以伪造SYN报文,其源地址是伪造的或者不存在的地址,向目标计算机发起攻击。SYN Flooding攻击与TCP报文的处理过程没有很大的关系。
数字证书相关应用
Kerberos
Kerberos 是一种网络认证协议,其设计目标是通过密钥系统为客户机、服务器应用程序提供强大的认证服务。
Kerberos 作为一种可信任的第三方认证服务,是通过传统的密码技术(如:共享密钥)执行认证服务的。 Kerberos也能达到单点登录的效果,即当Client通过了Kerberos server的认证后,便可以访问多个Real Server。
Kerberos可以防止偷听和重放攻击,保护数据的完整性。当客户向票据授予服务器(TGS)请求会话票据时会发送用于会话密钥加密的时间戳,以防止重放攻击;当客户使用从票据授予服务器获取的会话票据请求登录时,要附上用该会话票据加密的时间戳,以防止重放攻击。
目前常用的密钥分配方式是设立密钥分配中心KDC,KDC是大家都信任的机构,其任务就是给需要进行秘密通信的用户临时分配一个会话密钥。目前用得最多的密钥分配协议是Kerberos。Kerberos使用两个服务器:认证服务器AS、票据授权服务器TGS。在Kerberos认证系统中,用户首先向认证服务器AS申请初始票据,然后票据授权服务器(TGS)获得会话密码。B选项错误,向认证服务器AS申请初始票据而不是认证中心CA。
企业信息化战略与实施
政府信息化与电子政务
电子政务主要角色
政府
企(事)业单位
居民
公务员
电子政务的内容
政府与政府(G2G)
政府之间的互动及政府与公务员之间互动。包括基础信息的采集、处理和利用,如人口/地理/资源信息等;各级政府决策支持;政府间通信。
政府对企(事)业(G2B)
政府为企业提供的政策环境。包括产业政策、进出口、注册、纳税、工资、劳保、社保等各种规定;政府向企事业单位颁发的各种营业执照、许可证、合格证、质量认证等。
政府对居民(G2C)
政府对公民提供的服务。包括关于社区公安和水、火、天灾等与公共安全有关的信息等,还包括户口、各种证件的管理等政府提供的各种服务。
企业对政府(B2G)
企业纳税及企业为政府提供服务。包括企业参加政府各项工程的竞/投标,向政府供应各种商品和服务,企业向政府提建议,申诉
居民对政府(C2G)
个人应向政府缴纳税费和罚款及公民反馈渠道。包括个人应向政府缴纳的各种税款和费用了解民意,征求群众意见。报警服务(盗贼、医疗、急救、火警等)。
政府对公务员(G2E,Government To Employee)
政府与政府公务员即政府雇员。包括政府机构通过网络技术实现内部电子化管理(例如,OA系统等)的重要形式。
软件工程
可维护性因素
软件系统的文档(影响软件可维护性的重要因素)
用户文档
用户文档主要描述所交付系统的功能和使用方法,并不关心这些功能是怎样实现的
用户文档至少应该包括下述5方面的内容
①功能描述:说明系统能做什么。
②安装文档:说明怎样安装这个系统以及怎样使系统适应特定的硬件配置。
③使用手册:简要说明如何着手使用这个系统(通过丰富的例子说明怎样使用常用的系统功能,并说明用户操作错误是怎样恢复和重新启动的)。
④参考手册:详尽描述用户可以使用的所有系统设施以及它们的使用方法,并解释系统可能产生的各种出错信息的含义(对参考手
册最主要的要求是完整,因此通常使用形式化的描述技术)。
⑤操作员指南(如果需要有系统操作员的话):说明操作员应如何处理使用中出现的各种情况。
系统文档
系统文档是从问题定义、需求说明到验收测试计划这样一系列和系统实现有关的文档。描述系统设计、实现和测试的文档对于理解程序和维护程序来说是非常重要的。
需求工程
需求开发的结果
需求开发的结果
范围文档
用例文档
SRS
相关的分析模型
需求基线
经评审批准,这些文档就定义了开发工作的需求基线
这个基线在用户和开发人员之间就构成了软件需求的一个约定,它是需求开发和需求管理之间的桥梁
软件生命周期
软件生命周期模型又称软件开发模型(software develop model)或软件过程模型(software process model),它是从某一个特定角度提出的软件过程的简化描述
基本概念
软件过程是制作软件产品的一组活动以及结果,这些活动主要由软件人员来完成
软件活动
1、软件描述。必须定义软件功能以及使用的限制。
2、软件开发。也就是软件的设计和实现,软件工程人员制作出能满足描述的软件。
3、软件有效性验证。软件必须经过严格的验证,以保证能够满足客户的需求。
4、软件演化。改进软件以适应不断变化的需求。
软件开发环境
软件开发工具
用来辅助开发人员进行软件开发活动,对应软件开发过程的各种活动
分类
需求分析工具
需求分析工具用以辅助软件需求分析活动,辅助系统分析员从需求定义出发,生成完成的、清晰的、一致的功能规范。
分类
基于自然语言或图形描述的工具
这类工具采用分解与抽象等基本手段,对用户问题逐步求精,并在检测机制的辅助下,发现其中可能存在的问题(如一致性),通过对问题描述的修改,逐步形成能正确反映用户需求的功能规范。比如结构化分析方法采用的数据流图。
基于形式化需求定义语言的工具
基于形式化需求定义语言的工具大多以基于知识的需求智能助手的形式出现,并把人工智能技术运用于软件工程。这类工具通常具有一个知识库和一个推理机制。
其他需求分析工具
可执行规范语言以及原型技术为需求分析工具提供了另一条实现途径,这些工具通过运行可执行规范或原型,将有关的结果显示给用户和系统分析员,以便进行需求确认。
设计工具
设计工具用以辅助软件设计活动,辅助设计人员从软件功能规范出发,得到相应的设计规范。
编码与排错工具
编码工具和排错工具用以辅助程序员进行编码活动。
编码工具
辅助程序员用某种程序语言编制源程序,并对源程序进行翻译,最终转换成可执行的代码,主要有编辑程序、汇编程序、编译程序和生成程序等。
排错工具
用来辅助程序员寻找源程序中错误的性质和原因,并确定其出错的位置,主要有源代码排错程序和排错程序生成程序两类。
软件维护工具
软件维护工具辅助软件维护过程中的活动,辅助维护人员对软件代码及其文档进行各种维护活动
包含
版本控制工具
文档分析工具
开发信息库工具
逆向工程工具
再工程工具等
软件管理和软件支持工具
软件管理过程和软件支持过程往往要涉及到软件生存周期中的多个活动,软件管理和软件支持工具用来辅助管理人员和软件支持人员的管理活动和支持活动,以确保软件高质高效地完成。其中常用的工具有项目管理工具、配置管理工具、软件评价工具等。
测试工具等
软件设计
软件设计阶段的任务
体系结构设计
定义软件系统各主要部件之间的关系
数据设计
将模型转换成数据结构的定义。好的数据设计将改善程序结构和模块划分,降低过程复杂性。
接口设计(人机界面设计)
软件内部,软件和操作系统之间以及软件和人之间如何通信。
过程设计
系统结构部件转换成软件的过程描述。确定软件各个组成部分内的算法及内部数据结构,并选定某种过程的表达形式来描述各种算法。
设计模式
基本概念
设计模式是一套可以被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结,使用设计模式是为了可重用代码、让代码更容易被他人理解并且提高代码的可靠性。
设计模式的分类
根据目的分类
创建型
创建型主要用于创建对象
工厂方法模式(Factory Method)
抽象工厂模式(Abstract Factory)
提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。
建造者模式(Builder)
将一个复杂类的表示与其构造相分离,使得相同的构建过程能够得出不同的表示。
原型模式(Prototype)
用原型实例指定创建对象的类型,并且通过拷贝这个原型来创建新的对象。允许对象在不了解创建对象的确切类以及如何创建细节的情况下创建自定义对象。
单例模式(Singleton)
保证一个类只有一个实例,并提供一个访问它的全局访问点。
所以第一题答案选B抽象工厂模式
结构型
结构型主要用于处理类和对象的组合。
适配器模式(Adapter)
桥接模式(Bridge)
组合模式(Composite)
装饰模式(Decorator)
外观模式(Facade)
享元模式(Flyweight)
代理模式(Proxy)
行为型
行为型主要用于描述类或对象怎么样交互和怎样分配职责。
责任链模式(Chain of Responsibility)
命令模式(Command)
解释器模式(Interpreter)
迭代器模式(Iterator)
中介者模式(Mediator)
备忘录模式(Memento)
观察者模式(Observer)
状态模式(State)
策略模式(Stratege)
模板方法模式(Template Method)
访问者模式(Visitor)
根据作用范围分类
类模式
类模式用于处理类和子类的关系,这种关系通过继承建立,在编译时就确定了,是一种静态关系。
对象模式
对象模式处理对象间的关系,具有动态关系。
开发模型
瀑布模型
最早使用的软件生存周期模型之一,由于这个模型描述了软件生存的一些基本过程活动,所以它被称为软件生存周期模型
这些活动从一个阶段到另一个阶段逐次下降,形式上很像瀑布。瀑布模型的特点是因果关系紧密相连,前一个阶段工作的结果是后一个阶段工作的输入。
构件组装模型
通过重用来提高软件的可靠性和易维护性,程序在进行修改时产生较少的副作用
一般开发过程为
设计构件组装->建立构件库->构建应用软件->测试与发布
构件组装模型的优点
(1)构件的自包容性让系统的扩展变得更加容易。
(2)设计良好的构件更容易被重用,降低软件开发成本。
(3)构件的粒度较整个系统更小,因此安排开发任务更加灵活,可以将开发团队分成若干组,并行地独立开发构件。
迭代式或渐进式模型
螺旋模型
是在快速原型的基础上扩展而成的
这个模型把整个软件开发流程分成多个阶段,每个阶段都由4部分组成
①目标设定
为该项目进行需求分析,定义和确定这一个阶段的专门目标,指定对过程和产品的约束,并且制定详细的管理计划。
②风险分析
对可选方案进行风险识别和详细分析,制定解决办法,采取有效的措施避免这些风险。
③开发和有效性验证
风险评估后,可以为系统选择开发模型,并且进行原型开发,即开发软件产品。
④评审
对项目进行评审,以确定是否需要进入螺旋线的下一次回路,如果决定继续,就要制定下一阶段计划。
喷泉模型
统一开发过程
敏捷开发方法
敏捷开发是一种以人为核心、迭代、循序渐进的开发方法
在敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。敏捷方法特别强调相关人员之间的信息交流。因为项目失败的原因最终都可以追溯到信息没有及时准确地传递到应该接受它的人。特别提倡直接的面对面交流,交流成本远远低于文档的交流。按照高内聚、松散耦合的原则 将项目划分为若干个小组,以增加沟通。
特性
(1)敏捷开发方法是“适应性”(Adaptive)而非“预设性”(Predictive)。
(2)敏捷开发方法是“面向人”(people oriented)而非“面向过程”(process oriented)。
变换模型
以形式化为基础
软件测试
自动化测试
自动化测试工具
主要使用脚本技术来生成测试用例,测试脚本不仅可以在功能测试上模拟用户的操作,比较分析,而且可以用在性能测试、负载测试上,虚拟用户可以同时进行相同的、不同的操作,给被测软件施加足够的数据和操作,检查系统的响应速度和数据吞吐能力。
测试脚本分类
线性脚本
是录制手工执行的测试用例得到的脚本,这种脚本包含所有的击键、移动、输入数据等,所有录制的测试用例都可以得到完整的回放。
结构化脚本
类似于结构化程序设计,具有各种逻辑结构、函数调用功能。
共享脚本
共享脚本是指可以被多个测试用例使用的脚本,也允许其他脚本调用。共享脚本可以在不同主机、不同系统之间共享,也可以在同一主机、同一系统之间共享。
数据驱动脚本
将测试输入存储在独立的(数据)文件中,而不是存储在脚本中。可以针对不同数据输入实现多个测试用例.
关键字驱动脚本(数据驱动脚本的逻辑扩展)
它将数据文件变成测试用例的描述,采用一些关键字指定要执行的任务。
软件方法学
软件方法学是软件开发全过程的指导原则与方法体系。其另一种含义是以软件方法为研究对象的学科。从开发风范上看,软件方法有自顶向下的开发方法、自底向上的开发方法。在实际软件开发中,大都是自顶向下与自底向上两种方法的结合,只不过是以何者为主而已。自顶向下是指将一个大问题分化成多个可以解决的小问题,然后逐一进行解决。每个问题都会有一个模块去解决它,且每个问题包括抽象步骤和具体步骤。形式化方法是指釆用严格的数学方法,使用形式化规约语言来精确定义软件系统。非形式化的开发方法是通过自然语言、图形或表格描述软件系统的行为和特性,然后基于这些描述进行设计和开发,而形式化开发则是基于数学的方式描述、开发和验证系统。
软件质量
软件质量属性通常需要采用特定的设计策略实现,并且设计策略会对其他的质量属性产生影响
心跳机制策略能提高该系统的可用性,优先级队列策略能够提高该系统的性能,限制访问策略能够提髙该系统的安全性。
项目管理
其它
盈亏平衡点计算问题
盈亏平衡点
盈亏平衡点也称为零利润点或保本点,是全部销售收入等于全部成本时的产量
当销售收入高于盈亏平衡点时,表示企业是盈利的状态;当销售收入低于盈亏平衡点时,表示企业是亏损的状态。
计算公式
固定成本+单位可变成本*销售数量+单位上税成本*销售数量=单位销售价格*销售数量
单位可变成本=可变成本总额/总销售额*单位价格
单位可变成本=可变成本总额/总销售额*单位价格
通讯系统和网络架构
heo MandeI在关于界而设计的著作中,提出了3条“黄金规则”
①置用户于控制之下;
②减少用户的记忆负担;
③保持界面一致性。
存储方式
开放系统的直连式存储(Direct-Attached Storage,DAS)
在服务器上外挂了一组大容量硬盘,存储设备与服务器主机之间采用SCSI通道连接,带宽为10MB/s、20MB/s、40MB/s和80MB/s等。直连式存储直接将存储设备连接到服务器上,这种方法难以扩展存储容量,而且不支持数据容错功能,当服务器出现异常时会造成数据丢失。
网络接入存储(Network Attached Storage,NAS)
是将存储设备连接到现有的网络上,提供数据存储和文件访问服务的设备。NAS服务器是在专用主机上安装简化了的瘦操作系统(只具有访问权限控制、数据保护和恢复等功能)的文件服务器。NAS服务器内置了与网络连接所需要的协议,可以直接联网,具有权限的用户都可以通过网络访问NAS服务器中的文件。
存储区域网络(Storage Area Network,SAN)
是一种连接存储设备和存储管理子系统的专用网络,专门提供数据存储和管理功能。SAN可以被看作是负责数据传输的后端网络,而前端网络(或称为数据网络)则负责正常的TCP/IP传输。也可以把SAN看作是通过特定的互连方式连接的若干台存储服务器组成的单独的数据网络,提供企业级的数据存储服务。
FTP协议
占用两个标准的端口号:20和21,其中20为数据口,21为控制口。
TLS ((Transport Layer Security Protocol)全称为传输层安全协议
用于在两个通信应用程序之间提供保密性和数据完整性,通常位于某个可靠的传输协议(例如TCP)上面,与具体的应用无关。所以—般把TLS协议归为传输层安全协议
算法
计算机基础
CPU的频率
主频=外频*倍频
校验码
海明码
数据位n,校验位k关系满足
n+k+1<=2^k
n+k+1<=2^k
循环冗余校验(Cyclic Redundancy Check, CRC)
是一种高效的数据传输差错检测技术,广泛应用于网络通信(如以太网、Wi-Fi)、存储系统(硬盘、RAID)及文件传输协议(ZIP、RAR)中。其核心思想是通过多项式除法生成校验码,接收方通过校验码验证数据完整性。
计算步骤
计算过程
如果余数位数小于k,则需要在余数的左边补充对应个数的0,将余数的位数等于k
操作系统
十六进制到二进制是直接对应(每1位十六进制数对应4位二进制数)
1B1AH每一位的对应关系
1 -> 0001
B -> 1011
1 -> 0001
A -> 1010
1 -> 0001
B -> 1011
1 -> 0001
A -> 1010
1k=1024B
1024=2^10
页逻辑地址转页物理地址
分页地址结构=页头地址+数据地址
4k大小的页面=4*2^10=2^2*2^10=2^12,其逻辑地址为1B1AH,即这个页占12位,1B1AH为十六位,则该页地址为 4位页头+12位数据,又因为十六进制每一位都对应一个四位的二进制,则1B1AH中最头部的1则是页头地址(页号),找到1对应的物理块号,再拼接剩下的B1AH则为该页的物理地址,如果页号1对应5,则转换后的物理地址为5B1AH
死锁
银行家算法(避免死锁的算法)
在进程已经获得部分资源的情况下,应该现将资源分配给当前所需最少资源的那一个进程,确保该进程可以正常执行,待该进程释放资源后,再次将当前拥有资源分配给当下所需资源最少得进程,以此往复,则可以确保所有进程最终都能正常执行
进程数和资源数的关系
如果系统有n个进程,每个进程需要k个资源(最大需求),那么为了避免死锁,资源总数至少为 n*(k-1) + 1。这样,即使每个进程都分配了k-1个资源(只差一个资源就能完成),那么至少还有一个资源可以分配给其中一个进程,使其完成并释放所有资源,从而让其他进程也能完成。
RAID的容量
RAID6
(N-2)*最低容量
RAID5
(N-1)*最低容量
环路复杂度计算
环形复杂度V(G)=E-N+2,其中,E是流图中边的条数,N是结点数。
V(G) = P + 1
其中 P 表示流图中的判定节点数量(即条件判断节点,通常用菱形表示)
伏格尔法
每一行或者每一列用次小值减去最小值,差额最大的优先选择它的最小值来计算
奈奎斯特(Nyquist)定律
由电子工程师哈里·奈奎斯特(Harry Nyquist)在1928年提出。它解决了模拟信号数字化时的采样精度问题,为现代数字通信系统奠定了基石
采样定理
采样定理:奈奎斯特采样定理指出,为了无失真地重建一个频率最高为
B 赫兹的信号,采样频率必须大于或等于
2B 赫兹。这意味着,如果采样频率低于信号最高频率的两倍,就会发生混叠现象,导致信号失真。
B 赫兹的信号,采样频率必须大于或等于
2B 赫兹。这意味着,如果采样频率低于信号最高频率的两倍,就会发生混叠现象,导致信号失真。
信道容量
奈奎斯特定理还描述了在无噪声信道中,信号的最大传输速率。对于带宽为 B赫兹的信道,最大数据传输速率 R max可以表示为:
R max =2B⋅log2 (M)
R max =2B⋅log2 (M)
在无噪声的理想条件下,信道的最大数据传输率(码元速率)公式为:
C =2 * B * log 2(V)
C:最大传输速率
B:信道带宽
V:信号状态数
C =2 * B * log 2(V)
C:最大传输速率
B:信道带宽
V:信号状态数
字典
计算机基础
处理器CPU
运算器
ALU
算术逻辑单元
AC
累加寄存器
DR
数据缓冲寄存器
PSW / PSW2
状态条件寄存器
控制器
IR
指令寄存器
PC
程序计数器
AR
地址寄存器
指令译码器
图形寄存器GPU
信号处理器DSP
现场可编程逻辑门阵列FPGA
指令系统
指令集
CISC
复杂指令集
RISC
精简指令集
存储器的分类
RAM
随机存取存储器
SRAM
静态随机存储器,用于缓存Cache
DRAM
动态随机存储器,用于主存
ROM
只读存储器
ROM
固定只读存储器
PROM
可编程只读存储器
EPROM
可擦除可编程只读存储器
EEPROM
电擦除可擦除可编程存储器
闪存
闪速存储器:例如U盘
cache
高速缓存
磁盘
Bus
总线
数据库
data
数据
DataBase(DB)
数据库
DataBase System(DBS)
数据库系统
DataBase Management System(DBMS)
数据库管理系统
Data Definition Language(DDL)
数据定义
Data Manipulation Language(DML)
数据库操作
分类
RDBS
关系数据库系统(Relation DataBase System)
OODBS
面向对象的数据库系统(Object-Oriented DataBase System)
ORDBS
对象关系数据库系统(Object-Oriented Relation DataBase System)
网络存储技术
DAS
直连式存储
NAS
网络链接存储
SAN
存储区域网络
信息物理系统(CPS)
物联网架构设计
信息物理系统(CPS)
通过集成先进的感知、计算、通信、控制等信息技术和自动控制技术,构建了物理空间与信息空间中人、机、物、环境、信息等要素相互映射、适时交互、高效协同的复杂系统,实现系统内资源配置和运行的按需响应、快速迭代、动态优化。
0 条评论
下一页