Statik kod analizörleri run-time öncesinde bulunması zor olan implementasyon hatalarını bulmaya yardımcı olurlar. Bunun sebebi, bu tip hataların execution zamanında bulunmasının daha zor hatta imkansız olmasıdır. Bu araçlar, uygulamayı çalıştırmaya gerek duymadan bir çok mantıksal, emniyet ve güvenlik hatalarını bulmaya yardımcı olurlar. Problemler kaynak kodu direk ya da statik olarak analiz edilerek bulunabilir.
Statik analiz araçları kaynak kodu extra bilgi gerekmeden doğrularlar. Statik analiz araçları uygulamanın ya da fonksiyonun ne iş yapacağını bilmediği için herhangi bir geliştirici ya da gözden geçiren kişinin yapması muhtemel bazı varsayımları yapmaz.
Çoğu statik analiz araçlarının kullandığı teknikler aşağıdaki gibidir:
· Semantic checking
· Strong type checking
· Memory allocation checking
· Logical statement checking
· Interface and include problem checking
· Safety/Security checking
· Metrics analysis
· Simulator (data generation)
· Crawl source code
Burada en çok kullanılan iki adet statik kod aracından bahsedeceğim: FlexeLint ve PolySpace.
FlexeLint C/C++ kodunu kontrol eder ve bug, uyumsuzluk, dead kod ve bunun gibi hataları bulmaya yardımcı olur. İhtiyaca göre düzenlenebilir. Örneğin çeşitli doğrulama kurallarını, analizin hassasiyet seviyesini, çıktı formatını ve analiz raporunu detaylarını seçme imkanı tanır. Ayrıca FlexeLint çeşitli kodlama kurallarını destekler. Bunlardan bazıları MISRA C, ANSI C ve K&R kurallarıdır. FlexeLint bir konsol uygulamasıdır ve komut satırından çalıştırılır.Ayrıca çeşitli IDE entegrasyonları da mümkündür.
PolySpace aracı gömülü sistemlerde C,C++ ve Ada kodlarını doğrular. Kod compile etmeden ve koşmadan önce yapılır. Bu yöntemle formal metodlar kullanarak sadece hataları önceden tespit etmekle kalmaz, aynı zamanda belli run-time hatalarının matematiksel olarak olmadığını da ispatlar.
PolySpace client-server tabanlıdır. Bazı doğrulamalar client tarafında yapılırken (örneğin MISRA kontrolü), bazıları da server tarafında yapılır (örneğin statik analizler). Bu mimari yapı, büyük takımlarda çok işe yarar. Hem client hem de server tarafı komut satırı arayüzü ve GUI destekler. Polyspace client ve server tarafından yapılan analizlerin sonuçlarını inceleyen bir uygulamaya sahiptir. FlexeLint’te olduğu gibi Polyspace de çeşitli konfigürasyon ihtiyaçlarına göre düzenlenebilir yapıdadır.
Her iki araç da diğer test ve analiz araçları ile tamamlanarak kullanılmalıdır. Bunlar:
· Manuel kod gözden geçirmeleri
· Dinamik analizler
Statik analiz araçları kaynak kodu extra bilgi gerekmeden doğrularlar. Statik analiz araçları uygulamanın ya da fonksiyonun ne iş yapacağını bilmediği için herhangi bir geliştirici ya da gözden geçiren kişinin yapması muhtemel bazı varsayımları yapmaz.
Çoğu statik analiz araçlarının kullandığı teknikler aşağıdaki gibidir:
· Semantic checking
· Strong type checking
· Memory allocation checking
· Logical statement checking
· Interface and include problem checking
· Safety/Security checking
· Metrics analysis
· Simulator (data generation)
· Crawl source code
Burada en çok kullanılan iki adet statik kod aracından bahsedeceğim: FlexeLint ve PolySpace.
FlexeLint C/C++ kodunu kontrol eder ve bug, uyumsuzluk, dead kod ve bunun gibi hataları bulmaya yardımcı olur. İhtiyaca göre düzenlenebilir. Örneğin çeşitli doğrulama kurallarını, analizin hassasiyet seviyesini, çıktı formatını ve analiz raporunu detaylarını seçme imkanı tanır. Ayrıca FlexeLint çeşitli kodlama kurallarını destekler. Bunlardan bazıları MISRA C, ANSI C ve K&R kurallarıdır. FlexeLint bir konsol uygulamasıdır ve komut satırından çalıştırılır.Ayrıca çeşitli IDE entegrasyonları da mümkündür.
PolySpace aracı gömülü sistemlerde C,C++ ve Ada kodlarını doğrular. Kod compile etmeden ve koşmadan önce yapılır. Bu yöntemle formal metodlar kullanarak sadece hataları önceden tespit etmekle kalmaz, aynı zamanda belli run-time hatalarının matematiksel olarak olmadığını da ispatlar.
PolySpace client-server tabanlıdır. Bazı doğrulamalar client tarafında yapılırken (örneğin MISRA kontrolü), bazıları da server tarafında yapılır (örneğin statik analizler). Bu mimari yapı, büyük takımlarda çok işe yarar. Hem client hem de server tarafı komut satırı arayüzü ve GUI destekler. Polyspace client ve server tarafından yapılan analizlerin sonuçlarını inceleyen bir uygulamaya sahiptir. FlexeLint’te olduğu gibi Polyspace de çeşitli konfigürasyon ihtiyaçlarına göre düzenlenebilir yapıdadır.
Her iki araç da diğer test ve analiz araçları ile tamamlanarak kullanılmalıdır. Bunlar:
· Manuel kod gözden geçirmeleri
· Dinamik analizler
Hiç yorum yok:
Yorum Gönder