서지주요정보
Evolutionary knowledge management and support for solving problems in software reuse in open source software = 오픈 소스 소프트웨어 환경에서 자산 재사용 시의 문제 해결을 위한 진화적 지식 관리 및 지원 방법
서명 / 저자 Evolutionary knowledge management and support for solving problems in software reuse in open source software = 오픈 소스 소프트웨어 환경에서 자산 재사용 시의 문제 해결을 위한 진화적 지식 관리 및 지원 방법 / Hyung-Min Koo.
발행사항 [대전 : 한국과학기술원, 2015].
Online Access 원문보기 원문인쇄

소장정보

등록번호

8028050

소장위치/청구기호

학술문화관(문화관) 보존서고

DCS 15002

휴대폰 전송

도서상태

이용가능(대출불가)

사유안내

반납예정일

리뷰정보

초록정보

Software reuse is a paradigm for using existing software assets to develop new soft-ware rather than building software from scratch. As the complexity of software increases, it is essential to reuse intangible software assets such as knowledge and experiences of solving software development problems rather than simply reusing tangible software assets such as components and other artifacts. Open Source Software (OSS) has become an important envi-ronment where developers create, exchange, and improve reusable software assets by collabo-rating with each other. Although developers may find useful software assets to reuse from OSS for their projects, they usually experience difficulties in solving problems that occur while integrating the assets to their own software. We investigated data from major open source environments such as Sourceforge.net and GitHub, and learned that there is a common pattern of solving problems in reuse in OSS. To analyze the pattern in detail, we have devel-oped an ontological model to formally represent the symptoms and causes of the problems in software reuse, and the correlations between them. Based on this model, we developed a framework for evolutionary knowledge management and support for solving problems in software reuse in OSS. We collected data from Sourceforge.net, and built a knowledge base by using our framework for the most common types of symptoms and causes of problems that developers frequently face with. We extracted the core types of symptoms and causes for the problem type and calculated the number of correlations between the types of symptoms and causes. We found that there exist correlations between the symptoms and causes that are extracted from the discussion threads for the problem type, and about 69% of them are statis-tically significant. We also conducted a study to understand the effective timing of recom-mending solutions to the developers by analyzing the recall rates of finding the causes of the problems in a timeline. We figured that most of the important causes of a problem are dis-cussed at the beginning of the forum discussion. This leads us to the conclusion that recom-mending the causes of a problem early by using our knowledge framework may help devel-opers spend less time to solve the problem (around 50% less time than solving the problem without using our framework). Especially, we found that many problems are involved with multiple symptoms and causes and it is critical to identify those symptoms and causes early to solve the problems more efficiently. We developed a Bayesian network based approach to semi-automatically construct problem-solving knowledge for software reuse, and to recom-mend potential causes of a problem based on multiple symptoms reported in OSS. Our exper-iments showed that the approach is effective to recommend the core causes of a problem, and contributes to solve the problems in software reuse in an efficient manner.

소프트웨어 재사용은 새로운 소프트웨어 개발 시 처음부터 개발하는 것이 아니라 기존에 개발되어 있는 소프트웨어 자산들을 이용하여 개발함으로써 생산성, 품질, 유지보수성 및 신뢰성을 높이고 개발비용, 시간 및 복잡성을 줄이고자 하는 개념이다. 재사용 자산의 범위는 크게 보이는 자산과 보이지 않는 자산으로 나눌 수 있는데 보이는 자산은 소프트웨어를 개발함에 있어서 생산되는 산출물들과 소스코드, 컴포넌트 등을 말하며 보이지 않는 자산은 문서화되어 있지 않은 기술, 지식 및 경험 등을 말한다. 현재 소프트웨어의 복잡성이 증가함에 따라 보이지 않는 자산의 재사용이 매우 중요시 되고 있는 추세이다. 특히 소프트웨어 개발 시 지식의 중요성은 오랫동안 논의되어 왔고 현재 소프트웨어의 복잡성으로 인해 그 중요성이 더 강조되고 있다. 최근에 오픈 소스 소프트웨어 환경이 중요한 소프트웨어 재사용 환경이 되어 가고 있고 다양한 개발 도메인의 개발자들에 의해 활용되고 있다. 그러나 개발자들이 자신이 활용 가능한 유용한 자산을 찾았다 하더라도 재사용 시 예상치 못한 어려움을 겪을 수 있고 이러한 문제에 직면했을 때 포럼 등의 게시판을 통해 다른 개발자의 도움을 얻고자 한다. 포럼 등 게시판 형태의 개발자 토의는 주로 자연어로 작성 되고 어느 정보가 자신에게 유용한지 알아내기가 어렵다. 본 연구에서는 오픈 소스 소프트웨어에서 개발자들이 어떠한 형태로 논의를 진행하는지 알아보기 위해 소스포지의 개발자 포럼 데이터를 이용하여 그 패턴을 분석하여 보았다. 문제에 직면한 개발자들은 그 문제의 증상을 포럼에 올리고 유사한 증상 및 다른 증상을 경험한 타 개발자들이 논의에 참여한다. 어느 정도 시간이 흐른 뒤 증상을 나타내는 문제의 원인들이 활발히 논의되고 최종적으로 해결책이 게시되기 시작한다. 본 연구에서 이러한 패턴을 개발자 인터렉션 패턴이라 정의하였다. 이러한 증상, 원인, 해결책을 바탕으로 온톨로지 기반의 재사용 문제 해결 지식 모델을 구축하고 지식 구축을 위한 프레임워크를 개발하였다. 구축된 지식을 바탕으로 데이터 마이닝 기법을 활용해 주로 발생하는 증상과 원인의 타입들과 그 세부타입들을 정의하였고 증상과 원인 간의 상관관계를 분석하였다. 분석된 상관관계의 통계적 유의성 검정을 위해 선형 모델 분석을 수행하였고 통계적으로 유의한 상관관계를 갖는 증상과 원인을 지식 베이스에 유지하도록 하였다. 지식 베이스에서 증상을 기반으로 효율적으로 그 원인을 추천해 주기 위하여 확률적 모델인 베이지언 네트워크를 활용하였다. 베이지언 네트워크는 증상 및 원인 온톨로지를 기반으로 자동으로 생성되고 확률 값들 또한 각 노드에 자동적으로 할당된다. 소스포지의 포럼 데이터를 활용한 실험을 해 본 결과 베이지언 네트워크를 활용한 재사용 문제의 원인 추천 정확도는 상관관계만 활용하였을 때 보다 약 10% 증가함을 확인하였다. 그리고 재사용 문제를 위해 소비되는 시간을 측정해 본 결과 본 프레임워크를 활용했을 때 활용하지 않았을 경우보다 약 30% 감소 할 수 있음을 확인하였다. 본 연구를 통해 오픈 소스 소프트웨어 환경에서 자산 재사용 시 발생하는 문제들을 해결하기 위한 정형적 지식의 구조를 식별 및 정의하였고 문제 해결 지식의 구축을 위한 프레임워크를 개발하였다. 온톨로지와 베이지언 네트워크를 활용한 반 자동적 지식 획득, 추천 및 진화 방법을 개발하였고 개발된 프레임워크 및 방법들을 실제 개발자들이 주고 받는 포럼 데이터를 통해 실질적인 실험을 하였다. 제안된 프레임워크를 활용하면 자산 재사용시 발생할 수 있는 문제 해결을 위한 시간을 단축 시킬 수 있음을 확인하였고 개발된 프레임워크 및 방법들은 도구들로 제공되어 지식 관리를 위한 개발자들의 추가적인 오버헤드를 줄일 수 있을 것으로 예상한다.

서지기타정보

서지기타정보
청구기호 {DCS 15002
형태사항 vii, 87 p : 삽화 ; 30 cm
언어 영어
일반주기 저자명의 한글표기 : 구형민
지도교수의 영문표기 : In Young Ko
지도교수의 한글표기 : 고인영
Including Appendix
학위논문 학위논문(박사) - 한국과학기술원 : 전산학과,
서지주기 References : p.
QR CODE

책소개

전체보기

목차

전체보기

이 주제의 인기대출도서