Home / MAKALELER / İş Zekası / Yazılım Madenciliği Nedir ?

Yazılım Madenciliği Nedir ?

Yazılım madenciliği, var olan yazılım süreçlerinden bilgi çıkarımı yapmayı içeren, yazılım modernizasyonu alanında bir bilgi keşfi uygulamasıdır. Yazılım süreçleri, yazılım sistemlerinin evrimi için anahtar rol oynar.  Büyük ticari değer içerdiği için yazılım madenciliği veri madenciliği yakın ilişki içinde olmak durumundadır.

Yazılım Madenciliğinin Seviyeleri

 

  • Program seviyesi (bireysel ifadeler ve değişkenler)
  • Tasarım örüntü (design pattern) seviyesi
  • Alt program veya modül çağrı grafları seviyesi (bireysel prosedürler ve seviyeleri)
  • Mimari seviye (alt sistemler ve arayüzleri)
  • Veri seviyesi (bireysel kolonlar ve veri depolarının nitelikleri)
  • Uygulama seviyesi (anahtar veri maddeleri ve uygulama boyunca  akışları)
  • İş seviyesi (alan kavramları, kod içinde iş kuralları ve uyarlamaları)

Yazılım Hataları Madenciliği

 

Bir yazılım hatasının olağan döngüsü aşağıdaki gibidir. [1]

 

webmadenciligi

 

Şekil 1. Hata Durum Diyagramı

Yazılım hataları kullanılarak güvenlik açıklarını tanımlama işlemi, karmaşık yazılım sistemlerine bağlı olarak kritik ve hassas sistemler için gittikçe önem kazanıyor. Bazı yazılım hataları fark edilmelerinden çok uzun zaman sonra güvenlik açığı olarak tanımlanırlar. Bu güvenlik açıkları gizli etkili güvenlik açıkları olarak bilinir.

Şekil 2’de bir yazılım hata madenciliği sisteminin kavramsal yapısını göstermektedir [2].

 

webmadenciligi2

 

 

Şekil 2. Yazılım Hata Madenciliği Sistemi

Bugzilla gibi bir hata-izleme sistemi; geliştirim ekipleri, test ekipleri ve son kullanıcılar gibi çeşitli kaynaklardan toplanmış hata raporları içerirler. Hatanın kısa tanımı (short description) ve detaylı içeriği (long description) Metin madenciliği süreci için girdi olarak kabul edilebilirler. Eğer hata raporu kod parçası içeriyorsa bunlar da bir kod analiz modülünden geçirilerek sisteme girdi olarak alınabilirler.  Metin Madenciliği sonucunda elde edilen özellik vektörü (feature vector) herhangi bir sınıflandırma algoritmasına girdi olarak verilerek hatalar “Bug” veya “Vulnerability” olarak sınıflandırılabilir.

Yazılım Madenciliği ile ilgili elinde veri olup bu konuya ilgi duyanlar e-posta adresim üzerinden irtibat kurabilirler.

Referanslar

 

  1. N. K. Nagwani, A.Bhansali,

2010, A Data Mining Model to Predict Software Bug Complexity Using Bug Estimation and Clustering, 2010 International Conference on Recent Trends in Information, Telecommunication and Computing

  1. Dumidu Wijayasekara, Milos Manic, Jason L. Wright, Miles McQueen

2012, Mining Bug Databases for Unidentified Software Vulnerabilities, Mining Software Repositories (MSR), Human System Interactions (HSI), 2012 5th International Conference on

About Turgay Tugay Bilgin

Lisans, Yüksek Lisans ve Doktora eğitimini Marmara Üniversitesinde tamamladıktan sonra 2 yıl boyunca bankacılık uygulamaları geliştiren bir firmada yazılım uzmanı, ve bir bilgi teknolojileri eğitim merkezinde eğitmen olarak çalışmıştır. 2003 yılında Maltepe Üniversitesinde başladığı akademisyenlik hayatına halen aynı üniversitenin Yazılım Mühendisliği bölümünde Yrd. Doç.Dr. olarak devam etmektedir. Veri Madenciliği, makine öğrenmesi algoritmaları, web madenciliği ve metin madenciliği konularında akademik çalışmalar yürütmekte ve bu alanlarda çeşitli firmalara akademik danışmanlık hizmetleri vermektedir.

İlginizi Çekebilir

Informatica Ile Incremental Süreçlerin Yönetimi-2 (SCD Type-2 Current Flag Column)

Merhabalar, Önceki yazımda Incremental süreç nedir, nasıl bir ihtiyaç sonucu uygulamaya başlarız, SCD Type ların …

Bir Cevap Yazın