Bölüm 2 Yazılım Süreçleri. Ders 1



Benzer belgeler
Chapter 8 Yazılım Testi. Lecture 1. Chapter 8 Software testing

Bir yazılım geliştirme metodolojisi aşağıdaki adımlardan meydana gelir; Yazılım geliştirme sürecine destek verecek araçlar, modeller ve yöntemler.

SİSTEM ANALİZİ VE TASARIMI

1.Yazılım Geliştirme Metotları 1

SİSTEM VE YAZILIM. o Bilgisayar sistemleri donanım, yazılım ve bunları işletmek üzere gerekli işlemlerden oluşur.

9.DERS Yazılım Geliştirme Modelleri

Yazılım Süreçleri Software Processes

Yazılım Mühendisliği 1

CMMI. CMMI ve Çevik Yöntemler. Orhan KALAYCI Haziran Yazılım Süreç Kalitesi ve Yönetim Danışmanlığı.

design)1980li ve 1990lıyıllar Birleştirilmiş Modelleme Dili (Unified Modeling Language-(UML) yazılım geliştirme araçlarının temelidir.

Akış. Atik Yazılım Geliştirme Tanımı ve Kavramlar Tarihi Metotları Dünyada Atik Yazılım Geliştirme Örnekleri Sonuç BİL 588 2

YAZILIM MODELLEME VE TASARIM

Öğretim planındaki AKTS Ulusal Kredi

Bölüm 3 Çevik (Agile) Yazılım Geliştirme. Ders 1

Sistem ve Yazılım Nedir?

UNICASE.... kapsamlı bir CASE* aracı. *

Yazılım Mühendisliği Bölüm - 2 Yazılım Geliştirme Yaşam Döngüsü. Cengiz GÖK

WINDESKCONCENTO. sıgnum. Kurumsal İş Süreçleri Uygulamaları. windesk.com.tr

Sistem Geliştirme Yaşam Döngüsü (The Systems Development Life Cycle) (SDLC)

Proje Çevresi ve Bileşenleri

Yazılım Geliştirme Projelerinde Kontrolörlük / Müşavirlik Hizmetleri. Y.Müh. Kadriye ÖZBAŞ ÇAĞLAYAN, PMP Y.Müh. Ahmet DİKİCİ, PMP

Chapter 6 Mimari Tasarım. Lecture 1. Chapter 6 Architectural design

BM208- Nesneye Dayalı Analiz ve Tasarım. Öğr. Grv. Aybike ŞİMŞEK

Script. Statik Sayfa. Dinamik Sayfa. Dinamik Web Sitelerinin Avantajları. İçerik Yönetim Sistemi. PHP Nedir? Avantajları.

Yazılım Mühendisliği Bölüm - 3 Planlama

CMMI ve Çevik Yöntemler

BLG Sistem Analizi ve Tasarımı. Öğr. Grv. Aybike ŞİMŞEK

FIRAT ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ Yazılım Mühendisliği Bölümü

COĞRAFİ BİLGİ SİSTEMLERİ İLERİ SEVİYE EĞİTİMLERİ BUILDING GEODATABASE EĞİTİMİ

Yazılım ve Uygulama Danışmanı Firma Seçim Desteği

T. C. KAMU İHALE KURUMU

MerSis. Bilgi Teknolojileri Yönetimi Danışmanlık Hizmetleri

SİSTEM MÜHENDİSLİĞİ TASARIMIN SENTEZLENMESİ II

Eylül 2007 de v1.0 ı yayınlanan SysML sayesinde endüstri mühendislerinin de ihtiyacı karşılanmış oldu.

TÜMLEŞİK MODELLEME DİLİ. UML (Unified Modeling Language)

Sistem Analizi ve Tasarımı DERS2

Fırat Üniversitesi Teknoloji Fakültesi Yazılım Mühendisliği. YAZILIM MÜHENDİSLİĞİNİN TEMELLERİ-Hafta 2

COĞRAFİ BİLGİ SİSTEMLERİ İLERİ SEVİYE EĞİTİMLERİ BUILDING GEODATABASE EĞİTİMİ

Inovasyonu Hızlandırın

X. Çözüm Ortaklığı Platformu

ESİS Projesi. Kaynaklar Bakanlığı

Arş.Gör.Muhammet Çağrı Gencer Bilgisayar Mühendisliği KTO Karatay Üniversitesi 2015

Bilgisayar Sistemleri; donanım, yazılım ve kullanıcılardan oluşur. Yazılım sadece belirli bir işlemi yapan bir program değildir. Yazılım belirli bir

IBM CLM Çözümleriyle Çevik Yazılım Süreçleri. Canberk Akduygu & Koray Okşar

1.1 Metodolojiyi Gerçeklemek Üzere Geliştirilen Altyapı

BM208- Nesneye Dayalı Analiz ve Tasarım. Sunum 7

MerSis. Bilgi Teknolojileri Bağımsız Denetim Hizmetleri

IT Dönüşüm Projesi Başlangıç/Kick-off Toplantısı

Proje Yönetimi ve İş Analizi: Entegre İki Disiplin Proje yönetimi ve iş analizi şirketlerin daha stratejik olmasını sağlayan iki farklı disiplindir

<Ekip Adı> <Proje Adı> Yazılım Gereksinimlerine İlişkin Belirtimler. Sürüm <1.0>

SAMM ile Güvenli Yazılım Geliştirme

Yazılım Mühendisliği Bölüm - 3 Planlama. Cengiz GÖK

YZM 2108 Yazılım Mimarisi ve Tasarımı

Hızlı Uygulama Geliştirme (Rapid Application Development - Rad Model)

Bilgi sistemlerinin geliştirilmesi için izlenen sürece, Sistem Geliştirme Yaşam Döngüsü (SGYD) denir.

SİSTEM SİMÜLASYONU

THY A.O. Bilgi Teknolojileri Alanında Tecrübeli Çalışma Arkadaşları Arıyor

BENZERSİZ SORUNLARA BENZERSİZ ÇÖZÜMLER

Proje Yönetimi Uygulamaları Görev Tanımlama

BMH-405 YAZILIM MÜHENDİSLİĞİ


GĐRĐŞ. 1 Nisan 2009 tarihinde BDP programının yeni bir sürümü yayınlanmış ve bu sürümde yapılan değişikliklere

BİÇİMSEL YÖNTEMLER (FORMAL METHODS) Betül AKTAŞ Suna AKMELEZ

4. ÜRÜN GELİSTİRME İŞLEMİ

Bilişim Sistemleri. Modelleme, Analiz ve Tasarım. Yrd. Doç. Dr. Alper GÖKSU

VET ON KULLANIM KLAVUZU

Dijitalleşme Yolunda ERP Dönüşümü

TBİL UYGULAMA I DERSİ. Mobil Barkotlu Depo Programı Projesi PROJESİ TASARIM RAPORU

Orta ölçekli şirketler için uçtan uca işbirliği sunuyoruz.

Kargo Modülü. Diğer modüller ile entegre çalışan Kargo modülü ile satış irsaliyesifaturasıoluşturduktan

Yaşanmış Tecrübe Paylaşımı Önce Test Et Sonra Kodla XP Pratiği

GİRİŞ. Mehmet Sait Andaç. e-posta: İnşaat Mühendisi ve Endüstri Mühendisi.

COĞRAFİ BİLGİ SİSTEMLERİ Building Geodatabase Eğitimi

Yazılım Mühendisliğine Giriş (SE 112) Ders Detayları

Elbistan Meslek Yüksek Okulu Güz Yarıyılı

ISO 13485:2016 TIBBİ CİHAZLAR KALİTE YÖNETİM SİSTEMİ GEÇİŞ KILAVUZU

4. YAZILIM PROJELERİ YARIŞMASI REHBERİ ÖNSÖZ

MOBİL UYGULAMA GELİŞTİRME

Büyük Ölçekli Bir Sistem Projesinde IBM Rational Jazz Platformu Kullanarak Çevik Süreçlerin Uygulanması. Serap Bozbey

Yazılım Nedir? Yazılım Mühendisi. Yazılım Mühendisliği. ACM/IEEE Etik Kodu. Etik Kural için Önsöz BIL 304 YAZILIM MÜHENDİSLİĞİ

Yaz.Müh.Ders Notları #3 1

Mobil Cihazlardan Web Servis Sunumu

TIGER PLUS FİYAT LİSTESİ 1 Aralık 2010 tarihinden itibaren geçerlidir.

Pardus Yazılım Testleri ve Hata Takip Sistemi

ISO/IEC BİLGİ TEKNOLOJİSİ - HİZMET YÖNETİMİ BAŞ DENETÇİ EĞİTİMİ. Terimler Ve Tarifler.

İŞ SAĞLIĞI GÖZETİMİ YAZILIMI. Sağlıklı ve güvenli bir yaşam için

DEĞER MÜHENDİSLİĞİ. Veli KOÇAK Yazılım Mühendisi. Maltepe Üniversitesi

Model Tabanlı Geliştirmede Çevik Süreç Uygulanması

Yazılım Geliştirme Genel Tanımlar

DEĞİŞİKLİK BEDAVA MI?

WEB PROJESİ YÖNETİMİ. Belli bir süre içerisinde, belli bir bütçe ile belirlenen hedeflere ulaşmak için uygulanan metodolojik süreçtir.

bt-pota Bilgi Teknolojileri Hizmetleri Belgelendirme Standartları Merve Saraç Nisan 2008

1 Temmuz 2014 Netsis Standard 2 1 Temmuz 2014

Yazılım Testine Bakış. Defne Şarlıoğlu

LOGO NETSİS 3 STANDARD FİYAT LİSTESİ 5 Nisan 2016 tarihinden itibaren geçerlidir.

Chapter 5 Sistem Modelleme. Lecture 1. Chapter 5 System modeling

Hızlı Uygulama Geliştirme (SE 340) Ders Detayları

İnnova dan, tamamen ölçülebilir, KPI ve SLA anlaşmaları ile garanti altına alınmış yönetilebilir SAP hizmet modeli

GT Türkiye İşletme Risk Yönetimi Hizmetleri. Sezer Bozkuş Kahyaoğlu İşletme Risk Yönetimi, Ortak CIA, CFE, CFSA, CRMA, CPA

IDE4DB Veritabanı Geliştirme Platformu Bitirme Projesi Sunumu

Transkript:

Bölüm 2 Yazılım Süreçleri Ders 1 1

Konular Yazılım Süreç Modelleri Süreç Aktiviteleri Değişikliklerle Baş Etmek The Rational Unified Process (RUP) 2

Yazılım Süreci Bir yazılım sistemini geliştirmek için gerekli olan aktiviteler kümesi Birçok farklı yazılım süreç modeli var fakat hepsi şunları içermeli: Tanımlama sitemin ne yapması gerektiğinin belirlenmesi; Tasarım ve Gerçekleştirim sistemin organizasyonunun belirlenmesi gerçekleştirilmesi; Doğrulama müşterinin istediği şeyleri yapıp yapmadığının kontrolü; Evrim değişen müşteri isteklerine göre sistemin değiştirilmesi. Bir yazılım süreç modeli gerçek bir sürecin özet gösterimidir 3

Yazılım Süreç Tanımlamaları Yazılım süreçleri ile ilgili konuştuğumuzda aslında bu süreçlerdeki veri modeli belirleme, kullanıcı arayüzü tasarımı gibi aktiviteler ve bu aktivitelerin sırası hakkında konuşuruz. Yazılım süreç tanımlamaları aşağıdakiler içerebilir: Süreç aktivitesinin sonunda elde edilecek ürünler; Süreçte yer alan kişilerin sorumluluklarını gösteren roller. Süreç öncesinde belirlenen ve süreç sonrasında yerine getirilip getirilmediği kontrol edilen koşullar. 4

Plan tabanlı ve çevik (agile) süreçler Plan tabanlı süreçler, süreç aktivitelerinin önceden planlandığı ve ilerlemenin bu plana göre ölçüldüğü süreçlerdir. Çevik süreçlerde planlama artırımlı şekilde yapılır ve bu nedenle sürecin, değişen müşteri ihtiyaçlarını karşılayacak şekilde değiştirilmesi kolaydır. Pratikte, uygulanabilirliği en yüksek olan süreç modelleri plan tabanlı ve çevik yaklaşımlardan unsurlar barındıran modellerdir. Doğru ya da yanlış yazılım süreç modeli yoktur. 5

Yazılım süreç modelleri Çağlayan (waterfall) modeli Plan tabanlı bir modeldir. Tanımlama ve geliştirme aşamaları ayrıdır. Artırımlı (Incremental) geliştirme Tanımlama, geliştirme ve doğrulama aşamaları ard arda gelir. Plan tabanlı veya çevik olabilir. Tekrar kullanım tabanlı yazılım mühendisliği Sistem, var olan bileşenlerden inşa edilir. Plan tabanlı veya çevik olabilir. Pratikte birçok büyük sistem bu modellerin unsurlarının bir arada kullanılması ile geliştirilir. 6

Çağlayan (waterfall) modeli 7

Çağlayan (waterfall) modelinin aşamaları Aşamalar: İhtiyaç analizi Sistem ve yazılım tasarımı Geliştirme ve birim testi Entegrasyon ve sistem testi Uygulama ve bakım Bu modelin en önemli eksikliği, süreç devam ediyorken bir değişikliği adapte etmekteki zorluktur. İlkesel olarak, bir sonraki aşamaya geçmeden önce bir önceki aşamanın tamamlanmış olması gerekir. 8

Çağlayan (waterfall) modelinin problemleri Projeyi esnek olmayan alt aşamalara ayırmak, müşteri ihtiyacındaki değişikliğe cevap vermeyi zorlaştırır Bundan dolayı bu model yalnızca çok iyi tanımlanmış ve anlaşılmış ihtiyaçlar üzerinde ve hemen hemen hiç değişiklik olmayan durumlarda kullanışlıdır. Ancak, çok az iş alanı stabil ihtiyaçlara sahiptir. 9

Artırımlı (Incremental) geliştirme 10

Artırımlı (Incremental) geliştirmenin faydaları Müşteri ihtiyaçlarındaki değişikliklerin yerine getirilme maliyetini düşürür Yeniden yapılması gereken analiz ve dokümantasyon işleri, çağlayan modelinde olması gerekenden daha azdır. Geliştirme süresi ile ilgili müşteri geri bildirimlerini almak daha kolaydır. Müşteri, yazılım gösterimleri (demonstrations) üzerine yorum yapabilir ve işin ne kadarının yapıldığını görebilir. Yazılım teslim süresi çağlayan modeline göre daha kısadır 11

Artırımlı (Incremental) geliştirmenin problemleri Süreç görülebilir değildir. Yöneticiler, süreçle ilgili düzenli olarak bilgi almak ister. Eğer sistem çabuk bir biçimde geliştiriliyorsa, sistemin her bir versiyonu için yöneticilere sunulacak raporlar hazırlamak maliyet-etkin olmaz. Her bir değişiklik sistemin yapısında bozulmalara neden olur. Yazılımın iç yapısının yeniden düzenlenmesi yazılımı geliştirse de; devamlı değişiklik yapmak bir süre sonra yeni değişikliklerin daha zor ve maliyetli yapılmasına neden olur. 12

Tekrar kullanım tabanlı yazılım mühendisliği Var olan veya ticari olarak temin edilebilen (COTS - Commercial-off-the-shelf) bileşenlerin bir araya getirilmesi ile üretilen sistemlerdir. Süreç aşamaları Bileşen analizi Gerekli değişikliklerin yapılması Bileşenleri kullanarak sistemin tasarlanması Geliştirme ve bütünleştirme 13

Tekrar kullanım tabanlı yazılım mühendisliği 14

Tekrar kullanım tabanlı yazılım mühendisliği Yazılım bileşen tipleri Web servisleri Paket haline getirilmiş yazılım nesneleri Belirli bir amaç için konfigüre edilebilen ve yalnız başına çalışabilen yazılım sistemleri (COTS) 15

Süreç Aktiviteleri 16

Yazılım tanımlama (İhtiyaç Mühendisliği) Hangi hizmetlerin gerekli olduğunun tespit edildiği ve sistemin geliştirilmesi ve uygulaması üzerindeki kısıtların ortaya konulması İhtiyaç mühendisliği süreci aktiviteleri (müşteri ile anlaşma) 1. Uygulanabilirlik çalışması (Feasibility study) Teknik ve finansal olarak bu sistemi geliştirmek mümkün mü? 2. İhtiyaçları belirleme ve analiz etme (Requirements elicitation and analysis) Sistemin paydaşlarının sistemden beklentileri nelerdir? 3. İhtiyaçları tanımlama İhtiyaçların detaylıca tanımlanması 4. İhtiyaçların doğrulanması İhtiyaçların doğruluklarının kontrol edilmesi 17

İhtiyaç mühendisliği süreci 18

Yazılım tasarım ve gerçekleştirme Sistem ihtiyaçlarının çalıştırılabilir (executable) bir sistem haline getirilmesi Yazılım tasarımı İhtiyaçları cevap verebilecek bir yazılım yapısı tasarlama Gerçekleştirim Tasarlanan yapının çalıştırılabilir bir sistem haline getirilmesi ; Tasarlama ve gerçekleştirme faaliyetleri yakından ilgilidir ve iç içe geçmiş şekilde yapılabilir. 19

Tasarım sürecinin genel bir modeli 20

Tasarım aktiviteleri Mimari tasarım, bütün bir sistemin yapısının, ana bileşenlerinin (alt sistem veya modüllerin) ve bunlar arasındaki ilişkilerin yapısı Arayüz tasarımı, sistem bileşenleri arasındaki arayüzlerin tasarlanması Bileşen tasarımı, her bir sistem bileşeninin nasıl çalışacağının tasarlanması. Veritabanı tasarımı, sistemin kullanacağı veri yapılarının tasarlanması ve bunların bir veritabanında nasıl tutulacağının belirlenmesi. 21

Yazılım doğrulama Tetkik ve Tasdik (Verification and validation - V & V), bir sistemin daha önceden belirlenmiş olan ihtiyaçları karşılayıp karşılamadığını belirlemek üzere gerçekleştirilir. Kontrol, gözden geçirme ve sistem testini kapsar Sistem testi, sistem tarafından kullanılacak olan gerçek veriler ile gerçekleştirilir. Test, en yaygın kullanılan doğrulama aktivitesidir. 22

Test aşamaları 23

Test aşamaları Geliştirme veya bileşen testi Birbirinden ayrı bileşenler ayrı ayrı test edilir; Bir bileşen, fonksiyon, nesne vb. olabilir. Sistem testi Sistemin bütün olarak test edilmesi. Kabul testi Müşteri ihtiyaçlarının karşılandığını göstermek için müşterinin verileri ile sistemin test edilmesi 24

Plan tabanlı bir süreçteki test aşamaları 25

Yazılım evrimi Yazılım, doğası gereği esnektir ve değişebilir. Değişen iş hayatı koşulları ile değişen ihtiyaçların yazılım tarafından desteklenmesi gerekir. Yazılım geliştirme ile evrim (bakım, güncelleme) arasında bir sınır olmasına rağmen, yeni sistemlerde bu sınır gittikçe belirsizleşmekte. 26

Yazılım evrimi 27

Özet Yazılım süreçleri, yazılım üretimindeki aktivitelerdir. Yazılım süreç modeller ise bu süreçlerin özet bir gösterimidir. Çağlayan modeli, artırımlı model gibi yazılım süreç modelleri, yazılım süreçlerinin organizasyonunu tanımlayan modellerdir. 28

Özet İhtiyaç mühendisliği, yazılım tanımlama sürecidir. Tasarım ve gerçekleştirim, belirlenen ihtiyaçların çalışır bir yazılım sistemi haline getirilmesi ile ilgilenir. Yazılım doğrulama, yazılımın daha önceden tanımlanan işleri yapabildiğinin ve kullanıcı isteklerini karşıladığının doğrulanmasıdır. Yazılım evrimi, yeni ihtiyaçları karşılamak üzere yazılım üzerinde yapılan değişikliklerdir. 29

Bölüm 2 Yazılım Süreçleri (Kısım 2) Ders 1 30

Değişikliklerle baş etmek Bütün büyük yazılım projelerinde değişiklik kaçınılmazdır. Değişen iş gereksinimi Yeni yazılım geliştirme teknolojileri Değişen platformlar Değişiklik, yeniden çalışmak demektir. Yeniden çalışmak yalnızca kodları değiştirmek değil. yeniden analiz, yeniden tasarım 31

Yeniden çalışma maliyetini azaltmak Prototipleme Ana hatları tamamlanmış bir sürümü müşteriye göster; istediği değişiklikleri yap. Artırımlı geliştirme Değişiklikleri, artırım aşamalarında yap. Mümkün değilse, yalnızca bir artırıma indirgemeye çalış. 32

Yazılım prototipleme Tasarım opsiyonlarını ve ana hatları gösteren taslak sürüm Prototipleme başka nelere yarar? İhtiyaç mühendisliği sırasında ihtiyaçların elenmesi ve doğrulanması Tasarım sürecinde arayüz alternatiflerinin değerlendirilmesi Test aşamasına, testlerin arka arkaya yapılması 33

Prototiplemenin faydaları Sistem kullanılabilirliğini arttırır. Sistemi, kullanıcının gerçek ihtiyaçlarına yaklaştırır Tasarım kalitesini arttırır Sürdürülebilirliği arttırır Geliştirme eforunu azaltır 34

Prototiplemenin aşamaları 35

Prototip geliştirme Programlama dilleri veya görsel araçlarla yapılabilir. Şunları içerebilir Prototipleme, ürünün iyi anlaşılmamış alanlarına odaklanmalı Hata kontrolü gibi detayları prototipte bulunmayabilir Fonksiyonel olmayan (güvenilirlik, güvenlik) ihtiyaçlardansa fonksiyonel ihtiyaçlara odaklan 36

Prototipleri atın Son ürünün geliştirmesinde prototipi kullanmayın Fonksiyonel olmayan sistem gereksinimlerini karşılamak imkansız olabilir. Prototipler genelde dokümante edilmezler Prototipin yapısı, hızlı değişikliklerden dolayı çabucak bozulur Prototipler, kalite standartlarını sağlamayabilir. 37

Artırımlı geliştirme Sistemi bütün olarak teslim etmek yerine, her seferinde bazı fonksiyonları tamamlayarak teslim etmek. Kullanıcı istekleri önceliklendirilir ve en öncelikli istekler ilk artırımlarda yapılır. 38

Artırımlı geliştirme ve teslim Artırımlı geliştirme Sistemi artırarak geliştir ve her artırımdan önce eldeki ürünü test et Artırımlı teslim Her artırımı müşterinin kullanımına sun Yazılımın kullanılması sayesinde daha gerçekçi değerlendirme sağlar 39

Artırımlı teslim 40

Artırımlı teslimin avantajları Sistemin fonksiyonelliği erken aşamalarda başlar. İlk artırımlar prototip işlevi görürler ve sonraki artırımlar için öncelikli gereksinimlerin belirlenmesini sağlarlar Projenin tamamen başarısız olma riski düşer En çok testin, en öncelikli sistem hizmetleri için yapılması sağlanır 41

Artırımlı teslimin problemleri Birçok sistem, sistemin değişik parçalarının ortak olarak kullanacağı fonksiyonelliği gerektirir Artırımlı geliştirmenin temeli, sistem tanımlamasının geliştirme aşamasında yapılmasıdır. Sistem tanımlamasının tamamı, son artırımda bitirilmiş olur. Bu duruma müşterinin ikna edilmesi zor olabilir. 42

Boehm in spiral modeli Süreç, birbirini izleyen aşamalar yerine spiral olarak gösterilir Spiraldeki her döngü, süreçteki bir aşamayı gösterir Tanımlama, tasarlama gibi sabit aşamalar yoktur. Her bir döngünün içerisinde neye ihtiyaç duyuluyorsa o aşama seçilir Riskler, süreç boyunca açık bir şekilde belirlenir ve çözülür. 43

Boehm in spiral modeli 44

Boehm in spiral modelinin kullanımı Riskleri değerlendirme ve yok etmede başarılı. Ancak pratikte uygulaması hemen hemen yok. 45

The Rational Unified Process UML ve ilgili süreçler üzerinde çalışan modern bir genel süreç modeli Daha önceden açıkladığımız 3 tane genel süreç modelinin farklı yönlerini bir araya getirir. 3 bakış açısı ile süreç tarif edilir Aşamaları zamana göre gösteren bakış açısı Süreç aktivitelerini gösteren statik bakış açısı İyi uygulamaları öneren pratik bir bakış açısı 46

Rational Unified Process deki aşamalar 47

RUP aşamaları Başlangıç Sistemin olurluğunu kanıtla Ayrıntılandırma Problemin alanını belirle ve sistem mimarisini geliştir İnşa Sistem tasarımı, programlama ve test. Geçiş Sistemi, çalışacağı ortamda yayınla. 48

RUP iterasyonu (süreçteki tekrarlar) Aşama içi iterasyon Artırımlı geliştirmenin sonucu olarak her aşama iteratiftir. Aşamalar arası iterasyon RUP modelindeki döngüde gösterildiği gibi bütün aşamaların kümesi artırımlı şekilde harekete geçirilebilir. 49

Rational Unified Process de Statik İş Akışları İş Akışı İşin Modellenmesi Tanım Kullanım senaryoları ile iş süreçlerinin modellenmesi. İhtiyaçlar Analiz ve Tasarım Gerçekleştirme Sistemle etkileşecek olan kulllanıcı tiplerinin tespiti ve sistem ihtiyaçlarını modellemek için kullanım senaryolarının kullanılması. Mimari modeller, bileşen modelleri, nesne modelleri ve diziliş modelleri kullanılarak bir tasarım modelinin yaratılması ve dokümante edilmesi. Sistemdeki bileşenler, alt sistemlerin gerçekleştirilmesi şeklinde yapılandırılıp gerçekleştirilirler. Tasarım modellerinden otomatik kod oluşturan araçlar bu aşamanın hızlanmasını sağlayabilir. 50

Rational Unified Process de Statik İş Akışları İş Akışı Test Yayınlama Konfigürasyon ve değişim yönetimi Proje yönetimi Çevre Tanım Test, gerçekleştirim ile birlikte yürütülen iteratif bir süreçtir. Sistem testi ise gerçekleştirimin bitmesinden sonra yapılır. Ürünün bir sürümünün oluşturulması, kullanıcılara dağıtılması ve çalışma alanına yüklenmesi. Bu yardımcı iş akışı sistem değişikliklerini yönetir. Bu yardımcı iş akışı sistem gelişim sürecini yönetir. Bu iş akışı, yazılım geliştirme ekibine uygun yazılım geliştirme araçlarının temin edilmesi ile ilgilenir. 51

RUP un kullandığı iyi uygulamalar (good practice) Yazılımı İteratif Geliştir Her bir küçük sürümü müşteri ihtyacının önceliğine göre geliştir ve en öncelikli ihtiyaçları ilk ulaştır. İhtiyaçları Yönet Müşteri ihtiyaçlarını açık bir biçimde belgelendir ve ihtiyaçlardaki değişiklikleri takip et. Bileşen Tabanlı Mimariler Kullan Sistem mimarisini yeniden kullanılabilir bileşenlerin bir kümesi olarak organize et. 52

RUP un kullandığı iyi uygulamalar (good practice) Yazılımı Görsel Olarak Modelle Yazılımın statik ve dinamik bakış açılarını oluşturmak için grafiksel UML modelleri kullan. Yazılımın Kalitesini Doğrula Yazılımın gerekli kalite standartlarını sağladığından emin ol. Yazılım Değişikliklerini Kontrol Et Bir tane değişiklik yönetim sistemi ve konfigürasyon yönetim sistemi kullanarak yazılımdaki değişiklikleri yönet. Fazlası için: ITIL, IBM Tivoli 53

Özet Süreçler, değişikliklerle baş edebilecek aktiviteleri barındırmalı. Prototipleme gibi. Süreçler, artırımlı geliştirme ve teslim için tasarlanabilir. Böylece, değişikliklerin bütün sistemi etkilemesi engellenir. The Rational Unified Process aşamalar halinde organize edilen (başlangıç, ayrıntılandırma, inşa ve geçiş) fakat aktiviteleri de (ihtiyaçlar, analizler ve tasarım gibi) ayıran modern bir genel süreç modelidir. 54