Performans Modelleme
Performans modelleme; yazılım projelerinde gereksinimlerin alınmasıyla başlayan, analiz, tasarım ve kodlama ile birlikte devam ederek yazılım geliştirmenin tüm yaşam döngüsü boyunca devam eden bir disiplindir. Bu modellemeyi yapabilmek için ise yapısal ve tekrarlanabilir bir yaklaşım gereklidir.
Modelin başarılı olması için
- Hedeflerinizi belirleyin
- Ölçün ve ölçekleyin
Performans Modelleme’nin Amaçları Nedir?
- Yazılım süreçlerinizde kalite bileşeni olarak yer alarak güvenirliği arttırmak,
- Metriklerinizi ve test çalışmalarınızı belirlemek,
- Performans risklerinizi yönetmek,
- Bütçenizi belirlemek ve ayırmak,
- Anahtar performans senaryolarınızı analiz etmek ve belirlemek,
- Gereksinimlerin performans bileşenleriyle örtüşmesi,
- Performansın diğer kalite servis gereksinimleriniz için dengelenmesi
- Modelinizin performans bileşenleriyle örtüşüp örtüşmediğini değerlendirmek,
- Performans eylem planlarınızı hemen uygulamak.
Performans sorunlarının temeli, sıklıkta projenin tasarım kısmında oluşmaya başlar. Müşteri gereksinimlerinin alınmasıyla birlikte, talep edilen özellikler performans kaygısı duyulmadan analiz edilerek tasarımı gerçekleştirilir. Tasarımdan sonra kodlaması gerçekleşen proje, belli bir olgunluğa eriştikten sonra çeşitli performans testleriyle sınanacaktır. Örnek olarak bir elektronik alışveriş sitesini tamamlamak üzeresiniz. Müşteriniz güçlü bir yatırım ve başarılı bir reklam kampanyası sonrasında piyasada yerini almaya hazırlanıyor. Proje teslimine kısa bir süre kala gerçekleşen stres testinde, sitenizin aynı anda sadece 100 kişiye hizmet vereceği ortaya çıktığında artık yazılımı iyileştirmenin veya yazılıma yama yapmanın veya sistem alt yapısında köklü değişiklikler gerçekleştirmenin çok geç olacağı aşikardır. Son bir çaba ile yapılacaklar ise en iyi ihtimalle, verimsiz ve genellikle çok pahalı olacaktır.
Eğer CMMI gibi yazılım süreçlerini uyguluyor veya en azından model alarak projeleriniz disipline etmek istiyorsanız; bir performans modeli yaratarak, uygulama senaryoları ve performans bileşenlerinizi oluşturmanız gerekmektedir.
Performans bileşenleri nedir?
Yazılımınızın ne kadar süre içinde, ne kadar çalışarak, ne kadar CPU, bellek, Disk I/O ve network I/O gibi tükettiğini gösteren ölçülebilen kriterlerdir. Bu ana bileşenler dışında firmanıza veya projenize özgün farklı bileşenler olacaktır. Danışmanlığımız sizin yapınıza uygun sizin performans modellemesi oluşturur ve performans bileşenlerinizi belirler. Performans bileşenleri çok fazla ve kombinasyonel olabilir. Bunların performans senaryoları içinde çok iyi sıralanması, atanması, ölçülmesi ve risklerin tanımlanması gerekir.
Performans modellemenin faydaları
- PM yazılım yaşam döngünüzde bir kalite bileşini olur.
- Projenin başlangıç safhalarında olası sorunların belirlenmesi.
- Tasarım sırasında kısıtlarınızı açıkça görebilir veya alacağınız tasarım kararlarının performansı nasıl etkileyeceğini görebilirsiniz. Eğer bir PM’niniz yoksa uzun vadeli hedeflerinizi uygulayacağınız yerde kaynaklarınızın çoğunun proje bakımını yapıyor olarak görebilirsiniz.
- Projeniz hayata geçtiğinde performans sürprizleriyle karşılaşmazsınız.
- Ayrıntılı senaryolarınız sayesinde önceliklerinizi hemen belirleyebilirsiniz. Bu ise size ne için test yapacağınızı, ölçülerek hedefinize olan uzaklığınızı ve performans amaçlarınızla örtüşüp örtüşmediğiniz açıkça gösterir.
Fakat şu asla unutulmamalıdır; tasarlanmış PM’niz senaryo tabanlı yük testinize veya tasarımınızı geçerlemek için ilk örnekleme oluşturmanız için bir alternatif yöntem değildir. Başka bir deyişle; ilk örneklemeleriniz ve planlarınızın net ifadeli rahatlıkla anlaşılabilir bir şekilde maliyetlerinizi göstererek neleri test edeceğinize karar vermeniz her zaman gereklidir.
Neden performans modelleme?
Projenizin etkileşimde olduğu kaynakların kısıtlarını, eşik değerlerini bilerek daha bilinçli kararlar alabilirsiniz.
- Performans modelleme bilmediklerinizi,
- Kodlama sırasında hangi yöntemin performansa olumlu etki yapacağını,
- Performansa en olumlu etkiyi yansıtmak için kaynak kullanımının nerede yapılacağını,
- Hangi sınıf, hangi metot en çok çağrılıyor, işleme tabi tutuluyor ve bunların harcamış olduğu zaman üzerinde bir iyileştirme yapılıp yapılmayacağını,
- Kısıtlı kaynaklara erişimin ana adımlarını ve kurallarının oluşturulmasında,
- Yerel veya uzak bağlantı ile erişilen kaynakların proje performans etkisini,
- Yapılan çalışmalar sonrasında performanstan olumlu sonuçlar alınıp alınmadığını,
- Hangi yazılım bileşenlerinizin diğer hangi yazılım bileşenleriniz ve kaynaklarınız ile etkileşimde olduğunu,
- Senkron ve asenkron çağrılarınızın nerelerde olduğunu,
- Mümkün olan ve kabul edilebilen CPU ve Disk/Network I/O işlemlerinizin sınırlarını gösterir.
Sonuç:
Her şirketin uyguladığı yöntemler elbette farklıdır. Ve her projenin kendine özgü gereksinimleri vardır. Performans modellemesi oluştururken proje gereksinimleri göz önüne alınmalı ve performans bileşenleri belirlenerek çalışmalara başlanılmalıdır.