Solıd prensipleri ile bakım için yazılımı yeniden yapılandırma yöntemi


Tezin Türü: Yüksek Lisans

Tezin Yürütüldüğü Kurum: Ankara Üniversitesi, Fen Bilimleri Enstitüsü, Türkiye

Tezin Onay Tarihi: 2019

Tezin Dili: Türkçe

Öğrenci: OSMAN TURAN

Danışman: ÖMER ÖZGÜR TANRIÖVER

Özet:

SOLID prensipleri uyumluluk, bağıntılık ve kenetlilik arasındaki dengeyi sağlayarak yazılım sistemlerindeki karmaşıklığı azaltma yoluyla modülerliği artırır. Bu kapsamda prensiplerle ilgili iki çalışma yapılmıştır. İlk çalışmada, ISO 9126(25010) bakım yapılabilirliğin her alt özelliği SOLID tasarım ilkeleri ile ilişkilendirilmiş ve yeniden yapılandırma işlemleri gerçekleştirilmiştir. Her bir aşamada kod değişiklikleri VS kod metrik aracıyla ölçülmüştür. İlk çalışmaya ilave olarak tek sorumluluk ilkesine yönelik çalışma ile yeniden yapılandırma göstergeleri ele alınırken metot ve sınıf isimlendirmelerinde kullanılan sözcükleri de anlamsal olarak birbirleri ile olan ilişkileri yönünden değerlendirmiştir. Anlamsal ilişki değerlendirmesinde WordNet anlamsal veri tabanı kullanılmıştır. Yazılım içerisinde yer alan olası yeniden yapılandırma yapılabilecek kod bölümleri öne sürdüğümüz tez ile otomatik olarak listelenerek belirlenen puanlama sistemine göre sıralanmış ve yazılım yeniden yapılandırma için yazılım geliştiricilerine sunulmuştur. Öne sürülen teorinin doğrulanabilmesi için kurumsal bir yapıda kullanılan iki büyük proje üzerinde vaka çalışması yapılmıştır. Yazılım yeniden yapılandırma çalışmalarında yazılım geliştiricilere önemli fırsatlar sunduğu, tek sorumluluk ilkesinin uygulanmasında faydalı olduğu görülmüştür. SOLID principles increase modularity by reducing the complexity of software systems by providing a balance between compatibility, relevance, and connectivity. In this context, two studies were carried out on the principles. In the first study, each sub-feature of ISO 9126 (25010) maintenance ability was associated with SOLID design principles and refactoring was performed. The code changes at each stage were measured with the VS code metric tool. In addition to the first study, while considering the single responsibility principle and the restructuring indicators, the words used in the method and class naming were evaluated in terms of semantic relations with each other. In the semantic relationship evaluation, WordNet semantic database was used. The possible code sections that can be restructured within the software are listed automatically according to the proposed scoring system and presented to software developers for software restructuring. Case studies were conducted on two major projects used in an institutional structure to validate the proposed theory. It has been found that it offers significant opportunities to software developers in software restructuring efforts and is beneficial in the implementation of the sole responsibility principle.