디지털 라이브러리[ 검색결과 ]
Ansible 프로젝트를 위한 교차 프로젝트 결함 예측
http://doi.org/10.5626/JOK.2024.51.3.229
코드형 인프라 (Infrastructure-as-Code, IaC)는 인프라의 생성, 배포 등과 같은 전체적인 관리를 코드를 통해 자동화하는 활동을 가리킨다. IaC는 그 효율성 덕분에 많은 기업들에서 사용되고 있고, 이에 IaC 도구 중 하나인 Ansible에서의 내부 결함 예측 기법이 많이 제안되었다. 최근, Ansible의 교차프로젝트 결함 예측의 적용 가능성에 대한 연구가 제안되었다. 이에 본 연구에서는 Ansible의 교차 프로젝트 결함 예측 기법을 적용한 후 그 성능을 분석하였다. 실험 결과, F1 기준 교차 프로젝트 결함 예측의 성능이 0.3∼0.5로 측정되었으며, 내부 프로젝트 결함 예측 기법을 대신해서 사용할 수 있을 것으로 나타났다. 따라서 이를 이용하여 Ansible의 소프트웨어 품질 보증 활동에 기여할 수 있을 것으로 기대한다.
순환 신경망 기반 소프트웨어 신뢰성 추정 모델의 정확성 및 안정성 비교 분석 연구
http://doi.org/10.5626/JOK.2023.50.8.688
순환 신경망 기반 소프트웨어 신뢰성 추정에 관한 기존 연구들은 순환 신경망을 이용하여 동일한 조건에서 하나의 모델을 생성하고 그 모델의 정확성을 평가하였다. 하지만 순환 신경망은 인공 신경망의 무작위성으로 인해 같은 조건에서도 모델의 훈련 결과를 다르게 생성할 수 있으며 이는 부정확한 소프트웨어 신뢰성 추정을 초래할 수 있다. 따라서 본 논문에서는 어떤 순환 신경망이 소프트웨어 신뢰성을 더 안정적이고 정확하게 추정하는지 비교 분석하고 그 결과를 제시한다. 이를 위해 3개의 대표적인 순환신경망을 이용하여 8개의 실제 프로젝트에서 소프트웨어 신뢰성을 추정하고 정확성과 안정성 측면에서 모델들의 성능을 비교 분석하였다. 그 결과 Long Short Term Memory가 가장 안정되고 정확한 소프트웨어 신뢰성 추정 성능을 보임을 확인하였다. 본 논문을 통해 우리는 보다 정확하고 안정된 소프트웨어 신뢰성 추정 모델을 선택할 수 있기를 기대한다.
데이터-기반 소프트웨어 신뢰도 예측을 이용한 소프트웨어 신뢰도 모델 선택
http://doi.org/10.5626/JOK.2022.49.6.443
다양한 유형의 실패 데이터에 대해서 모두 최적의 성능을 보이는 모델은 없다는 문제를 해결하기 위해서 모델 선택 방법과 데이터-기반 신뢰도 예측 방법이 제안되었다. 그러나 모델 선택 방법은 여전히 모든 유형의 실패 데이터에 대해서 최적의 모델을 선택할 수는 없으며 데이터-기반 방법은 예측 결과로부터 얻을 수 있는 신뢰도 관련 척도가 한정적인 문제가 있다. 본 연구의 목표는 신뢰도를 정확하게 예측하면서도 다양한 신뢰도 관련 척도를 얻는 것이다. 이를 위해 데이터-기반 신뢰도 예측 결과를 이용하여 모델을 선택하는 기법을 제안한다. 이 기법은 과거 실패 데이터로부터 모델 선택 방법과 데이터-기반 방법 중 어떤 방법을 사용할지 선정한다. 데이터-기반 방법을 선정하면 데이터-기반 방법으로 예측한 값으로 증강된 데이터를 만들고 가장 적합한 신뢰도 모델을 선택한다. 제안 기법의 예측 성능을 평가한 결과 예측 오차의 중위 값이 비교대상 기법들 중 가장 정확한 기법에 비해 21% 작은 것을 확인했다.
DNN을 이용한 효율적 컴파일 에러 위치식별 방법
http://doi.org/10.5626/JOK.2022.49.6.434
컴파일 에러 없이 완성되는 프로그램은 드물다. 성능 좋은 컴파일러는 컴파일 에러 메시지를 통해 프로그래머에게 문제를 해결할 단서를 주지만, 프로그래머가 에러 메시지를 분석하는 시간 역시 만만치 않다. 이를 줄이기 위해 에러 위치와 수정 방법을 제시하는 많은 제안들이 나와있지만, 대부분 초보 프로그래머의 데이터를 활용하거나 특정 언어에만 적용이 가능하여, 기업 실무에서 진행되는 방대한 규모의 프로젝트에서는 실제로 적용하기 어려운 경우가 대부분이다. 본 연구에서는 실무 프로젝트에서 컴파일 에러 처리시 효율성을 높이기 위해, DNN을 이용하여 컴파일 에러 위치를 식별하는 DeepErrorFinder 모델을 제안한다. 이 모델은 LSTM 모델을 기반으로 구성되었으며, 휴대폰 소프트웨어 개발 프로젝트의 안드로이드 빌드 에러 로그와 수정 코드 데이터를 기반으로 학습 후 에러 위치를 예측한다. 실제 테스트 결과, 52%의 정확도로 예측 및 수동 탐색 대비 시간 단축이 가능하였다. 이 모델은 실무에서 빌드 에러가 발생했을 때 빠르게 에러를 유발한 코드의 위치를 찾도록 도울 것이다.
상관 계수를 활용한 이종 결함 예측의 학습 프로젝트 선택 기법
http://doi.org/10.5626/JOK.2021.48.8.920
소프트웨어 결함 예측은 과거의 결함정보를 바탕으로 개발 중인 소프트웨어의 결함을 예측하는 기술이다. 최근에는 서로 다른 메트릭을 가진 프로젝트 사이에서도 기술을 적용하기 위해 이종 결함예측이 떠오르고 있다. 지금까지 이종 결함 예측은 한 쌍의 학습 및 타겟 프로젝트가 주어졌을 때 성능을 높이는 것에 초점을 맞춰왔다. 그러나 실제 개발에서는 하나의 타겟 프로젝트에 대해 여러 학습 후보 프로젝트가 존재하므로 어떤 것으로 모델을 학습해야 최적의 결과를 얻을지 알 수 없다. 본 연구에서는 이러한 문제를 해결하기 위해 상관 계수를 활용한 학습 프로젝트 선택 기법을 제안한다. 메트릭 매칭 후 대응하는 데이터 간 상관 계수의 평균이 가장 높은 프로젝트를 학습 프로젝트로 선택한 결과, 무작위 선택과 비교하여 예측 성능이 증가했다. 또한, 100개 미만의 인스턴스를 학습 후보에서 제외하여 성능을 향상할 수 있었다. 이를 통해 실제 개발에서 결함이 존재하는 모듈을 더 정확히 예측할 수 있다.
RESTful 웹 어플리케이션 행위 모델 기반 결함 위치 추정
http://doi.org/10.5626/JOK.2020.47.11.1044
웹 어플리케이션의 규모나 복잡성이 전통적인 소프트웨어보다 커 기존 결함 위치 추정 기법을 적용하기 어렵고, 웹 어플리케이션과 같은 복잡한 시스템 대상의 연구들도 시스템 내 구성 요소들 간 간접적 상호작용과 시스템의 동적 재구성을 고려하지 못한다. 이 문제를 풀기 위해 본 연구는 RESTful 웹 어플리케이션의 실행 기록을 구성 요소들이 수행하는 행위들의 순열로 모델링하고, 그 행위 모델 상에서 결함을 위치 추정하는 기법을 제안한다. 이 기법은 직간접적 상호작용을 모두 반영하는 행위 모델을 사용하고 실행 전에 모델을 미리 구축할 필요가 없어 동적 환경에 적합하다. 기법의 평가를 위해 사례 연구를 수행하여 전체 디버깅 대상 수의 1.8%에 해당하는 순위 내에 모든 결함을 위치 추정했다. 본 연구에서 제안하는 행위 모델 기반 RESTful 웹 어플리케이션 결함 위치 추정 기법이 대규모의 복잡한 웹 어플리케이션의 디버깅 노력을 효과적으로 감소시킬 것으로 기대된다.
소프트웨어 결함 예측의 조선해양/해상운송 산업 적용 사례 연구
http://doi.org/10.5626/JOK.2020.47.8.769
소프트웨어 결함 예측(Software Defect Prediction)은 최신의 다양한 기계학습 (Machine Learning) 기법을 적용하여 과거의 소프트웨어 결함 및 업데이트 정보를 학습한 모델을 기반으로 새로 개발된 소프트웨어 결함을 사전에 예측하는 연구이다. 이를 통해 실제 산업에서 소프트웨어 품질보증(SQA) 자원을 효과적으로 운영/배치하기 위한 가이드로 활용할 수 있다. 최근 산업 적용 사례들이 일부 학계에 보고되고 있지만, 특성이 서로 다른 다양한 도메인 적용과 이를 적용하면서 얻은 통찰을 실제에 반영하는 연구가 보다 활발하게 필요한 상황이다. 본 논문에서는 최근 고효율 친환경 선박, 커넥티드 선박, 스마트 선박, 무인 선박, 자율운항 선박 등 미래 운송 수단으로의 변화에 직면해 있는 조선해양/해상운송 산업에 소프트웨어 결함 예측의 적용 가능성을 제시한다. 해당 도메인에서 수집된 실제 데이터를 활용하여 실험을 수행한 결과 0.91 Accuracy와 0.831 F-measure의 높은 결함 예측 성능을 보여 가능성을 확인하였고, 기존 사례가 없는 해당 산업으로의 적용 방안을 제시하여 SQA 자원 배치를 효과적으로 지원하는 도구가 될 것으로 기대 된다.
추상 도달가능성 그래프 기반 소프트웨어 모델체킹에서의 탐색전략 고려방법
http://doi.org/10.5626/JOK.2017.44.10.1034
본 연구에서는 추상 도달가능성 그래프(ARG) 기반의 소프트웨어 모델체킹에서 그래프 탐색전략을 설정할 수 있는 새로운 방법을 제시한다. ARG의 여러 실행 경로를 하나로 묶어 모델체킹 성능을 향상시키는 기법인 블록 인코딩(Block Encoding) 기법을 활용하는 경우 기존의 기법들은 인코딩 전의 ARG에서 인코딩을 효과적으로 수행할 수 있는 탐색전략만을 고려하였을 뿐 실제 모델체킹의 성능을 좌우할 수 있는 인코딩 후의 ARG에 대한 탐색전략을 고려하지 못하는 문제가 있었다. 본 연구에서는 기존 연구에서 제시된 탐색 기법을 사용하여 블록 인코딩을 효과적으로 수행하는 동시에 인코딩된 후의 ARG에 대한 탐색 순서를 고려할 수 있는 이중 탐색전략 기법을 제시한다. 또한 탐색 순서의 변화가 모델체킹의 성능에 미치는 영향을 확인하기 위하여 제시하는 기법을 오픈소스 모델체킹 도구에 구현하고 벤치마크 실험을 수행하였으며 탐색전략이 달라지면 모델체킹의 성능이 달라지는 현상을 확인하였다.
토픽 모델링과 이해관계자 요구 산출물을 이용한 요구사항 자동 우선순위화
소프트웨어 개발에 투자되는 자원은 한정되어 있으므로 요구사항들을 우선순위화하여 중요한 요구사항부터 충족시켜야 한다. 기존 요구사항 우선순위화 기법들은 인간의 수동화된 판단에 의존하므로 요구사항의 수가 많은 경우에는 적용하기가 힘든 확장성 문제와 이해관계자 개개인의 편향된 가치판단에 노출되는 편향성 문제를 가지고 있다. 이 문제들을 해결하고자 본 논문은 요구사항 도출 단계에서 얻어지는 이해관계자 요구 산출물과 텍스트의 의미적 주제를 추리하는 토픽 모델링 기법을 이용한 자동 요구사항 우선순위화 기법, ToMSN(Topic Modeling Stakeholder Needs for requirements prioritization)을 제안한다. 이 기법을 사용자 30,000명 규모의 실제 소프트웨어 요구사항 데이터로 평가한 결과, 인간의 개입이 필요 없는 자동화 과정으로 확장성과 편향성 문제를 해결함과 더불어 우선순위화 정확도 또한 기존 수동화 기법들과 유사함을 확인할 수 있었다.