Please use this identifier to cite or link to this item:
https://cuir.car.chula.ac.th/handle/123456789/42921
Title: | การจัดลำดับการใช้งานวิธีรีแฟคทอริงในการปรับแก้ไขโค้ด โดยการใช้มาตรวัดเชิงวัตถุและอัลกอริทึมละโมบ |
Other Titles: | ORDERING REFACTORING USAGE FOR CODE CHANGING USING OBJECT ORIENTED METRICS AND GREEDY ALGORITHM |
Authors: | รัฐพงษ์ วงศ์เปียง |
Advisors: | พรศิริ หมื่นไชยศรี |
Other author: | จุฬาลงกรณ์มหาวิทยาลัย. คณะวิศวกรรมศาสตร์ |
Advisor's Email: | [email protected] |
Subjects: | ซอฟต์แวร์ -- การพัฒนา การบำรุงรักษาซอฟต์แวร์ รหัสต้นฉบับ (วิทยาการคอมพิวเตอร์) Computer software -- Development Software maintenance Source code (Computer science) |
Issue Date: | 2556 |
Publisher: | จุฬาลงกรณ์มหาวิทยาลัย |
Abstract: | รีแฟคทอริงเป็นกระบวนการการเปลี่ยนแปลงโครงสร้างภายในของซอฟต์แวร์ โดยไม่ทำให้พฤติกรรมการทำงานของซอฟต์แวร์นั้นเปลี่ยนแปลง ทำให้ซอฟต์แวร์นั้นง่ายต่อการบำรุงรักษาในภายหลัง การปรับแก้ไขซอฟต์แวร์เพื่อเพิ่มความสามารถในการบำรุงรักษาซอฟต์แวร์หนึ่งๆ อาจจำเป็นต้องใช้วิธีรีแฟคทอริงหลายวิธีในการปรับแก้ไข ซึ่งการใช้งานวิธีรีแฟคทอริงในลำดับที่แตกต่างกันในการปรับแก้ไขโค้ดจะทำให้ได้ซอร์ซโค้ดที่แตกต่างกันซึ่งมีผลทำให้ค่าความสามารถในการบำรุงรักษาซอฟต์แวร์นั้นแตกต่างกันออกไป วิทยานิพนธ์นี้จึงนำเสนอแนวคิดในการค้นหาลำดับการใช้งานวิธีรีแฟคทอริงในการปรับแก้ไขโค้ดโดยการใช้มาตรวัดเชิงวัตถุและอัลกอริทึมละโมบเพื่อให้ได้ซอร์ซโค้ดที่มีความสามารถในการบำรุงรักษาซอฟต์แวร์ที่เหมาะสมภายหลังจากการปรับแก้ไข อัลกอริทึมละโมบจะช่วยแยกลำดับการใช้งานวิธีรีแฟคทอริงที่เป็นคำตอบออกจากลำดับการใช้งานวิธีรีแฟคทอริงที่เป็นไปได้ทั้งหมดในการแก้ไขโค้ด โดยการทดลองนั้นจะทดสอบกับซอร์ซโค้ดที่ประกอบด้วยร่องรอยที่ผิดพลาดทั้ง 3 ลักษณะ คือ ร่องรอยที่ผิดพลาดแบบเมท็อดที่มีความยาวมาก ร่องรอยที่ผิดพลาดแบบคลาสที่มีขนาดใหญ่ และร่องรอยที่ผิดพลาดแบบฟีเจอร์เอนวี เพื่อเปรียบเทียบความสามารถในการบำรุงรักษาของซอร์ซโค้ดระหว่างซอร์ซโค้ดที่ปรับแก้ไขตามลำดับที่ได้จากวิธีการใช้มาตรวัดเชิงวัตถุและอัลกอริทึมละโมบกับซอร์ซโค้ดที่ปรับแก้ไขโดยไม่พิจารณาลำดับการใช้งานวิธีรีแฟคทอริง ซึ่งผลการทดลองนั้นแสดงให้เห็นว่าซอร์ซโค้ดที่ปรับแก้ไขตามลำดับที่ได้จากวิธีการใช้มาตรวัดเชิงวัตถุและอัลกอริทึมละโมบนั้นจะมีค่าความสามารถในการบำรุงรักษาซอฟต์แวร์มากกว่าซอร์ซโค้ดที่ปรับแก้ไขโดยไม่พิจารณาลำดับการใช้งานวิธีรีแฟคทอริง |
Other Abstract: | Refactoring is the process of changing the internal structure of software but it preserves external behavior of software. To improve software maintainability, we apply several refactoring techniques to source code. Applying different sequence of refactoring techniques to different parts of source code results in different code changes and different level of software maintainability. This thesis proposes an approach for ordering refactoring techniques usage for code changing using Greedy Algorithm. To get optimal software maintainability, the thesis creates possible sequences of refactoring techniques usage and apply each refactoring techniques to source code. Greedy Algorithm is used to separate the optimal sequence of refactoring techniques usage from possible sequences of refactoring techniques. In the experiment, the thesis evaluates the approach with source code containing Long Method, Large Class and Feature Envy bad smell by comparing the changed source code result between applying the approach and without ordering refactoring techniques usage. The compared results show that the changed source code by applying the approach can improve software maintainability better than the changed source code without ordering refactoring techniques usage. |
Description: | วิทยานิพนธ์ (วท.ม.)--จุฬาลงกรณ์มหาวิทยาลัย, 2556 |
Degree Name: | วิทยาศาสตรมหาบัณฑิต |
Degree Level: | ปริญญาโท |
Degree Discipline: | วิศวกรรมซอฟต์แวร์ |
URI: | http://cuir.car.chula.ac.th/handle/123456789/42921 |
URI: | http://doi.org/10.14457/CU.the.2013.389 |
metadata.dc.identifier.DOI: | 10.14457/CU.the.2013.389 |
Type: | Thesis |
Appears in Collections: | Eng - Theses |
Files in This Item:
File | Description | Size | Format | |
---|---|---|---|---|
5470991121.pdf | 4.76 MB | Adobe PDF | View/Open |
Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.