1. แรงจูงใจในการทำวิจัย/ความสำคัญของปัญหา :
เนื่องจากปัจจุบันมีการให้คำนิยาม Bad Smells ไว้แล้วในเชิงพรรณนา เพื่อชี้แนะให้เห็นช่องโหว่หรือข้อผิดพลาดในการออกแบบหรือเขียนโปรแกรม เพื่อนำไปสู่การแก้ปัญหาโดยการ Refactoring ต่อไป จุดประสงค์เพื่อปรับปรุงการออกแบบโปรแกรมใ้ห้ดีขึ้น และในปัจจุบันได้มีการจัดกลุ่ม Bad Smells ไว้โดยใช้ความคล้ายหรือเกณฑ์บางอย่างที่มีร่วมกันระหว่างแต่ละ Bad Smells
ในขณะที่อีกด้านหนึ่งก็มีการพยายามแนะนำให้นำ Metrics มาช่วยในการตรวจจับ Bad Smells โดยที่ Metrics เหล่านั้นสามารถช่วยในการรวบรวมข้อผิดพลาดที่เกิดขึ้นในปัจจุบันได้อย่างอัตโนมัติ
แต่ยังไม่เคยมีใครเชื่อมความสัมพันธ์ระหว่าง 2 ความรู้นี้ งานวิจัยชิ้นนี้จึงเกิดขึ้นเพื่อเผยแพร่เกณฑ์หรือบรรทัดฐานที่เพิ่มเติมเข้ามาในจัดกลุ่ม Bad Smells
2. วิธีการในการแก้ปัญหา
2.1 เพิ่มเกณฑ์ใหม่ที่สัมพันธ์กับลักษณะเด่นของ Metrics และกลุ่มของ Bad Smells ที่มีผู้จัดไว้แล้ว เกณฑ์ใหม่ดังกล่าวได้แก่
2.1.1 Granularity (Gran.) : ขนาดขององค์ประกอบที่พบ Bad Smells ได้แก่ System (package, Namespace, Cluster และอื่นๆ) , Class และ Method
2.1.2 Intra vs. Inter-relations (Intra) : เป็น Bad Smells ที่สัมพันธ์กับเฉพาะองค์ประกอบนั้น ไม่ได้สัมพันธ์องค์ประกอบอื่นใช่หรือไม่
2.1.3 Inheritance (IH) : เป็น Bad Smells เกี่ยวกับ Inheritance Hierarchy ใช่หรือไม่
2.1.4 Access Modifiers (Acc) : เป็น Bad Smells ที่เกิดขึ้นในส่วน Access Level ระหว่างองค์ประกอบใช่หรือไม่
2.2 หาความสัมพันธ์ของเกณฑ์ใหม่ กับ กลุ่ม Bad Smells ที่มีอยู่ในปัจจุบัน
ผลลัพธ์ เป็นดังนี้

2.3 หาความสัมพันธ์ของเกณฑ์ใหม่ กับ Metrics ที่มีใช้อยู่ในปัจจุบัน
ในงานวิจัยนี้ผู้วิจัยคัดเลือกเฉพาะ Metrics ที่ใช้กับ Code ของภาษาเชิงวัตถุ และสัมพันธ์กับ Bad Smells เท่านั้น แล้วจึงสร้างความสัมพันธ์กับเกณฑ์ใหม่ โดยพิจารณาจากลักษณะเด่นของ Metrics (Metric Features) ดังนี้ : Granularity, Coupling (Intra. vs. Inter-Classes), Inheritance, Access and Abstractness
ตัวอย่างผลลัพธ์ (จากเครื่องมือทาง metrics ที่ชื่อ RefactorIt) เป็นดังนี้
3. ผลลัพธ์ของงานวิจัยนี้
ตัวอย่างที่ใช้ Extended Taxonomy Mixing Metrics ได้
ปัญหา : จากข้อมูลการจัดกลุ่ม Bad Smells ที่มีอยู่ในปัจจุบัน และชุด Metrics ที่ใช้กันอยู่ขณะนี้ เครื่องมือทาง Metrics ชนิดใด จะช่วยหา Metrics เพื่อนำมาตรวจจับ Bad Smells ได้เป็นจำนวนมากสุด
เงื่อนไขการดำเนินงาน : การตัดสินใจเลือกจะใช้ วิจารณญาณของผู้ดำเนินงาน ในการเลือก 1 เครื่องมือจาก 3 เครื่องมือทาง Metrics ได้แก่ 1) Eclip Plugin 2) RefactorIt 3) DMS
ขั้นตอนการดำเนินงาน : 1) สร้างตารางกลางหรือตารางทั่วไปหน้าตาเหมือน Table 2 (ด้านบนของบทความนี้) ขึ้นมาจาก Metric Definition 2) แต่ละเครื่องมือ ทำการเชื่อมต่อ (Link) ชุด Metrics ของตัวเองเข้ากับตารางกลางดังกล่าว 3) ทำการเปรียบเทียบ โดยใช้ SQL เชื่อมระหว่าง ตารางเหล่านี้ แล้วเปรียบเทียบจาก defined properties และ foreign keys 4) ผลลัพธ์สุดท้ายที่ได้ เป็น ความสัมพันธ์ร่วมกันระหว่าง Bad Code Smells และ Metrics โดยการเชื่อม(link)แต่ละ Bad Smells เข้ากับ ชุดของ Metrics ที่ช่วยในการตรวจจับ Bad Smells นั้น
ผลการดำเนินงาน : เนื่องจากในการดำเนินงานจริงมีบาง Metrics ที่ใช้เครื่องมือทาง Metrics ตรวจจับไม่ได้ (Not covered) ผู้ดำเนินงานจึงใช้ข้อมูลนี้ในการเปรียบเทียบผลการดำเนินงานนี้ ได้ผลดังนี้
ดังนั้นจึงเลือก RefactorIt เพราะมีจำนวน Metrics ที่ไม่สามารถตรวจจับได้เป็นจำนวนน้อยที่สุด แสดงว่าหา Bad Smells ได้มากสุด
4. สรุปงานวิจัย :
4.1 จากการยึดการจัดกลุ่ม Bad Smells ที่มีอยู่แล้ว ผู้วิจัยพยายามสนับสนุนความคิดนี้ด้วยการเพิ่มเกณฑ์ใหม่ และแบบแผนการทำงาน(Method) เพื่อนำมาใช้ประโยชน์ในขบวนการเลือกเครื่องมือทาง Metrics ที่ตรวจจับ Bad Smells ได้มากที่สุด
4.2 งานวิจัยนี้พิจารณาใช้ Metrics สร้างเส้นทางไปสู่การแนะนำว่าเกิด Bad Smells ขึ้น ซึ่งสามารถนำไปสู่กระบวนการ Refactoring ต่อไปได้
ไม่มีความคิดเห็น:
แสดงความคิดเห็น