面向对象框架技术及应用

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

面向对象框架技术及应用

面向对象框架技术是软件重用的一种重要方式。本文以面向对象开发方法为基础,结合防空C I通信网仿真系统,介绍了开发特定领域应用框架的方法。

引言

在现代软件工程中,软件重用已经成为其中一个主要目标。代码重用通过面向对象语言的继承机制和编译技术已成为

现实。随着面向对象技术的日趋成熟,像这样低层次的复用已经不适合于特定领域大型软件生产的需求。为了提高软件生产过程的重用力度,软件领域的先驱者们开始进行一种新的尝试来提高软件生产力,他们不仅要重用旧的代码,而且要重用相似的分析设计结果和体系结构,来减少构造新软件系统的代价并提高软件的可靠性。基于框架的方式就是这样一种面向特定领域的重用技术。

框架由于提供了大力度的重用而被认为是一种最有前途的

面向对象技术。单独的类的重用,尽管有用,但由于重用力度小而不具备有意义的生产力的飞跃,只有把特定领域的体系结构作为一个整体进行重用才能取得引人注目的成就。

在仿真领域中,面向对象使得映射问题域到方案域变得很容易。方法和数据可以绑定到面向对象风格的程序中。仿真领域中的一个具体的实体都可以作为一个主动或被动对象,因

此采用面向对象技术来解决仿真问题是明智的。本文将结合建立C3I通讯子网仿真来讨论建立面向对象框架的方法和步骤。

■面向对象框架

1.什么是面向对象框架

一个面向对象框架是指在特定领域中的应用软件的半成品。框架是对于那些试图在他们所关心的领域构造一个复杂软

件系统的用户而言的。因为它是处于特定领域中,所以应用系统的体系结构在许多不同的方面具有一定的相似性。框架利用一系列的对象和它们之间的接口来对应静态和恒定结

构的端口,并保留友好界面使用户能够很容易完成变化的、不稳定的剩余部分而得到一个新应用程序。任何框架都是特定领域的框架,一个框架可以包含一个或多个模式。

一般来说,如图1所示,框架定义了一个应用程序的骨架并提供可以放置于该骨架中的标准用户界面实现。作为一个程序员,你的工作只是在骨架中填入你的应用程序中特定的部分。目前有关面向对象框架尚未形成一个严格而精确的定义,国外著名的软件设计大师Ralph Johnson 教授对面向对象

技术进行了长期而深入的研究,在他写的许多关于面向对象的论文中对框架进行了如下定义:

图1 特定领域的框架

框架是一种软件重用技术,它是一个应用软件系统的部分或整体的可重用设计。框架的具体表现为一组抽象类以及其实例(对象)之间的相互作用方式。它是对于一个软件系统的全部或部分的可复用设计。如一个用户界面框架只提供系统对用户界面的设计,而MacAPP的“Macintosh应用框架”提供了整个应用系统的设计。由定义可知,一个框架是一种面向对象的设计,尽管通常我们看到的框架都是由某种面向对象语言实现的,但从理论上讲它可以不提供面向对象语言的实现。面向对象类库大力度的复用需要框架,框架提供了类库中被复用组件的上下文关系。

在一个专用领域内构造框架时,把握框架的共同点是关键因素。框架一旦被建立,其适应性和可扩展性就被提到了首要地位。框架的直接目的是被复用,以减少建立一个新应用系统的工作量。只有当理解一个框架的代价少于建立一个新系统的代价时,框架的复用才成为可能。构造框架是一个逐渐积累的过程,就是说不断有新发现的共同点和新的构件被加入,同时那些老的、不必要的部件被删除,以此来保证整个应用系统的性能,这样新旧构件之间的接口直接影响框架的适应性和可扩展性。任何框架都不能被直接复用,除非要建立的应用系统非常简单或者与框架极为相似,除此之外,都要对框架进行或多或少的修改和扩展才能被复用。

2.框架和类库的不同

我们首先要给类库一个明确的定义,对类库的广义描述为:类库以库文件的形式存在,库文件中包含了事先定义好的类。从广义的角度看,面向对象框架的存在形式可以看作一个类库,它是建立在对多态性和动态绑定的系统化的广泛使用基础之上,这些说起来很简单,但现在已建立的开发方法很少有支持对框架设计的。不过一些新的方法原理,例如模式和抽取,表现了对面向对象方法有意义的支持。但在传统意义上,框架是不同于类库的,框架包含更多的内容。框架是对协作完成一系列相关责任的类集合的抽象设计。框架和类库的一些主要区别与联系如下:

①在类库中是由用户实例化抽象类,类库构件被单独使用;而在框架中要有抽象类的一些具体子类,应用软件开发者通过修改现存的类或定义新的子类以扩展现存的类来使用框架。

②在类库中是用户在需要的时候调用函数,不预定义控制流;而框架使用了与用户之间的反向控制流,使用框架时,通常只是实现一些回调函数或者使一些类适用于上下文,然后调用一个单一的方法或过程,框架将完成其余的工作,在适当的时候和地点调用必要的函数或方法。这就是框架的Hollywood法则(“Don't call us, we'll call you”)。

③使用类库只需要了解类的外部接口,但必须要定义应用软件的整体结构;而框架的使用者要了解框架的抽象设计和类

的内部结构来进行修改和扩展,因此学习框架要比类库更加困难,同时有被错误使用的危险,但框架被复用的潜力大大超过了类库。

④在类库中没有定义缺省行为,而在框架中提供缺省行为。■框架技术应用示例

下面,笔者将结合建立C3I通讯子网仿真来讨论建立面向对象框架的方法和步骤。

1.防空C3I通信网仿真系统

C3I系统由指挥、控制、通信和情报四个方面的技术系统组成,是一个庞大复杂的系统。防空C3I通信网仿真作为C3I 系统仿真的一部分,其主要功能是通过共享传输设备进行信息传输,所含部件包括工作站、路由器和通信链路等等,所传送报文分为三种类型,由处于不同位置的用户或用户群随机产生,要求系统根据报文的不同属性、优先级和长度进行适当处理。由于防空C3I通信网仿真系统涉及分布式理论及时间同步原理,作为简单示例,在此我们只讨论单机环境下的军师级防空作战指挥系统的面向对象仿真框架。

防空C3I通信网包括军指挥中心(见图2)和若干(如3个)师属防空指挥系统(见图3)。该中心由军防空情报方舱、军防空指挥方舱和军防空通信方舱组成,每舱中若干终端连成LAN,方舱间由无线LAN互连,军情报方舱通过电台与情报采集融合网络连接。军通信方舱通过电台与军直属防空群相

相关文档
最新文档