四、软件体系结构描述

一、软件体系结构描述方法

描述方法的种类:
非形式化→形式化→ 标准化

  • 图形表达工具

采用由矩形框和有向线段组合而成的图形表达工具。

矩形表示抽象构件

框内文字为抽象构件的名称

有向线段代表辅助各构件进行通信、控制或关联的连接件。
在这里插入图片描述
简洁易懂容易使用使用广泛不规范不精确

  • 模块内连接语言
  1. 采用将一种或几种传统程序设计语言的模块连接起来的模块内连接语言。由于程序设计语言和模块内连接语言具有严格的语义基础,因此它们能支持对较大的软件单元进行描述,诸如定义/使用和扇入/扇出等操作。例如,Ada语言采用use实现包的重用,Pasca I语言采用过程(函数)模块的交互等。
  2. MIL方式对模块化的程序设计和分段编译等程序设计与开发技术确实发挥了很大的作用。但是由于这些语言处理和描述的软件设计开发层次过于依赖程序设计语言,因此限制了它们处理和描述比程序设计语言元素更为抽象的高层次软件体系结构元素的能力。
  • 基于软构件的系统描述语言
  1. 基于软构件的系统描述语言将软件系统描述成一种是由许多以特定形式相互作用的特殊软件实体构造组成的组织或系统。
  2. 例如,一种多变配置语言(PCL) 就可以用来在一个较高的抽象层次上对系统的体系结构建模,Darwin最 初用作设计和构造复杂分布式系统的配置说明语言,因具有动态特性,也可用来描述动态体系结构。
  3. 这种表达和描述方式虽然也是较好的一种以构件为单位的软件系统描述方法,但是他们所面向和针对的系统元素仍然是一些 层次较低的以程序设计为基础的通信协作软件实体单元,而且这些语言所描述和表达的系统一般而言都是面向特定应用的特殊系统,这些特性使得基于软构件的系统描述仍然不是十分适合软件体系结构的描述和表达。
  • 软件体系结构描述语言-ADL
  1. 软件体系结构的第四种描述和表达方法是参照传统程序设计语言的设计和开发经验,重新设计、开发和使用针对软件体系结构特点的专的软件体系结构描述语言。
  2. 由于ADL是在吸收了传统程序设计中的语义严格精确的特点基础上,针对软件体系结构的整体性和抽象性特点,定义和确定适合于软件体系结构表达与描述的有关抽象元素,因此,ADL是当前软件开发和设计方法学中一种发展很快的软件体系结构描述方法,目前,已经有几种常见的ADL。

二、软件体系结构描述框架标准

lEEE P1471

  • lEEE P1471于2000年9月21日通过IEEE- SA标准委员会评审。
  • 1EEE P1471适用于软件密集的系统,其目标在于:便于体系结构的表达与交流,并通过体系结构要素及其实践标准化,奠定质量与成本的基础。
  • IEEEP1471详细介绍了一套体系结构描述的概念框架,并给出建立框架的思路。但如何描述以及具体的描述技术等方面缺乏更进一步的指导。

IEEE P1471软件体系结构描述的标准

  • 体系结构设计的标识、版本、总体信息。
  • 系统参与者的标识、以及在体系结构中他们所关注方面的标识。
  • 组织体系结构表示所选择的视点的规格说明,以及这种选择的基本原理。
  • 一个或多个体系结构视图。
  • 体系结构描述所需的成分之间不-致的记录。
  • 体系结构选择的基本原理。

Rational

  • Rat ional起草了可重用的软件资产规格说明,专门讨论了体系结构描述的规格说明,提出了一套易于重用的体系结构描述规范。该建议草案已经提交0MG。
  • 基于RUP (Rational United Process, 统一软件过程) 、采用UML模型描述软件的体系结构,认为体系结构描述的关键是定义视点、视图以及建模元素之间的映射关系。
  • 与IEEE P1471相比,该建议标准的体系结构描述方案涉及面比较窄,所注重的层次比较低,因而更具体。由于将体系结构的描述限于UML和RUP,具有一定的局限性,但该建议标准结合了业界已经广泛采用的建模语言和开发过程,因而易于推广,可以有效实现在跨组织之间重用体系结构描述结果。

三、软件体系结构描述语言

ADL是在底层语义模型的支持下,为软件系统的概念体系结构建模提供了具体语法和概念框架。基于底层语义的工具为体系结构的表示、分析、演化、细化、设计过程等提供支持。

其三个基本元素是:

  • 构件:计算或数据存储单元
  • 连接件:用于构件之间交互建模的体系结构构造块及其支配这些交互的规则
  • 体系结构配置:描述体系结构的构件与连接件的连接图

主要的体系结构描述语言有Aesop、MetaH、C2、Rapide、SADL、Unicon和Wr ight等,尽管它们都描述软件体系结构,却有不同的特点。

  • Aesop支持体系结构风格的应用。
  • MetaH为设计者提供了关于实时电子控制软件系统的设计指导。
  • C2支持基于消息传递风格的用户界面系统的描述。
  • Rapide支持体系结构设计的模拟并提供了分析模拟结果的工具。
  • SADL提供了关于体系结构加细的形式化基础。
  • UniCon支持异构的构件和连接类型并提供了关于体系结构的高层编译器。
  • Wright支持体系结构构件之间交互的说明和分析。

ADL与其他语言的比较

  • 构造能力:ADL能够使用较小的独立体系结构元素来建造大型软件系统;
  • 抽象能力: ADL使得软件体系结构中的构件和连接件描述可以只关注它们的抽象特性,而不管其具体的实现细节;
  • 重用能力: ADL使得组成软件系统的构件、连接件甚至是软件体系结构都成为软件系统开发和设计的可重用部件;
  • 组合能力: ADL使得其描述的每系统元素都有其自己的局部结构,这种描述局部结构的特点使得ADL支持软件系统的动态变化组合;
  • 异构能力: ADL 允许多个不同的体系结构描述关联存在;
  • 分析和推理能力: ADL 允许对其描述的体系结构进行多种不同的性能和功能上的多种推理分析。

根据这些特点,将下面这样的语言排除在ADL之外:

  • 高层设计符号语言
  • MIL
  • 编程语言
  • 面向对象的建模符号
  • 形式化说明语言

ADL与需求语言:需求语言描述问题空间,ADL 根植于解空间

ADL与建模语言:建模语言对整体行为的关注大于对部分的关注,ADL集中在构件的表示上

ADL与传统的程序设计语言:求同存异

典型元素含义比较
在这里插入图片描述

常见的软件体系结构元素
在这里插入图片描述

ADL构成要素:
在这里插入图片描述

四、典型软件体系结构描述语言

1.C2概述

  • C2和其提供的设计环境(Argo) 支持采用基于时间的风格来描述用户界面系统,并支持使用可替换、可重用的构件开发GUI的体系结构。
  • 在C2中,连接件负责构件之间消息的传递,而构件维持状态、执行操作并通过两个名字分别top"和”bot tom’的端口和其它的构件交换信息。
  • 每个接口包含一种可发送的消息和一组可接收的消息。构件之间的消息要么是请求其它构件执行某个操作的请求消息,要么是通知其他构件自身执行了某个操作或状态发生改变的通知消息。
  • 构件之间的消息交换不能直接进行,而只能通过连接件来完成。每个构件接口最多只能和一个连接件相连,而连接件可以和任意数目的构件或连接件相连。
  • 请求消息只能向上层传送而通知消息只能向下层传送。
  • 通知消息的传递只对应于构件内部的操作,而和接收消息的构件的需求无关。
  • C2对构件和连接件的实现语言、实现构件的线程控制、构件的部署以及连接件使用的通讯协议等都不加限制。

在这里插入图片描述
C2对接口的描述
在这里插入图片描述

2.UniCon ( UNIversal CONnection )
是Caregie Me1 1on大学的Mary Shaw提出的主要围绕构件和连接件两个基本概念,对构件交互
模式进行定位和编码,并且对需要不同交互模式的构件的打包加以区分。

UniCon及其支持工具的主要目的有:
●提供对大量构件和连接件的统一的访问
●区分不同类型的构件和连接件以便对体系结构配置进行检查
●支持不同的表示方法和不同开发人员的分析工具.
●支持对现有 构件的使用

在这里插入图片描述
3.Wright
支持对构件之间交互的形式化和分析。
主要特点:
对体系结构和抽象行为的精确描述、定义体系结构
风格的能力和一组对体系结构描述进行一致性和完整性
的检查.
体系结构通过构件、连接件以及它们之间的组合来
描述,抽象行为通过构件的行为和连接件的胶水来描述

五、软件体系结构与UML

UML简介
➢UML是一种语言
➢UML是一种可视化语言
➢UML是一种可用于详细描述的语言
➢UML是一种构造语言
➢UML是一种文档化语言

➢UML是一种建模语言而不是一种方法,其中并不包括过程的概念,其本身是独立于过程的,可以在任何过程中使用它。
➢UML能够用面向对象的方法描述任何类型的系统,并对系统开发从需求调研到测试和维护的各个阶段进行有效的支持

在这里插入图片描述
在这里插入图片描述
用例图:

在这里插入图片描述
类图:
在这里插入图片描述
顺序图:
在这里插入图片描述
通信图:
在这里插入图片描述
定时图:
在这里插入图片描述
状态图:
在这里插入图片描述

基本活动图:
在这里插入图片描述
带泳道的活动图:
在这里插入图片描述
构件图:
在这里插入图片描述
部署图:
在这里插入图片描述

直接使用UML建模:
在这里插入图片描述
元-元模型层定义了元模型层的规格说明语言,元模型层为给定的建模语言定义规格
说明,模型层用来定义特定软件系统的模型,用户对象用来构建给定模型的特定实例。

语义约束:
由对象约束语言0CL表示,0CL基 于一阶谓词逻辑,每一个OCL表达式都处于一些UML 模型元素的背景下(由’selIf"引用) ,可使用该元素的属性和关系作为其项(term),同时OCL定义了在集合(sets) 、袋(bags)等上的公共操作集和遍历建模元素间关系的构造,因此,其它建模元素的属性也可以作为它的项。

UML中的通用表示:
(1)字符串:表示有关模型的信息;
(2)名字:表示模型元素;
(3)标号:不同于编程语言中的标号,是用于表示或说明图形符号的字符串;
(4)特殊字符串:表示某模型元素的特性;
(5)类型表达式:声明属性、变量及参数,含义同编程语言中的类型表达式;
(6)实体类型:它是UML的扩充机制,运用实体类型可定义新类型的模型元素。

UML语义部分:

  • 通用元素:主要描述UML中各元素的语义。通用元素是UML中的基本构造单位,包括模型元素和视图元素,模型元素用来构造系统,视图元素用来构成系统的表示成分;
  • 通用机制:主要描述使UML保持简单和概念上一致的机制的语义。包括定制、标记值、注记、约束、依赖关系、类型-实例、类型-类的对应关系等机制;
  • 通用类型:主要描述UML中各种类型的语义。这些类型包括布尔类型、表达式类型、列表类型、多重性类型、名字类型、坐标类型、字符串类型、时间类型、用户自定义类型等。

三部分不是相互独立的,而是相互交叉重叠、紧密相连,共同构
成了UML的完整语义。

六、可扩展标记语言

XML概述:
➢能够直接应用在Internet上
➢能被各式应用软件使用
➢能与SGML兼容
➢能轻易发展XML相关软件
➢能简化SGML
➢XML文件可读性高
➢XML规范能尽完成
➢ XML规范必须简洁
➢XML文件易于建立
➢语法不可模糊不清

XML的特点:
➢简洁有效
➢易学易用
➢开放的国际化标准
➢高效且可扩充

XML的作用:
➢使得搜索更加有意义.
➢开发灵活的Web应用软件
➢实现不同数据的集成
➢使用于多种应用环境
➢客户端数据处理与计算
➢数据显示多样化
➢局部数据更新
➢与现有Web发布机制相兼容
➢可升级性
➢压缩性能高

XML的应用:
➢应用于客户需要与不同的数据源进行交互时
➢应用于将大量运算负荷分布在客户端
➢应用于将同一 -数据以不同的面貌展现给不现的用户
➢应用于网络代理对所取得的信息进行编辑、增减以适应个人用户的需要

XML与HTML的区别:
➢HTML是一种格式化的语言, 一个HTML文本可以看作一个格式化的程序
➢XML是一种元标记语言
➢XML定义了一套元句法,与特定领域有关的标记语言(例如,MusicML、MathML和CML等)都必须遵守

XML模式:
➢XML模式使用XML语法
➢XML模式支持数据类型
➢XML模式是可扩展的
➢XML模式有更强的表达能力

XML建模:
➢描述具体数据
➢描述数据结构和模式
➢描述数据的表现
➢描述数据中的位置
➢描述数据中的链接关系
➢描述数据的应用关系

  • 3
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值