软件体系结构new

软件体系结构new

ID:34521080

大小:790.78 KB

页数:12页

时间:2019-03-07

软件体系结构new_第1页
软件体系结构new_第2页
软件体系结构new_第3页
软件体系结构new_第4页
软件体系结构new_第5页
资源描述:

《软件体系结构new》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第1章绪论软件体系结构对于软件工程师来说是一门重要的新兴学科。但是它并不是作为软件系统新的关注点而以一种简单的、清楚的、完善的方式形成的。软件工程师需要一种更好的视角来理解软件,并试图找到一种新方法来构建更复杂的大型软件系统,这时,软件体系结构这门学科才从软件设计中抽象出来,逐渐自然演化形成。在这一个章节中,我们将阐述什么是软件体系结构以及软件体系结构研究的内容和范畴。在这个基础上我们将勾画出软件体系结构的现状。1.1什么是软件体系结构随着软件系统的规模和复杂性不断增加,系统的全局结构的设计和规划变得比算法的选择以及数据结构的设计更加

2、重要。这种全局结构的设计和规划问题包括全局组织结构;全局控制结构;通信和同步以及数2据存取的协议;规定设计元素的功能;设计元素的组合;物理分布;规模和性能;演化的维度;设计方案的选择等。这些就是软件体系结构所要讨论的问题。抽象地说,软件体系结构包括构成系统的设计元素的描述,设计元素的交互,设计元素组合的模式,以及在这些模式中的约束。一般来说,一个具体的系统由构件的集合以及它们之间的关系组成。这样的系统又有可能成为一个更大的系统的组成元素。人们已经普遍认识到:为系统设计一个合适的体系结构是系统取得长远的成功的关键因素,但是当前描述体系结

3、构的实践一直是非形式化的。一般根据长期形成的非形式化的习惯方式来描述体系结构。通常,体系结构用方框连线图来抽象的表示,并在一旁用文字加以注释,来解释符号的含义,或者说明构件的选择以及它们之间交互的一些原理。举例来说,软件体系结构的典型描述如下:“Camelot基于客户机−服务器模式,它使用远程方法调用来实现应用程序和服务器之间通信”[S+87]。“抽象分层和系统分解为客户端提供了统一的系统接口,这样就使Helix能够适应客户端设备的多样性。这种体系结构推荐应用系统采用客户机−服务器模式”[FO85]。“我们已经选择了一种分布式的,面向

4、对象的解决方案来管理信息资源”[Line87]。“将规范的顺序的编译器改造成并发的编译器的最直接的方式是采用管线,并使各个编译阶段在多个处理器上执行。一个更有效的方式是把源代码分成许多部分,在各个编译阶段被并发地处理这些部分[通过多编译处理器],最后再将目标代码重组成一个完整的单一的程序”[Ses88]。3这种描述非常普遍。尽管几乎完全非形式化,但是这种方式沟通起来非常有效。每个独立构件的标注对于所描述的系统来说都是独特的,甚至像体系结构模式这种对软件结构的概括也是非常随意的,不同的设计者有各自的习惯做法。由于当前描述体系结构的实践中

5、这种相对的非形式化和高度的抽象性,起初看来,体系结构描述好像对软件工程师没有什么太大的实质价值。但是事实并非如此,这其中有两个原因。首先,软件工程师在长期的实践中已经拥有了一套共享的,语义丰富的词典,它由软件系统的习惯用语,模式,软件系统组织结构风格组成。比如说,通过识别一个管道过滤器体系结构风格的实例,一个软件工程师传达了这样的事实:这个系统的主要功能就是进行数据流的转换,系统的主要功能由各种独立实体的过滤器分别来实现,系统的响应时间和吞吐量能用以一种直接的方式计算出来。这样,尽管这种共享的词典很大程度上是非形式化,但是它能为软件工

6、程师之间的交流提供语义丰富的内容。第二个原因是,虽然与元素实际计算的细节相比,软件体系结构是非常抽象的,但是这种结构为理解更大范围的,系统级的关注点,比如吞吐量,通信模式,执行控制结构,可伸缩性,以及系统演化的扩展方式,提供了一个自然的框架。这样体系结构描述的作用好像是一个框架,系统属性在这个框架下进行扩充,并且,它在考察一个系统实现其整体需求的能力中扮演了非常重要角色。当然这并不是说体系结构描述形式化的符号和严格的分析技术是不必要的。相反,如果当前的体系结构设计的实践能够获得更好的符号、理论和分析技术支持的话,我们从中的收获将更大。

7、在后面章节中我们将探讨软件体系结构中的具体问题。4在软件体系结构这个主题上,目前有相当多(将会更多)的工作要做,包括:模块连接语言,满足特殊领域需要的系统模板和框架,构件集成机制的形式化模型。令人遗憾的是,目前没有统一的专业术语来描述这一领域的通用元素。我们目前还没有一个能被广泛接受的体系结构范例的分类法,更不用说一个成熟的软件体系结构理论。但是,目前我们能够明显地确定出许多体系结构描述的基本元素。另外,我们已经能够确定一系列的体系结构模式或者风格,这些模式或风格形成了软件架构师的基本技能(这些模式或风格已经在上述引用中阐述,它们也是

8、第2章的主题)。软件系统的体系结构定义系统由计算构件和构件之间的相互作用组成。构件可以是客户机和服务器、数据库、过滤器或者是在一个分层系统中的层。构件之间的相互作用在这个设计层次上可以是简单和相似的,比如过程调用,共享变

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。