Study to measure the quality of each module to assess the quality of the whole software has been performed. Especially, in industry, it is important to measure quality of modules quantitatively in order to improve bad modules and reuse good modules. We define moduleness as characteristic that modules should be possessed. Moduleness can be measured by considering several quality concerns. However, because degree that how much each quality concern has an effect on moduleness is different, weight of each quality concern needs to be determined. In this paper, we propose a method to measure software moduleness quantitatively. Firstly, our method measures quality concerns of target modules by using quality metrics. Then, we determine the weight of each quality concern by using their measurements and experts’ knowledge. Finally, we calculate moduleness of each module by combining the measurements with each weight. To evaluate our method, we compare moduleness derived by our method and experts’ judgement. A case study conducted in this paper shows the usefulness of the method by measuring moduleness of modules based on open source software developed by C, C++ and Java languages.
소프트웨어의 품질을 평가하기 위한 연구가 많이 진행되고 있다. 특히, 현업에서는 품질이 낮은 소프트웨어를 개선하기 위해 소프트웨어의 여러 가지 품질 속성들을 정량적으로 측정할 수 있기를 원한다. 소프트웨어의 각 품질 속성은 여러 가지 품질 측면으로 나누어 그 측정치를 합산하여 측정할 수 있다. 그러나 각 품질 측면마다 해당 품질 속성에 영향을 주는 정도가 다르기 때문에 각 품질 측면에 가중치가 적절히 부여되어야 품질 속성을 보다 정확히 측정할 수 있다. 본 논문은 소프트웨어의 품질 속성을 구성하는 품질 측면 별 가중치를 결정하는 방법을 제안한다. 제안 방법은 전문가들의 판단과 여러 소프트웨어들의 품질 측면 측정치들을 활용하여 가중치를 결정한다. 결정된 가중치를 통해, 소프트웨어의 품질을 보다 정확히 평가할 수 있다. 사례연구에서는 C, C++, Java 기반의 100개의 오픈소스 모듈을 대상으로 모듈성의 품질 측면을 정의하고 코드 분석 툴을 사용하여 측정한다. 그리고 전문가들이 수행한 AHP 수행결과를 종합하여 모듈성의 품질 측면 별 중요도를 결정한다. 또한, 두 활동으로 얻은 결과를 활용하여 가중치를 결정하고 모듈성을 정량적으로 측정한다. 제안 방법을 검증하기 위해 전문가들이 평가한 결과와 제안 방법을 통해 평가한 결과를 비교한다.