Change search
CiteExportLink to record
Permanent link

Direct link
Cite
Citation style
  • apa
  • ieee
  • modern-language-association-8th-edition
  • vancouver
  • Other style
More styles
Language
  • de-DE
  • en-GB
  • en-US
  • fi-FI
  • nn-NO
  • nn-NB
  • sv-SE
  • Other locale
More languages
Output format
  • html
  • text
  • asciidoc
  • rtf
Evaluating the Ratio of Alive Code in Java Third-Party Libraries: A Comparison between a Static and a Dynamic Approach
KTH, School of Electrical Engineering and Computer Science (EECS).
2019 (English)Independent thesis Advanced level (degree of Master (Two Years)), 20 credits / 30 HE creditsStudent thesisAlternative title
Analysera andelen använd kod i tredjepartsbibliotek : En jämförelse mellan ett statiskt och ett dynamiskt tillvägagångssätt (Swedish)
Abstract [en]

Today’s software development heavily relies on the use of third-party libraries. However, some libraries have a rich set of functionalities where only a few of them are used. This leads to an unnecessary complex codebase that needs maintenance.

This thesis compares two methods used to calculate the ratio of used code in the third-party libraries. The first method uses the already existing tool JTombstone, which analyses the code statically. This static approach always examines the whole program. However, it overestimates the result. The second method uses a dynamic approach. This method always underestimates the result, because, only the part of the program which is executed will be examined.

The dynamic code analyser tool modifies all classes which contains in the third-party library. At the beginning of every method a print statement is added, which prints the signature of the current method. In this way, the list of all executed methods is generated.

The findings of the thesis are that the first approach always yields higher value and the difference between the two methods decreases while the code coverage increases. The thesis cannot state which method is the best; however, a good solution is to combine both methods to generate an interval which bound the correct value.

Abstract [sv]

Dagens mjukvaruutveckling förlitar sig mycket på användningen av tredjepartsbibliotek. Emellertid innehåller många av biblioteken mycket funktionalitet men bara en liten del av dem används. Det här skapar onödigt komplex mjukvara som måste underhållas.

I den här uppsatsen jämförs två olika metoder som används för att beräkna andelen använd kod i tredjepartsbibliotek. Den första metoden använder JTombstone, det här verktyget analyserar koden statiskt. Eftersom den analyserar koden statiskt kommer hela projektet alltid bli analyserat, däremot kommer verktyget beräkna ett för högt värde. Den andra metoden bygger istället på en dynamisk utvärdering av koden. När man använder ett dynamiskt tillvägagångsätt så utvärderas bara den delen av koden som kördes, det här leder till att programmet kommer att generera ett för lågt resultat.

Verktyget som analyserar koden dynamiskt modifierar alla klasser som tillhör tredjepartsbiblioteket. I början av varje metod lägger verktyget till en utskrift, som skriver ut metodsignaturen för den specifika metoden. På så sätt erhålls en lista av metoderna som har blivit anropade.

Uppsatsen kom fram till att den första metoden alltid genererar ett större värde. Resultaten visar också att skillnaden mellan de två metoderna minskar när testerna testar en större del av koden. Med de resultat som genererades går det inte att avgöra vilken av de två metoder som är bäst. En bra lösning är att kombinera metoderna och med hjälp av de två resultaten skapa en övre och undre gräns för det korrekta värdet.

Place, publisher, year, edition, pages
2019. , p. 37
Series
TRITA-EECS-EX ; 2019:515
National Category
Computer and Information Sciences
Identifiers
URN: urn:nbn:se:kth:diva-262680OAI: oai:DiVA.org:kth-262680DiVA, id: diva2:1361938
External cooperation
Omegapoint Stockholm AB
Supervisors
Examiners
Available from: 2019-11-11 Created: 2019-10-17 Last updated: 2019-11-11Bibliographically approved

Open Access in DiVA

fulltext(739 kB)5 downloads
File information
File name FULLTEXT01.pdfFile size 739 kBChecksum SHA-512
8d4c648fcff92a63693f2fe1fc9cf785799bd6c176c648e83838766eeeaa07af70a6e3081a291ff71534220c3feb5a2a574edf62c2450d8a84ae5aa73e6fd321
Type fulltextMimetype application/pdf

By organisation
School of Electrical Engineering and Computer Science (EECS)
Computer and Information Sciences

Search outside of DiVA

GoogleGoogle Scholar
Total: 5 downloads
The number of downloads is the sum of all downloads of full texts. It may include eg previous versions that are now no longer available

urn-nbn

Altmetric score

urn-nbn
Total: 28 hits
CiteExportLink to record
Permanent link

Direct link
Cite
Citation style
  • apa
  • ieee
  • modern-language-association-8th-edition
  • vancouver
  • Other style
More styles
Language
  • de-DE
  • en-GB
  • en-US
  • fi-FI
  • nn-NO
  • nn-NB
  • sv-SE
  • Other locale
More languages
Output format
  • html
  • text
  • asciidoc
  • rtf