McCabe 및 BP/Win도구를 이용한 소프트웨어 역공학 사례연구

Case Study of Software Reverse Engineering using McCabe and BP/Win Tools

  • 조현훈 (숭실대학교 컴퓨터학부) ;
  • 최용락 (숭실대학교 전자계산학과) ;
  • 류성열 (숭실대학교 컴퓨터학부)
  • 발행 : 2000.10.01

초록

본 논문은 개발된 원시코드를 분석하여 단계별 효율적인 유지보수와 나아가 제공학 과정에서 재사용 가능한 모듈을 제공함으로써 생산성 있는 소프트웨어를 구축할 수 잇는 지침을 제공하는 데 그 목적이 있다. 전체적으로 4개 흐름을 중심으로 첫번째는 개발된 원시코드를 분석하고, 두 번째는 분석된 코드를 McCabe와 BP/Win 도구를 이용하여 모듈 슬라이싱 및 클러스터링을 하고, 세 번째는 비즈니스 모델링에서 추출된 산풀물을 재사용 모듈로 변환하여 생성한 후, 마지막 네 번째는 리포지토리 설계 및 시스템 구축으로 구성한다. 논문에서 제시하는 부분은 1~3번째를 세분화한 4단계 방법을 사례연구로 적용했으며, 세분화한 4단계는 리포지토리를 구축하는 데 필요한 제반사항을 포함하고 있다. 세분화한 4단계는 기존의 비 정형화되고, 비 구조화된 자료를 역공학 도구를 이용하여 재 분석함으로써 생산성 있는 소프트웨어 유지보수와 재공학에 효과적으로 지침을 제공한다.

This paper aims at providing guidelines enabling productive software construction by offering reusable modules which is used not only for effective maintenance for each step, but also for a re-engineering process after analyzing developed source code. There are four processing steps. The first is to analyze source code. The second is module slicing and clustering using McCabe and BP/Win Tools, The third is to transform the outputs extracted from the business model to reusable modules. The final step is to design repository and to construct a system. In this paper, we applied the fourth step to our case study, which was specified from the first step to the fourth. The specified fourth step contains various things for constructing repository. And the fourth step reanalyzes informal and unstructured information by using reverse engineering tools, in order to provide effective guidelines for productive software maintenance and re-engineering.

키워드

참고문헌

  1. Rene R.Klsch, Reverse Engineering: Why and How to Reverse Engineer Software, Proceedings of the California Software Symposium, 1996
  2. Berndt Bellay and Harald Gall, An Evaluation of Reverse Engineering Tools, Technique University of Vienna Information Systems Institute Distributed Systems Department, March 13, 1997
  3. Berndt Bellay and Harald Gall, A Comparison of four Reverse Engineering Tools, Technique University of Vienna Information Systems Institute Distributed Systems Department, September 19, 1997 https://doi.org/10.1109/WCRE.1997.624571
  4. Harald Gall and Rene Klsh, Balancing in Reverse Engineering and in Object-Oriented Systems Engineering to Improve Reusability and Maintainability, Vienna University of Technology Institute of Information Systems, 1994 https://doi.org/10.1109/CMPSAC.1994.342835
  5. Scott Tilley, A Reverse-Engineering Environment Framework, Carnegie Mellon Software Engineering Institute, April 1998
  6. Hausi A, Miler, Reverse Engineering Strategies for Software Migration, ACM, 1997 https://doi.org/10.1145/253228.253799
  7. Yih-Farn Chen, Michael Y. Nishimoto, and C. V. Ramamoorthy, The C Information Abstraction System, IEEE, Vol.16, No.3, March 1990 https://doi.org/10.1109/32.48940
  8. Elisa L. A. Baniassad and Gail C.Murphy, Conceptual Module Querying for Software Reengineering, IEEE, 1998 https://doi.org/10.1109/ICSE.1998.671103
  9. Mary Jean Harrold and Ning Ci, Reuse-Driven Interprocedural Slicing, IEEE, 1998 https://doi.org/10.1109/ICSE.1998.671104
  10. Nicolas Anquetil and Timothy Lethbridge, Extraction Concepts from File Names; a New File Clustering Criterion, IEEE, 1998 https://doi.org/10.1109/ICSE.1998.671105
  11. 권오천, 신규상, 역공학 및 재공학의 기술 동향, 한국정보과학회, 소프트웨어공학회지 pp6-21, March 1999