Case Study : Character Graphics
Posted by tplb in OO Metrics on April 21, 2011
Gambar di atas adalah gambar class diagram dari tugas pemrograman Character Graphics. Dari gambar tersebut dapat dilihat hubungan atau interaksi yang terjadi antar class dalam program. Hubungan inheritance yang terlihat dalam class diagram tersebut antara lain: class CCircle dan CRect meng-inherit class CShape; class CTextbox meng-inherit class CRect.
Setelah melakukan perhitungan 6 Object Oriented Metric Chidamber dan Kemerer untuk program Character Graphics yang terdiri dari 8 class, maka diperoleh hasil sebagai berikut:
1. WMC (Weighted Method per Class)
2. DIT (Depth of Inheritance Tree of a class)
3. NOC (Number Of Children of a Class)
4. CBO (Coupling Between Object classes)
5. RFC (Response For a Class)
6. LCOM (Lack of Cohesion on Methods)
Berikut ini adalah deskriptif statistik dari nilai 6 metric di atas:
Selanjutnya, perhitungan Univariate analysis dan Multivariate analysis dilakukan dengan menggunakan tools SPSS versi 15. SPSS merupakan salah satu tools statistika yang cukup populer dimana di dalamnya telah terintegrasi berbagai teknik perhitungan statistika. Salah satunya adalah teknik logistic regression, yang memiliki 2 varian yaitu: Multivariate logistic regression dan univariate logistic regression.
Sebelum menuju kepada langkah penggunaan SPSS untuk menghitung univariate analysis dan multivariate analysis, sebaiknya melihat kembali rumus kedua analisis tersebut. Berikut ini adalah rumus perhitungan multivariate analysis:
Nilai z pada rumus di atas dapat dicari dengan rumus berikut:
β0 adalah nilai constant untuk suatu variabel z, yang merupakan nilai default ketika seluruh variabel prediktor x1 sampai xk bernilai 0.
β1 adalah nilai koefisien untuk variabel x1, β2 adalah nilai koefisien untuk variabel x2, dst. Nilai koefisien disini berguna untuk memberi bobot kepada suatu nilai variabel. Jika nilai koefisien makin besar, maka kontribusi nilai variabel tersebut terhadap nilai z juga makin besar.
Untuk kasus hanya 1 variabel yang diperhitungkan untuk menghitung nilai z, maka rumus analisis ini digunakan untuk univariate analysis.
Perhitungan Univariate Analaysis
Untuk menghitung univariate analysis dengan menggunakan SPSS, langkah yang harus dilakukan adalah:
1. Jalankan program SPSS dari komputer
2. Definisikan variabel prediktor dan variabel yang diprediksi dalam proses univariate analysis ini pada bagian “Variable View”. Dalam hal ini variabel prediktornya adalah OO metric Chidamber dan Kemerer, yaitu: WMC, DIT, NOC, CBO, RFC dan LCOM; sedangkan variabel yang diprediksi adalah Event yang menunjukkan suatu class itu fault prone (rentan error) atau tidak. Ilustrasi seperti gambar berikut:
Keenam OO metric ini bertipe Numeric karena nilai yang dikandung oleh tiap metric berupa angka seperti yang telah ditampilkan hasilnya pada bagian sebelumnya. Selanjutnya variabel Event juga bertipe numeric dan memiliki 2 kemungkinan nilai, yaitu: 0 (No fault) dan 1 (Fault).
3. Masukkan nilai variabel pada bagian “Data View”. Berikut adalah data yang diperoleh untuk 8 class yang terdapat dalam program Character Graphics:
Pada gambar di atas, tiap baris menunjukkan data/nilai yang diperoleh untuk tiap class. Karena ada 8 class, maka data yang dimasukkan ke dalam SPSS ada 8 baris.
4. Pilih menu Analysis -> Regression -> Binary Logistic untuk melakukan univariate analysis. Untuk kasus Multivariate analysis, maka menu yang dipilih adalah Multivariate Logistic.
5. Pilih variabel yang menjadi dependent variable dan covariates variable. Dependent variable adalah variabel yang nilainya akan diprediksi berdasarkan nilai dari covariates variable (variabel prediktor). Karena dalam univariate analysis ini kita akan memprediksi nilai variabel Event (fault prone atau tidak) pada suatu class berdasarkan nilai tiap OO metric secara terpisah, maka covariates adalah tiap-tiap OO metric itu sendiri. Jadi, kita melakukan univariate analysis sebanyak 6 kali, dimana pada tiap-tiap analysis covariates variabelnya adalah tiap-tiap OO metric. Ilustrasi seperti gambar berikut:
6. Klik OK, maka akan ditampilkan hasil perhitungan oleh SPSS. Berikut adalah penjelasannya:
Nilai -0.513 merupakan merupakan nilai constant (β0), sedangkan nilai -0.75 merupakan nilai koefisien untuk variabel WMC. Berdasarkan 2 nilai ini, maka kita dapat mengkonstruksi rumus z yang telah dijelaskan sebelumnya:
z = β0 + β1.x1
z = -0,513 – 0.75 WMC
Nilai z ini kemudian dimasukkan ke dalam rumus logistic regression berikut:
π = exp(z) / (1+exp(z))
Hasil yang diperoleh dijelaskan dalam tabel berikut:
| Class | WMC | π |
| Tool.java | 1 | 0,392218 |
| CTextbox.java | 1 | 0,392218 |
| DrawingPackage.java | 3 | 0,428494 |
| Screen.java | 5 | 0,465555 |
| CCircle.java | 8 | 0,521736 |
| ShapeList.java | 10 | 0,558974 |
| CRect.java | 12 | 0,59556 |
| CShape.java | 15 | 0,648397 |
Berdasarkan tabel di atas dapat dilihat bahwa: semakin besar nilai WMC, maka makin besar pula nilai π nya. Ini berarti makin besar probabilitas / kemungkinan class tersebut untuk terdapat error (fault prone).
Selanjutnya kita perlu melakukan langkah yang sama dari nomor 4 hingga nomor 6 untuk menghitung univariate analysis untuk tiap variabel lainnya. hasil yang diperoleh adalah sebagai berikut:
DIT
z= -1,386 + 21,566*DIT
π = exp(z) / (1+exp(z))
| Class | DIT | π |
| Tool.java | 0 | 0,200047 |
| Screen.java | 0 | 0,200047 |
| ShapeList.java | 0 | 0,200047 |
| CShape.java | 0 | 0,200047 |
| DrawingPackage.java | 0 | 0,200047 |
| CCircle.java | 1 | 1 |
| CRect.java | 1 | 1 |
| CTextbox.java | 2 | 1 |
NOC
z= 0,196 – 0,5309*NOC
π = exp(z) / (1+exp(z))
| Class | NOC | π |
| Tool.java | 0 | 0,548844 |
| Screen.java | 0 | 0,548844 |
| ShapeList.java | 0 | 0,548844 |
| CCircle.java | 0 | 0,548844 |
| CTextbox.java | 0 | 0,548844 |
| DrawingPackage.java | 0 | 0,548844 |
| CRect.java | 1 | 0,417049 |
| CShape.java | 2 | 0,296129 |
CBO
z= -2,884 – 2,027*CBO
π = exp(z) / (1+exp(z))
| Class | CBO | π |
| Screen.java | 0 | 0,05295 |
| Tool.java | 1 | 0,297967 |
| ShapeList.java | 1 | 0,297967 |
| CShape.java | 1 | 0,297967 |
| CCircle.java | 2 | 0,763145 |
| CRect.java | 2 | 0,763145 |
| CTextbox.java | 2 | 0,763145 |
| DrawingPackage.java | 2 | 0,763145 |
RFC
z= -0,941 + 0,09*RFC
π = exp(z) / (1+exp(z))
| Class | RFC | π |
| Tool.java | 1 | 0,299223 |
| Screen.java | 5 | 0,379658 |
| CTextbox.java | 6 | 0,401072 |
| CCircle.java | 9 | 0,467297 |
| CRect.java | 14 | 0,579081 |
| CShape.java | 15 | 0,600848 |
| DrawingPackage.java | 15 | 0,600848 |
| ShapeList.java | 18 | 0,663515 |
LCOM
z= 0,288 – 0,231*LCOM
π = exp(z) / (1+exp(z))
| Class | LCOM | π |
| Tool.java | 0 | 0,571506429 |
| Screen.java | 0 | 0,571506429 |
| ShapeList.java | 0 | 0,571506429 |
| CCircle.java | 0 | 0,571506429 |
| CRect.java | 0 | 0,571506429 |
| CTextbox.java | 0 | 0,571506429 |
| DrawingPackage.java | 0 | 0,571506429 |
| CShape.java | 93 | 6,23919E-10 |
Perhitungan Multivariate Analysis
Asumsikan langkah nomor 1 sampai 3 telah dilakukan pada tahap sebelumnya, maka langkah-langkah untuk melakukan multivariate analysis adalah sebagai berikut:
1. Pilih menu Analysis -> Regression -> Multivariate Logistics untuk melakukan multivariate analysis.
2. Pilih variabel yang menjadi dependent variable dan covariates variable. Karena kita ingin melakukan multivariate analysis, maka yang menjadi covariates variable adalah keenam metric Chidamber dan Kemerer ini (seluruhnya). Dalam hal ini kita ingin memprediksi apakah sutau class itu rentan error atau tidak berdasarkan keseluruhan nilai metric yang dihasilkan untuk class tersebut. Selanjutnya kita juga ingin melihat seberapa baik model yang telah dibuat ini dengan melihat nilai R-square nya. Berikut adalah ilustrasinya:
3. Klik OK, kemudian SPSS akan menampilkan hasil perhitungan. Berikut adalah penjelasannya:
Nilai constant adalah 50.930
Koefisien WMC adalah -4.249
Koefisien DIT adalah -33.403
Koefisien NOC adalah 28.433
Koefisien CBO adalah 5.256
Koefisien RFC adalah -1.885
Dari hasil ini, maka kita dapat membangun rumus untuk nilai z yaitu:
z= 50,930 – 4,249*WMC – 33,403*DIT + 28,433*NOC + 5,256*CBO -1,885*RFC
Nilai z ini kemudian dimasukkan ke dalam persamaan π = exp(z) / (1+exp(z))
Selanjutnya hasil perhitungan SPSS juga menampilkan nilai R-square dari model yang dibangun ini, sebagai berikut:
Nilai R-Square varian Cox and Snell sebesar 0.75, sedangkan untuk nilai R-Square varian Nagelkerke dan McFadden sebesar 1. Hal ini menunjukkan bahwa model yang dibangun dengan menggunakan variabel prediktor 6 metric Chidamber dan Kemerer untuk memprediksi fault-proneness suatu class sudah sangat akurat. Hal ini berdasarkan pada salah satu referensi bahwa dalam logistic regression nilai R-Square > 0.3 menunjukkan bahwa model sudah cukup baik sebagai prediktor.
Object-Oriented Design Metrics as Quality Indicators
Posted by tplb in OO Metrics on April 20, 2011
Penulis : Victor R. Basili Lionel C. Briand Walcelio L. Melo
Pengembangan sebuah software sytem yang besar adalah aktivitas yang memakan waktu dan resources. Oleh karena itu, kita harus mampu memberikan informasi yang akurat dan panduan untuk manajer untuk membantu mereka membuat keputusan, rencana, jadwal kegiatan, dan mengalokasikan resources untuk kegiatan perangkat lunak yang berbeda yang berlangsung selama pengembangan software. Untuk itu digunakanlah OO Metrics sebagai quality indicators yang mengidentifikasimodul fault prone sehingga pengujian / usaha verifikasi dikonsentrasikan pada modul-modul tersebut.
Desain Eksperimen
Dalam hal penelitian ini, penulis menggunakan OO Metrics Chidamber dan Kemerer.
- Weighted Methods per Class (WMC) : jumlah metode yg difinisikan di masing-masing kelas (pertimbangan : methods di semua kelas sama kompleksnya)
- Depth of Inheritance Tree of a class (DIT) : TI didefinisikan sebagai kedalaman maksimum inheritance graph dari masing-masing kelas .
- Number Of Children of a Class (NOC) : jumlah keturunan langsung untuk setiap kelas
- Coupling Between Object classes (CBO) : jumlah kelas yang coupling pada suatu kelas
- Response For a Class (RFC) : jumlah metodhs yang berpotensi dapat dieksekusi dalam merespon pesan yang diterima oleh suatu obyek dari kelas itu
- Lack of Cohesion on Methods (LCOM) : Pengurangan method yang memiliki irisan atribut dengan method lainnya dengan method yang tidak memiliki irisan dengan method lainnya (p-q)
Hipotesis
untuk memvalidasi OO metrics di atas sebagai quality indicator, maka hubungannya dengan fault-prone harus divalidasi. Hipotesis awal adalah sbb:
- H-WMC : Semakin besar nilai WMC suatu kelas, semakin besar kelas itu dicurigai sebagai kelas yang fault-prone
- H-DIT : Semakin besar nilai DIT suatu kelas, semakin besar kelas itu dicurigai sebagai kelas yang fault-prone
- H-NOC : Semakin besar nilai NOC suatu kelas, semakin besar kelas itu dicurigai sebagai kelas yang fault-prone
- H-CBO: Semakin besar nilai CBO suatu kelas, semakin besar kelas itu dicurigai sebagai kelas yang fault-prone
- H-RFC: Semakin besar nilai RFC suatu kelas, semakin besar kelas itu dicurigai sebagai kelas yang fault-prone
- H-LCOM: Semakin besar nilai LCOM suatu kelas, semakin besar kelas itu dicurigai sebagai kelas yang fault-prone
Partisipan
Partisipan adalah undergraduate/graduate students dan PhD students di Department of Computer Science University of Maryland. Total jumlah class yang diuji dalam eksperimen adalah 180 class.
Analisis Data
Menilai secara empiris apakah OO Metrics Chidamber dan kemerer adalah prediktor yang berguna untuk kelas fault-prone. Untuk melakukan prediksi, metode statistik yang dapat digunakan adalah regression. Karena dependent variable dalam eksperimen ini merupakan variable binary, yaitu fault-proness dari suatu class (nilainya adalah fault atau no-fault), maka regression yang tepat digunakan adalah logistic regression. Dalam analisis ini, metode yang digunakan adalah descriptive statistics, kemudian dilanjutkan dengan logistic regression (terdiri dari dua tahap: univariate analysis dan multivariate analysis).
Hasil penghitungan descriptive statistics eksperimen ini dapat dilihat pada Fig 1, Table 1, dan Table 2 di bawah ini.
Descriptive Statistics
Correlation Analysis
Ketika melihat scatterplots, hanya hubungan antara CBO dan RFC tampaknya tidak disebabkan outlier. Kami menyimpulkan bahwa metrik kebanyakan statistik independen dan, karenanya, tidak menangkap banyak informasi yang redundant.
Univariate Analysis
Menganalisa hubungan antara enam metrik OO Chidamber & Kemerer dan probabilitas deteksi kesalahan dalam kelas selama fase testing. Inti dari univariate analysis yang digunakan dalam penelitian ini adalah menentukan koefisien kontribusi tiap komponen metrics terhadap probability of fault-prone. Berdasarkan data fault-proness dan data-data nilai metrics dari 180 class, dengan memasukkan tiap-tiap nilainya ke formula logistic regression, maka dihasilkan data koefisien seperti pada Table 3. p-value menyatakan selisih koefisien dengan koefisien yang seharusnya dicapai. Dengan kata lain, p-value menyatakan akurasi dari koefisien tersebut (semakin kecil p-value, maka koefisien dinilai semakin akurat).
Hasil analisa tabel di atas adalah :
- WMC : H-WMC is supported.
- DIT : H-DIT is supported.
- RFC : H-RFC is supported.
- NOC : H-NOC is not supported.
- LCOM : can’t be analyzed.
- CBO : H-CBO is supported.
Khusus untuk NOC, H-NOC tidak di-support, namun yang di-support adalah kebalikan dari hipotesis. Yaitu, semakin besar NOC maka semakin kecil probability of fault-prone. Pernyataan tersebut dapat didukung dengan analisis bahwa nilai NOC yang cukup besar menunjukkan adanya reuse. Sedangkan reuse merupakan faktor yang signifikan negatif terhadap fault-density.
Penjelasan LCOM:
LCOM tidak dapat dianalisis untuk memprediksi nilai probabilitas fault, karena nilai-nilai yang seharusnya negatif dalam LCOM direset menjadi nol. Hal ini mengakibatkan tidak dapat dilakukannya perbandingan yang fair antar class.
Multivariate Analysis
Analisis ini digunakan untuk mengevaluasi kemampuan prediksi dari metrik yang telah dinilai cukup signifikan dalam analisis univariate.
Perbandingan Performa OO Metrics Chidamber Kemerer dan Code Metrics
Selain menggunakan OO metrics, peneliti dalam paper ini juga melakukan eksperimen dengan menggunakan Code metrics, sebagai pembanding. Setelah dilakukan analisis memperbandingkan hasil deteksi fault-prone dengan menggunakan kedua metrics, hasil perbandingan correctness dan completeness dari kedua metrics dapat dilihat pada Table 8.
Dari Table 8, dapat diketahui bahwa OO metrics memiliki completeness dan correctness yang lebih tinggi dalam deteksi fault-prone dibandingkan dengan Code metrics.
Kesimpulan
- Lima dari enam OO metriks Chidamber dan Kemerer kelihatannya berguna untuk memprediksi kelas fault prone.
- OO metrik Chidamber dan Kemerer’s menunjukkan menjadi prediktor yang lebih baik dari code metrics “tradisional” , yang hanya dapat dikumpulkan selama tahap terakhir dari proses pengembangan perangkat lunak.
- Sebagian besar dari metrik ini kelihatannya merupakan indikator pelengkap yang relatif independen satu sama lain.
Linear Pearson Correlations
Posted by tplb in OO Metrics on March 21, 2011
Merupakan Tanggapan dari Pertanyaan di Kelas
Digunakan untuk mengukur tingkat ketergantungan antar OO Metrics Chidamber dan Kemerer (Basili, Briand, Melo, 1996).
Hal ini diperoleh dengan membagi covariance kedua variabel dengan produk dari standar deviasinya.
Koefisien korelasi populasi ρX, Y diantara dua variabel acak X dan Y, expected values μX μY dan standar deviasi σX dan σY, didefinisikan sebagai:
dimana E adalah operator expected values, cov berarti covariance, dan, corr adalah notasi alternatif yang banyak digunakan untuk korelasi Pearson.
Korelasi Pearson adalah +1 dalam kasus a perfect positive (increasing) linear relationship (correlation), -1 dalam kasus perfect decreasing (negative) linear relationship (anticorrelation), dan nilai antara -1 dan 1 dalam semua kasus lain, menunjukkan tingkat ketergantungan linier antar variabel-variabel. Mendekati nol jika ada yang kurang dari hubungan (lebih dekat untuk tidak berkorelasi). Semakin dekat koefisien baik -1 atau 1, semakin kuat korelasi antara variabel.
Jika kita memiliki serangkaian pengukuran n dari X dan Y ditulis sebagai xi dan yi dimana i = 1, 2, …, n, maka koefisien korelasi sampel dapat digunakan untuk memperkirakan populasi r Pearson correlation antara X dan Y. Koefisien korelasi sampel ditulis
di mana x dan y adalah means dari sampel X dan Y, dan sx dan sy adalah standar deviasi sampel X dan Y.
Dapat ditulis juga:

- sumber : Wikipedia
Hello world!
Posted by tplb in OO Metrics on March 21, 2011
Blog ini merupakan tempat sharing materi kuliah Teknologi Perangkat Lunak.
Salam,
Kelompok B






















![\rho_{X,Y}=\mathrm{corr}(X,Y)={\mathrm{cov}(X,Y) \over \sigma_X \sigma_Y} ={E[(X-\mu_X)(Y-\mu_Y)] \over \sigma_X\sigma_Y},](http://upload.wikimedia.org/math/0/7/6/076d3820a46afe55ee680f3c85e34c76.png)
