Chulalongkorn University Theses and Dissertations (Chula ETD)
Other Title (Parallel Title in Other Language of ETD)
Extract-package refactoring using community detection for too large packages
Year (A.D.)
2019
Document Type
Thesis
First Advisor
พรศิริ หมื่นไชยศรี
Faculty/College
Faculty of Engineering (คณะวิศวกรรมศาสตร์)
Department (if any)
Department of Computer Engineering (ภาควิชาวิศวกรรมคอมพิวเตอร์)
Degree Name
วิทยาศาสตรมหาบัณฑิต
Degree Level
ปริญญาโท
Degree Discipline
วิทยาศาสตร์คอมพิวเตอร์
DOI
10.58837/CHULA.THE.2019.1136
Abstract
อาคิเทกเจอร์สเมลเป็นการออกแบบโครงสร้างสถาปัตยกรรมที่ไม่ดีซึ่งเปิดเผยถึงผลกระทบด้านลบต่อคุณภาพซอฟต์แวร์และยังเพิ่มความเสี่ยงในการเกิดข้อบกพร่องตามมาในอนาคต งานวิจัยที่ผ่านมาได้กำหนดและนำเสนออาคิเทกเจอร์สเมลไว้ในหลายรูปแบบและแต่ละรูปแบบส่งผลกระทบต่อคุณภาพซอฟต์แวร์ในมุมที่แตกต่างกัน กระบวนการรีแฟคทอริงเชิงสถาปัตยกรรมเป็นกระบวนการที่ใช้กำจัดอาคิเทกเจอร์สเมลและปรับปรุงคุณภาพของระบบโดยไม่เกิดการเปลี่ยนแปลงพฤติกรรมการทำงานของระบบ อย่างไรก็ตามการกำจัดอาคิเทกเจอร์สเมลรูปแบบหนึ่งอาจก่อให้เกิดอาคิเทกเจอร์สเมลในรูปแบบอื่นขึ้นในระบบ ซึ่งส่งผลกระทบโดยตรงต่อคุณภาพซอฟต์แวร์ งานวิจัยนี้นำเสนอวิธีการในการรีแฟคทอริงสำหรับแพ็กเกจขนาดใหญ่เกินซึ่งเป็นรูปแบบหนึ่งของอาคิเทกเจอร์สเมล โดยใช้การตรวจหาคอมมิวนิตีในกระบวนการรีแฟคทอริงแบบเอ็กซ์แทรกต์แพ็กเกจ กระบวนการนี้ใช้สำหรับการแยกแพ็กเกจที่ถูกตรวจพบอาคิเทกเจอร์สเมลรูปแบบแพ็กเกจขนาดใหญ่เกินให้มีขนาดเล็กลง และหลีกเลี่ยงผลกระทบอื่น ๆ จากอาคิเทกเจอร์สเมลบนพื้นฐานการพึ่งพา โดยมุ่งเน้นที่อาคิเทกเจอร์สเมลรูปแบบอันสเตเบิลดีเพนเดนซี วิธีการที่นำเสนอนี้ได้ให้แนวทางที่เป็นไปได้ที่จะแก้ไขผลกระทบจากอาคิเทกเจอร์สเมลรูปแบบแพ็กเกจขนาดใหญ่เกิน ซึ่งสามารถประเมินผลโดยการเปรียบเทียบจำนวนอาคิเทกเจอร์สเมลที่ตรวจพบและค่าตัวชี้วัดซอฟต์แวร์ ก่อนและหลังใช้กระบวนการรีแฟคทอริง นอกจากนี้ในงานวิจัยนี้ยังพัฒนาเครื่องมือบนพื้นฐานของวิธีการที่นำเสนอเพื่อที่จะเสนอวิธีการรีแฟคทอริงและสนับสนุนนักพัฒนาเพื่อปรับปรุงคุณภาพซอฟต์แวร์โดยการแก้ไขผลกระทบจากอาคิเทกเจอร์สเมลรูปแบบแพ็กเกจขนาดใหญ่เกินในระหว่างขั้นตอนการพัฒนาและการบำรุงรักษา
Other Abstract (Other language abstract of ETD)
Architecture smells are poor design of architectural structures which reveal negative impacts on software quality and increase risks of bugs in the future. Previous research defines and proposes various architecture smells and each one affects software quality in different aspects. Architecture refactoring is a process that removes an architecture smell and improves quality of system without any changes in system behavior. However, removing one of the architecture smells may cause creating of another smell in the system which directly affects software quality. This thesis proposes a refactoring approach for Too Large Packages smell which is one of the architecture smells by using community detection in extract-package refactoring process. This process is used for extracting the package which is identified as Too Large Packages smell into small ones and avoids additional impacts from newly appeared dependency-based architecture smells by focusing on Unstable Dependency smell. The proposed approach provides feasible solution to resolve impact from Too Large Packages smell which can be evaluated by comparing number of detected architecture smells and software metrics of before and after applying refactoring process. In addition, this thesis also develops a software tool based on the proposed approach to suggest the refactoring solution and support developers to improve software quality by resolving impacts from Too Large Packages smell during implementation and maintenance phase.
Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-No Derivative Works 4.0 International License.
Recommended Citation
จันทร์เทียน, บุณยไชย, "รีแฟคทอริงแบบเอ็กซ์แทรกต์แพ็กเกจโดยใช้การตรวจหาคอมมิวนิตีสำหรับแพ็กเกจขนาดใหญ่เกิน" (2019). Chulalongkorn University Theses and Dissertations (Chula ETD). 9512.
https://digital.car.chula.ac.th/chulaetd/9512