Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ebben a cikkben megismerheti az egyik olyan metrikát, amelyet kifejezetten objektumorientált elemzésre terveztek: Az öröklés mélysége. Az öröklés mélysége, más néven az öröklési fa mélysége (DIT) "a csomóponttól a fa gyökeréhez tartozó maximális hossz" CK. Ezt egy egyszerű példával tekintheti meg. Hozzon létre egy új osztálykönyvtár projektet, és mielőtt kódot írna, számítsa ki a kódmetrikákat úgy, hogy kiválasztja a Megoldás kódmetrikáinak számítása lehetőséget.
Mivel az összes osztály a(z) System.Object osztályból öröklődik, a mélység jelenleg 1. Ha ebből az osztályból örököl, és megvizsgálja az új osztályt, láthatja az eredményt:
Figyelje meg, hogy minél alacsonyabb a csomópont a fán (Class2 ebben az esetben), annál nagyobb az öröklés mélysége. Továbbra is létrehozhat gyermekeket, és a mélység a kívánt mértékben növekedhet.
Feltételezések
Az öröklés mélysége a CK három alapvető feltételezésén alapul:
Minél mélyebb egy osztály a hierarchiában, annál több metódust örökölhet, ami megnehezíti a viselkedés előrejelzését.
A mélyebb fák nagyobb tervezési összetettséggel járnak, mivel több osztály és módszer van bevonva.
A fa mélyebb osztályai nagyobb potenciállal rendelkeznek az örökölt metódusok újrafelhasználására.
Az 1. és a 2. feltételezések szerint a nagyobb mélységi szám rossz. Ha így végződne, akkor jó formában lenne; A 3. feltételezés azonban azt jelzi, hogy a nagyobb mélységi szám jó a kód lehetséges újrafelhasználása szempontjából.
Analysis
A mélységi metrikát a következőképpen olvassa el:
Alacsony szám mélység esetén
Az alacsony mélységi szám kisebb összetettségre utal, de a kód örökléssel való újrafelhasználásának lehetősége is kisebb.
Mélység esetén nagy szám
A nagy mélységi szám nagyobb potenciált jelent a kód öröklődésen keresztüli újbóli felhasználására, de nagyobb összetettségre is, nagyobb valószínűséggel a kód hibáira.
Kódelemzés
A kódelemzés tartalmazza a karbantarthatósági szabályok egy kategóriáját. További információ: Karbantarthatósági szabályok. Az örökölt kódelemzés használatakor a kiterjesztett tervezési útmutató szabálykészlet egy karbantarthatósági területet tartalmaz:
A karbantarthatósági területen belül az öröklés egyik szabálya:
Ez a szabály figyelmeztetést ad ki, ha az öröklés mélysége eléri a 6-ot vagy annál nagyobbat, ezért jó szabály a túlzott öröklés megelőzésére. A szabályról további információt a CA1501-ben talál.
Az egészet összehozva
A DIT magas értékei azt jelentik, hogy a hibák lehetősége is magas, az alacsony értékek csökkentik a hibák előfordulásának lehetőségét. A DIT magas értékei nagyobb potenciált jeleznek a kód öröklődésen keresztüli újrafelhasználására, míg az alacsony értékek azt sugallják, hogy az öröklődést használva kevesebb a kód újrafelhasználása. A megfelelő adatok hiánya miatt jelenleg nincs elfogadott szabvány a DIT-értékekhez. Még a közelmúltban végzett tanulmányok sem találtak elegendő adatot ahhoz, hogy meghatározzuk a Shatnawi metrika standard számaként használható életképes számot. Bár nincs empirikus bizonyíték a támogatására, számos forrás arra utal, hogy egy 5 vagy 6 körüli DIT-nek felső korlátnak kell lennie. Lásd például: https://www.devx.com/architecture-zone/45611/.
Idézetek
CK
Chidamber, S. R. & Kemerer, C. F. (1994). A Metrics Suite for Object Oriented Design (IEEE Transactions on Software Engineering, Vol. 20, No. 6). Lekért május 14, 2011, a University of Pittsburgh honlapján: http://www.pitt.edu/~ckemerer/CK%20research%20papers/MetricForOOD_ChidamberKemerer94.pdf
Krishnan
Subramanyam, R. & Krishnan, M. S. (2003). A CK-metrikák empirikus elemzése Object-Oriented tervezés összetettségéhez: A szoftverhibák következményei (IEEE-tranzakciók a szoftverfejlesztésben, 29. kötet, 4. sz.). 2011. május 14-én lekért, eredetileg a University of Massachusetts Dartmouth weboldaláról https://ieeexplore.ieee.org/abstract/document/1191795
Shatnawi
Shatnawi, R. (2010). A Object-Oriented metrikák elfogadható kockázati szintjeinek mennyiségi vizsgálata Open-Source rendszerekben (IEEE-tranzakciók a szoftverfejlesztésben, vol. 36, No. 2).