论文部分内容阅读
基于构件的软件开发是解决软件危机的一条现实有效的途径,它利用构件的可复用特性减少了软件开发中的重复劳动。对于面向对象软件系统而言,构件可以是类、类树、类簇,甚至是一个由众多类组成的框架。一般来说,构件有两种获取途径:有目的的构件生产以及从现存的系统中提取构件。目前由于存在大量正在使用的面向对象软件系统,从它们中提取构件已成为学术界和产业界关注的一个重要方面。这种构件提取途径包含两个主要活动:第一,需要对整个软件系统进行分解,得到候选构件;其次,基于候选构件进行可复用性评价,筛选出可复用性高的候选构件并对其进行适当修改,进一步提高其可复用性。目前在构件提取的研究工作中,主要探讨如何对系统进行分解,得到候选构件,这也是本篇论文的主要工作。
从现有文献看,面向对象软件系统的分解方法可大致可分为两类:知识匹配和结构分解。知识匹配方法以系统中目标构件的相关知识为驱动,将这些知识与系统中的成分进行匹配,相匹配的成分就成为候选构件。这类方法的代表有[Spinellis00,Pinzger02],它们的一个主要缺点是:匹配中所需知识的获取和表示在实践中通常比较困难。结构分解方法将软件系统抽象为可以数学化表示的结构,比如树和图,然后对抽象出来的结构进行分析,将整个结构分解为多个子结构,每个子结构对应一个候选构件,这种方法避免了知识的获取问题。因此在可干预式构件提取工具中,以结构分解方法作为构件提取的基本手段,并引入人工干预机制辅助实施构件提取,提高其实用性。
本文在对现有构件提取技术研究的基础上,提出了相应的基于结构分解的构件提取方法,这些方法以面向对象软件系统的类图作为分析基础,通常它们将类图抽象成一种有向带权图的表示形式,然后再基于这种图表示形式实施系统的进一步分解。目前这些方法都以构件提取自动化为目标,尚处于研究阶段,缺乏良好的实用性。因此在本文中,通过对有向带权图迭代分析方法与层次结构分解方法的研究,将构件提取活动的过程流程化,在构件识别阶段引入了人工干预机制进而提高构件提取的实用程度。这种通过对现有自动化方法的改造而得到的辅以人工干预的构件提取方法,我们称之为可干预式构件提取方法。
基于可干预式构件提取方法,设计并实现了可干预式的构件提取工具,该工具由信息抽取,结构分解以及信息可视化三大模块组成。它充分的利用了现有的工具环境,并将其集成到了JB00建模工具中,为其实用性提供了良好的支持。