selçuk şenol unified process
DESCRIPTION
Bu slayt Unified Process hakkında bilgi vermektedir.TRANSCRIPT
Unified Process
Selçuk Şenol
Uluslar arası Kıbrıs Üniversitesi
Bilişim Sistemleri Mühendisliği
Software Engineering
Kısa süre.
Limitli bütçe.
Kaliteli Yazılım.
Unified Process
Unified Process bir proje yönetim sürecidir.
Nasıl Bir Süreç ?
Gereksinimlerin büyük bütünden küçük parçalara bölündüğü,
Kim,neyi,ne zaman yapacak sorularının yanıtlarının verildiği,
Parçacık ve basit nesneler ile geliştirme sürecinin sürat kazanmasının hedef alındığı,
UML in yazarları tarafından geliştirilmiş bir Mühendislik sürecidir.
Unified Process Tarihi
1967 ilk ortaya çıkış
Ivar Jacobson(İsveç bilim adamı)
Ericsson Ar-Ge Desteği
1995 IBM Unified Process Çalışmaları
Unified Process
Temelleri “Iterative” ve “incremental” “Use-case driven” “Architecture centric” “Risk focused”
Statik yapısına ek olarak, kurumların ve projelerinin özelliklerine göre uyarlanabilir bir yapıya sahiptir (“tailorable”)
UP Yaşam Döngüsü
“Inception” – Projenin kapsamını tanımla ve iş durumunu (“business case”) geliştir “Elaboration” – “Projeyi planla, özelliklerini tanımla, mimariyi dayanağı (“baseline”) oluştur “Construction” – Ürünü gerçekleştir “Transition” – Ürünü kullanıcılarına teslim et
UP Destekleyicileri
Döküman örnekleri,
Araçlar-compilers,yapılandırma araçları,
Veritabanları,
Kritik sistemler için güçlü kalite kontrol kriterleri,
Standish Group, CHAOS Report, 2003
Yazılım projelerinin %66’si başarısızlıkla sonuçlanıyor yada çok zor tamamlanıyor!
57%57% gereksinimlerin gereksinimlerin zayıf belirlenmesizayıf belirlenmesi,, veya veya
yönetilememesiyönetilememesi
54%54% gerekli gerekli fonksiyonların son ürüne fonksiyonların son ürüne
yansımamasıyansımaması
2525%% yetersiz araç yetersiz araç kullanımı veya gerekli kullanımı veya gerekli eğitimin alınmamasıeğitimin alınmaması
82%82% öngörülen öngörülen zamanın aşılmasızamanın aşılması, 51% , 51%
öngörülen bütçenin öngörülen bütçenin aşılması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.
Sorular ?
TEŞEKKÜRLER