Representation, Management and Sharing of Reuse-related Knowledge for Improving Software Reusability

소프트웨어 재사용성 증대를 위한 재사용 관련 지식의 표현, 관리 및 공유 방법

  • Received : 2011.01.07
  • Accepted : 2011.02.22
  • Published : 2011.03.31

Abstract

Software reuse the concept of developing software by using existing software assets, rather than developing it from scratch. Developers may face difficulties of reusing existing software assets because existing assets are normally developed by other developers for different purposes. Developers tend to seek appropriate knowledge about effectively reusing software assets from the developers who have faced and solved similar problems in reusing software assets previously. In other words, the reuse-related knowledge of domain experts or other developers usually provides important clues to solve reuse-related problems. Such reuse-relalted knowledge can help developers to reduce the time and effort to identify and solve the difficulties and problems that may arise in reusing software assets and in minimizing the risks of reusing them by allowing them to reuse reliable software assets in an appropriate way and by recognizing similar requirements or constraints of resuing the assets. In this paper, we describe a model to represent reuse-related knowledge in a formal way, and explain the architecture and a prototype implementation of Software Reuse Wiki (SRW) that enables collaborative organization and sharing of software reuse-related knowledge. We have conducted an experiment pertaining to problem solving in reusing assets based on reuse-related knowledge. We also discuss about our evaluation plan for showing the benefits and contributions of reuse knowledge representation model and management methods in SRW. We expect that SRW can contribute to facilitate users' participations and make efficient sharing and growing of reuse-related knowledge. In addition, the representation model of reuse-related knowledge and management methods can make developers acquire more reliable and useful reuse-related knowledge in a straightforward manner without spending additional efforts to find solutions to solve reuse-related problems.

소프트웨어 재사용이란 새로운 소프트웨어를 개발할 때 처음부터 모든 것을 새로 개발하는 것이 아니라 기존에 개발 된 재사용 가능한 자산을 활용하여 개발하는 개념이다. 기존 자산들은 다른 개발자에 의해 다른 목적으로 개발되었으므로 개발자들은 이러한 자산을 올바르게 재사용함에 있어서 어려움에 직면할 수 있다. 이러한 어려움에 직면했을 때 개발자들은 도움을 얻기 위하여 그 자산들과 관련된 적절한 지식이나 과거 유사한 어려움을 겪었던 개발자로부터의 정보를 얻고자 하는 경향이 있다. 따라서 개발 도메인 전문가나 다른 개발자의 지난 경험은 소프트웨어 자산 재사용 시의 참고자료로서 중요한 역할을 할 수 있다. 재사용 관련 지식은 같거나 유사한 문제나 어려움을 해결함에 있어서 시간과 노력을 줄일 수 있게 도와주고, 이미 여러 번의 재사용으로 검증된 자산을 이용할 수 있게 해 줌으로써 재사용의 위험요소 또한 줄일 수 있다. 본 논문에서는 재사용 관련 지식의 표현 모델을 제시하고, 지식의 협력적인 공유 및 증식을 용이하게 하기 위한 소프트웨어 재사용 위키의 아키텍처 및 프로토타입을 설명한다. 또한 재사용 관련 지식 모델과 그에 따른 관리 방법의 효과를 검증하기 위해 재사용 문제해결에 관한 검증 계획을 설명한다. 본 연구를 통해 개발자들의 참여를 유도하여 재사용 관련 지식의 효과적인 공유 및 증식이 가능하고, 정형화되고 체계적인 저장 및 관리를 통해 재사용 문제 해결에 도움을 줄 수 있으리라 기대한다.

Keywords