Yazılım Süreçleri ve Metodolojileri
Yazılım süreçleri ve metodolojileri, yazılımın nasıl tanımlandığını, tasarlandığını, inşa edildiğini, doğrulandığını ve ömrü boyunca geliştirildiğini düzenleyen, faaliyetlerin, kilometre taşlarının ve uygulamaların yapılandırılmış çerçeveleridir.
Tanım
Bir yazılım süreci, bir yazılım ürününün üretimine yol açan ilgili faaliyetler ve bunların sıralanmasından oluşan bir kümedir; bir yazılım metodolojisi ise belirli bir proje sınıfı için bu faaliyetleri, rolleri, çıktıları ve uygulamaları belirleyen belgelenmiş bir yaklaşımdır.
Kapsam
Bu alan, şelale, artımlı ve sarmal modeller gibi kuralcı süreç modellerini; yinelemeli ve evrimsel yaklaşımları; çevik metodolojileri ile bunların değerlerini ve törenlerini; sürekli entegrasyon ve teslimat için yalın ve DevOps uygulamalarını; ve CMMI ve ISO/IEC 12207 gibi süreç iyileştirme çerçevelerini kapsamaktadır. Hem süreçlerin soyut yapısını hem de bunların benimsenmesini yöneten insani ve organizasyonel faktörleri ele almaktadır.
Alt konular
Temel sorular
- Belirleme, tasarım, uygulama ve doğrulama faaliyetleri nasıl sıralanmalı ve tekrarlanmalıdır?
- Plan odaklı (öngörücü) süreçler, çevik (uyarlamalı) süreçlere ne zaman tercih edilmelidir?
- Bir süreç nasıl ölçülebilir, değerlendirilebilir ve aşamalı olarak iyileştirilebilir?
- Ekip yapısı, iletişim ve araçlar bir sürecin etkinliğini nasıl şekillendirmektedir?
Temel kuramlar
- Şelale (plan odaklı) model
- Gereksinimler, tasarım, uygulama, doğrulama ve bakımın resmi onaylarla ayrı aşamalar halinde ilerlediği sıralı bir modeldir; istikrarlı, iyi anlaşılan gereksinimler için uygun olmakla birlikte, değişime kötü uyum sağlaması nedeniyle eleştirilmektedir.
- Sarmal ve risk odaklı modeller
- Boehm'in sarmal modeli, geliştirmeyi, her biri en yüksek proje risklerini belirleme ve çözme odaklı tekrarlayan döngüler olarak düzenleyerek, yinelemeli geliştirmeyi açık risk yönetimi ile birleştirmektedir.
- Çevik ve yinelemeli-artımlı geliştirme
- Çevik yöntemler, kısa yinelemelerle çalışan yazılım sunarak, ağır ön planlama ve belgeleme yerine müşteri işbirliğini, değişime yanıt vermeyi ve sık geri bildirimi tercih etmektedir.
Klinik önem
Süreç seçimi, teslimat öngörülebilirliğini, hata oranlarını, değişen gereksinimleri karşılama yeteneğini ve ekip verimliliğini doğrudan etkilemektedir; modern uygulamalar, kalite ve uyumluluğu korurken geri bildirim döngülerini kısaltmak için çevik yinelemeyi DevOps otomasyonu ile harmanlamaktadır.
Kanıt ve kılavuzlar
ISO/IEC/IEEE 12207 standardı yazılım yaşam döngüsü süreçlerini standartlaştırmakta olup, SWEBOK Yazılım Mühendisliği Süreci bilgi alanı ve CMMI, süreç tanımlama ve iyileştirme için yaygın olarak kullanılan referans çerçeveler sağlamaktadır.
Tarihçe
Erken dönem büyük sistem geliştirme çalışmaları, 1970'lerde aşamalı, belge odaklı modelleri popüler hale getirmiştir. Boehm, 1988'de açık risk odaklı yinelemeyi tanıtmış, Rational Unified Process 1990'larda yinelemeli geliştirmeyi resmileştirmiş ve 2001 tarihli Çevik Manifesto, 2010'larda DevOps ile birlikte ana akım haline gelen hafif, değişime toleranslı yöntemleri kristalize etmiştir.
Tartışmalar
- Plan odaklı süreçler ile çevik süreçler
- Uzun süredir devam eden bir tartışma, öngörücü, belge ağırlıklı süreçlerin uyarlamalı çevik süreçlerden ne zaman daha iyi performans gösterdiği üzerinedir; genel kanı, doğru dengenin gereksinim istikrarına, düzenleyici kısıtlamalara, ekip büyüklüğüne ve geç değişimin maliyetine bağlı olduğudur.
Öne çıkan isimler
- Winston W. Royce
- Barry Boehm
- Kent Beck
- Watts Humphrey
İlgili konular
Temel eserler
- royce1970
- boehm1988
- sommerville2015
Sıkça sorulan sorular
- Şelale modeli eskimiş midir?
- Saf sıralı şelale modeli, gelişen gereksinimleri olan projeler için nadiren idealdir, ancak aşamalı yapısı hala düzenlenmiş ve güvenliğin kritik olduğu alanlara bilgi vermekte ve hibrit modellerin temelini oluşturmaktadır; çoğu modern proje, disiplinli spesifikasyon ve doğrulamayı koruyan yinelemeli veya çevik varyantları kullanmaktadır.
- Süreç ile metodoloji arasındaki fark nedir?
- Bir süreç, faaliyetleri ve bunların sıralanmasını tanımlarken, bir metodoloji, rolleri, çıktıları, törenleri ve uygulamaları da belirleyen daha eksiksiz, adlandırılmış bir reçetedir; Scrum ve Rational Unified Process, yinelemeli veya çevik süreçleri somutlaştıran metodolojilerdir.