[架构之路-108]-《软考-》-1-软件架构概述:架构视图
Posted 文火冰糖的硅基工坊
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[架构之路-108]-《软考-》-1-软件架构概述:架构视图相关的知识,希望对你有一定的参考价值。
前言:
第1 软件架构的概念
1.1 软件架构的概念
备注:
软件架构师的定位
软件架构师在需求分析与软件设计中间的一个环境,只有在复杂的、大系统中,且程序员对业务领域的专业知识的理解有加大的难度的产品中,需要增加专门的架构师的角色,用于屏蔽专业的业务需求与计算机程序编程之间的鸿沟,这种情况下,架构师很大一部分的精力用于理解业务领域的知识,比如4G/5G移动通信系统。
在小系统中,或者业务领域部很容易理解的系统,程序员很容易把业务领域的知识映射到计算机领域,这时候,就不需要专门,架构设计通常与软件设计整合在一起了。
软件架构的用处
本质是建模:为软件系统建模,即静态的结构、属性和动态的行为、约束条件等。
交流的手段:不同干系人的交流软件系统,而不是使用软件代码来交流软件系统。
推理的手段:无论是软件系统的持续演进,还是技术培训,预测软件的质量,软件架构都是重要的依据。
1.2 软件架构的发展史
无架构:汇编语言、业务简单、程序简单
萌芽阶段:C语言,结构化程序设计
初级阶段:C++或其他面向对象语言,面向对象的分析与设计
高级阶段:UML或其他建模语言,4+1试图,全面、多视角、可视化。
1.3 建模的类型
描述系统行为的方法和角度不同,就得到了不同的模型。
不同的模型,只反映的目标软件系统的某个侧面,因此,不同的模型并非是互斥的,而是相互补充的。
结构组件模型:
用于描述软件系统的组件以及组件之间的连接关系。
整体框架模型:
把模型,模块,组件,这三者结合起来之后就是框架,框架关注的整体呈现的外部形态。
动态交互模型:
展现的软件系统动态的交互行为、软件内部组件的交互行为,即Message sequence。
过程步骤模型:
构建系统的步骤与过程、业务处理流程、数据处理流程,都是过程模型。
功能层次模型:
为了有机的组织一个复杂的系统,实现不同功能的解耦与隔离,金字塔的分层次结构或树形分层结构,都是有效组织复杂系统的手段和方法:
下层为上次提供服务,上层指使下层,或者说上层完成下层完成某种功能与职责,上层享受下层提供的服务。上层利用下层提供的服务整合成更复杂的服务和业务功能,越是底层,实现的功能越单一,越上层,
人类社会和软件架构异曲同工。
1.4 软件架构建模(4+1模型)
1.4.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-软件系统设计(面向对象设计基础)