Yazılım Mühendisliği Standartları
Yazılım Mühendisliği Standartları Standartlar, ağırlıklı olarak süreçlere yönelik olmakla birlikte, ürünle ilgili standartlar da olabilir. Standartlar, belirli programlama dilleriyle veya teknolojilerle ilgili değildir. Standartlar, belirli teknolojilerin yaşam süresinden daha uzun süre geçerliliklerini korurlar.
Standartlar – ne için? Standartlar, ağırlıklı olarak büyük ölçekli yazılım geliştirmede yaygın olan konuları içerirler: Konfigürasyon Yönetimi Kalite Güvence Sınama/Doğrulama ..
Faydaları -1 Yazılım mühendisliği uygulamalarının tanımlı olmasına katkıda bulunur ve böylece ürün kalitesinin artmasını sağlarlar. Yazılım üreticisi ve geliştiricisi arasında ortak bir terminoloji oluştururlar, Ürünün değerlendirilmesi için objektif kriterler sağlarlar, Güvenilirlik gibi kavramların tanımlanması için yöntemler sunarlar.
Faydaları -2 Standartların uygulanması, bir işin itina ve sorumluluk ile yapıldığına dair bir gösterge oluşturur. Yazılım Mühendisliği standartları, hem yazılım geliştiricisi hem de alıcısı için yararlar sağlar ve yazılım mühendisliği disiplininin gelişimini destekler.
Kaynaklar Uluslar arası Bilişim standartları için, International Organization for Standartization (ISO), International Electrtechnical Commission (IEC) ve International Telecommunications Union çalışmalar yapmaktadır. IEEE Computer Society Software Engineering Standartları Komitesi, standart geliştirme çalışmaları kapsamında, geliştirilmiş standartlardan yararlanmıştır.
IEEE Yazılım Müh. Standartları 1990’lı yıllarda başlayan bir çalışma ile varolan standartların birleştirilmesi ve standartlar arasında seçimin kolaylaştırılması amaçlanmıştır. 2000 yılında yayınlanan standartlar kataloğu, 3 temel organizasyon kriteri etrafında şekillenmiştir:
IEEE Standartların Yapısı -1 Normative düzeyler: Standartlar, farklı kullanıcılar için farklı ayrıntı düzeyinde yol gösterici olmalıdır. Terminoloji, genel kurallar,ilkeler, standartlar vb. Yazılım Mühendisliği Amaçları: Standartlar, 4 temel konuyu hedefler: Müşteri, süreç, ürün ve kaynak. Sf.80’deki soyut yazılım mühendisliği modelini esas alır.
IEEE Standartların Yapısı -2 Diğer disiplinlerle olan ilişkiler: Standartlar, kalite yönetimi, proje yönetimi vb. sistem mühendisliği disiplinleriyle bağlantılıdır. Bu alanlardaki standartları benimseyerek, aynı konuların yeniden tanımlanmasını önler.
IEEE/IEC 12207 Standartı -1/2 Yazılım için tüm yaşam döngüsünü içeren bir çerçeve oluşturur ve bu yazılım süreçlerinin, organizasyonel boyutunu hem teknik bakış açısından hem de kurumun iş(business) bakış açısından ele alır.
IEEE/IEC 12207 Standartı -2/2 Prosedür düzeyinde değil, süreç düzeyinde tanımlanmıştır. Bir prosedürün adım adım tanımlanması yerine, süreç boyunca gerçekleştirilmesi gereken sorumlulukları tanımlar. 3 Kategori tanımlanmıştır: Primary processes Supporting processes Organizational Processes
IEEE/EIA 12207 Standartı -1/6 IEEE/EIA 12207, Software Life Cycle Processes, IEEE Standartlar kataloglarındaki tüm müşteri ve süreç standartlarını kapsar. 1995 ISO/IEC standartının uyarlanmasından oluşur.
IEEE/EIA 12207 Standartı – 2/6 IEEE/EIA 12207 standartı; Yazılımın geliştirilmesi, temin edilmesi,çalıştırılması, Bu fonksiyonların kalite güvence, konfigürasyon yönetimi, doğrulama, sınama vb. ile desteklenmesi, Kuruluşun süreçleri ve personelinin yönetilmesi, Bir yazılım ürününün yaşam döngüsü boyunca taraflar (kullanıcılar ve geliştiriciler) arasındaki anlayışın geliştirilmesi, için kullanılabilir.
IEEE/EIA 12207 Standartı yazılım yaşam döngüsü boyunca gerçekleştirilebilecek aktiviteleri 5 temel süreç, 8 destekleyen süreç ve 4 kurumsal süreç olarak gruplar.
Yaşam Döngüsü Destek Süreçleri – 3/6 Bir destek süreci, bir başka süreci, sürecin bir parçası olarak ancak ayrı bir amaç ile destekler ve yazılım projesinin başarı ve kalitesini artırır. 8 destek süreci tanımlanmıştır.
Destek Süreçleri – 4/6 Dökümantasyon Konfigürasyon yönetimi Kalite güvence Doğrulama Sınama Review süreçleri Kontrol(Audit) süreçleri Problem çözme süreçleri
Kurumsal Yaşam Döngüsü Süreçleri 5/6 Bir kuruluş tarafından altyapıyı oluşturmak ve daha sonra sürekliliği sağlamak için kullanılır. Yönetim süreçleri Altyapı(infrastructure) süreçleri İyileştirme süreçleri Eğitim süreçleri