软件架构简介、种类和视图

公众号回复'架构'获取架构师电子书及视频课程

软件架构(software architecture)是一系列相关的抽象模式,用于指导大型软件系统各个方面的设计。软件架构是一个系统的草图。软件架构描述的对象是直接构成系统的抽象组件。各个组件之间的连接则明确和相对细致地描述组件之间的通讯。在实现阶段,这些抽象组件被细化为实际的组件,比如具体某个类或者对象。在面向对象领域中,组件之间的连接通常用接口_(计算机科学)来实现。

软件体系结构是构建计算机软件实践的基础。与建筑师设定建筑项目的设计原则和目标,作为绘图员画图的基础一样,一个软件架构师或者系统架构师陈述软件构架以作为满足不同客户需求的实际系统设计方案的基础。从和目的、主题、材料和结构的联系上来说,软件架构可以和建筑物的架构相比拟。一个软件架构师需要有广泛的软件理论知识和相应的经验来实施和管理软件产品的高级设计。软件架构师定义和设计软件的模块化,模块之间的交互,用户界面风格,对外接口方法,创新的设计特性,以及高层事物的对象操作、逻辑和流程。

架构简介

架构是在组件,彼此间和与环境间的关系,引导设计发展原则中体现的系统的基本结构。

软件体系结构是构建计算机软件实践的基础。与建筑师设定建筑项目的设计原则和目标,作为绘图员画图的基础一样,一个软件架构师或者系统架构师陈述软件构架以作为满足不同客户需求的实际系统设计方案的基础。

软件构架是一个容易理解的概念,多数工程师(尤其是经验不多的工程师)会从直觉上来认识它,但要给出精确的定义很困难。特别是,很难明确地区分设计和构架:构架属于设计的一方面,它集中于某些具体的特征。

软件架构是指在一定的设计原则基础上,从不同角度对组成系统的各部分进行搭配和安排,形成系统的多个结构而组成架构,它包括该系统的各个组件,组件的外部可见属性及组件之间的相互关系。组件的外部可见属性是指其他组件对该组件所做的假设。

在“软件构架简介”中,David GArlan和 Mary Shaw认为软件构架是有关如下问题的设计层次:“在计算的算法和数据结构之外,设计并确定系统整体结构成为了新的问题。结构问题包括总体组织结构和全局控制结构;通信、同步和数据访问的协议;设计元素的功能分配;物理分布;设计元素的组成;定标与性能;备选设计的选择。”

但构架不仅是结构;IEEEWorking Group on Architecture 把其定义为“系统在其环境中的最高层概念”。构架还包括“符合”系统完整性、经济约束条件、审美需求和样式。它并不仅注重对内部的考虑,而且还在系统的用户环境和开发环境中对系统进行整体考虑,即同时注重对外部的考虑。

在 Rational Unified ProcESs 中,软件系统的构架(在某一给定点)是指系统重要构件的组织或结构,这些重要构件通过接口与不断减小的构件与接口所组成的构件进行交互。

从和目的、主题、材料和结构的联系上来说,软件架构可以和建筑物的架构相比拟。一个软件架构师需要有广泛的软件理论知识和相应的经验来实施和管理软件产品的高级设计。软件架构师定义和设计软件的模块化,模块之间的交互,用户界面风格,对外接口方法,创新的设计特性,以及高层事物的对象操作、逻辑和流程。

一般而言,软件系统的架构(ArchitECture)有两个要素:

1.它是一个软件系统从整体到部分的最高层次的划分。

2.一个系统通常是由元件组成的,而这些元件如何形成、相互之间如何发生作用,则是关于这个系统本身结构的重要信息。

详细地说,就是要包括架构元件(Architecture Component)、联结器(Connector)、任务流(TASk-flow)。所谓架构元素,也就是组成系统的核心"砖瓦",而联结器则描述这些元件之间通讯的路径、通讯的机制、通讯的预期结果,任务流则描述系统如何使用这些元件和联结器完成某一项需求。

建造一个系统所作出的最高层次的、以后难以更改的,商业的和技术的决定。

在建造一个系统之前会有很多的重要决定需要事先作出,而一旦系统开始进行详细设计甚至建造,这些决定就很难更改甚至无法更改。显然,这样的决定必定是有关系统设计成败的最重要决定,必须经过非常慎重的研究和考察。

种类

根据我们关注的角度不同,可以将架构分成三种:

1.逻辑架构

软件系统中元件之间的关系,比如用户界面,数据库,外部系统接口,商业逻辑元件,等等。

从上面这张图中可以看出,此系统被划分成三个逻辑层次,即表象层次,商业层次和数据持久层次。每一个层次都含有多个逻辑元件。比如WEB服务器层次中有HTML服务元件、Session服务元件、安全服务元件、系统管理元件等。

2.物理架构

软件元件是怎样放到硬件上的。

比如下面这张物理架构图,图中所有的元件都是物理设备,包括网络分流器、代理服务器、WEB服务器、应用服务器、报表服务器、整合服务器、存储服务器、主机等等。

3.系统架构

系统的非功能性特征,如可扩展性、可靠性、强壮性、灵活性、性能等。

系统架构的设计要求架构师具备软件和硬件的功能和性能的过硬知识,这一工作无疑是架构设计工作中最为困难的工作。

此外,从每一个角度上看,都可以看到架构的两要素:元件划分和设计决定。

首先,一个软件系统中的元件首先是逻辑元件。这些逻辑元件如何放到硬件上,以及这些元件如何为整个系统的可扩展性、可靠性、强壮性、灵活性、性能等做出贡献,是非常重要的信息。

其次,进行软件设计需要做出的决定中,必然会包括逻辑结构、物理结构,以及它们如何影响到系统的所有非功能性特征。这些决定中会有很多是一旦作出,就很难更改的。

根据作者的经验,一个基于数据库的系统架构,有多少个数据表,就会有多少页的架构设计文档。比如一个中等的数据库应用系统通常含有一百个左右的数据表,这样的一个系统设计通常需要有一百页左右的架构设计文档。

视图

我们决定以多种构架视图来表示软件构架。每种构架视图针对于开发流程中的涉众(例如最终用户、设计人员、管理人员、系统工程师、维护人员等)所关注的特定方面。

构架视图显示了软件构架如何分解为构件,以及构件如何由连接器连接来产生有用的形式,由此记录主要的结构设计决策。这些设计决策必须基于需求以及功能、补充和其他方面的约束。而这些决策又会在较低层次上为需求和将来的设计决策施加进一步的约束。

构架由许多不同的构架视图来表示,这些视图本质上是以图形方式来摘要说明“在构架方面具有重要意义”的模型元素。在 Rational Unified Process 中,您将从一个典型的视图集开始,该视图集称为“4+1 视图模型”。它包括:

1. 用例视图:包括用例和场景,这些用例和场景包括在构架方面具有重要意义的行为、类或技术风险。它是用例模型的子集。

2.逻辑视图:包括最重要的设计类、从这些设计类到包和子系统的组织形式,以及从这些包和子系统到层的组织形式。它还包括一些用例实现。它是设计模型的子集。

3.实施视图:包括实施模型及其从模块到包和层的组织形式的概览。同时还描述了将逻辑视图中的包和类向实施视图中的包和模块分配的情况。它是实施模型的子集。

4.进程视图:包括所涉及任务(进程和线程)的描述,它们的交互和配置,以及将设计对象和类向任务的分配情况。只有在系统具有很高程度的并行时,才需要该视图。在 Rational Unified Process 中,它是设计模型的子集。

5.部署视图:包括对最典型的平台配置的各种物理节点的描述以及将任务(来自进程视图)向物理节点分配的情况。只有在分布式系统中才需要该视图。它是部署模型的一个子集。构架视图记录在软件构架文档中。您可以构建其他视图来表达需要特别关注的不同方面:用户界面视图、安全视图、数据视图等等。对于简单系统,可以省略 4+1 视图模型中的一些视图。

更多推荐

软件架构评估指导书架构师一定要看微服务设计的四个原则架构评估内容详解【架构师指南】总结分库分表的实现方案

(0)

相关推荐

  • 软件架构、框架、模式、模块、组件、插件、中间件一文打尽

    一.架构 软件架构(software architecture)是一系列相关的抽象模式,用于指导大型软件系统各个方面的设计.软件架构是一个系统的草图.软件体系结构是构建计算机软件实践的基础.也称为软件 ...

  • 程序员必知的几种软件架构模式

    本文主要介绍了几种主要的软件架构模式. 架构模式是对给定上下文的软件架构中常见问题的一种通用的可复用的解决方案. 一种模式就是特定上下文的问题的一种解决方案. 然而,很多开发者至今还对各种软件架构模式 ...

  • 风水饰品的释义与种类简介

    风水饰品的品种数不胜数.在风水理论上,可以说世间的一切人文事物都属于风水饰品,只要能影响到你的,都可以归于风水之内.其实任何人文事物都属于五行之内,都会影响到你.人们只不过从中选出形象化的物品或珍贵文 ...

  • 局部外观设计来了,你准备好了吗?——国外局部外观设计申请视图简介

    局部外观设计,是指对产品的某一局部作出的创新设计.我国在第四次专利法修改中引入了局部外观设计保护制度,为了让广大创新主体增加对局部外观设计的了解,本文对国外局部外观设计的申请视图的提交情况做一简要介绍 ...

  • 局部外观设计专利来了!——国外局部外观设计申请视图简介

    今日,2020年修正的<中华人民共和国专利法>施行.新增局部外观设计专利保护. 局部外观设计,是指对产品的某一局部作出的创新设计.我国在第四次专利法修改中引入了局部外观设计保护制度,为了让 ...

  • 【知识传递】常见VOCs吸附剂种类、特点简介

    用于VOCs吸附的材料有较多,今日简要介绍下VOCs吸附的常见种类及特点. 目前,可用于VOCs气体捕集的吸附剂主要为多孔材料,如活性炭.活性炭纤维.硅藻土.介孔二氧化硅.金属有机骨架(MOFs)以及 ...

  • 柏树的种类:常见柏树种类简介

    柏树作为常绿乔木,在中国分布极为广泛,人工栽培范围几乎遍布全国,是优良的园林绿化树种.柏树的种类有很多种,同样也让人难以辨认,下面小编就简单介绍一下常见的柏树种类有哪些?一起来看一下吧. 柏树的种类 ...

  • 岩石种类简介

    岩石根据形成原因分为三类: 一,岩浆岩(火成岩)分为: 1喷出岩(火山岩):地壳下岩浆(硅酸盐物质)从地壳薄弱处喷出地表后冷凝而成.形态呈被状或层状.多具气孔.杏仁和流纹等构造,多呈玻璃质.隐晶质或斑 ...

  • Workbench中接触种类及选择方法简介

    本文为"Workbench中接触种类及选择方法简介"的文字教程,详细视频教程可扫描文末二维码获取. Workbench中给我们提供的接触类型主要包括以下几种

  • 抽象国画种类简介

    在我们中国历代国画都是有以抽象画风为主的,而且关于抽象的国画的种类还是有不少的.我们先就为大家详细介绍一下关于抽象国画的种类. 抽象国画种类一"朱明六法" "朱明六法&q ...

  • 印章简介印章种类印章是什么时候发明的?

    印章简介:印章有哪些种类?印章是什么时候发明的?小编马上为你介绍相关知识: 印章简介 印章,英文stamp,亦称图章,用作印于文件上表示鉴定或签署的文具,一般印章都会先沾上颜料再印上,不沾颜料.印上平 ...