Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In dit artikel leert u meer over een van de metrische gegevens die speciaal zijn ontworpen voor objectgerichte analyse: Diepte van overname. Erfenisdiepte, ook wel diepte van erfenisstructuur (DIT) genoemd, wordt gedefinieerd als "de maximale lengte van het knooppunt tot de wortel van de boom" CK. U kunt dit zien met een eenvoudig voorbeeld. Maak een nieuw class library-project en bereken de metrische codegegevens voordat u code schrijft door Metrische gegevens voor de oplossing analyseren > te kiezen.
Omdat alle klassen overnemen van System.Object, is de diepte momenteel 1. Als u van deze klasse erft en de nieuwe klasse bekijkt, ziet u het resultaat.
U merkt op dat hoe lager het knooppunt in de boom (Class2 in dit geval), hoe groter de diepte van overerving. U kunt kinderen blijven maken en ervoor zorgen dat de diepte zo veel mogelijk toeneemt als u wilt.
Aannamen
De diepte van overname is gebaseerd op drie fundamentele veronderstellingen CK:
Hoe dieper een klasse in de hiërarchie, hoe groter het aantal methoden dat deze waarschijnlijk overneemt, waardoor het moeilijker wordt om het gedrag ervan te voorspellen.
Diepere boomstructuren hebben een grotere ontwerpcomplexiteit omdat er meer klassen en methoden betrokken zijn.
Diepere klassen in de structuur hebben een groter potentieel voor het hergebruik van overgenomen methoden.
Veronderstellingen 1 en 2 vertellen u dat een hoger getal voor diepte slecht is. Als dat is waar het eindigt, zou je in goede vorm zijn; veronderstelling 3 geeft echter aan dat een hoger aantal voor diepte goed is voor mogelijk hergebruik van code.
Analysis
U leest als volgt de dieptemetriek:
Laag getal voor diepte
Een laag aantal voor diepte impliceert minder complexiteit, maar ook de mogelijkheid om minder code opnieuw te gebruiken via overname.
Hoog getal voor diepte
Een groot aantal diepten impliceert meer potentieel voor het hergebruik van code via overname, maar ook een hogere complexiteit met een hogere kans op fouten in de code.
Codeanalyse
Codeanalyse bevat een categorie onderhoudsregels. Zie Regels voor onderhoudbaarheidvoor meer informatie. Wanneer u verouderde codeanalyse gebruikt, bevat de regelset uitgebreide ontwerprichtlijnen een gebied voor onderhoudbaarheid:
Binnen het onderhoudbaarheidsgedeelte is er een regel voor overerving.
Deze regel geeft een waarschuwing uit wanneer de overnamediepte 6 of hoger bereikt, dus het is een goede regel om overmatige overname te voorkomen. Zie CA1501 voor meer informatie over de regel.
Alles samenbrengen
Hoge waarden voor DIT betekenen dat de kans op fouten ook hoog is, lage waarden verminderen het potentieel voor fouten. Hoge waarden voor DIT geven een groter potentieel aan voor het hergebruik van code via overname, lage waarden suggereren minder codegebruik, hoewel overname moet worden gebruikt. Vanwege onvoldoende gegevens is er momenteel geen geaccepteerde standaard voor DIT-waarden. Zelfs studies die onlangs zijn uitgevoerd, hebben onvoldoende gegevens gevonden om een levensvatbaar getal te bepalen dat kan worden gebruikt als een standaardnummer voor deze metrische shatnawi. Hoewel er geen empirisch bewijs is om dit te ondersteunen, suggereren verschillende resources dat een DIT ongeveer 5 of 6 een bovengrens moet zijn. Zie bijvoorbeeld https://www.devx.com/architecture-zone/45611/.
Citaten
CK
Chidamber, S. R. & Kemerer, C. F. (1994). Een Metriekenpakket voor Objectgeoriënteerd Ontwerp (IEEE Transactions on Software Engineering, Vol. 20, Nr. 6). Opgehaald op 14 mei 2011, van de website university of Pittsburgh: http://www.pitt.edu/~ckemerer/CK%20research%20papers/MetricForOOD_ChidamberKemerer94.pdf
Krishnan
Subramanyam, R. & Krishnan, M. S. (2003). Empirische analyse van CK-metrieken voor object-oriented ontwerpcomplexiteit: implicaties voor softwaredefecten (IEEE Transactions on Software Engineering, Vol. 29, Nr. 4). Opgehaald op 14 mei 2011, oorspronkelijk verkregen van de website University of Massachusetts Dartmouth https://ieeexplore.ieee.org/abstract/document/1191795
Shatnawi
Shatnawi, R. (2010). Een kwantitatief onderzoek naar de acceptabele risiconiveaus van Object-Oriented metrieken in Open-Source Systemen (IEEE Transactions on Software Engineering, Vol. 36, Nr. 2).