Geri Dön

Automatic detection of code causing negative effects on software quality

Yazılım kalitesi üzerinde olumsuz etkilere neden olan otomatik kod algılama

  1. Tez No: 488227
  2. Yazar: BAYDAA MOHAMMED MERZAH
  3. Danışmanlar: YRD. DOÇ. YUNUS EMRE SELÇUK
  4. Tez Türü: Yüksek Lisans
  5. Konular: Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol, Computer Engineering and Computer Science and Control
  6. Anahtar Kelimeler: Belirtilmemiş.
  7. Yıl: 2017
  8. Dil: İngilizce
  9. Üniversite: Yıldız Teknik Üniversitesi
  10. Enstitü: Fen Bilimleri Enstitüsü
  11. Ana Bilim Dalı: Bilgisayar Mühendisliği Ana Bilim Dalı
  12. Bilim Dalı: Bilgisayar Mühendisliği Bilim Dalı
  13. Sayfa Sayısı: 102

Özet

BT yazılım sistemlerinin kalitesi, ana hatları ile iç ve dış bakış açılarına göre ne kadar iyi tasarlandığına ve ön koşulların ne derece iyi karşılandığına bağlı olarak belirtilir. Yazılım sisteminin geliştirilmesinin ve bakımının kolay oluşu, başarılı bir şekilde tamamlanmasını ve sürekli kullanılmasını sağlayan hedef faktörlerdir. Steve McCall'ın bakış açısına göre [1], yazılım kalite özellikleri Dış ve İç Faktörler için kategorize edilebilir: Güvenilirlik, doğruluk, kesinlik, tekrar kullanılabilirlik ve bütünlük gibi dış kalite faktörleri son kullanıcıyı ilgilendirir. Bu çalışmada dış yazılım kalitesinden söz edilmemektedir. İç yazılım kalitesinin en açık göstergeleri, sürdürülebilirlik, yeniden kullanılabilirlik, esneklik ve test edilebilirliktir. Bu faktörler geliştiricileri ilgilendirir ve geliştirme ve bakım işlemlerini de kolaylaştırırlar ancak Kod Kokuları olarak bilinen kaynak kodundaki kötü kodlama stilleri tarafından olumsuz etkilenirler. Nesneye yönelik programlamadaki önemli ilkelerden biri, yüksek uyum ve düşük bağlaşıma sahip sınıflar oluşturmaktır. Bu ilke, Feature Envy olarak bilinen bir kod kokusu tarafından ihlal edilebilir. Nesneye yönelik programlamada kalıtım kavramı, yazılımın tekrar kullanılabilirliğini artırmak için önerilen önemli bir özellik olarak bilinmektedir. Bununla birlikte, kalıtımın kullanılması her zaman en iyi çözüm değildir, özellikle de diğer türdeki ilişkilerin daha uygun olacağı durumlarda kullanılırsa. Kalıtım ilkelerini ihlal eden kod kokularından biri de Refused Bequest kod kokusudur. Bu tasarım kokuları uzman geliştiriciler tarafından tespit edilebilir ve tespit edildiklerinde, sistemin kod kalitesini geliştiren daha iyi bir kodlama tasarımıyla yeniden yapılandırılmaları çok önemlidir. Büyük bir kod tabanında kod kokularının manuel araştırılması önemli ölçüde zaman alacaktır. Yazılım ölçütleri, test edilen yazılım durumunun net bir görünümünü verir. Metrik tabanlı algılama teknikleri algılama görevini kolaylaştırır. Böylece yeni geliştiriciler bile, bir uzmana ihtiyaç duymadan kod kusurlarını otomatik olarak analiz ve tespit etme yeteneğine sahip olacaklardır. Metrik değerlerinin modern geliştirme prosedürlerinde önemli bir yeri vardır. Bu nedenle, kod kokularının otomatik algılanması makul zaman ve çabayla yapılabilir. Bu çalışma yukarıda belirtilen kod kokularının Java kodunda tespit edilmesini amaçlamaktadır. Refused Bequest ve Feature Envy kod kokularını algılamak için nesneye yönelik metrikleri ve statik kod analiz teknikleri kullanılmıştır. İlgili metrikler ağırlıklandırılarak kullanılmıştır.

Özet (Çeviri)

The quality of IT software systems outlined by how well it has been designed from the internal and external points of view, also by how well the prerequisites have been met . Ease of developing and maintenance are the targeted factors that ensure successful completion and continuous use. From Steve McCall's perspective[1], software quality characteristics can be categorised for: External and Internal factors .The external quality factors such as reliability, correctness, accuracy, reusability and integrity concern the end user. The external software quality isn't mentioned in this study. The most reveal factors of internal software quality are maintainability, re-usability, flexibility and testability. These factors concern the developers and they ease development and maintenance also. However, they are affected negativly by bad coding styles in the source code that is known as Code Smells. One of the important princepals in object orienred programming is to build classes with high cohesion and losely coupled. This principle can be violated by one type of code smells known as Feature Envy. In the same context of object-oriented programming, the concept of inheritance has been known as a key feature proposed to increase the amount of software reusability. However, using inheritance is not always the best solution, particularly if it is utilized in improper cases where other types of relationships would be more appropriate. One of the particular issues that violate inheritance principles is the Refused Bequest code smell.These design smells can be detected by expert developers and when they are detected, it is very important to refactor them to bring up with a better coding design that improves the system's code quality. Manually searching for code smells in a large code base will take a significant amount of time. Software metrics gives a clear view of the tested software status.Metric based detection technique eases the detection task. Even new developers will have the ability to analyse and detect code flaws automatically without the need for an experts. Metrics values have the important role in modern developing procedures. Therefore automatic detection of code smells can be done in reasonable time and effort. And consequently reflects on the software quality. This study aims to detect some types of code smells in Java code. We have used object oriented metrics, static code analysis techniques to detect the code smells.

Benzer Tezler

  1. Otomatik vezne makinaları (ATMs) ve uygulamaları

    Autamated teller machines (ATMs) and applications

    A. C. BANU ÇAĞLAR

    Yüksek Lisans

    Türkçe

    Türkçe

    1994

    BankacılıkMarmara Üniversitesi

    Bankacılık Ekonomisi ve İşletmeciliği Ana Bilim Dalı

    PROF. DR. METE DOĞRUER

  2. Nesneye yönelik sistemlerde kusurlu sınıfların öngörülmesi için makine öğrenmesi temelli bir yöntem oluşturulması

    Creating a machine learning based method for predicting defective classes in object oriented systems

    FİKRET AKTAŞ

    Yüksek Lisans

    Türkçe

    Türkçe

    2018

    Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrolİstanbul Teknik Üniversitesi

    Bilgisayar Mühendisliği Ana Bilim Dalı

    DOÇ. DR. FEZA BUZLUCA

  3. Endüstriyel uygulamalarda görüntü işleme tabanlı otomatik hata tespit yöntemlerinin geliştirilmesi

    Development of automatic fault detection methods based on image processing in industrial applications

    BURAK GÜZELCE

    Yüksek Lisans

    Türkçe

    Türkçe

    2021

    Elektrik ve Elektronik MühendisliğiBursa Teknik Üniversitesi

    Elektrik-Elektronik Mühendisliği Ana Bilim Dalı

    DR. ÖĞR. ÜYESİ GÖKAY BAYRAK

  4. Yazılım kaynak kodunda güvenlik açıklarının derin öğrenme ve makine öğrenmesi ile otomatik tespiti

    Automatic detection of software vulnerabilities in source code using deep learning and machine learning

    DİLEK MANDAL

    Yüksek Lisans

    Türkçe

    Türkçe

    2024

    Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve KontrolKocaeli Üniversitesi

    Bilgisayar Mühendisliği Ana Bilim Dalı

    DR. ÖĞR. ÜYESİ İRFAN KÖSESOY

  5. Automatic detection of mgd level (Meibomian gland dysfunction)

    Mgd hastalık seviyesinin otomatik tespiti

    ALP EREN BÜTÜN

    Yüksek Lisans

    İngilizce

    İngilizce

    2019

    Göz HastalıklarıKadir Has Üniversitesi

    Bilgisayar Mühendisliği Ana Bilim Dalı

    DOÇ. TAMER DAĞ