论文部分内容阅读
NATO于1968年提出了软件工程的概念,将软件开发作为一项工程来看待。但由于软件本身固有的复杂性、易变性和不可见性,使得软件工程的实施同其它领域工程的实施相比,开发周期更长、代价更高但质量更低。具体体现在开发模型难以定义、开发过程难以组织等方面。人们受其它工业领域(比如计算机硬件)发展道路的启发,希望软件开发也能像这些领域中通过组装零部件来开发产品。 传统的面向对象的方法以对象和类为构造单元,同时利用方法、继承、多态、消息传递为基本机制,易于把一个大的应用程序分解、抽象成一个个模块,这些模块可看作是软件系统的组件。但是面向对象技术提供的这种软件模块的方法是在源代码层次上的,还不是理想的组件开发。 基于组件的开发方法是近年来人们正在积极讨论的一种新的软件开发方法。就当前已有的研究成果来看,人们选择的是在面向对象技术的基础上来实现基于组件的开发。这个方案的基本思想是将面向对象技术中的对象二进制化,从而使对象成为软件的组件。 当前许多计算机硬件体系结构都采用了总线模型,设备之间通过共享总线可以互相传递操作命令和数据,最终将设备的功能集中形成具有强大处理能力的计算机系统。本文将这种结构模型引入到软件开发领域,设计了一个基于软总线的组件系统模型。这个模型定义的组件系统由软组件和组件间的通讯基础设施组成。软组件通过通讯基础设施传递请求和应答数据来实现互相提供功能服务。在这个模型中,通讯基础设施作为通讯子系统,通过进一步功能分割,将其控制通讯的功能分布在组件访问控制和几个工具组件上,从而定义了一个具有很强的通讯和控制通讯能力的通讯子系统。这个模型还提出了连接件的概念,连接件用来匹配软件总线与组件间的接口,并驱动对应的软组件,通过连接件可以实现将不同接口规范的组件连接在组件系统中。 文中分析并提出了在当前的软硬件平台上实现软总线模型的一般方法,通过参考现有几个组件模型,在MS-Windows平台上实现了一个组件系统。这个组件系统虽然是个实验系统,但它已经实现了基于组件开发的基本机制。