青鸟可复用构件库的设计与实现

更新时间:2024-05-22 23:25:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

青鸟可复用构件库的设计与实现

摘要

目前,软件系统的规模日趋庞大,软件及其开发过程越来越复杂,“软件危机”仍是尚未解决的问题。随着软件复用被视为解决“软件危机”问题的有效途径之一,基于构件的软件开发方法以其对软件复用的有效支持,而被越来越多的开发组织所采用。基于构件的软件开发大致涉及构件的获取、构件存储管理和构件组装等几个过程。构件的存储和管理是构件开发及基于构件复用的开发的重要中间环节。其重点是研究构件的分类检索策略、构件的数据模型、构件库建立及管理等方面。

本文工作以国家“九五”重点科技攻关专题“基于构件/构架模式的应用软件集成环境 --- JBIII系统”为背景。青鸟III型系统的核心子系统是青鸟构件库管理系统,由可复用构件库和构件库管理工具集组成。本文着重于青鸟构件库管理系统的核心部件 --- 青鸟可复用构件库的设计和实现。

青鸟可复用构件库支持符合青鸟构件模型的构件的分类、存储、检索和管理;采用以刻面分类模式为主、多种分类模式相结合的机制对构件进行分类检索。本文以青鸟构件模型为基础、从刻面分类为主的多种分类检索机制的需求出发,建立了构件库概念模型,然后把概念模型转换为关系数据模型,并在实现过程中对关系模型进行优化,以提高构件库的性能。为了对外屏蔽网络平台和DBMS细节,青鸟可复用构件库为构件库管理工具集(包括构件分类工具、查询工具以及库管理和维护工具)提供一整套工具集接口CLTSI,并支持新工具的集成。针对访问可复用构件库信息的特点,设计了专门的数据存取命令DAC,通过DAC来实现工具集接口CLTSI,在保证系统功能和总体结构不变的前提下,减小了检索和获取可复用构件的代价,提高了系统的性能与效率。

关键字

软件复用,构件,构件模型,构件库,数据库

-I -

The Design and Implement of JB Reusable

Component Library

Abstract At present, with the scale of software system becoming larger and software and its development process becoming more complex, it is still a far way to solve the software crisis. Software reuse is regarded as a practical and feasible approach to solve the software crisis, therefore, more and more software organizations and enterprises come to adopt the method of Component Based Software Development(CBSD), an effective way to support software reuse. The CBSD method usually involves components' acquirement, storage, management, and composition, of which the storage and management of components play a key role during the process of component development and software development based on component. As a result, it is important to research the component classification and retrieving strategies, the component model, and the building and management of component library.

This thesis is based on the author's work in the National 9th Five-Year Plan Project “JBIII System -- Application Software Integration Environment Based on Component-Architecture Pattern”. The kernel subsystem of JBIII system is the JB Component Library Management System, which consists of a reusable component library and library management toolset. The thesis focuses on the design and implementation of JB reusable component library, the key part of the JB Component Library Management System.

The JB reusable component library supports the classification, storage, retrieving and management of components that conform to the JB Component Model, and employs the faceted method as the main classification strategy supported by other classification mechanism. After building component library's conceptual model based on the JB Component Model and the requirement of the classification strategies, The thesis transforms the conceptual model to relational data model, and then optimizes the data model during the implementation session to improve the component library's performance. To hide the details of network platforms and DBMS, JB reusable component library offers a set of interfaces to the library management toolset consisting of the classification tool, the query tool, and the library management tool. The interfaces are implemented through specially-designed data access commands(DAC) to meet the characteristic of component library access, thereby reducing the time of retrieving components and improving the performance and efficiency of the component library.

Keyword software reuse,component,component model,component library,database

- II -

目 录

第一章 引言 ............................................................................................................... 1

1.1软件复用 .......................................................................................................................... 1 1.2现状及其问题 .................................................................................................................. 2 1.3相关工作及解决途径 ...................................................................................................... 3 1.4相关术语定义 .................................................................................................................. 4 1.5论文的组织 ...................................................................................................................... 5

第二章 基于构件的软件开发 ................................................................................... 6

2.1可复用构件 ...................................................................................................................... 6 2.2基于构件的软件开发 ...................................................................................................... 6 2.3构件库对CBSD的支持 ................................................................................................. 7 2.4基于构件-构架模式的软件复用支持系统 ..................................................................... 8

第三章 青鸟构件库管理系统 ................................................................................... 9

3.1青鸟构件库管理系统体系结构 ...................................................................................... 9 3.2青鸟构件分类检索机制 ................................................................................................ 10

3.2.1分类模式 ............................................................................................................................... 10 3.2.2刻面分类及术语空间 ........................................................................................................... 11 3.2.3辅助分类策略 ....................................................................................................................... 13

3.3青鸟构件库管理系统功能 ............................................................................................ 13 3.4青鸟构件库设计目标与原则 ........................................................................................ 14

第四章 青鸟构件库模型设计 ................................................................................. 16

4.1青鸟构件模型简介 ........................................................................................................ 16 4.2构件库概念模型 ............................................................................................................ 18

4.2.1表示法 ................................................................................................................................... 18 4.2.2青鸟构件库概念模型 ........................................................................................................... 19

4.3构件库数据模型 ............................................................................................................ 24

4.3.1相关概念 ............................................................................................................................... 25 4.3.2青鸟构件库关系模型 ........................................................................................................... 26

- III -

第五章 青鸟构件库工具集接口设计 ..................................................................... 29

5.1青鸟构件库管理工具集 ................................................................................................ 29

5.1.1构件分类与入库工具 ........................................................................................................... 29 5.1.2查询工具 ............................................................................................................................... 29 5.1.3构件库管理及维护工具集 ................................................................................................... 30

5.2工具集接口设计目标 .................................................................................................... 31 5.3工具集接口组成结构 .................................................................................................... 32 5.4工具集接口详细设计 .................................................................................................... 32

5.4.1 DAC详细设计 ..................................................................................................................... 32 5.4.2 事务处理 .............................................................................................................................. 36

第六章 具体实现 ..................................................................................................... 37

6.1关系模型的优化 ............................................................................................................ 37

6.1.1对术语进行编码 ................................................................................................................... 37 6.1.2建立索引和视图 ................................................................................................................... 38

6.2核心数据库的建立与管理 ............................................................................................ 39

6.2.1核心数据库的建立 ............................................................................................................... 39 6.2.2核心数据库的恢复 ............................................................................................................... 40

6.3工具集接口的具体实现 ................................................................................................ 40

第七章 结束语 ......................................................................................................... 42

参考文献 ..................................................................................................................... 43

- IV -

图 目 录

图1-1 理想的工厂化软件生产方式 .................................................................... 1 图1-2 青鸟软件生产线 ........................................................................................ 2 图2-1 构件库对基于构件的软件开发的支持 .................................................... 7 图2-2 青鸟III型系统 ......................................................................................... 8 图3-1 青鸟构件库管理系统的体系结构 ............................................................ 9 图4-1 青鸟构件的三维模型 .............................................................................. 16 图4-2 实体关系模型中的概念和表示法 .......................................................... 19 图4-3 数据库实体关系图(ERD) ....................................................................... 19 图4-4 构件ER图 .............................................................................................. 20 图4-5 构件关系ER图 ...................................................................................... 21 图4-6 术语与构件、刻面、同义词的关系 ...................................................... 22 图4-7构件与关键词的关系 ............................................................................... 23 图4-8 使用者与构件的关系 .............................................................................. 23 图4-9 构件与提供者、联系人之间的关系 ...................................................... 24 图4-10 使用者与日志、配置信息的关系 ........................................................ 24 图5-1 工具集接口的组成结构 .......................................................................... 32 图6-1 术语空间及术语编码示意图 .................................................................. 38 图6-2 核心数据库的恢复 .................................................................................. 40

- V -

表 目 录

表1-1 相关术语定义 ............................................ 5 表3-1 使用环境刻面的术语 ..................................... 12 表3-2 功能刻面的术语 ......................................... 13 表4-1 构件层次、形态的关系 ................................... 17 表4-2 构件层次、表示的关系 ................................... 18 表4-3 关系模型的主要概念 ..................................... 25 表4-4 青鸟构件库关系模式 ..................................... 26 表4-5 Component 关系模式 ..................................... 26 表5-1 用户管理命令 ........................................... 33 表5-2 构件提供者与联系人管理命令 .............................. 33 表5-3 日志管理命令 ........................................... 34 表5-4 刻面及其术语空间管理命令................................ 34 表5-5 构件操作命令 ........................................... 35 表5-6 构件描述信息操作命令 ................................... 35 表5-7 构件关系管理命令 ....................................... 36 表5-8 配置管理命令 ........................................... 36 表6-1 青鸟构件库索引列表 ..................................... 39 表6-2 青鸟构件库视图列表 ..................................... 39 表6-3 有关合法性检查的内部命令列表 ............................ 41

- VI -

江西师范大学硕士学位论文 青鸟可复用构件库的设计与实现

第一章 引言

1.1软件复用

自从1968年NATO软件工程会议以来,软件工程的发展已有三十年历史。其间,众多的科研人员和工程技术人员付出了艰辛的努力,取得了丰硕成果。软件工程思想和技术的普及,使软件生产率稳步上升,软件质量得到很大改善。但是随着软件系统的规模和复杂性日益增加,软件工程研究还是远远不能满足软件产业发展的需求,离彻底解决“软件危机”还有相当大的距离 〖Boeh 87, Cox 90〗。

近十年来,人们开始认识到,要真正实现软件的工业化生产方式,达到软件产业发展所需要的软件生产率和质量,软件复用是一条现实可行的途径〖Mili 95〗。对软件复用技术的研究已成为软件工程学科的主攻方向之一。被视为解决软件危机的现实可行的途径。

软件复用的概念是由McIlroy在1968年的NATO软件工程会议上正式提出的,此后三十年中,软件复用在技术研究上已取得了较大进展,同时也对软件产业产生了深刻的影响。软件复用将造成软件产业的合理分工,专业化的构件生产将成为独立的产业而存在,而软件系统的开发将通过集成组装现有构件的方式来完成。这种产业分工将促使软件产业真正走上工程化、工业化的发展轨道〖杨芙清 97〗。而软件产业的组织结构也将随之发生变革〖Shaw 84,Cox 90,Basili 91〗,一般来说,需要在传统项目组织结构之外,增加一个专门负责构件开发、管理和维护的部门。Caldieri和Basil提出了一种理想的工厂化的软件生产方式〖Cald 91〗,如图1-1所示:

请求发布测试集成规约设计构件查找同步验证活动剪裁、生成计划生产异步活动存储包装项目组织经验工厂

图1-1 理想的工厂化软件生产方式

青鸟工程提出的软件生产线思想〖杨芙清 96b〗集中体现了软件复用的本质及软件工业化生产的模式。图1-2给出了青鸟软件生产线图示。

青鸟工程一直是国家重点支持的科技攻关课题,已有十余年的发展历程。“七五”、“八五”期间,青鸟工程面向我国软件产业基础建设的需求,以实用的软件工程技术为依托,研究开发具有自主版权的软件工程环境,为软件产业提供基础设施—软件工具、平台和环境,建立工业化生产的基本手段,促进我国软件开发由手工作坊式转向用计算机辅助开发,以提高软件开发效率,改善软件产品质量。大型软件开发环境-青鸟Ⅱ系统〖杨芙清 95b〗便是这一阶段攻关工作的成果。

- 1 -

江西师范大学硕士学位论文 青鸟可复用构件库的设计与实现

A1A3A2A4R领域1基础构件AB1B2B4B3A1A2B1B2C1C2D1BCDA1C1DB1A2B2应用系统领域2功能构件C1C2A3A4B3B4D2应用构架库接口构件D1D2组装车间应用构架提取车间用户界面构件构件生产车间标准规范 与 质量保证青 鸟 软 件 生 产 线 图1-2 青鸟软件生产线

“九五”期间,青鸟工程的任务是在前期攻关工作的基础上,为形成我国软件产业规模提供技术支持。重点是研究青鸟软件生产线,为软件开发提供整体解决方案,推行软件工业化生产模式,促进软件产业规模的形成。青鸟工程“九五”目标分两期实施,第一期目标是初步实现青鸟软件生产线系统,用以装备软件企业,支持软件构件的生产和应用系统集成,并推出示范工程。第二期目标是针对软件产业规模经济的需求,根据软件产业由于构件技术的日趋成熟而出现的产业重组分工趋势(即分成专门的软件构件生产业和应用系统集成业),为其提供相应的技术支撑和装备,适应并推进产业分工和形成规模,使我国软件产业真正走上工程化、工业化的道路。

1.2现状及其问题

软件复用概念出现以来的三十年中,已有了许多成功的复用实践,如针对FORTRAN,COBOL,Visual Basic等语言的复用〖Gris 95〗。软件复用作为现实可行的克服软件危机,实现软件工业化生产方式的技术途径在近几年来受到普遍关注,成果斐然,然而离成功的复用仍有较大距离,原因有多方面。

从组织机构与管理角度看,现有的组织管理模式已成为推行复用技术的障碍。首先应改革现有的由一个项目组从头至尾完成整个系统开发的方式,应该涌现出大量的构件厂商生产大量可复用构件,使项目组和构件厂商间构成消费者——生产者的关系,生产者只负责开发各类可复用构件,项目组只消费构件〖Basi 92,Basi 94〗。

从思想观念角度看,存在一种“Not Invented Here”(不是自己发明的)综合症。软件工程师喜欢创造性的劳动,不愿意复用也往往并不信任别人开发的软件。应当改变这种传统观念,转而遵循Fred Brooks所提出的“用购买代替建造”

- 2 -

江西师范大学硕士学位论文 青鸟可复用构件库的设计与实现

(buy, don’t build)的思想〖Broo 87〗。

从工程学角度看,软件工程学科的发展尚处于不成熟期,缺少对软件开发和软件复用的合适训练,缺少有效方法学支持等。

从技术角度看,软件复用主要涉及构件的获取、构件存储管理和构件组装等方面,这几个环节在软件复用过程中都处于非常重要的地位,而且都与构件密切关联。无论是从可复用构件的开发角度、还是从基于构件的复用角度来看,可复用构件的数量、种类和质量都是成功地进行软件复用的关键所在。这就对可复用构件的分类、存储、管理、检索以及相应的工具支持提出了需求。必须有一个合理而高效的可复用构件库管理系统提供强有力的支持,才能使成功的软件复用成为现实。

成功的软件复用需要在组织机构与管理、思想观念、工程学和技术等方面的协同支持。本文主要从软件复用的技术角度展开讨论,尤其着重于对可复用构件分类、存储、管理和检索的支持。

1.3相关工作及解决途径

早期的软件复用主要注重于代码复用〖Free 87,Krue 92〗及其支持,如FORTRAN,COBOL,C语言将常用的函数保存在函数库中。面向对象语言由于其新的特性,如封装、继承、多态等,能更好地支持复用,而面向对象语言的开发环境也对代码复用提供了有效的支持,主要是提供了强大的类库,如Microsoft Visual C++ 4.0〖Micr 94〗的类库,程序员可以直接使用类库中的类或从中派生自己的类。

随着软件复用的发展,复用的对象从早期的代码复用扩展到对软件开发过程中一切有价值的信息的复用,出现了多种可复用构件,如分析件、设计件、测试件以及程序文档。而可复用构件在数量上也日趋增大。为了更好地支持多形式、大数量构件的复用,必须有一个支持构件复用的环境。

当前软件界对可复用构件库及其相关问题进行了深入研究,并提出了不少的复用标准及环境。RIG〖RIG 94〗和NATO〖NATO〗提出了一系列标准;ALOAF〖STARS 92〗对构件模型进行了大量的研究。

复用库可互操作性组织RIG(Reuse library Interoperability Group)为软件复用库间共享软件构件,考察了软件库之间的可互操作性问题,并开发了一个数据模型UDM(Uniform Data Model for Reuse Libraries),其中定义了在支持可互操作性的库之间交换软件构件所需要的信息。它提供了一个标准的数据模型,各个库可以将它作为自己的数据模型的中间表示,用来和其它库交换使用符合各自数据模型的数据。

NATO(North Atlantic Treaty Organization)提出了一组标准,包括《可复用软件构件开发指南》、《可复用软件构件库管理指南》和《软件复用过程指南》三个文档,分别针对于软件生命周期的不同阶段〖NATO〗。其中《可复用软件构件库管理指南》讨论了有关构件库建立与管理的问题。构件库管理的关键在于分类,NATO采用刻面对构件库进行分类。NATO刻面分类模式中的刻面不必彼此独立,也不必适用于所有的构件。一组典型的刻面可能包括:对象、功能、算法、类型、语言和环境。在对一个构件进行分类时,不一定所有的刻面都出现。刻面术语具有同义词关系,一组同义词表达同一个概念,术语空间由这些术语构成,术语之间没有一般/特殊关系(即术语空间是非结构化的)。

- 3 -

江西师范大学硕士学位论文 青鸟可复用构件库的设计与实现

美国军方发起的STARS(Software Technology for Adaptable, Reliable Systems)项目考虑了在构件库之间共享资源和实现无缝互操作的问题,于92年提出了开放体系结构的构件框架ALOAF( Asset Library Open Architecture Framework )。该文档包括构件库框架的参考模型(ALF-RM)、互交换构件的所需的数据模型和约定格式的规约以及一个在ALF-RM上支持构件互交换和构件描述的框架服务规约。ALOAF强调数据建模的作用,考虑元模型层、模型层和数据层三个层次,认为统一的数据元模型是互操作和数据共享的基础。

在理论研究的同时,已有不少的构件库系统在软件产业界得到了实际应用。最为典型的有REBOOT〖Jean 93〗系统。REBOOT(Reuse Based on Object Oriented Techniques)是一个包括储存可复用构件的数据库和一组产生、认证、插入、提取、评价和适配可复用构件的工具的环境〖Lars 93〗。其中在对构件进行分类时采用了刻面的分类策略,这一分类策略主要针对面向对象的构件。

美国国防部也推出了若干构件库,如:美国空军电子系统中心(ESC)的CARDS〖CARDS 96〗、STARS项目的ASSET(Asset Source for Software Engineering Technology) 〖STARS 92〗和DISA(Defense Information Services Agency)的SRP(Software Reuse Program)。

青鸟可复用构件库是青鸟基于构件-构架模式的软件复用支持系统的核心,其建模过程中研究分析了国外软件复用的最新成果、尽量遵循国际主流,并且具有自己的特色。青鸟构件库对宽谱系粒度的构件提供支持,有足够能力存储、处理多层次多粒度的各种构件;提供以刻面分类策略为主、多种分类策略相结合的分类检索机制,采用正交的五个刻面对构件进行刻划,刻面彼此独立且适用于所有的构件,在对一个构件进行分类时,所有的刻面都必须关联相应术语;而且青鸟构件库还率先提出了以树型层次结构组织术语空间的策略。

1.4相关术语定义

为了讨论和叙述的方便,下面给出在本文中经常用到的一些关键术语的简要定义:

复用 在一个新的语境(context)中(同一系统的(Reuse) 其它地方或另一个系统中)使用已有的为复用目的而开发的软件构件。 构件(Component) 软件系统中一切可以被明确标识的有机构成成分(软件实体);它可以是需求分析、设计、代码、测试数据或软件开发过程的其它产品。 可复用构件 具有可复用价值的软件构件。 (Reusable Component) 构件模型 构件的本质特征以及构件间关系的抽象描(Component Model) 述。 可复用构件库 可复用软件构件的集合,包括向用户提供(Component Library) 构件时所需的过程和功能。

基于构件的软件开发 通过组装现有软件构件的方式来建造大型- 4 -

江西师范大学硕士学位论文 青鸟可复用构件库的设计与实现

Component-Based Software 软件系统的软件开发方法。 Development 刻面(Facet) 一个单词或短语的固定集合,用于描述构件的某个方面或视角 术语空间(Term Space) 术语的结构化集合, 术语空间的结构反映了术语间的语义关系。 刻面分类策略 一个刻面分类模式由一组描述构件特征的(Faceted Classification 刻面所组成,每个刻面从不同的侧面对库Scheme) 中构件进行分类。 数据模型 数据模型是数据库系统中用于提供详细表(Data Model) 示和操作手段的形式构架,通常由数据结构、数据操作和完整性约束三部分组成。 概念模型 从现实世界的客观事务中抽象出来的一种(Conceptal Model) 不依赖于具体计算机系统的信息结构。 关系模型 以关系表示实体及实体之间联系的一种数(Relational Model) 据模型。 领域 指一类相关的软件应用。一般来说,构件(Domain) 在某个特定的领域内复用潜力最大。 表1-1 相关术语定义

1.5论文的组织

本文涉及了青鸟可复用构件库的组织存储及检索等方面的研究。

第二章主要讨论了基于构件的软件开发及构件库对基于构件的软件开发的支持,并且介绍了“基于构件/构架模式的软件开发支持系统”--- 青鸟III型,由此给出本文研究的工作背景。

第三章介绍了青鸟III型的核心 --- 青鸟构件库管理系统的体系结构、分类检索机制及应具有的功能,并由此导出青鸟构件库的设计目标与原则。

第四章在讨论青鸟构件模型之后,用实体关系模型描述青鸟构件库的概念模型,并把概念模型转换为关系数据模型。

第五章主要讨论构件库管理工具集接口的设计。在简单介绍构件库管理工具集之后,讨论了工具集与构件库之间的接口的设计目标、组成结构及详细设计。

第六章主要讨论青鸟构件库及其工具集接口实现上的各种细节。

- 5 -

江西师范大学硕士学位论文 青鸟可复用构件库的设计与实现

第二章 基于构件的软件开发

基于构件的软件开发是一种有效实际的复用途径。本章先讨论复用的几种形式并给出可复用构件的定义;接着,介绍基于构件的软件开发并阐述构件库对基于构件的软件开发的支持。最后,阐述基于构件/构架模式的软件开发支持系统—青鸟III型从而,给出本文研究的工作背景。

2.1可复用构件

可复用构件(Reusable Component)指所有具有可复用价值的构件,在本文中简称为构件(Component)。

软件复用是指应用已有的为复用目的而开发的软件构件构造新的软件系统,以提高系统开发效率及软件质量。复用的形式多种多样,可以是规约复用、设计复用、代码复用、测试复用和文档复用〖NATO〗。由于复用的种类不同,不同的复用研究人员对构件给出的定义也不尽相同,目前国际上对构件并无统一的标准定义。

NATO在其颁布的《构件开发标准》中将构件笼统地定义为:构件是用于复用的软件实体〖NATO〗。

STARS拓广了构件的范围,将广义构件(Asset)定义为:任何在当前或将来对于开发和维护软件系统的企业和组织有价值的信息单元。这一概念比狭义的软件构件意义更为广泛。构件可以包括软件工作产品、软件子系统、软件构件(STARS的软件构件是与分析件、设计件等相并列的)、专家联系名单、构架、领域分析、设计、文档、个案分析、经验教训、研究成果、以及有创见的软件工程思想与表述等等〖STARS 92〗。

Mili等在〖Mili 95〗一文中将软件复用分为两类:产品复用(product reuse)和过程复用(process reuse)。产品复用是指将对软件开发过程中生成的各种产品作为构件进行复用,一般而言有两种形式:直接复用和间接复用。直接复用针对的构件可以表示为某种程序设计语言代码,这类构件的复用可以直接产生可执行的应用程序。间接复用是指对需求规约、设计、模式、测试计划等文档型知识的复用。虽然这类非代码构件的复用不能直接得到可执行的应用程序,但可以对系统开发的效率和质量带来极大的好处。过程复用是指复用以前软件开发的过程,一般表现为对软件开发某一阶段提供自动化支持的工具,典型的过程复用例子有程序生成器、程序变换器和可执行规约语言等。

本文的研究重点是产品复用,将构件定义为: 构件是软件系统中一切可以被明确标识和的有机构成成分(软件实体),可以是需求分析、设计、代码、测试数据或软件开发过程的其它产品。

2.2基于构件的软件开发

随着构件技术的发展,软件开发方式也发生了巨大变化。基于构件的软件开发(CBSD,Component-Based Software Development),成为软件工程学科的焦点之一。CBSD有时也被称为基于构件的软件工程(CBSE)〖Brow 96〗,它致力

- 6 -

江西师范大学硕士学位论文 青鸟可复用构件库的设计与实现

于通过组装现有软件构件的方式来建造大型软件系统。通过增强系统的灵活性和可维护性,这种方法可以降低软件开发成本,加快系统开发的速度,减轻大型系统支持和升级所带来的维护负担。CBSD是建立在这样一个前提之上的,即大型软件系统的某些部分具有共性,因此将该部分制作成构件,类似系统通过复用构件来实现。

在基于构件的软件开发过程中,原来系统开发中的重点 --- 程序设计,将被组装现有软件构件所取代。构件组装成为整个软件开发过程的核心工作,因此构件的组织、存储、检索也就成为基于构件的软件开发中的一个关键因素。为了支持关于构件的上述活动,使用构件库来保存构件是必须的,也是提高开发效率的关键。

2.3构件库对CBSD的支持

为了支持基于构件的软件开发过程,人们希望能够拥有与软件生命周期的各个阶段相关的构件,以便软件开发者在整个软件开发过程都能通过复用构件得到帮助。由于软件复用具有多种形式,同时软件开发过程又可分为需求分析、设计、实现、测试、维护等不同阶段。因此,要使复用成为可能,首先必须要有大批量的各种形式、分属不同阶段的可复用构件。其次,为了尽可能地减小用户获取可复用构件的代价,这就必然要求有一个能够良好有效地支持复用的环境,对大量构件进行分类、管理、存储并支持开发者检索和提取构件。

构件获取构件生产构件抽取构件购买新系统构件复构件分类构件组装用构件库构件查询构件维护构件管理 图2-1 构件库对基于构件的软件开发的支持

支持构件复用的环境的一个重要部分是支持构件分类、组织、存储和查询的构件库系统。支持多层次多形态构件的大型构件库有利于提高复用的可能性和

- 7 -

江西师范大学硕士学位论文 青鸟可复用构件库的设计与实现

复用的质量。

有了构件库系统的支持,基于构件的软件开发活动被划分成三类:构件获取、构件管理和构件复用,如图2-1所示。构件可以通过设计生产,或通过再工程的方式提取,或直接从某个商业性的软件机构购买。构件管理负责构件分类以及构件维护。而构件复用则查询构件并通过构件组装生成新系统。〖Fisc 87,Rama 88,Maid 93,Mili 94,Mili 95〗

2.4基于构件-构架模式的软件复用支持系统

青鸟III型系统的研制开发是青鸟工程“九五”攻关中的一个重要组成部分,该系统的研制目标是针对软件工业化生产的需求,完善并初步实现青鸟软件生产线的思想,制定软件工业化生产标准和规范,研究基于“构件—构架”模式的软件工业化生产技术,研制支持面向对象技术、支持软件复用、基于异构平台、具有多信息源接口的应用系统集成环境。图2-2给出了青鸟III型系统的示意图:

图2-2 青鸟III型系统

基于构件-构架模式的软件复用支持系统是青鸟的III型系统的核心,如图2-1所示,它主要由以下几个工具组成:1、领域分析工具;2、程序理解及构件抽取工具;3、构件库管理系统JBCL,其中包括构件库、分类工具、查询工具和库管理工具;4、基于复用的OO开发工具集,其中包括分析工具、设计工具、编程工具和测试工具;5、构件组装工具。

青鸟可复用构件库管理系统JBCL是构件库、分类工具、查询工具以及库管理工具的统称,它是青鸟III型系统的核心子系统。在构件库中可以保存软件开发过程中所生成的不同阶段(如分析、设计、编码、测试等)、不同形态(如类、类树以及框架)、不同表示(如图形、伪码、语言等)的构件,并根据多种不同机制(如刻面、关键词等)为它们建立分类索引,以便于进行检索工作。

- 8 -

江西师范大学硕士学位论文 青鸟可复用构件库的设计与实现

第三章 青鸟构件库管理系统

本章先给出青鸟III型的核心—青鸟构件库管理系统的体系结构。接着,介绍青鸟构件库管理系统所采用的分类检索机制。最后,阐述青鸟构件库管理系统应具有的功能,并由此导出青鸟构件库的设计目标与原则。

3.1青鸟构件库管理系统体系结构

青鸟可复用构件库管理系统JBCL(Jade Bird Component Library)是JBIII型系统的核心子系统, 由构件库、入库工具、查询工具以及构件库管理工具组成。青鸟构件库管理系统的体系结构如图3-1所示:

构件入库工具集分类工具DAC通信模块通信模块DAC数据库服务器DAC构件查询工具集构件查询工具集OLE集成查询工具反馈工具DAC网数据库管理系统构件库维护工具集用户数据库维护工具制作者数据库维护工具管理员数据库维护工具络构件库构件库反馈意见反馈意见处理工具术语空间术语空间维护工具构件库信息构件库信息统计工具

图3-1 青鸟构件库管理系统的体系结构

青鸟构件库管理系统为Client/Server结构,其核心是一个存储构件及其

相关信息的关系数据库系统,外围支持工具构成三个工具集:构件库入库工具集、构件库查询工具集和构件库维护工具集。

数据库服务员基于工作站的UNIX平台,直接对关系数据库进行各种操作。其主要功能包括:

1. 为数据库用户提供统一的DAC(Data Access Command,数据存取命令)

语言,以屏蔽DBMS的细节(考虑到用户可选用不同的数据库); 2. 附加的数据库访问控制;

3. 译码并解释执行DAC,访问数据库。

支持工具基于微机Windows平台,通过局域网与数据库服务员通讯,支持用户对构件库的使用。各支持工具通过OLE机制集成起来。构件库的三组工具分别为:

- 9 -

江西师范大学硕士学位论文 青鸟可复用构件库的设计与实现

1. 构件入库工具集:由构件库管理员使用,其中包括构件分类工具,主要功能是将新构件加入构件库及修改已有构件信息; 2. 构件查询工具集:由构件库用户使用,其中包括构件查询工具和构件使用意见反馈工具,主要协助构件库用户浏览、查询、提取构件,反馈用户对构件的使用意见; 3. 构件库维护工具集:由构件库管理员使用,其中包括用户数据库维护工具、构件提供者数据库维护工具、构件库管理员数据库维护工具、用户反馈意见处理工具、刻面术语空间维护工具和构件库信息统计工具,主要对构件库的各部分内容进行管理维护。

3.2青鸟构件分类检索机制

3.2.1分类模式

合理地组织构件库的关键,是如何对构件进行分类,即按照什么样的分类模式组织不同的构件集合。一般地,构件库的分类策略应满足如下的要求:

(1) 分类信息应该表达构件的相关信息;

(2) 分类策略应该适用于各种粒度、来自软件开发过程各个阶段的各种构

件;

(3) 分类策略不应太复杂,过高的复杂度将导致较低的可理解性与易用性,

从而降低复用的价值〖Lars 93〗。

通常的分类模式有层次分类和刻面(facet)分类两种。刻面分类模式是对层次分类模式的扩充。一个刻面分类模式由一组描述构件特征的刻面所组成,每个刻面从不同的侧面对库中构件进行分类。例如,这组刻面可以是应用领域、功能、操作对象、编程语言和操作系统等。每个刻面由一组基本的术语所构成(称为术语空间term space)。一个构件可以被每个刻面中的一个或多个术语所刻划(刻面术语是一个确定的集合),而每个刻面则分别反映了对库中构件的一种划分,因此用户可以直观地从不同的角度指明待检索的构件,也有利于用户对构件的理解。

刻面分类策略具有下列特性:

(1) 每一个刻面都必须充分并明确地描述构件库中全体构件,即每一个构

件都可以用该刻面来分类。

(2) 每一个刻面与一个术语空间相关联。任意两个刻面的术语空间是正交

的,即一个刻面的术语发生变化不会影响到另一个刻面的术语空间。 (3) 一个刻面的术语空间为有限的不定空间,即可以随时间的演进而动态

地增加和删除术语。

(4) 每一个构件的所有刻面必须予以定义,在对构件分类时不允许有未定

义的刻面;但查询时,用户可以利用任意数目的刻面进行查询。 (5) 构件库管理者对构件进行分类时,应该针对每一个刻面,从术语空间

中选择适当的(一个或多个)术语,以完成构件的封装工作。

(6) 在每个术语空间中的术语按一般/特殊关系形成树状的层次结构,每一

个术语附带有不定数目的同义词。

在刻面分类策略中,构件库管理者通过将构件与对应的术语相联结,可以在

- 10 -

江西师范大学硕士学位论文 青鸟可复用构件库的设计与实现

构件间建立复杂的联系。与一般的层次分类策略相比,刻面分类策略更易于修改,更富有弹性,因为对一个刻面的修改不会影响到其它的刻面。同时,每个刻面对应一个结构化的术语空间,避免了一般的关键词分类策略的杂乱无章,使得对关键词的管理更为方便和有序。

3.2.2刻面分类及术语空间

一、刻面分类模式

青鸟构件库系统主要采用刻面分类模式。每个刻面关联一个合法术语的结构化集合—术语空间,在构件的分类和查询中用到的术语均来自于这些术语空间。术语空间的结构反映了术语间的语义关系,可以看做是一种语义网,其结构相对稳定。而每个构件从外部来看,都是一组刻面术语的集合。

构件库中的每个构件都具有一组属性,这些属性有的是由构件的提供者提供的,有的是构件库根据构件的使用情况加入的。从表面上看,属性与刻面非常相似,属性值就相当于刻面的术语。但实际上二者之间存在一定的区别,主要表述如下:

(1) 刻面是构件属性的一个子集。属性绝大部分是由构件的提供者提供的,

而刻面则完全由构件库的管理者规定,构件的提供者完全不需要了解它们。 (2) 刻面是构件的复用者在查询构件时最感兴趣的构件属性。在查询时复用

者通过选择刻面的术语,可以明确地限定构件的范畴,不会有遗漏的构件。

依据属性与刻面的区别,经过反复筛选,我们选定了以下五个构件属性作为青鸟构件库的刻面。这五个属性彼此间完全独立并且相互正交,比较充分地体现了构件与复用相关的一些特性,而且也能够适应青鸟构件库今后的发展。

(1)使用环境(Application Environment)

构件的使用环境是使用(包括理解/组装/修改)该构件时必须提供的硬件和软件平台。如所需的特定的硬件环境、操作系统、数据库平台、网络环境和编译系统等。构件库中任何构件都必须依赖于一定的使用环境才能得到复用,即使是源代码级的某些通用构件,也必须依赖于特定的编译系统。

(2)应用领域(Application Domain)

构件的应用领域是指该构件原来的或可能被使用到的应用领域(及其子领域)。这里的领域,指共享某种功能性(functionality)的系统或应用程序的集合。构件库中任何构件都有一个适用的领域。 (3)功能(Functionality)

构件的功能是该构件在原有或可能的软件系统中所提供的软件功能集。构件库中任何构件都必须提供一种或多种功能。 (4)层次(Level of Abstraction)

构件的层次是构件相对于软件开发过程不同阶段的抽象层次,如分析、设计、编码等。构件库中任何构件都处于软件开发过程中一定的阶段,

- 11 -

江西师范大学硕士学位论文 青鸟可复用构件库的设计与实现

并为该阶段服务。 (5)表示(Representation)

构件的表示是指用来描述构件内容的语言形式或媒体,如源代码构件所用的编程语言等。构件库中任何构件都以一定的形式存在,因而必然有其外在的表现形式。这种表现形式与构件的上下文环境(context)直接相关。

二、刻面的术语空间

构件库的刻面定义好之后,就必须开始为刻面建立相应的术语空间。构件库

的刻面术语是由构件库的管理者制定的。若构件的提供者所提供的术语与构件库原有术语不符,构件库的管理者将负责与构件的提供者协商,力求刻面术语的一致,将该术语作为新术语或作为原有术语的同义词加入构件库。由于缺乏一个公认的术语标准,术语空间的确定成为刻面分类策略的难点,我们只能先自行初步定义青鸟构件库刻面的术语空间,以后再逐步修正。

(1)使用环境(Application Environment)

最初阶段,使用环境的术语由构件库管理者枚举,构件的提供者可以在提供构件时随时提供新的环境术语。典型术语包括操作系统中的“MS DOS”、“MS Windows 3.x”、“MS Windows 95/NT”、“UNIX”等。表3-1是使用环境刻面术语的例子:

硬件(Hardware) 操作系统(OS) 数据库平台(Database) ............ 工作站(Work Station) 微机(PC) ............. DOS WINDOWS 3.X & 95 UNIX ............. FoxPro Informix Oracle ............. ............. 表3-1 使用环境刻面的术语

(2)应用领域(Application Domain)

应用领域的术语最开始也是由构件库管理者枚举,构件的提供者可以在提供构件时随时提供新的应用领域术语,各个领域的专家可以对领域术语进行修正和更新。典型术语包括“MIS”、“CAI”等。

(3)功能(Functionality)

- 12 -

江西师范大学硕士学位论文 青鸟可复用构件库的设计与实现

功能刻面的术语主要是构件提供者所提供的关于构件功能的关键词。为达到术语间的一致,功能术语应力求从较高抽象层次上体现构件的用途。典型术语包括“打开文件”、“读文件”、“写文件”、“关闭文件”等。表3-2是功能刻面术语的例子:

打印(print) 读取(read) ............ 打印表格(print form) 打印文档(print document) ............ 读取文件(read file) 读取数据库(read database) ............ ............ 表3-2 功能刻面的术语

(4)层次(Level of Abstraction)

层次刻面的术语比较简单,因此主要由构件库的管理者枚举。目前层次术语有分析(Analysis)、设计(Design)、编码(Coding)、测试(Testing)等等。

(5)表示(Representation)

表示刻面的术语最初由构件库管理者枚举,构件的提供者可以在提供构件时随时提供新的构件表示术语,典型术语包括“中文” 、“英文” 、“DFD图” 、“OMT类图”等。

3.2.3辅助分类策略

除了以上讨论的刻面分类策略以外,还有关键词、属性、枚举等多种分类

策略。这些策略都各有其优点和缺点,单独使用其中的任何一种分类策略,都不能令构件库的管理和构件库用户的使用达到理想的效果。因此,比较合理的方法是在构件分类时将各种策略结合起来,在用户对构件进行查询时,也提供基于各种分类策略的多种查询手段〖Will 94〗。

青鸟构件库采用了以刻面分类策略为主,多种分类策略相结合的策略。在对构件进行分类时,除了为构件在各个刻面中关联一组术语以外,还要为构件填写属性,关联一组关键词,并在构件之间建立各种关系。相应地,也为青鸟构件库的用户提供多种查询手段。查询时除依据一组术语进行搜索之外,还可以提供一些属性值、一组关键词进行查询,并可以依据构件之间的关系进行导航式查询。

3.3青鸟构件库管理系统功能

作为一个支持复用的软件开发环境,构件的有效管理和查询成为关键问题,其核心是一个构件库。构件库是一个人员、工具和过程的组织,利用它们的行为来促进对软件生命周期产品的复用,以达到降低成本、提高生产率的目标。该构

- 13 -

江西师范大学硕士学位论文 青鸟可复用构件库的设计与实现

件库用于对可复用构件进行描述、管理、存储和检索,以满足基于“构件-构架”复用的软件开发过程的需要。它以构件模型为基础,建立构件库数据模型,并与其它CASE工具相结合,支持构件的生产、描述(使用青鸟构件描述语言JBCDL)、分类、存储、查询和组装。

青鸟构件库管理系统以人机协同方式辅助用户管理各种软件构件,提供如下功能:

? 定义构件库内的构件类型集合、关系类型集合;并针对每种构件类型,定义有效关系类型集合。各种类型均可由用户自行定义,便于用户建立面向专用领域的可复用构件库。

? 管理构件库内各种构件,包括构件的入库与更新,以及定义两个构件之间关系。 ? 维护构件分类刻面及其术语空间。

? 对构件库中的构件进行检索,包括按照刻面、术语、关键词、构件类型、构件之间的关系、构件的提供者等进行检索。

3.4青鸟构件库设计目标与原则

要进行有效的软件复用,必须将已有的可复用软件构件组织成一个系统的构件库。构件库的设计目标如下:

? 支持多用户对构件库的共享操作

由于构件库系统提供了许多不同的工具,如入库工具、刻面维护工具、查询工具、用户管理工具等,且拥有许多不同级别的用户,如普通用户、管理员、高级管理员等,所以处于系统核心的构件库部分必须具有支持多个用户同时进行共享操作的能力。 ? 支持用户在物理上的分布

随着异构的、分布的、网络化计算环境的广泛使用,构件库应该具有网络支持,以支持用户在物理上的分布,能够在异构环境下运行,以充分发挥各种不同机种的优势,使它们互为补充,达到更好的性能价格比。 ? 支持多种数据库格式

目前已有很多成熟的DBMS产品,它们分别拥有自己的用户群,为了在这些产品上运行,构件库应该能够支持多种数据库格式。 ? 较高运行效率

构件库是整个系统的核心部分,是系统在处理时间上的瓶颈所在,虽然为了达到上述功能可能在时间上付出一定的代价,但还是要从整体上保证构件库要具有较好的运行效率。

使用构件库的最大益处在于帮助选择能够用来构成新应用的可复用构件。我们必须遵循以下设计原则,以达到构件库的设计目标:

? 采用Client/Server技术

在构件库系统的各种设计当中,采用Client/Server技术。这是一条被广泛采用的技术路线,符合数据抽象和封装的原则,它使得系统的其他部分(如配套工具的设计与实现)不必关心构件库的具体结构和操作方

- 14 -

江西师范大学硕士学位论文 青鸟可复用构件库的设计与实现

法,便于维护构件库的完整性和一致性,也便于支持对构件库的共享。 ? 对通讯模块进行封装

将所有有关通讯的功能封装在一个模块当中,对构件库进行操作的所有工具通过都通讯模块来完成通讯功能。这样在必要时,只要对通讯模块中所采用的通讯机制进行更换或适当地修改,就可以使构件库满足新的需要,使它具有更好的可移植性,更好的支持它在异构环境下运行。 ? 缩短对构件库访问的响应时间

由于构件覆盖了大到软件子系统、小到数学函数的广阔范围,其尺寸可能超过兆字节。因此为了减少构件内容所占用的数据库空间,应尽可能将构件作为“黑盒”看待,只要求用户填写具有共性的属性;对构件内容尽可能打包和压缩,而不必深入理解其细节。 ? 构件库必须提供安全机制和其它管理控制方面的要求

构件库中的构件是有用的软件资源,构件库用户分为不同级别,如普通用户、管理员及构件制作者、联系人等,不同级别的用户拥有不同的权限,因此必须区别对待,不可一概而论。

- 15 -

江西师范大学硕士学位论文 青鸟可复用构件库的设计与实现

第四章 青鸟构件库模型设计

为了把现实世界中的事物组织为DBMS所支持的数据模型,人们常常首先对现实世界中的事物进行抽象,接着把它描述到信息世界,然后再从信息世界转换到机器世界中。本章首先讨论对可复用构件的抽象 --- 青鸟构件模型;接着,用实体关系模型描述青鸟构件库的概念模型;最后,从概念模型转换到关系数据模型中。

4.1青鸟构件模型简介

构件模型(Component Model)是对构件本质特征及构件间关系的抽象描述。在基于构件、构架复用的软件开发中,构件模型是整个开发的基础和核心,统一的构件标准是成功复用的基本前提。当前,国际上在这方面的研究工作已有许多,典型的工作有3C模型〖Tracz 89〗、OMG的CORBA/OM〖CORBA 95〗、Microsoft的OLE-COM〖OLE2 94〗、REBOOT模型〖Karl 92〗、RESOLVE模型〖Bucc 94〗等等。

青鸟构件模型的目标是充分吸收这些模型的优点,力争与现有模型兼容,在表达能力上成为这些模型能力的超集,从而使青鸟构件模型具有良好的适应能力。青鸟构件模型符合3C 模型、支持多种构件形态、具有一致性和自展性。如图4-1所示,它从形态(Form)、层次(Level)和表示(Presentation)等三个不同的、相互正交的视角来看待构件,每个具体的构件都是形态、层次和表示构成的三维空间中的一个点。

表示构件层次形 态

图4-1 青鸟构件的三维模型

一、构件的形态

构件呈现不同的形态,形态的差异体现在构件的结构组织方式和所依赖的方法学范型上。青鸟构件可分为如下几种形态:

? 类(Class):在面向对象程序中,类是相对独立、接口明确并具有很高内聚性的代码。所以一般都以类作为代码复用的最小单位。

? 类树(Class Tree):一个类树是这样一种构件,其树根是一个抽象类,其他树结点是一些具体子类(也可能是抽象类)。树根抽象类利用纯虚方

- 16 -

江西师范大学硕士学位论文 青鸟可复用构件库的设计与实现

法定义其外部接口,而将其具体实现推迟到派生的子类中。

? 框架(Framework):一个框架由一组协作类组成,阐明了整个设计、类间依赖及成员类的责任分布。这些类通常是抽象类,实现细节放在具体子类中,构成一个抽象设计,不同的子类构成对设计的不同实现。框架作为构件使得用户可以复用设计,用户通过具体子类的嵌入而在框架中加入特殊功能。 ? 设计模式(Design Pattern):设计模式〖Gamm95〗是对经验的显式表示,每个设计模式描述了一个反复出现的问题以及该问题解法的核心内容,它命名、抽象并标识了一个通用设计结构的关键部分,使得它可以用来创建一个可复用的面向对象的设计。设计模式作为可复用构件体现了较高层次的设计思想复用。 ? 构架(Architecture):应用系统体系结构的显式表示。构架〖Garl 94〗具有领域相关性,构件根据构架进行复合而生成可运行的系统。构架是一类特殊的构件,可视为框架用于描述一个应用系统时的极限状态。 上述各类形态构件间具有密切关系,通常,一个构架由若干框架所构成,框架又可包含子框架、类树、抽象类和具体类,类树由抽象类和具体子类构成,类是最基本的构件单元。在这个意义上,构件的形态体现了构件粒度上的差异。一个框架通常含有多个设计模式的采用,每个设计模式都有若干个框架作为它在不同领域的具体实现。 二、构件的层次

可复用构件根据其产生于开发过程的不同阶段而处于不同的抽象层次。青鸟构件模型考虑将构件分为四个层次: ? 分析件:指系统需求规约和功能规约。 ? 设计件:指系统体系结构和设计方案。

? 编码件:由具体程序设计语言编制的源代码构件。 ? 测试件:测试计划和测试案例。 三、构件的表示

不同层次的构件具有不同的表示媒介和手段,如图形、复合文档、正文、伪码、编程语言、目标码等。

青鸟构件模型从上述三方面来刻划构件,更多地关心构件的易理解性、封装性及构件间关系,通过给构件提供明确的对外接口实现服务提供者和其服务请求者的分离,模型更多地关心构件及其使用者间的交互,特别是对构件使用者有意义的部分。

表4-1和表4-2分别反映了构件在这三方面之间的关系。

层次\\形态 测试 编码 设计 分析 类 ? ? 类树 ? ? ? ? 框架 ? ? ? ? 模式 ? 构架 ? ? ? ? 表4-1 构件层次、形态的关系

- 17 -

江西师范大学硕士学位论文 青鸟可复用构件库的设计与实现

层次\\表示 测试 编码 设计 分析 图形 ? 伪码 ? ? 语言 ? ? ? ? 目标码 ? ? ? 表4-2 构件层次、表示的关系

4.2构件库概念模型

4.2.1表示法

概念模型又可称为“概念数据模型”。它将构件模型抽象为某一种信息结构,这种结构并不依赖于具体的计算机系统〖施伯乐 93〗。概念模型涉及的主要定义有:

? 实体(Entity):客观存在并相互区分的事物叫实体。

? 属性(Attribute):实体所具有的某一个特性。一个实体可以由若干属性来刻划。 ? 码(Key):唯一标识实体的属性集称为码。

? 实体型(Entity Type):具有相同属性的实体具有共同的特征和特性。用实体名及其属性名集合来抽象与刻画同类实体,称为实体型。 ? 联系(Relationship):现实世界中事物之间的联系在信息世界中的反映〖萨师煊 83,石树刚 91〗。

表示概念模型最常用的方法是实体—联系图(Entity—Relationship Diagram)。ER图表示的概念模型与具体的DBMS所支持的数据模型相独立,是各种数据模型的共同基础,比数据模型更一般、更接近现实世界。在青鸟构件库的设计中,我们采用ER图来描述其概念模型。

在ER图中,用长方形表示实体型,在框内写上实体名;用椭圆形表示实体的属性,并用无向边把实体与其属性连接起来;用菱形表示实体间的联系,菱形框内写上联系名;用无向边把菱形分别与有关实体连接,在无向边旁标上联系的类型;若实体之间联系也有属性,则把属性与菱形也用无向边连接上。图4-2 描述了本节以上部分给出的概念和记法。

- 18 -

江西师范大学硕士学位论文 青鸟可复用构件库的设计与实现

属 性属 性实体型联 系属 性实体型属 性属 性

图4-2 实体关系模型中的概念和表示法

4.2.2青鸟构件库概念模型

为了有效准确地支持青鸟构件模型对构件的三维描述,同时支持以刻面分类策略为主、多种分类策略相结合的机制,青鸟构件库概念模型必须刻划构件、术语和关键词及其之间的关系。而且为了辅助构件的复用,青鸟构件库概念模型还必须描述构件提供者与联系人和构件用户的有关信息,以及他们与构件之间的联系。

以下是构件库的实体-关系图: 刻 面1构件关系mnmn关 键 词n术 语1m描 述nn构 件1联 系 人nn同 义 词反 馈mm提 取n11提 供 者nnn11n配置信息用户日志 图4-3 构件库实体关系图(ERD)

- 19 -

江西师范大学硕士学位论文 青鸟可复用构件库的设计与实现

一、实体及其属性

青鸟构件库概念模型捕捉的实体包括:构件、刻面、术语、同义词、关键词、提供者、联系人、使用者、配置信息和日志。分别描述如下:

(1)构件(Component)

构件是构件库中最主要的实体。它的属性为:构件标识、名称、发布日期、登记入库日期、价格、尺寸、版本号、形态、构件摘要、构件保存状态、构件具体内容、使用范例、CDL描述、提供构件的单位、构件技术问题的联系人。其中构件标识是构件库为每个构件创建的一个唯一的标识。构件保存状态指明了该构件是否存放于本构件库中。青鸟构件的实体-关系图如图4-4所示:

构件标识发布日期入库日期构件摘要名 称具体内容价 格构 件使用范例尺 寸CDL描述版 本 号提供者联系人形 态

图4-4 构件ERD

(2)刻面(Facet)

构件库需要保存每个刻面的信息。在概念模型中,每个分类刻面作为一个单独的实体,其中保存了该刻面的所有信息以及术语空间的结构。每个刻面实体的属性为:刻面标识、刻面名称、对刻面的描述、刻面的根术语、刻面更新时间。 (3)术语(Term)

构件库中保存了术语的信息。每个术语作为一个单独的实体,其属性为:术语标识、术语名称、对术语的描述、术语所属的刻面、父术语标识。 (4)同义词(Synonym)

构件库中保存了同义词的信息。每个同义词作为一个单独的实体,其属性为:同义词名称、该同义词所属刻面、该同义词的基本术语名称等。 (5)关键词(Keyword)

构件库中保存了关键词的信息。每个关键词作为一个单独的实体,其属性

- 20 -

江西师范大学硕士学位论文 青鸟可复用构件库的设计与实现

为:构件标识、关键词名称。 (6) 提供者(Provider)

构件库中保存了构件提供者的信息。提供者的属性为:提供者标识、姓名、联络方法等。 (7)联系人(Contact)

构件库中保存了构件的联系人的信息。联系人的属性为:该联系人所属的提供者、联系人姓名、联系人联络方法等。 (8)使用者(User)

构件库中保存了构件的使用者的信息。使用者的属性为:使用者标识、姓名、口令、权限、联络方法等。 (9)配置信息(Configuration)

构件库保存了每个用户的有关配置信息。配置信息的属性为:使用此配置的用户、使用此配置的工具、用户的配置类型、用户配置的名称、用户配置的具体内容。配置内容包括用户的环境设置、构件夹和查询条件。 (10)日志(Log)

构件库中保存了用户每次登录进入构件库和脱离构件库的有关信息。日志的属性为:记录此日志的用户、日志的保存时间、日志的详细内容、日志是否重要。

二、实体之间关系及其属性

1. 构件间的关系

实际应用领域中的构件之间通常还存在着各种各样的关系。青鸟构件库概念模型刻划的构件关系,如下图所示:

构件源构件m构件关系n关系类型目标构件

图4-5 构件关系ERD

为了给使用者在查询构件时提供方便,同时也为了更好地复用构件,构件库为构件实体间建立了下列几种关系:

- 21 -

江西师范大学硕士学位论文 青鸟可复用构件库的设计与实现

(1)被实现关系(Refinement)

这是一个一对多的关系。主要是指处于软件生命周期相邻阶段(相邻抽象层次)的构件之间的对应关系。例如,一个分析件可以被一个或多个设计件所实现,一个设计件可以被一个或多个代码件所实现等。 (2)版本关系

这是一个一对多的关系。主要是指处于同一个构件演化系列中的构件之间的关系。给定一个构件,通过版本关系可以找到它的所有版本。 (3)包含关系

这是一个一对多的关系。主要是指不同形态的构件之间的包含关系。例如,一个类树构件包含了一个或多个类构件,一个框架构件也包含了一个或多个类构件。 (4)相关关系

这是一个一对多的关系。与一个构件相关的构件主要是指与该构件具有相同或相似实现技术的构件,或对理解该构件有所帮助的构件。 (5)协作关系

这是一个多对多的关系。与一个构件具有协作关系的构件主要是指与该构件相互合作、共同完成一个特定任务的构件。 (6)继承关系

这是一个一对一的关系。在构件库中,构件之间允许有继承关系,但不鼓励使用复杂的继承层次和多继承。

2.构件与术语空间的关系

刻面与术语之间为一对多关系,术语与同义词为一对多关系,术语与构件为多对多关系。构件库管理者一旦为构件在某个刻面中选定一个术语,就必须在构件与该术语间建立对应关系。这样从一个术语出发可以迅速找到与之相关联的所有构件,从构件出发也同样可以找到描述它的所有术语。构件与术语空间的关系用实体-关系图表示如下:

刻 面1n术 语1mn描 述构 件n同义词

图4-6 术语与构件、刻面、同义词的关系ERD

- 22 -

江西师范大学硕士学位论文 青鸟可复用构件库的设计与实现

3.构件与关键词的关系

构件与关键词之间为多对多关系。每个构件可以由多个关键词进行描述,同时每个关键词也可以对多个构件进行描述。这样从一个关键词出发可以迅速找到由它描述的所有构件,从构件出发也同样可以找到它的所有关键词。构件与关键词之间的关系用实体-关系图表示如下:

构 件1n关键词

图4-7构件与关键词的关系ERD

4.构件与使用者的关系

构件与使用者之间存在两种关系:反馈意见与提取信息。二种均为多对多的关系。一个使用者可以提取多个构件,反之亦然。这样,从一个构件出发可以找到它的所有使用者,从一个使用者出发可以了解到他复用过的所有构件。在使用者与构件的使用关系中还应记录使用的时间及反馈。使用者每次复用构件库中的构件,都必须进行使用登记,记录使用的时间,并且在复用该构件后及时填入使用者的反馈意见和评价。这样可以动态地跟踪构件的使用情况,以便为构件的质量评定和改进提供客观依据。构件与使用者的关系用实体-关系图表示如下:

使用者m提取信息nmn反馈意见构 件

图4-8 使用者与构件的关系ERD

- 23 -

江西师范大学硕士学位论文 青鸟可复用构件库的设计与实现

5.构件与提供者、联系人之间的关系

提供者与联系人、提供者与构件、联系人与构件之间均为一对多的关系。一个提供者中有多个联系人,可以提供多个构件;每个联系人只能属于一个提供者,但可以为多个构件提供技术支持;一个构件只能来自于一个提供者,由一个联系人提供技术支持。这样,从一个提供者出发可以了解到该单位的所有联系人及提供的所有构件;从一个联系人出发可以找到他所属的提供者和所有由他提供技术支持的构件;从一个构件出发则可以找到它的提供者及联系人。构件与构件提供者、联系人之间的关系用实体-关系图表示如下:

构 件n1制作单位1n1n联系人

图4-9 构件与提供者、联系人之间的关系ERD

6.使用者与日志、配置信息的关系

使用者与日志、配置信息之间均为一对多的关系。使用者每次进行重要操作时都必须记下一条日志,一个使用者可以保存多个配置信息。构件与日志、配置信息之间的关系用实体-关系图表示如下:

配置信息n1使 用 者1n日 志

图4-10 使用者与日志、配置信息的关系ERD

4.3构件库数据模型

数据模型又称“结构数据模型”或“基本数据模型”,直接面向数据库中的

- 24 -

江西师范大学硕士学位论文 青鸟可复用构件库的设计与实现

数据逻辑结构。最常用的数据模型有层次模型、网状模型、关系模型和面向对象模型〖施伯乐 93〗。

? 层次数据模型(Hierarchical Model):

层次模型的主要特征是用树型(层次)结构表示实体类型及其实体间联

系。层次模型较难实现多对多联系,数据的插入、删除操作较复杂,由此导致应用程序的编写也较复杂。 ? 网状数据模型(Network Model):

网状模型采用网络结构表示实体类型及实体之间的联系。网状模型中数据联系十分密切,其数据结构在物理上易于实现,效率较高,但是编写应用程序较复杂,程序员必须熟悉数据库的逻辑结构。 ? 关系数据模型(Relational Model)

关系模型采用表格形式结构表示实体类型及实体之间的联系。其数据结构简单,用户易懂,只需用简单的查询语句就可进行数据库操作。与网状、层次模型比较,关系模型的实现较复杂,效率也较低。但是随着硬件的发展,其效率正逐步提高。关系模型是一个成熟的有前途的模型,已得到广泛应用。

? 面向对象数据模型(Object-Oriented Model)

面向对象模型是最近几年才提出的,适用于现实世界中存在的含有复杂数据结构的应用领域,如CAD数据、图形数据等。面向对象模型表达能力丰富,使用方便,但是模型相对复杂,系统需要处理的事情更多,较难实现。目前的面向对象系统大多是实验型的,尚未商品化。

基于对上述模型的比较以及对当前已有产品的成熟程度比较,青鸟构件库选取了关系数据模型来实现青鸟构件库的概念模型。

4.3.1相关概念

关系模型以集合代数为数学基础,以表格为基本数据结构,概念单一、清晰。关系模型中的主要概念如表4-3所示:

关系 (Relation) 属性(Attribution) 码(Key) 主码(Primary Key) 域(Domain) 关系模式 (Relational Scheme) 一个关系对应于一张二维表。以表格形式结构表示实体型及实体间联系。 关系中的一列称为属性,给每列取一个名称即属性名。属性是同质的,属性之间没有顺序性。 关系中的某一组属性。 关系中的某一组属性,主码值唯一地标识一个元组。 属性的取值范围。 对关系的描述称为关系模式,包括关系名、组成该关系的诸属性名、属性向域的映象以及属性间的数据依赖。通常简记为R(A1,A2,…,An)。其中R为关系模式名;A1,A2,…,An为属性名。 表4-3 关系模型的主要概念

- 25 -

江西师范大学硕士学位论文 青鸟可复用构件库的设计与实现

4.3.2青鸟构件库关系模型

青鸟构件库关系模型中的关系模式是实际存储数据的逻辑表示。青鸟构件库关系模型中包含以下14个关系模式:

关系模式 Component Keyword Relation Retrieval Feedback Facet Term Synonym CompTerm Config Log Contact Provider UserInfo 描述的实体 构件 关键词 构件关系 构件的提取信息 构件的反馈信息 分类刻面 术语 同义词 构件与术语的关系 用户配置 日志 构件技术问题联系人 构件提供者 构件库用户 表4-4 青鸟构件库关系模式

? 关系模式Component

构件是构件库模型中最主要的实体,用于存储构件的各种基本信息。以图4-4 所描述的构件ER图为基础,通过转换可以得到相应的构件关系模式,详细属性如表4-5所示:

属 性 ID Name ReleaseDate AcceptDate Cost Size Version Form Abstract InLibrary Content Sample CDL Provider Contact 类 型 INT CHAR DATE DATE MONEY INT CHAR CHAR BLOCK BOOLEAN BLOCK BLOCK BLOCK INT INT 说 明 构件的唯一标识,主码 构件名 构件的发布日期 构件的登记入库日期 提取构件的费用 构件的大小,单位KB 构件的版本号,形式为nnn.nnn.nnn 构件的形态 构件的摘要 构件是否在此构件库中 构件的具体内容 构件的使用范例 构件的CDL描述 提供构件的单位 构件技术问题的联系人 表4-5 Component 关系模式

- 26 -

江西师范大学硕士学位论文 青鸟可复用构件库的设计与实现

Component关系模式中存在如下约束:以构件标识ID为主码;构件提供者与构件联系人均为外码,其取值范围受到关系模式Provider和Contact的限定。

? 关系模式Keyword

关系模式Keyword描述概念模型中的“关键词”实体。关系模式中的构

件标识为外码,受到关系模式Component中构件标识的限定;要求描述构件的关键词非空,而且一个关键词不能多次描述同一个构件。

? 关系模式Relation

关系模式Relation描述概念模型中的“构件关系”。其中的源构件和目

标构件均为外码,受到关系模式Component中构件标识的限定;两个构件之间不能重复出现同一种关系。

? 关系模式Retrieval及关系模式Feedback

关系模式Retrieval 描述概念模型中的用户与构件之间的提取关系,

关系模式Feedback则描述用户对构件提出的反馈信息。这两种关系模式在关系约束方面相似:其中的构件标识为外码,受到关系模式Component中构件标识的限定;用户标识也是外码,受到关系模式User中用户标识的限定。

? 关系模式Facet

关系模式Facet描述概念模型中的“刻面”实体。其主码为刻面标识,

要求刻面名称非空;关系模式中的刻面根术语为外码,受到关系模式Term的限定,要求根术语必须已存在于本刻面的术语空间。

? 关系模式Term

关系模式Term描述概念模型中的“术语”实体。其主码由刻面标识和

术语标识共同组成,要求术语名称非空;关系模式中的刻面标识为外码,受到关系模式Facet中刻面标识的限定;父术语标识也是外码,受到本关系模式的限定,要求父术语是本刻面中已存在的术语。

? 关系模式Synonym

关系模式Synonym描述概念模型中的“同义词”实体,要求同义词名称

非空;关系模式中的刻面标识为外码,受到关系模式Facet中刻面标识的限定;基本术语也是外码,受到关系模式Term的限定,要求基本术语必须是本刻面中已存在的术语。

? 关系模式CompTerm

关系模式CompTerm描述概念模型中的术语对构件的描述关系。其中的

三个属性均为外码,构件标识、刻面标识和术语标识分别受限于关系模式Component、关系模式Facet和关系模式Term;要求一个术语不能多次描述同一个构件。

- 27 -

江西师范大学硕士学位论文 青鸟可复用构件库的设计与实现

? 关系模式UserInfo

关系模式UserInfo描述概念模型中的“用户”实体。其主码为用户标

识;要求用户登录名唯一、用户全名非空。

? 关系模式Config

关系模式Config描述概念模型中的“配置信息”实体。其主码由用户

标识、工具类型、配置类型和配置名称共同组成,要求一个用户在同一个工具中的各个配置不能同名;其中用户标识为外码,受限于关系模式UserInfo。

? 关系模式Log

关系模式Log描述概念模型中的“日志”实体。其中的用户标识为外码,

受到关系模式UserInfo的限定。

? 关系模式Provider

关系模式Provider描述概念模型中的“构件提供者”实体。其主码为

提供者标识;要求提供者名称非空。

? 关系模式Contact

关系模式Contact描述概念模型中的“构件联系人”实体。其主码由提

供者标识和联系人标识共同组成,要求联系人名称非空。关系模式中的提供者标识为外码,受到关系模式Provider的限定。

- 28 -

江西师范大学硕士学位论文 青鸟可复用构件库的设计与实现

第五章 青鸟构件库工具集接口设计

青鸟构件库管理系统由青鸟构件库和构件库管理工具集组成。本章首先介绍构件库管理工具集;接着,由此导出管理工具集与构件库之间的工具接口设计目标;然后给出为了达到这些设计目标而设计的组成结构;最后讨论工具集接口的详细设计。

5.1青鸟构件库管理工具集

当构件库的规模很大时(例如构件数目上千时),如果没有自动工具的支持,不仅复用者查询构件时会不得要领、失去信心,而且构件库管理者在构件入库、对构件库进行管理和维护时也会力不从心。因此必须有一系列的工具来辅助构件库管理者与使用者完成各自的任务,以充分发挥构件库的作用。通常,构件入库时要进行分类,用户要在库中寻找适用的构件,管理者要维护构件库的结构。为此,青鸟构件库应提供分类、查询、维护三套工具。

5.1.1构件分类与入库工具

一个实用的构件库通常包含数量众多的构件,各构件之间既相对独立、又可能存在各种各样的复杂关系。合理地组织构件库的关键在于如何对构件进行正确地分类,并真实地反映构件之间的关系。

构件入库与分类工具完成以下功能:

? 登记构件基本属性,产生构件的标识;

? 按照刻面进行分类; ? 建立构件之间的关系; ? 将构件存入构件库中;

? 保存和恢复分类过程的中间工作状态; ? 浏览和查询构件;

? 权限管理:应提供检查用户身份的手段,使得只有构件库管理员才能够使用本工具。

5.1.2查询工具

查询工具主要有两个功能:查询和浏览。其目的是为了方便、快速、准确地定位符合用户要求的构件,提高检索的查全率和查准率。在查询时,用户可以在各个刻面中选择术语或输入一组属性值和一组关键词作为查询的条件,查询返回的结果是一组构件的列表。在浏览时,用户可以在刻面中选择术语,浏览关联到该术语的构件列表,并以这组构件作为进一步查询的基础。在构件的列表中,可以显示与构件有某种关系的构件列表。在使用查询工具的过程中,用户可以在

- 29 -

江西师范大学硕士学位论文 青鸟可复用构件库的设计与实现

查询与浏览之间自由地切换,并以历史树机制记录切换过程,从而减轻了节省了切换时间,并减轻了用户的记忆负担。

查询工具划分为五个相对独立的子系统,即条件查询子系统、构件浏览子系统、关系浏览子系统、构件信息子系统和构件提取子系统。

? 条件查询子系统支持刻面、属性、关键词的组合精化查询,查询过程可回溯;

? 构件浏览子系统可按照刻面术语的层次关系浏览与术语关联的构件; ? 关系浏览子系统支持从一个构件出发,按构件关系发散式地浏览相关构件; ? 构件信息子系统可随时查看任何出现的构件的详细信息,包括描述构件的术语、构件属性、构件的关键词、构件的CDL(构件描述语言)、使用样例(Sample)及摘要信息(Abstract); ? 构件提取子系统负责构件的提取。

5.1.3构件库管理及维护工具集

构件库管理及维护工具集包括术语空间维护工具、用户反馈意见管理工具、构件库信息统计工具和用户管理工具。

一、术语空间维护工具

术语空间维护工具的使用者为构件库的管理员,不允许多个用户同时使用。其功能需求如下:

? 定义术语及空间结构;

? 在刻面中定义新术语,并建立与已有术语的一般—特殊关系; ? 在刻面中定义术语的同义词; ? 修改术语及同义词;

? 修改术语之间的一般—特殊关系及同义词关系; ? 删除术语及同义词;

? 浏览术语空间,以便于术语的定义、修改等操作; ? 增加新术语时,检测受影响的已有构件;

? 当在术语空间中增加新术语时,已有构件的相应刻面中的术语可能需要修改,这时应提示用户进行检查和修改。

二、用户反馈意见管理工具

用户反馈意见管理工具的使用者为构件库的管理员,不允许多个用户同时使用。其功能需求如下:

? 用户反馈意见的收集、整理;

其中既包括用户对构件库中构件的提取、使用情况的反馈,也包括用户对构件库查询、管理机制的意见和建议。

- 30 -

江西师范大学硕士学位论文 青鸟可复用构件库的设计与实现

? 构件库使用情况的汇总。

三、构件库信息统计工具

构件库信息统计工具的使用者为构件库的管理员,不允许多个用户同时使用。其功能需求为构件库中构件信息的分析、统计,主要统计信息有构件库中构件的数量、使用人次、使用频率、用户反馈意见、评价较高的构件、收费情况、构件的增长情况等。

四、用户管理工具

由于构件库用户分为不同级别,如普通用户、管理员及构件提供者、联系人等,不同级别的用户拥有不同的权限,因此必须区别对待、不可一概而论。这就要求有专门的工具对用户进行管理。只有构件库管理员才能够使用本工具,其功能需求如下:

? 用户帐户及权限的设置;

? 用户信息的增、删、改、查;

? 权限管理:提供检查用户身份的手段。

5.2工具集接口设计目标

分类与入库工具、查询工具和构件库管理维护工具都必须通过构件库工具集接口对构件库进行访问,才能完成各自的任务。构件库工具集接口CLTSI(Component Library ToolSet Interface)是访问构件库的唯一途径,其设计应遵循如下目标:

? 对工具集屏蔽网络平台的细节

构件库管理工具集可在异构的、分布的、网络化计算环境的广泛使用。为了支持工具的可移植性,工具集接口应屏蔽网络和平台的细节。 ? 对工具集屏蔽DBMS的细节

为了适应各种系统的不同要求,构件库应该能够支持多种数据库格式。为使构件库管理工具集可操作于多数据库、多数据源,工具集接口应屏蔽DBMS的细节。 ? 支持新工具的集成

随着构件库的广泛应用,新的需求必然会导致新工具的出现。工具集接口应具有可扩展性,支持新工具的集成。 ? 提供专用的数据库访问命令DAC

构件库与普通的数据库有着很大的不同,为了提高构件库的性能,工具集接口应设计专门的数据存取命令(Data Access Command),提供给各工具使用。

- 31 -

江西师范大学硕士学位论文 青鸟可复用构件库的设计与实现

5.3工具集接口组成结构

为了达到上述工具集接口设计目标,青鸟构件库工具集接口由两部分组成:通讯模块和数据库服务员,具体结构如图5-1所示。

1)通讯模块:负责解释网络协议,接收专用的数据存取命令DAC,并返回结果。

2)数据库服务员由命令解释器、用户管理部分、数据库管理部分和多数据库机制组成:

? 命令解释器负责解释专用的数据存取命令DAC,调用其它部分完成指定功能,并返回结果。

? 用户管理部分负责管理有关用户信息的各种操作。 ? 数据库管理部分负责管理有关核心数据库的各种操作。

? 多数据库机制将通用的数据库访问转换为某种特定的DBMS格式。

对 外 接 口通讯模块DAC命令解释器用户管理部分数据库管理部分多数据库机制数据库服务员. . . . .DBMSDBMS 图5-1 工具集接口的组成结构

5.4工具集接口详细设计

在开发CLTSI过程中设计了专用的数据存取命令DAC,用DAC来完成对构件库的各种操作、支持工具集对构件库访问需求。工具集通过调用工具集接口CLTSI所提供的DAC语言,完成对构件库的各种操作。

5.4.1 DAC详细设计

DAC(Data Access Command)命令用于构件库各种信息进行访问、管理,包

- 32 -

江西师范大学硕士学位论文 青鸟可复用构件库的设计与实现

括用户管理命令、构件提供者与联系人管理命令、日志管理命令、构件描述信息操作命令、刻面及术语空间管理命令、构件操作命令、构件关系管理命令和配置管理命令。 DAC命令的设计,在分析构件库特点的基础上,首先保证它能够满足所有对构件库信息的访问请求;同时又要在通用数据操纵语言的基础上,进行最大限度的简化与优化,以获得最佳的运行效率。

DAC命令由命令名、参数和返回结果三部分组成。

DAC命令的参数分为两大类,一类用于从工具向构件库传输信息,称为输入参数;另一类用于构件库向工具返回信息,称为输出参数。

DAC的返回结果用来向工具返回命令执行情况。由于对构件库操作不可能每次都成功,而失败的原因可能是网络传输失败导致的数据库错误,也可能是用户的命令违反了数据一致性、数据完整性等标准。为了让用户了解一个失败操作的具体原因,将失败操作分为“数据库错误”和各种无效操作,如“删除已被引用的术语”等。在执行失败时DAC命令返回相应的错误类型,命令执行成功时则返回成功信息。由于所有命令的返回结果性质相同,以下对DAC命令的介绍中不再描述返回结果,而是只讨论命令名、参数。 一、用户管理命令

用户管理命令包括登记、注销和修改用户口令三条命令,其格式如表5-1所示:

命令 Login Logout ChangePasswd 输入参数 输入参数 用户名 用户口令 用户标识 工具标识 用户名 用户旧口令 输入参数 输出参数 工具标识 登录是否成功 用户新口令 更改口令是否成功 表5-1 用户管理命令

Login命令用于验证用户名与用户口令是否有效,判断用户是否有权使用该

工具;如果用户登录成功,向数据库加入一条用户登录的新日志。 Logout命令退出使用工具,计算用户的联机时间。

ChangePasswd命令更改用户口令;如果成功则在表Log中插入一条日志。 二、构件提供者与联系人管理命令

构件提供者与联系人管理命令负责对构件提供者和联系人的查询操作。具体格式如表5-7所示:

命令 SelectAllProviders SelectAllContactors 输入参数 构件提供者标识 输出参数 构件提供者列表 构件技术问题联系人列表 表5-2 构件提供者与联系人管理命令

SelectAllProvider 查询所有构件提供者。

SelectAllContactors 查询与某一个构件提供者有关的所有技术问题联系人。 三、日志管理命令

日志管理命令查询所有新日志。具体格式如表5-8所示:

- 33 -

江西师范大学硕士学位论文 青鸟可复用构件库的设计与实现

命令 SelectAllNewLogs 输入参数 用户上次取日志的时间 表5-3 日志管理命令

输出参数 日志列表 四、刻面及其术语空间管理命令

刻面及术语空间的管理命令负责对术语、同义词进行增加、删除、修改及各种查询。具体格式如表5-3所示:

命令 输入参数 输入参数 输入参数 输入参数 输出参数 SelectFacetRoot 刻面标识 根术语信息 UpdateTermName 刻面标识 术语标识 新术语名称 UpdateTermDescr 刻面标识 术语标识 新术语描述 DeleteTerm 刻面标识 术语标识 InsertChildTerm 刻面标识 父术语标识 术语名 SelectChildTerm 刻面标识 父术语标识 术语列表 IsAncestorOf 术语名称 术语名称 二术语之间的关系 SelectAncestor 刻面标识 术语名称 祖先术语列表 InsertSynonym 刻面标识 基本术语标识 同义词名 UpdateSynonym 刻面标识 基本术语标识 旧同义词 新同义词 DeleteSynonym 刻面标识 基本术语标识 同义词 SelectTermSyn 刻面标识 基本术语标识 同义词列表 IsOutDated 刻面标识 刻面是否已被更新 表5-4 刻面及其术语空间管理命令

SelectFacetRoot 命令查询刻面的根术语。

UpdateTermName 命令与UpdateTermDescript 命令分别用于修改术语名称和术语描述;

DeleteTerm 命令负责删除一个术语。

InsertChildTerm 命令给某术语加入一个子术语。

SelectChildTerm 命令在刻面中查询某术语的所有子术语。

IsAncestorOf 命令判断两个术语之间是否具有祖先--后代关系。

SelectAncestor 命令判断术语空间中是否有某个术语,并查询该术语的所有祖先。

InsertSynonym 命令、UpdateSynonym 命令、DeleteSynonym 命令分别为一个术语增加、更新或删除一个同义词。

SelectTermSynonym 命令用来在刻面中查询某术语的所有同义词。

IsOutDated 命令判断在用户使用构件库的同时,各刻面的术语空间是否已被其他所更新。

- 34 -

本文来源:https://www.bwwdw.com/article/0xt7.html

Top