翻译《软件体系结构的艺术》_第1页
翻译《软件体系结构的艺术》_第2页
翻译《软件体系结构的艺术》_第3页
翻译《软件体系结构的艺术》_第4页
翻译《软件体系结构的艺术》_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、软件体系结构作业一学号13121228姓名:黄雯一、软件体系结构研究综述摘要随着软件工程技术的不断发展,对软件结构件体系的研究也逐渐深 入,逐渐成为软件工程研究领域的热点以及大型软件系统与软件产品 线开发中的关键技术之一。根据研究软件体系结构的起源,呈现出软 件体系结构研究的必要性和重要性一一由于大系统软件开发中70% 的错误是在需求和软件设计阶段引入的,而且错误在系统中存在的时 间愈长则愈难发现,解决这些错误的代价也愈高。因此为了解决这些 问题,并且能够提高软件需求和软件设计的质量,以及能够有效地将 需求转换为相应的设计。除此之外还归纳了从20世纪70年代到90 年代软件体系结构研究的发展史

2、,从而给岀了软件体系结构的6种不 同定义模型garlan & shaw模型、perry & wolf模型、cfrp模型、vestal模型、ieee 610.12-1990软件工程标准词汇中的定义、boehm 模型。归纳软件体系结构种构件、连接件和约束间的关系。最后介绍 软件体系结构研究的主要内容以及7大领域一一软件体系结构描述 语言adl、体系结构描述构造与表示、软件体系结构分析、设计与 验证软件体系结构发现和演化与复用、基于体系结构的软件开发方法 研究、特定领域的体系结构dssa、软件体系结构支持工具,探讨了 软件体系结构研究的不足之处并分析其中原因。最后总结出了软件体 系研

3、究这个最为软件工程领域正在兴起的研究领域,它已经成为软件工程开发和研究不可缺少的部分,并提出了未来软件体系结构研究所 要展开的方向。二、翻译软件体系结构的艺术dataflow systems与call-and-return systems两部分内容:小组成员:13121228黄雯13121240吴青霞13121297 问婕13121252卫晓倩数据流系统数据流系统被表征为数据如何穿过系统。数据流体系结构有两个 以上的将输入数据装换为输出数据的处理部件。数据处理部件转换数 据采取一种顺序的方式,即上一个处理部件的输出流成为下一个处理 部件的输入。而这种转换数据的风格可以利用uml中活动图展现出

4、来,如图10. 1所示。这个模型展示了 3个处理部件但是却不能描述 元数的传送(代表一个对象流一体化)。这个例子称为管道的理由为 这个模型对于一个线性的过滤器来说是有限的。数据处理器#1>1数据处理器#2,数据处理器#3 >图10.1以活动图的形式展现数据流体系结构风格对于一个管道-过滤器体系结构来说,一个处理部件有两个输出,一个标准输出和一个错误输出,只有一个单一个输入称为标准输入, 这种情况是很平常的事情。通常来说,输入输出机制有一个叫做端口 的处理元素。因此一个典型的过滤器有三个端口,而那个错误的输出能够被连接到一个不同的处理部件上,如图10.2所示。图10. 2管道一-过滤

5、器体系结构风格定义一个更为复杂的处理元素去生成更加复杂的安排和数据,这 一种情况是有可能实现的。例如,一个处理部件可能包含决策逻辑能 够路由数据到两个不用子处理中,如图10.3所示。(数据处理器#1数据流系统类似于程序逻辑流,每一个处理单元就像一个程序语句。工作流逻辑也建模为数据流。非正式地表示使用了类似于活动图 或数据流图的应用程序处理模型是很常见的。然而,真正的数据流体 系结构的特点是数据如何通过系统。有两个基本的数据流模型:流和 对象(或实体)。在基于流的数据流中,数据以二进制数据流的形式 在处理单元之间移动。当数据从输入端口读入时,必须由每个处理单元解析,写入到输出端口时序列化。在基于

6、对象的数据流中,数据在 逻辑块之间移动。在这种风格中,术语对象比编程语言对象更一般。 当对象在处理单元之间被动移动时,整个对象被使用和改变了。在一 个配置中有两种过滤器的混合是可行的,只要连接端口接受发送合适 的数据类型。一些过滤器可以被配置两种风格。有界管道是限制驻留在管道中的数据量的管道。对于基于流的管 道,这是指在管道拒绝进一步的数据写请求之前,可能存在于管道中 的二进制数据量。基于对象的有界管道能限制存在于管道中的对象的 数量。我们的基于xml的发布系统例子使用了数据流体系结构作为系 统的一部分。数据写在xmi中,存储在库中。库可以将数据作为原始 xml存储在数据库表中,或将它存储为单

7、个单元和他们之间的层次关 系,或者一些组合。但是,对于外部的组件来说,数据作为xml被读 写。为了发布一个静态工作例如一本书,先从库中重新获取xml,然 后唤醒一个格式化过程。在我们的例子中,xml是基于专有的文档类 型定义(dtd),我们想要以包括html和pdf在内的多种格式发布内 容。图10. 4描述了一个基本的处理模型一管道体系结构。在这个例 子中,源输入符合专有的xml词汇表。第一个过滤器将xml数据转换 成基于docbook标准的xml。然后将数据传送给两个并行的处理单元。 其一个处理单元将基于docbook的xml转化为xmlo调用和返回系统调用和返回系统可用活化模型来表示,该模

8、型包括一个执行调用 操作的控制主线程。其中典型的系统结构就是主程序和子程序。“很 多系统的主要组织结构反映了所使用的编程语言的特点” (shaw,1996)o而向对象语言如c+和java目前仍存在这种体系风格 的痕迹。然而,一个基于java的系统可能有很多“主要的”切入点。 当指定一个类名时,一个基于java的系统就被调用了。这个系统找 到一个叫做主程序的公有的静态的程序,并且给予它控制主线程。在 一个c或c+的可执行程序中,只有一个主程序。它是一个全局函数, 不是对象或者类。这些语言的一个共同的程序风格就是从主程序中实 例化几个活动对象,然后退出或被阻塞直到这些活动对象退出。在主 程序或函数

9、上添加任何类别的应用逻辑都是不被鼓励的,但不是强制 性的。面向对象和基于数据抽象的系统提供了封装一部分系统的能力, 因此可以使实现差异限制于局部。在像c+和java这类的面向对象语 言中,类是封装的基本单元。一个类允许数据隐藏在对象中,因此其 它对象必须通过函数来申请数据信息。java的接口同样允许对象在不 影响其它独立的模块下实现其改变。c+也有相似的能力,用抽象基 本类来抽象出虚拟函数和一些能够解决二进制兼容问题的构件系统。而向对象系统不仅有封装信息和隔离系统变化的能力,它们也体 现了一种将现实世界观念的直接模型或客观实体当作对象的方法,就 像是数据库系统中的实体关系建模。在数据流系统中,

10、其主要视角是 过程而不是数据。面向对象或数据抽象在强调系统数据的同时还将以 特定数据操作(函数)形式的过程考虑在内,并且类之间的层次关系 还允许过程通过方法覆盖被自定义。越来越多的设计模式和设计习惯 允许多种形式的系统是由对象所组成的。例如,对象可以使具体化的 过程以及数据实体。同样的,对象也可以用来解决原则性的主观问题, 即没有-个单一的接口可以凭借设计模式来充分地描述一个对象,就 像建筑物的外表,食品的包装材料和桥梁。面向过程风格不能使数据 封装有主观性。分级层风格是一个常被误解的建筑风格。困难来自于对层的解 释。自然界中所有复杂的系统都是分层的。一个系统可以被描述为组 件或模块的层次结构

11、,组件或模块可以进一步被分解为更原始的组 件。我认为层风格并不是一个风格利模式,但是是所有复杂软件系统 的一个属性。因为所有复杂系统都有层次结构,那么这意味着有一个 基本的架构视图代表系统组织的这方面。有一个设计风格也使用层, 如经常被引用的iso七层网络通信协议栈模型。这种分层策略更像是 一个设计模式而非体系架构原则。当设计一个系统,不是问自己是否应该使用分级层风格,而应该 问自己层是什么。我们会在下一章关于元模型方面看到更多使用层和 分层分解。许多元模型显示了规范的系统层次分解,如交互式系统的 拱/弹簧元模型。这个模型提出了五层,从最低水平抽象函数核心到 混凝土的物理演示。这算不上是一种架构风格,因为它是一个描述可 能层的元模型,取决于你想实现什么质量属性。另一个经典的层次描述是技术栈。图10.5的模型显示了一个古 典建筑。这种观点经常混淆由于一个系统的体系结

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论