[架构之路-108]-《软考-》-1-软件架构概述:架构视图

Posted 文火冰糖的硅基工坊

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[架构之路-108]-《软考-》-1-软件架构概述:架构视图相关的知识,希望对你有一定的参考价值。

前言:

第1 软件架构的概念

1.1 软件架构的概念

备注:

  1. 软件架构师的定位

软件架构师在需求分析与软件设计中间的一个环境,只有在复杂的、大系统中,且程序员对业务领域的专业知识的理解有加大的难度的产品中,需要增加专门的架构师的角色,用于屏蔽专业的业务需求计算机程序编程之间的鸿沟,这种情况下,架构师很大一部分的精力用于理解业务领域的知识,比如4G/5G移动通信系统。

在小系统中,或者业务领域部很容易理解的系统,程序员很容易把业务领域的知识映射到计算机领域,这时候,就不需要专门,架构设计通常与软件设计整合在一起了。

  1. 软件架构的用处

  1. 本质是建模:为软件系统建模,即静态的结构、属性和动态的行为、约束条件等。

  1. 交流的手段:不同干系人的交流软件系统,而不是使用软件代码来交流软件系统。

  1. 推理的手段:无论是软件系统的持续演进,还是技术培训,预测软件的质量,软件架构都是重要的依据。

1.2 软件架构的发展史

  1. 无架构:汇编语言、业务简单、程序简单

  1. 萌芽阶段:C语言,结构化程序设计

  1. 初级阶段:C++或其他面向对象语言,面向对象的分析与设计

  1. 高级阶段:UML或其他建模语言,4+1试图,全面、多视角、可视化。

1.3 建模的类型

描述系统行为的方法和角度不同,就得到了不同的模型。

不同的模型,只反映的目标软件系统的某个侧面,因此,不同的模型并非是互斥的,而是相互补充的。

  1. 结构组件模型:

用于描述软件系统的组件以及组件之间的连接关系。

  1. 整体框架模型:

把模型,模块,组件,这三者结合起来之后就是框架,框架关注的整体呈现的外部形态。

  1. 动态交互模型:

展现的软件系统动态的交互行为、软件内部组件的交互行为,即Message sequence。

  1. 过程步骤模型:

构建系统的步骤与过程、业务处理流程、数据处理流程,都是过程模型。

  1. 功能层次模型:

为了有机的组织一个复杂的系统,实现不同功能的解耦与隔离,金字塔的分层次结构或树形分层结构,都是有效组织复杂系统的手段和方法:

下层为上次提供服务,上层指使下层,或者说上层完成下层完成某种功能与职责,上层享受下层提供的服务。上层利用下层提供的服务整合成更复杂的服务和业务功能,越是底层,实现的功能越单一,越上层,

人类社会和软件架构异曲同工。

1.4 软件架构建模(4+1模型)

1.4.1 场景:用例与用例图

  1. 用例视图,描述系统外部的行为

1.4.2 视图

1.4.2.1 逻辑视图:

反映的系统的逻辑功能,是逻辑组件的组成以及组件之间的关系。

这是一个最直观、最普遍的建模方法。这种方法以架构的构件、连接件和其他概念来刻画结构,并力图通过结构来反应系统的重要语义内容,包括系统的配置、约束、隐含的假设条件、风格、性质。研究结构模型的核心是架构描述语言

1.4.2.2 开发视图:

它又叫实现视图,描述了在开发环境中软件的静态组织结构(组件、关系),主要侧重于软件源代码模块的组织和管理。

开发视图关注程序包:

  • 不仅包括要编写的源程序,

  • 还包括可以直接使用的第三方SDK和现成框架、类库。

  • 以及开发的系统将运行于其上的系统软件或中间件

开发视图和逻辑视图之间可能存在一定的映射关系:比如逻辑层一般会映射到多个程序包等。

它的大体架构如下图所示:

大部分情况下,开发架构考虑的内部需求与以下几项因素有关:

  • 开发难度

  • 软件管理

  • 重用性

  • 通用性

  • 由工具集、编程语言所带来的限制。

开发架构视图是各种活动的基础,如:需求分配、团队工作的分配(或团队机构)、成本评估和计划、项目进度的监控、软件重用性、移植性和安全性。它是建立产品线的基础。

1.4.2.3 进程视图

进程视图显示系统上所有活动进程以及线程的树。

进程 ID 和模块名称会进行显示。 如果要检查特定系统进程(通常对应于正在执行的程序),请使用进程视图。 进程由模块名称标识,或者指定为“系统进程”。

Microsoft Windows 支持多个进程。 每个进程都可以有一个或多个线程,而每个线程都可以有一个或多个关联的顶级窗口。 每个顶级窗口都可以拥有一系列窗口。 \\+ 符号指示级别处于折叠状态。

折叠视图中每个进程占一行。 单击 + 符号可展开级别。

如果要检查特定系统进程(通常对应于正在执行的程序),请使用进程视图。

进程由模块名称标识,或者指定为“系统进程”。若要查找进程,请折叠树并搜索列表。

1.4.2.4 物理视图

物理视图用于描述系统软件到物理硬件的映射关系,反映出系统的组件是如何部署到一组可计算机器节点上,用于指导软件系统的部署实施过程。

1.5 分析模型与设计模型的映射关系

以上是关于[架构之路-108]-《软考-》-1-软件架构概述:架构视图的主要内容,如果未能解决你的问题,请参考以下文章

[架构之路-111]-《软考-系统架构设计师》-软件架构设计-4-特定领域软件架构

[架构之路-110]-《软考-系统架构设计师》-软件架构设计-3-架构描述语言ADL与UML

[架构之路-131]-《软考-系统架构设计师》-软件工程-2-需求工程

[架构之路-135]-《软考-系统架构设计师》-软件工程-5-软件系统设计(面向对象设计基础)

[架构之路-134]-《软考-系统架构设计师》-软件工程-4-软件系统设计(人机界面设计机构化设计)

[架构之路-114]-《软考-系统架构设计师》-软件架构设计-7-软件架构评估