Automatic detection of code causing negative effects on software quality
Yazılım kalitesi üzerinde olumsuz etkilere neden olan otomatik kod algılama
- Tez No: 488227
- Danışmanlar: YRD. DOÇ. YUNUS EMRE SELÇUK
- Tez Türü: Yüksek Lisans
- Konular: Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol, Computer Engineering and Computer Science and Control
- Anahtar Kelimeler: Belirtilmemiş.
- Yıl: 2017
- Dil: İngilizce
- Üniversite: Yıldız Teknik Üniversitesi
- Enstitü: Fen Bilimleri Enstitüsü
- Ana Bilim Dalı: Bilgisayar Mühendisliği Ana Bilim Dalı
- Bilim Dalı: Bilgisayar Mühendisliği Bilim Dalı
- 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
- Otomatik vezne makinaları (ATMs) ve uygulamaları
Autamated teller machines (ATMs) and applications
A. C. BANU ÇAĞLAR
Yüksek Lisans
Türkçe
1994
BankacılıkMarmara ÜniversitesiBankacılık Ekonomisi ve İşletmeciliği Ana Bilim Dalı
PROF. DR. METE DOĞRUER
- 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
2018
Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrolİstanbul Teknik ÜniversitesiBilgisayar Mühendisliği Ana Bilim Dalı
DOÇ. DR. FEZA BUZLUCA
- 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
2021
Elektrik ve Elektronik MühendisliğiBursa Teknik ÜniversitesiElektrik-Elektronik Mühendisliği Ana Bilim Dalı
DR. ÖĞR. ÜYESİ GÖKAY BAYRAK
- 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
2024
Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve KontrolKocaeli ÜniversitesiBilgisayar Mühendisliği Ana Bilim Dalı
DR. ÖĞR. ÜYESİ İRFAN KÖSESOY
- Automatic detection of mgd level (Meibomian gland dysfunction)
Mgd hastalık seviyesinin otomatik tespiti
ALP EREN BÜTÜN
Yüksek Lisans
İngilizce
2019
Göz HastalıklarıKadir Has ÜniversitesiBilgisayar Mühendisliği Ana Bilim Dalı
DOÇ. TAMER DAĞ