第5章 动态软件体系结构
- 格式:doc
- 大小:22.50 KB
- 文档页数: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)体系结构元素之间连接的改变。
软件体系结构课程性质:必修学时/学分:40/2.5关于教材◇出版社:清华大学出版社◇作者:张友生课程内容◇软件体系结构概论◇软件体系结构建模◇软件体系结构风格◇软件体系结构描述◇动态软件体系结构◇Web服务体系结构◇基于体系结构的软件开发◇软件体系结构的分析与测试◇软件体系结构评估◇软件产品线体系结构◇软件危机的表现◎软件成本日益增长◎开发进度难以控制◎软件质量差◎软件维护困难第1章软件体系结构概论1.1 从软件危机谈起◇软件危机的表现◎软件成本日益增长20世纪50年代,软件成本在整个计算机系统成本中所占的比例为10%-20%。
到20世纪60年代中期,软件成本在计算机系统中所占的比例已经增长到50%左右。
而且,该数字还在不断地递增,下面是一组来自美国空军计算机系统的数据:1955年,软件费用约占总费用的18%,1970年达到60%,1975年达到72%,1980年达到80%,1985年达到85%左右。
第1章软件体系结构概论1.1 从软件危机谈起◇软件危机的表现◎开发进度难以控制由于软件是逻辑、智力产品,软件的开发需建立庞大的逻辑体系,这是与其他产品的生产不一样的。
在软件开发过程中,用户需求变化等各种意想不到的情况层出不穷,令软件开发过程很难保证按预定的计划实现,给项目计划和论证工作带来了很大的困难。
盲目增加软件开发人员并不能成比例地提高软件开发能力。
相反,随着人员数量的增加,人员的组织、协调、通信、培训和管理等方面的问题将更为严重。
第1章软件体系结构概论1.1 从软件危机谈起◇软件危机的表现◎软件质量差软件项目即使能按预定日期完成,结果却不尽人意。
1965年至1970年,美国范登堡基地发射火箭多次失败,绝大部分故障是由应用程序错误造成的。
在“软件作坊”里,由于缺乏工程化思想的指导,程序员几乎总是习惯性地以自己的想法去代替用户对软件的需求,软件设计带有随意性,很多功能只是程序员的“一厢情愿”而已,这是造成软件不能令人满意的重要因素。
第一章1. 体系结构发现、演化、重用体系结构发现解决如何从已经存在的系统中提取软件的体系结构,属于逆向工程范畴。
由于系统需求、技术、环境、分布等因素的变化而最终导致软件体系结构的变动,称之为软件体系结构演化。
体系结构重用属于设计重用,比代码重用更抽象。
由于软件体系结构是系统的高层抽象,反映了系统的主要组成元素及其交互关系,因而较算法更稳定,更适合于重用。
2.基于软件体系结构的软件开发方法:问题定义—>软件需求—>软件体系结构—>软件设计—>软件实现3.评价软件体系结构的方法权衡分析方法(ATAM方法),软件体系结构分析方法(SAAM方法),中间设计的积极评审(ARID方法)第二章1. 建模结构模型:研究结构模型的核心是体系结构描述语言。
以体系结构的构件,连接件和其他概念来刻画结构。
并力图通过结构来反映系统的重要语义内容。
框架模型:与结构模型类似,但不太侧重细节,而侧重于整体结构。
动态模型:是对结构和框架模型的补充,研究系统大颗粒的行为性质。
过程模型:研究构造系统的步骤和过程,结构是遵循某些过程脚本的结果。
功能模型:认为体系结构是由一组功能构件按层次组成,下层向上层提供服务。
功能模型可以看作是一种特殊的框架模型。
4+1视图模型:逻辑视图、进程视图、物理视图、开发视图和场景视图逻辑视图主要支持系统的功能需求,即系统提供给最终用户的服务。
在逻辑视图中,系统分解成一系列的功能抽象,这些抽象主要来自问题领域。
这种分解不但可以用来进行功能分析,而且可用作标识在整个系统的各个不同部分的通用机制和设计元素。
在面向对象技术中,通过抽象、封装和继承,可以用对象模型来代表逻辑视图,用类图来描述逻辑视图开发视图通过系统输入输出关系的模型图和子系统图来描述。
进程视图侧重于系统的运行特性,主要关注一些非功能性的需求。
物理视图主要考虑如何把软件映射到硬件上。
逻辑视图和开发视图描述系统的静态结构,而进程视图和物理视图描述系统的动态结构。
《软件体系结构》各章思考题第1章软件体系结构概论1、根据自己的经验,谈谈对软件危机的看法。
2、就项目管理方面而言,软件重用项目与非重用项目有哪些不同之处。
3、实际参与/组织一个软件重用项目的开发,然后总结你是如何组织该项目的开发的。
4、为什么要研究软件体系结构?5、根据软件体系结构的定义,你认为软件体系结构的模型应该由哪些部分组成?6、在软件体系结构的研究和应用中,你认为还有哪些不足之处?第2章软件体系结构建模1、选择一个规模合适的系统,为其建立“4+1”模型。
2、引入了软件体系结构以后,传统软件过程发生了哪些变化?这种变化有什么好处?3、软件体系结构的生命周期模型与软件生命周期模型有什么关系?第3章软件体系结构风格1、层次系统结构和基于消息的层次系统结构有什么区别?2、试分析和比较B/S,二层C/S和三层C/S,指出各自的优点和缺点。
3、组织或参与一个采用B/S和C/S混合体系结构的软件项目的开发,总结开发经验。
4、组织或参与一个采用三层体系结构的软件项目的开发,总结开发经验。
5、SIS和DSSA分别用在哪些场合?6、在软件开发中,采用异构结构有什么好处,其负面影响有哪些?第4章软件体系结构描述1、体系结构描述有哪些方法?有哪些标准和规范?2、体系结构描述语言与程序设计语言有什么区别?3、选择一个规模适中的系统,使用UML为其建模。
第5章动态软件体系结构1、什么是动态软件体系结构?动态软件体系结构与静态软件体系结构有什么区别?2、基于构件的动态软件体系结构模型的层次结构是什么?3、试比较Dynamic Wright和Darwin的特点。
4、试用Dynamic Wright描述B/S结构第6章Web服务体系结构1、什么是Web服务体系结构?与传统的结构相比,使用Web服务有哪些好处?2、在Web服务中,如何实现其松散耦合的特点?3、试分析服务提供者、服务请求者和服务代理三者的作用,以及它们之间的工作流程。
动态软件体系结构模型及自适应策略的研究动态软件体系结构模型及自适应策略的研究随着软件系统的复杂性和多样性不断增加,为了提高软件系统的性能和适应性,研究者们开始关注动态软件体系结构模型及自适应策略。
动态软件体系结构模型是一种可以自适应地应对不同环境和需求变化的软件系统架构。
本文将介绍动态软件体系结构模型的概念和原理,并探讨其在软件开发中的应用。
动态软件体系结构模型是指一种可以根据系统环境和需求变化来动态调整自身结构和功能的软件架构。
与传统的静态软件体系结构模型不同,动态软件体系结构模型允许软件系统在运行时根据实时环境信息进行改变,以提供更好的性能和适应性。
其核心思想是将软件系统分为多个自治的组件,这些组件可以根据环境和需求的变化进行自主调整和动态协作。
通过灵活调整系统结构,动态软件体系结构模型能够在不改变系统整体功能的情况下适应不同的运行环境和需求变化。
动态软件体系结构模型的设计需要考虑以下几个关键方面。
首先是系统的自组织能力,即组件之间的动态协作和自治能力。
通过定义合适的接口和通信机制,不同的组件可以自主地判断环境信息并进行相应的调整。
其次是系统的可扩展性,即系统能够在运行时动态地添加或删除组件以满足不同的功能需求。
同时,动态软件体系结构模型还需要考虑系统性能和安全性的平衡,以确保系统在动态调整过程中不会降低性能或引入不安全因素。
在动态软件体系结构模型的研究中,自适应策略被广泛应用于系统的决策和调整过程。
自适应策略是指一种根据实时环境信息和需求变化来调整系统行为和配置的方法。
通过引入自适应策略,动态软件体系结构模型可以根据具体需求自动选择合适的组件并调整它们之间的协作关系,以实现更高的性能和适应性。
常见的自适应策略包括基于规则的策略和基于机器学习的策略。
基于规则的策略通过预先定义一些规则和条件来决定系统的行为和配置;而基于机器学习的策略则通过学习历史数据和环境信息来预测未来的需求变化,并根据预测结果进行相应的调整。
《软件体系结构》教学大纲课程英文名称: Software Architecture课程编号:050302一、课程说明1.课程性质《软件体系结构》课程,是软件工程专业硕士研究生的主干课程。
2.课程的目的和任务软件体系结构主要介绍软件体系结构和中间件的基本概念,使学生对软件体系结构有比较深入的了解。
通过学习,使得学生在软件工程思想的基础上,更进一步掌握软件分析和软件开发的方法和思想,并能在实际中应用。
培养学生成为一名合格的软件分析师或软件工程师,并为其在该领域进一步深造打下坚实的基础。
3.适用专业软件工程,计算机科学与技术专业4.学时与学分学分:3 学时:45 讲授学时:45 实践学时:05.先修课程软件工程,数据结构与算法,操作系统,程序设计6.推荐教材或参考书目教材名称:《软件体系结构》张友生编著清华大学出版社ISBN:7302078106 2004版主要参考书目:《软件体系结构理论与实践》冯冲,江贺,冯静芳编著人民邮电出版社2004版7.主要教学方法与多媒体要求主要教学方法:理论和技术教学,案例驱动教学多媒体要求:多媒体教学占80%8.考核方式1、平时成绩(书面作业+上机实验+考勤)2、课程大作业3、期末闭卷笔试4、总成绩 = 笔试成绩(60/100)+ 平时成绩(20/100)+ 大作业成绩(20/100)9.课外自学要求书本上没讲过的内容,让学生自学。
推荐的教材,学有余力的学生可以自学。
二、教学基本要求和能力培养要求1.通过本课程的教学环节,达到以下基本要求1)、应使学生全面了解软件体系结构的概念。
2)、使学生对软件体系结构有比较深入的了解,掌握软件体系结构的思想,了解软件体系结构的设计过程。
3)、使学生在了解软件体系结构的基础上,能用之于软件开发的实践过动中去。
2.通过学习本课程应具备以下能力培养学生成为一名合格的软件分析师或软件工程师,并为其在该领域进一步深造打下坚实的基础。
三、课程教学内容第一章软件体系结构概论重点:了解软件危机的概念、产生以及表现。
第5章动态软件体系结构第5章动态软件体系结构原来研究静态,运行时结构不变。
动态软件体系结构,研究由于特殊需要必须连续运行时的变化。
5.1 概述基于软件体系结构成为开发主流,灵活—>动态、可扩展、自定义、可演化动态性三类:P151下。
研究分两方面:研究动态更新语言,研究支持工具。
1.动态ADL,C2支持动态2.工具,ArchStudio,SAA。
图5-1研究不成熟。
5.2 动态模型5.2.1 基于构件的模型1.模型简介CBDSAM,分三层。
应用层,中间层,体系结构层,图5-2。
应用层可添加删除、更新构件。
中间层添加版本控制机制,运载方法。
体系结构层更改扩展更新机制,改拓扑,改映射。
2.更新请求描述表5-1,add,remove,updata。
包括几个方面,P155(①-⑥)3.更新执行步骤,4个,P1554.实例分析,局部更新,不影响系统运行,图5-3,A构件动态隔离和恢复。
全局更新,图5-4,服务器更新。
5.2.2 πADL动态体系结构1.定义,表5-2,BNF范式2.建模方法,πADL借鉴Wright框架,用π演算动态建模能力。
基本思路:P159上,(1)(2)(3)建模具体方法,P159中,(1)(2)(3)(4) (8)表5-3,解释P160-161 (1)-(6)3.建模语义,π进程作形式语义基本思想,各进程并发运行,关键要点,表达动态创建和删除,动态连接。
动态体系结构行为推导算法,P161,步骤一二三步。
5.3 动态体系结构的描述5.3.1 描述语言1.Dynamic Wright,扩展了Wright,试图模拟或标记,以解决动态性。
图5-5,与两个Server交互,静态。
图5-6,动态描述,虚线,配置C,非常适合描述动态。
2.Darwin,描述系统配置规则。
ADL不同之处,有指定服务规则,图5-7,P163。
5.3.2 形式化描述包括体系结构描述,重配置,行为描述。
用图形化,代数进程,逻辑等。
《软件设计与体系结构》教学大纲01.课程的性质、目的与任务《软件设计与体系结构》课程是为软件工程专业开设的必修课,也是计算机科学与技术软件开发方向课程。
本课程运用工程的思想、原理、技术、工具,来对软件设计以及软件体系结构的相关思想、理论与方法进行系统介绍,包括软件模型和描述、软件体系结构建模和UML、软件设计过程、软件体系结构风格、面向对象的软件设计方法、面向数据流的软件设计方法、用户界面设计、设计模式、Web服务体系结构、基于分布构件的体系结构、软件体系结构评估、软件设计的进化、云计算的体系结构等内容。
本课程的具体任务包括:1.让学生建立构建软件系统架构一般方法的感性认识,理解并掌握软件系统架构分析、体系结构建模与架构设计的相关理论知识,培养学生软件架构设计的基本能力,能从内部模块规划设计、系统层次结构的构建开始,了解构建系统结构的一般技术和方法。
2.在构建软件系统的过程中,理解软件系统构建的一些关键问题,学习应对不同需求的系统对策和设计实现技术,使学生初步具备一定的系统架构分析与设计能力,同时,深入理解各种典型框架技术及原理,并初步具备运用模式设计思想开展软件详细设计的能力。
3.一方面,让学生理解并掌握软件体系结构的重要概念、术语和系统化方法,建立软件架构设计的理念,了解当前流行的框架技术,并理解其原理。
另一方面,以加深知识理解和培养初步架构设计能力为目的,并在项目开发中加以实践;在实践环节中重点培养运用典型框架进行项目构建的能力和使用设计模式进行细化设计的能力。
02.课程教学基本要求及基本内容第1章引言(一)基本教学内容1.1 软件1.2 软件工程1.3 软件设计1.4 软件体系结构(二)基本要求教学目的:理解软件的本质、软件神话、软件工程,了解软件过程和软件工程实践的相关内容,了解网络环境带来的各类问题。
教学重点:软件工程中的设计、设计过程和设计质量、软件设计原则。
教学难点:什么是软件体系结构、软件体系结构的内容、设计阶段的软件体系结构。
第5章动态软件体系结构
原来研究静态,运行时结构不变。
动态软件体系结构,研究由于特殊需要必须连续运行时的变化。
5.1 概述
基于软件体系结构成为开发主流,灵活—>动态、可扩展、自定义、可演化
动态性三类:P151下。
研究分两方面:研究动态更新语言,研究支持工具。
1.动态ADL,C2支持动态
2.工具,ArchStudio,SAA。
图5-1
研究不成熟。
5.2 动态模型
5.2.1 基于构件的模型
1.模型简介
CBDSAM,分三层。
应用层,中间层,体系结构层,图5-2。
应用层可添加删除、更新构件。
中间层添加版本控制机制,运载方法。
体系结构层更改扩展更新机制,改拓扑,改映射。
2.更新请求描述
表5-1,add,remove,updata。
包括几个方面,P155(①-⑥)
3.更新执行步骤,4个,P155
4.实例分析,局部更新,不影响系统运行,图5-3,A构件动态隔离和恢复。
全局更新,图5-4,服务器更新。
5.2.2 πADL动态体系结构
1.定义,表5-2,BNF范式
2.建模方法,πADL借鉴Wright框架,用π演算动态建模能力。
基本思路:P159上,(1)(2)(3)
建模具体方法,P159中,(1)(2)(3)(4) (8)
表5-3,解释P160-161 (1)-(6)
3.建模语义,π进程作形式语义
基本思想,各进程并发运行,关键要点,表达动态创建和删除,动态连接。
动态体系结构行为推导算法,P161,步骤一二三步。
5.3 动态体系结构的描述
5.3.1 描述语言
1.Dynamic Wright,扩展了Wright,试图模拟或标记,以解决动态性。
图5-5,与两个Server交互,静态。
图5-6,动态描述,虚线,配置C,非常适合描述动态。
2.Darwin,描述系统配置规则。
ADL不同之处,有指定服务规则,图5-7,P163。
5.3.2 形式化描述
包括体系结构描述,重配置,行为描述。
用图形化,代数进程,逻辑等。
1.图形化,图5-8
2.进程代数方法,图5-9
3.逻辑化描述,图5-10
5.4 动态体系结构特征
1.可构造性,三种一起用,图5-11
2.适应性,立即反应能力,图5-12
3.智能性,动态构造候选配置,图5-13
5.5 化学抽象机
1.CHAM,动态有用的形式化描述
计算看成分子反应,规则模式
方法——>膜操作——>分子
2.描述软件体系结构
把构件作为分子,表示其状态。
分子结构语法,P167。
C/S风格,P167中。
演化,P167下。
管道过滤器风格,P168中,图5-14。
采用熟悉概念,很适合动态。