Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makalede, nesne odaklı analiz için özel olarak tasarlanmış ölçümlerden biri hakkında bilgi ediniyorsunuz: Devralma Derinliği. Devralma ağacı derinliği (DIT) olarak da adlandırılan devralma derinliği, "düğümden ağacın köküne kadar olan uzunluk üst sınırı" CK olarak tanımlanır. Bunu basit bir örnekle görebilirsiniz. Yeni bir Sınıf Kitaplığı projesi oluşturun ve herhangi bir kod yazmadan önce Çözüm için Kod Ölçümlerini Hesapla'yı > seçerek kod ölçümlerini hesaplayın.
Tüm sınıflar öğesinden System.Object devraldığından derinlik halihazırda 1'dir. Bu sınıftan devralır ve yeni sınıfı incelerseniz, sonucu görebilirsiniz:
Ağaçtaki düğüm ne kadar düşük olursa (Class2 bu örnekte) devralma derinliğinin o kadar yüksek olduğuna dikkat edin. Alt öğeler oluşturmaya devam edebilir ve derinliğin istediğiniz kadar artmasına neden olabilirsiniz.
Varsayımlar
Devralma derinliği üç temel varsayıma dayalıdır CK:
Hiyerarşideki bir sınıf ne kadar derin olursa, büyük olasılıkla devralacağı yöntem sayısı o kadar fazla olur ve bu da davranışını tahmin etme işlemini zorlaştırır.
Daha fazla sınıf ve yöntem söz konusu olduğundan daha derin ağaçlar daha fazla tasarım karmaşıklığı içerir.
Ağaçtaki daha derin sınıfların devralınan yöntemleri yeniden kullanma olasılığı daha yüksektir.
1 ve 2 varsayımları, derinlik için daha yüksek bir sayıya sahip olmanın kötü olduğunu gösterir. Eğer orada bittiyse, iyi durumda olurdun; ancak 3 numaralı varsayım, derinlik için daha yüksek bir sayının olası kod yeniden kullanımı için iyi olduğunu gösterir.
Analysis
Derinlik ölçümünü şu şekilde okuyabilirsiniz:
Derinlik için düşük sayı
Derinlik için düşük bir sayı, daha az karmaşıklık anlamına gelir, ancak devralma yoluyla daha az kod yeniden kullanılması olasılığını da ifade eder.
Derinlik için yüksek sayı
Derinlik sayısının yüksek olması, devralma yoluyla kodun yeniden kullanılma potansiyelini artırır, ancak aynı zamanda daha fazla hata olasılığına sahip olan daha karmaşık bir yapı da ortaya çıkarır.
Kod Analizi
Kod analizi, Bakım kuralları kategorisini içerir. Daha fazla bilgi için bkz. Bakım kuralları. Eski kod analizi kullanılırken Genişletilmiş Tasarım Kılavuzu kural kümesi bir bakım alanı içerir:
Bakım alanının içinde devralma kuralı vardır:
Bu kural, devralma derinliği 6 veya daha büyük olduğunda bir uyarı bildirir, bu nedenle aşırı devralmayı önlemeye yardımcı olmak için iyi bir kuraldır. Kural hakkında daha fazla bilgi edinmek için bkz. CA1501.
Hepsini bir araya getirmek
DIT için yüksek değerler, hata olasılığının da yüksek olduğu, düşük değerlerin hata olasılığını azalttığı anlamına gelir. DIT için yüksek değerler devralma yoluyla kodun yeniden kullanılma potansiyelinin daha yüksek olduğunu gösterir, düşük değerler ise devralma yoluyla kodun daha az yeniden kullanılma potansiyelini belirtir. Yeterli veri olmaması nedeniyle şu anda DIT değerleri için kabul edilen bir standart yoktur. Yakın zamanda yapılan çalışmalar bile bu metrik Shatnawi için standart sayı olarak kullanılabilecek uygun bir sayıyı belirlemek için yeterli veri bulamadı. Bunu destekleyecek ampirik kanıt olmasa da, çeşitli kaynaklar 5 veya 6 civarında bir DIT'nin üst sınır olması gerektiğini öne sürmektedir. Örnek için bkz. https://www.devx.com/architecture-zone/45611/.
Alıntı
CK
^ Chidamber, S. R. & Kemerer, C. F. (1994). Nesne Odaklı Tasarım için Ölçüm Paketi (Yazılım Mühendisliğinde IEEE İşlemleri, Cilt 20, No. 6). Pittsburgh Üniversitesi web sitesinden 14 Mayıs 2011'de alındı: http://www.pitt.edu/~ckemerer/CK%20research%20papers/MetricForOOD_ChidamberKemerer94.pdf
Krishnan
Subramanyam, R. & Krishnan, M. S. (2003). Object-Oriented Tasarım Karmaşıklığı için CK Ölçümlerinin Ampirik Analizi: Yazılım Hatalarının Etkileri (Yazılım Mühendisliğinde IEEE İşlemleri, Cilt 29, No. 4). 14 Mayıs 2011'de alındı, başlangıçta Massachusetts Üniversitesi Dartmouth web sitesinden edinildi https://ieeexplore.ieee.org/abstract/document/1191795
Shatnawi
^ Shatnawi, R. (2010). Open-Source Sistemlerinde Object-Oriented Ölçümlerinin Kabul Edilebilir Risk Düzeylerinin Nicel Araştırması (Yazılım Mühendisliğinde IEEE İşlemleri, Cilt 36, No. 2).