A Extraction of Multiple Object Candidate Groups for Selecting Optimal Objects

최적합 객체 선정을 위한 다중 객체군 추출

  • 박성옥 (전북대학교 전산통계학과) ;
  • 노경주 (전북대학교 전산통계학과) ;
  • 이문근 (전북대학교 컴퓨터과학과)
  • Published : 1999.12.01

Abstract

didates.본 논문은 절차 중심 소프트웨어를 객체 지향 소프트웨어로 재/역공학하기 위한 다단계 절차중 첫 절차인 객체 추출 절차에 대하여 기술한다. 사용한 객체 추출 방법은 전처리, 기본 분할 및 결합, 정제 결합, 결정 및 통합의 다섯 단계로 이루어진다 : 1) 전처리 과정에서는 객체 추출을 위한 FTV(Function, Type, Variable) 그래프를 생성/분할 및 클러스터링하고, 2) 기본 분할 및 결합 단계에서는 다중 객체 추출을 위한 그래프를 생성하고 생성된 그래프의 정적 객체를 추출하며, 3) 정제 결합 단계에서는 동적 객체를 추출하며, 4) 결정 단계에서는 영역 모델링과 다중 객체 후보군과의 유사도를 측정하여 영역 전문가가 하나의 최적합 후보를 선택할 수 있는 측정 결과를 제시하며, 5) 통합 단계에서는 전처리 과정에서 분리된 그래프가 여러 개 존재할 경우 각각의 처리된 그래프를 통합한다. 본 논문에서는 클러스터링 순서가 고정된 결정론적 방법을 사용하였으며, 가능한 경우의 수에 따른 다중 객체 후보, 객관적이고 의미가 있는 객체 추출 방법으로의 정제와 결정, 영역 모델링을 통한 의미적 관점에 기초한 방법 등을 사용한다. 이러한 방법을 사용함으로써 전문가는 객체 추출 단계에서 좀더 다양하고 객관적인 선택을 할 수 있다.Abstract This paper presents an object extraction process, which is the first phase of a methodology to transform procedural software to object-oriented software. The process consists of five steps: the preliminary, basic clustering & inclusion, refinement, decision and integration. In the preliminary step, FTV(Function, Type, Variable) graph for object extraction is created, divided and clustered. In the clustering & inclusion step, multiple graphs for static object candidate groups are generated. In the refinement step, each graph is refined to determine dynamic object candidate groups. In the decision step, the best candidate group is determined based on the highest similarity to class group modeled from domain engineering. In the final step, the best group is integrated with the domain model. The paper presents a new clustering method based on static clustering steps, possible object candidate grouping cases based on abstraction concept, a new refinement algorithm, a similarity algorithm for multiple n object and m classes, etc. This process provides reengineering experts an comprehensive and integrated environment to select the best or optimal object candidates.

Keywords

References

  1. Software Reengineering Robert S. Arnold
  2. Journal of Object-Oriented Programming Class and object extraction from imperative C. L. Ong;W. T. Tsai
  3. IEEE Transaction on Software Engineering v.SE-10 no.5 A Expensive view of reusable software E. Horowitz
  4. Technical Report Number CS95-418 Architecture Transformation of Legacy System Harald C. Gall;Rene R. Klosch;Roland T. Mittermier
  5. Software-Practive and Experience v.26 no.1 An Improved Algorithm for Identifying Object in Code G. Canfora;A. Cimitile;M. Munro
  6. Proc. European Software Engineering Conference Object Oriented Re-Architecturing Harald Gall;Rene Klosch;Roland Mittermeir
  7. Journal of Software Maintenance;Research and Practice v.6 A New Approach to Finding Objects in Programs Panos E. Livadas;Theodore Johnson
  8. Conf. of Software Engineering & Knowledge Engineering Reverse Engineering Procedural Code for Object Recovery Doris L. Carver
  9. TOOLS97 Deriving an Object Model from Procedural Programs Yunsook Jin;Pyeong S. Mah;Gyusang Shin
  10. 한국 정보 과학회 논문집(B) v.제25권 no.제11호 소프트웨어 아키텍쳐를 이용한 역공학 모델 이문근;정창신;정명선
  11. ACM Transactions on Database System The Entity-Relationship Model;Toward A unified View of Data P. Chen
  12. Binding Object Models to Source Code;An Approach to Object-Oriented Re-Architecturing Harald Gall;Johannes Weidl