Professional Documents
Culture Documents
Yazilim Muh Bolum 2
Yazilim Muh Bolum 2
Yazilim Muh Bolum 2
2. KONU
YAZILIM SÜREÇLERİ
Konular
• Yazılım Yaşam Döngüsü (Çekirdek Süreçler)
• Belirtim Yöntemleri
• Yazılım Süreç Modelleri
• Gelişigüzel Model
• Barok Model
• Çağlayan Modeli
• V Modeli
• Spiral Model
• Evrimsel Geliştirme Süreç Modeli
• Artırımsal Geliştirme Süreç Modeli
• Araştırma Tabanlı Süreç Modeli
• Metodolojiler
Yazılım Süreci
• Bir yazılım sistemini geliştirmek için gerekli olan
aktiviteler kümesidir.
• Birçok farklı yazılım süreç modeli bulunmaktadır fakat
hepsi şunları içermeli:
• Tanımlama: Sistemin ne yapması gerektiğinin belirlenmesi
• Tasarım ve Gerçekleştirim: Sistemin organizasyonunun
belirlenmesi gerçekleştirilmesi
• Doğrulama: Müşterinin istediği şeyleri yapıp yapmadığının
kontrolü
• Evrim: Değişen müşteri isteklerine göre sistemin değiştirilmesi
• Bir yazılım süreç modeli gerçek bir sürecin özet gösterimi
olarak tanımlanabilir.
Yazılım Süreç Tanımlamaları
• Yazılım süreçleri; veri modeli belirleme, kullanıcı
arayüzü tasarımı gibi aktiviteler ve bu
aktivitelerin sırası ile ilgili tanımlamaları içerir.
• Yazılım süreç tanımlamaları şunları içerebilir:
• Süreç aktivitesinin sonunda elde edilecek ürünler
• Süreçte yer alan kişilerin sorumluluklarını gösteren
roller
• Süreç öncesinde belirlenen ve süreç sonrasında
yerine getirilip getirilmediği kontrol edilen koşullar
Plan tabanlı ve çevik (agile) süreçler
• Plan tabanlı süreçler, süreç aktivitelerinin önceden
planlandığı ve ilerlemenin bu plana göre ölçüldüğü
süreçlerdir.
• Çevik süreçlerde planlama artırımlı şekilde yapılır ve bu
nedenle sürecin, değişen müşteri ihtiyaçlarını
karşılayacak şekilde değiştirilmesi kolaydır.
• Pratikte, uygulanabilirliği en yüksek olan süreç modelleri
plan tabanlı ve çevik yaklaşımlardan unsurlar barındıran
modellerdir.
• Doğru ya da yanlış yazılım süreç modeli yoktur.
Yazılım süreç çerçeve modelleri
• Yazılım geliştirirken yazılım süreçlerini tanımlayan farklı yaklaşımlar
bulunmaktadır. Yazılım süreç çerçevelerini genişleterek veya adapte
ederek spesifik yazılım mühendisliği süreçleri oluşturulmuştur.
• Genel Süreç Modelleri
• Çağlayan (waterfall) modeli: Geliştirme, doğrulama ve evrimsel odaklı bir
süreçler vardır. Plan tabanlı bir modeldir. Tanımlama ve geliştirme
aşamaları ayrıdır.
• Artırımlı (Incremental development) geliştirme: Tanımlama, geliştirme ve
doğrulama aşamaları ard arda gelir. Plan tabanlı veya çevik olabilir.
Sistem, her sürüm bir önceki sürüme işlevsellik ekleyen bir dizi sürüm
(artış) olarak geliştirilmiştir.
• Entegrasyon ve Yapılandırma-Tekrar kullanım tabanlı yazılım mühendisliği
(Integration and configuration) : Bu yaklaşım, yeniden kullanılabilir
bileşenlerin veya sistemlerin mevcudiyetine dayanır. Sistem geliştirme
süreci, bu bileşenleri yeni bir ortamda kullanmak üzere yapılandırmaya
ve bunları bir sisteme entegre etmeye odaklanır.Sistem, var olan
bileşenlerden inşa edilir. Plan tabanlı veya çevik olabilir.
Çağlayan (waterfall) modeli:
Analiz(Requirements definition)
Analiz
Tasarım
İşletme -Bakım
Çağlayan (waterfall) modelinin aşamaları
• Aşamalar:
• İhtiyaç analizi
• Sistem ve yazılım tasarımı
• Geliştirme ve birim testi
• Entegrasyon ve sistem testi
• Uygulama ve bakım
• Bu modelin en önemli eksikliği, süreç devam
ediyorken bir değişikliği adapte etmekteki zorluktur.
• İlkesel olarak, bir sonraki aşamaya geçmeden önce bir
önceki aşamanın tamamlanmış olması gerekir.
Çağlayan Modeli
• Yaşam döngüsü temel adımları baştan sona en az bir kez
izleyerek gerçekleştirilir.
• İyi tanımlı projeler ve üretimi az zaman gerektiren yazılım
projeleri için uygun bir modeldir.
• Geleneksel model olarak da bilinen bu modelin kullanımı
günümüzde giderek azalmaktadır.
• Barok modelin aksine belgeleme işlevini ayrı bir aşama olarak
ele almaz ve üretimin doğal bir parçası olarak görür.
• Barok modele göre geri dönüşler iyi tanımlanmıştır.
• Yazılım tanımlamada belirsizlik yok (ya da az) ise ve yazılım
üretimi çok zaman almayacak ise uygun bir süreç modelidir.
Çağlayan Modeli
• Gerçek yaşamdaki projeler genelde yineleme gerektirir.
• Genelde yazılımın kullanıcıya ulaşma zamanı uzundur.
• Gereksinim tanımlamaları çoğu kez net bir şekilde
yapılamadığından dolayı, yanlışların düzeltilme ve eksiklerin
giderilme maliyetleri yüksektir.
• Yazılım üretim ekipleri bir an önce program yazma, çalıştırma
ve sonucu görme eğiliminde olduklarından, bu model ile
yapılan üretimlerde ekip mutsuzlaşmakta ve kod yazma
dışında kalan (ve iş yükünün %80’ini içeren) kesime önem
vermemektedirler.
• Üst düzey yönetimlerin ürünü görme süresinin uzun oluşu,
projenin bitmeyeceği ve sürekli gider merkezi haline geldiği
düşüncesini yaygınlaştırmaktadır
Çağlayan (waterfall) modelinin problemleri
• Projeyi esnek olmayan alt aşamalara ayırmak,
müşteri ihtiyacındaki değişikliğe cevap vermeyi
zorlaştırır
• Bundan dolayı bu model yalnızca çok iyi tanımlanmış
ve anlaşılmış ihtiyaçlar üzerinde ve hemen hemen hiç
değişiklik olmayan durumlarda kullanışlıdır.
• Ancak, çok az iş alanı stabil ihtiyaçlara sahiptir.
V Süreç Modeli
Kullanıcı Modeli
Mimari Model
Gerçekleştirim Modeli
ZAMAN
V Süreç Modeli
• Sol taraf üretim, sağ taraf sınama işlemleridir.
• V süreç modelinin temel çıktıları;
• Kullanıcı Modeli
• Geliştirme sürecinin kullanıcı ile olan ilişkileri tanımlanmakta
ve sistemin nasıl kabul edileceğine ilişkin sınama belirtimleri ve
planları ortaya çıkarılmaktadır.
• Mimari Model
• Sistem tasarımı ve oluşacak altsistem ile tüm sistemin sınama
işlemlerine ilişkin işlevler.
• Gerçekleştirim Modeli
• Yazılım modüllerinin kodlanması ve sınanmasına ilişkin
fonksiyonlar.
V Süreç Modeli
• Belirsizliklerin az, iş tanımlarının belirgin olduğu BT
projeleri için uygun bir modeldir.
İlk
Tanımlama Sürüm
Genel Ara
Tanımlama Geliştirme Sürümler
Son
Test Etme
Sürüm
Evrimsel Geliştirme Süreç Modeli
• Çok birimli banka uygulamaları.
• Konfigürasyon Yönetimidir
• Sürüm Yönetimi
• Değişiklik Yönetimi
• Kalite Yönetimi
Artırımsal Geliştirme Süreç Modeli
• Üretilen her yazılım sürümü birbirini kapsayacak ve
giderek artan sayıda işlev içerecek şekilde geliştirilir.
Bitmemiş Sistem
Araştırma Tabanlı Süreç Modeli
• Yap-at prototipi olarak ta bilinir.
Bir metodoloji,
• bir süreç modelini ve
• belirli sayıda belirtim yöntemini içerir