Chap05.2_动态软件体系结构_动态模型(精)
动态软件体系结构描述方法

学号 1206年级 2012级动态软件体系结构描述D-ADL方法理解与研究专业班级计算机(2)班姓名联系方式 15任课教师周2015年5月中国南京摘要D-ADL是一种刻画软件的动态行为的描述方法,该方法是由我国学者李长云提出的。
在D—ADL中,组件、连接件和体系结构风格定义为抽象类型,系统行为被模型化为进程,构件和连接件的交互点则被模型化为通道,它将动态行为从计算行为中分离出来,其结果能够被预先推导。
关键词:动态软件体系结构;D-ADL根据软件体系结构在运行时的演化方式,可以分为静态软件体系结构和动态软件体系结构。
软件体系结构的动态演化包括组件或连接件的创建或删除、组件的更新、调整负载平衡等几种情况。
D-ADL便是一种为动态体系结构建模提供支持的方法。
D-ADL遵循Wright等给出的SA描述框架,并且D-ADL将高阶多型π演算作为行为语义基础,凭借高阶π演算描述动态系统的特征,D-ADL允许构件、连接件和配置产生变更,并使得对SA的自动化分析成为可能。
D-ADL将类型与实例区分开来,构件类型是实现构件重用的手段。
构件具有三个基本组成部分:接口部分、行为部分和属性部分。
构件分有原子构件和复合构件两种。
原子构件是指不具备内部结构的构件。
为了进一步促进原子构件的重用,构件可以参数化,通过输入不同的参数,来提高构件的灵活性。
复合构件是由多个构件实例和连接件实例组装而成的,它在规约层次上表达了成员之间的组合。
与原子构件类似,复合构件也可进行参数化,从而提高构件的可重用性。
连接件是一种特殊的构件,同样地,连接件也分为原子连接件和复合连接件两类。
原子连接件语法规约类似于原子构件,仅仅是计算行为描述换成了路由行为。
通过结构化组合,多个连接件和构件也能形成复合连接件。
在D-ADL中,动态行为规约是通过choreographer来处理的.动态行为本质上是对体系结构的动态重配置,涉及到如下的体系结构变动:(1)动态创建新的构件实例和连接件实例以及新的端口和通道;(2)动态删除构件实例和连接件实例以及端口和通道;(3)体系结构元素之间连接的改变。
第5章 动态软件体系结构

◇ 基于构件的动态系统结构模型
◎ 更新执行步骤
◇ 检测更新的范围 ◇ 更新准备工作 ◇ 执行更新 ◇ 存储更新
第5章 动态软件动态系统结构模型
◎ 实例分析
◇ 局部更新
第5章 动态软件体系结构
5.2 软件体系结构动态模型
◇ 基于构件的动态系统结构模型
第5章 动态软件体系结构
第5章 动态软件体系结构 ◇ 软件体系结构动态性
◎ 交互式动态性 ◎ 结构化动态性
5.1 动态软件体系结构概述
◎ 体系结构动态性
第5章 动态软件体系结构 ◇ 动态体系结构的研究
5.1 动态软件体系结构概述
◎ 模拟和描述体系结构动态更新 ◎ 体系结构动态更新的执行
第5章 动态软件体系结构
◎ 实例分析
◇ 全局更新
第5章 动态软件体系结构 πADL动态体系结构 ◇ πADL动态体系结构
5.2 软件体系结构动态模型
选读
第5章 动态软件体系结构 ◇ 动态体系结构描述语言
◎ Dynamic Wright
5.2 动态体系结构的描述
静态描述
动态描述
第5章 动态软件体系结构 ◇ 动态体系结构描述语言
◎ Darwin
5.3 动态体系结构的描述
第5章 动态软件体系结构
5.3 动态体系结构的描述
◇ 动态软件体系结构的形式化描述
◎ 图形化方法
第5章 动态软件体系结构
5.3 动态体系结构的描述
◇ 动态软件体系结构的形式化描述
◎ 进程代数方法
第5章 动态软件体系结构
5.3 动态体系结构的描述
◇ 动态软件体系结构的形式化描述
◎ 逻辑化描述方法
第5章 动态软件体系结构 ◇ 可构造性动态特征
5章 动态软件体系结构(张有生)

17
第5章 动态软件体系结构 ◇ 基于构件的动态系统结构模型
◎ 实例分析
5.2 软件体系结构动态模型
局部更新:只作用于需要更新的构件内部,不 影响系统的其他部分
1.请求 更新 5.成功 更 新 返回 发起者 构件A 构件配置 接口
3. 执行 更新
2.准备 4.重新 连接
连接件B
构件C 构件配置
连接配置 接口 构件连接 执行
结构化动态性
eg.允许在复合构件的固定连接中改变数据 eg.允许对系统添加或删除构建或连接件 eg.允许构件的整个配置改变
◎
体系结构动态性
第5章 动态软件体系结构 ◇ 动态体系结构的研究
5.1 动态软件体系结构概述
◎ 模拟和描述体系结构动态更新的语言 ◎ 支持体系结构动态更新的执行工具
Change scripts Changes applies to Model Architecture Model Design environment Changes implicitly affect implementation Implementation
第5章 动态软件体系结构 ◇ 动态更新的执行
5.1 动态软件体系结构概述
◎ 目前,支持动态体系结构机制的主要有ArchStudio
工具集和软件体系结构助理(SAA)。
· ArchStudio工具集由加州大学提出,支持交互式图形化描 述和C2风格描述的体系结构的动态修改。 〃 SAA是由伦敦皇家学院提出的,可以用来描述、分析和建 立动态体系结构。
第5章 动态软件体系结构 ◇ πADL动态体系结构
◎ ∏ADL体系结构描述框架定义
围绕体系结构抽象级别的实体,如构件、连 接件、系统配置、体系结构风格等进行体系 结构建模。 书中利用扩充的BNF范式给出∏ADL描述体 系结构的框架。
Chap05.3_动态软件体系结构_动态体系结构的描述汇总

6
2018/9/14
§5.3.2 动态体系结构的形式化描述 (续)
Architectural Structure Architectural Style Le Metayer approach Hirsch et al approach Taentzer et al approach Context-free graph grammar Context-free graph grammar System Architecture Graph(formally defined as a multiset) hypergraph Architectural Element Behavior components nodes of a graph and a csp like behavior specification edges of a graph with CCS labels local graph of each network graph node and local transformations between local graphs molecule connectors edges of a graph nodes of a graph[pointpoint communication and broadcast communication] edges of a graph links between two component molecules Architectural Reconfiguration graph rewriting rules with side conditions to refer to the status of public variables graph rewriting rules
软件体系结构-完整张友生

精品课件
第1章 软件体系结构概论 ◇ 构件重用
1.2 构件与软件重用
◎ 检索与提取构件 ◎ 理解与评价构件 ◎ 修改构件 ◎ 构件组装
精品课件
第1章 软件体系结构概论 ◇ 构件重用
1.2 构件与软件重用
◎ 检索与提取构件
◇ 基于关键字的检索 ◇ 刻面检索法 ◇ 超文本检索法 ◇ 其他检索方法
精品课件
精品课件
第1章 软件体系结构概论 ◇ 软件危机的表现
1.1 从软件危机谈起
◎ 软件质量差
软件项目即使能按预定日期完成,结果却不尽人意。 1965年至1970年,美国范登堡基地发射火箭多次失败,绝 大部分故障是由应用程序错误造成的。
在“软件作坊”里,由于缺乏工程化思想的指导,程 序员几乎总是习惯性地以自己的想法去代替用户对软件的 需求,软件设计带有随意性,很多功能只是程序员的“一 厢情愿”而已,这是造成软件不能令人满意的重要因素。
软件项目开发人员不能有效地、独立自主地处理大型 软件的全部关系和各个分支,因此容易产生疏漏和错误。
精品课件
第1章 软件体系结构概论 ◇ 软件危机的原因
1.1 从软件危机谈起
◎ 软件复杂度越来越高
软件不仅仅是在规模上快速地发展扩大,而且其复杂 性也急剧地增加。软件产品的特殊性和人类智力的局限性, 导致人们无力处理“复杂问题”。
在技术上,应该采用基于重用的软件生产技术; 在管理上,应该采用多维的工程管理模式。
精品课件
第1章 软件体系结构概论 ◇ 构件模型及实现
1.2 构件与软件重用
◎ 构件的定义
构件是指语义完整、语法正确和有可重用价值的单 位软件,是软件重用过程中可以明确辨识的系统;结构 上,它是语义描述、通讯接口和实现代码的复合体。
软件体系结构_第二章软件体系结构的风格与模式

软件体系结构_第二章软件体系结构的风格与模式软件体系结构是指软件系统在运行时所表现出来的组成部分之间的关系。
在软件设计和开发过程中,选择适合的体系结构风格与模式对于实现系统的可扩展性、可维护性和可靠性等方面的要求非常重要。
本章将介绍一些常见的软件体系结构风格与模式。
1. 分层体系结构(Layered architecture)分层体系结构是一种自顶向下的体系结构风格,它将软件系统划分为多个分层,每个分层只与其相邻的分层进行通信,并且每个分层都具有一定的功能和责任。
分层体系结构能够有效地提高系统的模块化程度,降低系统的复杂性。
2. 客户/服务器体系结构(Client/Server architecture)客户/服务器体系结构是基于分布式计算的一种体系结构风格,其中客户端和服务器端是相对的角色。
客户端负责用户界面和用户交互,而服务器端负责数据存储和业务逻辑。
客户/服务器体系结构能够提高系统的可扩展性和性能。
3. 事件驱动体系结构(Event-Driven architecture)事件驱动体系结构是一种基于事件和消息的体系结构风格,其中组件之间通过事件和消息进行通信和协作。
事件驱动体系结构能够实现松耦合,提高系统的灵活性和可扩展性。
4. MVC模式(Model-View-Controller pattern)MVC模式是一种软件设计模式,用于将用户界面、数据处理和业务逻辑相分离,使每个部分可以独立变化。
模型(Model)表示应用程序的数据和业务逻辑,视图(View)表示用户界面,控制器(Controller)负责接收和处理用户的输入。
MVC模式能够提高系统的可维护性和可重用性。
5. 微服务架构(Microservices architecture)微服务架构是一种将系统划分为多个小型、自治的服务的体系结构风格。
每个服务都可以独立地开发、部署和扩展,并且通过轻量级的协议进行通信。
微服务架构能够提高系统的灵活性和可扩展性。
软件体系结构知识点

构件:构件是指语义完整、语法正确和有可重用价值的单位软件,是软件重用过程中可以明确辨识的系统;结构上,它是语义描述、通讯接口和实现代码的复合体。
构件管理:1构件描述2构件分类与构件库组织:关键字分类法刻面分类法(青鸟)超文本组织方法(基本单位是结点)3人员及权限管理构件重用步骤:检索与提取构件(检索方法同上3种加其他)理解与评价构件修改构件(实参)构件组装(功能数据面向对象)软件体系结构:软件体系结构为软件系统提供了一个结构、行为和属性的高级抽象,由构成系统的元素的描述、这些元素的相互作用、指导元素集成的模式以及这些模式的约束组成。
软件体系结构不仅指定了系统的组织结构和拓扑结构,并且显示了系统需求和构成系统的元素之间的对应关系,提供了一些设计决策的基本原理。
软件体系结构的意义:体系结构是风险承担者进行交流的手段体系结构是早期设计决策的体现软件体系结构是可传递和可重用的模型软件体系结构建模的种类:结构模型框架模型动态模型过程模型功能模型4+1”视图模型从5个不同的视角包括逻辑视图、进程视图、物理视图、开发视图和场景视图来描述软件体系结构。
逻辑视图主要支持系统的功能需求,即系统提供给最终用户的服务。
开发视图也称模块视图,主要侧重于软件模块的组织和管理。
进程视图侧重于系统的运行特性,主要关注一些非功能性的需求。
物理视图主要考虑如何把软件映射到硬件上,它通常要考虑到系统性能、规模、可靠性等。
场景可以看作是那些重要系统活动的抽象,它使四个视图有机联系起来,从某种意义上说场景是最重要的需求抽象。
软件体系结构风格是描述某一特定应用领域中系统组织方式的惯用模式。
体系结构风格反映了领域中众多系统所共有的结构和语义特性经典的体系结构风格数据流风格:批处理序列;管道/过滤器。
调用/返回风格:主程序/子程序;面向对象风格;层次结构。
独立构件风格:进程通讯;事件系统。
虚拟机风格:解释器;基于规则的系统。
仓库风格:数据库系统;超文本系统;黑板系统。
软件工程软件体系结构

通用语言运行规范(CLS)
Web服务 数据和XML 用户接口
基本类库
通用语言运行时刻环境(CLR)
某制造企业的架构
用户界面 子 系 统
销 售 公 司
生 产 计 划 部 生 产 设 备 处
采 购
财 务 处
人 事 处
劳 资 处
专 卖 处
科 技 处
仓 库
办 公 室
市 场 部
…
DDL 专用 构件库
查 询 统 计 采 购 管 理 计 帐 分 析 对 比 报 表 财 务 管 理 计 划 销 售 管 理 … 计 划 管 理 汇 总 执 行 录 入 … 文 档 审 计 … 文 档 批 阅 归 档 特 权 管 理 恢 复 文 档 转 发 转 储 …
• 什么是软件体系结构 • 软件体系结构的发展
• 软件体系结构的研究范畴
软件设计的目标
•设计应该是便于维护和升级的,因而应
该是模块化的
•设计应该是便于移植的 •设计应该具有适应性 •设计过程应该受到理性化的控制 •设计应该表现出概念的完整性
软件设计思想
•强调信息隐蔽的单元概念 •应用基于操作和数据封装构成的单元设计
计算机硬件体系结构分类
指令1 指令2
数据1 指令 1 控制1 处理1
存储1
控制2
…… 控制n
指令2
处理2
……
数据2
存储2
……
指令n
指令n
处理n
数据n
存储n
MIMD多指令流多数据流计算机
多处理机系统
控制 处理
MAP
…… ……
控制 处理
MAP
……
互连网络
……
通道
存储
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
13
2018/9/14
§5.2.2 πADL动态体系结构(续)
2、πADL体系结构建模方法(续) 具体方法:
2018/9/14
wangzhiming@
12
§5.2.2 πADL动态体系结构(续)
2、πADL体系结构建模方法 基本思想:
在构件的计算、连接件的胶水进程中,插入用 于体系结构动态演化的特定控制名字,表达体 系结构动态演化的起因和安全地进行动态演化 的时间; 运用π演算作为统一的形式语义基础,建立单 独的动态配置进程,形式化描述体系结构动态 演化方案; 运用π演算固有的动态建模能力,通过连接件 动态输入不同构件的交互行为名字,实现与构 件的动态连接和交互,并据此给出体系结构动 态配置的形式语义。
本层可添加、删除、更新构件。
2018/9/14
wangzhiming@
4
§5.2.1 基于构件的动态系统结构 模型(续)
中间层:包括连接件配置、构件配置、构件 描述和执行。
连接件配置管理连接件及其接口的通信配置; 构件配置管理构件行为;构件描述对构件的内 部结构、行为、功能和版本等信息加以描述;
9
执行
2018/9/14
wangzhiming@
全局更新:
体系结构 配置器 Client 配置器 连接件 Server构件 执行
Server构件 配置器 请求更新
提交更新请求 判 断 通知有更新请求 通知有更新请求 返回准备 就绪信息 返回准备 就绪信息 通知一切就绪 准备执行更新 通知更新执行完毕并返回结果 通知更新 结束 通知更新结束 返回相应信息 通知更新结束 通知更新结束
分为三层:应用层、中间层和体系结 构层,见图5-2。
2018/9/14
wangzhiming@
2
§5.2.1 基于构件的动态系统结构 模型(续)
体系结 构层 体系结构配置 体系结构描述 执行
构件 构件配置 中间层 构件描述 执行 应用层 构件接口 执行
连接件 连接件 配置 构件连接
本层可添加版本控制机制和不同的构件装载方 法。
2018/9/14
wangzhiming@
5
§5.2.1 基于构件的动态系统结构 模型(续)
体系结构层:最上层,控制和管理整个体系 结构,包括体系结构配置、描述和执行。
SA描述主要描述构件及相联系连接件的数据; SA配置控制整个分布式系统的执行,并管理配 置层,SA执行对体系结构层的行为进行描述; 更改和扩展更新机制,更改系统的拓扑结构, 以及更新构件到处理元素之间的映射。
wangzhiming@
11
2018/9/14
§5.2.2 πADL动态体系结构(续)
1、πADL体系结构描述框架定义
借鉴ACME、Wright体系结构描述框架, 提供专门的标记符号,围绕构件、连接件、 系统配置、风格等实体进行体系结构建模; 既能描述单个系统,又能描述一类系统的 体系结构风格,支持层次配置、动态体系 结构和体系结构演化。
2018/9/14
返回准备 就绪信息 执行 更新
wangzhiming@
10
§5.2.2 πADL动态体系结构
Π演算
R. Milner于70年代提出的通信系统演算 CCS (The Calculus of Communication Systems);(1991年图灵奖) 为描述通信拓扑结构动态变化的系统,与 D. Walker, J. Parrow在80年代末提出π演 算; 可描述通信拓扑结构动态变化的分布通信 系统,允许进程之间传送和接收通道名, 并且可以引入和输出局部名,具有很强的 表达能力。
2018/9/14
wangzhiming@
6
§5.2.1 基于构件的动态系统结构 模型(续)
二、更新请求描述
更新类型:添加、删除和修改构件; 更新对象列表:需要更新对象类的ID号; 对象的新版本说明:对象的新版本执行情况; 对象更新方法:更替、动态和静态; 更新函数:用来更新一个执行对象进程的状态 转换函数; 更新限制:描述更新及它们之间的关系。
第五章 动态软件体系结构
5.1 动态软件体系结构概述 5.2 软件体系结构动态模型 5.3 动态体系结构的描述 5.4 动态体系结构特征 5.5 化学抽象机
2018/9/14
wangzhiming@
1
§5.2 软件体系结构动态模型
§5.2.1 基于构件的动态系统结构模型 一、模型简介 CBDSAM: Component Based Dynamic System Architecture Model;
构件 构件配置 构件描述 执行 构件接口 执行
3
2018/9/14
图5.2 CBDSAM wangzhiming@
§5.2.1 基于构件的动态系统结构 模型(续)
应用层:最底层,包括构件连接、构件接口 和执行。
构件连接定义连接件如何与构件相连接;构 件接口说明构件提供的服务;
2018/9/14
wangzhiming@
8
§5.2.1 基于构件的动态系统结构模 型(续)
四、实例分析
局部更新:
构件A 构件配置 接口
3. 执行 更新
1.请求 更新 5.成功 更 新 返回 发起者
2.准备 4.重新 连接源自连接件B构件C 构件配置
连接配置 接口 构件连接 执行
2018/9/14
wangzhiming@
7
§5.2.1 基于构件的动态系统结构 模型(续)
三、更新执行步骤
检测更新的范围:局部、全局; 更新准备工作:应用层需要等待参与进程发 出可安全更新信号;配置层需要等待连接件 其他构件已完成更新; 执行更新:告知发起者更新的结果; 存储更新:将所作的更新存储到构件或体系 结构描述中。