Since the emergence of software engineering, researchers have struggled to develop techniques that would solve or at least alleviate the software crisis problem. One of the promising solutions is software reuse in general and component based software engineering (CBSE) which relies on mass produced components in particular. Realizing CBSE requires its own set of new technologies of which adaptation (modification) is probably one of the most urgent areas that need attention. In this thesis, based on works on estimating cost of software modification, we tried to propose a framework that would enable developers choose a component from a library of component for their query that requires the least adaptation effort. We improved on a work done earlier on a similar topic focusing on functions and extended it to suit the needs of component matching. We will define what a component specification is formally and use it as a basis for the information that we use during the development of the framework. The work shows how the information contained in specification (which purely describes the behavior independent of implementation) can be used to compare components to see which one is easier to modify.
소프트웨어 공학이 대두된 이후에, 많은 사람들은 소프트웨어 위기를 해결하고자 노력해왔다. 여러가지 해결방안중에 하나는 소프트웨어 재사용과 수많은 컴포넌트 양산에 의존하는 컴포넌트 기반의 소프트웨어 공학이다. 컴포넌트 기반의 소프트웨어 공학을 위해서는 기존의 컴포넌트를 가져와서 현재 개발하고자 하는 소프트웨어에 적용(변경)하는 새로운 기술이 필요하다. 본 논문에서는 소프트웨어 변경 비용을 추산하는 연구를 기반으로 하여, 개발자로 하여금 컴포넌트 라이브러리에서 컴포넌트를 추출하여 적용하는데 드는 비용을 최소화 할 수 있도록 하는 프레임웍을 제안한다. 우리는 이 연구에서 컴포넌트의 기능에 초점을 맞추었던 기존의 유사한 연구를 발전시켜 컴포넌트 선정의 필요에 맞도록 확장하였다. 본 연구에서는 컴포넌트 명세를 정형적으로 정의하고, 이를 프레임웍의 개발에 기반이 되는 정보로 이용하였다. 본 연구는 컴포넌트 명세(구현에 관계없이 순수하게 행위만이 기술되어 있는)에 포함되어 있는 정보가 가장 변경이 용이한 컴포넌트를 찾는데 어떻게 쓰이는지 보여준다.