摘 要:近年来,软件体系结构是软件工程领域中一个热点研究方法。本文主要从软件体系结构描述语言、软件体系结构设计基础内容进行了分析。
关键词:软件体系结构;描述语言;设计
软件体系结构开发是大型软件系统开发的关键环节。软件体系结构为软件系统提供了一个结构、行为和属性的高级抽象,由构成系统的元素的描述、这些元素的相互作用、指导元素集成的模式以及这些模式的约束组成。本文主要从软件体系结构一些理论知识进行了阐述。
1.软件体系结构描述语言
软件体系结构描述在软件工程师提高软件系统的描述和理解能力方面起着非常重要的作用,但是现在的描述基本上都比较随意且非形式化。对体系结构设计进行形式化分析和模拟是非常困难的,同时构架师在完成设计工作时也缺乏相应的支持工具。所谓体系结构描述语言(Axehitecture Deseri Ption Language,ADL)就是指为了解决上述问题,用于描述和推理的形式化语言得以发展。软件体系结构设计的可理解性和重用性是体系结构描述语言所寻求的。体系结构描述语言刻画体系结构的概念框架主要通过提供具体的语法来实现,使得系统开发者设计的体系结构能够更好地被他们所描述,以便与他人进行交流。提供一种规范化的体系结构描述是体系结构描述语言的主要目的,这样体系结构的自动化分析实现的可能性更大。软件体系结构还有统一的定义,本文中所提的定义是普遍的一种,那么体系结构描述语言也存在很多定义。目前比较广泛的认可定义是:ADL是一种为概念体系结构提供描述机制的语言。但这样的定义太笼统,所以还给出了进一步的要求:ADL必须提供对组件、连接件和体系结构配置的支持,至少组件必须有接口,配置的定义必须和连接件分开。
2.软件体系结构设计
2.1数据流风格的结构
数据流风格的结构可以很清楚地找到数据流,在数据流路线上,处理过程遵循“自顶向下、逐步求精”的原则。处理过程是不依赖于数据到来的顺序,而是依赖于执行过程。批作业序列风格、管道/过滤器风格是最典型的数据流风格。在管道/过滤器风格的软件体系结构中,每个构件都会存在一组输入和输出,输入的数据流通过内部处理产生输出数据流。完成这个过程通常通过对输入流的变换及增量计算来进行,因此,输出在输入被完全消费之前就产生了,即 这构件就是过滤器。此风格对于过滤器的独立的实体比较注重。过滤器进行增量计算过程的顺序不能影响一个管道/过滤器网络输出的正确性。管道/过滤器风格的体系结构具有以下特点:(1)组件具有良好的隐蔽性和高内聚、低耦合的特点。(2)允许设计者将整个系统的输入/输出行为看成是多个过滤器的行为的简单合成。(3)支持软件复用。(4)支持并行执行。
2.2仓库风格的体系结构
在仓库风格中,组件有两种,分别为中央数据结构和独立组建,前者用于说明当前状态,后者在中央数据存贮上执行,在系统中,仓库和外组件间的相互作用会有很大的变化。选取的控制原则产生两个主要的子类。若输入流中某类时间触发进程执行的选择,则仓库是一个传统型数据库;系统中的组件通常包括数据存储区,以及与这些存储区进行交流的进程或处理单元,而连接器则是对于存储区的访问。这类系统中,主要是通过共享的数据存储区来完成数据处理进程之间的联系。另一方面,若中央数据结构的当前状态触发进程执行的选择,则仓库是一黑板系统。黑板系统主要由三部分组成:(1)知识源。知识源是不直接进行通讯的,它是通过黑板来完成之间的交互,知识源主要包含独立的、与应用程序相关的知识。(2)黑板数据结构。知识源通过不断地改变黑板数据来解决问题,黑板数据组织的解决问题的数据是按照与应用程序相关的层次来进行的。(3)控制。控制完全由黑板的状态驱动,黑板状态的改变决定使用的特定知识。可扩充性比较强、模块间耦合比较松散是仓库风格构架的显著优势。
2.3调用/返回风格的体系结构
在大型软件开发中,调用/返回风格的体系结构就是其主流风格的体系结构。在此系统中,调用/返回关系较明确,其风格可分为:主-子程序风格,面向对象概念中的对象体系结构风格,层次型系统风格。(1)主-子程序风格体系结构主要在结构化程序设计当中应用,它是一种经典的编程范型。将程序划分为若干个小片段是此体系的主要目的,大大提高了程序的可更改性。主-子程序体系结构的主程序位于一层,可以再在下面划分一级子程序,甚至更多,由此可知,其具有一定的层次性。在这里值得注意的是主-子程序体系结构风格是单线程控制的。在相同的时间点上,父亲结点控制只有一个孩子的结点的子程序。(2)对象风格的体系结构。抽象数据类型概念对软件系统有着重要作用,这种风格建立在数据抽象和面向对象的基础上,数据的表示方法和它们的相应操作封装在一个抽象数据类型或对象中。这种风格的组件是对象,对象是一种被称作管理者的组件,因为它负责保持资源的完整性(例如实现对属性,方法的封装)。对象是通过函数和过程调用来交互的。(3)分层风格的体系结构是将系统组织成一个层次结构,每一层为上层提供服务,并作为下层的客户端。层之间的连接器(conector)通过决定层间如何交互的协议来定义。由于每一层最多只影响两层,每层可以用不同的方法实现,为软件复用提供了强大的支持。
3.结语
综上所述,本文首先对软件体系结构描述语言进行了分析,接着从三个方面对软件体系结构设计进行分析,即“数据流风格的结构”、“仓库风格的体
中国论文网(www.lunwen.net.cn)免费学术期刊论文发表,目录,论文查重入口,本科毕业论文怎么写,职称论文范文,论文摘要,论文文献资料,毕业论文格式,论文检测降重服务。