การติดตามการทำงานของโปรแกรมจาวา โดยใช้การเขียนโปรแกรมเชิงลักษณะและการออกแบบเชิงกิจกรรม

Main Article Content

นัทธี ศิริพรไพศาล
พรชัย มงคลนาม

Abstract

การวิจัยนี้มีวัตถุประสงค์เพื่อสร้างโปรแกรมสำหรับ ติดตามการทำงานของโปรแกรมจาวา ว่าในขณะที่โปรแกรม ทำงานนั้นมีการทำงานเป็นอย่างไรโดยดูว่ามีการเรียกใช้ คลาสอะไรบ้างมีเมท็อดไหนในคลาสถูกเรียกใช้บ้าง แล้วนำมาสรุปว่าแต่ละเมท็อดที่ทำงานใช้เวลามากน้อยขนาดไหน มีเมท็อดไหนไม่เคยถูกเรียกใช้เลยหรือมีเมท็อดไหนที่ใช้ เวลามากๆ ซึ่งจะช่วยลดเวลาที่ต้องใช้ในการตรวจสอบเมท็อด ในกรณีที่ซอฟต์แวร์ที่ใช้งานนั้นมีการทำงานที่ใช้เวลามาก จนเกินไป ทำให้เข้าไปตรวจสอบเมท็อดได้ถูกต้องมากขึ้น ซึ่งในงานวิจัยนี้ได้นำวิธีการออกแบบเชิงกิจกรรม (Sequence Diagram) เข้ามาช่วยในการแสดงผลเพื่อทำให้ผู้ใช้มองเห็น ภาพการทำงานและลำดับการทำงานของซอฟต์แวร์ได้ ชัดเจน โดยได้นำหลักการการเขียนโปรแกรมเชิงลักษณะ (Aspect Oriented Programming) หรือ AOP มาใช้สร้าง Sequence Diagram ขณะที่โปรแกรมทำงานซึ่งการเขียน โปรแกรมเชิงลักษณะนี้จะไม่มีการแก้ไขโค้ดเดิมของซอฟต์แวร์ แต่โค้ดที่ถูกเขียนเพิ่มจะถูกแยกไว้ต่างหาก ซึ่งทำให้ผู้ใช้ไม่ ต้องกังวลว่า โค้ดของซอฟต์แวร์ที่นำมาใช้จะถูกแก้ไขหรือ ถูกแทรกโค้ดเข้าไปในโค้ดของซอฟต์แวร์เดิม

 

Java Program Monitoring using Aspect Oriented Programming and Sequence Diagram

Natti Siripornpaisarn and Pornchai Mongkolnam

This research aims to create the program which monitors the execution flows of a Java program by tracking both method calls and object interactions. Having done so would give us some insights of which methods and classes are used according to their time usage and numbers of calls. This would significantly reduce the time a programmer needs to check for any complexity, risk, and running time of a given method and class. We use the UML sequence diagram to display calling sequences of the methods and classes of the running program, with the help of an Aspect Oriented Programming (AOP) used in keeping tracks of all calls. The Java program is kept unmodified, whereas the AOP code is put in a different file. This effectively allows us to freely track the calling sequences without having to interfere with an existing code.

Article Details

Section
บทความวิจัย