论文部分内容阅读
自1968年Fritz Bauer第1次提出软件危机的概念以来,软件工业一直被生产效率低下、产品质量不高、开发成本巨大、开发周期过长等问题困扰,这已经成为限制软件企业发展的重要原因。随着软件产业的发展,工业界和学术界越来越多地关注软件复用,希望通过复用高质量的软件部件构建系统,解决软件危机。从20世纪60年代的子程序到70年代的模块、80年代的对象、90年代的构件,软件复用水平一直稳步提高。特别是近十年来,基于组件的软件开发(CBSD)方法和产品线工程(PLE)得到了很大发展,进一步促进了软件复用。 然而大量实践表明,软件复用仍存在一系列问题,特别是针对特定领域的复用问题,如:如何对一个特定领域的共同资产进行识别和复用、如何能更好的平衡领域共性和具体产品的特殊性、如何能在不同的粒度级别上组织软件资产以提高复用的灵活性并降低复用的复杂性、如何管理庞大的复用资产库并能够为特定领域提供专门服务、如何能够更好地复用第三方提供的软件资产并避免语义差异等。这些问题成为学术界和工业界研究的一个重要课题。 为了解决这些问题,本文对现有的软件复用技术,如面向对象的软件复用技术、CBSD复用技术和PLE复用技术,进行了分析、比较,总结了它们各自的特点和不足之处,并在这些研究的基础上首次提出了一个完整的面向产品线的软件复用分层体系,对产品线架构中支持软件复用的若干关键技术进行了深入的研究,取得了一些研究成果,主要包括: 1)为了在产品线开发过程中有效地应用各种软件复用技术,清晰地展示不同粒度的软件资产之间的复杂关系,提出了一个面向产品线的软件复用分层体系,包括产品层、产品线架构层、框架层、专用组件库层和分布式组件库层等。在这个体系中,为了降低产品线架构描述和应用的复杂性,提高产品线的扩展能力和复用粒度,将产品线架构分解为一系列松散耦合的框架,每个框架都包括一组与业务相关的组件。为了对框架提供更大的组件选取空间,使用了分布式组件库。由于不同来源的分布式组件库存在语义异构问题,并且其通用的特点不能表达框架对组件复杂的约束规则,不能根据框架的应用反馈支持框架演进,因此提出了建立在通用的分布式组件库基础上的专用组件库的概念,以便为框架提供统一的、直接的和完善的组件信息存储和检索等服务。这个软件复用分层体系有机的将产品线的组件、框架和架构组织起来,降低了产品线复用的复杂性,