论文摘要
基于构件的软件开发是提高软件生产率以及软件质量的一条现实可行的途径。其中一项重要的基础设施——软件构件库得到了产业界和学术界越来越多的重视。为了帮助开发者对构件库中大量的构件进行选取和复用,必须提供高效的构件检索方法。因此,如何有效查询构件库中的构件以便复用,就成为构件库和软件复用研究的重点。软件构件的表示和查询方法有很多,刻面表示以及基于刻面分类的构件检索技术已得到软件复用界的关注与应用。构件的刻面描述可以展开为一棵刻面描述树。构件库中构件与查询构件间的匹配问题可以转换为树型结构化描述之间的匹配问题。提出了一种新的检索算法——遍历匹配算法,首先将构件树限定为有序树,避免了无序树匹配这个NP难问题,然后通过分别遍历构件树和查询树,将树匹配问题转化为字符串匹配问题,通过解决字符串匹配问题来解决构件检索问题,并对各种匹配模型下算法的变化以及时间复杂度进行了分析,从理论上指出了算法的高效性。在SoftStore系统中,实现了遍历匹配算法,并且通过对算法的实际性能进行测试,从实践上证明了算法的高效性。遍历匹配算法中也指出了如何利用该算法的中间结果计算匹配代价,并将检索结果按照匹配代价的大小排序后返回给用户,方便用户复用。