版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、青鸟可复用构件库的设计与实现摘要目前,软件系统的规模日趋庞大,软件及其开发过程越来越复杂,“软件危机”仍是尚未解决的问题。随着软件复用被视为解决“软件危机”问题的有效途径之一,基于构件的软件开发方法以其对软件复用的有效支持,而被越来越多的开发组织所采用。基于构件的软件开发大致涉及构件的获取、构件存储管理和构件组装等几个过程。构件的存储和管理是构件开发及基于构件复用的开发的重要中间环节。其重点是研究构件的分类检索策略、构件的数据模型、构件库建立及管理等方面。本文工作以国家“九五”重点科技攻关专题“基于构件/构架模式的应用软件集成环境 - JBIII系统”为背景。青鸟III型系统的核心子系统是青鸟
2、构件库管理系统,由可复用构件库和构件库管理工具集组成。本文着重于青鸟构件库管理系统的核心部件 - 青鸟可复用构件库的设计和实现。青鸟可复用构件库支持符合青鸟构件模型的构件的分类、存储、检索和管理;采用以刻面分类模式为主、多种分类模式相结合的机制对构件进行分类检索。本文以青鸟构件模型为基础、从刻面分类为主的多种分类检索机制的需求出发,建立了构件库概念模型,然后把概念模型转换为关系数据模型,并在实现过程中对关系模型进行优化,以提高构件库的性能。为了对外屏蔽网络平台和DBMS细节,青鸟可复用构件库为构件库管理工具集(包括构件分类工具、查询工具以及库管理和维护工具)提供一整套工具集接口CLTSI,并支
3、持新工具的集成。针对访问可复用构件库信息的特点,设计了专门的数据存取命令DAC,通过DAC来实现工具集接口CLTSI,在保证系统功能和总体结构不变的前提下,减小了检索和获取可复用构件的代价,提高了系统的性能与效率。关键字软件复用,构件,构件模型,构件库,数据库The Design and Implement of JB Reusable Component LibraryAbstractAt present, with the scale of software system becoming larger and software and its development process be
4、coming 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
5、), 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
6、. 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 I
7、ntegration 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 compo
8、nent 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 supporte
9、d 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 impleme
10、ntation 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. Th
11、e 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.Keywordsoftware reuse,component,component
12、 model,component library,database目 录第一章 引言11.1软件复用11.2现状及其问题21.3相关工作及解决途径31.4相关术语定义41.5论文的组织5第二章 基于构件的软件开发62.1可复用构件62.2基于构件的软件开发62.3构件库对CBSD的支持72.4基于构件-构架模式的软件复用支持系统8第三章 青鸟构件库管理系统103.1青鸟构件库管理系统体系结构103.2青鸟构件分类检索机制11分类模式11刻面分类及术语空间12辅助分类策略143.3青鸟构件库管理系统功能143.4青鸟构件库设计目标与原则15第四章 青鸟构件库模型设计174.1青鸟构件模型简介17
13、4.2构件库概念模型19表示法19青鸟构件库概念模型204.3构件库数据模型25相关概念26青鸟构件库关系模型27第五章 青鸟构件库工具集接口设计305.1青鸟构件库管理工具集30构件分类与入库工具30查询工具30构件库管理及维护工具集315.2工具集接口设计目标325.3工具集接口组成结构335.4工具集接口详细设计33详细设计33事务处理37第六章 具体实现386.1关系模型的优化38对术语进行编码38建立索引和视图396.2核心数据库的建立与管理40核心数据库的建立40核心数据库的恢复416.3工具集接口的具体实现41第七章 结束语43参考文献44图 目 录图1-1 理想的工厂化软件生产
14、方式1图1-2 青鸟软件生产线2图2-1 构件库对基于构件的软件开发的支持7图2-2 青鸟III型系统8图3-1 青鸟构件库管理系统的体系结构10图4-1 青鸟构件的三维模型17图4-2 实体关系模型中的概念和表示法20图4-3 数据库实体关系图(ERD)20图4-4 构件ER图21图4-5 构件关系ER图22图4-6 术语与构件、刻面、同义词的关系23图4-7构件与关键词的关系24图4-8 使用者与构件的关系24图4-9 构件与提供者、联系人之间的关系25图4-10 使用者与日志、配置信息的关系25图5-1 工具集接口的组成结构33图6-1 术语空间及术语编码示意图39图6-2 核心数据库的
15、恢复41表 目 录表1-1 相关术语定义5表3-1 使用环境刻面的术语13表3-2 功能刻面的术语14表4-1 构件层次、形态的关系18表4-2 构件层次、表示的关系19表4-3 关系模型的主要概念26表4-4 青鸟构件库关系模式27表4-5 Component 关系模式27表5-1 用户管理命令34表5-2 构件提供者与联系人管理命令34表5-3 日志管理命令35表5-4 刻面及其术语空间管理命令35表5-5 构件操作命令36表5-6 构件描述信息操作命令36表5-7 构件关系管理命令37表5-8 配置管理命令37表6-1 青鸟构件库索引列表40表6-2 青鸟构件库视图列表40表6-3 有关
16、合法性检查的内部命令列表42第一章 引言1.1软件复用自从1968年NATO软件工程会议以来,软件工程的发展已有三十年历史。其间,众多的科研人员和工程技术人员付出了艰辛的努力,取得了丰硕成果。软件工程思想和技术的普及,使软件生产率稳步上升,软件质量得到很大改善。但是随着软件系统的规模和复杂性日益增加,软件工程研究还是远远不能满足软件产业发展的需求,离彻底解决“软件危机”还有相当大的距离 Boeh 87, Cox 90。近十年来,人们开始认识到,要真正实现软件的工业化生产方式,达到软件产业发展所需要的软件生产率和质量,软件复用是一条现实可行的途径Mili 95。对软件复用技术的研究已成为软件工程
17、学科的主攻方向之一。被视为解决软件危机的现实可行的途径。软件复用的概念是由McIlroy在1968年的NATO软件工程会议上正式提出的,此后三十年中,软件复用在技术研究上已取得了较大进展,同时也对软件产业产生了深刻的影响。软件复用将造成软件产业的合理分工,专业化的构件生产将成为独立的产业而存在,而软件系统的开发将通过集成组装现有构件的方式来完成。这种产业分工将促使软件产业真正走上工程化、工业化的发展轨道杨芙清 97。而软件产业的组织结构也将随之发生变革Shaw 84,Cox 90,Basili 91,一般来说,需要在传统项目组织结构之外,增加一个专门负责构件开发、管理和维护的部门。Caldie
18、ri和Basil提出了一种理想的工厂化的软件生产方式Cald 91,如图1-1所示:图1-1 理想的工厂化软件生产方式青鸟工程提出的软件生产线思想杨芙清 96b集中体现了软件复用的本质及软件工业化生产的模式。图1-2给出了青鸟软件生产线图示。青鸟工程一直是国家重点支持的科技攻关课题,已有十余年的发展历程。“七五”、“八五”期间,青鸟工程面向我国软件产业基础建设的需求,以实用的软件工程技术为依托,研究开发具有自主版权的软件工程环境,为软件产业提供基础设施软件工具、平台和环境,建立工业化生产的基本手段,促进我国软件开发由手工作坊式转向用计算机辅助开发,以提高软件开发效率,改善软件产品质量。大型软件
19、开发环境青鸟系统杨芙清 95b便是这一阶段攻关工作的成果。图1-2 青鸟软件生产线 “九五”期间,青鸟工程的任务是在前期攻关工作的基础上,为形成我国软件产业规模提供技术支持。重点是研究青鸟软件生产线,为软件开发提供整体解决方案,推行软件工业化生产模式,促进软件产业规模的形成。青鸟工程“九五”目标分两期实施,第一期目标是初步实现青鸟软件生产线系统,用以装备软件企业,支持软件构件的生产和应用系统集成,并推出示范工程。第二期目标是针对软件产业规模经济的需求,根据软件产业由于构件技术的日趋成熟而出现的产业重组分工趋势(即分成专门的软件构件生产业和应用系统集成业),为其提供相应的技术支撑和装备,适应并推
20、进产业分工和形成规模,使我国软件产业真正走上工程化、工业化的道路。1.2现状及其问题软件复用概念出现以来的三十年中,已有了许多成功的复用实践,如针对FORTRAN,COBOL,Visual Basic等语言的复用Gris 95。软件复用作为现实可行的克服软件危机,实现软件工业化生产方式的技术途径在近几年来受到普遍关注,成果斐然,然而离成功的复用仍有较大距离,原因有多方面。从组织机构与管理角度看,现有的组织管理模式已成为推行复用技术的障碍。首先应改革现有的由一个项目组从头至尾完成整个系统开发的方式,应该涌现出大量的构件厂商生产大量可复用构件,使项目组和构件厂商间构成消费者生产者的关系,生产者只负
21、责开发各类可复用构件,项目组只消费构件Basi 92,Basi 94。从思想观念角度看,存在一种“Not Invented Here”(不是自己发明的)综合症。软件工程师喜欢创造性的劳动,不愿意复用也往往并不信任别人开发的软件。应当改变这种传统观念,转而遵循Fred Brooks所提出的“用购买代替建造”(buy, dont build)的思想Broo 87。从工程学角度看,软件工程学科的发展尚处于不成熟期,缺少对软件开发和软件复用的合适训练,缺少有效方法学支持等。从技术角度看,软件复用主要涉及构件的获取、构件存储管理和构件组装等方面,这几个环节在软件复用过程中都处于非常重要的地位,而且都与构
22、件密切关联。无论是从可复用构件的开发角度、还是从基于构件的复用角度来看,可复用构件的数量、种类和质量都是成功地进行软件复用的关键所在。这就对可复用构件的分类、存储、管理、检索以及相应的工具支持提出了需求。必须有一个合理而高效的可复用构件库管理系统提供强有力的支持,才能使成功的软件复用成为现实。成功的软件复用需要在组织机构与管理、思想观念、工程学和技术等方面的协同支持。本文主要从软件复用的技术角度展开讨论,尤其着重于对可复用构件分类、存储、管理和检索的支持。1.3相关工作及解决途径早期的软件复用主要注重于代码复用Free 87,Krue 92及其支持,如FORTRAN,COBOL,C语言将常用的
23、函数保存在函数库中。面向对象语言由于其新的特性,如封装、继承、多态等,能更好地支持复用,而面向对象语言的开发环境也对代码复用提供了有效的支持,主要是提供了强大的类库,如Microsoft Visual C+ 4.0Micr 94的类库,程序员可以直接使用类库中的类或从中派生自己的类。随着软件复用的发展,复用的对象从早期的代码复用扩展到对软件开发过程中一切有价值的信息的复用,出现了多种可复用构件,如分析件、设计件、测试件以及程序文档。而可复用构件在数量上也日趋增大。为了更好地支持多形式、大数量构件的复用,必须有一个支持构件复用的环境。当前软件界对可复用构件库及其相关问题进行了深入研究,并提出了不
24、少的复用标准及环境。RIGRIG 94和NATONATO提出了一系列标准;ALOAFSTARS 92对构件模型进行了大量的研究。复用库可互操作性组织RIG(Reuse library Interoperability Group)为软件复用库间共享软件构件,考察了软件库之间的可互操作性问题,并开发了一个数据模型UDM(Uniform Data Model for Reuse Libraries),其中定义了在支持可互操作性的库之间交换软件构件所需要的信息。它提供了一个标准的数据模型,各个库可以将它作为自己的数据模型的中间表示,用来和其它库交换使用符合各自数据模型的数据。NATO(North A
25、tlantic Treaty Organization)提出了一组标准,包括可复用软件构件开发指南、可复用软件构件库管理指南和软件复用过程指南三个文档,分别针对于软件生命周期的不同阶段NATO。其中可复用软件构件库管理指南讨论了有关构件库建立与管理的问题。构件库管理的关键在于分类,NATO采用刻面对构件库进行分类。NATO刻面分类模式中的刻面不必彼此独立,也不必适用于所有的构件。一组典型的刻面可能包括:对象、功能、算法、类型、语言和环境。在对一个构件进行分类时,不一定所有的刻面都出现。刻面术语具有同义词关系,一组同义词表达同一个概念,术语空间由这些术语构成,术语之间没有一般/特殊关系(即术语空
26、间是非结构化的)。美国军方发起的STARS(Software Technology for Adaptable, Reliable Systems)项目考虑了在构件库之间共享资源和实现无缝互操作的问题,于92年提出了开放体系结构的构件框架ALOAF( Asset Library Open Architecture Framework )。该文档包括构件库框架的参考模型(ALF-RM)、互交换构件的所需的数据模型和约定格式的规约以及一个在ALF-RM上支持构件互交换和构件描述的框架服务规约。ALOAF强调数据建模的作用,考虑元模型层、模型层和数据层三个层次,认为统一的数据元模型是互操作和数据共享
27、的基础。在理论研究的同时,已有不少的构件库系统在软件产业界得到了实际应用。最为典型的有REBOOTJean 93系统。REBOOT(Reuse Based on Object Oriented Techniques)是一个包括储存可复用构件的数据库和一组产生、认证、插入、提取、评价和适配可复用构件的工具的环境Lars 93。其中在对构件进行分类时采用了刻面的分类策略,这一分类策略主要针对面向对象的构件。美国国防部也推出了若干构件库,如:美国空军电子系统中心(ESC)的CARDSCARDS 96、STARS项目的ASSET(Asset Source for Software Engineerin
28、g Technology) STARS 92和DISA(Defense Information Services Agency)的SRP(Software Reuse Program)。青鸟可复用构件库是青鸟基于构件-构架模式的软件复用支持系统的核心,其建模过程中研究分析了国外软件复用的最新成果、尽量遵循国际主流,并且具有自己的特色。青鸟构件库对宽谱系粒度的构件提供支持,有足够能力存储、处理多层次多粒度的各种构件;提供以刻面分类策略为主、多种分类策略相结合的分类检索机制,采用正交的五个刻面对构件进行刻划,刻面彼此独立且适用于所有的构件,在对一个构件进行分类时,所有的刻面都必须关联相应术语;而且
29、青鸟构件库还率先提出了以树型层次结构组织术语空间的策略。1.4相关术语定义为了讨论和叙述的方便,下面给出在本文中经常用到的一些关键术语的简要定义:复用(Reuse)在一个新的语境(context)中(同一系统的其它地方或另一个系统中)使用已有的为复用目的而开发的软件构件。构件(Component)软件系统中一切可以被明确标识的有机构成成分(软件实体);它可以是需求分析、设计、代码、测试数据或软件开发过程的其它产品。可复用构件(Reusable Component)具有可复用价值的软件构件。构件模型(Component Model)构件的本质特征以及构件间关系的抽象描述。可复用构件库(Compo
30、nent Library)可复用软件构件的集合,包括向用户提供构件时所需的过程和功能。基于构件的软件开发Component-Based Software Development通过组装现有软件构件的方式来建造大型软件系统的软件开发方法。刻面(Facet)一个单词或短语的固定集合,用于描述构件的某个方面或视角术语空间(Term Space)术语的结构化集合, 术语空间的结构反映了术语间的语义关系。刻面分类策略(Faceted Classification Scheme)一个刻面分类模式由一组描述构件特征的刻面所组成,每个刻面从不同的侧面对库中构件进行分类。数据模型(Data Model)数据模型
31、是数据库系统中用于提供详细表示和操作手段的形式构架,通常由数据结构、数据操作和完整性约束三部分组成。概念模型(Conceptal Model)从现实世界的客观事务中抽象出来的一种不依赖于具体计算机系统的信息结构。关系模型(Relational Model)以关系表示实体及实体之间联系的一种数据模型。领域(Domain)指一类相关的软件应用。一般来说,构件在某个特定的领域内复用潜力最大。表1-1 相关术语定义1.5论文的组织本文涉及了青鸟可复用构件库的组织存储及检索等方面的研究。第二章主要讨论了基于构件的软件开发及构件库对基于构件的软件开发的支持,并且介绍了“基于构件/构架模式的软件开发支持系统
32、”- 青鸟III型,由此给出本文研究的工作背景。第三章介绍了青鸟III型的核心 - 青鸟构件库管理系统的体系结构、分类检索机制及应具有的功能,并由此导出青鸟构件库的设计目标与原则。第四章在讨论青鸟构件模型之后,用实体关系模型描述青鸟构件库的概念模型,并把概念模型转换为关系数据模型。第五章主要讨论构件库管理工具集接口的设计。在简单介绍构件库管理工具集之后,讨论了工具集与构件库之间的接口的设计目标、组成结构及详细设计。第六章主要讨论青鸟构件库及其工具集接口实现上的各种细节。第二章 基于构件的软件开发基于构件的软件开发是一种有效实际的复用途径。本章先讨论复用的几种形式并给出可复用构件的定义;接着,介
33、绍基于构件的软件开发并阐述构件库对基于构件的软件开发的支持。最后,阐述基于构件/构架模式的软件开发支持系统青鸟III型从而,给出本文研究的工作背景。2.1可复用构件可复用构件(Reusable Component)指所有具有可复用价值的构件,在本文中简称为构件(Component)。软件复用是指应用已有的为复用目的而开发的软件构件构造新的软件系统,以提高系统开发效率及软件质量。复用的形式多种多样,可以是规约复用、设计复用、代码复用、测试复用和文档复用NATO。由于复用的种类不同,不同的复用研究人员对构件给出的定义也不尽相同,目前国际上对构件并无统一的标准定义。NATO在其颁布的构件开发标准中将
34、构件笼统地定义为:构件是用于复用的软件实体NATO。STARS拓广了构件的范围,将广义构件(Asset)定义为:任何在当前或将来对于开发和维护软件系统的企业和组织有价值的信息单元。这一概念比狭义的软件构件意义更为广泛。构件可以包括软件工作产品、软件子系统、软件构件(STARS的软件构件是与分析件、设计件等相并列的)、专家联系名单、构架、领域分析、设计、文档、个案分析、经验教训、研究成果、以及有创见的软件工程思想与表述等等STARS 92。Mili等在Mili 95一文中将软件复用分为两类:产品复用(product reuse)和过程复用(process reuse)。产品复用是指将对软件开发过
35、程中生成的各种产品作为构件进行复用,一般而言有两种形式:直接复用和间接复用。直接复用针对的构件可以表示为某种程序设计语言代码,这类构件的复用可以直接产生可执行的应用程序。间接复用是指对需求规约、设计、模式、测试计划等文档型知识的复用。虽然这类非代码构件的复用不能直接得到可执行的应用程序,但可以对系统开发的效率和质量带来极大的好处。过程复用是指复用以前软件开发的过程,一般表现为对软件开发某一阶段提供自动化支持的工具,典型的过程复用例子有程序生成器、程序变换器和可执行规约语言等。本文的研究重点是产品复用,将构件定义为:构件是软件系统中一切可以被明确标识和的有机构成成分(软件实体),可以是需求分析、
36、设计、代码、测试数据或软件开发过程的其它产品。2.2基于构件的软件开发随着构件技术的发展,软件开发方式也发生了巨大变化。基于构件的软件开发(CBSD,Component-Based Software Development),成为软件工程学科的焦点之一。CBSD有时也被称为基于构件的软件工程(CBSE)Brow 96,它致力于通过组装现有软件构件的方式来建造大型软件系统。通过增强系统的灵活性和可维护性,这种方法可以降低软件开发成本,加快系统开发的速度,减轻大型系统支持和升级所带来的维护负担。CBSD是建立在这样一个前提之上的,即大型软件系统的某些部分具有共性,因此将该部分制作成构件,类似系统通
37、过复用构件来实现。在基于构件的软件开发过程中,原来系统开发中的重点 - 程序设计,将被组装现有软件构件所取代。构件组装成为整个软件开发过程的核心工作,因此构件的组织、存储、检索也就成为基于构件的软件开发中的一个关键因素。为了支持关于构件的上述活动,使用构件库来保存构件是必须的,也是提高开发效率的关键。2.3构件库对CBSD的支持为了支持基于构件的软件开发过程,人们希望能够拥有与软件生命周期的各个阶段相关的构件,以便软件开发者在整个软件开发过程都能通过复用构件得到帮助。由于软件复用具有多种形式,同时软件开发过程又可分为需求分析、设计、实现、测试、维护等不同阶段。因此,要使复用成为可能,首先必须要
38、有大批量的各种形式、分属不同阶段的可复用构件。其次,为了尽可能地减小用户获取可复用构件的代价,这就必然要求有一个能够良好有效地支持复用的环境,对大量构件进行分类、管理、存储并支持开发者检索和提取构件。图2-1 构件库对基于构件的软件开发的支持支持构件复用的环境的一个重要部分是支持构件分类、组织、存储和查询的构件库系统。支持多层次多形态构件的大型构件库有利于提高复用的可能性和复用的质量。有了构件库系统的支持,基于构件的软件开发活动被划分成三类:构件获取、构件管理和构件复用,如图2-1所示。构件可以通过设计生产,或通过再工程的方式提取,或直接从某个商业性的软件机构购买。构件管理负责构件分类以及构件
39、维护。而构件复用则查询构件并通过构件组装生成新系统。Fisc 87,Rama 88,Maid 93,Mili 94,Mili 952.4基于构件-构架模式的软件复用支持系统青鸟III型系统的研制开发是青鸟工程“九五”攻关中的一个重要组成部分,该系统的研制目标是针对软件工业化生产的需求,完善并初步实现青鸟软件生产线的思想,制定软件工业化生产标准和规范,研究基于“构件构架”模式的软件工业化生产技术,研制支持面向对象技术、支持软件复用、基于异构平台、具有多信息源接口的应用系统集成环境。图2-2给出了青鸟III型系统的示意图:图2-2 青鸟III型系统基于构件-构架模式的软件复用支持系统是青鸟的III
40、型系统的核心,如图2-1所示,它主要由以下几个工具组成:1、领域分析工具;2、程序理解及构件抽取工具;3、构件库管理系统JBCL,其中包括构件库、分类工具、查询工具和库管理工具;4、基于复用的OO开发工具集,其中包括分析工具、设计工具、编程工具和测试工具;5、构件组装工具。青鸟可复用构件库管理系统JBCL是构件库、分类工具、查询工具以及库管理工具的统称,它是青鸟III型系统的核心子系统。在构件库中可以保存软件开发过程中所生成的不同阶段(如分析、设计、编码、测试等)、不同形态(如类、类树以及框架)、不同表示(如图形、伪码、语言等)的构件,并根据多种不同机制(如刻面、关键词等)为它们建立分类索引,
41、以便于进行检索工作。第三章 青鸟构件库管理系统本章先给出青鸟III型的核心青鸟构件库管理系统的体系结构。接着,介绍青鸟构件库管理系统所采用的分类检索机制。最后,阐述青鸟构件库管理系统应具有的功能,并由此导出青鸟构件库的设计目标与原则。3.1青鸟构件库管理系统体系结构青鸟可复用构件库管理系统JBCL(Jade Bird Component Library)是JBIII型系统的核心子系统, 由构件库、入库工具、查询工具以及构件库管理工具组成。青鸟构件库管理系统的体系结构如图3-1所示:图3-1 青鸟构件库管理系统的体系结构青鸟构件库管理系统为Client/Server结构,其核心是一个存储构件及其
42、相关信息的关系数据库系统,外围支持工具构成三个工具集:构件库入库工具集、构件库查询工具集和构件库维护工具集。数据库服务员基于工作站的UNIX平台,直接对关系数据库进行各种操作。其主要功能包括:1. 为数据库用户提供统一的DAC(Data Access Command,数据存取命令)语言,以屏蔽DBMS的细节(考虑到用户可选用不同的数据库);2. 附加的数据库访问控制;3. 译码并解释执行DAC,访问数据库。支持工具基于微机Windows平台,通过局域网与数据库服务员通讯,支持用户对构件库的使用。各支持工具通过OLE机制集成起来。构件库的三组工具分别为:1. 构件入库工具集:由构件库管理员使用,
43、其中包括构件分类工具,主要功能是将新构件加入构件库及修改已有构件信息;2. 构件查询工具集:由构件库用户使用,其中包括构件查询工具和构件使用意见反馈工具,主要协助构件库用户浏览、查询、提取构件,反馈用户对构件的使用意见;3. 构件库维护工具集:由构件库管理员使用,其中包括用户数据库维护工具、构件提供者数据库维护工具、构件库管理员数据库维护工具、用户反馈意见处理工具、刻面术语空间维护工具和构件库信息统计工具,主要对构件库的各部分内容进行管理维护。3.2青鸟构件分类检索机制分类模式合理地组织构件库的关键,是如何对构件进行分类,即按照什么样的分类模式组织不同的构件集合。一般地,构件库的分类策略应满足
44、如下的要求:(1) 分类信息应该表达构件的相关信息;(2) 分类策略应该适用于各种粒度、来自软件开发过程各个阶段的各种构件;(3) 分类策略不应太复杂,过高的复杂度将导致较低的可理解性与易用性,从而降低复用的价值Lars 93。通常的分类模式有层次分类和刻面(facet)分类两种。刻面分类模式是对层次分类模式的扩充。一个刻面分类模式由一组描述构件特征的刻面所组成,每个刻面从不同的侧面对库中构件进行分类。例如,这组刻面可以是应用领域、功能、操作对象、编程语言和操作系统等。每个刻面由一组基本的术语所构成(称为术语空间term space)。一个构件可以被每个刻面中的一个或多个术语所刻划(刻面术语是
45、一个确定的集合),而每个刻面则分别反映了对库中构件的一种划分,因此用户可以直观地从不同的角度指明待检索的构件,也有利于用户对构件的理解。刻面分类策略具有下列特性:(1) 每一个刻面都必须充分并明确地描述构件库中全体构件,即每一个构件都可以用该刻面来分类。(2) 每一个刻面与一个术语空间相关联。任意两个刻面的术语空间是正交的,即一个刻面的术语发生变化不会影响到另一个刻面的术语空间。(3) 一个刻面的术语空间为有限的不定空间,即可以随时间的演进而动态地增加和删除术语。(4) 每一个构件的所有刻面必须予以定义,在对构件分类时不允许有未定义的刻面;但查询时,用户可以利用任意数目的刻面进行查询。(5)
46、构件库管理者对构件进行分类时,应该针对每一个刻面,从术语空间中选择适当的(一个或多个)术语,以完成构件的封装工作。(6) 在每个术语空间中的术语按一般/特殊关系形成树状的层次结构,每一个术语附带有不定数目的同义词。在刻面分类策略中,构件库管理者通过将构件与对应的术语相联结,可以在构件间建立复杂的联系。与一般的层次分类策略相比,刻面分类策略更易于修改,更富有弹性,因为对一个刻面的修改不会影响到其它的刻面。同时,每个刻面对应一个结构化的术语空间,避免了一般的关键词分类策略的杂乱无章,使得对关键词的管理更为方便和有序。刻面分类及术语空间一、刻面分类模式青鸟构件库系统主要采用刻面分类模式。每个刻面关联
47、一个合法术语的结构化集合术语空间,在构件的分类和查询中用到的术语均来自于这些术语空间。术语空间的结构反映了术语间的语义关系,可以看做是一种语义网,其结构相对稳定。而每个构件从外部来看,都是一组刻面术语的集合。构件库中的每个构件都具有一组属性,这些属性有的是由构件的提供者提供的,有的是构件库根据构件的使用情况加入的。从表面上看,属性与刻面非常相似,属性值就相当于刻面的术语。但实际上二者之间存在一定的区别,主要表述如下:(1) 刻面是构件属性的一个子集。属性绝大部分是由构件的提供者提供的,而刻面则完全由构件库的管理者规定,构件的提供者完全不需要了解它们。(2) 刻面是构件的复用者在查询构件时最感兴
48、趣的构件属性。在查询时复用者通过选择刻面的术语,可以明确地限定构件的范畴,不会有遗漏的构件。依据属性与刻面的区别,经过反复筛选,我们选定了以下五个构件属性作为青鸟构件库的刻面。这五个属性彼此间完全独立并且相互正交,比较充分地体现了构件与复用相关的一些特性,而且也能够适应青鸟构件库今后的发展。(1)使用环境(Application Environment)构件的使用环境是使用(包括理解/组装/修改)该构件时必须提供的硬件和软件平台。如所需的特定的硬件环境、操作系统、数据库平台、网络环境和编译系统等。构件库中任何构件都必须依赖于一定的使用环境才能得到复用,即使是源代码级的某些通用构件,也必须依赖于
49、特定的编译系统。(2)应用领域(Application Domain)构件的应用领域是指该构件原来的或可能被使用到的应用领域(及其子领域)。这里的领域,指共享某种功能性(functionality)的系统或应用程序的集合。构件库中任何构件都有一个适用的领域。(3)功能(Functionality)构件的功能是该构件在原有或可能的软件系统中所提供的软件功能集。构件库中任何构件都必须提供一种或多种功能。(4)层次(Level of Abstraction)构件的层次是构件相对于软件开发过程不同阶段的抽象层次,如分析、设计、编码等。构件库中任何构件都处于软件开发过程中一定的阶段,并为该阶段服务。(5
50、)表示(Representation)构件的表示是指用来描述构件内容的语言形式或媒体,如源代码构件所用的编程语言等。构件库中任何构件都以一定的形式存在,因而必然有其外在的表现形式。这种表现形式与构件的上下文环境(context)直接相关。二、刻面的术语空间构件库的刻面定义好之后,就必须开始为刻面建立相应的术语空间。构件库的刻面术语是由构件库的管理者制定的。若构件的提供者所提供的术语与构件库原有术语不符,构件库的管理者将负责与构件的提供者协商,力求刻面术语的一致,将该术语作为新术语或作为原有术语的同义词加入构件库。由于缺乏一个公认的术语标准,术语空间的确定成为刻面分类策略的难点,我们只能先自行初
51、步定义青鸟构件库刻面的术语空间,以后再逐步修正。(1)使用环境(Application Environment) 最初阶段,使用环境的术语由构件库管理者枚举,构件的提供者可以在提供构件时随时提供新的环境术语。典型术语包括操作系统中的“MS DOS”、“MS Windows 3.x”、“MS Windows 95/NT”、“UNIX”等。表3-1是使用环境刻面术语的例子:工作站(Work Station)硬件(Hardware)微机(PC).DOS操作系统(OS)WINDOWS 3.X & 95UNIX.FoxPro数据库平台(Database)InformixOracle.表3-1 使
52、用环境刻面的术语(2)应用领域(Application Domain)应用领域的术语最开始也是由构件库管理者枚举,构件的提供者可以在提供构件时随时提供新的应用领域术语,各个领域的专家可以对领域术语进行修正和更新。典型术语包括“MIS”、“CAI”等。(3)功能(Functionality)功能刻面的术语主要是构件提供者所提供的关于构件功能的关键词。为达到术语间的一致,功能术语应力求从较高抽象层次上体现构件的用途。典型术语包括“打开文件”、“读文件”、“写文件”、“关闭文件”等。表3-2是功能刻面术语的例子:打印表格(print form)打印(print)打印文档(print document
53、).读取文件(read file)读取(read)读取数据库(read database).表3-2 功能刻面的术语(4)层次(Level of Abstraction)层次刻面的术语比较简单,因此主要由构件库的管理者枚举。目前层次术语有分析(Analysis)、设计(Design)、编码(Coding)、测试(Testing)等等。(5)表示(Representation)表示刻面的术语最初由构件库管理者枚举,构件的提供者可以在提供构件时随时提供新的构件表示术语,典型术语包括“中文” 、“英文” 、“DFD图” 、“OMT类图”等。辅助分类策略除了以上讨论的刻面分类策略以外,还有关键词、属性
54、、枚举等多种分类策略。这些策略都各有其优点和缺点,单独使用其中的任何一种分类策略,都不能令构件库的管理和构件库用户的使用达到理想的效果。因此,比较合理的方法是在构件分类时将各种策略结合起来,在用户对构件进行查询时,也提供基于各种分类策略的多种查询手段Will 94。青鸟构件库采用了以刻面分类策略为主,多种分类策略相结合的策略。在对构件进行分类时,除了为构件在各个刻面中关联一组术语以外,还要为构件填写属性,关联一组关键词,并在构件之间建立各种关系。相应地,也为青鸟构件库的用户提供多种查询手段。查询时除依据一组术语进行搜索之外,还可以提供一些属性值、一组关键词进行查询,并可以依据构件之间的关系进行
55、导航式查询。3.3青鸟构件库管理系统功能作为一个支持复用的软件开发环境,构件的有效管理和查询成为关键问题,其核心是一个构件库。构件库是一个人员、工具和过程的组织,利用它们的行为来促进对软件生命周期产品的复用,以达到降低成本、提高生产率的目标。该构件库用于对可复用构件进行描述、管理、存储和检索,以满足基于“构件构架”复用的软件开发过程的需要。它以构件模型为基础,建立构件库数据模型,并与其它CASE工具相结合,支持构件的生产、描述(使用青鸟构件描述语言JBCDL)、分类、存储、查询和组装。青鸟构件库管理系统以人机协同方式辅助用户管理各种软件构件,提供如下功能:l 定义构件库内的构件类型集合、关系类
56、型集合;并针对每种构件类型,定义有效关系类型集合。各种类型均可由用户自行定义,便于用户建立面向专用领域的可复用构件库。l 管理构件库内各种构件,包括构件的入库与更新,以及定义两个构件之间关系。l 维护构件分类刻面及其术语空间。l 对构件库中的构件进行检索,包括按照刻面、术语、关键词、构件类型、构件之间的关系、构件的提供者等进行检索。3.4青鸟构件库设计目标与原则要进行有效的软件复用,必须将已有的可复用软件构件组织成一个系统的构件库。构件库的设计目标如下:l 支持多用户对构件库的共享操作由于构件库系统提供了许多不同的工具,如入库工具、刻面维护工具、查询工具、用户管理工具等,且拥有许多不同级别的用户,如普通用户、管理员、高级管理员等,所以处于系统核心的构件库部分必须具有支持多个用户同时进行共享操作的能力。l 支持用户在物理上的分布随着异构的、分布的、网络化计算环境的广泛使用,构件库应该具有网络支持,以支持用户在物理上的分布,能够在异构环境下运行,以充分发挥各种不同机种的优势,使它们互为补充,达到更好的性能价格比。l 支持多种数据库格式目前已有很多成熟的DBMS产品,它们分别拥有自己的用户群,为了在这些产品上运行,构件库应该能够支持多
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年广东省深圳市高职单招职业适应性测试考试题库有答案详细解析
- 2026浙江事业单位统考台州市临海市招聘67人笔试模拟试题及答案解析
- 2026年应急管理部所属单位第二批次招聘笔试模拟试题及答案解析
- 2026陕西太白黄金矿业有限公司招聘(46人)笔试参考题库及答案解析
- 2026甘肃定西岷县十里镇卫生院招聘乡村医生2人笔试备考试题及答案解析
- 2026广东揭阳市榕城区登岗镇卫生院临时人员招聘1人笔试备考题库及答案解析
- 2026四川凉山州绿色家园安康医院招聘中医医师1人笔试模拟试题及答案解析
- 2026北京大学艺术学院招聘劳动合同制人员1人笔试备考题库及答案解析
- 2026浙江宁波市会展博览集团有限公司招聘1人笔试参考题库及答案解析
- 2026年四川省乐山市第七中学重点名校初三下学期第四次模拟考试卷英语试题理试卷含解析
- 集团公司内部控制体系建设总体方案
- 中医治疗颈椎病课件完整版
- 【读写策略】回延安朗读指导
- GB/T 30776-2014胶粘带拉伸强度与断裂伸长率的试验方法
- 2023年危化品安全管理人员考试题库
- 隧道工程实体质量检查评分表
- 医院糖尿病小组工作总结及工作计划
- 高压氧舱优质课件
- 项目管理培训PPT
- 固体废物的收集原则、方法、贮存及清运
- 农产品产地集配中心建设规范标准
评论
0/150
提交评论