Abstract:
การโปรแกรมเชิงแอสเป็กถูกเสนอเพื่อแก้ไขปัญหาโค้ดกระจัดกระจายและโค้ดพันกันในซอร์สโค้ดของซอฟต์แวร์ สามารถส่งผลให้คุณภาพซอฟต์แวร์ดีขึ้น งานวิจัยนี้จึงสนใจศึกษาแนวทางการใช้การโปรแกรมเชิงแอสเป็กสำหรับปรับปรุงซอฟต์แวร์เชิงวัตถุด้วยการทำแอสเป็กรีแฟคทอริง โดยมุ่งสนใจปัญหาโค้ดกระจัดกระจายที่ทำให้เกิดโค้ดซ้ำกันภายในหลายคลาส จึงเลือกจัดการเมท็อดคอลที่ซ้ำกันในหลายคลาสด้วยแอสเป็ก และพิจารณาผลจากการใช้แอสเป็กสำหรับจัดการเมท็อดคอลในจำนวนซ้ำของเมท็อดคอลที่แตกต่างกัน โดยประเมินคุณภาพของซอฟต์แวร์หลังทำแอสเป็กรีแฟคทอริง จากการรวบรวมค่ามาตรวัดของมาตรวัดเชิงวัตถุและมาตรวัดเชิงแอสเป็ก ผลมาตรวัดเชิงวัตถุพบว่าจากมาตรวัดซีเคทั้งหมด 6 มาตรวัด มีเพียง 3 มาตรวัดที่ได้รับผลกระทบจากการทำแอสเป็กรีแฟคทอริง ได้แก่ มาตรวัดคัพพลิงบีทวีนอ็อบเจกต์คลาส มาตรวัดเรสปอนซ์ฟอร์อะคลาส และมาตรวัดแลคออฟโคฮีชันอินเมท็อด โดยมาตรวัดเรสปอนซ์ฟอร์อะคลาส แสดงให้เห็นว่าคุณภาพซอฟต์แวร์ปรับปรุงดีขึ้น และปัจจัยที่ส่งผลต่อมาตรวัดเรสปอนซ์ฟอร์อะคลาส ได้แก่ จำนวนซ้ำของเมท็อดคอลและจำนวนคลาสที่สามารถจัดการเมท็อดคอลทั้งหมด ขณะที่มาตรวัดเชิงแอสเป็กทั้งหมด 10 มาตรวัด มีทั้งหมด 7 มาตรวัดที่ได้รับผลกระทบจากการทำแอสเป็กรีแฟคทอริง แต่ปัจจัยที่ส่งผลให้ค่ามาตรวัดเปลี่ยนแปลงไม่ได้เกิดจากจำนวนซ้ำของเมท็อดคอลที่จัดการด้วยแอสเป็ก หากเป็นปัจจัยอื่นๆแตกต่างกันไปในแต่ละมาตรวัดของมาตรวัดเชิงแอสเป็ก เช่น จำนวนแอดไวซ์ที่อิมพลีเมนต์ภายในแอสเป็ก จำนวนแอดไวซ์ที่เข้ามาขัดขวางการทำงานของคลาส จำนวนคลาสที่แอสเป็กสามารถเข้าไปขัดขวางการทำงาน เป็นต้น นอกจากนี้ยังพบว่าทั้งมาตรวัดเชิงวัตถุและมาตรวัดเชิงแอสเป็กแสดงให้เห็นว่าลักษณะของเมท็อดคอลที่จัดการด้วยแอสเป็กสามารถส่งผลต่อมาตรวัดที่เกี่ยวข้องกับคลัพพลิงและปรับปรุงคุณภาพซอฟต์แวร์ให้ดียิ่งขึ้น