Kod Yorumu ve Gereksinim Doğrulama Aracı
C/C++ kaynak dosyalarındaki Doxygen tarzı yorumları ve fonksiyon imzalarını ayrıştırıp, bunları bir gereksinim listesiyle karşılaştıran GTKmm tabanlı masaüstü uygulaması.
CppCommentParser, C/C++ kaynak dosyalarını tarayarak fonksiyonların üzerindeki /** ... */ biçimindeki Doxygen yorumlarını ve fonksiyon imzalarını (ad, dönüş tipi, parametreler) çıkarır. Ardından bu bilgileri CSV formatındaki bir gereksinim (requirement) dosyasıyla karşılaştırarak uyumsuzlukları tespit eder.
Amaç, kodun dokümantasyonunun ve fonksiyonlarının, belirlenen yazılım gereksinimleriyle uyumlu olup olmadığını otomatik olarak denetlemektir. Sonuçlar grafik arayüzde listelenir ve dışa aktarılabilir.
- Toplu dosya işleme — Birden fazla kaynak dosyayı tek seferde seçip tarayabilirsiniz.
- Gereksinim karşılaştırması — CSV dosyasındaki gereksinimler önbelleğe alınır ve her fonksiyonla eşleştirilir.
- Doxygen yorum ayrıştırma — Fonksiyon üzerindeki blok yorumları otomatik olarak yakalanır.
- Çoklu iş parçacığı (multithreading) — Dosyalar arka planda paralel işlenir, arayüz bloklanmaz.
- Dışa aktarma — Tespit edilen uyumsuzluklar CSV ve PDF olarak kaydedilebilir.
- Gereksinim CSV dosyası okunur ve bellekte önbelleğe alınır.
- Seçilen her kaynak dosya satır satır taranır.
- Bir fonksiyon imzası bulunduğunda, hemen üzerindeki Doxygen yorum bloğu (
/** ... */) çıkarılır. - İmza ayrıştırılır: fonksiyon adı, dönüş tipi ve parametreler belirlenir.
- Elde edilen bilgiler gereksinimlerle karşılaştırılır ve uyumsuzluklar (issue) listelenir.
Gereksinim dosyası aşağıdaki sütunları içerir:
Requirement_ID,Title,Description,Status,Source_File,Function_Name
HL_CONQ_CAN_SR5,"Transmit CAN Message","Transmits a CAN message using a specific message box.",Implemented,can.c,canTransmit- Dil: C++17
- Arayüz: GTKmm 4.0
- Derleme: CMake + Ninja
- Eşzamanlılık:
std::thread,std::mutex,Glib::Dispatcher
CppCommentParser/
├── main.cpp # Uygulama giriş noktası (GTKmm Application)
├── MainWindow.hpp/.cpp# Arayüz mantığı, dosya seçimi, dışa aktarma
├── Parser.hpp/.cpp # Yorum/imza ayrıştırma ve gereksinim karşılaştırma
├── window.ui # GTK arayüz tanımı
├── style.css # Arayüz stilleri
├── CMakeLists.txt # Derleme yapılandırması
├── build_and_run.sh # Derleme ve çalıştırma betiği
└── gereksinim.csv # Örnek gereksinim dosyası
- C++17 destekli bir derleyici
- GTKmm 4.0 (
pkg-configile bulunabilir olmalı) - CMake 3.25+ ve Ninja
Hazır betik ile derleyip çalıştırmak için:
chmod +x build_and_run.sh
./build_and_run.shmkdir build && cd build
cmake -G "Ninja" ..
ninja
./cmtParser # Windows'ta: cmtParser.exe- E-posta: numanarifdeniz@gmail.com
- GitHub: github.com/numanarif0
- LinkedIn: linkedin.com/in/numanarifdeniz