YTÜ DSpace Kurumsal Arşivi

Nesne yönelimli yazılımlarda karşıt kalıpların belirlenmesi

Basit öğe kaydını göster

dc.contributor.author Aras, Mehmed Taha
dc.date.accessioned 2022-08-08T10:57:29Z
dc.date.available 2022-08-08T10:57:29Z
dc.date.issued 2016
dc.identifier.uri http://dspace.yildiz.edu.tr/xmlui/handle/1/12908
dc.description Tez (Yüksek Lisans) - Yıldız Teknik Üniversitesi, Fen Bilimleri Enstitüsü, 2016 en_US
dc.description.abstract Kalıplar tasarımı geliştirmek ve bunun sonucunda sürdürülebilirliği, yeniden kullanılabilirliği ve tersine mühendisliği iyileştirmek için kullanılan önemli tekniklerdir. Nesne yönelimli yazılımlarda yaygın olarak meydana gelen problemlere karşı yeniden kullanılabilir olan genel çözümlere ise tasarım kalıpları denmektedir. Tasarım kalıpları yaygın problemleri çözmek için kullanabilecek biçimselleştirilmiş üstün yöntemler şeklindedir. Karşıt kalıplar ise tekrar eden bir probleme karşı yaygın olarak uygulanan, tasarım kalıbı olarak düşünülen fakat aksine genellikle verimsiz ve riskli çözümlerdir. Bazı çalışmalar göstermiştir ki, karşıt kalıpların kullanılması yazılım sistemlerinin sürdürülebilirliği üzerinde olumsuz etkilere sahiptir. Kod kokusu (kötü koku) zayıf tasarım ve geliştirmenin ve daha derin bir problemin semptomlarıdır. Bazı durumlarda bu semptomlar yazılım geliştiricilerin önemli yamalar geliştirirken acele etmelerinden ya da yerinde olmayan tercihler vermelerinden kaynaklanır. Kod kokuları kodun anlaşılabilirliğini düşürür, aynı zamanda hata ve değişim meyillidirler. Bu yüzden kod kokularının tespit edilmesi ve gerektiği zaman da düzeltme işlemlerinin planlanıp uygulanması gerekmektedir. Kod kokuları aynı zamanda karşıt kalıpların belirtileri olarak da karşımıza çıkmaktadır. Bir karşıt kalıp, bir ya da daha fazla kod kokusunun bir araya gelmesinden, ya da bazı kod metriklerinin belirli sınırları aşmasından meydana gelebilmektedir. Bu çalışma, Java nesne yönelimli programlama dilinde yazılmış projeleri analiz ederek, bazı kod kokuları ve metrik değerlerinin hesaplanmasını ve bu değerlerin referans aralıklarda olup olmamasına göre karşıt kalıp içeren sınıfların tespit edilmesini amaçlamaktadır. Karşıt kalıp tespitinde metrik tabanlı analizin yanında kod üzerinde bazı kokuların varlığını gösteren bazı kurallara dayalı doğrulamalar da yapılmaktadır. Varlığının tespit edilmesi amaçlanan karşıt kalıplar Blob, Swiss Army Knife ve Lava Flow karşıt kalıplarıdır. Bu karşıt kalıpların tespit edilmesi için projenin kaynak kod dosyalarını ve binary dosyalarını girdi olarak alan otomatik bir yaklaşım kullanılmaktadır. Sınıflar kendi içlerinde ve birbirleriyle etkileşimli olarak analiz edilip bazı metrikler çıkarılmaktadır. Baz alınan projelerin hesaplanan metrik değerleri üzerinde aykırı değer filtrelemesi yapıldıktan sonra ortaya çıkan ortalamalar ile referans değerler oluşmaktadır. Bu referans değerlerin dışında olan sınıflar potansiyel karşıt kalıp olarak tespit edilmektedir. Apache’nin 3 projesi ve büyük bir havayolu şirketinin 3 projesi referans projeler olarak analiz edilmiş ve filtrelenmiş ortalama değerleri baz alınmıştır. Ayrıca incelenen projenin filtrelenmiş ortalama değerleri ve yaygın olarak bilinen bazı metriklerin kabul edilen sınır değerleri de göz önünde bulundurulmuştur. Karşıt kalıp olarak veya normal olarak işaretlenen sınıflar kontrol edilerek geliştirilen yazılımın ürettiği sonuçların doğruluğu hesaplanmaya çalışılmıştır. en_US
dc.language.iso tr en_US
dc.subject Karşıt kalıp en_US
dc.subject Tasarım kalıbı en_US
dc.subject Kod kokusu en_US
dc.subject Otomatik yaklaşım en_US
dc.subject Metrik tabanlı yaklaşım en_US
dc.subject Kural tabanlı yaklaşım en_US
dc.title Nesne yönelimli yazılımlarda karşıt kalıpların belirlenmesi en_US
dc.type Thesis en_US


Bu öğenin dosyaları

Bu öğe aşağıdaki koleksiyon(lar)da görünmektedir.

Basit öğe kaydını göster