程式碼常需為了相容新的硬體或增加新功能亦或是修正程式的錯誤,而不斷的修改程式碼,但是程式碼的修改卻變得越來越困難,最後程式可能會無法更改。而修改所花費的成本與修改程式的時間也相當可觀,修改後軟體之品質卻可能不佳。因此,在軟體開發的過程中,需事先做好軟體的設計,不同的軟體設計,對於後來需要維護程式時,會有不同的影響。不好的設計會使得日後的維護工作變得較為困難。雖然目前已有諸多測量耦合程度(Coupling Strength)的研究被提出,但較少有研究探討軟體耦合程度與軟體變更數量之關係。 故本研究以Code Level Interaction Types為基礎,發展耦合強度度量方法(稱為AMRL Coupling Strength Metric),來深入探討大型開放原始碼專案軟體中Classes之間之更為詳細的互動關係,並且搭配版本控制軟體,將Class的耦合強度之演進過程呈現出來,且利用AMRL Metrics來以量化的方式,觀察不同的軟體設計之間的差異變化。 A central feature of the evolution of large software systems is that change - which is necessary to add new features, accommodate new hardware, and repair defects – becomes increasingly difficult over time. A key principle of modern programming practice is: follow the rule of loose coupling, that is, to restrict the interactions among modules and therefore contain the changes local to the modules themselves. Although efforts have been made on developing metrics of coupling strength between modules, little emphasis has been put on investigating the relationship between coupling strength metrics and object class changes in object-oriented systems. In this research, we develop a coupling strength metric (AMRL Coupling Strength Metric) based on code level interaction types, to further explore the large scale open source project software classes more detailed interaction between the relationships. We observe the coupling strength of the class evolution with version control system. And use AMRL metrics to quantify the effect of difference designs.