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

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

  • 图形表达工具

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

矩形表示抽象构件

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

有向线段代表辅助各构件进行通信、控制或关联的连接件。

简洁易懂容易使用使用广泛不规范不精确

  • 模块内连接语言
  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建模:
➢描述具体数据
➢描述数据结构和模式
➢描述数据的表现
➢描述数据中的位置
➢描述数据中的链接关系
➢描述数据的应用关系

四、软件体系结构描述相关推荐

  1. 【软件体系结构】考点总结 第四章 软件体系结构描述 XJU

    软件体系结构 第四章 软件体系结构描述 前言   本文为XJU本科期间博主根据 <软件体系结构原理.方法与实践>第二版所作的期末考点总结,因为是课堂重点总结,所以有些重要知识点没有涵盖还请 ...

  2. 软件体系结构描述与建模

    软件体系结构描述与建模 SA建模 常用SA描述方法 1.线框描述法 2.形式化描述方法 3.UML描述方法 Kruchten 4+1视图模型(重点) 1.逻辑视图 2.开发视图 3.进程视图 4.物理 ...

  3. 283.软件体系结构描述

    4.6 使用"4+1"模型描述软件体系结构 对于同一座建筑,住户.建筑师.内部装修人员和电气工程师有各自的视角.这些视角反映了建筑物的不同方面,但它们彼此都有内在的联系,而且合起来 ...

  4. 【软件体系结构】考点整理

    一.填空题 1.软件元素包括 . . . . 甚至领域知识. 软件工程包括3个要素: . 和 . 软件重用过程中需要重用的开发组织结构予以支持,它包括:__.__.___三组成员组成. 采用层次式软件 ...

  5. 【note】《软件体系结构》知识整理(1-5章)

    第 1 章 软件体系结构概论 1.1 从软件危机谈起 软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题 1.1.1 软件危机的表现 软件成本日益增长 开发进度难以控制 软件质量差 软件 ...

  6. 《软件体系结构》知识点整理

    软件元素包括程序代码.测试用例.设计文档.设计过程.需求分析文档甚至领域知识 软件工程包括3要素:方法.工具.过程 软件重用过程中需要重用的开发组织结构予以支持,它包括构件开发组.构件应用组.协调组三 ...

  7. 软件体系结构期末复习

    软件体系结构期末复习 标签(空格分隔): 未分类 回顾课本和TTP课件 内容总概 章节回顾 第1章.软件体系结构概论 0.软件体系结构的发展过程经历了四个阶段: (1)无体系结构阶段.(2)萌芽阶段. ...

  8. 第23节 软件构件技术和软件体系结构

    软件构件技术和软件体系结构 1[单项选择题]( )不是活动历时估算依据. A项目范围说明书 B活动资源需求 C组织过程资产 D项目进度计划 [参考答案]D [题目解析]活动历时估算的依据有:活动清单. ...

  9. 软件体系结构基本概念汇总

    这门课与UML建模,程序设计方法学一样,都是站在比较高的角度来看整个软件结构.并不是对算法,或者语言的关注.如果以后有志于成为软件架构师,就应该好好学这门课.现在我把自己整理的这门课的资料与大家分享. ...

最新文章

  1. 2019半年总结:Teams are powerful
  2. 上传图片,多图上传,预览功能,js原生无依赖
  3. 分享一个python cookbook的在线教程地址
  4. AI时代即将出现的3个热门职业
  5. 测试1111111111111111111
  6. 妈妈再也不怕我不会画漂亮的图了!
  7. 15、iOS开发之duplicate symbols for architecture x86_64错误
  8. linux系统查看当前安装字库,linux下怎样安装中文字体?
  9. 简单干净的Emlog6.0.1技术导航模板源码-视频教程
  10. mysql 图片转为二进制_php 图片转为二进制数据的方法
  11. 为什么python工程师掌握这些就够了_Python学到什么程度才可以去找工作?掌握这4点足够了!...
  12. 回家_洛谷U3427_dfsbfs
  13. (回溯法)和为n的所有不增正整数和式分解算法
  14. 通过Adobe Scout深入理解Flash播放器
  15. 基于中文形近字相似度与加权编辑距离融合实现的汉字纠错算法
  16. 怎样批量将图片转成PDF格式?图片转换PDF操作方法
  17. 大数据IMF传奇行动绝密课程第91课:SparkStreaming基于Kafka Direct案例实战和内幕源码解密
  18. 浅谈对象的深拷贝和浅拷贝
  19. Debian 9.x 系统安装 Proxmox VE (笔记)
  20. 基于php网吧会员管理系统

热门文章

  1. Java MD5和SHA256等常用加密算法
  2. 微信小程序的项目缓存路径
  3. apache、php安装
  4. 使用nginx实现请求转发的功能
  5. 洞见 SELENIUM 自动化测试
  6. 《跟我学习AI量化投资》通过chatgpt进行选股,简单易懂,降低人为操作风险
  7. php7新特性ppt,2019新版PPT,不知道这7个新功能,怎么做好幻灯片?
  8. OpenCV 文字绘制cv::putText详解
  9. 2019专业创业赛事活动平台
  10. x299服务器芯片组,【装机帮扶站】第770期:X79/X99/X299平台“高级”垃圾简析