软考考点之软件体系结构知识
如:2016年上半年
第32题:软件体系结构的各种风格中,仓库风格包含一个数据仓库和若干个其他构件。数据仓
库位于该体系结构的中心,其他构件访问该数据仓库并对其中的数据进行增、删、改等操作。
以下关于该风格的叙述中,不正确的是(32)。(33)不属于仓库风格。
A. 支持可更改性和可维护性
B. 具有可复用的知识源
C. 支持容错性和健壮性
D. 测试简单
答:选D,还是不了解,软考的重要意义就是能使计算机的知识,成为一个知识体系,这样才能走的更远。
扩展:
概念:是在处理算法与数据结构之上的,关于整体系统结构设计和描述方面的问题。是软件系统的一个结构、行为和熟悉的高级抽象。(除了概念的组织结构与系统的拓扑结构外,还有系统需求与元素的对应关系。)
重设计重用。
体系结构 = 组件 + 连接件 + 约束
构件:
- 语义完整、语法正确和有可重用价值的单位软件,是软件重用过程中可以明确辨识的系统
软件体系结构风格
- 描述某一特定应用领域中系统组织方式的惯用模式
- 反映众多系统所共有的结构和语义特性,知道将各个模块和子系统有效地组织成一个完整的系统
-
经典体系结构 针对某种软件应用场景,应该选择与其相适应的构件,以及合理安排构件间的关系。在后面的具体体系结构风格中,可以重点查看构件、连接件、结构安排的不同(这些区分了不同的风格,适用于不同的场景)
主程序 - 子程序 风格
主程序-子程序风格是结构化程序设计的一种典型风格,从功能的观点设计系统,通过逐步分解和细化,形成整个系统的体系结构。单片机程序通常用这种风格的。
面向对象 风格
与前面的主程序 - 子程序风格比,面向对象风格中的构件变成了对象(不同于主程序、子程序的概念),并且连接的方式也发生了相应的变化。
- 系统被看作是对象的集合,每个对象都有一个它自己的功能集合;
• 数据及作用在数据上的操作被封装成抽象数据类型;
• 只通过接口与外界交互,内部的设计决策则被封装起来。
管道-过滤器风格
管道-过滤器风格把系统任务分成若干连续的处理步骤,这些步骤由通过系统的数据流连接,一个步骤的输出是下一个步骤的输入。
管道-过滤器风格并没有讨论构件本身特质的不同(与主程序-子程序风格相比),而是限制了各个构件的连接方式,一个步骤的输出是下一个步骤的输入。
在管道/过滤器风格的软件体系结构中,每个构件都有一组输入和输出,构件读输入的数据流,经过内部处理,然后产生输出数据流。这个过程通常通过对输入流的变换及增量计算来完成,所以在输入被完全消费之前,输出便产生了。因此,这里的构件被称为过滤器,这种风格的连接件就象是数据流传输的管道,将一个过滤器的输出传到另一过滤器的输入。此风格特别重要的过滤器必须是独立的实体,它不能与其它的过滤器共享数据,而且一个过滤器不知道它上游和下游的标识。一个管道/过滤器网络输出的正确性并不依赖于过滤器进行增量计算过程的顺序。(摘自:【百度百科】软件体系结构)
管道/过滤器风格的特点:(摘自:【百度百科】软件体系结构)
(1)使得软构件具有良好的隐蔽性和高内聚、低耦合的特点;
(2)允许设计者将整个系统的输入/输出行为看成是多个过滤器的行为的简单合成;
(3)支持软件重用。重要提供适合在两个过滤器之间传送的数据,任何两个过滤器都可被连接起来;
(4)系统维护和增强系统性能简单。新的过滤器可以添加到现有系统中来;旧的可以被改进的过滤器替换掉;
(5)允许对一些如吞吐量、死锁等属性的分析;
(6)支持并行执行。每个过滤器是作为一个单独的任务完成,因此可与其它任务并行执行。
举例1:(媒体播放器)
举例2:(编译器)
以数据为中心的风格
在以数据为中心的风格中,往往将数据存储构件作为核心,与其他构件紧密结合,形成类似于星型结构的拓扑关系。
举例1:剪贴板
举例2:仓库体系结构
仓库体系结构(Repository Architecture)是一种以数据为中心的体系结构,适合于数据由一个模块产生而由其他模块使用的情形。
举例3:(基于数据库的系统结构)
该例子在生活常见系统中,随处可见。