These days, the use of open source software is increasing, as is the importance of its role in many applications. According to the Gartner report, 80 percent of all commercial software will include elements of open-source technology by 2012. Currently, many commercial products use open source software (OSS) in many fields such as embedded systems, web management systems, and software development systems. Likewise, the study of open source software has been increasing in the software engineering arena. Many OSSs are being used in various fields as either a part or the whole of a software system. Also, various OSSs are being modified and adopted into software products with their own quality level. However, it is difficult to measure the quality of an OSS before use and to select the proper one. These difficulties come from OSS features such as a lack of bug information, unknown development schedules, and variable documentations. Conventional software reliability models are not adequate to assess the reliability of a software system in which an OSS is being adopted as a new add-on feature because the OSS can be modified while Commercial Off-The-Shelf (COTS) software cannot.
This paper provides an approach toward a software reliability assessment of an OSS-adopted software system during the early stages of a software life-cycle. We identify the software factors that affect the reliability of a software system using the COCOMOII modeling methodology. The first step in the factor analysis is identifying the factors that affect the reliability of software systems. This step was done by analyzing such literature as IEEE Std982.1-1998. We selected 7 factors that can be used in OSS-adopted software systems. The main selection criteria are metric availability in OSS-adopted systems and product metric based measures. The second step in the factor analysis is a behavioral analysis. The behavioral analysis is used to determine how these metrics affect the reliability of software with respect to the activities performed when the metrics have a higher value versus higher software reliability. The third step in the factor analysis is identifying the relative significance of the metrics that affect the reliability of the software. The relative significance in the previous related study is used to identify the relative significance of the selected metrics.
In an OSS adopted software system, module cohesion between OSS modules and in-house software modules occurs. This bridge between OSS modules and in-house software modules can affect the reliability of a whole system because the bridge may give rise to serious defects. Thus, module cohesion has to be considered as a measure when the reliability of an OSS adopted software system is predicted. We defined the module usage as a module cohesion measure. The module usage is represented by the portion of the number of module's in/out flows.
Finally, we built the fault count models using the selected metrics and performed a model evaluation. This research uses multivariate linear regression to find the optimal equation for the fault count model. The proposed fault count models are evaluated by $R^2$ as a 'goodness-of-fit' measure. $R^2$ is a coefficient of determination that measures the strength of the correlation between the actual and predicted number of faults. It describes the percentage of variability of the predicted variable accounted for by the model. A comparison between the proposed model and conventional models including RL-TR-92-52 and COQUALMO is performed for evaluation. The evaluation metrics used in the model comparisons are MRE (Magnitude of Relative Error) and residual errors.
This early software reliability assessment study in OSS adoption helps to create effective development and testing strategies for improving the reliability of the whole system. Also, this research can help to confirm the appropriate OSS selection to meet the system reliability requirements in the design phase and to test strategically in a highly frequent defect driven module.
최근 오픈 소스 소프트웨어(OSS: Open Source Software)의 사용과 역할이 증대되고 있다. 가트너 보고서에 따르면 향후 2012년까지 상업용 소프트웨어의 80%가 오픈 소스 소프트웨어 기술을 포함할 것이라고 예상하고 있으며, 현재 임베디드 시스템 분야, 웹 운영 시스템 등 다양한 분야에서 상업용 제품에서 OSS를 사용하고 있다. 이와 함께, 소프트웨어 엔지니어링 분야에서도 OSS대한 연구가 늘어나고 있다. 적용되는 OSS들은 소프트웨어 시스템의 일부 혹은 전체가 사용될 수 있으며, 기존 시스템에 새로운 요구사항에 따른 기능이 애드-온(Add-On)되기 위해서 수정될 수 있다. 이러한 시스템을 OSS Adopted Software System이라고 정의한다. 신뢰성이 요구되는 시스템의 경우, 채택된OSS가 시스템의 신뢰도에 어떤 영향을 주는지 초기 개발 단계에서 확인하여 시스템의 신뢰성을 예측할 필요가 있다. 시스템의 신뢰성을 초기 개발 단계에서 예측할 수 있다면, 개발 중에 발생 가능한 결점을 줄일 수 있는 개발 전략과 시험 전략을 세움으로써 시스템의 품질을 향상시킬 수 있는 효과가 예상된다.
본 연구에서는, COCOMOII 모델 방법론의 1-3단계를 이용하여 시스템의 신뢰성에 영향을 미치는 소프트웨어 메트릭을 분석하고, 다중회귀모델을 사용하여 Fault Count 모델을 제시하여 개발 초기 단계에서의 시스템의 신뢰성을 예측하도록 한다. 본 연구는 소프트웨어의 크기를 나타내는 SLOC, 소프트웨어의 복잡도를 표현하는 V(G), 그리고 OSS와 In-House Software의 모듈간 사용도를 표현하는 Module Usage를 Multivariate Linear Regression 모델에 적용하여 Fault Count 모델을 제시한다. 또한 제시한 모델을 검증하기 위해 기존 모델 (RL-TR-92-52 model, COQUALMO)과 비교를 수행하고 비교 메트릭인 MRE (Magnitude of Relative Error) 와 잔차(Residual Error)을 이용하여 모델을 평가한다. 비교를 수행한 결과, 제시한 모델이 기존 모델에 비해 낮은 잔차값을 나타내었다.
OSS Adopted Software 시스템의 디자인 단계에서 High Faults Driven 모듈을 예상할 수 있다면, 시스템의 결점을 줄일 수 있는 전략을 세울 수 있다. 이를 위해 OSS를 분석하고 시험을 하여 OSS자체의 문제를 찾아내는 방법이 일반적으로 사용되고 있지만 기존 시스템과 연결되는 경우를 고려하지 못하고 있다. 본 연구에서 제시한 방법은 기존의 방법들과 함께 High Faults Driven 모듈을 발견하고 시스템의 신뢰도를 예측하는데 도움이 될 수 있을 것으로 기대한다.