本文通过介绍几种软件开发中常见软件体系结构模型,以及对几种模型进行分析比较,从而为软件开发过程中软件体系结构的选择提供一些思路,并减少一些开发软件过程中的风险。 

  【关键词】软件体系结构 结构模型 管道过滤器 MVC模型 

  计算机应用越来越广泛和深入,计算机软件规模和种类也变得更为复杂和多样化。在软件开发过程中,设计开发人员所要考虑的,不仅仅是系统的功能需求,还要更多的考虑软件后期维护和升级等问题,因此软件体系结构的设计选择对于一个软件开发过程十分重要。自软件体系机构出现以来,其结构、模式也在不断变化与发展,目前,有几种比较常见的软件体系结构模型,本文就对这几种常见的结构模型进行介绍以及对它们进行简单的比较分析。 

  1 层次体系结构模型 

  层次体系结构模型是一种非常常见的体系结构模型,它的基本思想是将系统在水平方向上划分为多个抽象层次,中间层(第一层和最后一层除外)既服务于上层,又被下层服务。此外,层次之间的通信既可以相邻层次间进行,也可以通过协议隔层进行。使用最为广泛的分层体系结构是分层通信协议,我们常用的TCP/IP网络就是这种模型。这种结构下,与上层的通信都依靠于每一层的一个抽象功能,低层通信定义在低层次上,一般来讲,最底层与物理层次相连,其他常见的和最底层连接的有底层数据库连接或者操作系统连接。 

  分层体系结构非常常见,优点也非常明显,有以下几点: 

  (1)抽象程度递增。分层体系结构中每层的抽象程度不一样,递增的设计能够使得系统的复杂程度更为容易被软件开发设计人员理解和掌握,从而按照复杂程度分解其功能。 

  (2)支持系统功能增强。由于通信交互通常发生在每层和上下层之间,对于软件的全局相对来说更容易把握,因此在面对需求变化或者软件需要升级时,就可以通过在某一层修改功能或者增加功能来实现。 

  (3)支持功能复用。一般来说,对于服务接口的定义不会变,因此,不同接口实现之间交换使用就可以在同一层进行。通常,会定义一个标准接口的不同实现方法。 

  层次结构模型也有以下几个缺点: 

  (1)更改层麻烦。修改底层对高层产生影响时,则此底层的上层都需要进行修改。 

  (2)效率低。层次之间的通信需要进行各种参数的传递与转换;高层对于底层的一些执行并不需要等。 

  (3)层次的粒度难以确定。 

  2 管道与过滤器结构模型 

  过滤器为功能模块,功能模块之间的连接(数据流的输入输出)为通道,两者共同组成了管道与过滤器结构模型。功能模块间相互独立,即过滤器不需要进行状态之间的交互为管道过滤器模型的一个重要的特性,其中,若输入输出发生在任两个过滤器之间则两个过滤器可以连接使用。管道过滤器结构同时也限制了输入输出格式,因此在交互式应用中,这种模式是不适用的。其中,常见的管道过滤器模型应用之一就是编译器系统。 

  管道过滤器模型有以下几个优点: 

  (1)中间件可以不再使用,同时也支持使用中间件。 

  (2)灵活性增加。过滤器之间可以进行灵活的连接使用,组件的重用性提高。 

  (3)效率提高。可以进行并行处理。 

  管道与过滤器结构模型也有以下几个缺点: 

  (1)信息共享问题。组件之间状态共享信息代价较大。 

  (2)效率高假象。并行处理并没有真正提高效率。 

  (3)数据转换增加开销。 

  3 面向对象结构模型 

  对于处理面向现实世界问题的系统,面向对象结构模型是最为合理的选择。在使用面向对象的软件中,把一切如数据、组件模块都作为对象来处理。对象包括对象的状态即数据以及对象的行为即操作方法,对象之间通信通过信息传递实现。在面向对象模型中,对用户透明,即用户不需要知道对象内部状态,只需要知道功能及其使用,因而将软件系统开发周期和难度尽量减少。 

  面向对象结构模型有以下优点: 

  (1)对象封装。用户不必完全了解对象的数据状态,开发中可以减少难度和减少时间周期。 

  (2)对象继承。继承提高了为代码的复用性,减少开发人员工作量和后期维护等工作量。 

  (3)错误修改方便。对象出现错误,修改此对象即可,不需要对其他对象进行修改。 

  面向对象结构模型有以下缺点: 

  (1)交互要求高。对象间进行交互通过过程调用进行,调用对象则是通过对象标识来作为通信媒介。 

  (2)修改繁琐。对象通过标识符标识,若对象的标识符修改了,则必须修改对对象的所有实例,同时需要解决标识符修改带来的副作用。 

  4 MVC体系结构模型 

  MVC体系结构(Model―Visual―Controller即模型―视图――控制器体系结构)也是当今应用十分广泛的交互界面结构模型。模型、视图和控制器是MVC结构模型的三个组成部分,它强制性地将软件的输入输出以及处理三个部分分开进行,每个部分相互独立,从而使得图形化用户交互更为方便。比如,可以使用MVC结构模型构建拍卖系统,使得处理结果更为直观。 

  MVC体系结构模型的优点如下: 

  (1)模式复用性。对于同一个模型,可以有多个视图进行任务处理。同一个模式可以开发多个应用程序框架。 

  (2)视图灵活。可以将视图同步化,同时可以将视图和控制器插入。 

  (3)控制器和视图联系紧密。 

  MVC体系结构模型的缺点如下: 

  (1)系统开发复杂性增加。同时增加了后期维护以及升级更多的更新因素。 

  (2)高耦合。模型、视图和控制器之间耦合过于紧密,修改维护工作量大。 

  (3)效率低。视图中的数据访问效率较低。 

  5 结束语 

  软件开发与以往相比,软件算法和数据结构已经不再是最为重要的部分,软件开发中软件体系结构模型的选择才是目前适应软件开发最重要的关注点。软件体系结构模型的选择已经成为整个软件系统是否能成功开发的基础,通过软件体系结构模型,可以对系统开发中项目可行性、开发周期、功能需求分析、项目复杂程度和风险预测等进行估计预测。从上文对层次体系结构模型、管道与过滤器结构模型、面向对象结构模型和MVC体系结构模型四种软件体系结构模型进行简单的总结介绍以及对其优缺点分析,可以发现每种体系结构都不可避免的在不同方面有强点或者弱点,在实际软件开发中,需要根据项目实际情况综合分析,从而选用恰当合理的软件体系结构模型,使得软件开效率和质量都有所提高。 

    参考文献

  [1]杨志明.几种常见软件体系结构模型的分析[J].计算机工程与设计,2004(08):1326-1328. 

  [2]田润芙,杨旭.常见软件体系结构分析[J].网络财富,2010(01):160-161. 

  [3]侯彬,张立臣.基于中间层的软件体系结构模型[J].电子设计工程,2010(11):1-3.