软件体系结构实验报告-比较不同的软件架构风格

报告内容

调试分析KWIC,理解不同架构风格

1、画出每一种风格对应程序的静态结构图(如类图)。

2、打印出程序的执行过程。

3、使用一个较大的输入文本,测试每一种风格程序的性能。

4、结合程序,总结每一种架构风格的特点。 

一、画出每一种风格对应程序的静态结构图(如类图)。

1.Abstract Data

2. Blackboard Solution

3. Implicit Invocation Solution


4.Implicit Invocation Solution2


5. Main_Subroutine


6. Pipe-and-Filter Solution

二、打印出程序的执行过程。

1、基于抽象数据类型的KWIC

(1)运行过程

在Main.java类中集中创建InputStore、CircularShifter、Alphabetizer、Outputer等多个对象。每个对象都有着属于自己的功能。
(2)运行结果(仅记录耗时)

 2、基于黑板体系结构风格的KWIC

(1)运行过程

黑板模式主要由三个重要的组成部分构成:

①黑板(Blackboard)②知识源(KnowledgeSource)③控制组件(Control)

所有的组件都可以访问黑板(Blackboard)。组件可以生成添加到黑板上的新数据对象。组件在黑板上查找特定类型的数据,并通过与现有的知识源(KnowledgeSource)的模式匹配来查找这些数据。控制组件用来选择、配置和执行各个模块。
(2)运行结果(仅记录耗时)

 3、基于事件驱动风格的KWIC

(1)运行过程

事件驱动架构的基本思想是:系统对外部的行为表现可以通过它对事件的处理来实现。一个基于事件驱动构架的应用程序系统,各个功能设计为封装的、模块化的、可用于共享的事件服务组件,并在这些独立非耦合的组件之间将事件所触发信息进行传递。
(2)显式调用与隐式调用

 4.基于主程序风格的KWIC

(1)运行过程

将系统组织成层次结构,包括一个主程序和一系列子程序。主程序是系统的控制器,负责调度各子程序的执行。各子程序又是一个局部的控制器,调度其子程序的执行。图中只有一个Main类其中包含多个方法(多个子程序)。
(2)运行结果(仅记录耗时)

5. 基于管道-过滤器风格的KWIC

(1)运行过程

管道-过滤器风格将系统的功能逻辑建立为部件集合。每个部件实例完成一个对数据流的独立功能处理,它接收数据流输入,进行转换和增量后进行数据流输出。连接件是管道机制,它将前一个过滤器的数据流输出传递给后一个过滤器作为数据流输入。连接件也可能会进行数据流的功能处理,进行转换或增量,但连接件进行功能处理的目的是为了适配前一个过滤器的输出和后一个过滤器的输入而不是为了直接承载软件系统的需求。

(2)运行结果(仅记录耗时)

三、使用一个较大的输入文本,测试每一种风格程序的性能。

输入的文本为Pride and Prejudice.txt,一共781KB。
1、基于抽象数据类型的KWIC


2、基于黑板体系结构风格的KWIC


3.基于事件驱动风格的KWIC


 4.基于主程序风格的KWIC


5. 基于管道-过滤器风格的KWIC

 四、结合程序,总结每一种架构风格的特点。

1、抽象数据类型

(1)优点

①内部实现的可修改性。因为面向对象式风格要求封装内部数据,隐藏内部实现,所以可以在不影响外界的情况下,变更其内部实现。

②易开发、易理解、易复用的结构组织。面向对象式风格将系统组织为一系列平等、自治的单位,每个单位负责自身的正确性,不同单位之间仅仅是通过方法调用相连接,这非常契合模块化的思想,能够建立一个易开发、易理解、易复用的实现结构。

(2)缺点

当一个对象和其他对象交互,它必须知道其他对象的标识。当一个对象的标识改变时,必须修改那些显式调用它的对象。

2、黑板体系结构风格

(1)优点

便于多客户共享大量数据,而不必关心数据是何时产生的、由谁提供的以及通过何种途径来提供。便于将构件作为知识源添加到系统中来。

(2)缺点

修改数据空间的结构非常困难,因为所有应用程序都受到了影响。可能需要同步和访问控制。

3.事件驱动风格

(1)优点

①事件声明者不需要知道哪些构建会响应事件,因此,不能确定构件处理的先后顺序,甚至不能确定事件会引发哪些过程调用。

②提高了软件重用能力,只要在系统事件中注册构件,就可以将该构件集成到系统中。

③便于系统升级,只要构件名和事件中所注册的过程名保持不变,原有构件就可以被新构件所替代。

(2)缺点

①构件放弃了自身对系统计算的控制。当一个构件发布一个事件,它不能保证其他构件会对其做出响应。即使它能够肯定该事件会被其他构件响应,它也不能依赖事件被处理的先后顺序。

②涉及到数据交换。有时数据通过事件传递,但在某些情况下,事件系统必须依赖一个共享缓冲区,以便于数据的交换。这样,整体的性能和资源的管理可能成为关键性问题。

4.主程序风格

(1)优点

易于理解并支持变换的复用。工作流风格与很多业务处理系统体系结构很匹配。通过添加变换的方式进行进化是很显然的。可以实现为顺序的系统,也可以实现为并发的系统。

(2)缺点

在通信变换间所传输的数据格式必须协商好。每个变换必须解析它的输入并写成约定的格式输出。这增加了系统的负荷,意味着不可能复用实用不兼容数据结构的函数变换。

5. 管道-过滤器风格

(1)优点

①简单性。

②支持复用。

③系统具有可扩展性和可进化型。

④系统并发性(每个过滤器可以独立运行,不同子任务可以并行执行,提高效率)。

⑤便于系统分析。

(2)缺点

①不适合用来设计交互式应用系统。

②由于没有通用的数据传输标准,因此每个过滤器都需要解析输入数据和合成数据。

③难以进行错误处理。

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值