A kódrefaktorálás hatékonyságának mérése C#-ban
Elmentve itt :
Szerző: | |
---|---|
További közreműködők: | |
Dokumentumtípus: | Diplomadolgozat |
Kulcsszavak: | .NET C# Code refactoring Cyclomatic complexity Feature flags REST API Visual Studio |
Online Access: | http://dolgozattar.uni-bge.hu/44402 |
Kivonat: | A kódrefaktorálás ma már a szoftverfejlesztési folyamat szerves részét képezi. Mivel a szoftver karbantartás a szoftverprojektek élettartamuk alatti költségeinek több, mint 80%-át teszik ki, ezért rendkívül fontos jól átlátható és használható kódot írni. A szakdolgozatom célja annak kiderítése, hogy ennek a folyamatnak mérhető-e a hatékonysága különböző szoftvermutatók segítségével. A szakdolgozatom elején bemutattam a refaktorálás rövid történetét. Ezután szemléltettem a refaktorálással járó dilemmákat. Végül szó esett a refaktorálás köztudott előnyeiről, melyek röviden a kód átláthatóságának, struktúrájának, modularitásának és hibaálló képességének növelése és a hátrányairól, melyek a ráfordított erőforrások – pénz és programozók ideje formájában – és az új hibák kialakulásának a lehetősége.Az elméleti összefoglalást követően kiválasztottam azt a hat darab belső szoftver metrikát, amelyek segítségével megvizsgáltam tíz kódrészletet refaktorálás előtt és után. Ezek voltak a karbantarthatósági index, ciklomatikus komplexitás, öröklési mélység, osztálykapcsolások száma, kódsorok száma és a futtatható kódsorok száma. Ezeket a szoftver metrikákat a Visual Studio 2022 segítségével számoltam ki minden esetben, amelynek van egy beépített funkciója erre a célra. A kinyert adatokból dolgoztam.Az eredmények értékelése során az alábbi megállapításokra jutottam. Egyik kiválasztott szoftver metrika sem volt képes minden refaktorálás következtében javulni. A mutatók kifejezetten megbízhatatlanok voltak ebből a szempontból. A legpontosabb mutatónak az osztálykapcsolások száma bizonyult, mely tízből hat esetben pozitív irányba változott és további két esetben nem változott. A legpontatlanabb mutató pedig az öröklődési mélység lett, ez a mutató tízből kilenc esetben nem változott és egyszer pedig javult. A kódsorok számát tekintve a refaktorálásnak vegyes hatása volt, az esetek felében a kódsorok és futtatható kódsorok száma csökkent a másik felében pedig nőtt vagy nem változott. Ez betudható annak, hogy a refaktorálás egyik fő célja az átláthatóság növelése, amely sokszor a kód megfelelő tagolásával és kommentelésével járhat.A másik érdekes fejlemény az volt, hogy a mutatók romlásakor általában jobban változtak a mutatók negatív irányba, mint amennyire javuláskor pozitív irányba. Szerintem ez annak tudható be, hogy túlságosan kicsi volt a mintám és a tíz esetből egy-egy kiugró érték túlságosan befolyásolhatta az átlagokat.Az eredményeket tekintve én arra a konklúzióra jutottam, hogy nem lehetséges a kódrefaktorálást ezekkel a mutatókkal pontosan mérni. Más tanulmányok is jutottak már hasonló következtetésekre. Ezek a mutatók jobban arra használhatóak, hogy monitorozzuk velük a kódbázisunkat és felhívjuk a figyelmünket egy-egy kiugró esetre, amiket utána megvizsgálhatunk és adott esetben refaktorálhatunk. Tehát ezek a mutatók jobban használhatóak úgy nevezett kódszagok és refaktorálási lehetőségek azonosítására, mint magának a kódrefaktorálások hatékonyságának mérésére. |
---|