(计算机软件与理论专业论文)基于ucm的构件关联度量与提取的研究与应用.pdf_第1页
(计算机软件与理论专业论文)基于ucm的构件关联度量与提取的研究与应用.pdf_第2页
(计算机软件与理论专业论文)基于ucm的构件关联度量与提取的研究与应用.pdf_第3页
(计算机软件与理论专业论文)基于ucm的构件关联度量与提取的研究与应用.pdf_第4页
(计算机软件与理论专业论文)基于ucm的构件关联度量与提取的研究与应用.pdf_第5页
已阅读5页,还剩58页未读 继续免费阅读

(计算机软件与理论专业论文)基于ucm的构件关联度量与提取的研究与应用.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于u c m 的构件关联度量与提取的研究与应用 摘要 软件复用的核心技术是软构件技术,软构件技术中最基本、最重要的一项技 术是构件获取技术。现有构件提取方法大多是对u m l 图抽象后进行构件提取。 但总体来说现有的基于逆向工程的构件提取方法是相当繁琐的。 本文针对这些缺点,充分利用u c m ( u s ec a s em a p s ) 的优点,结合u c m 的 表示方法、u c m 的语义和工具、构件提取过程、构件可复用度量等方面的知识, 提出了基于u c m 的桩和接口的可复用性度量方法。该度量法包含三个度量元: 包含独立性、功能独立性、临时依赖性。此度量方法充分利用了u c m 的优点而 且做到了简洁高效。 本文在分析u c m 需求依赖性的基础上,利用本文给出的可复用性度量方法 对遗产系统进行构件标识和提取,并给出了具体的构件提取算法c e a b o u 算法。 该算法首先标识核心桩,然后以这些桩为原点向外进行扩展获得遗产构件。整个 扩展过程都是以所考察的桩与当前桩的整体关系作为判断依据,有效的避免了构 件提取中的逆向工程,使构件提取方法简洁高效,因此提取方法更加合理。 然后针对该算法设计了遗产系统构件提取模型,将该构件提取方法应用于在 线商品销售系统,并结合构件质量评价与可复用验证理论,对构件提取的结果进 行质量评价和可复用性验证,证实了该构件提取方法的有效性。 关键词:u c m ;可复用性度量;构件提取;复用性验证 r e s e a r c ha n da p p l i c a t i o no fc o r r e l a t i o nm e a s u r e m e n ta n d a b s t r a c t i o no fc o m p o n e n tb a s e do nu c m a b s t r a c t t h ec r i t i c a lt e c h n o l o g yo ft h es o f t w a r er e u s ei sc o m p o n e n tt e c h n o l o g y t h e c r i t i c a lt e c h n o l o g yo ft h es o f t w a r er e u s ei sc o m p o n e n tt e c h n o l o g y , t h em o s tb a s i ca n d i m p o r t a n tt e c h n o l o g y o fs o f t w a r e c o m p o n e n t i st h e c o m p o n e n t e x t r a c t t e c h n o l o g y m o s to ft h ee x i s t i n gc o m p o n e n te x t r a c t i o nm e t h o di sd o n ea f t e rt h e a b s t r a c to fu m l d i a g r a m b u to nt h ew h o l et h ee x i s t i n gc o m p o n e n t se x t r a c t i o n m e t h o dt h a tb a s e do nt h er e v e r s ee n g i n e e r i n gi sq u i t ec u m b e r s o m e t h i sp a p e ra d d r e s st h e s es h o r t c o m i n g s ,t a k ef u l la d v a n t a g eo ft h ea d v a n t a g e so f u c m ( u s ec a s em a p s ) ,c o m b i n e dw i t ht h ee x p r e s s i o nm e t h o do fu c m ,u c m s e m a n t i c sa n dt o o l s ,t h ep r o c e d u r eo fc o m p o n e n te x t r a c t i o n , t h ek n o w l e d g eo f c o m p o n e n tr e u s a b l em e a s u r e m e n t ,e t c t h e np r o p o s e dt h em e a s u r e m e n to f r e u s a b i l i t yb a s e do nt h es t u ba n di n t e r f a c eo fu c m t h em e a s u r e m e n tm e t h o d c o n s i s t so ft h r e em e t r i c s :i n c l u d ei n d e p e n d e n c e ,f u n c t i o n a li n d e p e n d e n c e ,t e m p o r a r y d e p e n d e n c e t h i ss i m p l ea n de f f i c i e n tm e a s u r e m e n tt a k e sa d v a n t a g eo ft h eb e n e f i t s o f u c m b a s e do nt h e a n a l y s i so fu c md e m a n d - d e p e n d e n t ,u s et h er e u s a b i l i t y m e a s u r e m e n tm e t h o dw h i c hu s e df o rc o m p o n e n tr e c o g n i t i o na n de x t r a c t i o no ft h e l e g a c ys y s t e m ,t h i sp a p e rg i v e sas p e c i f i cc o m p o n e n te x t r a c t i o na l g o r i t h mc e a b o u a l g o r i t h m t h ea l g o r i t h mf i r s t i d e n t i f i e st h ec o r es t u b s ,t h e nt h e s es t u b sa st h e s t a r t i n gp o i n tf o rt h ee x p a n s i o no fa c c e s st oh e r i t a g ec o m p o n e n t s i nt h em e t h o d ,t h e c o r es t u b sa r ef i r s t l yi d e n t i f i e d ,a n dt h e ns p r e a di sp e r f o r m e df r o mt h e s es t u b st og e t t h el e g a c yc o m p o n e n t t h es i m p l ea n de f f i c i e n te x t r a c t i o nm e t h o dp r e v e n tt h e e x t r a c t i o no fr e v e r s ee n g i n e e r i n g ,s ot h em e t h o di sm o r er e a s o n a b l e t h e nt h ec o m p o n e n te x t r a c t i o nm o d e li sd e s i g n e db a s e do nt h ea l g o r i t h m ,t h e c o m p o n e n te x t r a c t i o nm o d e lh a sb e e na p p l i e dt oo n l i n em a r k e t i n gs y s t e m ,c o m b i n e d i i w i t ht h eq u a l i t ye v a l u a t i o no fc o m p o n e n t sa n dr e u s a b i l i t yv e r i f i c a t i o nt h e o r yt o e v a l u a t ea n dv e r i f yt h eq u a l i t yo ft h er e s u l t st h a te x t r a c t e df r o mt h el e g a c ys y s t e m , c o n f i r m e dt h e e f f e c t i v e n e s so fc o m p o n e n te x t r a c t i o nm e t h o d k e yw o r d s :u c m ,t h em e a s u r e m e n to fr e u s a b i l i t y , c o m p o n e n te x t r a c t i o n , r e u s e v e r i f i c a t i o n i i i 独创声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作及取得的 研究成果。据我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其 他人已经发表或撰写过的研究成果,也不包含未获得 ( 洼! 垫遗直墓丝蓝噩鳖别直鳗数:奎拦亘窒或其他教育机构的学位或证书使 用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明 确的说明并表示谢意。 学位论文作者签名:钨玉 签字日期:知口7 年月7 日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,有权保留并 向国家有关部门或机构送交论文的复印件和磁盘,允许论文被查阅和借阅。本人 授权学校可以将学位论文的全部或部分内容编入有关数据库进行检索,可以采用 影印、缩印或扫描等复制手段保存、汇编学位论文。同时授权中国科学技术信息 研究所将本学位论文收录到中国学位论文全文数据库,并通过网络向社会公 众提供信息服务。( 保密的学位论文在解密后适用本授权书) 学位论文作者签名:奄立 签字日期:砌7 牟6 目7 日 导师签字: 壮啡节f 日7 日 基于u c m 的构件关联度量与提取的研究与应用 1 绪论 1 1 研究背景 随着软件系统复杂化的趋势,软件开发人员更加关注软件的效率和质量。从 面向过程的代码编写、面向对象的系统开发,发展到目前被广泛研究的基于构件 ( c o m p o n e n tb a s e dd e v e l o p m e n t ) 的开发。传统的软件过程可以划分为从概念到实 现的若干个阶段,包括问题的定义、需求分析、软件设计、软件实现和软件测试 等,这种开发方法存在效率不高、可移植性差、重用粒度小等缺剧1 1 。 构件起源于软件行业的工业化。将粒度不同的软件组合起来像硬件系统那样 构造软件系统,多年来一直是软件开发所追求的。尤其对于诸多应用软件系统的 开发,如果能够结合实际充分利用已经存在的不同粒度的构件,生产效率会前所 未有的提高,减少诸多重复繁琐的劳动。软件构件技术引发了传统的软件开发过 程进行变革。 软件开发中避免重复繁琐劳动的最佳方案就是软件复用,软件复用使得软件 开发的效率和质量从根本上得到了提高。自上世纪末以来,面向对象技术出现并 迅速发展为软件开发的主流,使软件复用在技术上得到了支持。提高软件生产效 率和质量、解决软件危机的现实可行的途径就是软件复用。本文主要介绍软件复 用中的产品复用。产品复用的主要形式是基于构件的复用,而且一度成为软件复 用研究的焦点。目前实现软件系统成功复用的关键因素之一就是构件技术。软件 产业的变革直接起源于软件复用技术的广泛应用,软件构件生产必然会发展为独 立的行业。软件领域的变革对我国软件产业的发展将是一个很好的机遇和挑战。 作为软件复用的一项关键技术,构件获取主要有四种途径【1 1 : 1 、从遗产系统中提取有价值的复用构件; 2 、根据构件化的软件工程需求,开发新的软件构件产品; 3 、从开源社区中取得构件原型,结合自己领域需求进行二次开发,得到的 构件产品; 4 、从软件公司购买商业构件。 后3 种构件获取方法成本比较昂贵,但是这些成本只是前期投入的成本,随 基于u c m 的构件关联度量与提取的研究与应用 着构件的复用,前期投入的成本可以被构件复用的优势抵消。许多实力强的软件 组织都有很多遗产系统,所以应当充分利用成熟的资源,本文展现的是应用第1 种方法进行构件提取。 构件提取以现有的软件资源为基础,对遗产系统进行抽象,其中模式表示, 概念集合,数据传递关系,变量引用关系等为语义形式;函数调用图,模块依赖 图,类图,实现实体关系图等为结构形式。以这些抽象形式为基础,构件提取能 够在可复用度量的支持下完成对系统的分解,并以度量结果为条件筛选出高质量 的候选构件。在构件入库之前利用再工程技术对候选构件进行修改。通过对候选 构件的验证、封装和入库一系列过程完成对构件的提取【2 】o 1 2国内外研究现状及不足 基于遗产系统的构件提取方法开发周期短、开发成本低,因而成为软件复用 与程序理解领域的研究热点。早在上世纪末研究人员就提出了一些可复用模块的 提取方法。上世纪9 0 年代以来,针对面向对象系统出现了一系列构件度量技术 和构件提取方法。在辅助软件系统演化与重构的同时,构件提取成为一种高效的 软件生产手段。 1 2 1 软件构件技术研究内容 开发人员对软件复用的理解不断深入,构件的概念也从最初的源代码构件延 伸到需求、系统和软件的需求规则约束、系统和软件的构架、文档、测试计划、 测试案例和数据以及其他对开发活动有用的信息。这些信息就是广义上的可复用 软件构件。支持软件复用的核心技术是软件构件技术,而且近几年来迅猛发展。 软件构件技术主要包括以下几方面的研究内容【l 】: 1 、构件获取:基于遗产系统提取的构件和专门的构件生产; 2 、构件模型:研究构件的本质特征和构件之间的关系; 3 、构件描述语言:以构件模型为基础,解决构件的理解、描述以及组装问 题; 4 、构件分类与检索:构件分类方法、组织结构以及检索方法,建立构件库 系统,有效管理可复用构件; 2 基于u c m 的构件关联度量与提取的研究与应用 5 、构件复合组装:以构件模型为基础进行构件组装,包括基于源代码的组 装和构件对象组装: 6 、标准化:构件模型与构件库系统的标准化。 1 2 2 典型的构件提取系统介绍 软件开发人员希望通过构件提取工具的实现,使构件提取成为一种高效的软 件开发手段。本文将介绍几个构件提取工具: c 0 d e m i i l e i l 3 l 是k n i g h t 和d u m a 等人开发的针对c 语言开发的遗产系统进行 构件提取的工具。该系统标识低耦合高内聚和调用次数多的函数、抽象数据类 型等来标识遗产系统中的可复用部分。 青鸟构件提取辅助工具【4 1 ,此工具的基础是系统分析器和信息抽取器。该工 具以青鸟软件可复用性度量模型的度量结果为依据,标识遗产系统中的可复用构 件,以手工的方式对标识的候选构件进行筛选。对可复用构件代码的包装提供支 持,并提供了工作台管理、构件夹,为构件提取提供方便。 c a r e ( c o m p u t e r - a i d e dr e u s ee n g i n e e r i n g ) 吲,是针对a d a 和a n s i c 遗产系统 的可复用构件标识和验证系统。包括两个阶段的分析过程:1 、识别遗产系统中 的候选构件,包装可复用模块;2 、领域专家分析构件,决定构件提供的服务和 应用领域。最后将符合要求的可复用构件及构件的相关信息存入构件库。 可复用程序分析工具( p r o g r a ma n a l y s i st o o lf o rr e u s e ,p a t r ) 【6 l ,是一个构件 自动标识系统,主要对面向对象系统进行可复用度量。该系统包括程序分析工具, 自然语言分析工具( c h r i s ) ,可复用的面向对象的度量结果收集工具,构件复用 性验证与质量评价工具。 1 2 3 国内外研究现状分析 现有构件提取方法大多通过逆向工程将系统抽象成u m l ( u n i f i e dm o d e l l a n g u a g e ,u m l ) 图后进行构件提取。文献【7 】提出了一种基于有向带权图迭代分 析的系统分解方法。此方法只能得到固定粒度的子图作为候选构件,不能根据用 户需要自动选取满足用户不同要求的构件。文献【8 】主要是以一种带权类依赖图 作为面向对象系统的u m l 类图的抽象表示,其中类依赖图的各边上的权值对应 3 基于u c m 的构件关联度量与提取的研究与应用 于类图中的相应关系。针对带权类依赖图运用代数图论中图的谱( l a p l a c e ) 连通特 性以迭代分割的方式对其进行划分,得到所需开发的系统构件。此方法在确定依 赖图各边上的权值时没有统一标准因此实施过程比较困难。文献【9 】提出了一种 系统地从遗产系统中获取框架和构件的方法。目前构件提取方法大多是基于类间 关系动态分析的领域框架和构件提取方法,利用类间关系的无向带权图的连通分 析进行构件划分【1 0 】,通过聚类分析识别业务构件【1 l j 。这两种方法的一个局限性 是每次筛选都只考虑了两个类之间的关系,而构件的内聚往往体现在类的多边关 系上。上文提到的方法对设计较差的遗产系统还无法进行直接运用。 1 3 论文主要研究工作 本文提出了遗产系统的基于u c m l l 2 l ( u s ec a s em a p s ,u c m ) 的桩和接口的构 件可复用性度量方法,针对当前构件提取存在的主要局限性,提出了一个基于 u c m 桩和接口的构件可复用性度量的遗传系统构件提取方法。 本文的主要研究内容: 1 、给出基于u c m 的构件可复用性度量方法、设计度量模型; 2 、应用此方法对遗产系统进行构件标识和筛选,提出新的构件提取方法 c e a b o u ( c o m p o n e n te x t r a c ta l g o r i t h mb a s e d o nu c m ) 算法: 3 、设计构件提取系统模型; 4 、该方法应用于在线商品销售系统,进行构件提取; 5 、对提取结果进行质量评估与复用性验证。 1 4 论文的组织 本论文共分七章。 第一章绪论介绍了课题的背景,国内外研究现状及不足,为后面章节内容 的理解奠定基础; 第二章u c m 的需求依赖性研究介绍u c m 的基础知识,在此基础上提出 u c m 的需求依赖性: 第三章构件提取技术概述介绍了构件提取的过程,以及构件提取完成以后 对构件进行质量评估的相关理论; 4 基于u c m 的构件关联度量与提取的研究与应用 第四章基于u c m 的桩和接口的可复用度量研究提出了基于u c m 的桩和 接口的可复用性度量模型,给出了具体的度量公式。对模型进行详细分析指出可 复用度分析进一步要做的工作; 第五章基于u c m 的构件提取方法研究给出了基于u c m 的构件提取算法, 设计了具体的应用模型; 第六章实例应用以及提取构件的质量评估与复用性验证结合在线商品销 售系统对构件提取的算法进行具体的应用、分析,并对构件的提取结果进行质量 评估和复用验证; 第七章对本文的研究工作进行了总结,并提出了下一步的研究和工作。 5 基于u c m 的构件关联度量与提取的研究与应用 2 u c m 的需求依赖性研究 2 1 u c m 概述 2 1 1u c m 定义与功能符号表示 u c m 是近几年才出现的一种建模工具,它从整个系统出发在一种图上同时 描述系统行为、组成结构以及它们之间的关系。这种方法更容易使软件设计人员 了解整个系统。它一方面能在系统分析设计早期避免过多细节,另一方面不像 u s ec a s e 那样完全隐藏细节而是包含了适当的细节。使得分析设计与具体实现 不会有太大距离。在这一方面u c m 比u m l 有明显的优势。 定义2 1u c mr e q u i r e m e n ts p e c i f i c a t i o n ( 需求说明) 定义如下: r s = ( d ,c ,h ,入,b c ) ;d 是u c m 域,有以下元素组成:d = s p u e p u r u a f ua juo ft _ jo jt _ js 。s p 为起始点的组合,e p 为结束点的集合,r 为职能 ( r e s p o n s i b i l i t y ) ,a f 为a n d f o r k 的集合,趟为a n d j o i n 的集合,o f 为o r - f o r k 的集合,o j 为o r - j o i n 的集合,s 为桩( s t u b ) 的集合。 c 是r s 中部件的集合。 h 是连接u c m 中各部分的超边( 一条超边有一条或多条源和目标) 的集合。 入是传递关系的集合记作入= d x h d 。 b c = d c 1 3 1 。 一个基本的u c m 路径包含至少以下几个部分:起始点、职能、结束点。 起始点( s p ) :脚本路径的执行起始于起始点,起始点用一个填充的圆形表示, 代表前提条件或触发事件。 职能( r e s p o n s i b i l i t y , r ) :是抽象的行为,根据功能、任务、过程、时间等精 化而得到,职能用十字表示。 结束点正p ) :路径的结束在终点执行,结束点用b a r s 表示,代表后续事件或 造成的影响。 桩( s t u b ,s ) 有如下两种。 l 、静态桩:表现为一个实线菱形( s l 如图2 - 1 ( a ) 所示) ,静态桩仅包含 一个插件( p l u g i n ) ,因此允许复杂图的层次分解。 6 基于u c m 的构件关联度量与提取的研究与应用 2 、动态桩:表现为一个虚线菱形( s o ,如图2 1 ( b ) 所示) ,动态桩可以 包含多个插件,运用时根据系统运行环境( 通常用预设条件描述) 做出具体选择。 也可能同时顺序或并行地选择多个。图2 1 说明了桩的概念。 ( a ) 静态桩只有一个p l u g i n ( b ) 动态桩可以包含多个p l u g - i n 图2 - 1 桩和p l u g - i n s 当映射图变得太复杂时,一个u c m 不能表示的时候可以构造子图。子图中 的路径详情称为p l u g - i n ,包含在路径中的桩里面。 ( a ) 分享路径和o r f o r k s j o i n s 1 :nn :1 n :m 水牛 a n d - f o r k a n d - j o i n s 普通情况 ( b ) 并行路径a n d f o r k s j o i n s 图2 2u c m 功能符号 图2 2 中o r f o r k s :表示一条路径分裂成两条或多条路径。一个o r f b r k 有 一条输入的超边,两条或多条输出。条件绑定于可供选择的路径。o r - j o i n s - 表 7 名名 基于u c m 的构件关联度量与提取的研究与应用 示两条或多条独立的路径合并为一条路径。a n d f o r k s :表示一条单一的控制分 成两条或多条并发的控制。a n d j o i n s :两条或多条并发控制合并为一条控制路 径。 脚本交互:不同的路径可以同步或异步的交互。同步交互表示为一条路径的 终点与另一条路径的起点接触( 如图2 3 ( a ) 所示) 。异步交互表示一条路径分裂 为两条并发的部分( 如图2 - 3 ( b ) 所示) 。 ( a ) 同步交互 ( b ) 异步交互 图2 3 脚本交互图 脚本一体化( s c e n a r i o si n t e g r a t i o n ) ,u c m s 通过二者择一( 如图2 - 2 ( a ) 所示 o r - f o r k s o r - j o i n s ) 或同时发生( 如图2 - 2 ( b ) 所示a n d f o r k s a n d - j o i n s ) 的情况在构 造和集成脚本顺序时提供帮助。 u s ec a s em a p s 是一个高层次的脚本( s c e n a r i o ) 用来指定功能需求的建模技 术而且能够对交互和分布式系统进行高层次设计。根据职能( r e s p o n s i b i l i t y ) ( 操 作、动作、任务、功能等) 之间的因果关系考虑到情节的抽象描述。u c m 用简 单形象的符号表示,职能( r e s p o n s i b i l i t y ) 沿路径分配到各个组件中。组件代表 软件实体( 对象、方法、数据库、服务器等) 或者非软件实体( 参与者、硬件等) 。 职能( r e s p o n s i b i l i t y ) 连接了原因( 前提条件或触发事件) 和结果( 后续事件或 结果) ,因为包括并发、偏序行为所以这些关联是因果关系的。u s ec a s em a p s 描述了捆绑到底层且组织化的抽象构件结构的各种职能( r e s p o n s i b i l i t y ) 之间的 因果关系。u c m 还提供了从行为图中的各种活动到结构图中的各种构件( 及对 象) 组织之间的鸟瞰图。 8 基于u c m 的构件关联度量与提取的研究与应用 2 1 2u c m 表示方法 1 、基本表示法 u c m 用于强调一个系统的最实质、最引人注目且最关键的功能,沿因果路 径的各种职能可以是某一构件内部,或者外部可见的。u c m 可以表现特定的脚 本,也可以被抽象,并且可以覆盖多个脚本实例。使用u c m 时,脚本建立在构 件间消息交换的上层,所以它们不必捆绑到特定的组织结构上。u c m 提供了以 路径为中心的系统功能视图,并且提高了脚本可重用性的级别。 u c m 的构造可以用多种方式完成,例如,开始可以确定各种职能( 图2 4 ( a ) ) ,虽然在一个如此简单的图中是不必要的。然后将这些职能分配给脚本( 图 2 4 ( b ) ) 或构件( 图2 - 4 ( c ) ) 。构件可以沿路径发现。最后,两个视图合并形 成约束图( 图2 4 ( d ) ) 。 图2 4 一个简单的u c m 2 、附加表示法 为了进步介绍u c m 的符号元素,可以在基本用例中增加几项新功能。 9 基于u c m 的构件关联度量与提取的研究与应用 图2 5u c m 表示的电话系统 图2 5 所示由图2 4 中介绍的实例抽象而来,构件不再涉及b 和a ,而是更 为一般的主叫方和被叫方。虚的构件称为“槽”( s l o t ) ,可以由不同时刻的不同实 例来填充,这些实例可以扮演构件的某一特定类的角色。下面的例子提供几点说 明。 例如,主叫方的s o 桩有两个插件( o r i g 矾删g 和o c s ) 。o r i g i n a t i n g 插件的起点i n l 连接到输入路径段i n 2 ,终点o u t l 连接到输出路径o u t 3 。为了显 示插件和桩之间的清楚的链接关系,图2 5 使用了相似的标号。但在通常情况下, 名字是不同的,并且这种关系必须明确描述。 o c s 插件显示了一个新的构件( 被动对象o c s l i s t ) ,它表现为一个屏蔽号 码列表,这些号码禁止主叫用户( u s e r o ) 接通。假如u s e r o 预订了源呼叫屏蔽 服务,则选择o c s 插件代替o r i g i n a t i n g 插件。在这种情况下,将检查被呼 号码是否在屏蔽列表之中( c h k ) 。如果呼叫被拒绝,相应的消息被送回主叫方 ( m s g ) 。 t e r m i n a t i n g 插件在原来的u c m 的基础上做了一些改进,在被叫方更新 ( u p d ) 和振铃的同时,返回主叫方一个回铃信号( m r b ) ,此处用一个a n d 分 支表示并发性。在u c m 表示法中,选择性路径( 如同t e r m i n a t i n g 插件中 1 0 基于u c m 的构件关联度量与提取的研究与应用 的o r 分支和o r 连接) 、并发性路径( 心m 分支和a n d 连接) 、职能共享、例 外路径、计时、故障点、错误处理,以及路径之间的同步异步交互作用等都有 相应的命名。 通过在集成视图中为桩选择p l u g - i n ,可以得到一张展开图,该图包含多种 脚本。一旦桩被定义为路径上的一个关键点,很容易加入新的p l u g - i n ,这些p l u g i n 在例子中体现了新的功能。已经有的图和插件可以进一步分解,使用新的路径及 新的静态桩和动态桩进行扩展( 例如,当加入一个新的不同的服务时) 。 2 1 3u c m 和用例图 用例图显示了角色、用例以及它们之间的关系,主要致力于捕捉用例模型中 的功能需求或现有功能,当然也可用于其他类型的模型。 u m l 用例是黑盒描述,而u c m 则类似灰盒,因为它显示了系统的某些细 节( 如抽象构件的拓扑结构和内部流程等) 。 u m l 用例图可以获得用例之间的3 类关系,即包含关系、扩展关系和归纳 关系。u c m 表示法在此基础上做了很大的扩展,它以一种紧凑的方式,全面展 示了用例及其关系。 1 、包含关系:通过隔离和封装复杂的细节( 以便使用例的实际意义明显化) 和提高一致性( 通过分解包含在几个基用例之中的行为) 的方法帮助阐明一个用 例。 在基用例路径上放置一个静态桩,即可实现包含关系。这个桩将其细节隐含 在其插件中( 内含用例) ,而这个插件可以在多个桩中重用,因此改进了u c m 的一致性。包含点的位置在路径上以科室的方式表述,许多静态桩可以用于表现 多种包含。如图2 5 中的s t 桩和t e r m 矾删g 插件。 2 、扩展关系:扩展的目标是表明一个用例的某一部分是( 潜在) 可选的, 即在一定条件( 有时是异常条件) 下才执行一个子流程。或者有一系列的行为段, 其中一个或几个可以插入基用例中的扩展点。 这种关系在u c m 术语中用o r 分支表示,可能有多于两个的选择,o c s 插 件的拒绝路径和t e r m i n a t i n g 插件的忙路径( 图2 5 ) 都是其各自基用例的扩 展。u c m 可使用路径标签、颜色、阴影和加粗等可视化标志强调原始的基用例 基于u c m 的构件关联度量与提取的研究与应用 ( 以区分来自可选或异常事件的基本流程) 。举个例子,o c s 插件的许可路径( 粗 线) 代表基用例,而拒绝路径则是一个扩展。u c m 表示法还为异常的、超时的 和错误处理的路径提供了其他可视化标识。 动态桩展示了扩展关系的另一层次,这种桩可能有一个默认的行为( 一个通 常包含空路径的插件) ,它可以被其他插件覆盖。选择某一非默认插件的条件在 选择方针中描述,如图2 5 中s o 桩有一个默认插件( o r i g i n a t i n g ) 。当预订 者的o c s 功能被激活时,o c s 插件取代了默认插件。 u m l 用例明确定义了其他行为可以插入的扩展点,u c m 中无此概念。因为 任何路径段都是潜在的扩展( 如一个o r 分类) 的隐含扩展点,而对于动态桩来 说则是外在的扩展点。 3 、归纳关系:当两个或多个用例在行为、结构和目的方面有共同点时,其 共享部分随即又可描述为这些子用例所专用的父用例。 拥有公共段和公共目标的各种u c m 脚本可以被集成为o r 分支和o r 连接 的结合体,或者更有可能被归纳为一个多分支动态桩。父u c m 代表了原来用例 图中的公共部分,它包含一些拥有行为分支( 插件) 的动态桩。子u c m 被父 u c m 所构造,而其桩被适当的插件所占据。但是从多个父u c m 生成子u c m ( 多 重继承) 时,在定义插件及子u c m 作用这些插件的方式之前,需要先将各个父 u c m 集成。 作为一个例子,一个基本呼叫的u c m 可以看做是图2 5 中根图的简化版。 其中默认的o r i g i n a t i n g 插件占据了s o 桩,而t e r m i n a t i n g 占据了s t 桩, 但一个o c s 呼叫将在s o 桩中使用o c s 插件。无论是基本调用还是o c s 调用, 都是其父u c m ( 根图) 的子u c m ,父u c m 的结构和行为已被子u c m 继承和 修改。 2 1 4u c m 的优点 活动图享有u c m 的许多概念,甚至享有它的多个表示符。u c m 中的“职能” 类似于“活动”,两种表示法都支持动作序列、可选择性和并发性,起点和终点也 有类似的用途。 一个复杂的活动可以被提炼出来成为另一个活动图,正如u c m 使用桩进行 1 2 基于u c m 的构件关联度量与提取的研究与应用 路径分解一样,但桩似乎更通用。桩允许多个输入和输出路径,而且动态桩还允 许使用基于某种选择方针的多个插件。在表示复杂系统的动态行为和结构时, u c m 的桩被证明是一个非常有用的创造。 u c m 的优势之一体现在职能与构件之间的连接能力,活动图通常并不以这 种方式使用,虽然它支持二者之间的有限程度的映射。u c m 提供了集成化总体 预览图,这一预览图对于理解路径和职能的行为如何影响和修改动态系统中构件 的运行结构,几乎是必须的。 复杂软件系统由于其规模大、控制结构分散、并发程度高和运行时易变等特 点使得它们难于理解。因此在设计时必然离不开工具的支持。u m l 是一种强大 的建模工具,应用范围非常广泛,组成u m l 的9 种图分别从不同的角度刻画系 统,充分揭示了系统的动态和静态特征。u s ec a s e 是u m l 的核心概念它从系统 外部的角度描述系统与其相关用户之间的交互行为,能使设计人员从整体上把握 系统。但是u m l 在描述复杂系统时却存在不足的地方。u s ec a s e 在表示系统框 架时完全隐藏了内部实现细节,使得分析设计与具体实现间在概念理解上存在较 大的差距。u c m 是近几年才出现的一种建模工具,它从整个系统出发,在一种 图上同时描述系统的行为和组成结构以及它们之间的关系。这种方法更容易使设 计人员了解整个系统而不用结合多个不同的图。u c m 一方面能在系统分析设计 早期避免过多细节;另一方面不像u s ec a s e 那样完全隐藏细节,而是包含了适 当的细节。使得分析设计与具体实现不会有太大距离。从整个系统角度来看 u c m 比u m l 有明显的优势。 2 1 5u c m 的语义和工具 u c m 的语义和良好的规则是以总图的方式定义的。x m l 中所表示的u c m 文本的线性形式,同样已经被定义,这种形式适合于不同工具的输入和文档的生 成。有了x m l 文档类型定义,u c m 与即将制定的u m l 标准可以很容易地集成, 这些标准包括x m l 元数据交换( x m l ) 和u m l 交换格式( u x f ) 等。 u c m 导航器( 一个构造和编辑u c m 的工具) 使用总图语义和规则提供可 靠的转换以确保构造正确的图,这个工具支持路径表示和构件表示,并且使用 x m l 形式作为文件格式。它可用来产生嵌套的桩和插件,可以很容易地将职能 基于u c m 的构件关联度量与提取的研究与应用 连接到构件。并支持代理系统和表演模型的扩展表示,可生成支持p d f 的 p o s t s c r i p t 文档。 2 2 u c m 的需求依赖性 2 2 1 相关概念 定义2 2 构件间的契约称为构件接口,记作i c 。 u c m 中各个构件之间是通过接口来进行连接与通信的,构件之间的依赖性 可以通过接口来进行度量。构件接口的优劣是体现构件能否被复用的关键因素之 一。 定义2 3 接收数据的接口称作输入接口,用作输出结果的接口称作输出接 口。 定义2 4 输入接口数总和是指u c m 中所有输入接1 3 的总和,记做s i ( c ) , 其中c 表示u c m 中的构件集合。 定义2 5 输出接口数总和是指u c m 中所有输出接口的总和记做s o ( c ) , 其中c 表示当前构件集合。 定义2 6 输入接口关联度是指被度量构件的输入接口数f l ( i d 作i c i ) 占u c m 中所有构件输入接口的比例。公式表示为蛾= 1 c , s ,( a 。 定义2 7 输出接口关联度是指当前构件的输出接口数目( 记作i c o ) 占u c m 中所有构件输出接口的比例。公式表示为觋= s c o l s o ( c ) 。 下文在u c m 功能符号、表示方法、优点和相关概念的基础上提出了u c m 的需求依赖性: 包含依赖; 功能依赖; 临时依赖。 2 2 2 包含依赖 s 1 鱼乌s 2 ,s 1 ,s 2 表示动态或静态桩,s 2 的功能是s 1 功能的组成部 1 4 基于u c m 的构件关联度量与提取的研究与应用 分则称s l 包含依赖于s 2 。包含依赖存在于桩的调用过程中,根据具体的运行环 境或者其它模块的输出结果来决定调用哪一个子模块。桩的包含依赖关系可以抽 象成广义树来表示( 如图2 - 6 所示) 。动态桩抽象成虚线圆形,动态桩与被调用 子模块的关系用1 :n 来表示,n 表示被调用的候选子模块的数目。静态桩抽象 成实现圆形。在静态桩的调用过程中每个静态桩只包含一个子模块。根节点表示 的桩是系统直接调用的桩,称作根桩;叶子节点表示不再调用任何桩的叶子桩; 其他节点表示即可以调用又可以被调用的桩。 2 2 3 功能依赖 s 1 , 、- 1 图2 - 6 桩的包含关系图 见生竺蝴,f 1 、f 2 为两个功能模块,f 1 与f 2 通过接口存在输出关 联称f 2 功能依赖于f l 。在u c m 中,各个模块或组件通过各个功能模块的相互 协作完成任务,因此各个功能模块之间是相互依赖的关系。它们之间的依赖关系 是通过接口来实现的。 2 2 4 临时依赖 s 鸟s ,动态桩s 根据系统的运行环境动态的调用子桩s i 。则称 子桩s i 与s 之间是临时依赖关系。临时依赖主要体现在动态桩调用过程中。根 据系统的运行环境选择调用的子模块。 2 3 舳描述u c m 以上介绍了u c m 的定义及表示方法,当u c m 作为输入时必须用x m l 文 档进行描述。u c m 结构定义的x m ls c h e m a 文档如下: 基于u c m 的构件关联度量与提取的研究与应用 清单2 1 关于u c m 信息的s c h e m a 文档 x s :e l e m e n tn a m e = ”a c t o r s 侈 】【s :e l e m e mn a m e = c o m p o n e n t ”t y p e = x s :b o o l e a n 今 ) 【s :e l e m e mn a m e = ”r e l a f i o n n o ”t y p e = x s :i n t e g e r 房 a t t r i b u t en a m e = i d ”t y p e = x s :s t r i n g 惨 a t t r i b u t ei l a n l e = t y p e ”t y p e = x s :s t r i n g 伦 清单2 1 是x m ls c h e m a 定义u c m 的信息,清单2 2 是通过x m ls c h e m a 验证的x m l 描述的u c m 定义,定义描述了一个简单的连接数据库构件。 d b c o n n e c t t r u e f a l s e 3 2 4 本章小结 本章首先介绍了u c m 的定义、u c m 的功能符号,接下来介绍了u c m 的两 种表示方法:基本表示法和附加表示法,并结合具体的u c m 图进行了详细说明。 然后在此基础上提出了u c m 的3 个需求依赖性:包含依赖性、功能依赖性、临 时依赖性。最后结合u c m 的优点指出了u c m 在构件提取方面的优越性,以及 u c m 的语义工具,并用x m l 对u c m 进行定义与描述。 1 6 基于u c m 的构件关联度量与提取的研究与应用 3 构件提取技术概述 3 1 构件与构件模型 构件可以用一个四元组来表示: 构件:= ( 构件标记符号,构件说明信息,构件主体,构件接口) 。 之所以把构件说明信息和构件主体分开是因为同一个构件主体可以用各种 编程语言实现,所以一个构件可以包含多个不同程序设计语言实现构件主体,构 件的接口包括外部物理接口和外部逻辑接口,为用户提供非形式化的构件功能描 述的接口叫做外部逻辑接口,外部逻辑接口能帮助用户了解和使用构件。构件说 明信息包含构件的功能( 通过构件的外部逻辑接口呈现给用户) ,构件作者、构 件版本等基础信息。构件说明信息有利于构件的检索与复用,构件的外部逻辑接 口通过构件定义语言( c d l ) 与构件操作语言( c o l ) 来进行设计。 完整的构件主要包括以下基础信息: 1 、构件实体包含构件的程序代码和构件的设计文档两个方面; 2 、构件描述信息包括构件的功能、分类信息、构件的属性、构件版本、构 件作者、构件的地址等基础信息; 一个构件应该能够被多个软件所共享,而不是为一个系统定制。这就要求构 件获取、构件分类、构件入库等各个步骤都要做到可共享。所以构件获取必须遵 循以下原则: 1 、构件必须包含完整、正确

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论