软考高级架构知识点

11 阅读1分钟

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

1. 基础:功能分解、通过选择架构风格实现质量和业务需求、软件模版的选择。

2.过程:架构需求、设计、文档化、架构复审、实现、演化

4+1视图模型

1.通过多个视角,描述软件架构。

2. 4视角:逻辑视图,开发视图,进程视图,物理视图;1:场景视角。

逻辑视图描述有哪些功能模块;开发视图描述代码组织结构;进程视图描述功能模块间的通信和流转机制;物理视图描述部署相关内容。场景视角通过具体用例描述具体的功能和场景属性。

DSSA 特定领域软件体系结构

1. 领域分析:产出领域模型,即领域需求。

2. 领域设计:依据领域需求,设计解决方案。

3. 领域实现:根据领域设计,进行方案的落地。

软件架构的演化步骤:需求变化归类,制定体系结构演化计划,修改、增加、删除构件,更新构件的相互作用,构件组装和测试,技术评审。

架构评估方法

1. 分类:基于问卷调查或检索表、基于场景的方式、基于度量的方式。

2. 场景:场景是从风险承担者的角度对系统的交互的简短描述。在架构评估中,一般用刺激、环境、响应三方面来对场景进行描述。

3. SAAM:用于架构的最终版本。输入为:问题描述、需求声明、架构描述。步骤为:场景开发、架构描述、单个场景评估、场景交互、总体评估。

4.ATAM:对多个质量属性进行评价和折中。

5.CBAM:对架构设计的成本和收益进行建模和评估。

数据库

1. 事务的特性:原子性,持久性,一致性,隔离性。

原子性:都成功才算成功,只要有一个失败就回滚操作。

持久性:事务提交后,对数据的更改永久生效,即使系统奔溃也不会丢失。通过先写日志,后写磁盘实现。

一致性:数据符合预定义的业务规则。

隔离性:事务并发执行的时候,相互感受不到彼此对数据的更改。

2. 数据库设计范式

1. 1NF:属性具有原子性,即属性不可以再拆分。

2. 2NF:非主属性完全依赖主属性,而不是部分函数依赖。比如主键为复合主键AB,函数依赖关系为A -> C,则C部分依赖了主键,则不满足2NF。

3. 3NF:消除非主属性对主属性的传递依赖。比如A为主键,依赖关系为A -> B -> C,C可以间接通过A被找到,即对主属性有传递依赖。必须是直接依赖

4. BCNF:消除主属性对候选码的函数依赖。即所有决定因素都是主属性。比如,主属性A,候选码B,通过B -> A则不符合BCNF。

OSI 模型

应用层      提供用户接口   http,DNS,FTP   浏览器,邮件

传输层      端到端传输数据   tcp,udp

网络层      ip寻址,路由选择   ip     路由器

数据链路层   MAC寻址       交换机

物理层       传输比特流       网线,光纤,集线器