문맥 (context)
본 발명은 레거시 시스템을 컴포넌트화하는 장치 및 방법에 관한 것으로서, 더욱 상세하게는 레거시 시스템에 포함된 소프트웨어 구성 요소들을 그 연관 관계에 따라 추상적 또는 논리적 모듈로 재구성하는 레거시 시스템을 컴포넌트화하는 장치 및 방법에 관한 것이다.
소프트웨어 분야의 기술 발전과 더불어 디지털 기기에 대한 소프트웨어 관리의 중요성도 점차 증대하고 있다. 이는 하드웨어 자체에 의하여 제공되는 기능, 하드웨어와 소프트웨어의 조합에 의하여 제공되는 기능이 소프트웨어만에 의하여 제공되어 가는 과정에서 필연적으로 발생하는 현상이다.
유사한 특성을 갖는 기기군은 동일한 플랫폼을 공유하면서, 특정 기능을 제공하는 별도의 모듈을 포함하는 형태로 개발될 수 있다.
컴포넌트 모델은 하나의 소프트웨어 시스템을 구성하는 모든 기능 요소들을 세분화하고 각 요소들간의 연관 관계를 파악함으로써, 다양한 형태의 개발 작업에 보다 쉽게 적용할 수 있는 추상적 또는 논리적 모듈 구조를 제공하는 개념이다. 이러한 컴포넌트 모델은 시스템의 설계 시점부터 컴포넌트 모델에 기반하여 시스템을 개발하는 톱-다운(top-down) 방식과, 이미 구현된 시스템을 분석하여 컴포넌트 모델로 구성하는 바텀-업(bottom-up) 방식으로 분류될 수 있다.
소프트웨어 시스템을 구성하는 모듈들은 각각의 기능을 제공할 수 있도록 설계되는데, 이 모듈들이 통합됨으로써 시스템은 독자적인 작업을 수행할 수 있는 능력을 갖추게 된다. 또한, 기능 개선을 위하여 재 작성된 일부 모듈이 적용됨으로써 다양한 실행 환경에 적응할 수 있는 소프트웨어 시스템이 구현될 수 있다.
소프트웨어의 재사용은 기능적 유사성을 가지는 두 소프트웨어 시스템간에 공통된 모듈을 정의하고, 공통된 모듈의 기능을 확장하거나 공통된 모듈간의 접합 코드를 소프트웨어 시스템에 부가하는 것으로 구현되는데, 소프트웨어의 재사용으로 인하여 시스템 개발의 효율성이 증가하게 된다.
바텀-업 방식으로 컴포넌트 모델을 구성하기 위한 종래의 분석 방법은 각 소스 코드간의 참조 및 호출 정보에 기반한 일차원적인 정보만을 소프트웨어 개발자에게 제공하였다. 이에 따라, 개발자는 기 개발된 소프트웨어 시스템에 포함된 컴포넌트간의 경계를 인식함에 있어서 어려움을 겪게 되었고, 수동 작업을 통해서만 컴포넌트 모델을 구성할 수 있게 되었다. 즉, 분석된 정보를 이용한 개발자의 수동 작업이 수행됨에 따라, 기존 소프트웨어 시스템의 갱신을 위한 비용과 시간의 낭비가 필연적으로 수반될 수 밖에 없었던 것이다.
따라서, 개발자의 개입 없이도 기존 소프트웨어 시스템을 자동으로 컴포넌트 모델로 구성하는 발명의 등장이 요구된다.
지시문 (instruction)
주어진 원문을 읽고 필요한 정보를 파악하여, 원문에 근거해 질문에 답하라.
질문 (question)
소프트웨어의 재사용을 구현하기 위해 공통된 모듈을 정의한 후 수행되는 구체적인 작업 방식은 무엇인가?
추론 과정 (compact_reasoning)
-
1과제 해석
task_interpretation소프트웨어 재사용 구현 시 공통 모듈 정의 이후에 이루어지는 작업 단계를 파악한다.
-
2정보 추출
information_extraction소프트웨어 재사용 구현 방식에 관한 문장을 추출한다.
- 소프트웨어의 재사용은 기능적 유사성을 가지는 두 소프트웨어 시스템간에 공통된 모듈을 정의하고, 공통된 모듈의 기능을 확장하거나 공통된 모듈간의 접합 코드를 소프트웨어 시스템에 부가하는 것으로 구현되는데
-
3근거 선택
evidence_selection공통 모듈 정의 이후의 동작인 '기능 확장'과 '접합 코드 부가'를 핵심 근거로 선별한다.
- 공통된 모듈의 기능을 확장하거나 공통된 모듈간의 접합 코드를 소프트웨어 시스템에 부가하는 것
-
4논리 통합
logical_integration공통 모듈 정의 -> 기능 확장 및 접합 코드 부가로 이어지는 구현 과정을 통합한다.
-
5결론 도출
conclusion_formulation추출된 정보를 바탕으로 재사용 구현 방법을 정리한다.
- 공통된 모듈의 기능을 확장하거나 공통된 모듈간의 접합 코드를 소프트웨어 시스템에 부가하는 것
-
6답변 생성
answer_generation질문에 대해 명확한 문장으로 최종 답변을 작성한다.
- 공통된 모듈의 기능을 확장하거나 공통된 모듈간의 접합 코드를 소프트웨어 시스템에 부가하는 것
최종 답변 (final_answer)
공통된 모듈의 기능을 확장하거나, 공통된 모듈 간의 접합 코드를 소프트웨어 시스템에 부가하는 방식으로 구현된다.
핵심 해석 (core_interpretation)
소프트웨어의 재사용은 기능적 유사성을 가지는 시스템 간에 공통된 모듈을 정의하고 그 기능을 확장하거나 접합 코드를 부가하는 방식으로 구현된다.