YMH 114 2. HAFTA

2. Hafta (15-16.02.2017):

2. HAFTA DERS SUNUMU

1. Spiral Model

helezonik 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
arttırımsal model

 Ü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
ş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
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
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ş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
barok model

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
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
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
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
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

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

* Copy This Password *

* Type Or Paste Password Here *

22 − = 16