2.3 Change Coupling Analysis
Change coupling is the implicit dependency between two or more software artifacts that have been observed to frequently change together during the evolution of a system. This dependency provides additional types of information that are not visible when only one version of a system is considered. Previous research has dealt with low-level couplings between files [21, 23], leading to an explosion of data to be analyzed, or has abstracted the change couplings to module level [10, 11, 20], leading to a loss of detailed information. We proposed an approach which integrates change coupling information at different levels of abstraction, to detect areas in the system which may lead to maintenance problems. Our technique uses an interactive visualization called the Evolution Radar [2,5], which can effectively break down the amount and complexity of the change coupling data.
Figure 2 shows an example of the Evolution Radar, applied to the Diagram module of ArgoUML. The visualization shows the dependencies between a module, represented as a circle and placed in the center of a pie chart, and all the other modules in the system represented as sectors of the pie chart. In each sector, all the files belonging to the corresponding module are represented as colored circles and positioned according to the change coupling they have with the module in the center (the higher the coupling the closer to the center). The Evolution Radar allows us to understand the dependencies between modules and to detect the main responsible for such dependencies in terms of files, represented by the circles closest to the center. We have validated our approach on three large open source software systems: Mozilla [5], PostgreSQL [1] and ArgoUML [2]. We have applied the Evolution Radar to understand module dependencies and to detect candidates for reverse engineering. We have found design issues and dependencies between modules not mentioned in the documentation. We have also reduced these dependencies to coupling between small sets of files, which should be reengineered in order to decrease the coupling at the module level.
Results (
Thai) 1:
[Copy]Copied!
2.3 เปลี่ยน Coupling วิเคราะห์คลัปเปลี่ยนอ้างอิงนัยระหว่างสิ่งประดิษฐ์ซอฟต์แวร์สอง หรือมากกว่าที่มีการสังเกตมักจะเปลี่ยนกันระหว่างการวิวัฒนาการของระบบ ได้ ซึ่งช่วยให้การเพิ่มเติมชนิดของข้อมูลที่ไม่สามารถมองเห็นได้เมื่อถือว่าเป็นรุ่นเดียวของระบบ ดำเนินงานวิจัยก่อนหน้านี้ couplings ต่ำระหว่างแฟ้ม [21, 23], นำไปสู่การกระจายของข้อมูลจะวิเคราะห์ หรือมีออก couplings เปลี่ยนระดับโมดูล [10, 11, 20], ผู้นำขาดความละเอียด เรานำเสนอวิธีการซึ่งรวมการเปลี่ยนแปลงข้อมูลในระดับต่าง ๆ ของ abstraction ตรวจหาพื้นที่ในระบบซึ่งอาจนำไปสู่ปัญหาการบำรุงรักษาการ coupling เทคนิคของเราใช้การแสดงภาพประกอบเพลงการโต้ตอบเรียกว่าเรดาร์วิวัฒนาการ [2,5], ซึ่งสามารถแบ่งได้อย่างมีประสิทธิภาพจำนวนและความซับซ้อนของการเปลี่ยนแปลงข้อมูลการ couplingรูปที่ 2 แสดงตัวอย่างของวิวัฒนาการเรดาร์ ใช้กับโมดูไดอะแกรมของ ArgoUML แสดงภาพประกอบเพลงที่แสดงความสัมพันธ์ระหว่างโมดูล แสดงเป็นวงกลม และอยู่ในแผนภูมิวงกลม และทั้งหมดลอื่น ๆ ในระบบแสดงเป็นภาคของแผนภูมิวงกลม ในแต่ละภาค แฟ้มทั้งหมดของโมดูลที่เกี่ยวข้องจะแสดงเป็นวงกลมสี และตำแหน่งตามคลัปเปลี่ยนแปลงจะมีโมดูลกลาง (คลัปสูงใกล้กับศูนย์) วิวัฒนาการเรดาร์ช่วยให้เราเข้าใจความสัมพันธ์ระหว่างโมดูล และตรวจสอบหลักที่รับผิดชอบดังกล่าวอ้างอิงในแฟ้ม แสดง ด้วยวงกลมใกล้กับศูนย์ เราได้ตรวจสอบวิธีการของเราในสามระบบซอฟต์แวร์ขนาดใหญ่เปิดแหล่งที่มา: มอซิลลา [5], PostgreSQL [1] และ ArgoUML [2] เราใช้เรดาร์วิวัฒนาการเข้าใจความสัมพันธ์ของโมดูล และการสมัครสำหรับวิศวกรรมย้อนกลับ เราพบปัญหาการออกแบบและความสัมพันธ์ระหว่างโมดูลที่ไม่ได้กล่าวถึงในเอกสาร นอกจากนี้เรายังมีลดลงอิงการคลัประหว่างแฟ้ม ที่ควร reengineered เพื่อลดคลัปการ ชุดเล็ก
Being translated, please wait..
