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 contoh warisan 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 contoh warisan 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 kalian berada di tempat yang dituju itu, niscaya kalian akan berada dalam keadaan yang baik); namun, asumsi 3 menunjukkan bahwa angka yang lebih tinggi untuk kedalaman baik untuk potensi penggunaan kembali kode.

Analisis

Berikut adalah cara Anda membaca metrik kedalaman:

  • Angka rendah untuk 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 lebih lanjut, lihat Aturan perawatan. Saat menggunakan analisis kode warisan, seperangkat aturan Extended Design Guideline berisi area keberlanjutan:

Kedalaman seperangkat aturan pedoman desain pewarisan

Di dalam area pemeliharaan adalah aturan untuk warisan:

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.

Menempatkan Semuanya Bersama-sama

Nilai tinggi untuk DIT berarti potensi kesalahan juga tinggi, nilai rendah mengurangi potensi kesalahan. Nilai tinggi untuk DIT menunjukkan potensi yang lebih besar untuk penggunaan kembali kode melalui pewarisan, nilai rendah menyarankan penggunaan kembali kode yang lebih sedikit meskipun pewarisan untuk digunakan. 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). A Metrics Suite for Object Oriented Design (IEEE Transactions on Software Engineering, 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). Empirical Analysis of CK Metrics for Object-Oriented Design Complexity: Implications for Software Defects (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). A Quantitative Investigation of the Acceptable Risk Levels of Object-Oriented Metrics in Open-Source Systems (IEEE Transactions on Software Engineering, Vol. 36, No. 2).