[架构之路-108]-《软考-系统架构设计师》-软件架构设计-1-软件架构概述:架构视图

文章介绍了软件架构的不同层次,包括应用程序架构、中间件架构、系统软件架构、硬件架构和数据架构,并以基站系统为例详细阐述了各层次的组成部分。同时,讨论了软件架构师的角色、软件架构的历史发展、建模类型,以及4+1视图模型在描述系统行为中的应用。
摘要由CSDN通过智能技术生成

前言:

第1节 软件架构的概念

1.1 架构的层次化与范围(以基站系统为例)

(1)应用程序架构、业务架构 =》 大公司的市场销售

  • 基站软件:L1/L2/L3/OAM模块,本质上是应用程序!!!它们的架构,归属于应用程序架构!!!, 应用程序解决的业务。

  • Web应用程序架构

  • 企业业务架构

  • J2EE架构

(2)中间件架构 =》 大公司的研发部门

  • 基站软件:硬件抽象层和操作系统抽象层,本质上是中间件程序,他们的架构,归属于中间件架构!!!,中间件解决的服务。

  • 硬件抽象层

  • 数据库访问

  • 远程过程调用

(3)系统软件架构 =》 大公司的组织部门

  • 基站软件:Linxu OS和TCP/IP协议栈, 本质上是系统软件,它们的架构,归属于系统软件架构!!!,系统软件解决的资源(CPU/内存)

  • 操作系统

(4)硬件架构 =》 大公司的后勤保障部门

  • 基站硬件:SOC, DSP, FPGA, Switch等,本质上是硬件,他们的架构,归属于硬件架构!!!

  • 计算机体系结构

(5)数据架构 =》 大公司的IT部门?

  • 基站的数据库,本质上是数据与数据访问,它们自成系统,它们的架构,归属于数据架构!!!

  • 分布式数据库

(6)系统/子系统的架构 =》 集团、公司、子公司、部门、小组

  • 硬件、Linux OS、TCP/IP、中间件、应用程序共同组成了一个系统,它们的架构,归属于基站系统架构。

  • 基站、RRH、核心网、internet网,组成了一个更大的系统, 5G系统,它们的架构,归属于5G系统架构!!!

1.2 软件架构的概念

备注:

  1. 软件架构师的定位

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

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

  1. 软件架构的用处

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

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

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

1.3 软件架构的发展史

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

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

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

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

1.4 软件架构的规模

  1. 单机版软件的架构: =》单一的小公司的组织架构

  1. 多机集中式软件的架构: =》有多家子公司的组织架构

  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 分析模型与设计模型的映射关系

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

文火冰糖的硅基工坊

你的鼓励是我前进的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值