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

合集下载

软件体系结构描述语言讲义(ppt 87页)

软件体系结构描述语言讲义(ppt 87页)
• 这些ADL强调了体系结构不同的侧面,对体系结构的研 究和应用起到了重要的作用,但也有负面的影响。每一 种ADL都以独立的形式存在,描述语法不同且互不兼容 ,同时又有许多共同的特征
• ADL与其他语言的比较(1)
– 构造能力:ADL能够使用较小的独立体系结构元素来建造大型软 件系统;
– 抽象能力:ADL使得软件体系结构中的构件和连接件描述可以只 关注它们的抽象特性,而不管其具体的实现细节;
4.1体系结构描述方法分类
• 图形表达工具 • 模块内连接语言 • 基于构件的系统描述语言 • 软件体系结构描述语言
• 图形表达工具
项目管理
静态分析器
测试配置
最 优 /最 劣 时 间 计算
带时间特性的 流程图
测试结果库
布图算法
函数调用关系 图
时间分析器 缓冲
复杂度计算 程序复杂度
测试结果打印
• 模块内连接语言
其他方面
• 风格/产品线问题
– 设计可变的尺度 – 体系结构的那个方面必须不被改变?
• 管理问题
– 暗含开发团队的组织结构 – 体系结构评审情况
• 其他设计问题
– 代码复用、标准的运用 – 风险分析 – 运作、管理和维护
软件体系结构的现状
• 体系结构的理解停留在直觉、逸事和传说层面 • 非形式化描述
– 采用将一种或几种传统程序设计语言的模块连接起来 的模块内连接语言。由于程序设计语言和模块内连接 语言具有严格的语义基础,因此它们能支持对较大的 软件单元进行描述,诸如定义/使用和扇入/扇出等操 作。例如,Ada语言采用use实现包的复用,Pascal语 言采用过程(函数)模块的交互等。
– MIL方式对模块化的程序设计和分段编译等程序设计 与开发技术确实发挥了很大的作用。但是由于这些语 言处理和描述的软件设计开发层次过于依赖程序设计 语言,因此限制了它们处理和描述比程序设计语言元 素更为抽象的高层次软件体系结构元素的能力。

第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. 体系结构配置或拓扑: 描述体系结构的构件与连接件的连接图。
同时检查语法、说明语义。 多视图、多场景的体系结构说明方法。

软件体系结构

软件体系结构

软件体系结构在软件开发过程中,软件体系结构是一个至关重要的概念。

软件体系结构是指软件系统中的各个组件、模块和它们之间的关系。

一个优秀的软件体系结构可以提高软件系统的可维护性、可扩展性和可重用性,同时也有利于降低开发成本和提高软件质量。

软件体系结构的定义软件体系结构是指软件系统中各个部分相互之间的组织方式。

它包括软件系统中的组件、组件之间的关系,以及这些组件和关系在整体上所形成的结构。

软件体系结构描述了软件系统的整体结构,以及各个组件之间的相互作用。

软件体系结构的重要性软件体系结构在软件开发过程中起着至关重要的作用。

一个良好的软件体系结构可以帮助开发人员更好地理解软件系统的结构和设计,从而更容易进行软件开发、测试、部署和维护。

此外,良好的软件体系结构还可以提高软件系统的性能、可靠性和安全性,降低软件开发和维护的成本。

软件体系结构的组成一个软件系统的体系结构通常由以下几个组成部分组成:1.组件(Components):软件系统中的各个部分。

2.接口(Interfaces):组件之间进行通信和交互的方式。

3.关系(Relationships):描述组件之间的依赖关系,如依赖、引用、调用等。

4.约束(Constraints):对组件之间交互的限制条件。

5.配置(Configurations):软件系统中各个组件的布局和部署方式。

软件体系结构的类型软件体系结构可以分为多种类型,常见的软件体系结构包括:•分层体系结构:软件系统按层次结构组织,每一层负责不同的功能。

•客户端-服务器体系结构:软件系统分为客户端和服务器,客户端负责用户界面,服务器负责处理业务逻辑。

•面向服务的体系结构:软件系统以服务为中心,各个组件之间通过服务进行通信和交互。

•事件驱动体系结构:软件系统通过事件进行通信和控制。

•管道和过滤器体系结构:软件系统通过一系列过滤器进行数据处理。

软件体系结构的设计原则在设计软件体系结构时,需要遵循一些设计原则,以确保软件系统的质量和可维护性:1.模块化:将软件系统划分为多个独立的模块,每个模块负责一个特定的功能。

软件体系结构

软件体系结构

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

软件体系结构

软件体系结构

软件体系结构随着计算机科学和技术的不断发展,软件开发也越来越重要。

软件体系结构是软件开发中非常关键的一环。

它是指软件系统中各组件之间的关系和交互方式的一种描述方式。

软件体系结构不仅仅是软件系统的设计,还涉及到软件系统的架构、组件、模式等多方面的内容。

软件体系结构的定义软件体系结构是指软件设计时所考虑到的系统结构和组件之间的关系,以及它们之间的交互方式和通信方式。

它是软件系统设计的基础,可以帮助程序员们更好地规划和管理整个项目。

在实际开发过程中,软件体系结构可以将软件系统划分为若干个独立的部分,每个部分可以独立开发,最终组合成一个完整的软件系统。

软件体系结构的重要性软件体系结构在软件开发生命周期的各个阶段都会发挥重要作用。

它可以帮助软件开发者们更清楚地定义系统范围、确定模块之间的关系、减少冲突和风险等。

此外,软件体系结构还可以帮助软件开发者预测系统的变化,让系统更加易维护和扩展。

软件体系结构的种类软件体系结构可以根据不同的标准进行分类。

下面介绍几种常见的分类方式。

1. 根据结构组织按照软件系统的结构组织方式来分类,可以分为:层次体系结构、客户/服务器体系结构、面向对象体系结构等。

层次体系结构将软件系统划分为若干个层次,每个层次尽量保持独立,每个层次只依赖于下一层次,不依赖于上一层次。

这种体系结构的好处是简单易懂,可维护性高。

客户/服务器体系结构是指将软件系统分为服务器端和客户端两部分。

服务器提供各种服务,客户端通过调用服务器端提供的服务来实现自己的功能。

这种体系结构的好处是扩展性好,因为只要增加一台服务器就可以为更多的客户端提供服务。

面向对象体系结构是指将软件系统看成是若干个对象的集合。

每个对象有一些属性和方法,它们之间可以相互调用来完成一些功能。

这种体系结构的好处是维护性好,因为不同对象之间的关系比较简单清晰。

2. 根据数据流方向按照数据流的方向来分类,可以分为:单向体系结构、双向体系结构。

单向体系结构是指软件系统在数据流的传递方向上是单向的,只有一个方向。

软件体系结构描述语言ADL综述_bycs

软件体系结构描述语言ADL综述_bycs

软件体系结构描述语⾔ADL综述_bycs软件体系结构描述语⾔ADL综述Advancement of Architecture Description Language (ADL) 引⾔60年代的软件危机使得⼈们重新开始重视软件⼯程的研究。

最初⼈们选择了“算法+数据结构=程序”的设计模式。

但随着软件系统的规模和复杂性越来越⼤,传统的设计模式已经不能适应要求。

同时为了保证软件质量,提⾼软件的可靠性、可重⽤⾏和可维护性,软件设计的核⼼逐渐转向对系统的总体结构即软件体系结构(Software Architecture)的设计和规范。

这类⽅法主要着眼于软件系统的全局组织形式,在更⾼层次上把握系统各组件之间的内在联系。

并从全局的,整体的⾓度去理解和分析整个系统的⾏为和特性,有助于解决当前开发复杂的⼤型软件所存在的困难。

研究软件体系结构的⾸要问题是如何描述软件体系结构。

⽬前已有很多表现形式和⽅法表法、模块连接语⾔、软构件描述法和体系结构描述语⾔ADL等。

⽽其中ADL作为形式化的表⽰软件体系结构的⼯具呈现出强⼤的⽣命⼒。

它提供了规范化的体系结构描述,同时是对软件体系结构进⾏求精、验证、演化和分析的前提与基础。

⽬前已经成为软件体系结构⽅向的研究热点。

实践⼯作者将这些ADL应⽤于实践中,获得了成功。

同时,我们应注意到不同的ADL所⽀持的抽象能⼒及其提供的分析能⼒变化很⼤,学术领域⽬前对ADL的定义尚未取得⼀致。

⼀、软件体系结构的概述由于对软件体系结构的研究和应⽤刚刚兴起,许多专家学者从不同的⾓度和侧⾯对软件体系结构进⾏刻画,因此,⽬前软件体系结构还没有⼀个标准定义。

这⾥给出⼀个⽬前学术领域⼴泛接受的定义。

(D.Garlan&M Shaw,1993)软件体系结构是软件设计过程中的⼀个层次,在计算过程中的算法设计和数据结构之上,处理总体系统结构设计和描述⽅⾯的⼀些问题。

包括总体组织与全局控制结构、通讯协议、同步、数据存取、设计元素的功能分配,物理分布,设计元素的复台,设计⽅案的选择、评估和实现等。

软件体系结构描述

软件体系结构描述
◇ 软件体系构造旳定义
◎ 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可以使用图形表示或文本表示。

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

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

软件体系结构(整理)

软件体系结构(整理)

一:名词解释1.体系结构描述语言体系结构描述语言(ADL)是在底层语义模型的支持下,为软件系统的概念体系结构建模提供了具体语法和概念框架。

基于底层语义的工具为体系结构的表示、分析、演化、细化、设计过程等提供支持。

其三个基本元素是:构件、连接件、体系结构配置。

2.软件体系结构Dewayne Perry和A1exander Wo1f软件体系结构是具有一定形式的结构化元素,即构件的集合,包括处理构件、数据构件和连接构件。

Mary Shaw和David Garlan软件体系结构处理算法与数据结构之上关于整体系统结构设计和描述方面的一些问题,如全局组织和全局控制结构、关于通讯、同步与数据存取的协议,设计构件功能定义,物理分布与合成,设计方案的选择、评估与实现等。

Kruchten软件体系结构有四个角度,它们从不同方面对系统进行描述:概念角度描述系统的主要构件及它们之间的关系;模块角度包含功能分解与层次结构;运行角度描述了一个系统的动态结构;代码角度描述了各种代码和库函数在开发环境中的组织3.体系结构演化4.软件风格软件体系结构风格是描述某一特定应用领域中系统组织方式的惯用模式。

体系结构风格定义了一个系统家族,即定义一个词汇表和一组约束。

词汇表中包含一些构件和连接件类型,而这组约束指出系统是如何将这些构件和连接件组合起来的。

5.软件重用体系结构重用属于设计重用,比代码重用更抽象。

由于软件体系结构是系统的高层抽象,反映了系统的主要组成元素及其交互关系,因而较算法更稳定,更适合于重用。

软件重用是指软件在环境和功能发生变化后,可通过局部修改和重组,保持整体稳定性,以适应新要求。

二:简答题:1. 什么是体系结构描述语言?它与程序语言以及UML有哪些区别与联系?ADL是在底层语义模型的支持下,为软件系统的概念体系结构建模提供了具体语法和概念框架。

基于底层语义的工具为体系结构的表示、分析、演化、细化、设计过程等提供支持。

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

第4章软件体系结构描述04293-PPT精品文档
当前对软件体系结构的描述在很大程度上 还停留在非形式化的基础上,依赖于软件 设计师个人的经验和技巧。 非形式化的描述不易被开发人员理解,不 利于分析和开发的进行。 形式化的、规范化的体系结构描述对于体 系结构的设计和理解都是Βιβλιοθήκη 常重要的。 由非形式化到形式化的过程。
第四章 软件体系结构描述
4.1 软件体系结构描述方法
第四章 软件体系结构描述
4.1 软件体系结构描述方法
◇ 软件体系结构描述语言
◎ 软件体系结构的第四种描述和表达方法是参照传统 程序设计语言的设计和开发经验,重新设计、开发和 使用针对软件体系结构特点的专门的软件体系结构描 述语言——ADL。 ◎ 由于 ADL 是在吸收了传统程序设计中的语义严格精 确的特点基础上,针对软件体系结构的整体性和抽象 性特点,定义和确定适合于软件体系结构表达与描述 的有关抽象元素,因此,ADL是当前软件开发和设计方 法学中一种发展很快的软件体系结构描述方法,目前, 已经有几十种常见的ADL。
第四章 软件体系结构描述
4.2 软件体系结构描述框架标准
◇ IEEE P1471
◎ IEEE P1471 于 2000 年 9 月 21 日通过 IEEE-SA 标准委员 会评审。
◎ IEEE P1471 适用于软件密集的系统,其目标在于: 便于体系结构的表达与交流,并通过体系结构要素及其 实践标准化,奠定质量与成本的基础。
第4章 软件体系结构描述和设计
本章结构
4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8
软件体系结构描述方法 软件体系结构描述框架标准 体系结构描述语言 典型的软件体系结构描述语言(C2) 软件体系结构与UML 可扩展标记语言 基于XML的软件体系结构描述语言 软件体系结构的设计

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

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


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

简单观点:SA描述所承担的角色是辅助软件系统的 理解和交流,所以ADL必须简单、可理解。并采用 图形化的语法,不必追求形式化定义的语义。还应 该具有支持对SA的可视化和简单分析的工具。 形式化观点:将精力主要放在形式化的ADL语法和 语义上,并着重开发分析工具、模型检测工具、语 法分析工具、编译器、代码合成工具、运行时支撑 工具等。

软件体系结构描述

软件体系结构描述

第4章 软件体系结构描述 ◇ 描述方法的种类
4.1 软件体系结构描述方法
◎ 图形表达工具 ◎ 模块内连接语言 ◎ 基于软构件的系统描述语言 ◎ 软件体系结构描述语言
第4章 软件体系结构描述 ◇ 图形表达工具
4.1 软件体系结构描述方法
• 对于软件体系结构的描述和表达,一种简洁易懂 且使用广泛的方法是采用由矩形框和有向线段组 合而成的图形表达工具。在这种方法中,矩形框 代表抽象构件,框内标注的文字为抽象构件的名 称,有向线段代表辅助各构件进行通信、控制或 关联的连接件。


交流及其共享来形成群体效应,提升整个企业的知识资源。

面 ➢ 注重软件工程项目团队建设,加强团队合作精神,提高团队
沟通能力。
第4章 软件体系结构描述 ◇ 图形表达工具
项目管理
静态分析器
4.1 软件体系结构果库
最优/最劣时间 计算
带时间特性的 流程图
布图算法
函数调用关系 图
通常在规模较小时,增加投入可以促进规模报酬递增,而当规 模达到一定程度时,则会出现规模报酬递减的情况。
5.1.1 生产函数
3. 规模报酬
5.1.1 生产函数
3. 规模报酬
分别对公示5.3中的L与K求偏导数则有:
式5.4中, 表示劳动力对产出的弹性系数,表示在其他条件不变的情况下, 劳动力增加1%会使产出发生变化的百分比; 表示资本对产出的弹性系数, 表示在其他条件不变的情况下,资本增加1%会使产出发生变化的百分比。
第4章 软件体系结构描述 ◇ 模块内连接语言
4.1 软件体系结构描述方法
◎ 采用将一种或几种传统程序设计语言的模块连 接起来的模块内连接语言(MIL)。由于程序设计 语言和模块内连接语言具有严格的语义基础,因此 它们能支持对较大的软件单元进行描述。

2019年第4章软件体系结构描述04293.ppt

2019年第4章软件体系结构描述04293.ppt
◎ IEEE P1471 详细介绍了一套体系结构描述的概念框 架,并给出建立框架的思路。但如何描述以及具体的描 述技术等方面缺乏更进一步的指导。
第四章 软件体系结构描述
4.2 软件体系结构描述框架标准
◇ Rational
◎ Rational 起草了可重用的软件资产规格说明,专门讨论了体 系结构描述的规格说明,提出了一套易于重用的体系结构描述规 范。该建议草案已经提交OMG。
◎ 当两个连接件进行直接连接时,必须由其中一个的底部 到另一个的顶部。
◇ C2背景知识
C2 是一种用于用户界面密集的系统的软件体系结构风
格。
在C2风格的体系结构中,连接件在构件之间转发消息, 构件负责维护状态,进行操作,通过两个接口(顶端接口 和底端接口)和其他构件交换消息。 构件之间不能发送消息,必须通过连接件。构件之间 的通信只能通过消息传递来实现,不允许使用共享内存方 式通信。
1:N 配置 连接件
构件 1:N 1:N 端口 角色
体系结构的核心模型
第四章 软件体系结构描述 ◇ ADL的构成要素
4.3 软件体系结构描述语言
2. 连接件:用来建立构件间的交互以及支配这些交互规则 的体系结构构造模块。 连接件可以不与实现系统中的编译单元对应。 异构连接。
连接件包含的属性:角色。
第四章 软件体系结构描述
4.1 软件体系结构描述方法
◇ 基于软构件的系统描述语言
◎ 基于软构件的系统描述语言将软件系统描述成一种是由许多 以特定形式相互作用的特殊软件实体构造组成的组织或系统。
◎ 例如,一种多变配置语言就可以用来在一个较高的抽象层次 上对系统的体系结构建模,Darwin最初用作设计和构造复杂分布 式系统的配置说明语言,因具有动态特性,也可用来描述动态体 系结构。 ◎ 这种表达和描述方式虽然也是较好的一种以构件为单位的软 件系统描述方法,但是他们所面向和针对的系统元素仍然是一些 层次较低的以程序设计为基础的通信协作软件实体单元,而且这 些语言所描述和表达的系统一般而言都是面向特定应用的特殊系 统,这些特性使得基于软构件的系统描述仍然不是十分适合软件 体系结构的描述和表达。

软件体系结构-描述语言说明

软件体系结构-描述语言说明
◇ Rational
◎ Rational起草了可重用的软件资产规格说明,专门讨论了 体系结构描述的规格说明,提出了一套易于重用的体系结构 描述规范。该建议草案已经提交OMG。 ◎ Rational建议基于RUP(Rational Unified Process)、 采用UML模型描述软件的体系结构,认为体系结构描述的关 键是定义视点、视图以及建模元素之间的映射关系。
29
第四章 软件体系结构描述 4.4 典型软件体系结构描述语言
◇ C2对构件接口的描述
component_message_interface ::= top_domain_interface bottom_domain_interface
体系结构配置提供信息来确定构件是否正确连接、 接口是否匹配、连接件构成的通信是否正确,并说明实 现要求行为的组合语义。
22
第四章 软件体系结构描述 4.4 典型软件体系结构描述语言
◇ Unicon
◎ Unicon的主要目的在于支持对体系结构的描述,对 构件交互模式进行定位和编码,并对需要不同交互模式 的构件的打包加以区别。主要目的:
◎ 请求消息只能向上层传送而通知消息只能向下层传送。
◎ 通知消息的传递只对应于构件内部的操作,而和接收消息 的构件的需求无关。
◎ C2对构件和连接件的实现语言、实现构件的线程控制、构 件的部署以及连接件使用的通讯协议等都不加限制。
28
第四章 软件体系结构描述
◇Hale Waihona Puke C2对构件的描述4.4 典型软件体系结构描述语言
第四章 软件体系结构描述
◇ 描述方法的种类
4.1 软件体系结构描述方法
◎ 图形表达工具 ◎ 模块内连接语言 ◎ 基于软构件的系统描述语言 ◎ 软件体系结构描述语言

软件工程软件体系结构

软件工程软件体系结构

软件工程软件体系结构1. 引言软件体系结构是软件工程领域中一个重要的概念,它描述了一个软件系统的整体结构和组成部分之间的关系。

软件体系结构的设计和实现对于软件系统的可维护性、可扩展性和可重用性等方面具有重要影响。

本文将介绍软件体系结构的基本概念、常见的体系结构类型以及设计和评估软件体系结构的方法。

2. 软件体系结构的基本概念软件体系结构是一个软件系统的抽象表示,它描述了系统的组成部分和它们之间的关系。

一个软件体系结构可以包含多个子系统或模块,每个子系统或模块负责系统的某个特定功能。

软件体系结构可以采用不同的视角进行描述,例如逻辑视图、物理视图和过程视图。

在软件体系结构中,常见的概念和术语包括模块、接口、组件、连接器和配置。

模块是软件系统的基本构建单元,它封装了特定的功能和实现细节。

接口定义了模块之间的通信方式和协议。

组件是一个可重用的软件单元,它可以被多个模块使用。

连接器用于连接不同的组件和模块,实现模块之间的通信。

配置描述了系统中各个组件和模块的布局和拓扑结构。

3. 常见的软件体系结构类型在软件工程中,有多种常见的软件体系结构类型,每种类型都具有不同的特点和适用场景。

下面介绍几种常见的软件体系结构类型。

3.1 分层体系结构分层体系结构是一种将系统分成多个层次的结构,每个层次负责系统中的不同功能。

不同层次之间通过接口进行通信。

分层体系结构的优点是简化了系统的设计和维护,提高了系统的可扩展性和可重用性。

3.2 客户端-服务器体系结构客户端-服务器体系结构是一种将系统分成客户端和服务器的结构,客户端负责用户界面和用户交互,服务器负责数据处理和业务逻辑。

客户端通过网络与服务器进行通信。

客户端-服务器体系结构的优点是可以实现分布式计算和集中管理,缺点是系统的性能受限于网络的带宽和延迟。

3.3 事件驱动体系结构事件驱动体系结构是一种通过事件和消息进行通信的结构,不同组件之间通过发布和订阅事件来实现解耦和异步处理。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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与传统的程序设计语言的构成元素即有 许多相同和相似之处,又各自有着很大的不 同。
2018/9/14
模块化级别的系统组成实体,可进 行抽象的特性化处理,并以多种方 式使用
对组成系统的有关抽象实体进行各 种连接的连接机制 系统中的构件和连接件进行连接组 合的特殊方式(体系结构风格) 决定有关模式能够作为子系统进行 构造大型软件系统和开发合法子系 统的有关条件 有关系统组织结构方面的语义关联 说明
第四章 软件体系结构描述

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

主要的体系结构描述语言有Aesop、MetaH、C2、 Rapide、SADL、Unicon、Wright,等等; 不同ADL强调了体系结构不同的侧面;

ቤተ መጻሕፍቲ ባይዱ

每一种ADL都以独立的形式存在,描述语法不同且 互不兼容,同时又有许多共同的特征;
由并发出现的事件来实现构件实体之间 隐含 交互的连接机制,构件实体之间不存在 触发 明显确定的交互规定,如时间调度协议 器 和自动垃圾回收处理 独立构件实体之间通过离散和非在线数 消息 据(同步或非同步)进行交互的连接机制, 传递 如TCP/IP
充当有关实体间信息转换角 数据 构件之间通过相同的数据空间进行并发 连接 色的实体,如通讯连接器和 共享 协调操作的机制,如黑板系统中的黑板 器 用户界面 协议 和多用户数据库系统中的共享数据区 wangzhiming@ 2018/9/14 8



通过不同的端口类型,构件可以提供多重接口。
2018/9/14
wangzhiming@
10
§4.3.2 ADL的构成要素(续)

1、构件(续)

构件类型保证构件能够在体系结构描述中 多次实例化,每个实例对应于构件的不同 实现; 构件演化能力是系统演化的基础,ADL通 过构件的子类型及其特性的细化来支持演 化过程;目前只有少数ADL部分地支持演 化。
7
wangzhiming@
表2 常见的软件体系结构元素
系统构件元素 纯计 简单的输入/输出处理关联, 算单 一般不保留处理状态,如数 元 学函数、过滤器和转换器 连接件元素 过程 在构件实体之间实现单线程控制的连接 调用 机制,如普通过程调用和远程过程调用
数据 具有永久存储特性的结构化 存储 数据,如数据库、文件系统 单元 、符号表和超文本
§4.3.2 ADL的构成要素(续)
2018/9/14
wangzhiming@
9
§4.3.2 ADL的构成要素(续)

1、构件

一个计算单元或数据存储,是计算与状态存在的 场所;小到只有一个过程,大到整个应用程序;
构件包含多种属性,如接口、类型、语义、约束、 演化和非功能属性等; 接口是构件与外部世界的一组交互点,接口说明 构件提供的那些服务;


构造能力: 使用较小的独立体系结构元素来建 造大型软件系统; 抽象能力: ADL使构件和连接件描述只关注它们 的抽象特性,而不管其具体的实现细节;
wangzhiming@
4
2018/9/14
§4.3.1 ADL与其他语言比较(续)




重用能力: 组成软件系统的构件、连接件甚至 体系结构都成为软件系统开发和设计的可重用部 件; 组合能力:其描述的每一系统元素都有其自己的 局部结构,支持软件系统的动态变化组合; 异构能力:允许多个不同的体系结构描述关联存 在; 分析和推理能力:对其描述的体系结构进行多种 不同的性能和功能上的多种推理分析。
设计人员很难选择一种合适的ADL,若设计特定领 域的软件体系结构又需要从头开始描述。

2018/9/14
wangzhiming@
3
§4.3.1 ADL与其他语言比较

Mary Shaw和David Garlan:典型的ADL在充 分继承和吸收传统程序设计语言的精确性和 严格性特点的同时,还应有构造、抽象、重 用、组合、异构和分析推理等各种能力和特 性。
相关文档
最新文档