***Hoşgeldiniz!!! Trakyadaki en güncel ve en kaliteli haberler için; www.trakyahaberci.com...

14 Kasım 2009 Cumartesi

Kaliteli Yazılım"Nasıl ortaya konur?

“Biliyorum, çok geniş bir başlık.
Kaliteli yazılım üretiminde "süreç yönetimi" amaç (ana eksen) mıdır, araç (yan bağ) mıdır? Bir başka deyişle; yazılım ürünleri için "ürün kalitesi (product quality)" hedefinin ana teminatı sadece "üretim kalitesi (production quality)" midir?

Tartışmayı belli bir eksende tutabilmek adına "yazılım kalitesi" için genel kabul gören aşağıdaki niteliklere (ref: http://en.wikipedia.org/wiki/Software_quality) atıfta bulunacak şekilde tartışabilirsek, tartışmanın daha somut sonuçlara ulaşabileceğini umuyorum:

YAZILIM KALİTE NİTELİKLERİ:
- Anlaşılabilirlik (Understandability)
- Eksiksizlik (Completeness)
- Sadelik (Conciseness)
- Taşınabilirlik (Portability)
- Tutarlılık (Consistency)
- Bakım Yapılabilirlik (Maintainability)
- Sınanabilirlik (Testability)
- Kullanılabilirlik (Usability)
- Güvenilirlik (Reliability)
- Yapısallık (Structuredness)
- Etkinlik (Efficiency)
- Güvenlik (Security)
Tartışmayı başlatmak için bir de somut örnekleme yapalım:
Örneğin; "güvenlik" kalite niteliği için "birim testleri" ne kadar etkindir? Yazılım güvenliğini test kapsamı (test coverage) altında tutmak için birim testleri hangi tur birimler için ve nasıl yazılmalıdır? Yazılım süreç yönetimi "yazılım güvenliği"ne yönelik birim (veya diğer) testleri ve "versiyon yönetimi (release management)"ni eksiksiz olarak adresleyebilir mi? Bunun için gereken "gereksinim yönetimi teknikleri" klasik çözümleme yöntemleri ile (şelale, hikaye tahtası, post-it, vb.) sağlanabilir mi, yoksa farklı bir "alan modellemesi (domain modeling)" tekniği gerektirir mi?

Yukarıdaki örneklemede "yazılım güvenliği" boyutunu özellikle ele aldım, ... Bir işletim sistemi hassasiyetinde olmasa bile acaba bizler yazılım üretirken ‘yazılım güvenliği’ni garanti altına almak için ne tür yöntemler kullanıyoruz? CMMI ya da çevik yöntemlerden birisini tercih etseydik, "yazılım güvenliği" adına garanti altına alabileceğimiz nitelikler değişir miydi? Yoksa her ikisinin de bu anlamda özel bir fark getiremeyeceği bilinciyle başka yaklaşımlara mı yönelirdik?”(1)
Bu sorular ile ilgili cevabım:
“Kalite konusundaki tartışmaya başka bir bakış açısı ile de bakabiliriz.
[ 1 ] Yazılım oluşturma safhası.
[ 2 ] Yazılım işletme safhası.
Tümdengelim yolu ile bir başka açıdan bakmak istiyorum.

Kalite bir referans noktaya göre belirlenir.
Yani bir rakiplik durumu söz konusudur.

Bunu genelde göz ardı eder ve süreci dokümante etmekle işi çözdük zannederiz.
Kıyaslama ve ölçme kriterleridir kaliteyi belirleyen.

Kıyaslama ve ölçme [ 1 ] safhada ekip içinde halledilir. TAMAM
Ya işletmeye verdiğinizde [ 2 ] safhası ve bunu kıyaslama kriterleri.
Bunları her zaman siz belirleyemezsiniz.
Analiz haricinde olaylar olarak: ortam faktörlerine uyum ve esneklik.
Bu ikisi final kalitesini oluşturan kriterlerdir. (Örneğin:paket yazılımlarda)” (2)
Murat SEVGİ
Mental® Teknoloji Danışmanlık
Dipnotlar_______:
(1) Semih ÇETİN, “ "Kaliteli Yazılım" nasıl ortaya konur?”, Türkiye Yazılım Mühendisliği Gurubu, Tuesday, July 08, 2008
(2) Murat SEVGİ, “ "Kaliteli Yazılım" nasıl ortaya konur?”, Türkiye Yazılım Mühendisliği Gurubu, Tuesday, July 08, 2008
"Kaliteli Yazılım"
Nasıl ortaya konur? - 2
Murat SEVGİ
+90 532 384 2183
mail:mental@um.turkcell.com.tr
msn:murat.sevgi@hotmail.com
“İzninizle bir soru daha yönelteyim o zaman:

Basari faktörü ve urun kalitesi bu kadar çok bireysel yeteneklere dayanan bir uğraşı alanına nasıl "mühendislik" denebilir?

Yazılım kalitesi için insan kaynağı niteliklerinin şart olduğunu bir önceki yazımda (mesajımda) benim de belirtmiş olmama rağmen.

Eğer uğraşı alanımızın adı mühendislik ise çorbaya "bireysel nitelikler" dışında bazı şeyleri daha katmak zorunda değil miyiz?

Takıldığım bir nokta daha: yazılım kalitesinin tek başına ticari sonuçlar ile ölçülmemesi gerektiğine katılmakla birlikte "toplam sahip olma maliyeti (TCO)", "karlılık" ve "yatırımların geri dönüşü (ROI)" kavramlarının da yazılım kalite belirteçleri arasında olduğunu gözden kaçırmamak gerekir.

Zaten bu nitelikler; "mühendislik" tanımında doğrudan yer alan kavramlar değil midir?”(1)
Bu sorular ile ilgili cevabım:
“Mühendislik bütünün planlanmasındaki öngörünün matematiğine deniliyor.
Tıpkı bir inşaatın eğitimsiz işçilere yaptırılmasındaki gibi. Kim neyi yapar neyi yapamaz. Bunu mühendis bilmez. Mühendis neyin olması gerektiğini söyler. Zaten dünyada mühendis kelimesi motor kelimesi ile eşleşmesinin sebebi de budur. Ayrıca doğu toplumları matematiği batıya göre biraz daha iyi bilirler. (sempatizanları kusura bakmasın) Kökü "hendese" kelimesinden gelir ki; bu: hesap etmek demektir.

rOi ile ilgili de şunu söyleyebiliriz. Projenin bitirilmesi ile yazılımın bitirilmesini bir tutamayız. Yazılım başlı başına rOi bazında proje değildir. (yazılım üretip satanlar hariç) Yani yazılım bütünün bir uzvudur ve bu uzuv, rOi için parametrelerden biridir.”(2)
Bu cevaba ek olarak:
“Ayrıca TOC ve rOi mühendisliğin gereği değildir.
Mühendislik para bazlı işlemez.
Yani iyi ürün mühendislik ve iktisadın bir harmanıdır.
Para işlerini hesap çerçevesinde mühendisliğe katmak, iktisat biliminin alanıdır ki;
iktisat teori ve önermeleri mutlak olmayan, istatistikseller üzerinden işlem yapan bir iterasyonel bilimdir.
Yani iktisat da mühendisliğin bir teorisi olan öngörü ve iterasyon prensiplerini kullanır.
Ama mühendislik gibi mutlaki (mutlak olarak) gerçekçi değildir.
Yazılım bir mühendislik ürünü olan programın yapılma aşaması olarak düşünülürse rijit olmayan etmenler (insan) içerir ve mühendislik olamaz.
Lakin yazılım ürünü bir rijit sayısal varlıktır ve matematiksel bir tanıma sahiptir.
İşte bu bağlamda işin yapımı ve gerçeklenmesi (işçilik) sanattır.
İşin nev'isi yani ortaya konulan olgusu (ürünü) mühendisliktir.” (3)
Hep sevgi ile kalın
Murat SEVGİ
Mental® Teknoloji Danışmanlık
Sözlük_________:
TCO: Toplam sahip olma maliyeti
rOi: Yatırımların geri dönüşü
Dipnotlar_______:
(1) Semih ÇETİN, “ "Kaliteli Yazılım" nasıl ortaya konur?”, Türkiye Yazılım Mühendisliği Gurubu, Thursday, July 10, 2008
(2) Murat SEVGİ, “ "Kaliteli Yazılım" nasıl ortaya konur?”, Türkiye Yazılım Mühendisliği Gurubu, Thursday, July 10, 2008
(3) ______, “ "Kaliteli Yazılım" nasıl ortaya konur?”, Türkiye Yazılım Mühendisliği Gurubu, Thursday, July 10, 2008

Hiç yorum yok:

sağ üst köşede yer alan Önceki kayıtlar'a tıklayarak geçmiş haberlere ulaşabilirsiniz...