Chulalongkorn University Theses and Dissertations (Chula ETD)

การระบุตัวเลือกสินทรัพย์ร่วมในสายผลิตภัณฑ์ซอฟต์แวร์ด้วยการตรวจหาสำเนาโค้ด

Other Title (Parallel Title in Other Language of ETD)

Identifying common asset candidates in software product line by code clone detection

Year (A.D.)

2011

Document Type

Thesis

First Advisor

พรศิริ หมื่นไชยศรี

Faculty/College

Faculty of Engineering (คณะวิศวกรรมศาสตร์)

Degree Name

วิทยาศาสตรมหาบัณฑิต

Degree Level

ปริญญาโท

Degree Discipline

วิศวกรรมซอฟต์แวร์

DOI

10.58837/CHULA.THE.2011.1407

Abstract

สายผลิตภัณฑ์ซอฟต์แวร์เป็นแนวคิดที่ถูกนำเสนอขึ้นสำหรับการจัดการกลุ่มของซอฟต์แวร์ที่มีความเกี่ยวข้องกันอย่างเป็นระบบ เพื่อจะลดค่าใช้จ่ายและแรงงานในการพัฒนาซอฟต์แวร์ ซึ่งการพัฒนาสินทรัพย์ร่วมเพื่อนำไปใช้ซ้ำสำหรับการประกอบและปรับแต่งเป็นผลิตภัณฑ์นั้น ถือเป็นหนึ่งในกิจกรรมหลักของสายผลิตภัณฑ์ซอฟต์แวร์ โดยผู้เชี่ยวชาญโดเมนอาจวิเคราะห์และสร้างสินทรัพย์ร่วมขึ้นมาใหม่ตั้งแต่เริ่มแรกหรือระบุสินทรัพย์ร่วมจากผลิตภัณฑ์ที่มีอยู่แล้วก็ได้ ซึ่งในระดับซอร์สโค้ดนั้นได้มีการประยุกต์ใช้การตรวจหาสำเนาโค้ดระหว่างผลิตภัณฑ์ เพื่อระบุตัวเลือกสินทรัพย์ร่วมจากผลิตภัณฑ์ที่มีอยู่ อย่างไรก็ตามในกรณีที่สำเนาโค้ดที่ตรวจพบมีจุดแตกต่างอยู่บ้าง จุดแตกต่างนั้นจำเป็นต้องถูกแยกออกมา เพื่อให้สามารถนำสำเนาโค้ดนั้นไปพัฒนาเป็นสินทรัพย์ร่วมได้ งานวิจัยนี้มีจุดประสงค์เพื่อแยกจุดแตกต่างดังกล่าวออกจากสำเนาโค้ดที่ตรวจพบ โดยการจำแนกผลสำเนาโค้ดประเภทที่มีความแตกต่างในระดับเมท็อด แล้วประยุกต์ใช้แบบอย่างการออกแบบ เมท็อดแม่แบบ ทำให้ได้ตัวเลือกสินทรัพย์ร่วมในรูปแบบคลาสแม่ ซึ่งมีการโอเวอร์ไรด์ด้วยโค้ดที่แตกต่างได้ที่คลาสลูกสำหรับแต่ละผลิตภัณฑ์

Other Abstract (Other language abstract of ETD)

Software Product Line (SPL) was proposed as an approach to manage a group of related software systematically to reduce cost and effort in software development. One of key activities in SPL is common asset development, which is reusable to build and customize products. Domain experts may analyze and develop common assets from beginning or identify them from existing products. In source-code level, code clone detection is applied for common asset candidates identification. However, if detected code clones contain some differences, differences need to be separated from common parts in order to develop them as common assets. The objective of this research is to set differences apart from detected code clones. By classifying methods that have differences and then applying the template method design pattern, common asset candidates are formed as parent class. Then differences codes can be used by overriding method in child classes for individual products.

Share

COinS