Bagikan melalui


Metrik kode - Kedalaman pewarisan (DIT)

Dalam artikel ini, Anda mempelajari tentang salah satu metrik yang dirancang khusus untuk analisis berorientasi objek: Kedalaman Warisan. Kedalaman warisan, juga disebut kedalaman pohon warisan (DIT), didefinisikan sebagai "panjang maksimum dari simpul ke akar pohon" CK. Anda dapat melihat ini dengan contoh sederhana. Buat proyek Pustaka Kelas baru dan, sebelum menulis kode apa pun, hitung metrik kode dengan memilih Analisis > Hitung Metrik Kode untuk Solusi.

Kedalaman dari contoh pewarisan 1

Karena semua kelas mewarisi dari System.Object, kedalamannya adalah 1 saat ini. Jika Anda mewarisi dari kelas ini dan memeriksa kelas baru, Anda dapat melihat hasilnya:

Kedalaman Pewarisan Contoh 2

Perhatikan bahwa semakin rendah simpul di pohon (Class2 dalam hal ini), semakin tinggi kedalaman warisan. Anda dapat terus membuat anak-anak dan menyebabkan kedalaman meningkat sebanyak yang Anda inginkan.

Asumsi

Kedalaman warisan diprediksikan pada tiga asumsi mendasar CK:

  1. Semakin dalam kelas dalam hierarki, semakin besar jumlah metode yang mungkin akan diwarisi, yang membuatnya lebih sulit untuk memprediksi perilakunya.

  2. Pohon yang lebih dalam melibatkan kompleksitas desain yang lebih besar karena lebih banyak kelas dan metode terlibat.

  3. Kelas yang lebih dalam di pohon memiliki potensi yang lebih besar untuk menggunakan kembali metode yang diwariskan.

Asumsi 1 dan 2 memberi tahu Anda bahwa memiliki angka yang lebih tinggi untuk kedalaman adalah buruk. Jika itu adalah tempat akhirnya, kalian akan berada dalam kondisi baik; namun, asumsi 3 menunjukkan bahwa nilai kedalaman yang lebih tinggi baik untuk potensi penggunaan ulang kode.

Analisis

Berikut adalah cara Anda membaca metrik kedalaman:

  • Angka rendah untuk tingkat kedalaman

    Angka rendah untuk kedalaman menyiratkan lebih sedikit kompleksitas tetapi juga kemungkinan penggunaan kembali kode yang lebih sedikit melalui pewarisan.

  • Angka tinggi untuk kedalaman

    Angka tinggi untuk kedalaman menyiratkan lebih banyak potensi penggunaan kembali kode melalui pewarisan tetapi juga kompleksitas yang lebih tinggi dengan probabilitas kesalahan yang lebih tinggi dalam kode.

Analisis Kode

Analisis kode mencakup kategori aturan Keberlanjutan. Untuk informasi selengkapnya, lihat aturan pemeliharaan . Saat menggunakan analisis kode warisan, seperangkat aturan Extended Design Guideline berisi area pemeliharaan:

Kedalaman seperangkat aturan pedoman desain pewarisan

Ada aturan pewarisan di dalam area pemeliharaan.

Kedalaman aturan pemeliharaan warisan

Aturan ini mengeluarkan peringatan ketika kedalaman warisan mencapai 6 atau lebih besar, sehingga merupakan aturan yang baik untuk membantu mencegah warisan yang berlebihan. Untuk mempelajari selengkapnya tentang aturan, lihat CA1501.

Menyatukan Semuanya

Nilai tinggi untuk DIT berarti potensi kesalahan juga tinggi, nilai rendah mengurangi potensi kesalahan. Nilai DIT yang tinggi menunjukkan potensi lebih besar untuk penggunaan kembali kode melalui pewarisan, sedangkan nilai rendah menunjukkan penggunaan kembali kode yang lebih sedikit melalui pewarisan. Karena kurangnya data yang memadai, saat ini tidak ada standar yang diterima untuk nilai DIT. Bahkan penelitian yang dilakukan baru-baru ini tidak menemukan data yang memadai untuk menentukan angka layak yang dapat digunakan sebagai angka standar untuk metrik ini Shatnawi. Meskipun tidak ada bukti empiris untuk mendukungnya, beberapa sumber daya menunjukkan bahwa DIT sekitar 5 atau 6 harus menjadi batas atas. Misalnya, lihat https://www.devx.com/architecture-zone/45611/.

Kutipan

CK

Chidamber, S. R. & Kemerer, C. F. (1994). Rangkaian Metrik untuk Desain Berorientasi Objek (Transaksi IEEE pada Rekayasa Perangkat Lunak, Vol. 20, No. 6). Diakses tanggal May 14, 2011, dari situs web University of Pittsburgh: http://www.pitt.edu/~ckemerer/CK%20research%20papers/MetricForOOD_ChidamberKemerer94.pdf

Krishnan

Subramanyam, R. & Krishnan, M. S. (2003). Analisis Empiris Metrik CK untuk Kesulitan Desain Berorientasi-Objek: Dampaknya terhadap Cacat Perangkat Lunak (Jurnal IEEE Transactions on Software Engineering, Vol. 29, No. 4). Diakses tanggal May 14, 2011, awalnya diperoleh dari situs web University of Massachusetts Dartmouth https://ieeexplore.ieee.org/abstract/document/1191795

Shatnawi

Shatnawi, R. (2010). Investigasi Kuantitatif Tingkat Risiko metrik Object-Oriented yang Dapat Diterima dalam Sistem Open-Source (Transaksi IEEE pada Rekayasa Perangkat Lunak, Vol. 36, No. 2).