Chap04.4_软件体系结构描述_典型体系结构描述语言.

合集下载

第4章软件体系结构描述04293-精品文档

第4章软件体系结构描述04293-精品文档
第4章 软件体系结构描述和设计
本章结构
4.1 软件体系结构描述方法 4.2 软件体系结构描述框架标准 4.3 体系结构描述语言 4.4 典型的软件体系结构描述语言(C2) 4.5 软件体系结构与UML 4.6 可扩展标记语言 4.7 基于XML的软件体系结构描述语言 4.8 软件体系结构的设计
引言
◎ IEEE P1471详细介绍了一套体系结构描述的概念框 架,并给出建立框架的思路。但如何描述以及具体的描 述技术等方面缺乏更进一步的指导。
第四章 软件体系结构描述 4.2 软件体系结构描述框架标准
◇ Rational
◎ Rational起草了可重用的软件资产规格说明,专门讨论了体 系结构描述的规格说明,提出了一套易于重用的体系结构描述规 范。该建议草案已经提交OMG。
当前对软件体系结构的描述在很大程度上 还停留在非形式化的基础上,依赖于软件 设计师个人的经验和技巧。 非形式化的描述不易被开发人员理解,不 利于分析和开发的进行。 形式化的、规范化的体系结构描述对于体 系结构的设计和理解都是非常重要的。 由非形式化到形式化的过程。
第四章 软件体系结构描述
◇ 描述方法的种类
这些ADL强调了体系结构不同的侧面,对体系结构的研究和应 用起到了重要的作用,但也有负面的影响。每一种ADL都以独立的 形式存在,描述语法不同且互不兼容,同时又有许多共同的特征, 这使设计人员很难选择一种合适的ADL,若设计特定领域的软件体 系结构又需要从头开始描述。
第一章 软件体系结构概论 1.3 体系结构的兴起和发展
4.3 软件体系结构描述语言
3. 体系结构配置或拓扑: 描述体系结构的构件与连接件的连接图。
同时检查语法、说明语义。 多视图、多场景的体系结构说明方法。

Chap04.3_软件体系结构描述_体系结构描述语言.

Chap04.3_软件体系结构描述_体系结构描述语言.
1
2018/9/14
§4.3 体系结构描述语言(ADL)



ADL是一种形式化语言,在底层语义模型的支持下, 为软件系统的概念体系结构建模提供具体语法和概 念框架; 基于底层语义的工具为体系结构的表示、分析、演 化、细化、设计过程等提供支持; 三个基本元素:


构件:计算或数据存储单元; 连接件:用于构件之间交互建模的体系结构构造块及其支 配这些交互的规则; 体系结构配置:描述体系结构的构件与连接件的连接图。
对系统中的有关状态和紧密 管理 相关操作进行规定与限制的 器 实体,如抽象数据类型和系 统服务器 控制和管理系统中有关事件 控制 发生的时间序列,如调度程 器 序和同步处理协调程序
系统中通过数据流进行交互的独立处理 数据 流程连接机制,根据得到的数据来进行 流 构件实体的交互控制,如Unix中的管道 机制
2018/9/14
wangzhiming@
6
表4-1 程序设计语言与ADL典型元素含义比较
程序设计语言
程序 构件
操作 符 抽象 规则 限制 规则 规范 说明
软件体系结构
系统 构件
连接 件 组合 模式 限制 规则 规范 说明
组成程序的基本元素及其取值 范围
连接元素的功能符号 元素和操作符的命名表达规则 一组选择并决定具体使用何种 抽象规则来作用于有关基本元 素及其操作符的规则和原理 有关句法的语义关联说明
2018/9/14
wangzhiming@
5
§4.3.1 ADL与其他语言比较(续)


ADL与需求语言的区别在于后者描述的是问 题空间,而前者则扎根于解空间中; ADL与建模语言的区别在于后者对整体行为 的关注要大于对部分的关注,而ADL集中在 构件的表示上; ADL与传统的程序设计语言的构成元素即有 许多相同和相似之处,又各自有着很大的不 同。

软件体系结构

软件体系结构

软件体系结构软件体系结构是指软件系统中各个组件之间的关系和结构的抽象描述。

它是构建软件系统的基础,对软件系统的设计和开发起着重要的指导作用。

本文将从软件体系结构的定义、目标和应用领域等方面对其进行详细的介绍。

一、软件体系结构的定义软件体系结构是指软件系统中各个组件之间的关系和结构的抽象描述,它包括软件系统的静态结构和动态行为。

静态结构是指软件系统中组件的组织方式和相互之间的关系,动态行为是指软件系统中组件的交互方式和相互之间的通信方式。

二、软件体系结构的目标软件体系结构的目标是实现软件系统的可重用性、可维护性、可扩展性和可伸缩性。

可重用性是指软件系统中的组件能够被多次使用,可维护性是指软件系统中的组件能够被轻松地修改和维护,可扩展性是指软件系统能够根据需求进行功能的扩展,可伸缩性是指软件系统能够根据需求进行性能的扩展。

三、软件体系结构的应用领域软件体系结构广泛应用于各个领域的软件系统开发,特别是大型跨平台和分布式系统的开发。

在金融领域,软件体系结构被应用于交易系统和风险管理系统的开发;在电子商务领域,软件体系结构被应用于在线购物系统和支付系统的开发;在物流领域,软件体系结构被应用于供应链管理系统和运输管理系统的开发。

四、软件体系结构的基本原则软件体系结构的设计应遵循以下基本原则:1. 模块化:将软件系统分为独立的模块,每个模块只负责特定的功能,通过接口进行通信和交互。

2. 松耦合:各个模块之间的依赖应尽量降低,避免模块之间的紧密耦合,以提高系统的灵活性和可维护性。

3. 高内聚:模块内部的各个元素之间应紧密关联,功能相关的元素应放在同一个模块中,以提高系统的内聚性。

4. 分层:将软件系统分为多个层次,每个层次负责不同的功能,上层层次通过接口调用下层层次的功能。

5. 可伸缩性:系统的设计应考虑未来的扩展需求,能够根据需求进行功能和性能的扩展。

六、软件体系结构的设计方法软件体系结构的设计方法有很多种,常用的有面向对象的体系结构设计方法、服务导向的体系结构设计方法和领域驱动设计方法。

软件体系结构描述

软件体系结构描述
◇ 软件体系构造旳定义
◎ Mary Shaw和David Garlan (1993年)
软件体系构造是软件设计过程中旳一种层次,这一层次超越 计算过程中旳算法设计和数据构造设计。
体系构造问题涉及总体组织和全局控制,通讯协议,同步,数 据存取,给设计元素分配特定功能,设计元素旳组织、规模和性能, 在各设计方案间进行选择等。
构件之间不能发送消息,必须经过连接件。构件之间 旳通信只能经过消息传递来实现,不允许使用共享内存方 式通信。
◇ C2风格旳中心原则
C2风格旳中心原则是有限可视原则,或者说是下层独 立旳原则:
在C2风格旳体系构造中,某一构件只能感知层次高于 自己旳构件所提供旳服务,而不能感知到层次比自己更低 旳构件旳服务。
◎ ADL与建模语言旳区别:后者对整体行为旳关注要不 小于对部分旳关注,而ADL集中在构件旳表达上。
◎ ADL与老式旳程序设计语言旳构成元素既有许多相同 和相同之处,又各自有着很大旳不同。
第四章 软件体系构造描述
◇ 经典元素含义比较
4.3 软件体系构造描述语言
第四章 软件体系构造描述
◇ 常见旳软件体系构造元素
4.3 软件体系构造描述语言
3. 体系构造配置或拓扑: 描述体系构造旳构件与连接件旳连接图。
同步检验语法、阐明语义。 多视图、多场景旳体系构造阐明措施。
在不同层次上描述软件系统;异构情况下旳配置。
第四章 软件体系构造描述 ◇ ADL旳构成要素
4.3 软件体系构造描述语言
软件体系构造旳设计在需求分析之后,软件设计之前。 描述好体系构造,做好承上启下旳工作很主要。
软件体系构造处理算法与数据构造之上有关整体系统构造设计 和描述方面旳某些问题,如全局组织和全局控制构造、有关通讯、 同步与数据存取旳协议,设计构件功能定义,物理分布与合成,设

体系结构描述语言

体系结构描述语言

体系结构描述语言体系结构描述语言(Architecture Description Language,ADL)是指用于描述和记录软件系统的体系结构的形式化语言。

ADL提供了一种描述软件系统组成部分、它们之间的关系和相互作用的标准化方法,以便于软件工程师和其他利益相关者理解和沟通软件系统的结构和行为。

ADL的主要目的是在系统开发过程中促进沟通和共享。

它可以帮助软件工程师在设计和开发过程中定义系统的基本元素、它们之间的交互关系和约束条件。

通过使用ADL,团队成员可以更好地了解系统的整体结构,从而更好地理解和管理系统开发过程中的各种需求和设计决策。

ADL可以用于不同层面的体系结构描述,包括高层体系结构(High-level architecture),低层体系结构(Low-level architecture)和中间层体系结构(Middle-level architecture)。

高层体系结构描述系统的总体结构,包括子系统和它们之间的关系。

低层体系结构描述子系统的详细结构和模块之间的连接方式。

中间层体系结构描述这两个层次之间的接口和交互。

ADL通常包括以下几个主要方面的描述:2. 接口(Interface):描述组件之间的通信和交互方式。

接口定义了组件之间的协议和数据格式。

3. 关系和相互作用(Relationships and Interactions):描述组件之间的关系和相互作用。

可以包括依赖关系、使用关系、实例化关系、目标引用关系等。

4. 约束条件(Constraints):描述系统中的限制性条件和要求。

可以包括性能要求、安全性要求、实现约束等。

5. 视图(Views):描述系统的不同视角和关注点。

例如,可以有逻辑视图、物理视图、过程视图等,每个视图都强调不同的方面和需求。

ADL可以使用图形表示或文本表示。

图形表示使用图形符号和连接线来表示组件、接口和关系。

文本表示使用特定的语法和标记来描述组件、接口和关系。

软件体系结构(4)

软件体系结构(4)

4.3 体系结构描述语言
1)组件 组件是一个计算单元或数据存储。也就是说,
组件是计算与状态存在的场所。在体系结构中,一 个组件可能小到只有一个过程(如MetaH 过程)或 大到整个应用程序(如C2、Rapide 中的分层组件, 或MetaH中的宏),它可以要求自己的数据与/或执 行空间,也可以与其它组件共享这些空间。
4.3 体系结构描述语言
2、ADL构成要素 Luckham与Vera在研究Rapide的墓础上提出
,ADL应该满足以下要求:l) 组件抽象;2)通信 抽象;3)通信完整性,要求在结果实现中,只有 在一个体系结构中相联结的组件可以通信;4) 动 态体系结构建模的能力;5) 分层复合;6) 相关性 ,或者是行为与体系结构间关联(映射)的能力; 7)组件建模的能力,带属性断言、接口、实现; 8) 连接子建模的能力,带协议、属性断言与实现 ;9) 抽象与封装;10 )类型与类型检查;11)适应 分析工具的能力。
时间运行的系统,因而系统的进化能力显得格外重 要。组件的进化能力是系统进化的基础。ADL是通 过组件的子类型及其特性的细化来支持进化过程的 。目前,只有少数几种ADL部分地支持进化,对进 化的支持程度通常依赖于所选择的实现(编程)语 言。其它ADL将组件模型看作是静态的。ADL语言 大多是利用语言的子类型来实现对进化支持的:利 用OO方法,从其它类型派生出它的接口类型,形成 结构子类型(Rapde)。
4.3 体系结构描述语言
1)组件 组件类型是实现组件重用的手段。组件类型保
证了组件能够在体系结构描述中多次实例化,并且 每个实例可以对应于组件的不同实现。抽象组件类 型也可以参数化,进一步促进重用 。现有的ADL都 将组件类型与实例区分开来。
4.3 体系结构描述语言

软件体系结构课件-大连交大-第4章 软件体系结构描述

软件体系结构课件-大连交大-第4章 软件体系结构描述

2013年7月30日3时32分
lyy3232312@
11
第4章 软件体系结构描述 -- 体系结构描述语言
4.3.1 ADL与其他语言的比较
◇ 典型的ADL应该具有的特点 典型的ADL在充分继承和吸收传统程序设计语言的精 确性和严格性特点的同时,还具有: 构造能力:使用较小的独立体系结构元素建造大的软件系统 抽象能力:只关心抽象细节不管具体的实现 复用能力:包括构件、连接件和SA都可复用 组合能力:对局部结构能描述,进而支持动态变化 异构能力:允许多个不同的SA描述关联存在 分析和推理能力:能进行多种性能和功能上的推导
主 要 的 体 系 结 构 描 述 语 言 有 Aesop 、 MetaH 、 C2 、 Rapide、SADL、Unicon和Wright等,尽管它们都描述软 件体系结构,却有不同的特点。
这些ADL强调了体系结构不同的侧面,对体系结构的 研究和应用起到了重要的作用,但也有负面的影响。每一 种ADL都以独立的形式存在,描述语法不同且互不兼容, 同时又有许多共同的特征,这使设计人员很难选择一种合 适的ADL,若设计特定领域的软件体系结构又需要从头开 始描述。
◇ 实例 假设一个实时系统采用客户/服务器体系结构,在该 系统中,有两个任务共享同一个计算机资源,这种共享通 过远程过程调用来实现。
COMPONENT Real_Time_System 构件 INTERFACE IS 接 TYPE General IMPLEMENTATION IS 口 uses client interface rtclient 实 PRIORITY(10) 现 …… end client uses server interface rtclient PRIORITY(10) …… end server

第四章_软件体系结构描述

第四章_软件体系结构描述
基于软构件的系统描述语言将软件系统描述成一种是 由许多以特定形式相互作用的特殊软件实体构造组成的 组织或系统。 例如,一种多变配置语言就可以用来在一个较高的抽 象层次上对系统的体系结构建模,Darwin最初用作设计 和构造复杂分布式系统的配置说明语言,因具有动态特 性,也可用来描述动态体系结构。
• 抽象是人类对实际事物在针对某一特定观点下的简化 – 突出我们希望认识的各个元素 – 允许我们对关注的结构和行为进行辨识和分析 – 在构建新的实例时可以作为蓝图
3
补充
抽象实例:运动系统
4
补充
抽象实例:动力系统
忽略了施力者和受力者的实体 忽略了次要的环境作用,如地面、空气 忽略了传力媒介 突出了力和运动状态之间的关系
描述方法的种类
图形表达工具


模块内连接语言
基于软构件的系统描述语言 软件体系结构描述语言
11
第4章 软件体系结构描述 •图形表达工具
4.1 软件体系结构描述方法
– 用由矩形框和有向线段组合而成的图形表达工具。其 中,矩形框代表抽象构件,有向线段代表辅助各构件 进行通讯、控制或关联的连接件。 缓冲 测试配置 测试结果库 • 特点 – 语义丰富 最优/最劣时间 布图算法 复杂度计算 计算 – 语义极不精确 – 没有形式化基础 带时间特性的 函数调用关系 程序复杂度 • 用途 流程图 图 – 商业展示 – 设计草图
26
补充
尽管人们已经提出了大量的ADL和相应的工具, 在研究界对于什么是ADL、以及ADL应该在哪些方 面进行建模,仍未形成共识。特别是在ADL应该向 开发人员提供什么层次的支持,也有争议.
27
补充

简单观点:SA描述所承担的角色是辅助软件系统的 理解和交流,所以ADL必须简单、可理解。并采用 图形化的语法,不必追求形式化定义的语义。还应 该具有支持对SA的可视化和简单分析的工具。 形式化观点:将精力主要放在形式化的ADL语法和 语义上,并着重开发分析工具、模型检测工具、语 法分析工具、编译器、代码合成工具、运行时支撑 工具等。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。



2018/9/14
wangzhiming@
7
§4.4.2 Wright(续)

Wright的符号:

进程与事件(Processes and Events):STOP表示终止,“√”表 示成功事件; 前缀(Prefixing):一个进程参与到事件e中,成为进程P,以 e P表示; 选择(Alternative):外部选择,由环境作出,以P□Q表示; 决策(Decision):内部选择,由进程自己作出,以PΠQ表示;
2018/9/14
wangzhiming@
5
§4.4.2 Wright

CMU: Robert Allen & David Garlan
/~able/wright/




支持对构件之间交互的形式化分析;将连接件定义 为明确的语义实体; 构件通过其端口和行为来定义,表明了端口之间是 如何通过构件的行为而具有相关性的; 连接件通过协议来定义,协议刻画了与连接件相连 的构件的行为,对构件的“期望”及实际交互过程; 构件和连接件的实例被声明后,系统组合可以通过 构件的端口和连接件的角色之间的连接来完成。
2018/9/14
wangzhiming@
3
§4.4.1 UniCon(续)

提供一组预先定义的构件和连接件类型,体系结 构开发者可从中选择; 区分不同类型构件和连接件的交互点,并对组合 方式进行限制;进而进行局部组合匹配检查;


特性列表的方法已被ACME和USC开发的 Architecture Capture Tool所采纳;
对于已有构件,通过利用UniCon的术语对其接口 重新定义的方式,使其可被UniCon使用。

2018/9/14
wangzhiming@
4
§4.4.1 UniCon(续)

UniCon描述连接约束:
ROLE output IS Source MAXCONNS (1) ACCEPT (Filter.StreamIn) END output


提供对大量构件和连接件的统一访问; 区分不同类型的构件和接连件以便对体系结构配 置进行检查; 支持不同的表示方式和不同开发人员的分析工具; 支持对现有构件的使用。
2018/9/14
wangzhiming@
2
§4.4.1 UniCon(续)Fra bibliotek
通过定义类型、特性列表、交互点来描述构件和连 接件; 系统组合构造通过定义构件的端口和连接件的角色 之间的连接来完成。 最新资料参见: /(http://unicon.or g/) /afs/cs/project/vit/www /unicon/ index.html
第四章 软件体系结构描述

4.1 软件体系结构描述方法 4.2 软件体系结构描述框架标准 4.3 体系结构描述语言 4.4 典型体系结构描述语言 4.5 统一建模语言(UML) 4.6 可扩展标记语言XML 4.7 基于XML的软件体系结构描述
wangzhiming@
1
2018/9/14
§4.4 典型ADL
§4.4.1 UniCon

/~acme/adltk/adls.html

The Unified Extended Dialect of Icon (一种 编程语言/icon/); 特点:



并行组合(Parallel Composition):把两个进程组合起来,以 P||Q表示;
§表示一个成功终止的进程,即: §=√ STOP。

2018/9/14
wangzhiming@
8
§4.4.2 Wright(续)

Wright对管道连接的描述:
Connector Pipe =
role Writer = write Writer Π close § role Reader = let ExitOnly = close § in let DoRead = (read Reader □ read-eof ExitOnly)
in DoRead Π ExitOnly glue = let ReadOnly = Reader.read ReadOnly □ Reader.read-eof Reader.close § □ Reader.close § in let WriterOnly = Writer.write WriteOnly □ Writer.close§ in Writer.write glue □ Reader.read glue □ Writer.close ReadOnly □ Reader.close WriteOnly
wangzhiming@
6
2018/9/14
§4.4.2 Wright(续)

提供对体系结构和抽象行为的精确描述,具有定义 体系结构风格和对体系结构描述进行一致性、完整 性检查的能力; 体系结构通过构件、连接件以及它们之间的组合来 描述;
Wright提供一致性和完整性检查有:端口-行为一致 性、连接件死锁、角色死锁、端口-角色相容性、风 格约束满足以及胶水完整性等。

UniCon描述管道:
USES p1 PROTOCOL Unix-pipe USES sorter INTERFACE Sort-filter CONNECT sorter.output TO p1.source USES p2 PROTOCOL Unix-pipe USES printer INTERFACE Print-filter CONNECT sorter.input TO p2.sink
相关文档
最新文档