软件体系结构复习一

构件定义:

一般认为,构件是指语义完整、语法正确和有可重用价值的单位软件,是软件重用过程中可以明确辨识的系统。结构上,它是语义描述、通信接ロ和实现代码的复合体。

构件3种分类方法:

(1)关键字分类法:是一种最简单的构件库组织方法,其基本思想是:根据领域分析的结果将应用领域的概念按照从抽象到具体的顺序逐次分解为树形或有向无回路图结构;

如何检索:系统在图形用户界面上将构件库的关键字树形结构直观的展示给用户,用户通过对树形结构的逐级浏览寻找需要的关键字并提取相应的构件;

优点是简单,易于实现。缺点是在某些场合没有应用价值,因为用户往往无法用构建库中已有的关键字描述期望的构件功能或行为,对库的浏览也容易使用户迷失方向;

(2)刻面分类法:主要思想来源于图书馆学,在刻面分类机制中,定义若干用于刻画构件特征的“面”,每个面包含若干概念,这些概念表述构件在面上的特征。刻面可以描述构件执行的功能,被操作的数据,构件应用的语境或任意其他特征;

如何检索:构造查询、检索构件、对构件进行排序;

优点是易于实现相似构件的查找。缺点是查询时比较麻烦;

(3)超文本组织方法:其主要思想是所有构件必须辅以详尽的功能或行为说明文档;说明中出现的重要概念或构件以网状链接方式相互连接;检索者在阅读文档的过程中可按照人类的联想思维方式任意跳转到包含相关概念或构件的文档;全文检索系统将用户给出的关键字说明文档中的文字进行匹配,实现构件的浏览式检索;

如何检索:用户首先给出一个或数个关键字,系统在构件的说明文档中进行精确或模糊的语法匹配,匹配成功后,向用户列出相应的构建说明;

优点是超文本组织方法为构造构件和重用构件提供了友好,直接的多媒体方式。由于网状结构比较自由,松散,因此,超文本组织方法比前两种方法更易于修改构件库的结构。缺点是在某些情况下用户难以在超文本浏览过程中正确选取构件;

构件组装:

  1)基于功能的组装技术

   基于功能的组装技术采用子程序调用和参数传递的方式将构件组装起来。它要求库中的构件以子程序/过程/函数的形式出现,并且接ロ说明必须清晰。当使用这种组装技术进行软件开发时,开发人员首先应对目标软件系统进行功能分解,将系统分解为强内聚、松耦合的功能模块。然后根据各模块的功能需求提取构件,对它进行适应性修改后再挂接在上述功能分解框架中。

 2)基于数据的组装技术

  基于数据的组装技术首先根据当前软件问题的核心数据

结构设计出一个框架,然后根据框架中各结点的需求提取构

件并进行适应性修改,再将构件逐个分配至框架中的适当位

置。此后,构件的组装方式仍然是传统的子程序调用与参数

传递。这种组装技术也要求库中构件以子程序形式出现,但

它所依赖的软件设计方法不再是功能分解,而是面向数据的

设计方法,例如Jackson系统开发方法。

  3)面向对象的组装技术由于封装和集成特征,面向对象方法比其他软件开发方法更适合支持软件重用。通常将面向对象的可重用构件库称为可重用类库(简称类库),因为这时所有的构件都是以类的形式出现。可重用基类的建立取决于论域分析阶段对当前应用(族)中具有一般适用性的对象和类的标识。类库的组织方式采用类的继承层次结构。这种结构与现实问题空间的实体继承关系有某种自然、直接的对应。同时,类库的文档以超文本方式组织,每个类的说明文档中都可以包含指向其他说明文档的关键词结点的链接指针。

软件重用的定义:

软件重用是一种由预先构造好的、为重用目的而设计的软件构件来建立或者组装软件系统的过程。它的基本思想是放弃那种原始的、一切从头开始的软件开发方式,而利用重用思想,通过公共的可重用构件来集成新的软件产品。

软件体系结构定义:

软件体系结构为软件系统提供了一个结构、行为和属性的高级抽象,由构成系统的素的描述、这些元素的相互作用、指导元素集成的模式以及这些模式的约束组成。

管道和过滤器

构件-过滤器;连接件-管道;

每个构件都有一组输入和输出,构件读入输入数据流,经处理产生输出数据流

优点:高内聚低耦合;支持重用;系统维护简单;支持并行

缺点:进程成为批处理结构;不适合处理交互应用;过滤器编写复杂

C2风格

由构件和连接件两种元素组成。构件可实现应用需求,并能将任意复杂度的功能封装在一起。所有构件之间的通信是通过以连接件为中介的异步消息交换机制来实现的。

组织规则:

构件和连接件有顶部和底部;构件之间不能直接连接;连接件直接连接时必须是一个底部到另一个的顶部

特点:构件可实现应用需求;构件间通信通过连接件;构件相对独立,依赖性较少

三层C/S风格

表示层-功能层-数据层,只有表示层在客户机上(瘦客户机)

中间层是最重要的构件

表示层 是应用的用户接口部分,它担负着用户与应用间的对话功能。它用于检查用户从键盘等输入的数据,显示应用输出的数据。

功能层 相当于应用的本体,它是将具体的业务处理逻辑编入程序中。

数据层 就是数据库管理系统,负责管理对数据库数据的读写。数据库管理系统必须能迅速执行大量数据的更新和检索。

优点:

提高系统的可维护性和可扩展性;

应用平台具有良好的可升级性和开放性;

应用各层可以并行开发;

利用功能层有效隔离表示层和数据层

缺点:

只适用于局域网

客户端需要安装专用的客户端软件

对客户端的操作系统一般也会有限制

公共对象请求代理体系结构

CORBA:接口定义语言,接口池,动态调用接口,对象适配器

CORBA请求调用步骤:

客户机通过发送消息来调用CORBA操作,当客户机调用CORBA操作时,ORB完成以下操作流程:

(1).定位目标对象。

(2).调用服务器应用程序。

(3).传递调用所需的参数。

(4).必要时,激活调用目标对象的伺服程序。

(5).等待请求结束。

(6).如果调用成功,返回out/inout参数和将返回值传给客户机。

(7).如果调用失败,返回一个异常给客户机。

ADL与其他语言的比较

ADL与其他的语言比较具有以下能力:

(1)构造能力:ADL能够使用较小的独立体系结构元素来建造大型软件系统;

(2)抽象能力:ADL使得软件体系结构中的构件和连接件描述可以只关注他们的抽象特性,而不管其具体的实现细节;

(3)重用能力:ADL使得组成软件系统的构件,连接件甚至是软件体系结构都成为软件系统开发和设计的可重用部件;

(4)组合能力:ADL使得其描述的每一系统元素都有其自己的布局结构,这种描述布局结构的特点使得ADL支持软件系统的动态变化组合;

(5)异构能力:ADL允许多个不同的体系结构描述关联存在;

(6)分析和推理能力:ADL允许对其描述的体系结构进行多种不同的性能和功能上的多种推理分析;

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值