软件体系结构98835_第1页
软件体系结构98835_第2页
软件体系结构98835_第3页
全文预览已结束

下载本文档

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

文档简介

1、一. 软件体系结构(架构) 软件体系结构的定义通常,软件体系结构通常被称为架构,指可以预制和可重构的软件框架结构。架 构尚处在发展期,对于其定义,学术界尚未形成一个统一的意见,而不同角度的 视点也会造成软件体系结构的不同理解。比如,ansi/ieee 610. 12-1990软件工 程标准词汇对于体系结构定义是“体系架构是以构件、构件之间的关系、构件与 环境之间的关系为内容的某一系统的基本组织结构以及知道上述内容设计与演 化的原理(principle) v ;而garlan & shaw模型的基本思想是:软件体系结构 二构件(component),连接件(connector),约束(c

2、onstrain)。对于软 件项目的开发来说,一个清晰的软件体系结构是首要的。传统的软件开 发过程可以划分为从概念到实现的若干个阶段,包括问题定义、需求分析、软件 设计、软件实现及软件测试等。软件体系结构的建立就位于需求分析之后,软 件设计之前。在建立软件体系结构时系统设计师主要从结构的角度对整个系统进 行分析,选择恰当的构件(component) 构件间的相互作用以及它们的约束, 最后形成一个系统框架(fzmework)以满足用户的需求,为软件设计奠定基础。 软件体系结构风格软件体系结构设计的一个核心问题是能否使用重复的体系结构模式,即能否达到 结构级的软件重用。也就是说,能否在不同的软件体

3、系中,使用同一体系结构。 基于这个目的,学者们开始研究和实践软件体系结构的风格问题。软件体系结构风格(software architecture style)是描述某一特定应用领域 系统组织方式的惯用模式。它反映了领域中众多系统所有的结构和语义特性,并 指导如何将各个模块和子系统有效地组织成一个完整的系统。对软件体系结构 风格的研究和实践促进了对设计的复用,一些经过实践证明的解决方案也可以可 靠地用于解决新的问题。体系结构风格的不变部分使不同的系统可以共享一个 实现代码。只要系统是使用常用的、规范的方法来组织,就可使别的设计者很容 易地理解系统结构。garlan和shaw对通用体系结构风格进行

4、如下分类:(1) 数据流风格:批处理序列、管道/过滤器等;(2) 调用/返冋风格:主程序/子程序、面向对象风格、层次结构等。(3) 独立构件风格:进程通讯、事件系统等;(4) 虚拟机风格:解释器、基于规则的系统等;(5) 仓库风格:数据库系统、超文本系统、黑板系统等。近年来,出现了许多新的体系结构风格,例如客户/服务器(client /server) 结构、浏览器/服务器(browser/server)结构、正交(orthogonal)结构、三 层c/s结构等。软件体系结构的建模研究研究软件体系结构的首要问题是如何表示软件体系结构,即如何对软件体系结构 建模。根据建模的侧重点的不同,可以将软件

5、体系结构的模型分为5种:结构模 型、框架模型、动态模型、过程模型和功能模型。其中,最常用的是结构模型和 动态模型。研究热点当前本系结构仍是一个非常新的研究领域,其概念还相当模糊。但软件体系结 构作为软件工程领域屮的一个组成部分,已经取得了长足的发展,受到大多数软 件系统设计和研究人员的重视。软件体系结构目前较活跃的研究方向包括:(1)软件体系结构形式基础的研究;(2)针对软件体系结构描述中特有的问题研究新的专门的高级语言;(3)建立 用于度量和评价软件体系结构的模型和方法;(4)建立面向专门领域的软件体 系结构范型库。(5)把软件体系结构从冃前的直觉和经验状态过渡到理论。二. 模式模 式(pa

6、ttern)的概念最早由建筑大师christopher alexander于二十世纪七 十年代提出,应用于建筑领域,八十年代中期由ward cunningham 11 kent beck 将其思想引入到软件领域,christopher alexander将模式分为三个部分:(1) 周境(context,也可以称着上下文),指模式在何种状况下发生作用;(2) 动机(system of forces),意指问题或预期的目标;(3) 解决方案(solution),指平衡各动机或解决所阐述问题的一个构造或配置 (configuration)。他提出,模式是表示周境、动机、解决方案三个方面关系的一个规则

7、,每个模 式描述了一个在某种周境下不断重复发生的问题,以及该问题解决方案的核心所 在,模式 即是一个事物(thing)又是一个过程(process),不仅描述该事物本 身,而且提出了通过怎样的过程来产生该事物。这一定义已被软件界广为接受。 软件模式的应用对软件开发产生了重大的作用,主要表现在:(1)软件模式是人们在长期的设计软件、管理组织软件开发等实践中大量经验 的提炼和抽彖,是复用软件设计方法、过程管理经验的有力工具。模式类似于拳 击屮的组合拳,它提供了一系列软件开发屮的思维套路。如,通过模式的使用, 有利于在复杂的系统屮产生简洁、精巧的设计。(2)软件模式为我们提供了一套简洁通用的设计、管

8、理、组织方面的词汇,同吋 模式也为我们提供了一个描述抽象事物的规范标准,可大大促进软件开发过程中 人与人之间的交流,而软件开发中的交流是至关重要的,“软件项目失败的原 因最终都可追溯到信息没有及时准确地传递到应该接收它的人”。三. 架构和模式的关系架构(architecture)和模式(pattern)在当前的软件开发中经常地被提及,这两 个术语非常容易混淆,而且学术界也没有一个非常统一的定义。架构和模式应该是一个属于相互涵盖的过程,但是总体来说architecture更加 关注的是所谓的high-level design,而模式关注的重点在于通过经验提取的“准则或指导方案”在设计中的应用,因

9、此在不同层面考虑问题的时候就形成了 不同问题域上的pattern。模式的目标是,把共通问题中的不变部分和变化部分 分离出来。不变的部分,就构成了模式,因此,模式是一个经验提取的“准则”, 并且在一次一次的实践屮得到验证,在不同的层次有不同的模式,小到语言实 现(如singleton)大到架构。在不同的层面上,模式提供不同层面的指导。根据 处理问题的粒度不同,从高到低,模式分为3个层次:(1)架构模式(architectural pattern) > 设计模式(design pattern) > 实现模 式(implementation pattern).架构模式是模式中的最高层次,

10、描述软件系统里 的基本的结构组织或纲要,通常提供一组事先定义好的子系统,指定它们的责任, 并给出把它们 组织在一起的法则和指南。比如,用户和文件系统安全策略模型, n-层结构,组件对彖服务等,我们熟知的mvc结构也属于架构模式的层次。一个 架构模式常常可以分解成很多个设计模式的联合使用。(2)设计模式是模式屮的第二层次,用來处理程序设计屮反复出现的问题。例如,设计模式一可复用面向对象软件的基础一书屮总结的23个基本设计模 式factory pat tern, observer patt ern 等。(3)实现模式是最低也是最具体的层次,处理具体到编程语言的问题。比如, 类名,变量名,函数名的命名规则;异常处理的规则等等。相 对于系统分析或者设计模式来说,体系结构从更高的层而去考虑问题,所以 关注的问题就体现在“不变”因素上,比如系统部署中,更加关心应用程序的分 层分级设计,而在这个基础之上提出的部署方案,才是架构考虑的重点。体系 结构关心应用程序模式,更加体现在通过技术去解决这些业务差异带来的影响, 关心是否是分布式应用程序,关心系统分层是如何设计,也关心性能和安全, 因此在这样的情况之下,会考虑集群,负载平衡,故障迁移等等一系列技术。 总之,希望通过定义的方式来区分架构和模式是不太可能的,因为本来就是交 互交叉和提供服务的,它实际上是架构模式,而不是设计模式。在大部

温馨提示

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

评论

0/150

提交评论