架构师备考-错题本

摘要        

        本文汇总了我在准备架构师考试时,在选择题环节遇到的常见错误及其详细解析。这些资料旨在帮助备考者更好地理解知识点,以便在考试的最后阶段进行有效的复习和补充。期望这些内容能够对您的备考有所裨益。

基础概念

  1. 企业应用集成(EAI):是伴随着企业信息系统的发展而产生和演变的。EAI 技术是将进程、软件、标准和硬件联合起来,在两个或更多的企业信息系统之间实现无缝集成,使他们就像一个整体一样。EAI 提供4个层次的服务,从下至上依次为通讯服务、信息传递与转化服务、应用连接服务、流程控制服务、最上层是流程控制服务。
  2. 应用集成:是指两个或多个应用系统根据业务逻辑的需要而进行的功能之间的相互调用和互操作。应用集成需要在数据集成的基础上完成。应用集成在底层的网络集成和数据集成的基础上实现异构应用系统之间语用层次上的互操作。他们共同构成了实现企业集成化运行最顶层会聚成所需要的,技术层次上的基础支持。
  • 企业信息集成:是指企业在不同应用系统之间实现数据共享,即实现数据在不同数据格式和存储方式之间的转换。对来源不同、形态不同、内容不等的信息资源进行系统分析、辩清正误、消除冗余、合并同类,进而产生具有统一数据形式的有价值信息的过程。企业信息集成是一个十分复杂的问题,
    • 按照组织范围来分,分为企业内部的信息集成和外部的信息集成两个方面;
    • 按集成内容、企业内部的信息集成一般可分为4各方面
      • 技术平台集成
      • 数据集成
      • 应用系统集成:是实现不同系统之间的互操作,使得不同应用系统之间能够实现数据和方法的共享
      • 业务过程集成:在不同应用系统中的流程能够无缝连接,实现流程的协调运作和流程信息的充分共享
  • API 的含义是 Application Programming Interface,即应用程序编程接口,是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组列程的能力,而又无需访问源码或理解内部工作机制的细节。
  • 产品配置:是指一个产品在其生命周期各个阶段所产生的各种形式和各种版本的文档、计算机程序、部件及数据的集合。该集合中的每个元素成为产品配置的一个配置项,配置项主要分为两大类:一类属于产品组成部分的工作成果;另一类属于项目管理和机构支撑过程域产生的文档。每个配置项的主要属性有名称、标识符、状态、版本、作者、日期等。
  • 配置项:是一个独立存在的信息项,可以把它看成一个元素。单独的一个元素发挥不了什么作用,需要将各元素进行不同的组合,这个组合称配置,配置是一个产品在生存期各个阶段的配置项的集合,它具有完整的意义。

操作系统

  1. resolv.conf 是多种操作系统(如Linux、Unix、Mac)的域名系统解析器(DNS Resolver)的配置文件。
  2. Windows 的 perfmon 是可视化的监控工具

文件系统

  1. Windows 操作系统通常采用NTFS 文件系统
  2. EXT4 是linux 系统中最常用的文件系统类型之一
  3. BtrFS(B-Tree文件系统)是Linux 系统中一个先进的文件系统。
  4. XFS 是linux 系统中一种高性能的日志文件系统,适用于大规模的企业级应用。

操作系统分类

  • 分时操作系统:分时操作系统允许多个用户通过终端以交互方式使用计算机,系统为每个用户分配一定的CPU 时间,使得用户可以共享计算机资源。
  • 实时操作系统:实时操作系统(Real-Time Operating System)是指能够在指定或者确定的时间内完成特定任务的操作系统,并且任务的执行结果要在严格的规定时间内对外部事件做出响应。实时操作系统广泛应用于需要高可靠性和即时响应的领域,如工业控制系统、航空航天、医疗设备等。

进程

  • 死锁产生的必要条件
    • 互斥条件
    • 请求并保持条件
    • 不可剥脱条件
    • 循环等待条件

接口

  • 在以太网中,常用于连接计算机到网络的物理接口是 RJ-45
  • VGA 是视频输出接口
  • USB 用于连接各种外设
  • HDMI 主要用于高清视频和音频的传输

调度算法

  1. 时间片轮转:是一种常见的进程调度算法,其目的是确保所有进程都能公平的获得CPU 时间片。每个进程被分配一个固定大小的时间片,当一个进程用尽其时间片后,调度器将其移到队列的末尾,然后选择下一个进程执行
  2. 先来先服务:按照进程到达的先后顺序进行调度,不考虑执行时间的长短
  3. 短作业优先:选择执行时间最短的进程来先执行。这可能导致长作业等待时间过长,也无法保证所有进程都能公平的获得CPU 时间。
  4. 高响应比优先:基本思想是把CPU 分配给就绪队列中响应比最高的进程。高响应比优先调度算法既考虑作业的执行时间也考虑作业的等待事件,综合了先来先服务和最短作业优先两种算法的特点。

系统性能评估

  • 指令执行速度法常用每秒百万次指令运算(MIPS)评估系统性能
  • 基准程序法主要针对CPU (有时包括主存)的性能,同时考虑I/O 结构、操作系统、编译程序的效率等对系统性能的影响
  • 等效指令速度法评估系统性能时需要计算各类指令在程序中所占的比例
  • 综合理论性能法(CPT)采用每秒百万次理论计算(MTOPS)评估系统性能

网络

  1. Internet 中服务器越多,之间的跳数愈多,延迟就越高。
  2. 对等网络(peer-to-peer)中,每一个节点的地位都是对等的,既当服务器,同时也享有其他节点提供的服务,因此P2P网络的迟延与终端数量是有关的;

层次化网络设计

层次化网络设计应该遵循一些简单的原则,这些原则可以保证设计出来的网络更具有层次的特性

  1. 在设计时,设计者应该尽量控制层次化的程度。一般情况下,有核心层、汇聚层、接入层 3个层次已足够。过多的层次会导致整体的网络性能下降,并且会增加网络的延迟,但是方便网络故障排查和文档编写。
  2. 在接入层应当保持对网络结构的严格控制,接入层的用户总是为了获得更大的外部网络访问带宽,而随意申请其他渠道访问外部网络是不允许的
  3. 为了保证网络的层次性,不能在设计中随意加入额外链接。额外链接是指打破层次性,在不同相邻层次间的连接,这些会导致网络中的各种问题。例如,缺乏汇聚层的访问控制和数据过滤等
  4. 在设计时,应当首先设计接入层。根据流量负载、流量和行为的分析,对上层进行更精细的容量规划,再依次完成各上层的设计
  5. 除去接入层的其他层次,应尽量采用模块化方式。每个层次由多个模块或者设备集合构成,每个模块间的边界应非常清晰

数据库

  1. 数据库的二阶段提交(Two-Phase Commit,2PC)是一种用于实现分布式系统中的事务管理的方法,确保所有节点要么全部提交事务,要么全部回滚,以保持数据的一致性。
  • 两阶段提交分为准备阶段和提交阶段
    • 准备阶段:事务协调者为每个参与者发送Prepare 消息,每个参与者要么直接返回失败(如权限验证失败);要么在本地执行事务,写本地的redo 和 undo 日志,但不提交。到达一种万事俱备,只欠东风的状态。
    • 提交阶段:如果协调者收到了参与者的失败消息或者超时,直接为每个参与者发送回滚(Rollback)消息;否则发送提交(Commit)消息。参与者根据协调者的指令执行提交或者回滚操作,释放所有事务处理过程中使用的锁资源。

        2. 数据库中,一个属性的所有可能取值的集合称为域。

数据库访问设计

  • Java 数据对象(JDO)是java 标准中的持久化API,提供了透明的对象存储,并且支持多种数据存储类型。可以在任何数据底层上运行,包含非关系型数据库。
  • DAO 模式将底层数据访问操作与高层业务逻辑分离开,是一种标准J2EE 设计模式。
  • 工厂模式在数据访问层中常用于处理多种数据库的操作,通过定义一个操纵数据库的接口,并根据数据库的不同,由类工厂决定实例化哪个类

系统安全

  1. 完整的信息安全系统至少包括三类措施:
    1. 技术方面的安全措施
    2. 管理方面的安全措施
    3. 相应的政策法律
  1. 访问控制包括
    • 认证
    • 控制策略实现
    • 审计

加密

  • 对称密钥加密算法在加密和解密的过程中使用相同的密钥,而非对称密钥加密算法则使用一对公钥和私钥,公钥用于加密,私钥用于解密。对称密钥算法速度快,非对称密钥算法速度则慢得多对称密钥算法和非对称密钥算法都可以提供数字签名,但非对称密钥更容易实现安全分发

计算机信息系统安全保护等级划分准则

《计算机信息系统安全保护等级划分准则》把计算机信息安全划分为5个等级:

  • 第一级 用户自主保护级
    • 在这一级别,安全保护主要依赖于系统的使用者,系统提供简单的自主安全控制措施。适用于普通内联网用户,用户自行负责其信息资源的保护
  • 第二级 系统审计保护级
    • 除了用户自主保护外,系统还具备审计功能,能够记录与系统安全相关事件的发生,如访问尝试、登录失败等,以便追踪安全事件。适用于通过内联网或国际网进行商务活动、需要一定保密性的非重要单位。
  • 第三级:安全标记保护级
    • 引入了安全标签机制,对信息和主体(如用户、进程)进行敏感性标记,并基于这些标记实施强制访问控制。适用于地方各级国家机关、金融、邮电通信、能源、水源供给、交通运输、大型工商与信息技术企业、重点工程建设等单位。
  • 第四级 结构化保护级
    • 在这一级别,系统具有更为严密的访问控制机制,不仅包括安全标记,还要求系统具有抗渗透的能力,能够抵抗隐蔽通道的攻击,保护系统免受恶意活动的损害。适用于对国家安全至关重要的系统。
  • 第五级 访问验证保护级
    • 这是最高等级的安全保护,要求系统提供最全面的安全防护措施,包括设计验证、程序验证和运行验证等,确保系统在面对恶意攻击时的完整性和可信赖性。适用于国家安全、国防或者极其重要的信息系统,如军事指挥系统、国家级关键基础设施的控制系统等。

建模语言

OMT 对象建模技术

OMT 方法是指对象建模技术(Object Modeling Technique),它是一种面向对象的系统分析和设计方法。OMT 是面向对象方法论中的一种,它提供了一套图形表示法,用于描述软件系统的对象模型、动态模型和功能模型。OMT 方法由 James Rumbaugh 及其同事在 1991 年提出,后来被集成到统一建模语言(UML)中。

OMT 方法主要包括以下三个模型:

  • 对象模型:描述系统中对象的静态结构、对象之间的关系、属性和操作,主要用对象图来实现;
  • 动态模型:描述与时间和操作顺序有关的系统特征,例如激发事件、时间序列、确定事件先后关系的状态等,主要用状态图来实现动态模型;
  • 功能模型:描述一个计算如何从输入值得到输出值,它不考虑计算的次序,主要用DFD 来实现功能模型。

ADL 架构描述语言

  • 架构描述语言ADL 是一种为明确说明软件系统的概念架构和对这些概念架构建模提供功能的语言。ADL 对连接件的重视成为区分ADL 和其他建模语言的重要特征之一。
  • ADL 包括
    • 组件
    • 组件接口
    • 连接件
    • 架构配置

处理流程工具

  1. 程序流程图(DFD)用一些图框表示各种操作,它独立于任何一种程序设计语言,比较直观、清晰,易于学习掌握。流程图中能包括5种基本控制结构:顺序型、选择型、WHILE 循环型、UNTIL 循环型和多分支选择。
  2. IPO 图是由IBM 公司发起并逐步完善的一种流程描述工具,其主体是处理过程说明,可以采用流程图、判定树、判定表、盒图、问题分析图或过程设计语言来进行描述。IPO 图中的输入、输出与功能模块、文件及系统外部项都需要通过数据字典来描述,同时需要为其中的某些元素添加注释。
  3. N-S 图与PFD 类似,也包括5种控制结构,分别是顺序型、选择型、WHILE 循环型、UNTIL循环型和多分支选择型,任何一个N-S 图都是这5种基本控制结构相互组合与嵌套的结果。在N-S 图中,过程的作用域明确;它没有箭头,不能随意转换控制;而且容易表示嵌套关系和层次关系;并具有强烈的结构化特征。但是当问题很复杂时,N-S 图可能很大。
  4. 问题分析图(PAD )是继 PDF 和N-S 图后,又一种描述详细设计的工具。PAD 也包含5种基本控制结构,并允许递归使用。
  5. 过程设计语言(PDL)也称为结构化语言或伪代码,它是一种混合语言,采用自然语言的词汇和结构化程序设计语言的语法,用于描述处理过程怎么做,类似于编程语言。过程设计语言用于描述模块中算法和加工逻辑的具体细节,以便在开发人员之间比较精确地进行交流
  6. 对于具有多个相互联系的条件和可能产生多种结果的问题,用结构化语言描述则显得不够直观和紧凑,这时可以用以清楚、简明为特征的判定表来描述。判定表采用表格形式来表达逻辑判断问题,表格分成4个部分,左上部分为条件说明,左下部分为行动说明,右上部分为各种条件的组合说明,右下部分为各条件组合下相应的行动。
  7. 判定树也是用来表示逻辑判断问题的一种常用的图形工具,它用树来表达不同条件下的不同处理流程,比语言、表格的方式更为直观。判定树的左侧为加工名,中间是各种条件,所有行动都列于最右侧。

软件工程

  • 静态分析
    • 静态分析通过解析程序文本从而识别出程序语句中可能存在的缺陷和异常之处。
    • 静态分析包括五个阶段
      • 控制流分析阶段找出并突出显示哪些带有多重出口或入口的循环以及不可达到的代码段。
      • 数据使用分析阶段突出程序中变量的使用情况
      • 接口分析阶段检查子程序和过程声明及它们使用的一致性
      • 信息流分析阶段找出输入变量和输出变量之间的依赖关系
      • 路径分析找出程序中所有可能的路径并画出在此路径中执行的语句

软件管理

  1. 需求变更管理是需求管理的重要内容。需求变更管理的过程主要包括
    1. 问题分析和变更描述
    2. 变更分析
    3. 成本计算
    4. 变更实现。

        2. 项目配置管理中,配置项的状态通常包括草稿、正式发布和正在修改

项目范围说明

  1. 详细的项目范围说明书是项目成功的关键,项目范围定义的输入包括:
    1. 项目章程。
    2. 项目范围管理计划。
    3. 组织过程资产。
    4. 批准的变更申请。

2. 项目范围是为了达到项目目标,为了交付具有某种特制的产品和服务,项目所规定要做的。

3. 在信息系统项目中,

  • 产品范围是指信息系统产品或者服务所应该包含的功能
  • 项目范围是指为了能够交付信息系统项目所必须做的工作
  • 产品范围是项目范围的基础,产品的范围定义是信息系统要求的度量
  • 项目范围的定义是生产项目计划的基础
  • 产品范围描述是项目范围说明书的重要组成部分。

标准化

  • 我国标准分为国家标准、行业标准、地方标准、企业标准
    • 国家标准: 强制性国家标准代号 GB;推荐性国家标准的代号为 GB/To
    • 行业标准:QJ(航天)、SJ(电子),JB(机械),HB(航空);GJB 为中华人民共和国国家军用标准代号
    • 地方标准:地方标准代号由大写汉字拼音DB 加上省、自治区、直辖市行政区划代码的前两位数字,再加上斜线T 组成推荐性地方标准(DB XX/T),不加斜线T 为强制地方标准(DBXX)
    • 企业标准:企业代号可用大写拼音字母或阿拉伯数字或两者兼用所组成(Q/XXX)

DCMM 数据能力成熟度模型

DCMM(Data Capability Maturity Model,数据能力成熟度模型)是一种用于评估组织数据管理能力的框架。它提供了一套最佳实践,帮助组织识别其数据管理的强项和弱点,并制定改进计划。DCMM由CMMI Institute开发,旨在帮助组织在数据管理方面达到更高的成熟度。

成熟度级别:DCMM将数据管理能力分为五个成熟度级别,从初始级到优化级。

  • 初始级:数据管理活动通常是临时性的、无计划的,且不受管理。
  • 管理级:数据管理活动是计划性的、可重复的,并且有明确的责任和流程。
  • 稳健级:数据管理活动被明确定义,并且在整个组织中被一致地实施。
  • 量化管理级:数据管理活动通过量化指标进行管理,并且能够度量性能和效率。
  • 优化级:数据管理活动持续改进,组织能够通过创新来优化数据管理实践。

八大过程域

        数据战略、数据治理、数据架构、数据应用、数据安全、数据质量管理、数据标准、数据生命周期。这八个过程域共包含28个过程项,441项评价指标。

CMMI 软件能力成熟度模型集成

CMMI(Capability Maturity Model Integration)是一种过程级改进训练和评估程序。它旨在帮助组织改进其过程,并更有效地管理项目、产品和服务的开发和维护。CMMI是由卡内基梅隆大学软件工程研究所(SEI)开发的,它整合了多个早期的成熟度模型,包括软件能力成熟度模型(SW-CMM)和其他行业的能力成熟度模型。

  • 成熟度等级:CMMI定义了五个成熟度等级,从初始级(Level 1)到优化级(Level 5),每个等级都代表了组织过程管理和执行的成熟度水平。
    • 初始级(Level 1 - Initial):过程是无序的,甚至是混乱的,成功依赖于个人英雄主义。
    • 管理级(Level 2 - Managed):过程是可预测和可重复的,基于项目需求和客户期望。
    • 定义级(Level 3 - Defined):过程是标准化的,并且在整个组织内一致地实施。
    • 管理量化级(Level 4 - Quantitatively Managed):过程是量化管理的,通过数据来控制和改进。
    • 优化级(Level 5 - Optimizing):过程持续改进,基于过程性能和创新的度量。

软件分析

  1. 需求获取的基本步骤
    • 开发高层的业务模型
    • 定义项目范围和高层需求
    • 识别用户角色和用户代表
    • 获取具体的需求
    • 确定目标系统的业务流程
    • 整体需求与总结

结构化分析

  • 结构化分析方法的基本思想是自顶向下,逐层分解,把一个大问题分解成若干个小问题,每个小问题再分解成若干个更小的问题。
  • 结构化分析模型的核心是数据字典,围绕这个核心,有三个层次的模型,分别是数据模型、功能模型和行为模型(也成为状态模型)
    • 在实际工作中,一般用E-R 图表示数据模型,用DFD 表示功能模型用状态转换图表示行为模型

面向对象分析

  • 面向对象分析 OOA模型由5个层次组成
    • 主题层
    • 对象类层
    • 结构层
    • 属性层
    • 服务层
  • 从继承包含的内容进行划分,继承的分类中包括取代继承、包含继承、受限继承和特化继承。

软件设计

  1. 软件系统的文档可分为用户文档系统文档两类。
    • 用户文档主要描述系统功能和使用方法,并不关心这些功能是怎样实现的;
    • 系统文档描述系统设计、实现和测试等各方面的内容。
  1. 软件需求开发的最终文档经过评审批准后,则定义了开发工作的需求基线(baseline)。这个基线在客户和开发者之间构筑了计划产品功能需求和非功能需求的一个约定。需求约定是需求开发和需求管理之间的桥梁。
  • 外部设计处于软件设计的开始阶段,主要是按系统需求说明来确定此系统的软件结构和对应于系统需求说明,设计出各个功能部分的功能和接口
  • 内部设计处于软件工程的概要设计阶段,按照外部设计中确立的系统软件结构,来细化此系统各个功能部件以及各个部件接口的设计,并且详细给出各个功能部件详细的数据输入、输出设计。内部设计细化外部设计中的各种功能。

软件设计步骤

软件设计包括体系结构设计、数据设计、接口设计、过程设计

  • 体系结构设计:定义软件系统各主要部件之间的关系
  • 数据设计:将模型转换成数据结构的定义。好的数据设计将改善程序结构和模块划分,降低过程复杂性
  • 接口设计:软件内部,软件和操作系统间以及软件和人之间如何通信
  • 过程设计:系统结构部件转换成软件的过程描述

面向对象设计

  • 面向对象设计的基本任务,把面向对象分析模型转换为面向对象设计模型。面向对象的分析模型主要是由顶层架构图、用例与用例图、领域概念模型构成。
  • 设计模型包含
    • 以包图表示的软件体系结构
    • 以交互图表示的用例实现图
    • 完整精确的类图
    • 针对复杂对象的状态图
    • 描述流程化处理过程的活动图
  • 在面向对象设计中类可以分为三种类型:实体类、边界类、控制类
    • 实体类映射需求中的每个实体,实体类保存需要存储在永久存储体中的信息。实体类是对用户来说最有意义的类,通常采用业务领域术语名称,一般来说是一个名词,在用例模型向领域模型转化中,一个参与者一般对应于实体类。
    • 控制类是用于控制用例工作的类,一般是由动宾结构的短语转化来的名词。控制类用于对一个或几个用例所特有的控制行为进行建模,控制对象通常控制其他对象,因为它们的行为具有协调性
    • 边界类用于封装在用例内、外流动的信息或数据流。边界类是一种用于对系统外部环境与其内部运作之间的交互进行建模的类。边界对象将系统与其外部环境的变更隔离开,使这些变更不会对系统其他部分造成影响。

设计模式

  1. Bridge 桥接模式使用场景
    1. 不希望在抽象以及抽象的实现部分之间有一个固定的绑定关系。例如这种情况可能是因为在程序运行时刻可以选择或切换实现部分。
    2. 类的抽象以及它的实现都应该可以通过生成子类的方法加以扩充,使用Bridge 模式可以对不同的抽象接口和实现部分进行组合,并分别对它们进行扩充。
    3. 对一个抽象的实现部分的修改应该对用户不产生影响,及客户的代码不必重新编译

软件开发

  1. EJB 是企业级Java 构件,用于开发和部署多层结构的、分布式的、面向对象的Java 应用系统。
    1. EJB 分为会话Bean 、实体Bean 、消息驱动Bean
    2. 会话Bean :用于实现业务逻辑,它可以是有状态的,也可以是无状态的。每当客户端请求时,容器就会选择一个会话Bean 来为客户端服务。会话Bean可以直接访问数据库,但更多时候,他会通过实体Bean 实现数据访问。
    3. 实体Bean:用于实现O/R 映射,负责将数据库中的表记录映射为内存中的实体对象,事实上,创建一个实体Bean 对象相当于新建一条记录,删除一个实体Bean 会同时从数据库中删除对应记录,修改一个实体Bean ,容器会自动将实体Bean 的状态和数据库同步。
    4. 消息驱动Bean :是EJB 3.0 中引入的新的企业Bean,它基于JMS 消息,只能接收客户端发送的JMS 消息然后处理。
  1. 软件开发环境(SDE)是指支持软件的工程化开发和维护而使用的一组软件,由软件工具集和环境集成机制构成。
    1. 软件开发环境应支持多种集成机制,如平台集成、数据集成、界面集成、控制集成、过程集成等。
    2. 软件开发环境应支持小组工作方式,并为其提供配置管理,环境的服务可用于支持各种软件开发活动,包括分析、设计、编程、调式和文档等。
    3. 软件开发环境三个部分
      1. 环境信息库:环境信息库是软件开发环境的核心,用以存储与系统开发有关的信息,并支持信息的交流与共享。环境信息库主要存储两类信息,一是开发过程中产生的有关被开发系统的信息,例如分析文档、设计文档和测试报告等;另一类是环境提供的支持信息,如文档模板、系统配置、过程模型和可复用构件等
      2. 过程控制与消息服务器:过程控制与消息服务器是实现过程集成和控制集成的基础。过程集成是按照具体软件开发过程的要求进行工具的选择与组合,控制集成使各工具之间进行并行通信和协同工作
      3. 环境用户界面:环境用户界面包括环境总界面和它实行统一控制的各环境部件及工具的界面。统一的、具有一致性的用户界面是软件开发环境的重要特征,是充分发挥环境的优越性、高效的使用工具并减轻用户学习负担的保证。

软件开发工具

  • 软件开发工具
    • 需求分析工具
    • 设计工具
    • 编码与排错工具
  • 软件维护工具
    • 版本控制工具
    • 文档分析工具
    • 开发信息库工具
    • 逆向工程工具
    • 再工程工具
  • 软件管理和软件支持工具
    • 项目管理工具
    • 配置管理工具
    • 软件评价工具
    • 软件开发工具的评价和选择

软件测试

  • 体系结构实现过程中,测试包括单个构件的功能性测试以及被组装应用的整体功能和性能测试。
  • 软件测试分为两大类:动态测试和静态测试。
    1. 动态测试是通过运行程序发现错误,包括黑盒测试(等价类划分、边界值分析法、错误推测法)与白盒测试(各种类型的覆盖测试);
    2. 静态测试是人工测试方式,包括桌前检查,代码走查、代码审查等
  • 用户需依靠评价程序来评价机器的性能,对于真实程序、核心程序、小型基准程序和合成基准程序来说,其测评程度依次递减
    • 根据国家GB/T15532-2008 ,软件测试可分为单元测试、集成测试、配置项测试、系统测试、验收测试和回归测试等类别。
    • 单元测试也称为模块测试,测试的对象是可独立编译或汇编的程序模块、软件构件或面向对象软件中的类,其目的是检查每个模块是否正确的实现设计说明中的功能、性能、接口和其他设计约束等条件,发现模块内可能存在的各种差错。单元测试的依据是软件详细说明书
    • 集成测试的目的是检查模块之间,以及模块和已集成的软件之间的接口关系,并验证已集成的软件是否符合设计要求。集成测试的依据是软件概要设计文档
    • 系统测试的对象是完整的,集成的计算机系统,系统测试的目的是在真实系统工作环境下,验证完整的软件配置项是否和系统正确连接,并满足系统/子系统设计文档和软件开发合同规定的要求。系统测试的依据是用户需求或开发合同
    • 配置项测试的对象是软件配置项,配置项测试的目的是检验软件配置项与软件需求规格说明的一致性
    • 验收测试是针对软件需求规格说明,在交付前以用户为主进行的测试
      • α 测试:指由用户在开发环境下进行测试
      • β测试:指由用户在实际使用环境下进行测试
    • 回归测试的目的是测试软件变更之后,变更的部分的正确性和对变更需求的复合性,以及软件原有的、正确的功能、性能和其他规定的要求的不损害性。
  • 单元测试策略主要包括自顶向下的单元测试、自底向上的单元测试、孤立测试和综合测试策略
  • 系统测试的主要内容包括
  • 功能测试
  • 健壮性测试
  • 性能测试
    • 负载测试
    • 压力测试
    • 可靠性测试
    • 并发测试
  • 用户界面测试
  • 安全性测试
  • 安装与反安装测试
  • 软件集成测试也称为组装测试、联合测试。它将已通过单元测试的模块集成在一起,主要测试模块间的协作性。从组装策略而言,可以分为一次性组装测试和增量式组装(包括自顶向下、自底向上)两种
  • 自动化测试工具主要使用脚本技术来生成测试用例,脚本是一组测试工具执行的指令集合。脚本的基本结构主要有5种:
    1. 线性脚本是录制手工测试的测试用例时得到的脚本
    2. 结构化脚本具有各种逻辑结构和函数调用功能
    3. 共享脚本是指一个脚本可以被多个测试用例使用
    4. 数据驱动脚本是指将测试输入存储在独立的数据文件中,而不是脚本中
    5. 关键字驱动脚本是数据驱动脚本的逻辑拓展,用测试文件描述测试用例

软件开发方法

软件过程

  • 软件描述:客户和工程师定义所要生产的软件以及对其操作的一些约束
  • 软件开发:软件得以设计和编程实现
  • 软件有效性验证:软件经过检查以保证它就是客户所需要的
  • 软件进化:软件随不同的客户和变化的市场需求而进行修改

形式化方法

        形式化方法是一种具有坚实数学基础的方法,从而允许对系统和开发过程做严格处理和论证,适用于那些系统安全级别要求极高的软件的开发。形式化方法的主要优越性在于它能够数学的表述和研究应用问题及软件实现。但是它要求开发人员具备良好的数学基础。用形式化语言书写的大型应用问题的软件规格说明往往过于细节化,并且难于为用户和软件设计人员所理解。由于这些缺陷,形式化方法在目前的软件开发实践中并未得到普遍应用。

净室软件工程

        CSE 是软件开发的一种形式化方法,可以开发较高质量的软件。它使用盒结构规约进行分析和建模,并且将正确性验证作为发现和排除错误的主要机制,使用统计测试来获取认证软件可靠性所需要的信息。CSE 强调在规约和设计上的严格性,还强调统计质量控制技术,包括基于客户对软件的预期使用测试。

基于构件的开发方法

  • 支持基于构件组装的软件开发过程主要包括:
    • 系统需求概览
    • 识别候选构件
    • 根据发现的构件修改需求
    • 体系结构设计
    • 构件定制与适配
    • 组装构件,创建系统

敏捷开发

  • 特点
    • 敏捷方法遵循迭代增量式开发过程
    • 敏捷方法是适应性,非可预测型
    • 敏捷方法以人为本,非以过程为本
  1. 开放式源码项目有一个特别之处,就是程序开发人员在地域上分布很广。这使得它和其他敏捷方法不同,因为一般的敏捷方法都强调项目组成员在同一地点工作。
  2. 功用驱动开发方法(FDD)致力于短时的迭代,迭代和可见可用的功能。在FDD 中,编程开发人员分成首席程序员和"类“程序员两类。

RUP 统一过程开发方法

  • RUP 是用例驱动的、以体系结构为中心的、迭代和增量的软件开发过程。
  • RUP 软件开发生命周期是一个二维的软件开发模型,其中有9个核心工作流
    • 业务建模: 确定业务需求、理解业务环境和业务领域;建立业务用例模型,分析业务流程。
    • 需求:收集和分析用户需求,定义系统功能;产生用例和补充规范,细化需求
    • 分析与设计:分析问题领域,建立系统架构;设计组件和类,创建数据模型和体系结构模型。
    • 实现:将设计转换为可执行代码;编写单元测试,进行编码和调式
    • 测试:验证系统的正确性和质量;执行单元测试,集成测试,系统测试和验收测试
    • 部署:将软件部署到生产环境中;确保软件能在目标环境中正常运行
    • 配置与变更管理:跟踪和控制软件的版本和变更;管理软件配置项和基线
    • 项目管理:规划、监督和控制项目进度;管理资源、风险和项目质量
    • 环境:支持其他流程的工具和环境;包括过程工具、建模工具、代码生成工具等
  • RUP 软件过程
    • 四个顺序阶段:初始阶段、细化阶段、构建阶段、移交阶段
      • 初始阶段的任务是为系统建立业务模型并确定项目边界
      • 细化阶段任务是分析领域问题、建立完善的架构、淘汰项目中最高风险元素
      • 构建阶段,要开发所有剩余的构件和应用程序功能,把这些构件集成为产品
      • 移交阶段的重点是确保软件对最终用户是可用的
  1. RUP 采用“4+1 ” 视图模型来描述软件系统的体系结构
    • “4+ 1”视图包括 逻辑视图、实现视图、进程视图、部署视图和用例视图
      • 分析人员和测试人员关心的是系统的行为,侧重于用例视图
      • 最终用户关心的是系统的功能,会侧重于逻辑视图
      • 程序员关心的是系统的配置、装配等问题,会侧重于实现视图
      • 系统集成人员关心的是系统的性能、可伸缩性、吞吐率等问题,因此会侧重于进程视图
      • 系统工程师关心的是系统的发布、安装、拓扑结构等问题,因此会侧重于部署视图

软件可靠性

  1. 在容错设计技术中,N版本程序设计通过设计多个模块或不同版本,对相同条件和输入进行多数表决,以提高软件可靠性;
  2. 冗余设计则通过设计不同路径,算法或实现方式的备份模块或系统来提高系统的容错能力

系统架构

  1. 软件架构贯穿于软件的整个生命周期,但在不同的阶段对软件架构的关注力度并不相同。
    1. 其中需求分析阶段主要关注问题域
    2. 设计阶段主要将需求转换为软件架构模型
    3. 软件实现阶段主要关注架构设计转换为实际的代码
    4. 软件部署阶段主要通过组装软件组件提高系统的实现效率
  2. 软件架构设计是降低成本、改进质量、按时和按需交付产品的关键因素。架构设计能够满足系统的性能、可维护性等品质;能够使得不同的利益相关人达成一致的目标;能够支持项目计划和项目管理等活动;能够有效地管理复杂性;然而系统架构的给出必须建立在明确的基础上。

构件

  • 构件又称为组件,是一个自包容,可复用的程序集。构件是一个程序集,或者说是一组程序的集合。这个集合可能会以各种方式体现出来,如源程序或二进制的代码。这个集合整体向外提供统一的访问接口,构件外部只能通过接口来访问构件,而不是直接操作构件的内部。构件的两个最重要的特性是自包容与可重用

系统移植

  • 系统移植工作大体上分为计划阶段、准备阶段、转换阶段、测试阶段和验证阶段
    • 为了有效地进行系统移植,就得使系统移植工作标准化;配置软件工具实现自动化;还要简化各阶段的工作
    • 计划阶段要进行现有系统的调查整理,探讨如何转换成新系统,决定移植方法,确立移植工作体制及移植日程
    • 准备阶段要进行移植方面的研究,准备转换所需的资料
    • 转换阶段是将程序设计和数据转换成新机器能根据需要工作的阶段
    • 测试阶段是进行程序单元、工作单元的测试
    • 验证阶段是测试完的程序使新系统工作,最后核实系统,准备正式运行的阶段

逆向工程

  • 逆向工程导出的信息可分为4个抽象层次
    • 实现级:包括程序的抽象语法树、符号表等信息
    • 结构级:包括反映程序分量之间相互依赖关系的信息,例如调用图,结构图等
    • 功能级:包括反映程序段功能及程序段之间关系的信息
    • 领域级:包括反应程序分量或程序与应用领域概念之间对应关系的信息

面向服务架构

  1. SOA 基于Web Serivces 实现的面向服务系统中,服务提供者、服务使用者和服务注册器之间的远程交互通过SOAP (简单对象访问协议)实现,服务内容描述通过 WSDL (web 服务描述语言)标准实现,服务注册信息通过UDDI (服务统一描述、发现和集成)框架实现,通过BPEL /BPEL4WS (业务过程执行语言)将分散的、功能单一的Web服务组织成一个复杂的有机应用。
    • WSDL 协议主要用于描述web 服务和说明如何与Web 服务通信;
    • UDDI 提供服务描述与发现的标准规范
    • SOAP是一种用于Web服务通信的协议,它定义了消息的结构和传输方式

架构风格

客户端/服务器风格

  • 客户端/服务器系统开发时可以采用不同的分布式计算架构;
    • 分布式表示架构:表示层和表示逻辑层迁移到客户机,应用逻辑层、数据处理层和数据层仍保留在服务器上。
    • 分布式数据架构:数据层和数据处理层放置于服务器,应用逻辑层、表示逻辑层和表示层放置于客户机
    • 分布式数据和应用架构:数据层和数据处理层放置在数据服务器上,应用逻辑层放置在应用服务器上,表示逻辑层和表示层放置在客户机上。

仓库风格

        在仓库风格中有两种不同的构件:中央数据结构说明当前状态,独立构件在中央数据存储上执行,仓库与外构件间的相互作用在系统中会有很大的变化。

  • 按控制策略的选取分类,可以产生两个主要的子类。
    • 若输入流中某类时间触发进程执行的选择,则仓库是传统型数据库;
    • 另一方面,若中央数据结构的当前状态触发进程执行的选择,则仓库是黑板系统。

闭环控制

  • 闭环结构通常适用于处理简单任务(如机器人装配等),并不适用于复杂任务。

系统架构评估

架构开发方法

DSSA

  • DSSA 的特征包括领域性、普遍性、抽象性和可复用性
  • 从软件需求模型向SA 模型的转换主要关注两个问题:
    • 如何根据需求模型构建软件架构模型
    • 如何保证模型转换的可追踪性

嵌入式

  1. 大多数嵌入式系统都具备实时特征,其典型架构可以概括为层次化模式架构递归模式架构

分类

MPU

MPU 是“嵌入式微处理器”,采用增强型通用微处理器

MCU

MCU 又称“单片微型计算机"或者单片机;体积小,所以功耗和成本下降

DSP

是一种独特的微处理器,是以数字信号来处理大量信息的器件;它的强大数据处理能力和高运行速度是最值得称道的两大特色

SOC

称为"系统级芯片”,称为“片上系统”;意指他是一个产品,是一个有专用目标的集成电路,其中包含完整系统并有嵌入软件

微内核

从操作系统中去掉尽可能多的东西,而只留下一个最小的核心,称之为微内核。

  • 优点
    • 统一的接口,在用户态和和核心态之间无需进程识别
    • 可伸缩性好,能适应硬件更新和应用变化
    • 可移植性好,所有与具体机器特征相关的代码,全部隔离在微内核中,如果操作系统要移植到不同的硬件平台上,只需修改微内核中极少代码即可
    • 实时性好,微内核可以方便地支持实时处理
    • 安全可靠性高,微内核将安全性作为系统内部特征来进行设计,对外仅使用少量应用编程接口
    • 支持分布式系统,支持多处理器的体系结构和高度并行的应用程序
  • 缺点
    • 难以进行良好的整体优化
    • 进程间互相通信的开销大,内核功能代码不能相互调用而带来服务的效率底。

新技术

比特币

  1. 挖矿,是指利用电脑硬件计算出比特币的位置并获取的过程。简单地说,挖矿就是一个记账的过程,矿工就是记账员,区块链就是账本。每隔一个时间点,通过哈希(Hash)算法,将过去一段时间内未经比特币全网认可的交易信息收集,整理,对全网所有节点进行广播,最终被所有节点承认并得到比特币的过程。比特币系统会在系统节点上生成一个随即代码,互联网中的所有计算机都可以去寻找此代码,谁找到此代码,就会产生一个区块,随即得到一个比特币,这个过程就是人们常说的挖矿。计算这个随即代码需要大量的GPU 运算,于是矿工们采购海量显卡用以更快速的获得比特币获利。同时,挖矿是发行新币的唯一方式,对于发行新币,维系比特币支付功能,保证系统安全,有着举足轻重的影响。
  2. 挖矿本身并不能防止双花(同一笔数字资产因不当操作被重复使用的情况)攻击。由于挖矿越来越难,耗电量也越来越大,我国已明文禁止。

数字孪生生态系统

  1. 数字孪生生态系统由基础支撑层、数据互动层、模型构建与仿真分析层、共性应用层和行业应用层组成。
    1. 其中基础支撑层由具体的设备组成,包括工业设备、城市建筑设备、交通工具、医疗设备组成。
    2. 数据互动层包括数据采集、数据传输和数据处理等内容。
    3. 模型构建与仿真分析层包括数据建模、数据仿真和控制
    4. 共性应用层包括描述、诊断、预测、决策四个方面
    5. 行业应用层包括智能制造、智慧城市在内的多方面应用

边缘计算

  1. 边缘计算的特点包括
    • 联接性
    • 约束性
    • 分布性

信息系统

电子商务与电子政务

  •         电子政务包含:政府对政府(G2G),政府对企业(G2B),政府对居民(G2C),企业对政府(B2G),居民对政府(C2G)
  •         电子商务包含:B2B (企业对企业)、B2C(企业对居民)、C2C(居民对居民)

ERP

  • 企业资源规划 (ERP)是一个有效组织、计划和实施企业的内外部资源的管理系统。它集信息技术和先进的管理思想于一身,是统一的集成系统、面向业务流程的系统、模块化可配置的系统、开放的系统。其功能包括财会管理、生产控制管理、物流管理和人力资源管理等。
  • ERP 的关键是事前规划管理

CRM 集成化信息管理系统

  • 具有整合各种客户联系渠道的能力,并把客户数据分为描述性、促销性和交易性数据三大类。
  • 系统必须实现基本的数据挖掘模块,能对客户信息进行全方位的统一管理
  • 能够提供销售、客户服务和营销三个业务的自动化工具,并具有可拓展性和可复用性

MIS 管理信息系统

  • 从管理信息系统(MIS)概念触发,管理信息系统由四大部件组成,即信息源、信息处理器、信息用户和信息管理者

法律法规

  1. 知识产权法属于民法范畴,是民法中的特别法
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

找了一圈尾巴

你的鼓励将是我创作的动力

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

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

打赏作者

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

抵扣说明:

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

余额充值