乐于分享
好东西不私藏

软考架构师|软件架构设计 (19–28 分) 核心考点① 架构风格与 4+1 视图(共5篇)

软考架构师|软件架构设计 (19–28 分) 核心考点① 架构风格与 4+1 视图(共5篇)

4.1软件架构概念

4.1.1架构概念

架构的本质:软件架构为软件系统提供了一个结构、行为和属性的高级抽象。

软件架构风格是定应用领域的惯用模式,架构定义一个词汇表和一组约束。

架构的作用:

    1.软件架构是项目干系人进行交流的手段

    2.软件架构是可传递和可复用的模型,通过研究软件架构可能预测软件的质量

    3.软件架构使推理和控制的更改简单,有助于循序渐进的原型设计,可以作为培训的基础。

4.1.2架构发展历程

1.逻辑视图(最终用户):关注系统的功能需求,描述设计的对象模型和对象之间的关系;描述了系统的功能如何被各个模块和组件实现的。帮助开发者理解系统的业务功能和各部分之间的关系。(静态视角)

2、开发视图(编程人员):描述了软件模块的组织与管理,关注软件的物理实现和源代码组织,描述了软件的层次结构,模块的组织方式,以及这些模块如何分布在开发环境中。关注软件的静态组织结构,代码如何在开发环境中被组织管理,不直接支持系统的功能依赖,而是关注于软件模块的组织,依赖关系和构建过程。(静态视角)

3、进程视图/过程视图(系统集成人员),系统动态方面,描述了设计的并发和同步机制,关注系统如何运行,各个进程或线程的交互和通信。(动态视角)

4.物理视图(系统工程人员):软件如何映射到硬件上,物理分布和硬件的选择(动态视角)

5.场景(风险承担者):用来展示系统的具体用例。用例图的一部分,通常通过用例图和序列图来描述用户如何与系统交互。描述系统的参与者和功能用例之间的关系,不仅可以用图形来表示,还可以用例图或时序图等

4.1.3ADL(架构的设计语言)

ADL的三个基本元素

    构件:计算或数据存储单元

    连接件:用于构件之间交互建模的体系结构构造及其支配这些交互规则

    架构配置:描述体系结构的构件与连接件的连接图

4.2软件架构风格

是描述一个特定应用领域中系统组织方式的惯用模式。架构风格反馈领域中众多系统所共有的结构和语义特性强调对架构设计的重用。

4.2.1数据流风格

4.2.1.1批处理
一个接一个,整体方式传递

4.2.1.2管道过滤器

数据流的方式。传统编译器通、网络报文处理、实时报文解析、路由器、防火墙

4.2.2调用/返回风格

包含:主程序/子程序、面向对象、分层架构、客户端/服务端风格

分层:层次越多效率越低

4.2.2.1主程序/子程序

一般单线程。构件即为主程序和子程序、过程调用作为交互机制,main函数

4.2.2.2面向对象风格

在数据抽象和面向对象的基础上、构件是对象

4.2.2.3层次型体系

OSI7层协议、虚拟机

网络协议栈(如TCP/IP分层模型)。

操作系统内核(硬件抽象层系统调用层用户层)。

连接件由通过决定层间如何交互的协议来决定的

4.2.3独立构件

4.2.3.1进程通信

构件是独立的过程,连接件是消息传递。

特点:构件通常是命名的过程。消息传递可以是点对点,异步或同步及远程调用

4.2.3.2事件驱动体系(隐式调用)

系统中的其他构件中的过程在一个或多个事件中注册,当一个事件被触发,系统自动调用在这个事

通过事件驱动机制实现组件之间的松耦合交互,虽然允许灵活调用,但流程控制依赖于事件触发,不能保证这些事件被调用的顺序,无法完成像解释器那样定义复杂的流程

4.2.4虚拟机风格

4.2.4.1解释器(图也要记住)

自定义规则,不同规则的灵活组合,

解释引擎、动态执行、脚本解析、模拟新操作系统的运行环境虚拟机(VM

4.2.4.2基于规则系统的构造,图也要记住

规则集、规则解释器、规则/数据选择及内存工作。一般用在人工智能领域和DSS(决策支持系统)中。(加强了:规则,经验,专家的支持)。

4.2.5仓库风格

4.2.5.1数据库系统

中央共享数据源、多个独立处理单元:处理单元对数据元素进行操作(ORACLE数据库开发系统)

4.2.5.2黑板系统

(信号处理、语音识别,模式识别,图像处理,问题规划、知识推理)、超文本系统

仓库风格中:

    中央数据结构:说明当前状态;

    独立构件:在中央数据存储上执行。

黑板架构通常:

    黑板:用于存储和共享数据;

    知识源:多个独立的处理模块,每个知识源针对特定任务或领域知识,对黑板上的数据进行处理、分析或推导;

    控制器:协调知识源的活动。

4.2.7 C2风格

基本规则:

    构件和连接间都有一个顶部和底部

    构件的顶部要连接到连接件的底部,构件的底部要连接到连接间的顶部,构件之间不许直连

4.3基于架构的开发方法ABSD

ABSDArchitecture-Based Software Design)方法是架构驱动。强调由业务、质量、功能需求的组合驱动架构设计。

ABSD方法有三个基础。第一个基础是功能分解。第二个基础是通过选择架构风格来实现质量和业务需求。第三个基础是软件模板的使用

视角与视图:从不同视角来检查,所以会有不同的视图

用例来捕获功能需求,特定场景来捕获质量需求,体系结构风格和软件模板用于实现质量和商业需求

ABSD的方法是体系结构驱动的方法,即由构成体系结构的 业务(商业),质量和功能需求的组合驱动,是一个自顶向下的方法,软件系统的架构通过该方法得到细化,直到能产生软件构件和模块(类)

ABSD体系结构一般来自3个方eadi]面:系统的质量目标,系统的商业目标和开发人员的商业目标

ABSD,顶层被分解为概念子系统

ABSD模型把基于体系结构的软件过程划分为:体系结构需求,设计,文档化,复审,实现和演化6个子过程

架构需求过程和架构设计过程(大概过程也要有印象)

架构实现过程和架构演化过程(大概过程也要有印象)