软考系统架构师知识点
软件可靠性相关****(2009论文四)
一、影响软件可靠性的主要因素有:
- 运行环境(软件可靠性的定义是相对于运行环境的):
- 软件规模;
- 软件内部结构(内部结构越复杂,包含的缺陷数就可能越多);
- 软件的开发方法和开发环境;
- 软件的可靠性投入等。
二、软件可靠性设计技术包括:
- 容错技术:N+1版本、恢复块设计、防卫式程序设计(错误处理机制)。具体参考教材或者思维导图。
- 检测技术。
- 降低复杂度。
软件质量属性相关
软件质量属性是影响架构的重要因素,主要有以下几种质量属性。
常见的软件质量属性有多种,例如性能(Performance)、可用性(Availability)、可靠性(Reliability)、健壮性(Robustness)、安全性(Security)、可修改性(Modification)、可变性(Changeability)、易用性(Usability)、可测试性(Testability)、功能性(Functionality) 和互操作性(Inter-operation)等。
这些质量属性的具体含义是:
- (1) 性能是指系统的响应能力,即要经过多长时间才能对某个事件做出响应,或者在某段时间内系统所能处理事件的个数。
- (2) 可用性是系统能够正常运行的时间比例。
- (3) 可靠性是指软件系统在应用或错误面前,在意外或错误使用的情况下维持软件系统功能特性的基本能力。
- (4) 健壮性是指在处理或环境中,系统能够承受压力或变更的能力。
- (5) 安全性是指系统向合法用户提供服务的同时能够阻止非授权用户使用的企图或拒绝服务的能力。
- (6) 可修改性是指能够快速地以较高的性能价格比对系统进行变更的能力。
- (7) 可变性是指体系结构经扩充或变更成为新体系结构的能力。
- (8) 易用性是衡量用户使用一个软件产品完成指定任务的难易程度。
- (9) 可测试性是指软件发现故障并隔离、定位其故障的能力特性,以及在一定的时间和成本前提下,进行测试设计、测试执行的能力。
- (10) 功能性是系统所能完成所期望工作的能力。
- (11) 互操作性是指系统与外界或系统与系统之间的相互作用能力。
架构风格
定义:软件架构风格是描述特定软件系统组织方式的惯用模式。组织方式描述了系统的组成构件和这些构件的组织方式,惯用模式则反映众多系统共有的结构和语义。
分类
1、数据流风格。
2、调用返回风格。
3、独立构件风格。
4、虚拟机风格。
5、仓库风格(以数据为中心的风格)。
6、其他风格。
- 封闭控制
PV操作相关
https://www.cnblogs.com/yansunda/p/14782706.html
参考2011年真真题2,3,4
总结:自身想执行,将自身执行所需要的资源加锁P操作。让下一步执行,要将下一步执行所需要的资源V操作。
架构评估相关
有关:风险、敏感点和权衡点
- 系统架构风险是指架构设计中潜在的、存在问题的架构决策所带来的隐患。
- 敏感点是指为了实现某种特定的质量属性,一个或多个系统组件所具有的特性。
- 权衡点是指影响多个质量属性,并对多个质量属性来说都是敏感点的系统属性。
数据库规范化与反规范化相关
一、规范化
二、反规范化
- 请用300字以内的文字,说明什么是数据库建模中的反规范化技术,指出采用反规范化技术能获得哪些益处,可能带来哪些问题。
规范化设计后,数据库设计者希望牺牲部分规范化来提髙性能,这种从规范化设计的回退方法叫做反规范化技术。
反规范化设计允许保留或者新增一些冗余数据,从而减少数据查询中表连接的数目或简化计算过程,提高数据访问效率。
采用反规范化技术的益处:能够减少数据库查询时SQL连接的数目,从而减少磁盘I/O数据量,提高查询效率。
可能带来的问题:数据的重复存储,浪费了磁盘空间;为了保障数据的一致性,增加了数据维护的复杂性。- 请简要叙述常见的反规范化技术有哪些。
常见的反规范化技术包括:
(1) 增加冗余列:在多个表中保留相同的列,通过增加数据冗余减少或避免查询时的连接操作;
(2) 增加派生列:在表中增加可以由本表或其他表中数据计算生成的列,减少查询时的连接操作并避免计算或使用集合函数;
(3) 表水平分割:根据一列或多列数据的值,把数据放到多个独立的表中,主要用于表数据规模很大、表中数据相对独立或数据需要存放到多个介质上时使用;
(4) 表垂直分割:对表进行分割,将主键与部分列放到一个表中,主键与其他列放到另一个表中,在查询时减少I/O次数。面向对象相关
原则:
- 单一功能
- 开闭原则
- 里氏替换
- 接口隔离
- 依赖反转
企业集成
类型:
界面集成(表示集成):统一入口、统一认证授权、统一界面风格、统一功能菜单和待办事项。
过程集成:使各个应用系统链接起来支持完整的业务流程,常用技术为工作流、企业门户。
应用集成(控制集成):两个以上应用系统中的数据和程序提供接近实时的集成,常用技术有远程过程调用、消息中间件、服务总线(ESB)、Web服务等。
数据集成:解决的是信息系统之间数据同步(包括主数据系统向副本系统同步、源系统向数据仓库同步)和时效性(包括实时、批量)瓿,常用技术为适配器、消息中间件、数据产品线、数据仓库等。需要解决的问题:异构数据、数据标准不统一的交易系统数据进行采集、转换、清洗、存储、整合、加工。为相关系统提供数据支持。
作者:admin 创建时间:2022-09-30 15:03
最后编辑:admin 更新时间:2022-11-02 13:24
最后编辑:admin 更新时间:2022-11-02 13:24