Sunuyu indir
Sunum yükleniyor. Lütfen bekleyiniz
1
Kaynak Kod Benzerliği Ve Klon Kod Tespit Araçları
Zeki ÖZEN İstanbul Üniversitesi Enformatik Bölümü Doç. Dr. Sevinç GÜLSEÇEN İstanbul Üniversitesi Fen Fakültesi Matematik Bölümü 02 Şubat, 2012
2
Sunum İçeriği Kaynak kod Kaynak kodun hukuki statüsü
Kaynak Kod İntihali Klon kod Kaynak kod intihalini ve klon kodu tespit eden araçlar
3
Kaynak Kod Bilgisayar programının programcı tarafından bir programlama diliyle yazılan formuna kaynak kod denir (Yadav, 2008). Kaynak kod düz metin şeklinde ve bir programlama diliyle yazılmış ve o dile ait komutlar, ifadeler ve bunların komut setlerini barındıran yazılımın bir biçimidir (LINFO, 2006). Başka bir çalışmada kaynak kod, bir veya daha fazla programlama diliyle bilgisayarda yazılmış ve makine diliyle alakasız olarak bilgisayara verilen kodlar olarak tanımlanmıştır (Davidson, 2003).
4
Kaynak Kod Bir bilgisayar programının bilgisayarda çalıştırılmaya hazır (derlenmeden önceki) durumdan önceki aşamasına kaynak kod, sonraki aşamasına ise amaç kod da denilmektedir (TechTerms). Programlama dilinin tanımından yola çıkarak kaynak kodu, programlama dillerinden biriyle ve istenilen amaca uygun olarak o dilin gramer yapısı ve komutları kullanılarak yazılan komutlar bütünü olarak tanımlamak da mümkündür.
5
FİKRÎ MÜLKİYET AÇISINDAN BİLGİSAYAR PROGRAMI VE KAYNAK KOD
Türkiye’de Bilgisayar Programlarını Koruyan Kanun Türkiye’de bilgisayar programları 5846 sayılı FSEK ile korunma altına alınmıştır. “Bilgisayar programı” kelimesinin FSEK’e girmesi ve bilgisayar programlarının birer eser olduklarının kabulü ülkemizde tarihli 4110 sayılı kanun değişikliği ile gerçekleşmiştir. Bilgisayar programları ülkemizde patent kanunları ile korunmamaktadır.
6
FİKRÎ MÜLKİYET AÇISINDAN BİLGİSAYAR PROGRAMI VE KAYNAK KOD
Fikir ve Sanat Eserleri Kanunu Eser Kavramı FSEK ile koruma altına alınacak şeyin bir eser olması gerekmektedir. Fikri hukuk açısından eser “kişinin sadece fikri faaliyet sonucu ortaya koyduğu ve hukukî bakımdan değer ifade eden neticeler” şeklinde tanımlanır.
7
FİKRÎ MÜLKİYET AÇISINDAN BİLGİSAYAR PROGRAMI VE KAYNAK KOD
Fikir ve Sanat Eserleri Kanunu Eser Kavramı Her fikrî ürün eser değildir fakat her fikir ve sanat eseri birer fikrî üründür. FSEK’in m. 1-B/ a bendinde eserin tanımı şöyledir: “Sahibinin hususiyetini taşıyan ve ilim ve edebiyat, musikî, güzel sanatlar veya sinema eserleri olarak sayılan her nevi fikir ve sanat mahsullerini ifade eder” Bu kategorilere ek olarak FSEK m. 8’de “Bir işlenmenin ve derlemenin sahibi, asıl eser sahibinin hakları mahfuz kalmak şartıyla onu işleyendir.”
8
FİKRÎ MÜLKİYET AÇISINDAN BİLGİSAYAR PROGRAMI VE KAYNAK KOD
Bilgisayar Programlarının Eser Niteliği Bilgisayar programları, FSEK m. 2/I’de “Herhangi bir şekilde dil ve yazı ile ifade olunan eserler ve her biçim altında ifade edilen bilgisayar programları ve bir sonraki aşamada program sonucu doğurması koşuluyla bunların hazırlık tasarımları” ifadeleriyle ilim ve edebiyat eserleri kategorisinde eser kapsamına dâhil edilmiştir. FSEK, m. 1/B g bendinde bilgisayar programını; “Bilgisayar programı: Bir bilgisayar sisteminin özel bir işlem veya görev yapmasını sağlayacak bir şekilde düzene konulmuş bilgisayar emir dizgesini ve bu emir dizgesinin oluşum ve gelişimini sağlayacak hazırlık çalışmalarını… ifade eder.” ile tanımlamıştır.
9
FİKRÎ MÜLKİYET AÇISINDAN BİLGİSAYAR PROGRAMI VE KAYNAK KOD
Bilgisayar Programı Unsurlarının Eser Niteliği FSEK m. 13/II “Eser sahibine tanınan hak ve salahiyetler eserin bütününe ve parçalarına şamildir.” demektedir.
10
FİKRÎ MÜLKİYET AÇISINDAN BİLGİSAYAR PROGRAMI VE KAYNAK KOD
Bilgisayar Programı Unsurlarının Eser Niteliği Kaynak kod Kaynak kodlar FSEK m. 2/I’de “her biçim altında ifade edilen bilgisayar programları” ifadeleri ile koruma altındadır. TRIPS anlaşması da m. 10/I. bendinde “Kaynak veya nesne kodundaki bilgisayar programları Bern Sözleşmesi (1971) kapsamında edebi eserler olarak korunacaktır.” WIPO Telif Hakları Andlaşması’nın m. 4 “Bilgisayar programları, Bern Sözleşmesi’nin 2 nci maddesi anlamında edebiyat eseri olarak korunur. Öngörülen koruma, hangi koşul ya da biçimle ifade edilirse edilsin bilgisayar programlarına uygulanacaktır.” denilerek
11
KAYNAK KOD İNTİHALİ İntihal İntihal (plagiarism) başkasının bir fikri faaliyet ile ürettiği edebi bir metnin, bir işin tamamının veya bir kısmının olduğu gibi veya üzerinde sahibine ait hususiyet barındırmayacak miktarda değişikliklerle kendisininmiş gibi sunulması, eser sahibine atıf yapılmadan kullanılması anlamına gelmektedir. FSEK ayrıca m. 67’de de intihalden bahsetmektedir: “… maddelerde sayılan hallerde yanlış veya kifayetsiz kaynak tasrih edilmiş veyahut hiç kaynak gösterilmemişse ikinci fıkra hükmü uygulanır.” İntihal sonucu meydana getirilen ürünler eser olarak korunmazlar (Gökyayla, 2009).
12
KAYNAK KOD İNTİHALİ İntihal sadece akademik çevrede işlenen bir suç değildir. Diğer edebiyat ve güzel sanat dallarında ve sanayinin her alanında intihal vakalarına rastlanmaktadır. Bu intihal türlerinden biri de kaynak kodun intihal edilmesidir. Bilgisayar programının kaynak kodu diğer metin türlerinden farklıdır. Kaynak kod edebi metinlere göre daha kurallı bir yapıya sahiptir ve kaynak kod intihalini tespit etmek daha fazla dikkat gerektirir (Konecki ve diğ., 2009). Kaynak kod intihali, kaynak kod dosyalarının veya kaynak kod kısımlarının asıl eser sahibinin izni olmaksızın aynen kopyalanarak veya değiştirilerek başka bir yazılım üretmek amacıyla kullanılmasıdır.
13
KAYNAK KOD İNTİHALİ Kaynak kod intihalinin gerçekleşmesine yol açan birçok neden olmakla birlikte en bilinen yöntem kod klonlama olarak da adlandırılan kaynak kodun dosyalar arasında kopyalanmasıdır. Kod Klonlama Başka bir kodun bir kısmının veya tamamının kopyalanması yoluyla meydana gelen koda klon kod (clone code) veya klon denir.
14
İsim değişikliği (değişken, fonksiyon isimleri vs)
KAYNAK KOD İNTİHALİ Kaynak Kod Klonlama yöntemleri İsim değişikliği (değişken, fonksiyon isimleri vs) Kod bloklarını tekrar sıralama Kodu farklı biçimde ifade etme Kaynak kodu farklı bir programlama diline çevirme Kaynak koda düzmece kod ekleme/silme Karma kaynak kod kullanma (Kaynak kodun hem çalıntı kod bölümlerini içermesi hem de çalıntı olmayan bağımsız olarak yazılmış kaynak kodları içermesi durumudur.)
15
Açık Kaynak Kodlu yazılımlarda kodun kullanımı
KAYNAK KOD İNTİHALİ Açık Kaynak Kodlu yazılımlarda kodun kullanımı Açık kaynak kod yazılımlarda kodun kullanılmasının serbest olması, o yazılımların istenildiği gibi kullanılacağı anlamına gelmemektedir. Açık kaynak yazılımın lisans şartlarının ihlali intihale veya yazılım telif haklarının çiğnenmesine yol açabilir. Yazılımlarla lisans yayımlanmak zorundadır Değiştirilen kaynak kod yayımlanmak zorundadır Yazılımların lisans tipi değiştirilebilir GPL v2 ü û BSD
16
Java Development Kit (JDK) 1.4.2 Process-Control System
KAYNAK KOD İNTİHALİ Bazı yazılımlarda klon kod bulunma yüzdesi (TAIRAS, 2010). Program Adı Satır Sayısı (bin) Klon kod Oranı (%) Linux kernel 4.365 15 Java Development Kit (JDK) 1.4.2 2.418 8 JDK 1.3.0 570 9 Process-Control System 400 12 JHotDraw 7.0.7 71 19 JavaGenes 45 10
17
KAYNAK KOD BENZERLİĞİ VE KLON KOD TESPİT ARAÇLARI
MOSS JPlag Sherlock SIM Simian CPD Duplo Plaggie
18
KAYNAK KOD BENZERLİĞİ VE KLON KOD TESPİT ARAÇLARI
Yazılım mühendisliğinde kaynak kod karşılaştırma yapılmasının esas amacı kopyalanmış kod kısımlarını belirlemek ve onları tek bir fonksiyon altında birleştirmektir (Jafar, 2007; Lozano ve diğ., 2007). Bununla birlikte programı anlama, kaynak kod kalite analizi, yazılım gelişimi analizi, kod sıkıştırma, virüs algılama ve hata algılama gibi alanlarda da kaynak kod karşılaştırılması yapılmaktadır (Roy ve diğ., 2009). Akademide ise öğrenci ödevlerinde kopya/intihal tespiti, araştırmacıların makalelerinde kaynak kod intihali tespiti, öğrencilere verilen programlama ödevlerinin kaynak kodlarında benzerlik araştırması gibi alanlarda Hukuksal boyutta ise telif hakkı ihlalinin tespiti, ticarî sır hırsızlığının ve patent ihlalinin önlenmesi amacıyla
19
KAYNAK KOD BENZERLİĞİ VE KLON KOD TESPİT ARAÇLARI
MOSS İlk geliştirilen ve en popüler araçlardan biri 1994 senesinde geliştirilmeye başlanıyor adresinden indirilebilir Kullanımı ücretsiz fakat üyelik gerektirmekte En fazla dilde karşılaştırma yapan araçlardan biri Karşılaştırma işlemini kendi sunucusunda yapmakta Sonuçları kendi bünyesinde görüntülemekte Kullanım için sitesinden edinilen perl gönderim betiği gerekli Konsoldan parametre alarak kullanılmakta Karşılaştırma sonuçları html sayfasında görüntülemekte Karşılaştırmaya ilişkin benzerlik oranı vermekte Benzerlik gösteren kısımları listelemekte
20
KAYNAK KOD BENZERLİĞİ VE KLON KOD TESPİT ARAÇLARI
JPlag Güvenilir sonuçlar veren araçlardan biri adresinden indirilebilir Kullanımı ücretsiz fakat üyelik gerektirmekte Karşılaştırma işlemini kendi sunucusunda yapmakta Sonuçları kullanıcının bilgisayarına geri göndermekte Grafik arayüzden kullanılmakta Karşılaştırma sonuçları html sayfasında görüntülemekte Karşılaştırmaya ilişkin benzerlik oranı vermekte Benzerlik gösteren kısımları listelemekte
21
KAYNAK KOD BENZERLİĞİ VE KLON KOD TESPİT ARAÇLARI
Sherlock Açık kaynak adresinden indirilebilir Konsoldan parametre alarak kullanılmakta C, C++, Java, Pascal, HTML ve metin dosyaları arasındaki benzerlik oranlarını vermekte Karşılaştırmaya ilişkin benzerlik oranı vermekte Karşılaştırma sonuçlarını bir dosyaya aktarabilmekte
22
KAYNAK KOD BENZERLİĞİ VE KLON KOD TESPİT ARAÇLARI
SIM ftp://ftp.cs.vu.nl/pub/dick/similarity_tester/ adresinden indirilebilir Konsoldan parametre alarak kullanılmakta C, Java, Pascal, Modula-2, Lisp, Miranda ve metin dosyaları arasındaki benzerlik oranlarını vermekte Karşılaştırmaya ilişkin benzerlik oranı vermekte Karşılaştırma sonuçlarını bir dosyaya aktarabilmekte
23
KAYNAK KOD BENZERLİĞİ VE KLON KOD TESPİT ARAÇLARI
Simian adresinden indirilebilir Kişisel kullanım ücretsiz Konsoldan parametre alarak kullanılmakta Java, C, Objective-C, C++, C#, JavaScript (ECMAScript), COBOL, ABAP, Ruby, Lisp, SQL, Visual Basic, Groovy kaynak kod dosyaları arasındaki benzerlik oranlarını vermekte Karşılaştırmaya ilişkin benzerlik oranı vermekte Karşılaştırma sonuçlarını bir dosyaya aktarabilmekte
24
KAYNAK KOD BENZERLİĞİ VE KLON KOD TESPİT ARAÇLARI
CPD adresinden çalıştırılabilir Açık kaynak kod Grafik Arayüzden kullanılmakta C, C++, C#, Java, JSP, Ruby, Fortran, PHP ve seçilen uzantıya sahip dosyalar arasındaki benzerlik oranlarını vermekte Karşılaştırmaya ilişkin benzerlik oranı vermekte Eclipse, NetBeans, JDeveloper, JEdit, BlueJ ve IntelliJ IDEA gibi birçok IDE’ye eklenti olarak da kurulabilmekte
25
KAYNAK KOD BENZERLİĞİ VE KLON KOD TESPİT ARAÇLARI
Duplo adresinden çalıştırılabilir Açık kaynak kod Konsoldan kullanılmakta C, C++, C#, Java ve VB.NET kaynak kod dosyaları arasındaki karşılaştırma yapabilmekte Karşılaştırmaya ilişkin benzerlik oranı vermiyor. Sadece kod blokları arasındaki kopyalanmış satırları gösteriyor.
26
KAYNAK KOD BENZERLİĞİ VE KLON KOD TESPİT ARAÇLARI
Plaggie adresinden indirilebilir. fork edilmiş başka bir plaggie Konsoldan veya Eclipse üzerinden kullanılmakta Sadece Java kaynak kod dosyaları arasındaki benzerlik oranlarını vermekte Karşılaştırma sonuçlarını html sayfası olarak sunmakta.
27
teşekkür ederim… Araş. Gör. Zeki ÖZEN
Benzer bir sunumlar
© 2024 SlidePlayer.biz.tr Inc.
All rights reserved.