系统架构师----笔记

计算机技术与软件专业技术资格(水平)考试(以下简称计算机软件资格考试),是国家人力资源和社会保障部工业和信息化部联合组织实施的国家级考试,其目的是科学、公正地对全国计算机与软件专业技术人员进行职业资格和专业技术资格认定、专业技术水平测试。(见国人部发[2003]39号文件)

参加计算机软件资格考试并取得相应级别的资格证书,是各用人单位聘用计算机技术与软件专业工程师系列职务的前提。计算机软件资格考试,与会计、经济师、税务师、律师、建筑师等资格考试一样,属于国家专业技术资格考试,并纳入全国专业技术人员职业资格证书制度统一规划。

根据人事部、信息产业部文件(国人部发[2003]39号),计算机与软件考试纳入全国专业技术人员职业资格证书制度的统一规划。通过考试获得证书的人员,表明其已具备从事相应专业岗位工作的水平和能力,用人单位可根据工作需要从获得证书的人员中择优聘任相应专业技术职务(技术员、助理工程师、工程师、高级工程师)。计算机专业技术资格(水平)实施全国统一考试后,不再进行计算机技术与软件相应专业和级别的专业技术职务任职资格评审工作。因此,这种考试既是职业资格考试,又是职称资格考试。

同时,这种考试还具有水平考试性质,报考任何级别不需要学历、资历条件,只要达到相应的技术水平就可以报考相应的级别。部分级别的考试已与日本、韩国相应级别的考试互认,以后还将进一步扩大考试互认的级别以及互认的国家。

考试合格者将颁发由中华人民共和国人事部中华人民共和国信息产业部用印的计算机技术与软件专业技术资格(水平)证书。

       基于上述对于软考的定义,心中有股冲动,我想要征服它,几个月来,我在利用下班时间来学习高级的系统架构师,也是高级比较难考的一个考试了,一下是我学习的一些记录,来迫使自己多来CSDN和大牛一起学习技能,提升自己,共同进步,笔记中有什么错误,请谅解,并在留言区进行指正,不胜感激

 

 

 

 

 

综合知识

信息的概念:

香农:信息就是不确定性的减少

维纳:信息就是信息,既不是物质,也不是能量

信息的特点:

客观性:也叫事实性,不符合事实的信息学不仅没有价值,还有副作用

动态性:信息随着时间的变化而变化

层次性:信息可分为战略级、管理级和操作级

传递性:信息在时间上的传递即使存储,所以相对数据有滞后性

扩压性:信息和实物不同,它卡哇伊扩散也可以压缩

分享性:信息可以分享,这和物质不同,并且信息分享具有非零性

 

信息化的概念:

信息化是从工业社会到信息社会的演进与变革,信息化的主体是全体社会成员,时域是一个长期过程,空域是经济和社会的一切领域,手段是先进社会生产工具

信息化对组织的意义:

组织的结构创新:如虚拟企业、虚拟社区

组织的管理创新:实施电子政务、建立电子政府、建立电子社区提升管理水平

组织经营创新:利用信息化将经营和管理融为一体

造就信息化的人才队伍:三类人才(IT专业人才,业务人才,专家型人才)

 

信息系统的生命周期:

立项阶段(企业全局、形成概念、需求分析)-->开发阶段-->运维阶段(通过验收、移交之后)-->消亡阶段(更新改造、功能扩展)

其中开发阶段包括:总体规划-->系统分析-->系统设计-->系统实施-->系统验收

 

信息系统战略规划-方法:

第一阶段:以数据处理为核心,围绕职能部门需求

企业系统规划法(BSP):自上而下识别系统目标,自下而上设计信息系统,对组织机构的变动具有适应性

关键成功因素法(CSF):找实现目标的关键信息集合,从而确定开发有限次序

战略集合转化法(SST):把战略目标看成“信息集合”,把战略目标转变成信息系统的战略目标

第二阶段:以企业内部MIS为核心围绕企业整体需求

战略数据规划法(SDP)、信息工程法(IE)、战略栅格法(SG)

第三阶段:综合考虑企业内外环境,以集成为核心,围绕企业战略需求

价值链分析法(VCA)、战略一致性模型(SAM)

 

企业信息化与电子商务-->商业智能

需求分析、数据仓库建立、数据抽取、建立BI分析报表、用户培训和数据模拟测试、系统改进和完善

数据仓库、数据挖掘、OLAP

 

数据仓库的特点:面向主题、集成的、相对稳定的、反应历史变化

 

数据挖掘 方法:决策树、神经网络、遗传算法、关联规则挖掘算法 分类:关联分析、序列模式分析、分类分析、聚类分析

 

企业门户:

企业网站:注重单向信息传递,缺互动

企业信息门户:把各种应用系统。数据资源和互联网资源统一集成到企业门户之下

企业知识门户:企业网站的基础上增加知识性内容

企业应用门区:实际上是对企业业务流程的几册很难过,它以业务流程和企业应用为核心,把也去流程中功能不同的应用模块通过门户技术集成在一起

企业通用门户:鸡以上四者于一身

 

信息化的三流:信息流。资金流。物流

 

电子商务的形式:B2C、B2B、C2C、O2O(线上对线下)

 

软件开发方法:

结构化:用户至上,严格区分工作阶段,每个阶段有任务和成果,强调系统开发过程的整体性和全局性,系统开发过程工程化,文档资料标准化,自顶向下,逐步求精

原型法:适用于需求不明确的开发,包括抛弃型原型和进化型原型

面向对象方法:更好的复用,关键在于建立一个全面、合理、统一的模型,分析、设计、实现三个阶段,界限不明确

面向服务的方法:SO方法有三个主要的抽象级别,是操作、服务、业务流程,SOAD分为三个层次,是基础设计层、应用结构层、业务组织层,服务建模是分为服务发现、服务规约、服务实现

 

软件开发模型:

瀑布模型:软件计划、需求分析、软件设计、程序编码、软件测试。运行维护

演化模型:

增量模型:每一个增量均发布一个可操作的产品

螺旋模型:指定计划、风险分析、实施工程、客户评估

快速原型模型

喷泉模型:迭代,无间隙

V模型

统一过程:初始(确定项目范围和边界)、细化(建立软件架构基础)、构建(构建组装与测试)、交付(制作发布版本)

构件组装模型:需求分析和定义、软件架构设计、构件库建立、应用软件构建、测试和发布

敏捷方法:自适应开发、水晶方法、特性驱动开发、极限编程

 

逆向工程

实现级:包括程序的抽象语法书、符号表、过程的设计表示

结构级:包括反应程序分量之间项目依赖关系的信息。例如调用图、结构图、程序和数据结构

功能级:包括反应程序段功能及程序段之间关系的信息

领域级:包括反应程序分量或者程序实体与应用领域概念之间对应关系的信息

 

需求工程:软件需求是指用户对系统在功能、行为、性能、设计约束等方卖弄的期望,用户解决问题或达到目标所需的条件或能力,是系统或系统不见要满足合同。标准。规范和其他正式规定文档所需具有的条件或能力,以及反映这些条件或能力的文档说明

 

需求开发:需求获取、需求分析、需求定义、需求验证

需求管理:变更控制、版本控制、需求跟踪、需求状态跟踪

需求管理支持需求开发

 

软件需求获取方法:手机资料、联合讨论会、用户访谈、书面调查、现场观摩、参加业务实践、阅读历史文档、抽样调查

软件需求的分类:业务需求、用户需求、系统需求、功能需求、性能需求、设计约束、基本需求、期望需求、兴奋需求

 

UML

结构图:类图、对象图、包图、结合结构图、构建图、部署图、制品图

行为图:用例图、顺序图、通信图、定时图、状态图、活动图、交互图

 

4+1视图

逻辑视图(系统分析和设计人员)-->实现视图(程序员)-->部署视图(系统弄个和网络工程师)-->进程视图(系统集成人员)

用例视图(最终用户)

 

用例图:描述一组用例、参与者及它们之间的关系。用户角度描述系统功能;参与者是外部因素;用例是功能单元

关系包括:包含关系、扩展关系、泛化关系

 

用例建模流程:识别参与者、合并需求获得用例、细化用例描述、调整用例模型

 

类和对象的关系:依赖关系、泛化关系、聚合关系、组合关系、实现关系

 

人机界面设计:置于用户控制之下、减少用户记忆负担、保持界面的一致性

结构化设计:保持模块适中、尽可能减少调用的深度、多扇入,少扇出、单入口,单出口、模块的作用域应该在模块之内、功能应该是可预测的

 

面向对象设计原则:

单一职责:设计谜底单一的类

开放-封闭:对扩展开放,对修改封闭

李氏替换:子类可以替换父类

依赖倒置:要依赖于抽象,而不是具体实现;针对接口编程,不要针对实现编程

接口隔离:使用多个专门的接口比使用单一的总接口要好

组合重用:要尽量使用组合,而不是集成关系达到重用目的

迪米特:一个对象应当对其他对象有尽可能少的了解

 

设计模式:

架构模式:软件设计中的高层决策,例如使用C/S结构就属于架构模式,架构模式反应了开发软件系统过程中所做的基本设计决策

设计模式:主要关注软件系统的设计,预聚体的实现语言无关

惯用法:是最底层的模式,关注软件系统的设计与实现,实现时通过某种特定的程序设计语言来描述构建与构建之间的关系。每种编程语言都有它自己特定的模式

 

设计模式分类:

创建性模式:

工厂方法(factory)--动态生成对象

抽象工厂(abstract factory)--生产系列对象

原型(prototype)-克隆对象

单例(singleton)--单实例

构建器(builder)--复杂对象构建

结构型模式:

适配器(adapter)--转换接口

桥接(bridge)--继承树拆分

组合(composite)--树形目录结构

装饰(decorator)--附加职责

外观(facade)--对外统一接口

享元(flyweight)--汉字编码

代理(proxy)--快捷方式

行为型模式:

职责链(chain of resposibility)--传递职责

命令(command)--日志记录,可撤销

解释器(interpreter)--虚拟机机制

迭代器(iterator)--数据集

中介者(mediator)--不直接引用

备忘录(memento)、观察者(observer)--联动

状态(state)--状态变成类

策略(strategy)--多方案切换

模板方法(template method)、访问者(visitor)

 

软件测试--测试类型

动态测试:黑盒测试、白盒测试、灰盒测试

静态测试:桌前审查、代码审查、代码走查

 

面向对象的测试:算法层(单元测试)、类层(模块测试)、模板层(集成测试)。系统层(系统俄式)

 

软件调试:

方法:

蛮力法:主要思想是“通过计算机找错”,低效,耗时

回溯法:从出错处人工沿控制流程往回追踪,直至发现出错的根源。复杂程序由于回溯路径多,难以实施

原因排除法:主要思想是演绎和归纳,用二分法实现

调试和测试区别:

测试找出存在的错误,调试定位错误并修改错误

调试时测试后的活动

测试从一个已知的条件开始,使用预先定义的过程,有预知的结果;调试从一个位置的条件开始,结束的过程不可预计

测试过程可以事先设计,进度可以事先确定;调试不能描述过程或持续时间

 

软件架构概念:

软件架构风格是描述某一特定领域中系统组织方式的惯用模式。架构风格定义一个系统家族,即一个体系结构定义一个词汇表和一组约束。词汇表中暴行一些构建和连接类型,而这租约束支出系统是如何将这些构建和连接件组合起来的。

软件架构为软件系统提供给了一个结构、行为和属性的高级抽象,有构成系统的元素描述,这些元素的相互作用,指导元素集成的模式以及这些模式的约束组成

软件架构师项目干系人进行交流的手段,明确了对系统实现的约束条件,决定了开发和维护组织的组织结构,制约着系统的质量属性

软件架构使推理和控制的更改更加简单,有助于循环渐进的原型设计,可以作为培训的基础

软件架构是可传递复用的模型,通过研究软件架构可能预测软件的质量

 

软件架构建模:

结构模型:以架构的构建、连接件和其他概念来刻画结构

框架模型:不太侧重描述结构的细节而更侧重于整体的结构

动态模型:系统的”大颗粒“的行为性质

过程模型:构建系统的步骤和过程

功能模型:”由一组功能构件按层次组成,下层向上层提供服务

 

架构描述语言(ADL):支持构建、连接子及其配置的描述语言。ADL对链接子的重视成为区分ADL和其他建模语言的重要特征之一。

ADL包括:UniCon,Rapide,Darwin,Wright,C2 SADL,Acme,xADL,XYZ/ADL,A BC/ADL等

 

软件架构风格:

数据流风格:批处理序列、管道-过滤器

调用/返回风格:主程序/子程序、面向对象、层次结构

独立构建风格:进程通信、事件驱动(隐式调用)

虚拟机风格:解释器、基于规则的系统

仓库风格:数据库系统、超文本系统、黑板系统

 

批处理序列:构建为一系列固定顺序的计算单元,构件之间只通过数据传递交互。每个处理步骤是一个独立的程序,每一步必须在其前一步结束后才能开始,数据必须是完整的,以整体的方式传递

管道-过滤器:每个构件都有一组输入和输出,构建读输入的数据流,经过内部处理,然后产生输出数据流。早期的编译器就是采用这种架构。要一步一步处理的,均可采用此架构风格

 

主程序/子程序:单线程控制,把问题划分为若干个处理步骤,构建即为主程序和子程序,子程序通常可合并成为模块。通过调用作为交互机制,即充当连接件的角色。调用关系具有层次性,其语义逻辑表现为主程序的正确性取决于它调用的子程序的正确性

面向对象:构件是对象,对象是抽象数据类型的实例。在抽象数据类型中,数据的表示和它们的相应操作被封装起来,对象的行为体香在其接受和请求的动作。连接件即是对象间交互的方式,对象是通过函数和过程的调用来交互的

层次结构:构件组织成一个层次结构,连接件通过决定层间如何交互的协议来定义。每层为上一层提供服务,使用下一层的服务,只能见到与自己领接的层。通过层次结构,可以将大的问题分解为若干个渐进的小问题逐步解决,可以隐藏问题的复杂度。修改某一层,最多影响其相邻的两层

 

层次结构的的优点:

这种风格支持基于可增加抽象层的设计,允许将一个复杂问题分解成一个增量步骤序列的实现

不同的层次处于不同上午抽象级别:越靠近底层,抽象级别越高;越靠近顶层,抽象级别越低

 

由于每一层最多只影响两层,同事只要给相邻层提供相同的接口,允许每层用不同的方法实现,同样为软件复用提供了强大的支持

 

缺点:

并不是每个系统都可以很容易地划分为分层的模式

很难找到一个合适的、正确的层次抽象方法

 

进程通行:构件是独立的过程,连接件是消息传递。构建通常是命名过程,消息传递的方式可以使点对点、异步火同步方式,以及远程过程调用等

事件驱动(隐式调用):构建不直接调用一个过程,而是触发或广播一个或多个事件。构建中的过程在一个或多个事件中注册,当某个时间被触发时,系统自动调用在这个事件中注册的所有过程。一个时间的触发就导致了另一个模块中的过程调用。这种风格中的构件是匿名的过程,它们之间交互的连接件往往是以过程之间的隐式调用来实现的。

优点:是为了软件复用提供了强大的支持,为构件的维护和演化提供了方便

缺点:构件放弃了对系统计算的控制

 

解释器:通常包括一个完成解释工作的解释引擎、一个包含将被解释的代码的存储区、一个记录解释引擎当前工作状态的数据结构,以及一个记录源代码被解释执行的进度的数据结构。具有解释器风格的原件中含有一个虚拟机,可以仿真硬件的执行过程和一些关键应用,其缺点是执行效率低

基于规则的系统:包括规则集、规则解释器、规则/数据选择器和工作内存,一般用在人工智能领域和DSS中

 

数据库系统:构件主要有两大类,一类是中央共享数据源,保存当前系统的数据状态;另一类是多个独立处理单元,处理党员对数据元素进行操作

黑板系统:包括知识源、黑板和控制三部分。知识源包括若干独立计算的不同单元,提供解决问题的知识。知识源响应黑板的变化,也只修改黑板;黑板是一个全局数据库,包含问题域解空间的全部状态,是知识源相互作用的唯一媒介;知识源响应是通过黑板状态的变化来控制的。黑板系统通常应用在对于解决问题没有确定性算法的软件中(信号处理、问题规划和编译器优化等)

超文本系统:构件以王庄链接方式相互连接,用户可以在构件之间进行按照人类的联想思维方式任意跳转到相关构件。超文本是一种非线性的网状信息组织方法,它以节点为基本单位,链作为节点之间的联想方式关联。超文本系统通常应用在互联网领域

 

现代集成编译环境一般采用仓库风格

 

闭环控制架构:当软件被用来操作一个物理系统时,软件与硬件之间可以粗略地表示为一个反馈循环,这个反馈循环通过接受一定的输入,确定一系列的输出,最终使环境达到一个新的状态。适合于嵌入式系统,涉及连续的动作与状态

 

两层C/S架构:开发成本较,客户端程序设计复杂,信息内容和形式单一,用户界面风格不一,软件移植困难,软件维护和升级困难,新技术不能轻易应用

 

三层B/S架构:缺乏对动态页面的支持能力,没有集成有效的数据库处理功能,安全性难以控制,在数据查询等响应速度上,要远远低于C/S架构,数据提交一般以页面为单位,数据的动态交互性步枪,不利于OLTP应用

 

富互联网应用(RIA):结合了C/S架构反应速度快,交互性强的优点,以及B/S架构传播范围广以及容易传播的特性,简化并改进了B/S架构的用户交互,数据能够被缓冲到客户端,从而可以实现一个比基于HTML的响应速度更快且数据往返于服务器的次数更少的用户界面

 

基于服务的架构(SOA):服务构件粗粒度,传统构件细粒度居多,服务构件的接口是标准的,主要是WSDL接口,传统构件常以具体API形式出现,服务构件的实现与语言无关,传统构件绑定某种特定语言,服务构件可以用过构件容器提供QoS的服务,传统构件完全由程序代码直接控制

 

SOA关键技术:

发现服务:UDDI,DISCO

描述服务:WSDL,XML Schema

消息格式层:SOAP,REST

编码格式层:XML(DOM,SAX)

传输协议层:HTTP,TCP/IP,SMTP

 

SOA--关键技术--XML:

实现不同数据的集成,使用多种应用环境,客户端数据处理与计算,数据显示多样化,局部数更新,Web Service,数据集成,软件架构描述,软件架构演化,RIA,XML数据库

 

SOA--关键技术--REST:

HTTP+XML进行基于Web通信技术,简单性,缺少严格配置文件,只支持几个操作(POST,GET,PUT,DELETE),强调信息本身,称为资源

网络上的所有事物都被抽象为资源,每个资源对应一个唯一的资源标识,通过调用的连接器接口对资源进行操作,对资源的各种操作不会改变资源标识,所有操作都是无状态的

 

SOA--关键技术--UDDI&DISCO:

UDDI数据库模型:一个用于描述企业和夫妻的XML Schema

UDDI API:一组用于查找或发布UDDI数据的方法,基于SOAP

UDDI注册服务:一种基于设施,对应着服务注册中心的角色

 

DISCO可以定义一个文档格式和询问算法,发现给定服务器上公开的服务

DISCO能够发现内阁服务的功能(通过文档),以及如何与它进行交互(通过WSDL)

如果要使用DISCO发布一个已部署的服务,只需要创建一个.disco文件

 

SOA的实现方式--Web Service:注册中心(服务描述)<--发布-->服务提供着(服务,服务描述)<--绑定-->服务请求者<--查找-->注册中心

 

SOA的实现方式--ESB:

提供位置透明性的消息路由和寻址服务,提供服务注册和命名管理功能,支持多种的消息传递泛型,支持多种可以广泛使用的传输协议,支持多种数据格式及其项目转换,提供日志和监控功能

 

SAO的实现方式--服务注册:

服务注册:应用开发者(服务提供者)向注册表公布服务的功能

服务位置:服务使用者(服务应用开发者),帮助他们查询注册服务,寻找符合自身要求的服务

服务绑定:服务使用者利用检索到的服务接口来编写代码,所编写的代码将与注册的服务绑定过,调用注册的服务,以及与它们实现互动

 

 

微服务:就是很小的服务,所以他不属于面向服务架构的一种,它是一种架构模式,它提倡将单一应用程序划分成一组小的服务,服务之间互相协调,互相配合,为用户提供最终价值。每个服务运行在其独立的进程中,服务与服务之间采用轻量级的通信机制互相沟通(通常是基于HTTP协议的RESTful API)。每个服务都围绕着具体业务进行构建,并且嫩巩固独立的部署到生产环境,类生产环境等。另外,应当尽量避免统一的,集中式的服务管理机制,对具体的一个服务而言,应根据业务上下文选择合适的语言,工具对其进行构建。

特点:小,且专注于做一件事,轻量级的通信机制,松耦合,独立部署

优势:技术异构性,弹性,扩展,简化部署,与组织结构相匹配,可组合性,对可替代性的优化

面临挑战:分布式系统的复杂度,运维成本,部署自动化,DevOps与组织结构,服务间依赖测试,服务间依赖管理

 

微服务 SOA

能拆分就拆分 是整体的,服务能放一起都放一起

纵向业务划分 是水平分多层

由单一组织负责 按层级划分不同部门的组织负责

细粒度 粗粒度

两句话可以解释明白 几百字只相当于SOA的目录

独立的子公司 类似大公司里卖弄划分了一些业务单元

组件小 存在较复杂的组件

业务逻辑存在于每一个服务中 业务逻辑横跨多个业务领域

使用通过轻量级的通信方式 企业服务总线(ESB)充当了服务之间通信的角色

 

微服务架构实现 SOA实现

团队及,自底向上 秋娥及,自顶向下

一个系统被拆分成多个服务,细粒度 服务由多个子系统组成,粒度大

无集成式总线,松散的服务架构 企业服务总线,集中式的服务架构

集成方式简单(HTTP/REST/JSON) 集成方式复杂(ESB/WS/SOAP)

服务能独立部署 单块架构系统,相互依赖,部署复杂

 

架构描述语言(ADL):它在底层予以模型的 支持下,为软件系统的概念体系结构建模提供了具体语法和概念框架。基于底层语义的工具为体系结构的表示,分析,演化,细化设计过程等提供支持。

 

ADL三个基本要素:

构件:计算或数据存储单元

连接件:用于构件之间交互建模的体系结构构造快及其支配这些交互的规则

架构配置:描述体系结构的构件与连接件的连接图

 

架构描述语言:

Aesop:支持体系结构风格的应用

MetaH:为设计者提供了关于实时电子控制软件系统的设计指导

C2:支持基于消息传递风格的用户界面系统的描述

Rapide:支持体系接哦古设计的模拟并提供了分析模拟结构的工具

SADL:提供了关于体系结构加细的形式话基础

Unicon:支持异构的构件和连接类型并提供了关于体系结构的高层编译器

Wright:支持体系结构构件之间交互的说明和分析

 

基于架构的软件设计(ABSD):

是架构驱动,即强调由业务,质量和功能需求的组合驱动架构设计,设计活动可以从项目总体功能框架明确就开始,这意味着需求获取和分析还没有完成,就开始了软件设计

 

ABSD有三个基础:

1)功能分解,使用已有的基于模块的内聚和耦合技术。2)通过选择架构风格来实现质量和业务需求。3)软件模板的使用,软件模板利用了一些软件系统的结构

 

ABSD方法是递归的,且迭代的每一个步骤都是清晰地定义的。因此,不管设计是否完成,架构总是清晰的,这有助于降低架构设计的随意性

 

基于架构的软件开发方法----开发过程:架构需求,架构设计,架构文档化,架构复审,架构实现,架构演化

架构需求过程:需求获取,生成类图,对类进行分组,把类打包成构件,需求评审

架构设计过程:提出架构模式,映射构件,分析构件相互作用,生产架构,设计评审

架构实现过程:复审后的文档化架构,分析与设计,构件实现,构件组装,系统测试,架构演化

架构演化过程:需求变化归类,脚骨演化计划,构件变动,更新构件的相互作用,构件组装与测试,技术评审,演化后的架构

 

软件架构评估--质量属性

性能:系统的响应能力,即要经过多长时间才能对某个事件做出响应,或者在某段时间内系统所能处理的事件个数

代表参数:响应时间,吞吐量 设计策略:有限级队列,资源调度

 

可靠性:软件系统在应用或系统错误面前,在意外或错误使用的情况下维持软件系统的功能性的基本能力

代表参数:MTTF,MTBF 设计策略:冗余,心跳线

 

可用性:系统能够正常运行的时间比例

代表参数:故障间隔时间 荣誉,心跳线

 

安全性:系统在想合法用户提供服务的同时能够阻止非授权用户使用服务的能力

设计策略:追踪审计,信息隐藏

 

可修改行:能够快速地以较高的性能价格比对系统进行变更后的能力

 

功能性:系统给所能完成期望的工作能力

 

可变性”:体系结构阔从或变更而成为新体系结构的能力

 

互操作性:作为系统组成部分的软件不是独立的,经常与其他系统或自身环境相互作用

 

 

软件脚骨评估--基于场景的方式:脚骨权衡分析法(ATAM),软件架构分析法(SAAM),成本效益分析法(CBAM)

 

中间件技术--概念:是一种独立的系统软件或服务程序,可以帮助分布式应用 软件在不同技术之间共享资源

 

主要的中间件:远程过程调用,对象请求代理,远程方法调用,面向消息的中间件,事物处理监控器

 

 

负载均衡技术:

基于特定软件的负载均衡(HTTP重定向)(应用层)

反向代理负载均衡(应用层)

基于DNS的负载均衡(传输层)

基于NAT的负载均衡(传输层)

混合型负载均衡

 

负载均衡的静态算法:轮转算法,加权轮转算法,源地址哈希散列算法目标地址哈希散列算法,随机算法

负载均衡动态算法:最小连接数算法,加权最小连接数算法,加权百分比算法

 

硬件负载均衡:F5 软件负载均衡:LVS,Nginx,HAproxy

 

REST的5个原则:

网络上的所有事物都被抽象为资源,每个资源对应一个唯一的资源标识,通过通用的额连接件接口对资源进行操作,对资源的各种操作不会改变资源标识,所有 的操作都是无状态的

 

响应式WEB设计的方法和策略:

采用流式布局和弹性化设计:使用相对单位,设定百分比而非具体的值的方式设置页面元素的大小

响应式图片:不仅要同比的缩放图片,嗨哟啊在小设备上降低土拍你自身的分辨率

 

对称加密:DES,RC-5,IDEA

缺陷:加密强度不高,但效率高,密钥分发困难

 

非对称加密:RSA,ECC

缺陷:加密速度慢

 

信息摘要:MD5,SHA

 

数字证书内容

证书版本信息,证书序列号,每个证书都有一个唯一的证书序列号,证书所使用的签名算法,证书发行机构名称,命名规则一般采用X.500格式,证书有效期,现在通用的证书一般采用UTC时间格式,1950-2049,证书所有人名称,命名规则一般采用X.500格式,证书所有人的公开密钥,证书发行者的证书的签名

 

被动攻击:手机信息为主,破坏保密性,攻击名称:窃听,业务流分析,非法登陆

主动攻击:主动攻击的类别主要有:中断(破坏可用性),篡改(破坏完整性),伪造(破坏真实性)。攻击名称:假冒身份,抵赖,旁路控制,重放攻击,拒绝服务(DOS)

 

 

可靠性:

软件可靠性 不等于 硬件可靠性

复杂性:软件复杂性比硬件高,大部分失效来自于软件失效

物理退化:硬件失效主要是物理退化所致,润建不存在物理退化

唯一性:软件是唯一的,每个COPY版本都一样,而两个硬件不可能完全一样

版本更新周期:硬件较慢,软件较快

 

可靠性设计:

结构冗余(硬件冗余,软件冗余),信息冗余(校验码),时间冗余(重读多次进行相同的计算)

 

可靠性设计包括:N版本程序设计,恢复快方法,防卫式程序设计,双机容错,集群技术

 

可靠性设计---防卫式程序设计:对于程序中存在的错误和不一致性,通过在程序中包含错误检查代码和错误回复代码,使得一旦错误发生,程序能撤销错误状态,回复到一个已知的是正确状态中去

 

实现策略:错误检测,破坏估计,错误恢复

 

可靠性设计---双机容错:双机热备份,双机互备份,双机双工模式

 

可靠性设计---集群技术:可伸缩性,高可用性,可管理型,高性价比,高透明性

 

范围管理:范围计划编制-->范围定义-->创建WBS-->范围确认-->范围控制

 

时间管理:活动定义-->活动排序-->活动资源估算-->活动历时估算-->制定进度计划-->进度控制

 

时间管理--甘特图:

优点:直观,容易制作,便于理解,能很清晰地标识出直到每一项任务的起始与结束时间,一般适用比较简单的小型项目,可用于WBS的任何层次,进度控制,资源优化,编制资源和费用计划

缺点:不能系统的表达一个项目所包含的各项工作自建的复杂关系,难以进行定量的计算和分析,以及计划的优化等

 

成本管理:

成本估算(自顶向下的估算,自底向上的估算,差别估算法)-->成本预算(直接成本与间接成本,管理储备,零基准预算)-->成本控制(净值分析)

 

成本管理--净值管:

计划工作量的预算成本(PV)=计划工作量*预算定额

已完成工作量的实际成本(AC)

已完成工作量的预算成本(EV)=已完成工作量*预算定额

完工预算(BAC)=完工时的PV总和

进度偏差(SV)=EV-PV

成本偏差(CV)=EV-AC

进度绩效指数(SPI)=EV/PV

成本绩效指数(CPI)=EV/AC

剩余工作的成本(ETC)=BAC-EV 或者 =(BAC-EV)/CPI

完工估算(EAC)=AC+ETC

 

软件质量管理--质量保证与质量控制

质量保证一般是每隔一定时间进行,主要通过系统的质量审计和过程分析来保证项目的质量,独特工具包括:质量审计和过程分析

 

质量控制的实时监控项目的具体结果,以判断它们是否符合相关质量标准,制定有效方案,以消除生产质量问题的原因

 

软件评审:不应以测试代替评审,评审人员应关注产品而不应评论开发人员,评审人员应关注于实质性问题,评审会议不应变为问题解决方案讨论会,评审应被安排进入项目计划,评审参与者应了解整个评审过程,评审人员事先应对评审材料充分了解,应重视评审的组织工作

 

软件过程改进

组织能力成熟度:

已管理级:需求管理,项目计划,配置管理,项目监督与控制,供应商合同管理,治疗和分析,过程和产品质量保证

已定义级:需求开发,技术解决方案,产品集成,验证,确认,组织级过程焦点,组织级过程定义,组织级培训,集成项目管理,风险管理,集成化的团队,决策分析和解决方案,组织级集成环境

定量管理级:组织级过程性能,定量项目管理

优化级:组织级改革与实施,因果分析和解决方案

 

软件配置管理--软件工具:

软件开发工具:需求分析工,设计工具,编码与排错工具

软件维护工具:版本控制工具,文档分析工具,开发信息库工具,逆向工程工具,再工程工具

软件管理和软件支持工具:项目管理工具,配置管理工具,软件评价工具,软件开发工具的评价和选择

 

软件配置管理--变更控制:变更申请-->变更评估-->变更决策-->变更实施-->变更验证-->沟通存档

 

风险管理:

风险讯在的客观性和普遍性,某一具体风险发生的偶然性和大量风险发生的必然性,风险的可变性,风险的多样性和多层次性

风险的基本属性:随机性和相对性

 

风险管理--风险的分类:

项目风险:

潜在的预算,进度,人员和组织,资源,用户和需求问题

技术风向:

潜在的设计,实现,接口,测试和维护方面的问题

商业风险:

市场风险:系统虽然很优秀但不是市场真正所想要的

策略风险:系统不再符合企业的信息系统战略

销售风险:开发了销售部门不清楚如何推销的系统

管理风险:由于重点转移或人员变动而失去上级支持

预算风险:开发过程没有得到预算或人员的保证

 

风向曝光度:风险出现的概率乘以风险可能造成的损失

 

项目管理工具”

能做什么:任务调度,成本估算,资源分配,预算跟踪,人时统计,配置控制,确定关键路径,松弛时间,超前时间和滞后时间,生成一定格式的报表和报告

不能做什么:不能知道软件设计人员按软件生存周期各个阶段的适用技术行进设计工作

 

案例分析考点:

 

 

论文考点:

 

 

 

 

 

 

 

 

 

 

 

CISC(复杂):数量多,使用频率差别大,可变长度,支持多种,微程序控制技术,研制周期长

RISC(精简):数量少使用频率接近,定长格式,大部分为单周期指令,操作寄存器,只有Load/Store操作内存,支持方式少,增加了通用寄存器,硬布线逻辑控制为主,适合采用流水线,优化编译,有效支持高级语言

 

随机存储器:DRAM,SEAM 制度存储器:MROM,PROM,EPROM,删存

 

一条总线同时仅允许一个设备发送,但允许多个设备接收

 

系统性能设计---性能指标:字长和数据通路宽度,主存容量和存储速度,运算速度,吞吐量与吞吐率,响应时间,完成时间,兼容性,主频与CPU时钟周期,CPI与IPC,MIPS与MFLOPS

 

MIPS=指令条数/(执行时间*10^6)=主频/CPI=主频*IPC

MFLOPS=浮点操作次数/(执行时间*10^6)

 

阿姆达尔定律:

 

 

性能评价方法:

时钟频率法:以时钟频率高低衡量速度

指令执行速度法:标识机器运算速度的单位是MIPS

等效指令速度法:通过各类指令在程序中所占比例进行计算得到的。特点:考虑之林比例不同问题

数据处理速率法:PDR值的方法来衡量机器性能,PDR值越大,机器性能越好。PDR=L/R 特点:考虑CPU+存储

综合理论性能法:CTP用MTOPS表示。CTP估算法是,首先算出处理部件每个计算单元的有效计算率,再按不同字长加以调整,

基准程序法:把应用程序中用的最多,最频繁的那部分核心程序作为评估计算机系统性能的标准程序,基准程序法是目前一致承认的测试系统性能的较好方法

 

真实程序->核心程序->小型基准程序->合成基准程序

 

页式存储组织:将程序与内存均划分为同样大小的块,以页为达到那位将程序调入内存

优点:利用率高,碎片小,分配及管理简单

缺点:增加了系统开销,可能产生抖动象限

 

段式存储组织:按用户作业中的自然段来划分逻辑空间,然后调入内存,段的长度可以不一样

优点:多道程序共享内存,各段程序修改互不影响

缺点:内存利用率低,内存碎片浪费大

 

段页式存储组织:段与页式的综合体,先分段,再分页,一个程序有若干个段,每个段中可以有若干个页,每个页的大小相同,但每个段的大小不同

优点:空间浪费小,存储共享容易,存储保护容易,能动态连接

缺点:由于管理阮家就的增加,复杂性和开销也随之增加,需要的硬件以及占用的内荣也有所增加,使得执行速度大大下降

 

块表:一块小容量的相连存储器,由高速缓冲器组成,速度快,并且可以从硬件上保证按内容并行查找,一般用来存放当前访问最频繁的少数活动页面的页号

 

块表:将页表存于Cache上 慢表:将页表存放于内存上

 

嵌入式操作系统特点:微型化,代码质量高,专业化,实时性强。可裁减,可配置

 

实时嵌入式系统的内核服务器:异常和中断,计时器,I/C管理

 

主机向本地域名服务器的查询采用递归查询,本地域名服务器向根域名服务器的查询采用迭代查询

 

本季查询IP的顺序:缓冲-->HOST-->本地域名->根域名->顶级域名

 

网络规划原则:实用性原则,开放性原则,先进性原则

网络设计任务:确定网络总体目标,确定总体设计原则,通信子网设计,资源子网设计,设备选型,网络操作系统与服务器资源设备,网络安全设计

网络实施原则:可靠性原则,安全性原则,高效性原则,可扩展性原则

网络实施步骤:工程实施计划,网络设备到货验收,设备安装,系统测试,系统试运行,用户培训,系统转换

 

需求规范,通信规范,逻辑网络设计(拓扑结构,网络地址分配,安全规划,网络管理,选择路由协议,设备命名规则),物理网络设计(设备具体物理分布,运行环境等确定,设备选型,结构化布线,机房设计),实施阶段

 

逻辑网络设计输出:逻辑网络设计图,IP地址方案,安全方案,招聘和培训网络员工的具体说明,对硬件和服务已经员工和培训的费用初步估计

 

物理网络设计输出:网络物理结构图和布线方案,设备和部件的详细列表清单,软硬件和安装费用的估算,安装日程表,详细说明服务的时间以及期限,安装后的测试计划,用户的培训计划

 

网络分层设计:

接入层:用户接入,计费管理,MAC地址认证,手机用户信息

汇聚层:网络访问策略控制,数据包处理,过滤,寻址

核心层:高速数据交换,常用冗余机制

 

 

IPV4/IPV6过滤技术:

双协议栈技术:双协议栈技术通过节点对IPV4和IPV6双协议栈的支持,从而支持两种业务的共存

隧道技术:隧道技术通过在IPV4网络中部署隧道,实现在IPV4网络上在IPV6业务的承载,保证业务的共存和过滤,隧道技术包括:6to4隧道;6over4隧道;ISATAP隧道

NAT-PY技术:NAT-PT使用网关设备连接IPV6和IPV4网络

 

物联网:实现物物相连的互联网,其内涵包含两个方面:1,物联网的核心和基础仍然式互联网,是在互联网基础上延伸和扩展的网络。2,其用户端延伸和扩展到了任何物体与物体之间,使其进行信息交互和通信

 

感知层:识别物体,采集信息。网络层:传递信息和处理信息。 应用层:解决信息处理和人机交互的问题

 

物联网关键技术:RFID,二维码

 

云计算:一种基于互联网的计算方式,通过这种方式,共享的软硬件资源和信息可以按需提供给计算机和其他设备。核心思想是将大量网络连接的计算资源同意管理和调度,构成一个计算资源池向用户按需服务。

 

云计算特点:集合了大量计算机,规模达到成千上万,多种软硬件技术相结合,对客户端设备的要求低,规模化效应

 

视图特点:简化用户操作,使用户能以多种角度看待同一数据,对重构数据库提供了一定程度的逻辑独立性,可以对机密数据提供安全保护

 

非规范化的关系模式,可能存在的问题包括:数据冗余,更新异常,插入异常,删除异常

 

反规范化手段:增加派生性冗余列,增加冗余列,重新组表,分割表

 

事物:原子性,一致性,隔离性,持续性

 

数据库完整性约束:实体完整性,参照完整性,用户自定义完整性,触发器

 

数据库完整性约束措施:用户标识和鉴定,存取控制,密码存储和传输,视图的保护,审计

 

数据备份:完全备份,差量备份,增量备份

 

数据表分区优点:

相对于单个文件系统或是硬盘,分区可以存储更多的数据

数据管理比较方便

精准定位分区查询数据

可跨多个分区磁盘查询

在涉及聚合函数查询时,可以很容易进行数据的合并

 

数据仓库特点:

面向主题:数据按主题组织

集成的:消除了源数据中的不一致性,提供整个企业的一致性全局信息

相对稳定的:主要进行查询操作,只有少量的修改和删除操作

反映历史变化:记录了企业兄过去某一时刻到当前各个阶段的,信息,客队发展历程和未来趋势做定量分析和预测

 

联邦数据库特征:分布性,异构型,自治性,透明性

联邦数据库分类:紧耦合,松耦合

 

关系型数据库的缺陷:高并发读写的性能低,支撑容量有限,数据库的可扩展性和可用性低,建设和运维成本高

 

大数据处理系统特点:高度可扩展性,高性能,高度容错,支持异构环境,较短的分析延迟,医用且开放的接口,较低成本,向下兼容新内阁

 

数学建模过程:模型准备,模型假设,模型建立,模型求解,模型分析,模型检验,模型应用

数学建模方法:直接分析法,类比法,数据分析法,构想法

 

 

        以上的笔记说明了一个问题,软考中的架构师 需要记忆太多的东西了,需要更加努力的鼓励自己,一定要坚持下去,不成功便成仁,码农道路慢慢,向自己祈祷,考试一定要过

       路过的大牛们,请给小弟一些指点,怎么才能更好的通过软件架构师考试

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

火柴有猿

您的鼓励,将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值