Kaynak Kod Benzerliği Ve Klon Kod Tespit Araçları

Slides:



Advertisements
Benzer bir sunumlar
BİLGİSAYAR PROGRAMLARININ FİKRİ HUKUKA GÖRE KORUNMASI
Advertisements

Yazılım Geliştirme ve Java
Mysql, PhpMyAdmin, PHP, Dinamik Web Sayfası, PHPNuke Kullanımı
Ardesenmyo.wordpress.com.
Sosyal Ağların Eğitimde Kullanımı
DİCLE ÜNİVERSİTESİ AKADEMİK BİLGİ SİSTEMİ (AKADEMİKWEB)
Nedir? Türkiye PHP Grubu – Dokuz Eylül Üniversitesi
MIT505 İnternet ve Web Programlama: Web Şablonları ve Web düzenleme
İnternet Programcılığı
Kişisel Web Sayfaları Kullanım Bilgileri
Web Programlama Kursu Bu kurs ne değildir? Neyi amaç edinmiştir?
Kaynak Gösterme.
C Programlama Diline Giriş
Bilgi Teknolojisinin Temel Kavramları
PATENT TESCİLİ VE SÜREÇLERİ
Javascript Oğuz İNAL.
GÜVENLİK, TELİF HAKLARI VE HUKUK
Powerpoint 2003 – Uzantısı .ppt Powerpoint 2010 – Uzantısı .pptx
MIT505 İnternet ve Web Programlama: Dinamik web sayfaları, javascript
JavaScript Javascript , Netscape firması tarafından C dilinden esinlenilerek yazılmıştır Yazılma amacı Html'in sahip olmadığı bazı özelliklerin web sayfalarında.
Sunu İçeriği Adem ÇAMLIKAYA Telif Hakları
TELİF HAKLARI VE BİLİŞİM HUKUKU
GAZİ ÜNİVERSİTESİ PATENT DESTEK BİRİMİ İstanbul, 07 Haziran 2010.
Bilgisayar Programlama
Görsel Programlama Dr. Muhammet Balcılar
Güvenli ve Pratik Web’de çalışma saatleri için;
Temel Kavramlar, İşlemler, Operatörler
Bilgi Teknolojisinin Temel Kavramları
KOBİ – ŞİRKET PORTALI BİTİRME PROJESİ EMRE UYUMAZ & ANIL GÜR.
BİLGİSAYAR ve ETİK.
TELİF HAKLARI SUNUM ÖDEVİ
B ILIŞIM TEKNOLOJILERINDE ETIK SORUNLAR D ERS : BILIŞIM ETIĞI K ONU : FİKRİ MULKİYET VE ERİŞİM YALIN KILIÇ TÜREL Ekim-BOTE-4-ELAZIĞ.
BİT’ini Kullanarak Bilgiye Ulaşma ve Biçimlendirme
FIZ 275 Bilgisayar Uygulamaları Ders Notu
Scratch programı eğlenceli bir ortamda resim, ses, müzik gibi çeşitli medya araçlarını bir araya getirebileceğimiz, kendi animasyonlarımızı, bilgisayar.
YAZILIM HAKLARI İÇİNDEKİLER 1-)Telif Hakkı Nedir Ve Ne İşe Yarar?
BİT’İNİ KULLANARAK BİLGİYE ULAŞMA VE BİÇİMLENDİRME
Türkiye’deki Üniversitelerde İnternet Tabanlı Akademik Kayıt ve Not Takip Sistemleri (IANTS) Y.Doç.Dr.Ender Özcan Yeditepe Üniversitesi.
ALİ FINDIK Galatasaray Ünİversİtesİ 2015
İKMAP İnternet 1 Ders Notu
TELİF HAKKI.
Bilgi Teknolojisinin Temel Kavramları
Programlama Dilleri Visual Basic C# C++ Pascal Delphi.
TELİF HAKKI.
Web Tasarım Nedir? Web tasarımı, bir ürünü ya da hizmeti veya bir bireyin reklam ve tanıtımını yapmak üzere veyahutsa toplumu eğitici ve öğretici çalışmalarla.
Adı:ibrahim soyadı:nergizka no:
Bilişim Suçlarıyla İlgili Mevzuat 2- AB’ye Uyum. Avrupa Birliği’ne uyum sürecinde Bilişim suçları ve güvenliği ile ilgili Türkiye’yi bağlayan bir başka.
BSM447 – MOBİL UYGULAMA GELİŞTİRME Öğr. Gör. Nevzat TAŞBAŞI 3. Hafta.
Dosya şifreleme Ftp/Telnet Özelliği Çoklu Pano Desteği Sadece Okuma Modu Otomatik Kod Tamamlama.
;EEn Hazırlayan: Şahin GÖKÇEARSLAN Gazi Üniversitesi Enformatik Bölümü.
Genel Kavramlar Bölüm - 1. YAZILIM Bilgisayara işlemler yaptırabilmek ve karar verdirtebilmek için yazılan kalıplara denir. Yazılım, genel olarak donanım.
Metadata, z39.50, FRBR, ve RDA. Ders içeriği Web kaynakları ve web kaynaklarında kimlikleme Derin web – Yüzeysel web Arama Motorları Metadata Kopya Kataloglama.
Temel Bilgi Teknolojileri
C Programlama Dili Bilgisayar Mühendisliği.
KİTAP: PROF.DR. BÜLENT KOBU
Bilgisayar Donanım ve Sistem Yazılımı
PROGRAMLAMA TEMELLERİ
TELİF HAKKI.
Server Yönetim Programları
Anlatmacı: Adnan Hadzimusiç
ETİK VE GÜVENLİK İnternette ne kadar güvendesin? 1.
Bilgisayar Mühendisliğine Giriş
Veri Tabanı Temel Kavramlar.
YAZILIM KOD ÜRETEÇLERİ
NİŞANTAŞI ÜNİVERSİTESİ
Dünya Üzerine Yayılmış Çok-Kullanıcılı Çevrim-İçi Eğitsel
Temel Bilgi Teknolojileri
Genel PHP Akademik Bilişim 2003 Adana, Şubat 2003 Hidayet Doğan
İntihal Başka bir yazarın eserini çalarak, kendisinin gibi göstermek
Patent ve Lisanslama Birimi
Sunum transkripti:

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

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

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).

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.

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 07.06.1995 tarihli 4110 sayılı kanun değişikliği ile gerçekleşmiştir. Bilgisayar programları ülkemizde patent kanunları ile korunmamaktadır.

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.

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.”

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.

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.

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

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).

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.

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.  

İ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.)

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

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 0.7.68 45 10

KAYNAK KOD BENZERLİĞİ VE KLON KOD TESPİT ARAÇLARI MOSS JPlag Sherlock SIM Simian CPD Duplo Plaggie

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

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 http://theory.stanford.edu/~aiken/moss/ 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

KAYNAK KOD BENZERLİĞİ VE KLON KOD TESPİT ARAÇLARI JPlag Güvenilir sonuçlar veren araçlardan biri https://www.ipd.uni-karlsruhe.de/JPlag 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

KAYNAK KOD BENZERLİĞİ VE KLON KOD TESPİT ARAÇLARI Sherlock Açık kaynak https://www.ipd.uni-karlsruhe.de/JPlag 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

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

KAYNAK KOD BENZERLİĞİ VE KLON KOD TESPİT ARAÇLARI Simian http://www.harukizaemon.com/simian/get_it_now.html 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

KAYNAK KOD BENZERLİĞİ VE KLON KOD TESPİT ARAÇLARI CPD http://pmd.sourceforge.net/cpd.jnlp 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

KAYNAK KOD BENZERLİĞİ VE KLON KOD TESPİT ARAÇLARI Duplo http://pmd.sourceforge.net/cpd.jnlp 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.

KAYNAK KOD BENZERLİĞİ VE KLON KOD TESPİT ARAÇLARI Plaggie http://www.cs.hut.fi/Software/Plaggie/download.html adresinden indirilebilir. http://plaggie2.googlecode.com/svn/trunk/ 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.

teşekkür ederim… Araş. Gör. Zeki ÖZEN