论文部分内容阅读
随着软件规模的不断增加,软件开发的速度越来越慢,不能按时完成开发计划,用户的需求不能得到完全满足的情况常常发生。在这样一种背景下,整个软件行业在软件开发软件的过程中,相关知识和经验被不断的总结,形成了快速应用开发(RAD)模型。RAD模型是线性顺序模型的一个“高速”变种,通过使用基于构件的建造方法赢得了快速开发。RAD模型的“高速”主主要是基于构件的复用来完成的。这就是基于构件的软件工程。目前,基于构件的软件开发已经越来越广泛的应用起来,并且实践证明是一种行之有效的工业化方法。在现有的一些软件度量手段中,例如Chidamber&Kemerer提出的C&K度量、Abreu提出的MOOD度量等,也有其相应的度量手段,但是我们可以看到这些手段都是基于源代码的,对于我们现有的基于构件的软件是不适用的。另外,我们可以看到在现有的软件开发中,构件是独立发布的封装体,其内部实现对外不可见,其接口是构件与其他构件以及周围环境进行交互的惟一方式,这样在不清楚构件源码的情况下,构件之间的相互影响已经变得日益突出,如果没有控制好这种影响的话,可能会带来不可预知的后果。另外,构件提取方面,一类方法认为构件识别是领域工程过程中的一个阶段,设计人员从特定领域中一组相似的需求出发进行领域分析,确定领域内的通用性与可变性,寻求可复用的业务语义,据此构造可复用业务构件规约,代表性的方法包括面向特征的领域分析(FO—DA)、产品线方法(PLM)等。这类方法侧重构件在领域内的适应性,但不太重视复用成本和效率等性能因素,也没有考虑粒度的优化。另一类方法通常将重点放在构件结构联系上,也极少涉及到在保证构件关联精确前提下对粒度的追求。从考虑复用成本出发,计算业务元素间全局相关性,通过图划分或CRUD矩阵分析等技术进行聚类分析并封装为构件,代表性方法包括聚集点方法、COMO、O2BC等。这类方法通常将重点放在构件结构联系上,也极少涉及到在保证构件关联精确前提下对粒度的追求,最终构件集合的粒度处于某一或若干固定层次,甚至刻意追求不同构件粒度之间的平衡。基于上面的这些问题,结合了软件度量理论,本文提出了一种基于细粒度构件软件的关联度量的一种模式,该模式有以下几个特点:1)对其中细粒度构件及的关联度量,了解整个软件的构造以及其稳定性。2)利用该模式找出细粒度构件软件的关键构件。3)利用细粒度构件的关联度理论分析出选取候选关键构件的基本条件。4)找出基于细粒度构件分析获取准确的粒度更大的合理可重用的构件组。通过这种基于细粒度构件软件的关联度量模型,本文实现了在不知道源代码情况下的细粒度构件的之间关联的度量、实现了细粒度构件之间从语义上和从结构上的双重的准确的度量、实现了基于细粒度构件的软件中关键构件的获取以及提出关键构件的替换要求、实现了基于细粒度构件开发中的构件提取并且能够提取出一种关联准确、粒度更大、功能更强、更具有复用性的构件组。最终,本文完成了一个以基于细粒度构件的关联度量模型为基础的构件提取系统FCME,该系统能够利用收集的数据很好地度量基于细粒度构件的软件,准确找出该软件中的关键构件,并且可以较为准确地提取出粒度更大、复用性更强的构件组,同时加入了SQA的审核功能、邮件自动发送功能。