软件架构好书推荐:基础PDF版

前言:

软件架构 好书 软件架构基础pdf_架构

 

第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 软件架构的概念

      软件架构 好书 软件架构基础pdf_架构_02

 

备注:

  1. 软件架构师的定位

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

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

  1. 软件架构的用处
  2. 本质是建模:为软件系统建模,即静态的结构、属性和动态的行为、约束条件等。
  3. 交流的手段:不同干系人的交流软件系统,而不是使用软件代码来交流软件系统。
  4. 推理的手段:无论是软件系统的持续演进,还是技术培训,预测软件的质量,软件架构都是重要的依据。

1.3 软件架构的发展史

软件架构 好书 软件架构基础pdf_软件架构 好书_03

 

  1. 无架构:汇编语言、业务简单、程序简单
  2. 萌芽阶段:C语言,结构化程序设计
  3. 初级阶段:C++或其他面向对象语言,面向对象的分析与设计
  4. 高级阶段:UML或其他建模语言,4+1试图,全面、多视角、可视化。

1.4 软件架构的规模

  1. 单机版软件的架构: =》单一的小公司的组织架构
  2. 多机集中式软件的架构: =》有多家子公司的组织架构
  3. 大数据分布式软件的架构: =》跨国大型公司的组织架构

1.3 建模的类型软件架构 好书 软件架构基础pdf_软件架构 好书_04

 

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

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

结构组件模型:

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

整体框架模型:

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

动态交互模型:

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

过程步骤模型:

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

功能层次模型:

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

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

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

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

软件架构 好书 软件架构基础pdf_概述_05

       

软件架构 好书 软件架构基础pdf_软件架构 好书_06

     

软件架构 好书 软件架构基础pdf_架构_07

 

1.4.1 场景:用例与用例图

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

1.4.2 视图

1.4.2.1 逻辑视图:

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

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

1.4.2.2 开发视图:

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

开发视图关注程序包:

  • 不仅包括要编写的源程序,
  • 还包括可以直接使用的第三方SDK和现成框架、类库。
  • 以及开发的系统将运行于其上的系统软件或中间件。

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

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

     

软件架构 好书 软件架构基础pdf_概述_08

 

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

  • 开发难度
  • 软件管理
  • 重用性
  • 通用性
  • 由工具集、编程语言所带来的限制。

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

1.4.2.3 进程视图

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

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

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

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

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

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

     

软件架构 好书 软件架构基础pdf_概述_09

       

软件架构 好书 软件架构基础pdf_视图_10

       

软件架构 好书 软件架构基础pdf_Powered by 金山文档_11

     

软件架构 好书 软件架构基础pdf_架构_12

     

软件架构 好书 软件架构基础pdf_Powered by 金山文档_13

 

1.4.2.4 物理视图

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

     

软件架构 好书 软件架构基础pdf_软件架构 好书_14

     

软件架构 好书 软件架构基础pdf_软件架构 好书_15

 

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

     

软件架构 好书 软件架构基础pdf_Powered by 金山文档_16

 

免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空