The Design and Implementation of Class Relation Information Tool from C++ Code

C++ 코드로부터 클래스 관련 정보 생성 도구의 설계 및 구현

  • 장덕철 (광운대학교 컴퓨터과학과) ;
  • 박장한 (삼육의명대학 전산정보과)
  • Published : 2000.03.01

Abstract

Automation tools for program analysis are needed in order to program understand and maintain, extract the characteristics of object-oriented program such as class name, member function and data member. In this paper, we carried out design and implementation of the automation tool for effective maintenance of object-oriented software. Being based on Reverse Engineering, this approach extracts class relationship information from C++ source code and generates object-oriented model of class diagram using UML as the standard object-oriented methodology. Therefore, this paper provides developers visualized including class information, definitions of classes, inheritance relationships, set relationships, and simple reference relationships. Finally in this paper, we propose a method that construct class relationship information to table in analysis state and make form of table construction to link form so tat developers can perform understanding and maintaining program efficiently. And this method enable to restructure and reuse in object-oriented model.

Keywords

References

  1. Booch, G., Object-Oriented Analysis and Design with Applications 2nd Edition, Addison Wesley Longman, Inc, 1994
  2. Booch, G., Rumbaugh, J., Jacobson, L, The Unified Modeling Language User Guide, Addison Wesley Longman, Inc, 1997
  3. Brooks, F.P., 'No Silver Bullet: Essence and Accidents of Software Engineering,' IEEE Computer, Feb, 1991
  4. Cantor, MR, Objected-Oriented Project Management with UML, John Wiley & Sons, Inc., 1998
  5. Coleman, D., Artim,J., Ohnjec, V., Rivas, E., Rumbaugh, J, Wirfs-Broek, R., 'UML: the language of blueprints for software',' In Proceeding of the 1997 ACM SIGPLAN Conference on Object-Oriented Programming Systems, Language & Applications (OOPSLA '97), Vol.32, No.10, pp.201-205, October 1997
  6. Murphy, G.C., Notkin, D. and Sullivan, K, 'Software reflexion models: Bridging the gap between source and high-level models,' In Proceedings of the ACM SIGSOFT Symposium on the Foundations of Software Engineering, pp.18-28, Washington, D.C., October 1995 https://doi.org/10.1145/222124.222136
  7. Needham, D., Dernurrjian, S., Guernhioui, KEl., Peters, T., Zemani, P., McMachon, M., and Ellis, H., ADAM:A Language-Independent, Object-Oriented, Design Environment for Modeling Inheritance and Relationship Variants in Ada 95, C++, and Effel, Proceedings of 1996 TriAda Conference, Philadelphia, P A, December 1996 https://doi.org/10.1145/240678.240707
  8. Pohl, I., Objected-Oriented Programming using C++ 2nd Edition, Addison Wesley Longman, Inc. 1997
  9. Pressman, R.S., Software Engineering: A Practitioner's Approach 4th Edition, The McGraw- Hill Companies, Inc. 1997
  10. Quilici, A, Chin, D., 'DECODE: A Cooperative Environment for Reverse-Engineering Legacy Software,' 2nd Working Conference on Reverse Engineering, IEEE Press, pp.217-226, July, 1995 https://doi.org/10.1109/WCRE.1995.514704
  11. Rumbaugh, J., Jacobson, I., Booch, G., The Unified Modeling LanguageReference Manual, Addison Wesley Longman, Inc, 1999
  12. Stroustrup, B., The C++ Programming Language 3th Edition, Addison Wesley Publishing Company, Inc. 1997
  13. Tversky, A, 'Features of Similarity, Psychological Review,' Vol.84, No.4, pp.327-352, Jul. 1997
  14. Yas, A.S., Harris, D.R., and Chase, M.P., 'Manipulating recovered software architecture views,' In Proceedings of the 19th International Conference on Software Engineering, pp.184-194, Boston MA, May 1997 https://doi.org/10.1145/253228.253265
  15. Yie-Fam, C. Nishimoto, M.Y., Rarnarnoorthy, C.V., 'The C Information Abstraction System,' IEEE Trans. on Software Engineering, Vol.16, No.3, pp.325-334, 1990 https://doi.org/10.1109/32.48940
  16. Yu, S., and Zhuang, Q., 'Software reuse via algorithmic. abstraction,' In Conference Series Technology of Object-Oriented Languages and Systems (Tools USA '95), pp.277-292, 1995
  17. 김갑수,신영길,'소프트웨어 재사용을 위한 C++ 클래스 계층 구조 변형 방법',한국정보과학회 논문지 제22권 제1호,pp.88-93, 1995
  18. 김문희,한재수,'객체지향 언어 C++를 위한 Information Viewer',한국정보과학지,제11권,제2호,pp.84-93, 1993
  19. 김상옥,신영길,이정태,'공유 객체를 지원하는 객체 중심 시각 프로그래밍 환경의 개발' 한국정보과학회 논문지,제2권 2호,pp.130-141, 1996
  20. 박진호,김수동,류성열, 'UML 다이어그램들 간의 일관성 검증 방법' 한국정보과학회 봄 학술발 표 논문집,Vol.25,No.1,pp.524-526, 1998
  21. Chikofsky, E.J., and J,H. Cross, II, 'Reverse Engineering and Design Recovery: A Taxonomy,' IEEE Software, pp.13-17, January 1990 https://doi.org/10.1109/52.43044