Extraction of Classes and Hierarchy from Procedural Software

절차지향 소프트웨어로부터 클래스와 상속성 추출

  • Choi, Jeong-Ran (Dept.of Electronics Information Engineering, Chonbuk National University) ;
  • Park, Sung-Og (Dept.of Electronics Information Engineering, Chonbuk National University) ;
  • Lee, Moon-Kun (Dept.of Electronics Information Engineering, Chonbuk National University)
  • 최정란 (전북대학교 전자정보공학부) ;
  • 박성옥 (전북대학교 전자정보공학부) ;
  • 이문근 (전북대학교 전자정보공학부)
  • Published : 2001.09.01

Abstract

This paper presents a methodology to extract classes and inheritance relations from procedural software. The methodology is based on the idea of generating all groups of class candidates, based on the combinatorial groups of object candidates, and their inheritance with all possible combinations and selecting a group of object candidates, and their inheritance with all possible combinations and selecting a group with the best or optimal combination of candidates with respect to the degree of relativity and similarity between class candidates in the group and classes in a domain model. The methodology has innovative features in class candidates in the group and classes in a domain model. The methodology has innovative features in class and inheritance extraction: a clustering method based on both static (attribute) and dynamic (method) clustering, the combinatorial cases of grouping class candidate cases based on abstraction, a signature similarity measurement for inheritance relations among n class candidates or m classes, two-dimensional similarity measurement for inheritance relations among n class candidates or m classes, two-dimensional similarity measurement, that is, the horizontal measurement for overall group similarity between n class candidates and m classes, and the vertical measurement for specific similarity between a set of classes in a group of class candidates and a set of classes with the same class hierarchy in a domain model, etc. This methodology provides reengineering experts with a comprehensive and integrated environment to select the best or optimal group of class candidates.

본 논문은 절차지향 소프트웨어로부터 클래스와 상속성을 추출하기 위한 방법론을 제안한다. 본 논문에서 제안한 방법론은 모든 경우의 객체 후보군으로부터 정의된 클래스 후보군과 그들의 상속성을 생성하여 클래스 후보군과 영역 모델 사이의 관계성과 유서 정도를 가지고 최고 또는 최적의 클래스 후보군을 선택하는데 초점을 둔다. 클래스와 상속성 추출 방법론은 다음과 같은 두드러진 특징을 가지고 있다. 정적(속성)과 동적(메소드)인 클러스터링 방법을 사용하고, 클래스 후보군의 경우는 추상화에 초점을 두며, m개의 클래스 후보군과 n개의 클래스 후보 사이의 상속 관계의 유사도 측정 즉, 2차원적 유사도 측정은 m개의 클래스 후보와 n개의 클래스 후보 사이의 전체 그룹에 대한 유사도를 구하는 수평적 측정과 클래스 후보군들에서 상속성을 가진 클래스의 집합과 영역 모델에서 같은 클래스 상속성을 가진 클래스 집합 사이의 유사도를 위한 수직적 측정방법이 있다. 이러한 방법론은 최고 또는 최적의 클래스 후보군을 선택하기 위해 제공학 전문가에게 광범위하고 통합적인 환경을 제시하고 있다.

Keywords

References

  1. G. Booch, Object-Oriented Development, IEEE Transaction on Software Engineering, Vol. SE-12, No.2, pp. 211-221, Feb., 1986
  2. 권오천, 신규상, '역공학 및 재공학의 기술 동향', 한국정보과학회 소프트웨어 공학 회지, 제12권, 제1호, pp. 6-21, 1999
  3. 김행곤, '기존 시스템에서 객체지향 시스템으로의 재공학 방법론', 박사논문
  4. J. A. Zimmer, 'Restructuring for Style,' Software Practice and Experience, Vol. 20, No. 4, pp, 365- 389, April, 1990 https://doi.org/10.1002/spe.4380200404
  5. W. C. Dietrich, Jr., L. R. Nackman and F. Gracer, 'Saving a Legacy with Object,' Proc. OOPSLA, Association for computing Machinery, N. Y. pp. 77-83, 1989 https://doi.org/10.1145/74877.74886
  6. Harald C. Gall, Rene R. Klosch and Roland T. Mittennier, 'Architecture Transformation of Legacy System,' Technical Report Number CS95-418, Seattle, April, 1995
  7. I. Jacobson, 'Re-Engineering of Old System to an Object-oriented Architecture,' Proc OOPS LA, Association for Computer Machinery, N. Y. pp. 340-350, 1991
  8. W. J. Premerlani and M. R. Blaha, 'An Approach for Reverse Engineering Relational Database,' Communication of the ACM, Vol. 37, No. 5, pp. 42-49, May, 1994 https://doi.org/10.1145/175290.175293
  9. P. T. Breuer and K. Lano, 'Creating Specifications from Code : Reverse Engineering Techniques,' J Software Maintenance : Research and Practice, Vol. 3, pp, 145-162, 1991 https://doi.org/10.1002/smr.4360030303
  10. H. M. Sneed and E. Nayary, 'Extracting Object-oriented Specification from Procedurally Oriented Programs,' 2nd Working Conference on Reverence Engineering, pp, 217-226, Jul., 1995
  11. P. A. Hausler, M. G. Pleszkoch and L. C. Linger, 'Using Function Abstraction to Understanding Program Behaviour,' IEEE Software, pp, 55-63, Jan. 1990 https://doi.org/10.1109/52.43050
  12. J. Ayre, D. McFall, J. G. Higher and C. Delobel, 'A Method for Re-engineering Existing Relational Database Applications for the Satisfaction of Multimedia Based Requirement,' Database Reengineering and Interoperability, edited by To-vat Cheung etal., Plenum Press, New York, pp, 1-13, 1996
  13. A. Quilici, 'A Memory-based Approach to Recognizing Programming Plans,' Communication of the ACM, Vol. 37, No. 5, May, 1994 https://doi.org/10.1145/175290.175301
  14. A. Cimitile, A. De Lucia, G. A. Di Lucca and A. R. Fasolino, 'Identifying Objects in Legacy Systems Using Design Metrics,' The Journal of Systems and Software, vol. 44, No. 3, pp. 199-211. Jan., 1999 https://doi.org/10.1016/S0164-1212(98)10057-2
  15. Panos E. Livadas and Theodore Johnson, 'A New Approach to Finding Objects in Programs,' Journal of Software Maintenance : Research and Practice, Vol. 6, pp, 249-260, 1994 https://doi.org/10.1002/smr.4360060503
  16. Doris L. Carver, 'Reverse Engineering Procedural Code for Object Recovery,' Conf. of Software Engineering & Knowledge Engineering, pp. 442-449, 1996
  17. G. Canfora, A. Cirnitile and M. Munro, 'An Improved Algorithm for Identifying Object in Code,' Software- Practive and Experience, Vol. 26(1), pp. 25-48, January, 1996 https://doi.org/10.1002/(SICI)1097-024X(199601)26:1<25::AID-SPE994>3.0.CO;2-T
  18. 박성옥, 노경주, 이문근, '최적합 객체 선정을 위한 다중 객체군 추출', 한국정보과학회 논문집(B), 제26권, 제12호, pp. 1468-1481, 1999
  19. Harald Gall, Rene Klosch and Roland Mittermeir, 'Object Oriented Re-Architecturing,' Proc. European Software Engineering Conference, Sep., 1995
  20. Harald Gall and Johannes Weidl, 'Binding Object Models to source Code An Approach to Object-Oriented Re-Architecturing,' TUV-1841-87-14, 1998
  21. T. Wiggerts, H. Bosma, and E. Fielt. 'Scenarios for the Identification of Obj ects in Legacy Systems,' In Preceeding of the Fourth Working Conference on Reverse Engineering 1997, IEEE Computer Society. 1997, pp.24-32
  22. M.Siff and T. Reps. 'Identifying Modules Via Concept Analysis,' In International Conference on Software Maintenance, ICSM97. IEEE Computer Society, 1997 https://doi.org/10.1109/ICSM.1997.624243
  23. M.Siff and T. Reps. 'Identifying Modules Via Concept Analysis,' IEEE Transaction on Software Engineering, Vol. 25, No. 6, Nov/Dec 1999, pp. 749-768 https://doi.org/10.1109/ICSM.1997.624243
  24. R. Wille. 'Restructuring Lattice Theory: An Approach Based on Hierarchies of Concepts,' Ordered Sets, I. Rival, ed., pp.445-470, NATO Advanced Study Inst., Sept 1981
  25. C. Lindig, G. Snelting. 'Assessing Modular Structure of Legacy Code Based on Mathematical Concept Analysis,' In Proceeding of the 1997 International Conference on Software Engineering, pp.349-359
  26. 박외진, 민상윤, 배두환, 마평수, '객체지향 재공학을 위한 개체 모델 정제기법', 한국 정보과학회 논문집(B), 제25권 10호, 1998.10, pp. 1506-1517