软件体系结构是程序算法、数据结构和对象设计的基础,是系统实施的抽象描述。软件体系结构包括一组软件部件、软件部件的外部的可见特性及其相互关系,其中软件外部的可见特性是指软件部件提供的服务、性能、特性、错误处理、共享资源使用等。它概括了整个系统结构、功能部件分解、部件的本质和特性、部件的界面和部件之间的通讯协议和整体性布局策略及法则
  对于一个复杂而庞大的系统来说,没有一个合适的体系结构难以成功地进行软件设计。不同类型的系统需要不同的体系结构,甚至一个系统的不同子系统也需要不同的体系结构,体系结构的选择往往回成为一个系统设计成败的关键。
  以下是几种常见的系统体系结构风格:
  (1) 仓库系统体系结构(Repository Architecture)
  在仓库系统体系结构中,有两种不同的软件系统部件:一个表示当前状态的中心数据结构和一组相互独立的处理中心数据的部件,像银行管理系统等数据库系统就是一种典型的仓库体系结构。
  (2) 模型视图控制器(Model/View/Controller)
  在模型视图控制器(Model/View/Controller,MVC)体系结构中,系统包含三种不同的软件部件:管理应用领域知识的模型组件、向用户提供显示的视图组件和处理交互序列的控制组件。
  (3) 管道和过滤器体系结构(Pipe and Filter Architecture)
  在管道和过滤器结构中,每一个模块都有一组输入和一组输出。每一个模块从其输入端接收输入流,经过内部处理后,按照标准的顺序将结果数据流送到输出端。如图4.20所示。

图4.20 管道和过滤器体系结构

  一个典型的管道和过滤器体系结构的例子就是传统的编译器,其中词法分析、语法分析、语义分析和代码生成是不同的过滤器。
  (4) 层次体系结构(Layer Architecture)
  层次体系结构将系统划分成不同的层次,每一层向上一层提供服务,并利用下一层的服务,最上层是面向应用层,中间层执行任务,最底层与数据存储系统打交道,如图4.21显示了一种典型的三层结构。

图4.21 三层体系结构

  以学生课程注册系统中为例,我们采用三层结构建立如图4.22所示的体系结构



图4.22 学生课程注册系统的三层体系结构