Kritik sistemler için güçlü kalite kontrol kriterleri,
Standish Group, CHAOS Report, 200 3
Yazılım projelerinin %66’si başarısızlıkla sonuçlanıyor yada çok zor tamamlanıyor !
57% gereksinimlerin zayıf belirlenmesi , veya yönetilememesi 54% gerekli fonksiyonların son ürüne yansımaması 25 % yetersiz araç kullanımı veya gerekli eğitimin alınmaması 82% öngörülen zamanın aşılması , 51% öngörülen bütçenin aşılması
Developer Versus Customer
Yazılım Geliştirme
Zorluklar…
Yazılım geliştirme , karmaşık, zaman alıcı ve hataya açık bir süreç
Oldukça bilgili ve yetkin geliştiricilere gereksinim duyuyor ve kaynaklar kısıtlı
Öğrenme eğrisi uzun
Geleneksel yazılım geliştirme ortamları yetersiz
Çözüm…
Endüstri Standartları ile Modelleme
Geliştirme ortamından daha çok faydalanmak
Hızlı ama sağlam kod geliştirme
Öğrenme eğrisini kısaltan veya ortadan kaldıran
Unified Process Prensipleri
Yazılımı tekrarlı (“iteratively”) geliştir
Gereksinimleri yönet
Bileşen tabanlı (“component-based”) mimari kullan
Yazılımı görsel modelle
Yazılım kalitesini sürekli doğrula (“verification”)
Yazılımla ilgili değişiklikleri kontrol et
UP Süreç Yapısı
UP Statik Yapısı
Çalışanlar (“Workers”) : Kim?
Aktiviteler (“Activities”): Nasıl?
Ürünler (“Artifacts”) : Ne?
İş akışları (“Workflows”) : Ne zaman?
UP Temelli Süreç Örneği
2 yıllık bir proje için
2,5 ay “inception” aşaması
7 ay “elaboration” aşaması
12 ay “construction” aşaması
2,5 ay “transition” aşaması
“ Inception” Aşaması
Operasyonel kavramlar, kabul kriterleri ve nelerin ürünle ilgili olup olmadığını içerecek şekilde proje yazılım kapsamını ve sınır durumlarını belirlemek
Sistemin işlevselliğini yönetecek ve tasarım kararlarını şekillendirecek kritik “use-case”lerini ayırt etmek
En az bir aday mimari göstermek
Projenin bütünü için tüm bütçe ve iş çizelgesini tahminlemek ve “elobration” aşaması için takip edilecek detaylı planı oluşturmak
Riskleri öngörmek
“ Inception” Aşaması - Çıktılar
Vizyon dokümanı
Proje gereksinimleri, anahtar özellikler ve temel sınırlamalarla ilgili genel vizyon
“ Use case” modeli
Bu aşamada tanımlanabilen tüm aktörler ve “use case”ler
Başlangıç proje sözlüğü (“glossary”)
Başlangıç iş durumu (“business case”)
İş bağlamı (“context”), başarı kriterleri (ciro, market, vb.)
Finansal tahmin (“forecast”)
“ Elaboration” Aşaması
Problem alanını analiz etmek
Mimari temeli oluşturmak
Proje planını geliştirmek
Projenin yüksek risklerini gidermek
Temel hedefler:
Mimariyi geçerle ve dayanak (“baseline”) oluştur
Vizyon için dayanak oluştur
“ Construction” aşaması için detaylı planı yap ve plan dayanağı oluştur
Mimarinin vizyonu kabul edilebilir bütçe ve zamanda destekleyeceğini göster
“ Elaboration” Aşaması - Çıktılar
“ Use case” modeli (en az %80’i tamamlanmış)
Tamamlayıcı gereksinimler; işlevsel olmayan ve bir “use case” ile ilişkisi olmayan gereksinimler
Yazılım mimari tanımı
Mimari prototip (“executable”)
Güncellenmiş risk listesi ve iş durumu (“business case”)
Tüm proje için geliştirme planı
Tekrarları ve her tekrar için değerlendirme kriterlerini gösteren
Kullanılacak süreçleri gösteren geliştirme durumu (“development case”)
Ön kullanıcı el kitabı (isteğe bağlı)
“ Construction” Aşaması
Geri kalan bileşenler ve uygulama özellikleri geliştirilir
Tüm bileşenler ürüne entegre edilir
Tüm özellikler test edilir
Temel hedefler:
Kaynakların optimizasyonu ve tekrar işlerden kaçınarak, geliştirme bütçesini azaltmak
Öngörülen kaliteye ulaşmak
Versiyonları (alpha, beta) oluşturmak
Çıktılar:
Uygun platformda entegre edilmiş yazılım ürünü
Kullanıcı el kitapları
Şu anki sürüm tanımı
“ Transition” Aşaması
Yazılım ürününü kullanıcı sahasına taşımak
Kullanıcı beklentilerinin yeni sistemde karşılandığının geçerlenmesi, beta test
Projenin yenilediği eski sistemle ilgili paralel işlemler
Operasyonel veritabanı dönüşümleri
Kullanıcı ve bakımcıların eğitimi
Ürünün pazar, dağıtım satış takımları için hazırlanması
Yani….
Unified Process sadece yazılım sektöründe değil üretime dayalı tüm sektörlerde, üretim sürecini hızlandıran, zaman kazandıran ve kaliteyi arttıran bir disiplindir.
0 comments
Post a comment