The impact of static analysis tools on software quality, productivity and cost
- Global styles
- Apa
- Bibtex
- Chicago Fullnote
- Help
Abstract
Teknolojinin yaygınlaşmasıyla birlikte günlük yaşamımızda yazılımın etkisi ve önemi gün geçtikçe artmaktadır. Bu bağlamda yazılımın kod kalitesi, hatasız geliştirilmesi ve kodlama standartlarına uygunluğu vazgeçilmez unsurlar olmaya başlamıştır. Bu çalışmanın amacı, güvenilir, bakım maliyeti düşük, standartlara uygun ve hatadan(erken hata tespiti ve önleme ile) arınmış yazılım elde etmek için statik kod analizinin yazılım yaşam döngüsü için önemini ortaya koyarak hem geliştirme ekibi hem de yazılım kalitesi için avantajlarını listelemektir. Standartlara uygun bir yazılım geliştirmek için yazılım geliştirme yaşam döngüsünün geliştirme aşamasında geliştirilen kaynak kodun standart kurallara uygun olarak yazılması ve dikkatli bir şekilde analiz edilerek uygunluğu kontrol edilmelidir. Analiz, dinamik veya statik olarak yapılabilir. Statik analiz program çalıştırılmadan veya yürütülmeden kaynak kod üzerinde yapılırken, dinamik analiz gerçek olarak çalışırken yapılır. Otomatik analiz araçları ile yapılan statik analiz yazılım kalitesiyle ilgili raporlar üretir. Statik kod analizi çoğunlukla potansiyel hataları bulmak, program kodunda zayıf noktalara yol açabilecek olası zafiyetleri tespit etmek, kod kalitesini korumak veya kodlama standartlarına uygunluğu kontrol etmek için kullanılır. Bu tezde bir telekomünikasyon şirketinde 5 farklı geliştirme ekibi tarafından Java ile geliştirilen toplam 29 proje kaynak kodu üzerinde SonarQube ile çalışılarak elde edilen çıktılara yer verilmiştir. Analiz aracı ile otomatik olarak sürüm takip sisteminden çekilen proje kodları üzerinde analiz işlemi başlatılarak projelerdeki hata, zayıf nokta ve kodlama standartlarına uymayan bölümler için bulgular ortaya çıkarılmıştır. Elde edilen bulguların düzeltilmesi ve geliştirme sürecine otomatik kod analiz adımının eklenmesiyle yazılımda erken hata tespiti ve kalitenin devamlılığının korunması sağlanmıştır. Yazılımın üretim ortamında yürütülmeden önce hataların tespiti ve düzeltilmesi, verimliliği arttırma, bakım maliyetini %21 oranında düşürme ve temiz kod üretme ise bu çalışmada elde edilen önemli çıktılarıdır. Çalışma sonucunda analiz raporlarının tetiklediği iyileştirme faaliyetlerinin yalnızca kod kalitesini sağlamakla kalmayıp aynı zamanda geliştirme ekibinin kabiliyetlerini arttırması gözlemlediğimiz güzel kazanımlardandır. With the spread of technology, impact and importance of software in our daily life are increasing considerably. Considering importance of software in our daily life, code quality, bug-free development and conformance for coding standards are becoming indispensable. The purpose of this work is to list the advantages for both development team and software quality by demonstrating the importance of static code analysis for the software life cycle to obtain software that is reliable, low maintenance, low-cost, standards-compliant and bug-free (with early error detection and prevention). In order to develop a standards-compliant software, it's source code must be written in accordance with the standards ruleset and analyzed carefully for conformity in the development phase of software development life cycle (SDLC). The analysis can be performed dynamically or statically. Static analysis is performed on program source code without actually executing program but dynamic analysis is performed while executing program source code. The static analysis made with automatic analysis tools produces reports about software quality. Static code analysis is often used to find potential errors, detect possible weaknesses in the program code that may lead to weak points, maintain code quality, or check compliance with coding standards. In this thesis, the Java source codes of 29 different projects developed by 5 different development teams of a telecommunication company have been evaluated by SonarQube and the outputs of this evaluation are discussed. Analysis tool automatically starts the analysis process on the project codes that is retrieved from the version tracking system (SVN) and finds the possible weak points, bugs and noncompliant issues in code sections. By correcting the findings and adding the automatic code analysis step to the development process, early error detection and preservation of the quality of the software are ensured. Detecting and correcting errors, increasing productivity, reducing maintenance cost by 21% and generating clean code before execution in the production environment are the lucrative outputs of this work. As a result of the study, the improvement reports triggered by the analysis reports not only provide the quality of the code but also increase the capabilities of the development team.
Collections