软件架构论文-(2)

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

湖南农业大学课程论文学院:班级:姓名:学号:课程论文题目:软件架构综述课程名称:高级软件架构评阅成绩:评阅意见:成绩评定教师签名:日期:年月日软件架构综述学生:黄鸿江(信科院学院10级计算机软件2班班级,学号201041842322)摘要:软件构架是一个容易理解的概念,多数工程师(尤其是经验不多的工程师)会从直觉上来认识它,但要给出精确的定义很困难。特别是,很难明确地区分设计和构架:构架属于设计的一方面,它集中于某些具体的特征。关键词:软件架构、架构风格、目标1.什么是软件架构?1.1软件架构的定义软件架构(softwarearchitecture)是一个系统的草图,是一系列相关的抽象模式,用于指导大型软件系统各个方面的设计。软件架构描述的对象是直接构成系统的抽象组件。在实现阶段,这些抽象组件被细化为实际的组件,比如具体某个类或者对象。软件构架是一个容易理解的概念,多数工程师(尤其是经验不多的工程师)会从直觉上来认识它,但要给出精确的定义很困难。特别是,很难明确地区分设计和构架:构架属于设计的一方面,它集中于某些具体的特征。在“软件构架简介”一书中,DavidGArlan和MaryShaw认为软件构架是有关如下问题的设计层次:“在计算的算法和数据结构之外,设计并确定系统整体结构成为了新的问题。结构问题包括总体组织结构和全局控制结构;通信、同步和数据访问的协议;设计元素的功能分配;物理分布;设计元素的组成;定标与性能;备选设计的选择。”1.2研究背景在经历60年代的软件危机之后,使人们开始重视软件工程的研究。来自不同应用领域的软件专家总结了大量的有价值的知识.当初,人们把软件设计的重点放在数据结构和算法的选择上,如Knuth提出了数据结构+算法=程序.但是随着软件系统规模越来越大、越来越复杂,使软件系统的架构越来越重要。软件危机的程度日益加剧,现有的软件工程方法对此显得力不从心。对于大规模的复杂软件系统来说,软件体系架构比起对程序的算法和数据结构的选择已经变得明显重要得多。在此种背景下,人们认识到软件体系架构的重要性,并认为对软件体系架构系统、深入的研究将会成为提高软件生产效率和解决软件危机的最有希望的途径。2、架构的目标正如同软件本身有其要达到的目标一样,架构设计要达到的目标是什么呢?一般而言,软件架构设计要达到如下的目标:·可靠性(Reliable)。软件系统对于用户的商业经营和管理来说极为重要,因此软件系统必须非常可靠。·安全行(Secure)。软件系统所承担的交易的商业价值极高,系统的安全性非常重要。·可扩展性(SCAlable)。软件必须能够在用户的使用率、用户的数目增加很快的情况下,保持合理的性能。只有这样,才能适应用户的市场扩展得可能性。·可定制化(CuSTomizable)。同样的一套软件,可以根据客户群的不同和市场需求的变化进行调整。·可扩展性(Extensible)。在新技术出现的时候,一个软件系统应当允许导入新技术,从而对现有系统进行功能和性能的扩展·可维护性(MAIntainable)。软件系统的维护包括两方面,一是排除现有的错误,二是将新的软件需求反映到现有系统中去。一个易于维护的系统可以有效地降低技术支持的花费·客户体验(CustomerExperience)。软件系统必须易于使用。·市场时机(TimetoMarket)。软件用户要面临同业竞争,软件提供商也要面临同业竞争。以最快的速度争夺市场先机非常重要。3、架构的种类根据我们关注的角度不同,可以将架构分成三种:·逻辑架构:软件系统中元件之间的关系,比如用户界面,数据库,外部系统接口,商业逻辑元件,等等。·物理架构:软件元件是怎样放到硬件上的。·系统架构:系统的非功能性特征,如可扩展性、可靠性、强壮性、灵活性、性能等。3.1架构可分为四个层次:3.1.1硬件通讯层这一层是一些直接与硬件设备通讯的对象,这里包括一个与机器人主体的数据交流的串口通讯对象。这一层是直接与机器人下位机打交道的,相当于机器人底层下位机的“驱动程序”。用户通过这一层与机器人的全部硬件进行交互。视频捕捉因为对通信速率要求很高,通过USB连接,所以其设备对象与机器人主体独立开。3.1.2指令协议解析层这一层是机器人控制架构的核心,指令协议对象将进行机器人实体控制指令的编制以以及对下位机返回的传感器数据和机器人状态数据的解析转换。3.1.3行为层这一层是一些抽象行为的对象,这些对象通过对协议对象的传感器数据进行局部的行为规划,并操作协议对象向机器人底层发送控制指令。值得注意的是这一层虽然并存了很多对象,但是同一时刻只能允许一个行为对象与协议对象连接,以避免出现行为混乱的情形。机器人的各种行为切换通过改变与协议层连接的行为对象来实现,这种切换操作可以由当前活动行为进行,也可由决策层对象来进行。3.1.4决策层决策层是机器人本地的最高层,仲裁决策对象通过本地传感器数据、机器人运行状态以及远程端发来的指令数据进行各种行为的组织。他即可以直接操作协议层对象发送机器人控制指令,也能通过行为对象的切换间接控制机器人的运行。目前决策层提供的一些基本决策算法包括:u人工势场法,基于机器人机载的声纳环,主要用于路径规划过程中的突发性避障;u“点到点”PID规划,即采用PID调节器尽可能保证准确的“点到点”路线移动。uFIR滤波器;uCarlman滤波器;(以上两个滤波器为通用滤波器,经过派生,可在程序中用于各种数据的处理。4、架构的风格软件体系结构风格(有时候也叫架构模式)是描述某一特定应用领域中系统组织方式的惯用模式,是为一个系统提供的一系列抽象框架。它反映了领域中众多系统所共有的结构和语义特性,并指导如何将各个模块和子系统有效地组织成一个完整的系统。架构风格通过为经常发生的问题提供解决方案,来提高设计重用和改善程序结构。按这种方式理解,软件体系结构风格定义了用于描述系统的术语表和一组指导构件系统的规则。4.1通用软件体系结构风格总结为以下几类:4.1.1.数据流风格:批处理序列;管道过滤器。2.调用返回风格:主程序子程序;面向对象风格;层次结构。3.独立构件风格:进程通讯;事件系统。4.虚拟机风格:解释器;基于规则的系统。5.仓库风格:数据库系统;超文本系统;黑板系统。4.2几种主要的和经典的体系结构风格:4.2.1.C2风格。C2风格是最常用的一种软件体系结构风格,该体系结构风格可以概括为:通过连接件绑定在一起的按照一组规则运作的并行构件网络。4.2.2.数据抽象和面向对象风格。目前软件界已普遍转向使用面向对象系统,抽象数据类型概念对软件系统有着重要作用。这种风格的构件是对象,或者说是抽象数据类型的实例。对象是一种被称作管理者的构件,因为它负责保持资源的完整性。对象是通过函数和过程的调用来交互的。4.2.3.基于事件的隐式调用风格。基于事件的隐式调用风格的思想是构件不直接调用一个过程,而是触发或广播一个或多个事件。系统中的其他构件中的过程在一个或多个事件中注册,当一个事件被触发,系统自动调用在这个事件中注册的所有过程,这样,一个事件的触发就导致了另一模块中的过程的调用。4.2.4.管道/过滤器风格。在管道/过滤器风格的软件体系结构中,每个构件都有一组输入和输出,构件读输入的数据流,经过内部处理,然后产生输出数据流。这个过程通常通过对输入流的变换及增量计算来完成,所以在输入被完全消费之前,输出便产生了。因此,这里的构件被称为过滤器,这种风格的连接件就象是数据流传输的管道,将一个过滤器的输出传到另一过滤器的输入。4.2.5.批处理风格。批处理风格的每一步处理都是独立的,并且每一步是顺序执行的,只有当前一步处理完后,后一步处理才能开始,数据传送在步与步之间作为一个整体。批处理的典型应用是经典数据处理和程序开发。4.2.6.仓库风格。在仓库风格中,有两种不同的构件:中央数据结构说明当前状态,独立构件在中央数据存贮上执行,仓库与外构件间的相互作用在系统中会有大的变化。参考文献[1]温昱.软件架构设计[M].北京:电子工业出版社,2007.

1 / 6
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功