0%

软件体系结构

软件体系结构

​ 软件体系结构是有关软件系统如何组织的描述。体系结构影响了系统的性能、安全性和可用性。软件工程师可以在给定的体系结构类型中使用不同的体系结构风格和模式,而不同的模式描述了不同的系统类别、构建、连接件及约束。

​ 软件体系结构脱胎于软件工程.但其形成同时借鉴了计算机体系结构和网络体系结构中很多宝贵的思想和方法。最近几年软件体系结构研究完全独立于软件工程的研究,成为计算机科学的一个最新的研究方向和独立学科分支。

软件体系结构是对系统的高层设计,是从一个较高的层次来考虑组成系统的构建、构建之间的连接关系,以及系统需满足的约束等。设计模式可以用于软件体系结构的设计,以实现体系结构级的设计复用。用于软件体系结构的设计模式通常称为架构模式(Architectural Pattern)或体系机构风格(Architectural Style)。

在《Pattern - Oriented Software Architecture》第一卷中,Buschmann等人根据问题的规模或抽象层次将软件设计模式分为三个层次:架构模式(Architectural Patterns)、设计模式(Design Patterns)和习惯用法(Idioms)。

(1)架构模式

架构模式是一种高层模式,用于描述系统级的结构组成、相互关系及相关约束。对架构模式的选择是最基本的设计决策,将决定系统的基本架构,并决定后续的设计及开发活动。

例如,模型 - 视图 - 控制器(Model - View - Controller,MVC)即是一种架构模式,该模式给出了一种交互式系统的架构设计,该模式的主要思想式实现业务逻辑、用户界面的分离。

(2)设计模式

设计模式是中层模式,是针对系统局部设计问题给出的解决方案。一般情况下,人们所讲的设计模式都是指中层模式。设计模式的选择对系统的基本架构没有影响,但在实现架构模式时,则可能采用多种设计模式。

例如,在实现MVC架构模式时,采用的主要设计模式有观察者模式、组合模式和策略模式等。

(3)习惯用法

架构模式和设计模式被认为是与具体编程语言无关的,而习惯用法则通常被认为是与具体编程语言相关的一种低层模式。习惯用法给出的解决方案通常与具体编程语言的某种语法机制相关。

本课程中,软件体系结构就是指架构模式,可以认为是:软件体系结构 = 构件 + 连接件 + 约束 。

preview

构件

构件是具有某种功能的可复用的软件结构单元,表示系统中主要的计算元素 和 数据存储。

构件是一个抽象的概念,在程序中可以指程序函数、模块、对象、类等。

img

连接件

连接是构件间建立和维护行为关联与信息传递的途径。连接包含下面两种要素:

其中,机制指的实际中的消息传递方式。

而协议则决定了 消息的语义理解。

img

连接件表示构件之间的交互并实现构件之间的连接。

img

软件体系结构目标

为了更好理解后面的软件体系结构涉及的原则和体系结构风格,请牢记这些目标,时不时的对照后面的内容回顾这些目标。

所有的设计原则等理论基本上都可以映射到下面一个或几个目标上。

img

体系结构的发展

现在软件的复杂性及多变性,导致了软件粒度越来越粗,越来越开放。

img

下面是常见的软件体系结构

11.png

软件体系结构与软件设计模式的区别

Design-vs-Patterns-SAP.png

-------------本文结束感谢您的阅读-------------
老板你好,讨口饭吃