Forward/Reverse Engineering Approaches of Java Source Code using JML

JML을 이용한 Java 원시 코드의 역공학/순공학적 접근

  • 장근실 (광양보건대학 컴퓨터정보과) ;
  • 유철중 (전북대학교 자연과학대학 컴퓨터과학과) ;
  • 장옥배 (전북대학교 공과대학 전자정보공학부)
  • Published : 2003.02.01

Abstract

Based upon XML, a standard document format on the web, there have been many active studies on e-Commerce, wireless communication, multimedia technology and so forth. JML is an XML application suitable for understanding and reusing the source code written using JAVA for various purposes. And it is a DTD which can effectively express various information related to hierarchical class structures, class/method relationships and so on. This paper describes a tool which generates JML document by extracting a comment information from Java source code and information helpful for reusing and understanding by JML in terms of the reverse engineering and a tool which generates a skeleton code of Java application program from the document information included in the automatically or manually generated JML document in terms of the forward engineering. By using the result of this study, the information useful and necessary for understanding, analyzing or maintaining the source code can be easily acquired and the document of XML format makes it easy for developers and team members to share and to modify the information among them. And also, the Java skeleton coed generated form JML documents is a reliable robust code, which helps for developing a complete source code and reduces the cost and time of a project.

웹상에서 문서의 표준으로 인정받고 있는 XML을 기반으로 전사상거래, 무선통신 및 멀티미디어 기술 등 많은 연구가 활발하게 이루어지고 있다. JML(Java Markup Language)은 Java로 작성된 원시 코드를 이해하고 재사용 하는데 도움이 리는 정보를 다양할 목적으로 이용하는데 적합하도록 작성된 XML 응용으로 클래스 계층구조나 클래스 관계성 및 메소드 등에 관련된 다양한 정보를 효과적으로 표현할 수 있는 DTD이다. 본 논문은 역공학 측면에서 JML을 이용하여 Java 원시 코드로부터 주석정보를 추출하고, 그 외에 이해 및 재사용에 도움이 되는 정보를 추출하여 JML 문서를 생성하는 도구와 순공학 측면에서 사용자가 수작업으로 생성하거나 자동으로 생성된 JML 문서에 포함된 문서 정보로부터 Java 응용 프로그램의 골격 코드를 생성하는 도구를 설명한다. 본 연구의 결과를 이용하여 원시 코드의 이해나 분석 또는 유지보수에 유용하고, 필요한 정보론 쉽게 얻을 수 있고, XML 형식의 문서로 인해 개발사들이나 팀 구성원들 사이의 정보의 공유 및 가공을 쉽게 할 수 있다. 또한 JML 문서로부터 생성된 Java 골격 코드는 신뢰성이 있는 강건한 코드로 완전한 원시 코드를 개발하는데 도움을 제공하며, 마지막으로 프로젝트의 비용 및 시간을 절감할 수 있도록 해준다.

Keywords

References

  1. 장옥배 외 5인, 소프트웨어공학 이론과 실제, p.495, 도서출판 한산, 서울, 2001
  2. Frand, M., and Gail, K., 'Software Engineering in the Internet Age,' IEEE Internet Computing, pp.22-24, Sept-Oct. 1998 https://doi.org/10.1109/MIC.1998.722226
  3. Pankaj, K. G., and Walt, S., 'A Hypertext Systems to Manage Software Life Cycle Documents,' IEEE Software, pp.90-98, May 1990 https://doi.org/10.1109/52.55233
  4. Marry, H., 'Using Documentation as a Life Cycle Tool,' Software Magazine, Dec. 1992
  5. Marcello, V., and Curtis, C., 'Software System Documentation Process Maturity Model,' Dept. of CS, Oregon State University, Corvallis, 1992
  6. Larry, S., 'Trends In Automating Document Generation,' IEEE Software, Vol.12, Is.5, pp.116-118, Sept.1995 https://doi.org/10.1109/52.406781
  7. Kenny, W., Scott, R., Tilley, Hausi, A. M., and Margaret-Ane, D. S., 'Structural Redocumentation:A Case Study,' IEEE Software, Vol.1, Is.1, pp.46-54, Jan. 1995 https://doi.org/10.1109/52.363166
  8. Capers, J., 'Applied Software Measurement, Assuring Productivity and Quality,' MeGraw Hills, 1991
  9. Mark, P., 'Code Generation Using Javadoc,' Javaworld, Aug. 2000, http://www.javaworld.com/javaworld/jw-08-2000/jw-0818-javadoc.p.html
  10. W3C, Extensible Markup Language(XML) 1.0 2nd Ed., W3C Recommendation, Oct. 2000. http://www.w3.org/TR/REC-XML
  11. Eric, V. D. V., 'Comparing XML Schema Languages,' XML.com, Dec. 2001, htttp://www.xml.com/pub/a/2001/12/12/schemacompare.html
  12. Michael, D., 'Are Elements and Attributes Interchangcable?,' XML-Journal, Vol2, Is7, pp.42-47, July. 2001
  13. Jang, G. S, Yoo, C. J., and Chang, O. B., 'Information Sharing of Java Program Using XML,' ACIS 1st int, Conf., SNPD 00, Reims in France, pp.384-391, May. 2000
  14. Grady, B., and et. al. The Unified Modeling Language User Guide, Addison Wesley, 1999
  15. Javadoc, http://java.sun.com/javadoc
  16. Doc++, http://www.zib.de/Visual/software/doc++/index.html
  17. 김재웅, 유철중, 장옥배 'Java 프로그램에 대한 복잡도 척도들의 실험적 검증', 정보과학회논문지: 소프트웨어 및 응용, 27권 12호, pp.1141-1154, Dec. 2000
  18. John K. O., 'Scripting: Higher Level Programming for the 21st Century,' htttp://www.scriptics.com/doc/scripting.html
  19. Brent, B. W., Practical Programming in Tcl and Tk, 2nd Ed., Prentice Hall, 1997
  20. Junichi, S., and Yoshikazu, Y., 'Managing the Software Design Document with XML,' ACM SIGDOC, 1998