DoctorateOpen Access

Automated maintenance support for data-tier software

2022
0 views
0 downloads
Advisor: Doç. Dr. Hasan Sözer

Abstract (TR)

Yazılımların veri katmanları, kurumsal sistemlerin veri modeli ile iş mantığını içermekte olup, bu katmanlar uzun süreli bakıma ihtiyaç duymaktadır. Sistemlerin kullanıcı arayüzü tamamen değiştirilse de, veri katmanı yazılımı genellikle uzun yıllar boyunca geliştirilmeye devam etmektedir. Yazılım hakkında kapsamlı bilgiye sahip olan alan uzmanlarının sayısı zamanla azalmaktadır. Bu durum yazılıma yeni özellikler eklemeyi veya mevcutta olan yazılımı değiştirmeyi özellikle yeterli tecrübeye sahip olmayan geliştiriciler için zorlaştırmakta ve daha fazla efor gerektiren bir çalışma haline gerektirmektedir. Bu durum aynı zamanda hata eğilimini de arttırmaktadır. Bu tezde, veri katmanı yazılımı için otomatik bakım desteği sağlamak üzere teknikler ve araçlar tanıtılmaktadır. Bu teknikler ve araçlar, özellikle üç zorlu bakım ihtiyacı için eforu ve hata sayısını azaltmayı amaçlamaktadır: i) veri katmanı yazılımında prosedür gibi yeni bir nesnenin doğru modül ile ilişkili olarak konumlandırılması, ii) veritabanı tablolarının değiştirilmesinin yazılım modülleri üzerindeki etkisinin belirlenmesi, ve iii) veritabanı tablolarının genişletilmesinin aynı veritabanındaki diğer tablolar üzerindeki etkisinin belirlenmesi. Yukarıda listelenen ilk bakım ihtiyacı önemlidir, çünkü veri katmanı yazılımına yeni bir nesne eklemek modüler yapıyı bozmamalıdır. Bu yapı, nesnelerin veritabanı şemaları arasında doğru konumlandırılmasıyla sağlanmakta-dır. Bu bakım ihtiyacı ile ilgili olarak, yeni nesnelerin doğru yerleşimini otomatik olarak tahmin etmeyi amaçlayan bir yaklaşım ve araç sunmaktayız. Şemalar üzerinde yer alan çeşitli nesne türleri (veri tipleri, sekans, tablolar, prosedürler, fonksiyonlar, paketler ve görünümler) arasındaki bağımlılıkları çıkarıp, bu bağımlı-lıkları daha sonra doğru modülün tahmini için kullanılan bir yapay sinir ağı modelinin eğitimi için kullanmaktayız. Endüstriyel örnek vaka çalışmalarımız, yaklaşımımızın 89% düzeyine kadar bir doğruluğa ulaşabileceğini, buna karşın birleştirme ve uyum metriklerini temel alan yaklaşımın en fazla 57.4% düzeyinde bir doğruluğa ulaşabildiğini göstermektedir. Veri modelindeki değişikliklerin kaynak kodu üzerindeki etkisini analiz etmeye yönelik ikinci bakım ihtiyacını desteklemek için halihazırda birkaç teknik ve araç bulunmaktadır. Ancak, bu teknik ve araçlar dinamik olarak oluşturulmuş SQL deyimlerini, birden çok tablo ile bağlantılı sorguları ve veri katmanı yazılımı geliştirmek için yaygın olarak kullanılan bir dil olan PL/SQL'de veri işlemeye izin veren diğer deyim türlerini analiz etmekte yetersiz kalmaktadırlar. Bu nedenle belirli bir veritabanının tüm şemalarında yer alan hem veri modelini hem de kaynak kodunu (PL/SQL fonksiyonları ve prosedürleri vb.) elde edip, ardından sorgulara ve veritabanı tablolarını güncelleyen komutlara dayalı bir bağımlılık modeli oluşturan bir araç sunmaktayız. Önceki çalışmalardan farklı olarak, aracımız dinamik olarak oluşturulan ve birden çok tablonun yanı sıra PL/SQL'e özgü özellikleri içeren sorguları analiz edebilmektedir. Gerçek bir sistem üzerinde iki farklı yeniden yapılandırma çalışması ile ilgili gerekli olan eforu tahmin etmek için araç tarafından oluşturulan bağımlılık modelini kullanmaktayız. Bağımlılık modeli kullanılarak hesaplanan otomatik tahminler ile alan uzmanları tarafından yapılan manuel tahminler arasında yüksek tutarlılık gözlemlenmektedir. Üçüncü bakım ihtiyacı, genişletilen tabloların aynı veritabanındaki diğer tablolar üzerindeki etkisiyle ilgilidir. Bu ihtiyaca odaklanan sadece birkaç çalışma bulunmaktadır. Ayrıca, bu çalışmalar yalnızca veritabanı tablolarındaki sütunların silinmesi ve değiştirilmesinin etkisini dikkate almaktadır. Bu çalışmada, veri tabanı tablolarının genişletilmesinin veri modelinde hali hazırda mevcut olan diğer tablolar üzerindeki olası etkisini otomatik olarak tespit eden bir yaklaşım ve araç sunulmaktadır. Veritabanı tablolarının benzerliklerini tespit etmek, aralarındaki örtük ilişkileri öğrenmek için Siyam ağlarını kullanmaktayız. Temel bir yöntem olarak, veritabanı tabloları arasındaki benzerliği ölçmek için kosinüs benzerlik metriğini kullanan başka bir araç daha sağlıyoruz. Siyam ağlarıyla 96.1% F1 skoruna ulaşılarak, temel yönteme göre daha iyi sonuç elde edildiği görülmektedir.

Author

Dr. Ersin Ersoy

How to Cite

Ersin Ersoy (Doktora Tezi). Automated maintenance support for data-tier software, 2022, Özyegin University.

License

Tüm Hakları Saklıdır

This work is shared under the specified license terms.

More theses from Özyegin University