2015年下半年试题二:论软件系统架构风格

论文库链接:系统架构设计师论文


论文题目

系统架构风格(System Architecture Style)是描述某一特定应用领域中系统组织方式的惯用模式。架构风格定义了一个词汇表和一组约束,词汇表中包含一些构件和连接件类型,而这组约束指出系统是如何将这些构件和连接件组合起来的。软件系统架构风格反映了领域中众多软件系统所共有的结构和语义特性,并指导如何将各个模块和子系统有效地组织成一个完整的系统。软件系统架构风格的共有部分可以使得不同系统共享同一个实现代码,系统能够按照常用的、规范化的方式来组织,便于不同设计者很容易地理解系统架构。

(请围绕"论软件系统架构风格"论题,依次从以下三个方面进行论述。)

1.概要叙述你参与分析和开发的软件系统开发项目以及你所担任的主要工作。

2.分析软件系统开发中常用的软件系统架构风格有哪些?详细阐述每种风格的具体含义。

3.详细说明你所参与的软件系统开发项目中,采用了哪种软件系统架构风格,具体实施效果如何。

写作要点

一、简要描述所参与分析和开发的软件系统开发项目,并明确指出在其中承担的主要任务和开展的主要工作。

二、分析在软件系统开发中常用的软件系统架构风格,详细阐述每种风格的具体含义。

软件系统开发中常用的软件系统架构风格主要包括:

1.管道和过滤器风格

在管道/过滤器风格的软件体系结构中,每个构件都有一组输入和输出,构件读输入的数据流,经过内部处理,然后产生输出数据流。这个过程通常通过对输入流的变换及增量计算来完成,所以在输入被完全消费之前,输出便产生了。因此,这里的构件被称为过滤器,这种风格的连接件就像是数据流传输的管道,将一个过滤器的输出传到另一过滤器的输入。此风格特别重要的过滤器必须是独立的实体,它不能与其他的过滤器共享数据,而且一个过滤器不知道它上游和下游的标识。一个管道/过滤器网络输出的正确性并不依赖于过滤器进行增量计算过程的顺序。

2.数据抽象和面向对象风格

抽象数据类型概念对软件系统有着重要作用,目前软件界已普遍转向使用面向对象系统。这种风格建立在数据抽象和面向对象的基础上,数据的表示方法和它们的相应作封装在一个抽象数据类型或对象中。这种风格的构件是对象,或者说是抽数据类型的实例。对象是一种被称作管理者的构件,因为它负责保持资源的完整性。对是通过函数和过程的调用来交互的。

3.基于事件的隐式调用风格

基于事件的隐式调用风格的思想是构件不直接调用一个过程,而是触发或广播一个或多个事件。系统中的其他构件中的过程在一个或多个事件中注册,当一个事件被触发系统自动调用在这个事件中注册的所有过程,这样,一个事件的触发就导致了另一模块中的过程的调用。基于事件的隐式调用风格的主要特点是事件的触发者并不知道哪些构件会被这些事件影响。这样不能假定构件的处理顺序,甚至不知道哪些过程会被调用,因此,许多隐式调用的系统也包含显式调用作为构件交互的补充形式。

4.层次系统风格

层次系统组织成一个层次结构,每一层为上层服务,并作为下层客户。在一些层次系统中,除了一些精心挑选的输出函数外,内部的层只对相邻的层可见。这样的系统中构件在一些层实现了虚拟机(在另一些层次系统中层是部分不透明的)。连接件通过决定层间如何交互的协议来定义,拓扑约束包括对相邻层间交互的约束。这种风格支持基于可增加抽象层的设计。这样,允许将一个复杂问题分解成一个增量步骤序列的实现。由于每一层最多只影响两层,同时只要给相邻层提供相同的接口,允许每层用不同的方法实现,同样为软件重用提供了强大的支持。

5.仓库风格

在仓库风格中,有两种不同的构件:中央数据结构说明当前状态,独立构件在中央数据存储上执行,仓库与构件间的相互作用在系统中会有大的变化。控制原则的选取产生两个主要的子类。若输入流中某类时间触发进程执行的选择,则仓库是一传统型数据库;另一方面,若中央数据结构的当前状态触发进程执行的选择,则仓库是一黑板系统。

6.C2风格

C2体系结构风格可以概括为:通过连接件绑定在一起的按照一组规则运作的并行构6.C2 风格件网络。C2风格中的系统组织规则如下:系统中的构件和连接件都有一个顶部和一个底部;构件的顶部应连接到某连接件的底部,构件的底部则应连接到某连接件的顶部,而构件与构件之间的直接连接是不允许的;一个连接件可以和任意数目的其他构件和连接件连接;当两个连接件进行直接连接时,必须由其中一个的底部到另一个的顶部。

三、针对作者实际参与的软件系统开发项目,说明所采用的软件架构风格,并描述该架构风格所产生的实际应用效果。

相关推荐
王佑辉4 小时前
【系统架构设计师】需求工程
系统架构
uesowys6 小时前
TOGAF之架构标准规范-信息系统架构 | 应用架构
系统架构
_zwy1 天前
【Linux进程概念】—— 操作系统中的“生命体”,计算机里的“多线程”
linux·服务器·人工智能·系统架构
白-胖-子2 天前
DeepSeek系统架构的逐层分类拆解分析,从底层基础设施到用户端分发全链路
人工智能·机器学习·分类·数据挖掘·系统架构·agi·deepseek
试试看1682 天前
自制操作系统第三天
汇编·系统架构
xuegao08072 天前
系统架构设计基础
系统架构
呱牛do it2 天前
【系统架构】分布式事务模型详解
分布式·系统架构
Resean02233 天前
架构设计系列(四):设计模式
java·设计模式·架构·系统架构
王佑辉3 天前
【系统架构设计师】软件配置管理
系统架构