当前位置:   article > 正文

软考高级之系统架构师之系统开发基础_顶层方针 软考

顶层方针 软考

备注:本文作为软考高级之系统架构师专栏的一篇,所有内容皆为历年来软考高级系统架构师试题涉及知识点。具体来说,本文的知识点特别杂乱,不太好分类汇总到其他某个专题博文里。

概念

移动互联网概念:Web2.0保留Web1.0用户体验的低参与度、被动接受的特征(WEB2.0用户体验程度高度参与、相互接受)
HTML4支持地理位置定位,更适合移动应用开发(HTML5)。

面向对象设计的基本任务是把面向对象分析模型转换为面向对象设计模型。

面向对象的分析模型主要由顶层架构图、用例与用例图、领域概念模型构成。

设计模型则包含以包图表示的软件体系结构图、以交互图表示的用例实现图、完整精确的类图、针对复杂对象的状态图和描述流程化处理过程的活动图等。

SDN

Software Defined Netwok,软件定义网络,本质是将网络软件化,这样就可以像升级、安装软件一样对网络进行修改,方便更多的应用程序能快速部署到网络上。SDN网络架构有三层:

  • 应用层。对应用户不同的业务和应用。
  • 控制层。主要负责处理数据平面资源的编排,维护网络拓扑、状态信息等。
  • 数据转发层。负责用户数据的转发

容错

容错是指系统在运行过程中发生一定的硬件故障或软件错误时,仍能保持正常工作而不影响正确结果的一种性能或措施。

容错技术主要是采用冗余方法来消除故障的影响。冗余是指在正常系统运行所需的基础上加上一定数量的资源,包括信息、时间、硬件和软件。主要的冗余技术有结构冗余(硬件冗余和软件冗余)、信息冗余、时间冗余和冗余附加4种。

结构冗余是常用的冗余技术,按其工作方式,可分为静态冗余、动态冗余和混合冗余三种。静态冗余又称为屏蔽冗余或被动冗余,常用的有三模冗余和多模冗余。动态冗余又称为主动冗余,它是通过故障检测、故障定位及故障恢复等手段达到容错的目的。其主要方式是多重模块待机储备,当系统检测到某工作模块出现错误时,就用一个备用的模块来顶替它并重新运行。各备用模块在其待机时,可与主模块一样工作,也可不工作。前者叫做热备份系统(双重系统),后者叫做冷备份系统(双工系统、双份系统)。混合冗余技术是将静态冗余和动态冗余结合起来。

除冗余技术之外,软件容错技术还可采用N版本程序设计、恢复块方法和防卫式程序设计等。

N版本程序设计是一种静态的故障屏蔽技术,采用前向恢复的策略;N版本程序的设计思想是用N个具有相同功能的程序同时执行一项计算,结果通过多数表决来选择。

恢复块方法是一种动态的故障屏蔽技术,采用后向恢复策略;恢复块方法提供具有相同功能的主块和几个后备块,一个块就是一个执行完整的程序段,主块首先投入运行,结束后进行验证测试,如果没有通过验证测试,系统经现场恢复后由后备块1运行。后备块1运行结束后也进行验证测试,如果没有通过验证测试,系统经现场恢复后由后备块2运行。重复这一过程,可以重复到耗尽所有的后备块,或者某个程序故障行为超出预料,从而导致不可恢复的后果。

防卫式程序设计是一种不采用任何传统的容错技术就能实现软件容错的方法,对于程序中存在的错误和不一致性,防卫式程序设计的基本思想是通过在程序中包含错误检查代码和错误恢复代码,使得一旦发生错误,程序就能撤销错误状态,恢复到一个己知的正确状态中去。

移植工作

移植工作大体上分为计划阶段、准备阶段、转换阶段、测试阶段、验证阶段:

  • 计划阶段:进行现有系统的调查整理,从移植技术、系统内容(是否进行系统提炼等)、系统运行三个方面,探讨如何转换成新系统,决定移植方法,确立移植工作体制及移植日程
  • 准备阶段:进行移植方面的研究,准备转换所需的资料。该阶段的作业质量将对以后的生产效率产生很大的影响
  • 转换阶段:将程序设计和数据转换成新机器能根据需要工作的阶段。提高转换工作的精度,减轻下一阶段的测试负担
  • 测试阶段:
  • 验证阶段:

UML

参考:UML入门以及Plant UML工具介绍

文档

要让系统分析员和程序员去实现体系结构,还必须得把体系结构进行文档化。文档是在系统演化的每一个阶段,系统设计与开发人员的通信媒介,是为验证体系结构设计和提炼或修改这些设计所执行预先分析的基础。体系结构文档化过程的主要输出结果是体系结构规格说明和测试体系结构需求的质量设计说明书

在初步项目范围说明书中已文档化的主要的可交付物、假设和约束条件的基础上准备详细的项目范围说明书,是项目成功的关键。范围定义的输入包括以下内容:

  • 项目章程。如果项目章程或初始的范围说明书没有在项目执行组织中使用,同样的信息需要进一步收集和开发,以产生详细的项目范围说明书
  • 项目范围管理计划
  • 组织过程资产
  • 批准的变更申请

文档管理的规则与方法,信息系统文档的规范化管理主要体现在文档书写规范、图表编号规则、文档目录编写标准和文档管理制度等几个方面。

系统建议方案

作为一份正式文档,系统建议方案至少应该包含以下内容:

  • 前提部分:包括标题、目录和摘要。摘要部分以1〜2页的篇幅总结整个系统建议方案报告,提供系统方案中的重要事件、地点、任务和原因,以及系统方案是如何实现的等信息
  • 系统概述:包括系统建议方案报告的目的、对问题的陈述、项目范围和报告内容的叙述性解释
  • 系统研究方法:简要地解释系统建议方案报告中包含的信息是如何得到的,研究工作是如何进行的
  • 候选系统方案及其可行性分析:系统阐述每个候选系统方案,并对每个方案进行可行性评价
  • 建议方案:在对各个候选系统方案进行可行性评价之后,通常会推荐一个解决方案,并且要给出推荐该解决方案的理由
  • 结论:简要地描述摘要的内容,再次指出系统开发的目标和所建议的系统方案。同时,需要再次强调项目的必要性和可行性,以及系统建议方案报告的价值
  • 附录:系统分析师认为阅读者可能会感兴趣的所有信息,但这些信息对于理解系统建议方案报告的内容来说不是必要的

不包含系统详细设计方案

用户文档

用户文档主要描述所交付系统的功能和使用方法,并不关心这些功能是怎样实现的。用户文档是了解系统的第一步,它可以让用户获得对系统准确的初步印象。用户文档至少应该包括下述5方面的内容:

  • 功能描述:说明系统能做什么
  • 安装文档:说明怎样安装这个系统以及怎样使系统适应特定的硬件配置
  • 使用手册:简要说明如何着手使用这个系统(通过丰富的例子说明.怎样使用常用的系统功能,并说明用户操作错误是怎样恢复和重新启动的)
  • 参考手册:详尽描述用户可以使用的所有系统设施以及它们的使用方法,并解释系统可能产生的各种出错信息的含义(对参考手册最主要的要求是完整,因此通常使用形式化的描述技术)
  • 操作员指南(如果需要有系统操作员的话):说明操作员应如何处理使用中出现的各种情况。系统文档是从问题定义、需求说明到验收测试计划这样一系列和系统实现有关的文档。描述系统设计、实现和测试的文档对于理解程序和维护程序来说是非常重要的。

系统文档

QFD

质量功能部署,Quality Function Deployment,将客户要求转化为软件需求的技术。目的:最大限度地提升软件工程过程中客户的满意度。

QFD的关键是建造一个质量屋,这个方法有八个步骤:
在这里插入图片描述

  1. 确定顾客
  2. 确定顾客的需求
  3. 确定各需求的相对重要性
  4. 辨别并评价竞争力:当前是如何满足顾客要求的
  5. 生产工作任务书:如何使顾客的需求得到满足
  6. 工作任务书中顾客需求的关系:如何确定顾客需求
  7. 设置工作目标
  8. 确定工作需求之间的关系

配置项

软件产品配置是指一个软件产品在生存周期各个阶段所产生的各种形式(机器可读或人工可读)和各种版本的文档、计算机程序、部件及数据的集合。该集合的每一个元素称为该产品配置中的一个配置项。

配置项是构成产品配置的主要元素,主要有两大类:

  1. 属于产品组成部分的工作成果:如需求文档、设计文档、源代码和测试用例等
  2. 属于项目管理和机构支撑过程域产生的文档:如工作计划、项目质量报告和项目跟踪报告等。这些文档虽然不是产品的组成部分,但是值得保存。

在配置管理中,所有的配置项都应列入版本控制的范畴。配置项的状态通常包括:草稿、正式发布、正在修改。

管理工具

软件配置管理工具是指支持完成配置项标识、版本控制、变化控制、审计和状态统计等任务的工具,主要有下述功能:

  • 配置支持:配置是一组有共同目的的中间软件产品,其中每一个中间软件产品称为一个配置项。软件配置管理支持用户建立配置项之间的各种关系,并对这些关系加以维护,维护这些关系有助于完成某些特定任务(如Build)和标识某一变化对整个系统开发的影响。
  • 版本控制:版本控制是软件配置管理的基本要求,它可以保证在任何时刻恢复任何一个版本、版本控制还记录每个配置项的发展历史,这样就保证了版本之间的可追踪性,也为查找错误提供帮助,版本控制也是支持并行开发的基础。
  • 变更控制:是指在整个软件生存周期中对软件变更的控制。变更控制系统记录每次变更的相关信息(变更的原因、变更的实施者以及变更的内容等)。这些信息有助于追踪出现的各种问题。
  • 构造支持:软件系统往往由许多配置项构成,建立整个系统是个复杂和费时的过程,软件配置管理工具可以记录和追踪每个配置项信息,帮助用户自动和快速地建立系统,和版本控制结合在一起,可以有效地支持同时开发系统的多个版本。
  • 过程支持:过程详细描述各种人员在整个软件生存周期中如何使用整个系统,过程控制可以保证每一步都按照正确的顺序由合适的人员实施。过程控制本来是软件开发环境中一个独立的部分,软件配置管理也开始提供这部分功能。软件配置管理工具对过程的支持还很不够,而且支持方式差别也很大,许多管理只是提供一个预先定义好的生存周期模型,并保证开发的每一步都按照这个模型规定进行。
  • 团队支持:团队支持是指多个开发人员同时开发一个软件系统。大多数软件系统都需要多个开发人员参与,有效的团队支持对开发人员是很有用的。团队支持主要包括工作区管理、并行开发管理和远程开发管理(某些软件配置管理工具还包括对开发人员支持)。

CMM

Capability Maturity Model for Software,英文缩写为SW-CMM,或者直接叫CMM,美国卡内基梅隆大学软件工程研究所开发的(软件)能力成熟度模型。在软件开发机构中被广泛用来指导软件过程改进,该模型描述软件过程能力的5个成熟度级别。

CMMI:Capability Maturity Model Integration,即(软件)能力成熟度模型集成。

DCMM:评估内容包括数据战略、数据治理、数据架构、数据应用、数据安全、数据质量、数据标准和数据生存周期。

等级CMMCMMI等级说明
1初始级这种组织通常没有一个稳定的环境,它的成功依赖于组织中个人的能力和英雄主义,而不是依赖于使用经过验证的过程。尽管这种混乱、无序的环境,处于初始级别的组织也经常能制造出能工作的产品和服务,但是,他们的项目经常是超成本和进度的
2可重复级受管理级在这一级别的组织建立基本的项目管理过程来跟踪软件项目的成本、进度和功能。这些管理过程和方法可供重复使用,把过去成功的经验用于当前和今后类似的项目
3已定义级已定义级管理活动和软件工程活动的软件过程被文档化、标准化,并被集成到组织的标准软件过程之中。过程在组织中得到很好地表现和理解,用标准、规程、工具和方法表述过程。在具体使用这个标准过程时,可以根据项目的实际情况进行适当的剪裁
4已管理级量化管理级在这一级,组织和项目为质量和过程绩效建立了量化目标,并以此作为管理过程的依据。已建立过程数据库,可预测过程和产品质量趋势,如预测偏差等,实现及时纠正
5优化级优化级过程的量化反馈和先进的新思想、新技术促使过程持续不断改进

已管理级:强调软件开发过程稳定性与项目量化管理。

每一级都包含若干关键过程域(Key Process Areas,KPA)。

为了达到过程能力成熟度模型的第二级,组织机构必须具有6个关键过程域。

CMM的第二级为可重复级,包括6个关键过程域:需求管理、软件项目计划、软件项目跟踪和监督、软件分包合同管理、软件质量保证和软件配置管理。
需求管理的目标是为软件需求建立一个基线,提供给软件工程和管理使用;软件计划、产品和活动与软件需求保持一致。

组织级过程焦点属于已定义级,

连续式分组过程域
过程管理组织级过程焦点、组织级过程定义、组织级培训、组织级过程性能、组织级改革与实施
项目管理项目计划、项目监督与控制、供应商合同管理、集成项目管理、风险管理、集成化的团队、定量项目管理
工程需求管理、需求开发、技术解决方案、产品集成、验证、确认
支持配置管理、度量和分析、过程和产品质量保证、决策分析和解决方案、组织级集成环境、因果分析和解决方案

软件企业在实施过程中,为了达到本地化,应组织体系编写组,建立基于CMMI的软件质量管理体系文件,体系文件的层次结构一般分为四层,包括:①顶层方针②模板类文件③过程文件④规程文件。
按照自顶向下的塔型排列:1342

软件过程构架结构由四个层次组成:方针、过程、规程和第四层的标准、规范、指南、模板、Checklist等组成:

  1. 方针为第一层文件,它是组织标准软件的高层次的抽象描述,它反映在公司的过程改进总体方针、政策中,由公司主管副总裁批准执行
  2. 过程为第二层文件,主要规定在项目开发中执行该过程时应当执行的各项活动及适用标准。过程定义文件及其相关文件制定必须符合方针的要求
  3. 规程为第三层文件,是对过程某些复杂活动的具体描述
  4. 标准、规范、指南、模板、Checklist、范例库等是对上级过程或规程提供细致的步骤、活动及说明的支持性文档,第四层的文件从属于上级过程。

架构描述

ANSI/IEEE 1471-2000是对软件密集系统的架构进行描述的标准。系统是为了达成利益相关人(Stakeholder)的某些使命(Mission),在特定环境(Enviroment)中构建的。每一个系统都有一个架构(Architecture)。架构是对所有利益相关人的关注点(Concern)的响应和回答,通过架构描述(Architecture Description)来说明。每一个利益相关人都有各自的关注点。这些关注点是指对其重要的,与系统的开发、运营或其他方面相关的利益。架构描述本质上是多视图的。每一个视图(View)是从一个特定的视角(View Point)来表述架构的某一个独立的方面。试图用一个单一的视图来覆盖所有的关注点当然是最好的,但实际上这种表述方式将很难理解。视角的选择,基于要解决哪些利益相关人的哪些关注点。它决定用来创建视图的语言、符号和模型等,以及任何与创建视图相关的建模方法或分析技术。一个视图包括一个或多个架构模型(Model),一个模型也可能参与多个视图。模型较文本的表述的好处在于,可以更容易的可视化、检查、分析、管理和集成。

视图主要用于描述软件架构模型;

IETF

国际互联网工程任务组,The Internet Engineering Task Force,公开性质的大型民间国际团体,汇集与互联网架构和互联网顺利运作相关的网络设计者、运营者、投资人和研究人员。

IETF定义的集成服务(IntServ)把Internet服务分成三种服务质量不同的类型:

  • Guranteed Services:保证质量的服务,对带宽、时延、抖动和丢包率提供定量的保证
  • Controlled Load Services:控制负载的服务,提供一种类似于网络欠载情况下的服务,这是一种定性的指标
  • Best Effort Services:尽力而为的服务,Intemet提供的一般服务,基本上无任何质量保证

IETF定义的区分服务(DiffServ)模型要求每个IP分组都要根据IPv4协议头中的服务类型字段加上一个DS码点,然后内部路由器根据DS码点的值对分组进行调度和转发。对应的IPv6中是通信类型。

IDEF

集成定义方法,Integration DEFinition Method,一系列建模、分析和仿真方法的统称,包括16个:

等级描述用途
IDEF0功能建模,业务流程Function Modeling
IDEF1信息建模Information Modeling
IDEF1X数据建模Data Modeling
IDEF2仿真建模设计Simulation Model Design
IDEF3过程描述获取Process Description Capture
IDEF4面向对象设计Object-Oriented Design
IDEF5本体论描述获取Ontology Description Capture
IDEF6设计原理获取Design Rationale Capture
IDEF7信息系统审定Information System Auditing
IDEF8用户界面建模User Interface Modeling
IDEF9场景驱动信息系统设计Scenario-Driven IS Design
IDEF10实施体系结构建模Implementation Architecture Modeling
IDEF11信息制品建模Information Artifact Modeling
IDEF12组织建模Organization Modeling
IDEF13三模式映射设计Three Schema Mapping Design
IDEF14网络规划Network Design

区块链

定义

第一种(通俗)
比特币:一种加密数字货币
区块链:一种基础技术
区块链是一种源自于比特币的底层技术。即,比特币是区块链技术的第一个大获成功的应用。

第二种
区块链是数字世界中进行价值表示(Value:加密数字货币或通证)和价值转移(Transfer:分布式账本与去中心网络)的技术。区块链硬币一面是表示价值的加密数字货币或通证,另一面是进行价值转移的分布式账本与去中心网络。

分布式账本与去中心网络也常被称为链,它可被视为一个软件平台;而表示价值的通证常被称为币。

通证存储在链上,通过链上的代码(主要形式的智能合约)来管理,它是可编程的。

其他

自顶向下开发

优点:

  • 可为企业或机构的重要决策和任务实现提供信息
  • 支持企业信息系统的整体性规划,并对系统的各子系统的协调和通信提供保证
  • 方法的实践有利于提高企业人员整体观察问题的能力,从而有利于寻找到改进企业组织的途径

缺点:

  • 对系统分析和设计人员的要求较高
  • 开发周期长,系统复杂,一般属于一种高成本、大投资的工程
  • 对于大系统而言,自上而下的规划对于下层系统的实施往往缺乏约束力
  • 从经济角度来看,很难说自顶向下的做法在经济上市合算的

三种类

类封装信息和行为,是面向对象的重要组成部分。在面向对象设计中,类可以分为三种类型:

  • 实体类:映射需求中的每个实体,保存需要存储在永久存储体中的信息。实体类是对用户来说最有意义的类,通常采用业务领域术语命名,一般来说是一个名词,在用例模型向领域模型转化中,一个参与者一般对应于实体类
  • 控制类:用于控制用例工作的类,一般是由动宾结构的短语(动词+名词或名词+动词)转化来的名词。控制类用于对一个或几个用例所特有的控制行为进行建模,控制对象通常控制其他对象,因此它们的行为具有协调性
  • 边界类:用于封装在用例内、外流动的信息或数据流。是一种用于对系统外部环境与其内部运作之间的交互进行建模的类,用于实现目标软件系统和外部系统或外部设备之间的信息交流和互操作。边界对象将系统与其外部环境的变更隔离开,使这些变更不会对系统其他部分造成影响。

数据资产

数据资产的特性包括:可控制、可量化、可变现、虚拟性、共享性、时效性、安全性、交换性和规模性。

中间件

中间件是独立的系统级软件,连接操作系统层和应用程序层,将不同操作系统提供应用的接口标准化,协议统一化,屏蔽具体操作的细节,中间件一般提供如下功能:

  • 通信支持:中间件为其所支持的应用软件提供平台化的运行环境,该环境屏蔽底层通信之间的接口差异,实现互操作,是中间件一个最基本的功能
  • 应用支持:中间件的目的就是服务上层应用,提供应用层不同服务之间的互操作机制
  • 公共服务:公共服务是对应用软件中共性功能或约束的提取。将这些共性的功能或约束分类实现,并支持复用,作为公共服务,提供给应用程序使用

消息中间件,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。消息队列(Message Queue,即MQ)是在消息的传输过程中保存消息的容器。MQ负责两个系统之间传递消息,这两个系统可以是异构的,处于不同硬件、不同操作系统、用不同语言编写,只需要简单配置、及简单的调用几个MQ的API,就可以互相通讯,不必考虑底层系统和网络的复杂性,MQ能够应付多种异常情况。消息中间件支持点对点模式、订阅发布模式、推拉模式。

消息中间件主要由一组对象来提供系统服务,对象间能够跨平台通信。错。

消息中间件是消息传输过程中保存消息的一种容器!!!

单选题,使用中间件将增加应用软件设计的复杂度:错!!!

很离谱是吧。

AI芯片

AI芯片主要分为GPU、FPGA、ASIC;

关键特点有:新型计算范式、训练和推断、大数据处理能力、可重构能力。

鸿蒙操作系统

HarmonyOS是基于微内核的全场景分布式OS。

互联网+

互联网+总体思路,顺应世界互联网+发展趋势,充分发挥我国互联网的规模优势和应用优势,推动互联网由消费领域向生产领域拓展,加速提升产业发展水平,増强各行业创新能力,构筑经济社会发展新优势和新动能。

参考

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/654949
推荐阅读
相关标签
  

闽ICP备14008679号