2. Hafta (15-16.02.2017):
1. Spiral Model
Planlama
◦ Üretilecek ara ürün için planlama, amaç belirleme, bir önceki adımda üretilen ara ürün ile bütünleştirme
Risk Analizi
◦ Risk seçeneklerinin araştırılması ve risklerin belirlenmesi
Üretim
◦ Ara ürünün üretilmesi
Kullanıcı Değerlendirmesi
◦ Ara ürün ile ilgili olarak kullanıcı tarafından yapılan sınama ve değerlendirmeler
Risk Analizi Olgusu ön plana çıkmıştır.
Hedefler, alternatifler ve kısıtlamalar belirlenir.
Alternatifler değerlendirilir, riskler belirlenip çözülür.
Aşamanın ürünü geliştirilir.
Sonraki aşama planlanır.
Her döngü bir aşamayı ifade eder. Doğrudan tanımlama, tasarım,… vs. gibi bir aşama yoktur.
Yinelemeli artımsal bir yaklaşım vardır.
Prototip yaklaşımı vardır.
Süreç arka arkaya devam eden sıralı aktiviteler şeklinde gösterilmek yerine spiral şekilde gösterilir.
Spiral üzerindeki her bir halka bir fazı gösterir.
Belirtim, tasarım gibi kesin fazlar yoktur – spiral deki halkalar neye ihtiyaç varsa onu gerçekleştirmek için seçilir.
Süreç boyunca risklerin değerlendirilmesi ve çözümü açık olarak yapılır.
Helezonik Modelin Avantajları:
Kullanıcılar sistemi erken görebilirler.
Geliştirmeyi küçük parçalara böler. En riskli kısımlar önce gerçekleştirilir.
Pek çok yazılım modelini içinde bulundurur.
Riske duyarlı yaklaşımı potansiyel zorlukları engeller.
Seçeneklere erken dikkate odaklanır.
Hataları erken gidermeye odaklanır.
Yazılım-donanım sistemi geliştirme için bir çerçeve sağlar.
Helezonik Modelin Dezavantajları:
Küçük ve düşük riskli projeler için pahalı bir yöntemdir.
Komplekstir (karmaşık).
Spiral sonsuza gidebilir.
Ara adımların fazlalığı nedeniyle çok fazla dokümantasyon gerektirir.
Büyük ölçekte projeler
Kontrat tabanlı yazılıma uymaz.
◦ Yazılımın içten geliştirileceğini varsayar.
◦ Kontrat tabanlı yazılımlar adım adım anlaşma esnekliğini sağlamaz.
Öznel risk değerlendirme deneyimine dayanır.
◦ Yüksek riskli öğelere yoğunlaşmak, yüksek riskli öğelerin doğru belirlenmesini gerektirir.
2. Arttırımsal Geliştirme
Üretilen her yazılım sürümü birbirini kapsayacak ve giderek artan sayıda işlev içerecek şekilde geliştirilir.
Öğrencilerin bir dönem boyunca geliştirmeleri gereken bir programlama ödevinin 2 haftada bir gelişiminin izlenmesi (bitirme tezleri).
Uzun zaman alabilecek ve sistemin eksik işlevlikle çalışabileceği türdeki projeler bu modele uygun olabilir.
Bir taraftan kullanım, diğer taraftan üretim yapılır.
Arttırımsal Modelin Avantajları:
Sistem için gerekli olan gereksinimler müşterilerle belirlenir
Gereksinimlerin önemine göre teslim edilecek artımlar belirlenir
Öncelikle en önemli gereksinimleri karşılayan çekirdek bir sitem geliştirilir.
Erken artımlar prototip gibi davranarak, gereksinimlerin daha iyi anlaşılmasını sağlar
Tüm projenin başarısız olma riskini azaltır
En önemli sistem özellikleri daha fazla sınanma (test edilme) imkanı bulmuş olur.
Divide and Conquer (Böl ve Yönet) yaklaşımıdır.
Arttırımsal Modelin Dezavantajları:
Artımları tanımlamak için tüm sistemin tanımlanmasına ihtiyaç vardır.
Gereksinimleri doğru boyuttaki artımlara atamak bazen zor olabilir.
Deneyimli personel gerektirir.
Artımların kendi içlerinde tekrarlamalara izin vermez.
3. Şelale 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.
Bir sonraki aşama, önceki aşama tamamlanmadan başlayamaz.
Her aşamanın sonucu bir ya da birden fazla onaylanan (imzalanan) belgedir.
Gerektiğinde geliştirme aktivitelerinde iterasyonlar (tekrarlamalar) olabilir.
Gereksinim Tanımlama: Gerçekleştirilecek sistemin gereksinimlerinin belirlenmesi isidir.
◦ Müşteri ne istiyor? Ürün ne yapacak, ne işlevsellik gösterecek?
Sistem ve Yazılım Tasarımı: Gereksinimleri belirlenmiş bir sistemin yapısal ve detay tasarımını oluşturma isidir.
◦ Ürün, müşterinin beklediği işlevselliği nasıl sağlayacak?
Gerçekleştirme ve Birim Test: Tasarımı yapılmış bir yazılım sisteminin kodlanarak gerçekleştirilmesi isidir.
◦ Yazılım ürünü, tasarımı gerçekleştirecek şekilde kodlandı mı?
Birleştirme ve Sistem Testi: Gerçekleştirilmiş sistemin beklenen işlevselliği gösterip göstermediğini sınama işlemidir.
◦ Ürün, müşterinin beklediği işlevselliği sağlıyor mu?
İşlem ve Bakım: Müşteriye teslim edilmiş ürünü, değişen ihtiyaçlara ve ek müşteri taleplerine göre güncelleme isidir.
◦ Ürün müşteri tarafından memnuniyetle kullanılabiliyor mu?
Şelale Modelinin Avantajları:
Müşteriler ve son kullanıcılar tarafından da iyi bilenen anlaşılabilen adımlardan oluşur.
İterasyonlar (tekrarlamalar) bir sonraki ve bir önceki adımlarla gerçekleşir, daha uzak adımlarla olması nadirdir.
Değişiklik süreci yönetilebilir birimlere bölünmüştür.
Gereksinim adımı tamamlandıktan sonra sağlam bir temel oluşur.
Erken işin miktarını arttırır.
Proje yöneticileri için işin dağılımını yapma açısından kolaydır.
Aşamaları iyi anlaşılabilir.
Gereksinimleri iyi anlaşılabilen projelerde iyi çalışır.
Kalite gereksinimlerinin bütçe ve zaman kısıtlamasında göre çok daha önemli olduğu projelerde iyi çalışır.
Şelale Modelinin Dezavantajları:
Bitirme kriteri olarak belgelendirmeye önem verilmektedir.
◦ Bazı alanlar için mümkünken (derleyiciler, işletim sistemleri, vb.) etkileşimli son kullanıcı uygulamaları gibi alanlar için zordur.
◦ Sistem geliştirilmesi süresince de gereksinimler sıklıkla değişir.
◦ Çağlayan modeli gereksinimlerin çok iyi anlaşılabildiği durumlarda kullanılmalıdır.
◦ İki ya da daha önceki fazlara gitmek çok maliyetlidir.
◦ Bu durumda da gerektiğinde tüm fazı yeniden gerçekleştirmek çok büyük bir iştir.
◦ Bir faz tamamlanmadan diğerine geçilememesi riski arttırır.
4. V Modeli
Proje ve gereksinim planlaması
Ürün gereksinimleri ve belirtim çözümlemesi
Mimari ve yüksek seviye tasarım
Detaylı tasarım
Kodlama
Birim testi
Tümleştirme ve test
Sistem ve kabul edilme testleri
Üretim, işletim ve sürdürülebilirlik
Belirsizliklerin az, iş tanımlarının belirgin olduğu BT projeleri için uygun bir modeldir.
Model, kullanıcının projeye katkısını arttırmaktadır.
BT projesinin iki aşamalı olarak ihale edilmesi için oldukça uygundur:
◦ İlk ihalede kullanıcı modeli hedeflenerek, iş analizi ve kabul sınamalarının tanımları yapılmakta,
◦ İkinci ihalede ise ilkinde elde edilmiş olan kullanıcı modeli tasarlanıp, gerçeklenmektedir.
V Modelin Avantajları:
Verification ve validation planları erken aşamalarda vurgulanır.
Verification ve validation sadece son üründe değil tüm teslim edilebilir ürünlerde uygulanır.
Proje yönetimi tarafında takibi kolaydır
Kullanımı kolaydır.
V Modelin Dezavantajları:
Aynı zamanda gerçekleştirilebilecek olaylara kolay imkan tanımaz.
Aşamalar arasında tekrarlamaları kullanmaz.
Risk çözümleme ile ilgili aktiviteleri içermez.
5. Kodla ve Düzelt
Tüm gereken yeterli olacak kadar gayrettir.
Tüm adımlardaki gayret direk olarak ürüne katkı sağladığından çoğu müşteri ödeme yapmaktan mutlu olur.
Eğer ürün onu yapanlar tarafından kullanılacaksa avantajlıdır.
Kodlamaya başlamadan önce değişiklik tahmin edilmediğinden, birbirini izleyen değişikliklerden sonra kod karmakarışık bir hale gelir ve daha sonraki düzeltmeleri yapmak daha da zorlaşır.
Geliştirilen sistemin boyutunun artması, yapısal olmayan bir şekilde karmaşıklığının yönetilmesini zorlaştırır.
Müşterinin sürece dahil edilmemesi kullanıcı ihtiyaçlarına uygun olmamasına yol açar.
Bireysel geliştiriciler için uygundur, takımlar için değil.
6.Gelişigüzel Model
Geliştirme ortamında herhangi bir model ya da yöntem kullanılmaz.
Geliştiren kişiye bağımlı (belli bir süre sonra o kişi bile sistemi anlayamaz ve geliştirme güçlüğü yaşar).
İzlenebilirliği ve bakımı oldukça zor.
60’lı yıllarda, daha çok tek kişilik üretim ortamlarında kullanılan yöntemlerdir.
Yani basit programlama yöntemidir.
7. Barok Modeli
Gerçekleştirim aşamasına daha fazla ağırlık veren bir model olup, günümüzde kullanımı önerilmemektedir.
Yaşam döngüsü temel adımlarının doğrusal bir şekilde geliştirildiği model.
Barok modeli 70’li yılların ortalarından başlanarak kullanılmaya başlanmıştır.
Belgelemeyi ayrı bir süreç olarak ele alır, ve yazılımın geliştirilmesi ve testinden hemen sonra yapılmasının öngörür.
Halbuki, günümüzde belgeleme yapılan işin doğal bir ürünü olarak görülmektedir.
Aşamalar arası geri dönüşlerin nasıl yapılacağı tanımlı değil.
8. Prototipleme
Gereksinim tanımlama fazında hızlıca yapılan kısmi gerçekleştirme.
Gereksinimler netleştikçe prototipi düzelt.
Müşteri memnun olana kadar düzeltmelere devam et.
Avantajları:
Kullanıcı sistem gereksinimlerini görebilir.
Karmaşa ve yanlış anlaşılmaları engeller.
Yeni ve beklenmeyen gereksinimler netleştirilebilir.
Risk kontrolü sağlanır.
Dezavantajları:
Belgelendirmesi olmayan hızlı ve kirli (quick and dirty) prototipler.
Prototip hedefleri net değilse kod hackleme ya da jenga başlar.
Düzeltme aşaması atlanırsa, düşük performansa yol açar.
Müşteri prototipten de son ürün gibi görünüm ve etki bekler.
9. Evrimsel Geliştirme
İlk tam ölçekli modeldir.
Anahtar gereksinimleri ile başlangıç sistemi geliştirilir.
Müşteri geribildirimi ile sitem pek çok versiyonla yavaş yavaş geliştirilir.
Belirtim (specification), geliştirme ve geçerleme (validation) aktivitleri koşut zamanlı yürütülür.
Coğrafik olarak geniş alana yayılmış, çok birimli organizasyonlar için önerilmektedir (banka uygulamaları).
Her aşamada üretilen ürünler, üretildikleri alan için tam işlevselliği içermektedirler.
Pilot uygulama kullan, test et, güncelle diğer birimlere taşı.
Modelin başarısı ilk evrimin başarısına bağımlıdır.
İki çeşit evrimsel geliştirme vardır:
Keşifçi geliştirme (exploratory development)
Hedef: Müşterinin gereksinimlerini incelemek için müşteri ile çalışıp son sistemi teslim etmek
İyi anlaşılan gereksinimlerle başlanmalıdır.
“ Ne istediğimi sana söyleyemem ama onu gördüğümde bilirim”
Atılacak prototipleme (throw-away prototyping)
Hedef: Sistem gereksinimlerini anlamak
Tam anlaşılmamış gereksinimlerle başlar
Avantajlar:
Kullanıcıların kendi gereksinimlerini daha iyi anlamalarını sağlar.
Sürekli değerlendirme erken aşamalardaki geliştirme risklerini azaltır.
Hatalar azalır.
Dezavantajlar:
Sürecin görünürlüğü azdır (düzenli teslim edilebilir ürün yoktur).
Sistemler sıklıkla iyi yapılandırılmaz (sürekli değişiklik yazılımın yapısına zarar verir).
Bakımı zordur.
Yazılım gereksinimini yenilemek gerekebilir.
10. Araştırma Tabanlı Model
Yap-at prototipi olarak ta bilinir.
Araştırma ortamları bütünüyle belirsizlik üzerine çalışan ortamlardır.
Yapılan 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.
11. Bileşen Tabanlı Model
Sistemin COTS (“commercial-off-the-shelf”) adı verilen hazır bileşenler kullanılarak tümleştirilmesi esasına dayanır.
Süreç adımları:
◦ Bilesen analizi
◦ Gereksinim günleme
◦ Bileşenler kullanarak sistem tasarımı
◦ Geliştirme ve tümleştirme
◦ Bu yaklaşım, bilesen standartlarındaki gelişmeler ilerledikçe daha yaygın olarak kullanılmaya başlanmıştır ama halen kullanımı limitlidir.
2. hafta QUIZ sonuçları
14542018- 27
14542025- 27
15541012- 20
15541013- 40
15541028- 13
15541034- 27
15541049- 33
15542001- 40
15542003- 47
15542005- 13
15542007- 20
15542008- 27
15542010- 20
15542011- 20
15542012- 20
15542014- 47
15542015- 33
15542016- 33
15542017- 40
15542023- 40
15542024- 27
15542025- 27
15542027- 27
15542028- 20
16541002- 20
16541004- 13
16541006- 40
16541010- 40
16541013- 33
16541015- 60
16541016- 13
16541017- 20
16541018- 20
16541019- 47
16541023- 27
16541024- 33
16541025- 33
16541026- 40
16541027- 20
16541028- 33
16541029- 40
16541031- 40
16541033- 40
16541034- 27
16541036- 20
16541038- 47
16541039- 33
16541041- 13
16541045- 20
16541046- 27
16541047- 13
16541048- 33
16541049- 20
16541051- 40
16541053- 27
16541054- 27
16541056- 13
16541057- 20
16541059- 27
16541060- 20
16541061- 33
16541066- 13
16541067- 40
16541069- 7
16541070- 27
16541071- 7
16541073- 40
16541079- 40
16541080- 33
16541086- 47
16541090- 33
16541091- 27
16541092- 40
16541093- 20
16541404- 47
16542010- 27
16741067- 0
İlk Yorumu Siz Yapın