Yazılım Geliştirme Süreç Modelleri
Bu yazımda yazılım mühendisliği dersinde görmüş olduğumuz yazılım süreç modellerinden bahsedeceğim. Yazılım ile ilgilenen ve küçük-büyük projelerde yer alan-alacak olan herkesin bilmesi gereken modellerdir. Geçmişten günümüze kullanılmış olan modellerden kısaca bahsederek bunları bilmemizin bizlere ne gibi katkılar sağlayacağını, ne gibi getirileri olacağını daha iyi anlayabiliriz. Yazılım geliştirmek için kullanacağımız bu modeller planlı çalışmamızı ve geliştireceğimiz yazılımları en iyi biçimde geliştirmemizi sağlaycaktır. Şimdi bu modellerin bir kısmına kısaca göz atalım.
1. Gelişigüzel Model
Bu süreç modelinde herhangi bir yöntem yoktur. Yazılım tamamen geliştiren kişiye bağlıdır. İleri zamanlarda geliştirilen yazılımı hazırlayan kişi bile anlamakta zorluk çekebilir. Bu yüzden izlenebilirliği ve bakımı çok zordur. Daha çok 1960'lı yıllarda kullanılan bir yöntemdir. Genellikle tek başına yazılım geliştirenler tarafından tercih edilmiştir. Geliştirilen yazılımın programlaması diğer metotlarla geliştirilen yazılımların programlamasına göre basittir.
2. Barok Modeli
Bu modelde yazılım yaşam döngüsünün temel adımları doğrusal bir biçimde takip edilir. Daha çok 1970'li yıllarda kullanılmış bir yöntemdir. Adımlar arası ilişkilerin tanımlı olmadığı bir yöntemdir. Günümüzde pek kullanılmayan bir yöntemdir. Bunun en büyük nedeni ise "Belgeleme" adımının bu modelde ayrı bir adım gibi ele alınıp yazılımın geliştirilmesi ve testinin ardından yapılmasıdır. Günümüzde kullanılan modellere aykırı bir durumdur. Günümüzde tercih edilen modellerde "Belgeleme" geliştirilen yazılımın ürünü olarak kabul edilmektedir. Ayrıca "Gerçekleştirme" adımını daha fazla ağırlık veren bir modeldir.
3. Çağlayan (Şelale) Modeli
Bu modelde yazılım yaşam döngüsü adımları baştan sona en az bir kez izlenir. İyi tanımlanmış projelerde ve yapımı için az süre gerektiren projelerde tercih edilen bir yöntemdir. Geleneksel model olarak da adlandırılır. Ancak günümüzde pek fazla kullanılmamaktadır. Barok modeline göre "Belgeleme" adımını ayrı bir adım gibi almaz ve yazılımın ürünü olarak ele alır. Ayrıca Barok modelinde olmayan adımlar arası ilişkiler bu modelde tanımlanmıştır. Ancak bu modelde karşılaşılacak problemler vardır. Adımlar arası ilişkilerden dolayı yineleme olabilir. Yazılımın kullanıcıya ulaşma zamanı uzundur. Gereksinimi analizi iyi yapılmadığı takdirde adımlarda yineleme meydana gelir ve bu sebeple maliyet artar. Yazılım geliştiriciler bir an önce yazılımın sonuçlanmasını isterler ve bu sebeple kodlama dışı işlere önem vermezler.
4. V Modeli
Bu modelde adından da anlaşılacağı gibi "V" yapısında bir yol izlenir ve adımlar bu şekilde gerçekleştirilir. Bu yol üzerinde sol taraf üretimi sağ taraf ise test işlemini ifade eder. Bu modelde yer alan çıktıları "Kullanıcı Modeli", "Mimari Model" ve "Gerçekleştirim Modeli" adı altında toplayabiliriz. Kullanıcı modelinde 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 modelde sistem tasarımı ve oluşacak alt sistem ile tüm sistemin sınama işlemlerine ilişkin işlevler ele alınmaktadır. Gerçekleştirim modelinde de yazılım modüllerinin kodlanması ve sınanmasına ilişkin fonksiyonlar ele alınmaktadır. Bu model belirsizliklerin az iş tanımlarının belirgin olduğu bilişim teknolojileri projeleri için uygun bir modeldir. Ayrıca model kullanıcının projeye katkısını artırmaktadır.
5. Helezonik (Spiral) Model
Bu modelde risk analizi ön plana çıkmıştır. Yinelemeli artımsal bir yaklaşım vardır. Her döngü bir fazı ifade eder ve doğrudan adım tanımlama gibi bir faz yoktur. Ayrıca prototip yaklaşımı vardır. Bu modelde süreç 4 gruba ayrılır. Bu süreçler planlama, risk analizi, üretim, kullanıcı değerlendirmesidir. Planlama üretilecek ara ürün için planlama, amaç belirleme, bir önceki adımda üretilen ara ürün ile bütünleştirmeyi sağlar. Risk analizi risk seçeneklerinin araştırılması ve risklerin belirlenmesini sağlar. Üretim ara ürünün üretilmesini sağlar. Kullanıcı değerlendirmesi ise ara ürün ile ilgili olarak kullanıcı tarafından yapılan sınama ve değerlendirmelerini ele alır. Bu modelin avantajları vardır. İlki üretim süreci boyunca ara ürün üretme ve üretilen ara ürünün kullanıcı tarafından sınanması temeline dayanır. Yazılımı kullanacak personelin sürece erken katılması ileride oluşabilecek istenmeyen durumları engeller. Diğer bir avantajı gerek proje sahibi, gerekse yüklenici tarafındaki yöneticiler, çalışan yazılımlarla proje boyunca karşılaştıkları için daha kolay izleme ve hak ediş planlaması yapılır. Avantajlarından biri de yazılımın kodlanması ve sınanması daha erken başlar.
6. Evrimsel Model
Bu model ilk tam ölçekli modeldir. Coğrafik olarak geniş alana yayılmış, çok birimli organizasyonlar için önerilmektedir (banka uygulamaları). Her adımda üretilen ürünler, üretildikleri alan için tam işlevselliği içermektedirler. Modelin başarısı ilk evrimin başarısına bağımlıdır. Zor kısımları mevcuttur. Değişiklik denetimi ve konfigürasyon yönetimi bu modelin zorluklarıdır.
7. Artırımsal Model
Bu modelde üretilen her yazılım sürümü birbirini kapsayacak ve giderek artan sayıda işlev içerecek şekilde geliştirilir. Uzun zaman alabilecek ve sistemin eksik işlevlikle çalışabileceği türdeki projeler bu modele uygun olabilir. Örneğin öğrencilerin bir dönem boyunca geliştirmeleri gereken bir programlama ödevinin 2 haftada bir gelişiminin izlenmesi gibi (bitirme tezleri). Bir taraftan kullanım, diğer taraftan üretim yapılır.
8. Araştırma Tabanlı Model
Bu model yap-at prototipi olarak da bilinir. Araştırma ortamları bütünüyle belirsizlik üzerine çalışan ortamlardır. Yapılacak işlerden edinilecek sonuçlar belirgin değildir. Geliştirilen yazılımlar genellikle sınırlı sayıda kullanılır ve kullanım bittikten sonra işe yaramaz hale gelir ve atılır. Model-zaman-fiyat kestirimi olmadığı için sabit fiyat sözleşmelerinde uygun değildir. Bu model için örnek yazılım projeleri olarak şu örnekleri verebiliriz: en hızlı çalışan asal sayı test programı, en büyük asal sayıyı bulma programı, satranç programı gibi.
Bu modeller süreç modellemeleri için geliştirilmiş modellerden sadece birkaçı. Bunlar dışında geliştirilmiş veya bu modeller kullanılarak geliştirilmiş farklı ve kullanılan modeller de mevcuttur. Kaliteli ve başarılı bir yazılım geliştirmek için bu modellerden birini tercih etmeli veya kendi modelimizi oluşturmalı ve kullanmalıyız. Böylece daha kaliteli daha başarılı yazılımlar geliştirmeye adım atmış olacağız.
Mehmet Duran
23 Mart Pazartesi 2009
1
39807
4,4
Konuyla İlgili Olabilecek Diğer Yazılar
Tatil Bitti. Yeni Bir Dönem Daha Başlıyor
Visual Studio'da Class Diagramı Oluşturma
Pageboss ile Sitenizin Değerlerini Öğrenin - Site Tanıtımı
Parmak İzinden Yüz Tanıma Projesi
Bilişim Teknolojileri Zirvesi
Yorumlar
Yorum Yaz
RSS Yorum Takibi
erhan
25 Mayıs Pazartesi 2009 00:50
#1
birkac onemli ayrintiyi atlamissiniz birde sekil kullansaydiniz modelleri gosteren yazinizin eksik yonunu tamamlamis olurdunuz
Buradan bu yazıya ait yorumları RSS olarak takip edebilirsiniz.
Bu servis ile yazılara eklenen yorumları RSS ile takip ederek konu ile ilgili başkaları tarafından yapılan yorumları veya konuyla ilgili sorduğunuz sorulara verilen cevapları görebilirsiniz.