jieqiuming / jieqiuming.github.io

记录我的学习、生活过程
MIT License
0 stars 0 forks source link

系统分析师考试下午试题分析 #12

Open jieqiuming opened 3 years ago

jieqiuming commented 3 years ago

一、2017

基于微服务的系统分析与设计

微服务应包含的内容

包含完整的业务功能,开放一种或多种接口为其他服务使用,并可能包含一个自己私有的数据库

与传统单体式系统相比,优势

1. 模块化,微服务强调模块化的结构,这对大团队来说很重要
2. 独立部署,简单的服务更容易部署,单个的服务出问题不会导致整个系统的故障
3. 技术多样性,可以混合使用多种编程语言、开发框架以及数据存储技术

挑战

1. 分布式特性,分布式系统的编程难度更大,因为远程调用慢,而且总存在失败的风险
2. 最终一致性,分布式系统的强一致性很难,开发人员需要处理最终一致性
3. 运维的复杂性,需要成熟的运维团队,管理很多需要重新部署的服务

系统数据分析与建模

考察知识点:软件系统数据库分析与建模

数据库设计阶段

1. 规划,进行建立数据库的必要性及可行性分析,确定数据库系统在企业和信息系统中的地位,以及各数据库之间的联系。
2. 需求分析,通过调查研究,了解用户的数据和处理要求,并按一定格式整理形成需求说明书。
3. 概念设计,在需求分析阶段产生的需求说明书的基础上,按照特定的方法将它们抽象为一个不依赖于任何DBMS的概念数据模型
4. 逻辑设计,将概念模型转化为某个特定的DBMS上的逻辑模型,并对所设计的逻辑模型进行优化
5. 物理设计,对给定的逻辑模型选取一个最适合应用环境的物理结构,以确定数据库在物理设备上的存储结构和存储方法

关系型数据库优化理论,范式

1. 第一范式,需要满足每个实体的属性具有唯一值,即消除多值性。不能存在非原子属性,一个字段只存储一项信息
2. 第二范式,需要在第一范式基础上满足所有的非主属性不能部分依赖于主属性,即消除部分依赖。不能存在组合主键,任意一个字段都只能依赖表中的同一个字段
3. 第三范式,需要在第二范式基础上满足所有的非主属性不能依赖于其他非主属性,即消除传递依赖。一张表最多只存2层同类型信息

嵌入式多核程序设计技术

多核技术和多线程技术

1. 多核技术,多核是指多微处理器的简称,是将两个或者更多的独立处理器封装在一起,集成在一个电路中。多核处理器是单枚芯片,能够直接插入单一的处理器插槽中,但操作系统会利用所有相关资源,将它的每个执行内核作为分立的逻辑处理器进行调度
2. 多线程技术,利用处理器的超标量特性,同时执行多条指令。多线程技术需要操作系统的支持,是在操作系统级别上实现一个物理CPU的多线程并发处理,以提高单个CPU利用率。
3. 多核操作系统一般为开发人员提供三种多核调度方式,对称处理(SMP)、非对称处理(AMP)、混合多处理(BMP)

并行和并发

1. 并行(parallel),指当提到多个软件线程并行执行的时候,既意味着这些活动线程在不同硬件资源或者处理单元上同时执行,也就是说多个线程在任何时间点都同时执行
2. 并发(concurrent),指当提到多个软件线程并发执行的时候,既意味着这些活动线程在同一个硬件资源上交替执行的过程,也就是说所有活动线程在某段时间内同时执行的状态,但在某个给定的时刻都只有一个线程在执行。

数据库分析与建模

反规范化设计

反规范化设计

关系模式规范化设计会导致性能问题,因此关系模式的非规范化就是为了获得性能上的要求所进行的违反规范化规则的操作。

  1. 问题:数据冗余,更新异常
  2. 常见方法:增加冗余列、增加派生列、重新组表和表分割(水平和垂直)

表分割优缺点:

  1. 优点:将数据分布到多个不同表,这些库表逻辑与物理上都是独立的。系统中最频繁的操作是对当前部分表(按月划分)的操作,有效减少操作表中的记录数目,可有效提升性能。同时按月存储有利于数据迁移、备份和管理。
  2. 缺点:逻辑上破坏了关系概念的完整性,由一个关系变为多个关系。增加数据维护的工作强度,也增加了应用软件设计和实现的复杂度。

物理分区

一般分为水平分区和垂直分区,常见的是水平分区 水平分区分为:

  1. 范围分区,根据属性的连续取值范围进行分区
  2. 哈希分区,根据属性值进行哈希运算后的值进行分区
  3. 列表分区,根据属性的离散取值进行分区

Web系统架构设计

Web内网加速技术优化系统改进方案

  1. 负载均衡,可采用软件级和硬件级负载均衡实现分流和后台减压,如HAProxy、LVS
    • 软件解决方案,在多台服务器对应的操作系统上安装多个附加软件来实现负载均衡
    • 优点:基于特定环境,配置简单,使用灵活,成本低廉,可以满足一般的负载均衡需求
    • 四层负载均衡,LVS和HAProxy,在linux内核层进行数据交换,高并发能力接近硬件级负载均衡水平;不足之处是不能检测后端服务器存活情况和不支持正则动静分离。
    • 七层负载均衡,HAProxy和Nginx,支持虚拟主机,在负载均衡的同时都有保持session的方案,并且可以进行动静分离,但是其性能不如四层交换。
    • 硬件-负载均衡器,形式多样,可集成在交换设备上,也可以是独立设备,成本昂贵,常见的有NetScaler、F5等
  2. 缓存服务器,保存静态文件,减少网络交换量,加速响应请求,如Squid、Memcached
  3. Web应用服务器,加速对请求进行处理,如JBoss、Apache Tomcat、Jetty
  4. 分布式文件系统,文件存储系统,快速查找文件,如FastDFS、HDFS、MooseFS
    • 以透明方式链接文件服务器和共享文件夹,然后将其映射到单个层次结构,以便可以从一个位置对其进行访问,而实际上数据却分布在不同的位置。
  5. 分布式数据库,缓存、分割数据、加速数据查找,如Mongodb、Mysql
    • 用计算机网络将物理上分散的多个数据库单元连接起来组成的一个逻辑上统一的数据库。每个被连接起来的数据库单元称为站点或节点。
    • 为提高分布式数据库的性能,发挥其优势,常见的实现技术有读写分离、数据分割、数据索引、数据缓存、负载均衡等。
jieqiuming commented 3 years ago

二、2016

软件系统可行性分析

系统设计

  1. 系统设计过程中,类分为三种类型:实体类、边界类(接口类)和控制类

    • 实体类映射需求中的每个实体,实体类保存需要存储在永久存储体中的信息。
    • 边界类用于封装在用例内、外流动的信息或数据流。
    • 控制类是用于控制用例工作的类,一般是由动宾结构的短语(动词+名词或名词+动词)转化而来的名称。
  2. 活动图和流程图的区别

    • 活动图是面向对象的,而流程图是面向过程的
    • 活动图描述的是对象活动的顺序关系所遵循的规则,它着重表现的是系统的行为,而非系统的处理过程。流程图着重描述处理过程,它的主要控制结构是顺序、分支和循环,各个处理过程之间有严格的顺序和时间关系
    • 活动图能够表示并发活动的情形,而流程图不能
  3. 状态图描述了一个实体基于事件反应的动态行为。

数据库设计

  1. 关系范式规范化和反规范化
    • 关系范式规范化的结果是关系越来越小,关系范式的概念越单一,但是实际会涉及到夺标关联操作,影响查询效率,因此应用经常采用反规范化的方式来提高查询效率。
    • 反规范化带来的直接结果是数据冗余存放,会造成更新异常的问题。如果保持两个地方存储数据的一致性,方法有两种,一宗是通过程序实现,另一种是通过触发器实现
  2. 数据库设计中的并发问题和数据库事务隔离级别
    • 如果多个用户产生了对同一个数据的并发读取操作,就会出现并发问题,会造成数据的不一致。在数据库事务隔离级别定义中,定义了并发问题会造成的三种现象,分别是丢失修改、读脏数据和不可重复读,而根据这三种现象,划分了4种不同的事务隔离级别:未提交读、已提交读、可重复读、可串行化。
    • 隔离级别越高,所需要消耗的性能越大,默认隔离级别为可重复读
jieqiuming commented 3 years ago

2015

软件项目进度管理

Gannt 图进度规划

项目进度控制就是将实际进度与计划进度进行比较并分析结果,以保持项目工期不变,保证项目质量和所耗费用最少为目标,做出有效对策,进行项目进度更新。项目进度更新主要包括两方面的工作,即分析进度偏差的影响和进行项目进度计划的调整。

  1. 关键活动的调整。对于关键路径,由于其中任一活动持续时间的缩短或延长都会对整个项目工期产生影响。项目进度更新的重点,进度提前和进度落后的调整方法。
  2. 非关键活动的调整。为了更充分利用资源,降低成本,必要时可对非关键活动的时差做适当调整,但不得超出总时差,且每次调整均需进行时间参数计算,以观察每次调整对计划的影响。三种方法:在总时差范围内延长非关键活动的持续时间、缩短工作的持续时间、调整工作的开始或完成时间。
  3. 增减工作项目,增加工作项,只对原遗漏或不具体的逻辑关系进行补充;减少工作项,只是对提前完成的工作项或原不应设置的工作项予以消除。
  4. 资源调整,若资源供应发生异常时,应进行资源调整。前提保证工期不变或使工期更加合理。资源调整方法是进行资源优化,提高资源利用率。

系统业务架构分析

Zachman框架

全称为企业架构和企业信息系统架构,可以对企业信息按照要求分类和从不同角度进行表示。在Zachman表格中,有36个方格,每个方格就是一个角色和每个描述焦点的交汇。

软件系统运行与维护

遗留系统对待策略

遗留系统是指任何基本上不能进行修改和演化以满足新业务需求变化的信息系统。

  1. 淘汰策略,遗留系统技术含量低、业务价值低,应采取
  2. 继承策略
  3. 改造策略
  4. 集成策略