Starije izmjene na obje strane
Starija izmjena
Novija izmjena
|
Starija izmjena
|
racfor_wiki:fdd:plagiranje_koda [2022/06/07 21:37] bboras |
racfor_wiki:fdd:plagiranje_koda [2024/12/05 12:24] (trenutno) |
=== Ostali alati === | === Ostali alati === |
Uz navedene alate, postoji još mnoštvo detektora plagijata za programski kod. Problem je što se većina tih alata, kao što je [[https://codequiry.com/|Codequity]] plaćaju jer je većina njih je razvijena kako bi se spriječilo plagiranje programskih kodova u akademskim ustanovama. Ostali alati koji su besplatni većinom su davno razvijeni, ne pružaju moderne metode za detekciju plagijata i nemaju potporu da mnogo programskih jezika. | Uz navedene alate, postoji još mnoštvo detektora plagijata za programski kod. Problem je što se većina tih alata, kao što je [[https://codequiry.com/|Codequity]] plaćaju jer je većina njih je razvijena kako bi se spriječilo plagiranje programskih kodova u akademskim ustanovama. Ostali alati koji su besplatni većinom su davno razvijeni, ne pružaju moderne metode za detekciju plagijata i nemaju potporu da mnogo programskih jezika. |
| |
| ==== Nove ideje ==== |
| |
| Većina alata za detekciju plagijata u programskom kodu temelji se na usporedbi tokena i sličnih tekstualnih vrijednosti, a to nam često nije dovoljno. Također, plagiranje se ne provodi samo zbog programerovog neznanja, nego i zbog lošeg upravljanja vremenom - dobar programer sposoban je transformirati neki izvorni kod u potpuno drugačiji tekstualni oblik. Zbog toga se nastoji raditi analiza koda na "nižoj razini" odnosno analiziraju se instrukcije izvršnog koda. Jedan slučaj takve analize za programski jezik Java [4] imao je puno više uspjeha nego analiziranje "čistih" izvornih kodova. Slično, nastoje se raditi analize kojima bi se fragmenti koda karakterizirali pomoću jezgrenih vrijednosti izvršnih datoteka [5]. Još jedna tehnika detekcije plagijata bila bi izdvajanje "biljega" iz izvornog koda koji se potom uspoređuju pomoću kosinusne sličnosti. Za ovakvu detekciju nije potreban izvorni kod, a otporna je i na slabe i na jake tehnike obusfikacije programskog koda [6]. Iz navedenog se vidi da se detektiranje plagijata u programskom kodu sve više orijentira k analizi izvršnih datoteka, što je kompliciranije područje, ali daje više uspjeha. |
==== Zaključak ==== | ==== Zaključak ==== |
Plagiranje programskog koda je složena tema koja svakim danom postaje sve složenija. U ovom radu navedene su neke tehnike plagiranja koda kao i tehnike detekcije plagijata te odgovarajući alati za detekciju plagijata, ali tu je zapravo samo zagrebana površina. Čak da imamo "savršen" detektor plagijata, pitanje je možemo li 100% dokazati da je netko nešto plagirao. Kratki programi koji rade jednostavne funkcije (npr. program koji iz polja cijelih brojeva ispisuje pozitivne brojeve) se često pišu na isti način pa nema smisla raditi detekciju plagijata. S druge strane, možda su npr. na nekoj laboratorijskoj vježbi studenti prepisali taj isti jednostavan program, a nisu kažnjeni i dobili su bodove koje ne zaslužuju. U svakom slučaju, uz potrebnu programsku podršku za detekciju plagijata očito je da je potrebna i intervencija čovjeka koji na kraju sam mora odlučiti je li neko programsko rješenje plagijat ili ne. | Plagiranje programskog koda je složena tema koja svakim danom postaje sve složenija. U ovom radu navedene su neke tehnike plagiranja koda kao i tehnike detekcije plagijata te odgovarajući alati za detekciju plagijata, ali tu je zapravo samo zagrebana površina. Čak da imamo "savršen" detektor plagijata, pitanje je možemo li 100% dokazati da je netko nešto plagirao. Kratki programi koji rade jednostavne funkcije (npr. program koji iz polja cijelih brojeva ispisuje pozitivne brojeve) se često pišu na isti način pa nema smisla raditi detekciju plagijata. S druge strane, možda su npr. na nekoj laboratorijskoj vježbi studenti prepisali taj isti jednostavan program, a nisu kažnjeni i dobili su bodove koje ne zaslužuju. U svakom slučaju, uz potrebnu programsku podršku za detekciju plagijata očito je da je potrebna i intervencija čovjeka koji na kraju sam mora odlučiti je li neko programsko rješenje plagijat ili ne. |
| |
==== Budućnost ==== | |
| |
| |
==== Literatura ==== | ==== Literatura ==== |
[3] [[https://urn.nsk.hr/urn:nbn:hr:137:096778|V. Devald, "Alati za detekciju plagijata u programskim rješenjima", Završni rad, Sveučilište Jurja Dobrile u Puli, Pula, 2020.]] | [3] [[https://urn.nsk.hr/urn:nbn:hr:137:096778|V. Devald, "Alati za detekciju plagijata u programskim rješenjima", Završni rad, Sveučilište Jurja Dobrile u Puli, Pula, 2020.]] |
| |
| [4] [[https://ieeexplore.ieee.org/document/7910274|O. Karnalim, "Detecting source code plagiarism on introductory programming course assignments using a bytecode approach," 2016 International Conference on Information & Communication Technology and Systems (ICTS), 2016, pp. 63-68, doi: 10.1109/ICTS.2016.7910274.]] |
| |
| [5] [[https://ieeexplore.ieee.org/document/7076635|Y. Jhi, X. Jia, X. Wang, S. Zhu, P. Liu and D. Wu, "Program Characterization Using Runtime Values and Its Application to Software Plagiarism Detection," in IEEE Transactions on Software Engineering, vol. 41, no. 9, pp. 925-943, 1 Sept. 2015, doi: 10.1109/TSE.2015.2418777.]] |
| |
| [6] [[https://ieeexplore.ieee.org/document/7153572|Z. Tian, Q. Zheng, T. Liu, M. Fan, E. Zhuang and Z. Yang, "Software Plagiarism Detection with Birthmarks Based on Dynamic Key Instruction Sequences," in IEEE Transactions on Software Engineering, vol. 41, no. 12, pp. 1217-1235, 1 Dec. 2015, doi: 10.1109/TSE.2015.2454508.]] |
| |
~~DISCUSSION~~ | ~~DISCUSSION~~ |