UML 클래스 다이어그램 기반의 효율적인 C++코드 생성기의 설계와 구현

Design and Implementation of an Efficient C++ Code Generator based on UML Class Diagram

  • 조형주 (한국과학기술원 전자전산학과) ;
  • 정진완 (한국과학기술원 전자전산학과) ;
  • 김형주 (서울대학교 컴퓨터공학부)
  • 발행 : 2000.08.31

초록

UML은 OMG에 의해서 표준 객체지향 모델링 언어로 승인 받았다. 그러나, UML을 지원하는 몇몇의 CASE 도구들이 생성한 C++ 코드는 1대 n 관계나 aggregation 관계의 의미를 정확히 반영하지 못하고 있다. 또한, 상용 CASE 도구들이 하나의 UML 클래스 다이어그램에서 너무 많은 프로그래밍 언어를 지원하기 때문에, 그들은 C++언어가 가지는 특징을 효율적으로 지원하지 못하고 있다. 제안된 C++코드 생성기는 1대 n의 관계, aggregation 관계, 코드 패턴(code pattern), 디자인 패턴(design pattern)을 지원한다.본 논문에서는 UML 클래스 다이어그램 기반의 효율적인 C++ 코드 생성기의 설계와 구현에 대하여 기술한다.

The Unified Modeling Language(UML) became the standard object oriented modeling language approved by Object Management Group(OMG). However, C++ codes which are generated by some CASE tools supporting UML do not reflect the correct semantics of one-to-many relationship and aggregation relationship. Additionally, since the commercial CASE tools support too many programming languages on one UML class diagram, they do not support efficiently the characteristics of C++ language. Our C++ code generator supports one-to-many relationship, aggregation relationship, code patterns and design patterns. In this paper, we describe design and implementation of the efficient C++ code generator based on UML class diagram.

키워드

참고문헌

  1. OCS Ltd, 'C++ New Standard,' http://www.ocsltd.com/ c++/, 1997
  2. K. Scott and M. Fowler, 'UML Distilled,' Addison-Wesley, 1997
  3. S. Khoshafian and R. Abnous. 'Object Orientation,' John Willey & Sons, 1995
  4. Rational Software, 'Rational Rose 98i,' http://www.rational.com/rose, 1999
  5. Platinum Technology, 'Paradigm Plus,' http://www.platinum.com/products/appdev/pplus_ps.htm/ 1999
  6. 최은혁, 최은만, '역공학을 이용한 C 및 C++ 재사용부품 추출 및 검색', 정보과학회 논문지(C), Vol.2, No.2, pp.197-205, 1996
  7. 김태균, 'C++ 언어에 대한 역공학 도구의 설계와 구현', 정보과학회 논문지(C), Vol.1, No.2, pp.135-145,1995
  8. 문양선 외 5명, 'C++ 프로그램의 이해도 증진을 위한 역공학 시각화 도구', 정보과학회 논문지(C), Vol.1, No.2, pp.160-171, 1995
  9. B. Stroustrup, 'The C++ Programming Language 3rd,' Addson Wesley, 1997
  10. B. Stroustrup, 'The C++ Programming Language 2nd,' Addison Wesley, 1991
  11. Quintessoft's whitepaper, 'Code Patterns,' http://www.quintessoft.com/whitepap.htm, 1997
  12. Quintesoft Company, 'Code Navigator for C++(TM),' http://www.quintessoft.com/, 1997
  13. C. Kramer and L. Prechelt, 'Design Recovery by Automated Search for Structural Design Patternsin OO Software,' Conf. of Reverse Engineering, Nov. IEEE'96, 1996 https://doi.org/10.1109/WCRE.1996.558905
  14. E. Gamma, et. al., 'Design Patterns - Elements of Reusable Object-Oriented Software,' Addison-Wesley, 1995
  15. M. Meijers, et. al., 'Tool Support for Object-Oriented Design Patterns,' Proceedings of ECOOP'97, 1997
  16. I. Sommerville, 'Software Engineering,' Addison-Wesley, 1995
  17. Rational Software Company, 'UML Notation Version 1.1,' http://www.rational.com/uml/html notation, Nov. 1997
  18. Rational Software Company, 'UML Semantics Version 1.1,' http://www.rational.com/uml/html/semantics, Nov. 1997
  19. 김희천, 우치수, '문서화 지원을 위한 CASE 도구의 설계 및 구현', 정보과학회 논문지(C), Vol.3, No.1, pp.37-50, 1997