533
Analize Giriş Bölüm 1/4

Analist Eğitimi - Tüm Bölümler - [535 Slides]

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Analize Giriş

Bölüm 1/4

Page 2: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

İçerik

Page 3: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Eğitmen Hakkında

Erol Bozkurt – [email protected]şim Teknolojileri DanışmanıUniversity of Houston, Computer Science.

Uzmanlıklar:Real Time Simülasyon Sistemleri Tasarımı ve

Programcılığı,Sistem Analizi, UML ve Yazılım Süreçleri Danışmanlığı.

Page 4: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Eğitim Planı

• 9:30 – 12:30 (3 Ders)

Öğle arası (12:30 – 13:30)

• 13:30-16:30 (3 Ders)

İhtiyacınıza göre düzenlemeler yapılabilir.

Page 5: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Tipik Katılımcı Profili

• Nesne Tabanlı Yazılım Deneyimi Olanlar• Nesne Tabanlı Yaklaşımı Öğrenmek İsteyenler• Analistler, Tasarımcılar, Programcılar, …• Süreç Mühendisleri• Kalite Sorumluları• Proje Yöneticileri• Konu Uzmanları (Domain Expert)• Müşteriler

Page 6: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Katılımcılar Hakkında

• Şirketiniz ve faaliyet alanı• Sizin rolünüz• Eğitim almanızdaki nedenler• Eğitime yönelik beklentileriniz

Page 7: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Eğitim Materyalleri

• Eğitim Kitabı.• Çalışmalarımızda kullanacağımız ürünlerin

demolarını ve egzersiz dokümanları içeren CD-ROM.

Page 8: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Bizi Seçtiğiniz İçin Teşekkür Ederiz!

Page 9: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Analize Giriş

Bölüm 2 / 4

Page 10: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

İçerik

Page 11: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Analizden Ne Anlıyoruz?

Bir konuyu derinlemesine inceleyerek onun iç mekanizmasını, temel parçaları ve ilişkilerini, işleyiş mantığını ve baz aldığı varsayımlarısaptama faaliyetlerinin tümüdür.

Sherlock Holmes

Page 12: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Analizden Ne Anlıyoruz?

Analiz esnasında dikkat edilebilecek öğeler Çözümü kullanacak kişilerin özellikleri Çözümü geliştiren kişilerin özellikleri Çözümü kullanacak kişilerin iş süreçleri Çözümü geliştirecek kişilerin yazılım geliştirme

süreçleri

Formül: Roller – İş Ürünleri – İş Adımları

Page 13: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Analizden Ne Anlıyoruz

Farklı bir şekilde söylersek analiz çalışması insan ilişkilerinin yeniden tanımlanması ve düzenlenmesi işidir.

Dolayısıyla müşteriler ve tasarımcılar / programcılar arasında yer alarak tartışmaların tam merkezine düşer!

Page 14: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Analist Kimdir?

• Duyduğunu gerçek ve eksiksiz bilgi olarak algılayan,

• Algıladıklarını onaylattığında onlara bir kesinlik kazandırdığını zanneden birisi değildir.

• Aksine, duyduklarını sorgulayan ve söylenmeyenleri su yüzüne çıkaran,

• Kronik sorunları dokümante etmenin ötesinde problemin çözülmesine yardımcı olan birisidir.

Page 15: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Analist Kimdir?

• Terapisttir• Toplantı yöneticisidir• Değişiklik mühendisidir

Page 16: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Analist Kimdir?

• Dokümanla ifade edilen bilgileri kolay ayrıştıran ve alakalandıran

• Pek çok konuya yönelik yazılım geliştirmiş• Hataları ve nedenlerini tanımlayan• Gereksinimleri derleyerek geliştirilecek ürünleri

tanımlayan• Derlediği bilgileri etkili bir kullanımı sağlayacak

şekilde dokümante eden• Kalite ve performansa yönelik olarak ürünleri,

hizmetleri ve süreçleri değerlendiren ...

Page 17: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Analist Kimdir?

• İnsanların gerçek ihtiyaçlarını saptamak için gerekli sabra ve yeteneğe sahip

• Alternatif yaklaşımları güçlü ve zayıf yanlarına göre karşılaştırabilen

• Yüz yüze iletişim tekniklerinde bilgili ve becerili• Karmaşık sorunları kavramsal olarak

inceleyebilen ve seçenekleri belirleyerek, çözümler üretebilen birisidir.

Page 18: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Analist Kimdir?

• Bilgisayar donanımı, elektronik cihazlar ve yazılımlar

• Türkçe ve kullanılan diğer dillerde dilbilgisi, imla ve kompozisyon yazma

• Müfredat belirleme, eğitim içerik geliştirme, eğitmenlik ve eğitim değerlendirmeleri hakkında deneyim sahibi birisidir.

Page 19: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Analist Kimdir?

• Temel matematik, cebir, geometri, calculus,istatistik ve uygulanma şekilleri

• Hizmet sağlama ilkeleri ve süreçleri (İhtiyaç belirleme, hizmet kalite standartları, müşteri memnuniyeti ölçmeyi de içerir) hakkında deneyim sahibi birisidir.

Page 20: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Analist Türleri

Page 21: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Analist Türleri / Farklı Tanımlar

• İş Analisti• Sistem Analisti• Analist / Programcı• Veri / Veritabanı ‘Analisti’

Page 22: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Alakalı Meslekler

• Değişiklik Mühendisi• Süreç Mühendisi• İş Geliştirme Yöneticisi• Proje Yöneticisi

Page 23: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

İlgili Standartlar

• RUP, XP, MIL-STD, IEEE vs.• CMMI• CobiT, ITIL

Page 24: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Olası Bir Kariyer Planı

Page 25: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

İş Analisti

Page 26: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

İş Analisti

Page 27: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Sistem Analisti

Page 28: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Sistem Analisti

Page 29: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Analize Giriş

Bölüm 3 / 4

Page 30: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

İçerik

Page 31: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

İçerik

• Yaygın Yazılım Süreçleri• İteratif Yazılım Geliştirme• Unified Process (UP) Yapısı• SPEM Gösterimi ile Yazılım Süreci Tanımlama• Pratik bir UP Yaklaşımı• Yazılım Rolleri ve Kaynak Yönetimi• Proje Hazırlık Çalışmaları

Page 32: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Değişen

gereksinimler

Yeni

sistem

Süreç

Süreç Nedir?

• Kimin Neyi Ne Zaman Nasıl yapacağını tanımlamaktır.

Page 33: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

1. Gereksinim Yönetimi (Ne?)

Ürünün yerine getirmesi gerekenler

2. Analiz (Nasıl?)

Sistemin parçalarının ve birbirleriyle alakalarının kavramsal seviyede belirlenmesi

3. Tasarım (Nasıl?)

Sistemin parçalarının ve birbirleriyle alakalarının bir teknolojiye has olarak (J2EE, C++) belirlenmesi

4. İmplementasyon (Kodlamak)

Sistemin kaynak kodunun geliştirilmesi

5. Test (Verifikasyon: Fonksiyonel Test)

Test verileriyle uygulamayı çalıştırmak

6. Bakım (Hata Düzeltme ve Geliştirme)

Ürünün hatalarını giderme ve yeni özellikler ekleme

Yazılım Süreci Aşamaları

Page 34: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

1. Gereksinim Yönetimi:

Uygulama kullanıcının bakiyesini göstermelidir.

2. Analiz ve Tasarım:

Tasarım VadesizHesap ve VadeliHesap class’larına sahip olmalıdır.

3. İmplementasyon:

class VadesizHesap{

double bakiye;

getBakiye{}; setBakiye{}} …

4. Test:

yatırılan $44.92 / yatırılan $32.00 /

çekilen $101.45 / …

bakiye $2938.22, testi geçti.

5. Bakım:

Hata düzeltme: Bakiye sıfır olunca ve para çekme işlemi yapılmak istenince sistem göçüyor.

Ek Özellik Geliştirme: Euro para birimini destekleme.

Süreç Örneği: Bireysel Finans

Page 35: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Waterfall Yazılım Süreci

zaman

GereksinimAnalizi

Tasarım

Milestone(s)

Fazlar

İmplementasyon

Test

Bakım

Ürünün sürümleri

Bu fazlar kısa bir süre için örtüşebilir

Page 36: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Waterfall Neden Pratik Değildir?

1. Sahip olunması istenen bilgilerin hepsi hazır değildirBütün detayları işin başında görmek zordur

2. Gereksinimlerin implementasyon maliyetlerini sadece tahmin edebiliriz Tahminin isabetliliğini anlamak için en riskli olanlarının tasarlanıp,

implemente edilmeleri gerekirBuradan alınan sonuçlara göre gereksinimler değişebilir

3. Sık sık ara sürümler çıkarmak zorunda kalırızPaydaşların (müşteriler, yöneticiler) projeye güvenlerini tazelemek gerekirTasarımcılar ve programcılar geliştirdikleri sistemin istenen sistem

olduğunun konfirmasyonunu beklerler (Bunun yegane yolu: kademe kademe parçaları birleştirerek (iterative ve incremental) yazılım geliştirme ve testtir)

4. Tipik olarak yazılım ekibinin elemanları farklı fazlarda da görev alırlar

Page 37: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Spiral Süreç

Page 38: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Spiral Süreç

zaman

1 Gereksinim

Tasarım

Kodlama

Test

1İterasyon #

1

1

2

2

2

3

3

3

X sürüm 1.0

M I L E S T O N E S

2 3

2 3 1

α(prototype) X

β

Page 39: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Örtüşen Süreç Aşamaları: UP

Page 40: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

RUP’un Gelişimi

İşlevsellik TestiPerformans TestiGereksinim Denet.Değişiklik Denet.İş AkışıVeri TabanıUI

Rational Unified Process 5.01998

Rational Objectory Process 4.11996-1997

Objectory Process 1.0-3.81987-1995

Ericsson Yaklaşımı

Rational Yaklaşımı UML

Page 41: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Süreç Seçim Yaklaşımı Olarak MPP

• Method over Tool:“Herhangi bir yazılım mühendisliği ürününden ziyade

yönteme odaklanmak”• Project over Method:“Herhangi bir yazılım sürecinden ziyade projeye/ürüne

odaklanmak”• People over All:“Herşeyden çok ürünün kullanıcıları ve onu geliştirenler

dahil olmak üzere paydaşlara odaklanmak”

Page 42: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

İçerik

• Yaygın Yazılım Süreçleri• İteratif Yazılım Geliştirme• Unified Process (UP) Yapısı• SPEM Gösterimi ile Yazılım Süreci Tanımlama• Pratik bir UP Yaklaşımı• Yazılım Rolleri ve Kaynak Yönetimi• Proje Hazırlık Çalışmaları

Page 43: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Proje Gelişim Süreci

zaman

Inception Elaboration Construction Transition

• Inception: Projenin sınırlarının belirlenmesi, Verilecek hizmetin berraklaştırılması• Elaboration: Proje planının oluşturulması, ürün özelliklerinin

saptanması, Baseline• Construction: Ürünün oluşturulması• Transition: Kullanıma sunulma

saptama tasarlama oluşturma sunma

GereksinimKontrolü

SistemMimarisi

Kullanılabilirlik ResmiSürüm

Page 44: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Aşamalar ve İterasyonlar

Bir iterasyon planlı olarak gerçekleştirilmiş faaliyetler bütünüdür. Sonucunda başarısı ölçülebilen çalıştırılabilir bir bilgisayar programı oluşur.

ArchIteration

... Dev Iteration

Dev Iteration

... TransIteration

...

Release Release Release Release Release Release Release Release

PrelimIteration

...

Inception Elaboration Construction Transition

Page 45: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

İterasyonlar ve İşler

P re lim in a ry

Ite ra tio n (s )ite r.

# 1

ite r.

# 2

ite r.

# n

ite r.

#n + 1

ite r.

# n +2

ite r.

# m

ite r.

# m +1

Inception Elaboration Construction Transition

Gereksinim

Tasarım

Uygulanma

Test

Analiz

Aşamalar

İşler

İterasyon

Page 46: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

İterasyonlar ve Risk

Risk

Transition

Inception

Elaboration

Construction

PreliminaryIteration

Architect.Iteration

Architect.Iteration

Devel. Iteration

Devel. Iteration

Devel. Iteration

TransitionIteration

TransitionIteration

Post-deployment

Waterfall

Zaman

Proje risklerinin ortaya konması

• Mimarinin revizyonu• Risk-bazlı iterasyonlar• Entegrasyon

• Kullanıma sunma

• Müşteri memnuniyetini ölçme

• Senaryolarla sistemin yapısının ve davranışının oluşturulması

• Sistem Mimarisinin oluşması• Temel mekanizmaların tasarlanması

Page 47: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Risk Azaltma Odaklı İterasyonlar

İlk Proje Riskleriİlk Proje Odağı

Yenilenen Proje Planı• Maliyet• Zamanlama• Odak/İçerik

İterasyon N’in Planı• Maliyet• Zamanlama

Iteration N’in değerlendirilmesi

Giderilen RisklerDiğer Riskler• Yeni öncelikler

Iteration N’in oluşması• Maliyet ve Kalite

ölçümleri

En önemli risklere yönelik senaryoların oluşturulması

Iterasyon N

Page 48: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Use Case Odaklı İterasyonlar

Inception Elaboration Construction Transition

İterasyon1İterasyon2 İterasyon3

İterasyon PlanıGereksinimler

Analiz + TasarımUygulama

Test Release

“Mini-Waterfall” Süreci

Page 49: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

İterasyon Süreci

• Önceki iterasyonların sonuçları

• Güncel Risk Raporu• Model, kod ve test kayıtları

Release raporuYeni Risk RaporuKonfigürasyon Denet.

İterasyon Planı

Gereksinimlerin Sapt.

Analiz + Tasarım

Uygulama

Test

Release

Page 50: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Adapte Olabilen bir Süreç: UP

Murray CantorMurray Cantor

Rational Stratejik Hizmetler Biriminde baş danışman.

Uzmanlık alanları:

• Yazılım Mühendisliği Süreçleri• Sistem Mühendisliği Süreçleri• Yazılım Proje Yönetimi• Liderlik

Software Leadership: A Guide to Successful Software Development

Rational Stratejik Hizmetler Biriminde baş danışman.

Uzmanlık alanları:

• Yazılım Mühendisliği Süreçleri• Sistem Mühendisliği Süreçleri• Yazılım Proje Yönetimi• Liderlik

Software Leadership: A Guide to Successful Software Development

Slaytlar 20 - 28

Page 51: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Eski Müşteri/Yazılım Ekibi İlişkisi

• Gereksinimleri ‘bitir’ kaynak değerlendirmesi yap proje planı yaz taahhüt ver planı uygula proje başarısızlığını gör suçluyu ara sonunda kabul edilebilecek bir çözüm sun (belki)

• Varsayımlar – Gereksinimlerin, proje içeriğinin, kullanılacak teknolojinin

eksiksiz ve gereken detay seviyesinde anlaşıldığını ... – Çok isabetli tahminlerde bulunmanın mümkün olduğunu ...– Detaylı bir planın yapılabileceği ve uygulanabileceği ...

Page 52: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

‘Waterfall’ Yaklaşımının SonuçlarıDetaylı toplantılar yapılıyor /Toplantı

notları yazılıyor

Tasarım uygun gözüküyor.

Detaylı bir spesifikasyon hazırlanıyor.

Gereksinim kapsama yüzdesi (% 100) yüksek.

• Tasarım “suçu ispatlanana kadar

masum.”

Þ Toplantılar ve dokümanlar karmaşık bir yazılım sisteminin gerçek risklerinin çok azına değiniyor.

Þ Elle tutulur bir delil yok.

Þ Yanıltıcı bir güvenlik hissi var.

Þ Pek azı n*(% 10) tasarımı yönlendiriyor.

Þ Gereksinimlerin hepsine nüfuz etme çabası kritik noktaları gözden kaçırıyor.

Þ Her zaman suçlu. Tasarım hatası ileride istemediğimiz bir zamanda ortaya çıkacak.

Sözde Sonuçlar Gerçek Sonuçlar

Page 53: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Pareto KanunuFa

yd

aFa

yd

a

EmekEmek20%20%

80%80%

%20’lik emek faydanın %80’ini sağlar.%20’lik emek faydanın %80’ini sağlar.

Page 54: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Hata Payını En Aza İndirmek Çok Emek İster

• Gereksinimler karmaşıktır– Fonksiyon/Davranış– Sistem tarafı ayrıca karmaşıktır.

• Tam anlamıyla anlamak analiz, deneyler ve neticelerin değerlendirilmesiyle mümkündür.

• Gereksinimlerle Sistem Mimarisinin ilişkilerinin belirlenmesi gerekir.

• Tüm bu emek bahsettiğimiz 80/20 kuralına tabiidir. – Eksiksiz bir bilgiye erişim en iyimser yaklaşımla ekonomik

değildir. Gerçekçi olursak mümkün değildir. – Bilgi proje süresince eksiksizleşir.

Page 55: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

ParadoksYapılacak işi yönetebilmek içim yazılım taahhütlerinin olması gerekli

Taahhütlerin çok detaylı bir şekilde tarif edilmeleri mümkün değil

Çözüm:– Açık bir şekilde ortaklaşa çalışma, müşteriye sonuç göstererek

yönetim ve programcı arasında ahenk oluşturarak çalışmak– İteratif yazılım geliştirme– Elde edilen bilgilerin kademeli olarak zaman içerisinde

eksiksizleşmesi ve detay seviyelerinin artması.

Page 56: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Yazılım Problemi: İki nokta arasındaki en kısa yol

Buradan Buraya

Nasıl gideceğiz?

Buradan Buraya

Nasıl gideceğiz?

Düşündüğümüz GüzergahDüşündüğümüz Güzergah

Projenin ilk Durumu Mevcut ‘malzemeler’, teknolojiler Elemanlar, kabiliyetleri, bilgileri Kaynak eksiklikleri Belirsizlikler

Projenin ilk Durumu Mevcut ‘malzemeler’, teknolojiler Elemanlar, kabiliyetleri, bilgileri Kaynak eksiklikleri Belirsizlikler

Müşteriyi Tatmin Edebilecek Alan Katmadeğer: Kullanıcıya (kullanılabilirlik,

performans, kalite) Maliyet (zaman ve para) Katmadeğer: Yazılım Geliştirici (kar, deneyim,

satış, Pazar payı vs.)

Müşteriyi Tatmin Edebilecek Alan Katmadeğer: Kullanıcıya (kullanılabilirlik,

performans, kalite) Maliyet (zaman ve para) Katmadeğer: Yazılım Geliştirici (kar, deneyim,

satış, Pazar payı vs.)

Page 57: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Gerçek Güzergah

İterasyonlar ve Projenin İlerlemesinin Gözlenebilmesi

Müşteriyi Tatmin Edebilecek Alandaki BelirsizlikMüşteriyi Tatmin Edebilecek Alandaki Belirsizlik

Planlanan İçerik

Planlanan Güzergah

Projenin ilk Durumu

Page 58: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Planlanan GüzergahPlanlanan Güzergah

Gerçek GüzergahGerçek Güzergah

‘Waterfall’ Yönetimi: “Planla ve Takip Et”

Planlanan Proje BitişiPlanlanan Proje Bitişi

Gerçek Proje BitişiGerçek Proje Bitişi

Müşteriyi Tatmin Edebilecek AlanMüşteriyi Tatmin Edebilecek AlanProjenin ilk DurumuProjenin ilk Durumu

Planla ve Takip Et: Projenin tüm aşamalarındaki tüm faaliyetlerin zamanlamasını tahmin et ve bu tahminleri takip et. Gerçek ve Hayal: Bu durum iki farklı planın takip edilmesini gerektiriyor.

Planla ve Takip Et: Projenin tüm aşamalarındaki tüm faaliyetlerin zamanlamasını tahmin et ve bu tahminleri takip et. Gerçek ve Hayal: Bu durum iki farklı planın takip edilmesini gerektiriyor.

Page 59: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Müşteriyi Tatmin Edebilecek AlanMüşteriyi Tatmin Edebilecek AlanProjenin ilk DurumuProjenin ilk Durumu

Planlanan GüzergahPlanlanan Güzergah

İteratif Yaklaşımda Liderlik: “Manevra Yap ve Adapte Ol”

Planlanan Proje BitişiPlanlanan Proje Bitişi

Gerçek GüzergahGerçek Güzergah

Gerçek Proje BitişiGerçek Proje Bitişi

Devamlı olarak :Resmin geneline hakim ol – Proje yönelik istek değişikliklerini değerlendirManevra yap ve adapte ol – İterasyonlar bir dizi ufak sonuç sağladığından projenin tüm istekleri yerine getirmesini sağlamak için kullanılabilir: Hangi yönde manevra yapacağız?

Devamlı olarak :Resmin geneline hakim ol – Proje yönelik istek değişikliklerini değerlendirManevra yap ve adapte ol – İterasyonlar bir dizi ufak sonuç sağladığından projenin tüm istekleri yerine getirmesini sağlamak için kullanılabilir: Hangi yönde manevra yapacağız?

Page 60: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

İçerik

• Yaygın Yazılım Süreçleri• İteratif Yazılım Geliştirme• Unified Process (UP) Yapısı• SPEM Gösterimi ile Yazılım Süreci Tanımlama• Pratik bir UP Yaklaşımı• Yazılım Rolleri ve Kaynak Yönetimi• Proje Hazırlık Çalışmaları

Page 61: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

UP’in 3 Temel Parçası

Use Case’leri tanımla

Use case paketi

Use case

sorumluluğu

Analist

Artifact(Oluşanlar)

Sürecin oluşturduğu, kullandığı veya değiştirdiği bir ürün

Role (Çalışan)

Bir rol Activity (Faaliyet)

Bir iş

Page 62: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Role

• Analistler: İş Analisti, Sistem Analisti, vs.• Yazılım Geliştirenler: Tasarımcı, Programcı,

Kullanıcı Arayüzü Tasarımcısı, vs.• Yöneticiler: Proje Yöneticisi, Süreç Uzmanı, vs.• Diğer: Konu Uzmanları, Denetçiler (Reviewer),

vs.

Page 63: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Activity

Page 64: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Artifact

Page 65: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Unified Process Yapısı

Page 66: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Discipline ve Workflow

Disiplin: Gereksinim Yönetimi

Workflow: Gereksinim Yönetimine ait çalışma şekli detayları

Page 67: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Workflow Details

Page 68: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Daha Fazla Detay “Rol Üzerinden”

Page 69: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Daha Fazla Detay“Yapılacak İş Üzerinden”

Page 70: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Daha Fazla Detay“Üretilenler Üzerinden”

Page 71: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Daha Fazla Detay“Bir Adım Daha İleriye: Şablonlar”

Page 72: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

İş Akışları Modelleri Oluşturur

Page 73: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

“Ürünler ve Kullanım Teknikleri”

Page 74: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Özetlersek

Page 75: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Sorulamayan Soruyu Bulmak“Sorulamayan soruyu bulmak gerçekle hayali birbirinden ayırmamızı sağlar.”

John M. Berry (A.B.D.’li Filozof)

• UP diğer süreç tanımları gibi ‘geleneksel bir model’ değildir.– Varsayımları (Neden’i) açık ve belli.– Çalışma şekillerinin girdisi, çıktısı, kimlerin ne işine yaradığı ve kimler

tarafından oluşturuldukları belli.• Yapılacakları dikte etmez: Ne’nin yanında Nasıl’da vardır.• Ne’lerin neler olacağına UP’un kullanıcısı karar verebilir.• Ne mevcut değilse onu ekleyebilir: UP plug-in’leri.• Ne’sini, Nasıl’ını ve Neden’ini (en küçük yapı taşına kadar) açıkça ortaya koyan

bir sistem soyut ve anlamsız (süreç için süreç) bir kavrama dönüşmez.• UP’u çok ciddi bir hedef olan CMM-I için de daha çok programcı odaklı Extreme

Programming için de kullanabiliriz.

Page 76: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

İçerik

• Yaygın Yazılım Süreçleri• İteratif Yazılım Geliştirme• Unified Process (UP) Yapısı• SPEM Gösterimi ile Yazılım Süreci Tanımlama• Pratik bir UP Yaklaşımı• Yazılım Rolleri ve Kaynak Yönetimi• Proje Hazırlık Çalışmaları

Page 77: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

SPEM“Software Process Engineering Metamodel”

• UML gibi OMG tarafından onaylanmaktadır. Açık bir standarttır.

• Bitmiş bir standart değildir. Ufak değişmeler (gelişmeler) söz konusu olacaktır.

• Tamamıyla Unified Process üzerine oturur.• Biz, örneklerimizde, kabaca kullanacağız.

Page 78: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

SPEM Gösterimi“Disiplinler”

XXX

Page 79: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

SPEM Gösterimi“Roller”

Page 80: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

SPEM Gösterimi“Yapılanlar”

Page 81: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

SPEM Gösterimi“Üretilenler”

Page 82: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

SPEM Gösterimi“Roller, Yapılanlar ve Üretilenler”

Page 83: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

İçerik

• Yaygın Yazılım Süreçleri• İteratif Yazılım Geliştirme• Unified Process (UP) Yapısı• SPEM Gösterimi ile Yazılım Süreci Tanımlama• Pratik bir UP Yaklaşımı• Yazılım Rolleri ve Kaynak Yönetimi• Proje Hazırlık Çalışmaları

Page 84: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Süreç Haritası

Page 85: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Süreç Haritası“Çevik Süreç Tanımları”

Page 86: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Süreç Haritası“CMMI”

Page 87: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Süreç Haritası“Unified Process”

Page 88: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

UP Uyarlamaları

Page 89: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Gereksinim Yönetimi“Standart UP”

Page 90: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Analiz ve Tasarım “Standart UP”

Page 91: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

İmplementasyon “Standart UP”

Page 92: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Bizim UP Sürecine Yaklaşımız

Page 93: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Proje Süresince Roller• Bir kişi birden fazla rolü canlandırabilir.• Aynı kişinin canlandırdığı rollerin çıkarları bir çelişki

oluşturmamalıdır.• Bütçe ve Eleman sayımızı gözeterek ve en verimli

süreç tanımını hedefleyerek,• Aşağıdaki gibi bir kadroyla yola çıkarsak,

– Ahmet Bey: Birincil görevi Sistem Analizi– Leyla Hanım: Birincil görevi Tasarım– Mehmet Bey: Birincil görevi Veritabanı Tasarımı – Hülya Hanım: Birincil görevi Proje Yönetimi

Page 94: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

1. Gereksinimler

Page 95: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

2. Analiz

ve Tasarım

Page 96: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

3. İmplementasyon

Page 97: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

4. Test

Page 98: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Proje Yönetimi

Page 99: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Süreç Mühendisliği

Page 100: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

İçerik

• Yaygın Yazılım Süreçleri• İteratif Yazılım Geliştirme• Unified Process (UP) Yapısı• SPEM Gösterimi ile Yazılım Süreci Tanımlama• Pratik bir UP Yaklaşımı• Yazılım Rolleri ve Kaynak Yönetimi• Proje Hazırlık Çalışmaları

Page 101: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

İdeal Proje Ekibi

Page 102: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

BizimProje

Ekibimiz

BizimProje

Ekibimiz

Page 103: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Ahmet = Sistem Analisti

Page 104: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Ahmet = UI Tasarımcısı

Page 105: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Ahmet = Testçi

Page 106: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Leyla = Sistem Mimarı

Page 107: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Leyla = Tasarımcı

Page 108: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Leyla = Programcı

Page 109: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Mehmet = Veritabanı Tasarımcısı

Page 110: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Hülya = Proje Yöneticisi

Page 111: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Hülya = Süreç Uzmanı

Page 112: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

İçerik

• Yaygın Yazılım Süreçleri• İteratif Yazılım Geliştirme• Unified Process (UP) Yapısı• SPEM Gösterimi ile Yazılım Süreci Tanımlama• Pratik bir UP Yaklaşımı• Yazılım Rolleri ve Kaynak Yönetimi• Proje Hazırlık Çalışmaları

Page 113: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Proje Hazırlık Çalışmaları“Tanımlamalar”

• Paydaş Türleri• Gereksinim Türleri• Gereksinim Değişkenleri• Kısıtlama Türleri• Risk Türleri• Metrik Türleri• Emek Türleri• Bakım Türleri• Test Türleri• UML Standardına Ekleriniz, vs. vs.

Page 114: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

1a. Paydaşlar“Kullanıcılar”

Page 115: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

1b. Paydaşlar“Proje Ekibi Adayları”

Page 116: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

1c. Paydaşlar“Proje Ekibi”

Page 117: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

2a. Gereksinim Türleri

Page 118: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

2b. Gereksinim Türleri

Page 119: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

2c. Gereksinim DeğişkenleriÖrnek: “Statü”

Page 120: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

3. Kısıtlama Türleri

Page 121: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

4. Risk Türleri

Page 122: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

5. Metrik Türleri

Page 123: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

6. Emek Türleri

Page 124: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

7. Bakım“Problem Türleri”

Page 125: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

8. Test

Page 126: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

9. UML Kapsamına Ekler“Size Özel Stereotype”

Page 127: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

İlham Kaynakları

James Bach

Watts Humphrey

Philippe Kruchten

Murray Cantor

James Rumbaugh Grady Booch

Terry Quatrani

Ivar Jacobson

Sizin Adınız

?

Page 128: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Analize Giriş

Bölüm 4 / 4

Page 129: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Neredeyiz?

Page 130: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

İçerik

Page 131: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

İçerik

• Proje Başarısızlığı Nedenleri• Gereksinim Yönetimi Kavramları• Gereksinim Yönetimi Teknikleri• Problem Analizi Teknikleri• Gereksinim Türleri• Gereksinim Dokümanları• Önceliklendirme ve Takip Edilebilirlik

Page 132: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Proje Başarısızlığı Nedenleri

• En yaygın nedenler:– Kullanıcı fikirlerinin alınmaması (% 13)– Eksik gereksinimler (% 12)– Değişen gereksinimler (% 12)

• Dolayısıyla projelerin üçte biri gereksinimlerle ilgili nedenlerden başarısız oluyor

Page 133: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Proje Başarısı Nedenleri

• En yaygın nedenler :– Kullanıcı fikirlerinin alınması (% 16)– Üst yönetim desteği (% 14)– Gereksinimlerin açık olması (% 12)

Page 134: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Gereksinim Hataları

• Müşteriye taşınan hataların yaklaşık olarak üçte biri gereksinim hatalarıdır

• Gereksinim hataları bulundukları anda giderilmezlerse ilerideki düzeltilme maliyetleri 10 ila 100 katına çıkabilir

• İyi proje takımları hataları tespit edildikleri anda tahlil ederler

Page 135: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Gereksinim Yönetimi

• Öyleyse gereksinimleri denetlemeye ihtiyacımız var: – Gereksinimleri bulmak, organize etmek ve

dokümante etmek için bir sistem gerekli – Gereksinim değişikliklerini yöneterek müşteri ve

proje ekibinin anlaşmalarını sağlayabilmek için bir süreç gerekli

• Bu kavramlara Gereksinim Yönetimi diyoruz

Page 136: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

İçerik

• Proje Başarısızlığı Nedenleri• Gereksinim Yönetimi Kavramları• Gereksinim Yönetimi Teknikleri• Problem Analizi Teknikleri• Gereksinim Türleri• Gereksinim Dokümanları• Önceliklendirme ve Takip Edilebilirlik

Page 137: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Gereksinim Nedir?

• Gereksinimleri tanımlayabilmek için onları gereksinim gibi algılanabilecek diğer bilgi türlerin ayrıştırabilmemiz gerekir

• Bir ihtiyaç (need) bir sistemi kullanan müşterinin işini yapabilmesi için gereken, sistemin sahip olmak zorunda olduğu bir özelliktir

Page 138: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Gereksinim Nedir?

• İşlev (feature) sistemin yerine getirmeyi taahhüt ettiği bir hizmettir

• Gereksinim (requirement) sistemin karakteristik bir özelliğidir

• Gerçekleştirme (realization) gereksinimlerin uygulanma şeklidir

Bir işlevden bir veya daha fazla gereksinim türetilebilir

Page 139: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Detay Seviyeleri

İhtiyaç

İşlev

Gereksinim

Gerçekleştirme

Müşterinin probleminin tanımı

Çözümün tanımı

Daha detaylı

Çözümün gerçekleştirilmesi

Page 140: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Gereksinim Nedir?

• Fırsat (opportunity) yeni bir işlev, yeni bir müşteri tipi veya ürüne eklenen yeni bir özellik olabilir

• Problem müşterinin işini yaparken karşılaştığı bir zorluktur

• Kısıtlama (constraint) oluşturulacak sistemin uymak zorunda olduğu bazı sınırlardır

Page 141: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Acaba Bu Bir Gereksinim Mi?

• Yoksa eksik bilgiyle tasarımıma mı başladık?• Gerçekte ihtiyaç duyulmayan gereksinimlere

ve aslında mevcut olmayan kısıtlara dikkat ediniz

• Yoksa birisi problemden ziyade çözümü mü tanımlamaya başladı?

• Bir gereksinim olmak için çok mu genel?

Page 142: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Öncelik• Gereksinimin önceliği veya aciliyeti nedir?

– Yüksek, Orta, Düşük– Zaruri, İstenen, Seçeneğe Tabii – Mutlaka olmalı, Olması arzulanan, Olsa iyi olacak olan– Gündelik terminolojide ‘olacak’, ‘olsa iyi olur’, ‘olmayabilir’

• Gereksinimlerin önem nedenleri nedir?– Sistem Mimarisine etki,– Teknolojik yenilik nedeniyle bir risk,– Zorluk nedeniyle bir risk,– Vs. vs.

Page 143: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Paydaş (Stakeholder)

• Müşteriden fikri değerli yegane grupmuş gibi bahsedebiliyoruz ama projeye yönelik çelişen düşüncelere sahip pek çok grup insan olabilir (paydaş)

Page 144: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Paydaş Türü Örnekleri

• Sponsor• İş Analisti, Sistem analisti, Tasarımcı, Programcı,

Veritabanı Analisti, vs.• Konu Uzmanları• Kullanıcı• Yöneticiler• Admin.’ler• Süreç Uzmanları, Kalite Sorumluları, vs.• 3rd Party

Page 145: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Paydaşların Çelişen İstekleri

• Bu paydaşların hepsinin farklı ve birbirleriyle çelişen istekleri olabilir

• Başarılı bir projenin sağlaması gereken en önemli şeylerden biri bu isteklerin sahipleri arasında bir mutabakat sağlamaktır

• Mutabakat farklı çıkarlara sahip rollerin çıkarlarını olabildiğince korumalarıyla mümkündür

Page 146: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Yazılım Ekibi

• Yazılım geliştirme sürecine iştirak eden herkes gereksinim yönetimi çalışmalarından farklı şekillerde etkilenirler

• Problem çoğu yazılımcının teknik odaklarından dolayı insan ilişkilerinde çok başarılı olmayışlarıdır

• Öte yandan modern sistemlerin karmaşıklıkları insan ilişkisini zaruri kılmaktadır

Page 147: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

İçerik

• Proje Başarısızlığı Nedenleri• Gereksinim Yönetimi Kavramları• Gereksinim Yönetimi Teknikleri• Problem Analizi Teknikleri• Gereksinim Türleri• Gereksinim Dokümanları• Önceliklendirme ve Takip Edilebilirlik

Page 148: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Altı Ekip Yeteneği

1. Problem analizi2. Müşteri ihtiyaçlarını anlama3. Sistemi tanımlama4. Sistem kapsamını yönetme5. Sistem tanımının revize edilmesi6. Doğru sistemin geliştirilmesi

Page 149: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

1. Problemi analizi

Bu konuya ileride, daha sonra değineceğiz.

Page 150: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

2. Müşteri ihtiyaçlarını anlama

• En üst seviyedeki gereksinimler olası çözümün tanımlanmasından çıkar

• Müşteriden bu gereksinimleri alabilmek için hangi teknikleri kullanacağımıza nasıl karar vereceğiz?

• Tıpkı bir marangoz gibi iş için gereken alet edavatı kolayca tespit edebilmek

Page 151: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

3. Sistemi tanımlama

• Bir dizi gereksinimi nasıl organize edecek ve oluşturulacak sistemin açık bir resmini görebileceğiz?

• Alakalı ürünler arasındaki ortak gereksinimler nasıl ilişkilendirilecekler?

• Ürünün vizyonunun dejenere olmaması için onu detay gereksinimlerden nasıl ayrıştıracağız?

Page 152: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

4. Sistem kapsamını yönetme

• Gereksinimler nadiren statiktir. Üç yaşındaki çocukların ilgi alanı gibi her an değişirler

• Ürünün kapsamının kontrolden çıkmasını nasıl sağlayacağız?

• Yapılması gerekenleri geciktirirsek kapsamı nasıl kontrol edebiliriz?

Page 153: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

5. Sistemin tanımının revizyonu

• Yazılım ekibinin işini yapmaya kalkışmadan onlar için gerekli detay seviyesindeki gereksinimleri nasıl oluşturabiliriz?

• Detaylı gereksinimler vizyondan kopmamalı ve sadece her küçük problem parçasının çözülebilir olmasını sağlamalı

Page 154: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

6. Doğru sistemin geliştirilmesi

• Tasarımın gereksinimleri yerine getirdiğini nasıl anlayacağız?

• Tasarımın müşteri isteklerine uygunluğundan nasıl emin olacağız?

• Gereksinim değişikliklerini nasıl kontrol altına alacağız?

Page 155: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

İçerik

• Proje Başarısızlığı Nedenleri• Gereksinim Yönetimi Kavramları• Gereksinim Yönetimi Teknikleri• Problem Analizi Teknikleri• Gereksinim Türleri• Gereksinim Dokümanları• Önceliklendirme ve Takip Edilebilirlik

Page 156: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Problemler ve Fırsatlar

• Sistemlerin en önemli iki nedeni:1. Problem çözmek; mevcut sistem müşteri

ihtiyaçlarını karşılamıyor demek 2. Fırsatları değerlendirmek; yeni ürün düşünceleri,

yeni işlevler, yeni pazarlar vs. • Biz problem çözmeye odaklanacağız

Page 157: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Problem Analizi Aşamaları

• Problem beş aşamada tahlil edilebilir:1. Problem tanımı üzerinde anlaşmak2. Problemin temel nedenlerini anlamak3. Paydaş ve kullanıcıları tespit etmek 4. Sistemin sınırlarını tespit etmek5. Çözümü sınırlandıracak olan kısıtları bulmak

Page 158: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

1Problem tanımı üzerinde anlaşmak

• Problem tanımı içeriği: – Problemi tarif ediniz – Etkilenen paydaşları belirtiniz – Problemin paydaşlar ve yaptıkları işler üzerindeki

etkilerini belirtiniz – Önerilen çözümü ve sağlayacağı faydaları ifade

ediniz • Kısaca, neden bu problemi çözmek için

vaktimizi harcamalıyız?

Page 159: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

2Problemin nedenlerini anlamak

• Problemin mevcudiyetinden emin olunca bir çözüm oluşturmamız gerekiyor:

• Bir yol “temel neden” veya “nedensellik analizi”dir. Böylece problemin mevcudiyet nedenini anlayabiliriz

• Bunun için ‘kılçık şeması’ (fishbone) çizebiliriz– Düz bir çizgi çekerek problemi yazınız– Sonra problem nedenlerini yazınız– Daha sonra problem nedenlerinin nedenlerini yazınız– Tekrar ediniz

Page 160: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

2Problemin nedenlerini anlamak

• ‘Akıl haritası’ (mindmap) çizebiliriz12 m.

Boeing Uçak A.H.

Page 161: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

3Paydaşları ve kullanıcıları tespit

• Sistemi kullanacak ve mevcudiyetinden etkilenecek kişileri tespit edin

• Çoğu paydaş kullanıcıdır ama diğerleri değillerdir

Page 162: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

4-5Sistemin sınırlarını tespit

• En basit tanımıyla her sistem bazı girdiler alır ve bazı çıktılar üretir

• Püf noktası bu girdi ve çıktıları kimin veya neyin üretip tükettiğidir

SystemInputs Outputs

Page 163: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

4-5Sistemin sınırlarını tespit

• Neler sistemin kapsamındadır?– Paydaşların yerine kendimizi koyarsak,– Kullanıcıların yerine kendimizi koyarsak,– Yazılım ekibinin yerine kendimizi koyarsak,

• Dış sistemler hangileridir?– Bağımlı olduklarımız,– Bizim sistemimize bağımlı olanlar

Page 164: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

4-5Sistemin sınırlarını tespit

• Sistem üzerine adı yazılı bir kutu ile gösterilir• Aktörler çöpten adamlardır• Dış sistemler ya adı üzerine yazılı bir kutu ya da daha yaygın olarak birer

aktör olarak gösterilirler• İlişki çizgilerinin yönü veri akış yönünü gösterir

StockTrackingSystemEnd User

StockExchanges

Page 165: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

İçerik

• Proje Başarısızlığı Nedenleri• Gereksinim Yönetimi Kavramları• Gereksinim Yönetimi Teknikleri• Problem Analizi Teknikleri• Gereksinim Türleri• Gereksinim Dokümanları• Önceliklendirme ve Takip Edilebilirlik

Page 166: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Paydaş ve Kullanıcı İhtiyaçları“Stakeholder Requests”

• Gereksinimlerin bulunabilmeleri için yazılım ekibi dikkatli olmalıdır– Gereksinimleri açığa çıkarabilecek kavramları

değerlendiriniz – “Bunu bir gereksinim olarak eklemek ister misiniz”

diye sorunuz ve bahsedilen düşüncenin önemini saptayınız

• Çalışmalarınıza müşteri ihtiyaçlarını tespit ederek başlayınız

Page 167: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Paydaş ve Kullanıcı İhtiyaçları“Stakeholder Requests”

• En üst seviyedeki bilgi türümüz olan ihtiyaçlarla problem tahliline başlayabiliriz

• Genellikle ihtiyaçlar sistemin çözmesi beklenen temel bir problemle ifade edilirler (bu problemi nelerin ortadan kaldıracağıyla)

• Bazı kullanıcılar işlevlere değinebilirler – ihtiyaçların nasıl yerine getirilebilecekleri

Page 168: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

İşlevler“Features”

• İşlevler müşteri ihtiyaçlarının hangi ürün kabiliyetlerine karşılık geleceğini ifade ederler – İşlev sistemin bir ihtiyacı gidermek için sunduğu bir

hizmettir• İşlevin faydası onun altında yatan ihtiyaçlara bakıldığında

kendisini gösterir • Bir ihtiyaç sisteme değinmez; bunu bir işlev yapar

Örneğin, Evden okula kayıt olabilmek istiyorum (ihtiyaç) -> Sistemin

internet erişimi olmalıdır (işlev)

Page 169: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Hangisi Hangisi?

• Kullanıcı görüşmesinde ihtiyaç ve işlev ayrımını hemen yapmak gerekmez

• Daha sonra edinilen bilgilerin düzenlenmesinde yardımcı olur (brainstorming)

• İşlev örneği arıyorsanız, yazılım ürünü reklamlarına bakınız!

Page 170: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

İhtiyaç ve İşlev Sayıları

• İhtiyaçlar genellikle azdır – 10 veya daha az• İşlevler sistemin büyüklüğüne göre genellikle

25-100 arasında değişirler • Sistem kapsamı toplantıları için işlevler

kullanılırlar

Page 171: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

İşlevler ve Gereksinimler

• İşlevlerin (feature) detayları ortaya dökülmeye başlandığında gereksinimler (requirement) ortaya çıkmaya başlarlar

• İşlev aşamasında geçici öncelikler verilebilir• İşlevleri ileride kolayca yönetebilmek için

açıklamalarını yazınız

Page 172: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

İşlev/Gereksinim Değişkenleri (Attribute)

• İşlevleri yönetebilmek için kullanılan tipik değişkenler:– Statü, {önerildi, onaylandı, reddedildi}– Öncelik, {yüksek, orta, düşük}– Emek, {yüksek, orta, düşük}– Risk, {yüksek, orta, düşük}

Page 173: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

İşlev/Gereksinim Değişkenleri (Attribute)

– Değişebilirlik (Stability), işlevin ve ileride implementasyonunun değişme olasılığı / derecesi

– Hedeflenen sürüm, Bu işlev hangi sürümde hazır olacak?

– Görevli, Bu işlevle ilgili atama kime yapıldı? Aşamasına göre farklı kişiler olabilir (gereksinim, analiz vs.)

– Neden veya Kaynak – Bu işlevin kaynağı nedir?

Page 174: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

İşlevler ve Gereksinimler

Üst seviye gereksinimler: İşlevler“features”

Fonksiyonel gereksinimler“functional requirements”

Fonksiyonel olmayan gereksinimler“supplementary requirements”

Page 175: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Gereksinim Grupları

Page 176: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

İçerik

• Proje Başarısızlığı Nedenleri• Gereksinim Yönetimi Kavramları• Gereksinim Yönetimi Teknikleri• Problem Analizi Teknikleri• Gereksinim Türleri• Gereksinim Dokümanları• Önceliklendirme ve Takip Edilebilirlik

Page 177: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Senaryo Odaklı Gereksinim YönetimiSenaryo Odaklı Gereksinim Yönetimi

Use-Case Modeli Ek GereksinimlerEk Gereksinimler

İşlevler

Gereksinimler

Vizyon DokümanıVizyon Dokümanı

İhtiyaçlar

GelenekselSRS

GelenekselSRS

=

Senaryo Odaklı Yol Geleneksel Yol

Geleneksel Software Requirements Specification (SRS) dokümanı Use Case Modeli ve Ek Gereksinimler Dokümanına (Supplementary Requirements) karşılık gelmektedir.

+

Page 178: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Gereksinim Ürünleri (Artifact)

Ek Gereksinimler(SupplementarySpecification)

Proje Sözlüğü(Glossary)

Use-Case Dokümanları

...

Use Case Modeli

AktörlerUse Case’ler

Page 179: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

İlgili Roller

• Hazırlayan: İş Analisti, Sistem Analisti• Faydalanan: Tasarımcı, Kullanıcı Arayüzü

Tasarımcısı, Ürün Kullanım Kılavuzu Yazarı, Veritabanı Tasarımcısı

• Yardımcı: Müşteri, Müşteri Temsilcisi, Konu Uzmanı

Page 180: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Gereksinim Ürünleri (Artifact)

Use Case Şemaları

Page 181: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Gereksinim Ürünleri (Artifact)

Page 182: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

[1]Vizyon

• Ürününüzün ilgili olduğu işi aklayan ve gerekli kabiliyetlerini ortaya koyan genel bir dokümandır

• Ne yapmak istiyorsunuz ve o iş neden yapılmaya değer?

• Vizyon dokümanı içeriği: – Giriş: ürününüzün karşılık olduğu temel ihtiyaçlara

değininiz

Page 183: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Vizyon

– Konumlandırma (Positioning): hitap ettiğiniz pazarın sizin açınızdan problemli yanlarını,

hedef kitlenizi ve rakiplerinizin ürünlerinin kabiliyetlerini (ne yapıp ne yapamadıkları) yazınız.

– Paydaş Tanımları: paydaşların demografik yapısını, ürününüzü kullanmak için

gereken kabiliyet seviyesini, paydaşlarınızın hedefleri ve yaşadıkları sorunları belirtiniz. Her paydaş türüne bir temsilci atayarak irtibat bilgilerini sağlayınız.

Page 184: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Vizyon

– Ürün işlevleri listesi: ürünün sağlaması gereken temel işlevleri ve

bunların paydaşlara ne fayda sağlayacağını birer ikişer cümle ile yazınız

Page 185: Analist Eğitimi - Tüm Bölümler -  [535 Slides]
Page 186: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Vizyon - Amaç

Page 187: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Vizyon – İş Fırsatı

Page 188: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Vizyon – Problem Tanımı

Page 189: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Vizyon - Paydaşlar

Page 190: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Paydaş Detayları

Page 191: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

İşlevler

Page 192: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Gereksinim Ürünleri (Artifact)

Page 193: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

[2]Use Case Dokümantasyonu

• Monolog değil Dialog olmalı.• Aktörleri ile Use Case arasındaki etkileşimleri

içermeli.• Müşteri ile Tasarımcılar, Veritabanı

Tasarımcıları ve Arayüz Tasarımcıları arasındaki köprü olmalı.

Page 194: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Use Case: Olayların Akışı• Bir tane olağan, en tipik akış: Temel Akış (“Happy

Path”)

• Birden fazla Alternatif Akış:– Başarılı alternatif akışlar– Başarısız Akışlar hata durumlarını tolere etmeye

yarar

“Happy Path”

Page 195: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Senaryo Nedir?Bir senaryo use case’in içerdiği akışların bir kombinasyonunun başlayıp

bitişidir: Use Case Instance.

Page 196: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Senaryolar

• Use Case akışlarının bir kombinasyonudur (use case instance)

• Bir senaryonun beklenen (başarılı) bir neticesi olabilir– Müşteri kitaplarını satın aldı

• Veya başarısız bir neticesi olabilir– Müşterinin kredi kartı kabul edilmedi

Page 197: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Senaryolar

• Her use case’in odağı başarılı Temel Akışı’dır• Ancak pek çok başarılı ve başarısız Alternatif

Akış olabilir– Alternatif senaryolar akış esnasında neler

olabileceğini tespit yollarıdır. Örneğin, farklı şekillerde ödeme, bir transaction’ın bitirilememesi gibi

Page 198: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Use Case Dokümanı Formatı

• Tek-sütun formatında her paragraf aktör veya sistemin bir faaliyetini anlatır. Daha yaygın bir kullanımdır.

• İki-sütun formatında sol sütun aktöre sağ sütun sisteme aittir ve faaliyetleri ona göre yer alırlar. Faydası dialoğun zigzag yapısını daha iyi göstermesidir.

Page 199: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Use Case DokümanıGelişim Süreci

Bulunma Tanımlanma

Konu Başlıkları + Kısa Tanımlar

Temel Akış Detaylanır Tüm Akışlar Detaylanır

Page 200: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Use Case Dokümanı İçeriği

• Dokümanın mutlaka içermesi gerekenler ‘*’ işaretlenmiştir.– Temel Aktör*– Paydaşlar ve UC’le ilgileri– Precondition*– Postcondition*– Temel Akış*– Alternatif Akışlar*

Page 201: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

1. Use Case Tanımı

– İlişkili Use Case’ler– Ek Gereksinimler– İş Kuralları– Kullanım Yoğunluğu– Açık Konular

Page 202: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

2. Temel Aktör

• Bir use case için temel aktör o UC’i kendine bir fayda sağlamak için çalıştıran aktördür.

• Dolayısıyla bu aktör UC’i için bir tetik mekanizmasıdır.

• Temel Aktör genellikle insandır. Ancak bazen sistemler otomatik olarak dış sistemlere erişirler.

Page 203: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

3. Paydaşlar ve UC ile İlgileri

• Bu bölümde use case’in akışında bir parçası olan tüm aktörler ve kendilerine sağladıkları faydalar belirtilmelidir

• Genellikle aktör başına bir iki cümle kafidir

Page 204: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

4. Temel Akış• Herşeyin yolunda gittiği varsayılarak use case akışının adım

adım ve aktörle sistem arasındaki dialoğu işaret edecek şekilde yazılmasıdır.

• Bu akış iş kurallarını, üretilecek ve tüketilecek veri yapılarını ve yapılacak kontrolleri içerir.

• Bu akış use case’in beklenen kullanım şeklini ifade eder.• Bütün adımlar aktör’ün perspektifiyle yazılır. Yalnızca onun

gördükleri ve yaptıkları ile sistemin bu davranışlara reaksiyonlarını içerir.

Page 205: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

5. Alternatif Akışlar

• Temel akışın izlediği yolu değiştirebilecek koşulları ve bu durumlarda kullanılacak yeni akışları ifade eder

• Bu başarısızlık durumlarını içerdiği gibi (kredi kartının reddedilmesi), farklı seçeneklerin izlediği yolları da içerir (çekle, kredi kartıyla veya paypal’le ödeme)

Page 206: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

5. Alternatif Akışlar

• Alternatif akışlar geçerli oldukları temel akış adımında yanlarına harf konarak işaretlenirler

• Temel Akış 3. Kasiyer ürün numarasını girer

• Alternatif Akış 3a. Geçersiz numara

• Daha sonra da alternatif akış adımları yazılır

Page 207: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

5. Alternatif Akışlar

• Dolayısıyla alternatif akışların iki parçası olur:• Nedeni: Başlığı • Akışı: Kendine özel akışı• Nedeni: 3a. Geçersiz ürün numarası

Akışı: 1. Sistem bir hata mesajı vererek ürünün

girilmesini engeller.

Page 208: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

6. Precondition

• Use Case’in çalışabilmesi için sistemin sahip olması gereken durumu ifade ederler

• Bu liste temel aktörün o ana kadar yaptıklarını ve yapmadıklarını, şu andaki use case’e yönelmesine yol açan eylemleri içerebilir

Page 209: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

7. Postcondition

• Use case’in akışının tamamlanmasının sonucunda sahip olunması gereken durumları ifade eder

• Bu da precondition gibi temel akış referanslı bir listedir. Herşey yolunda giderse use case akışı sonunda elimize ne geçecek?

Page 210: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

8. Ek Gereksinimler

• Fonksiyonel olmayan gereksinimler veya use case’e özel kısıtlamalar olabilir– Performans, Güvenilirlik, Kullanılabilirlik ve

Tasarım Kısıtlamaları bu bölümde belirtilebilir• Use Case’e özel olmayan bu tür gereksinimler

Ek Gereksinimler (Supplementary Specification) dokümanında yer alır

Page 211: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

9. İş Kuralları

• Use Case akışı esnasında uyulması gereken işe özel kuralları ve yapılması gereken kontrolleri gösterir.

• Genellikle use case’e özel değil, proje genelinde bir doküman olarak oluşturulur.

Page 212: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

10. Kullanım Yoğunluğu

• Use Case’in kullanım yoğunluğunun belirtildiği bölümdür:– Günde 1000 defa mı?– Ayda 1 defa mı?

• Use Case öncelikleri hakkında fikir verdiğinden tasarıma yardımcı olur

Page 213: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

11. Açık Konular

• Bu kısımda emin olmadığımız varsayımları, muhtemel teknoloji değişikliklerini ve bunlar gibi kesinleşmemiş konuların unutulmamalarını sağlayabiliriz.

• Kesinleşmemiş hukuki, iş akışı ve interface konularını da burada belirtebiliriz.

Page 214: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Bid on Item - Use Case Dokümanı

İnternette Açık Artırma

Page 215: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

UC Dokümanı - Tanım

Page 216: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

UC Dokümanı - Akış

Page 217: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

UC Dokümanı – Geriye Kalan

Page 218: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Gereksinim Ürünleri (Artifact)

Page 219: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

[3]Ek Gereksinimler: FURPS+ Modeli

• Ek Gereksinimlerin kapsamı:• Fonksiyonel (Functional)• Kullanılabilirlik (Usability)• Güvenilirlik (Reliability)• Performans • Bakım (Supportability)• + = geriye kalan herşey

Page 220: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Fonksiyonel

• Tüm sisteme yönelik fonksiyonel gereksinimler. • UC odaklı olmayan yazılım geliştirme

yöntemlerini kullananlar için.• Fonksiyonel gereksinimlerin tamamı aslında

UML yaklaşımında UC Modeliyle kapsanıyor.

Page 221: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Kullanılabilirlik (Usability)

• Kullanılabilirlik:– İnsan faktörü; sisteminizi kullanmak nasıl

hoşnutluk verici olabilir? – Help; Kullanıcıya hangi help imkanı sağlanacaktır?

F1? Context sensitive? Online kullanım kılavuzu?– Dokümantasyon; Kullanıcıları eğitmek için ne tür

dokümantasyon üretilecektir?

Page 222: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Güvenilirlik (Reliability)

• Güvenilirlik ölçüm şekilleri: – Mean Time Between Failures (MTBF); İki sistem

göçmesi arasında geçen zaman – Mean Time To Repair (MTTR); Sistem göçtüğünde

çalışır hale getirilmesi için gereken zaman (Bu ‘bakım’ başlığı altında da olabilir)

– Sistemin kullanılabilir durumunu koruması (Availability) ‘performans’ başlığı altında yer alır

Page 223: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Performans

• Çoğu performans kriteri gereksinime dönüşür– Sorgu cevaplama süresi (ortalama, maksimum)– Throughput (Saat veya gün başına işlenen kayıt

sayısı, transactions per second (TPS))– Accuracy (scan veya veri giriş doğrululuğu)– Kaynak kullanımı (CPU, HDD kullanımı, network

trafiği)

Page 224: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Bakım (Supportability)

• İçeriği:– Bakım prosedürünü içerir. Sorunlar için kılavuz mu

sunacaksınız? – Sistemin bakımını yapmak ne kadar kolay? Yazılımı

ve Donanımı birlikte düşününüz. – Internationalization; sisteminiz farklı dillerde

kullanılabilecek mi?– Sisteminizin konfigürasyonu kolayca değiştirilebilir

mi?

Page 225: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

“+”

• İçeriği:– İmplementasyon – Interface– Operasyonel– Paketleme– Kanuni konular– Ve aklınıza ne gelirse!

Page 226: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

“+” - İmplementasyon

• İmplementasyon üzerindeki sınırlamaları ifade eder:– Kaynak sınırlamaları (maliyet, zamanlama,

eleman)– Dil ve ürünler (kullanılacak programlama ortamı)– Donanım (Dell)– Yazılım (MySQL)– Kullanıcı PC özellikleri (PIII 1000 MHz, 128 MB

RAM, Windows ME)

Page 227: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

“+” - Interface

• Interface gereksinimleri dış sistemlerle haberleşme amaçlıdır: – Kurumuzdaki eski sistemler– Bileşenlerini satan şirketler– Başka proje ekipleri– Dış kurumlar (İMKB vs.)

Page 228: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

“+” - Operasyonel

• Sisteminiz kullanım halindeyken yönetilebilmelidir

• Yöneticilere gereken kabiliyetler?– Kullanıcı ekleme– Kullanıcı erişim haklarını değiştirme– Kaynak kullanımını izleme (CPU, disk, network)– Fiziki ortamı izleme (ısı, nemlilik)

Page 229: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

“+” - Paketleme

• Ürününüz nasıl paketlenecek?– Medya? CD-ROM? DVD?– Hangi dokümanlar basılacak? Hangileri elektronik

ortamdan sağlanacak?– Kullanıcılar için help desk kimlerden oluşacak?– Farklı ülkelere özel çalışmalar yapılacak mı?

Page 230: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

“+” - Kanuni

• Ürününüz nasıl lisanslanacak?– Kullanıcı başına? Şirket başına?– PC başına?– CPU başına?

• Ürününüzün farklı versiyonları var mı? (akademik, profesyonel)

• Ürününüzün satılamayacağı yerler var mı? (ihracat kısıtlamaları)

Page 231: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

FURPS + ve UML

Page 232: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Gereksinim Ürünleri (Artifact)

Page 233: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

[4]Sözlük (Glossary)

• Proje terimlerini içerir:– Terim 1, Terim 2, … Terim N

• Kısaltmaları ve use case dokümanlarında ifade edilseler çok yer kaplayarak okunmayı zorlaştıracak veri yapısı tanımlarını içerir

• Tanımlar dokümanda olabilir veya başka bir dokümanı refere edebilir

• Sözlük hyperlink’ler içerebilir

Page 234: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

İçerik

• Proje Başarısızlığı Nedenleri• Gereksinim Yönetimi Kavramları• Gereksinim Yönetimi Teknikleri• Problem Analizi Teknikleri• Gereksinim Türleri• Gereksinim Dokümanları• Önceliklendirme ve Takip Edilebilirlik

Page 235: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Gereksinimleri Önceliklendirme

• Tüm gereksinimler (özellikle use case modelindeki fonksiyonel gereksinimler) için öncelikler belirlemeli ve ona göre zaman planı yapmalıyız.

• Önceliklendirme gereksinim değişkenleri kullanılarak yapılmalıdır:– {Tür: Zaruri, İstenen, Seçeneğe Tabii}– {Sistem Mimarisine Etki: Var, Yok}– {Emek: Zor, Orta, Kolay}– Vs. vs.

Page 236: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Gereksinimlerin Takip Edilebilirliği

Page 237: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Önceliklendirme ve Takip Edilebilirlik Kriterleri

Page 238: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Önceliklendirme ve Takip Edilebilirlik Kriterleri

veya

Page 239: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Gereksinim Yönetimi Planı 1“Vizyon Kapsamında”

Page 240: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Gereksinim Yönetimi Planı 2“Vizyon Kapsamında”

Page 241: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Gereksinim Yönetimi Planı 3“Vizyon Kapsamında”

Page 242: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Gereksinim Yönetimi Planı 4“Vizyon Kapsamında”

Page 243: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Gereksinim Yönetimi PlanıRequirements Management Plan Configuration Management Plan

Page 244: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

1. İterasyonların Belirlenmesiİnternet’te Açık Artırma Sistemi

Page 245: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

2. İterasyonların Belirlenmesi

Page 246: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

3. İterasyonların BelirlenmesiSistem Mimarisini Etkileyen UC’ler

İterasyon 1

İterasyon 2

İterasyon 2

Page 247: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

İlham Kaynakları

Ellen Gottesdiener Alistair Cockburn

Sizin Adınız

?

James Bielak

Page 248: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Pratik Çalışma

Page 249: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Analistler için Modelleme

Bölüm 1 / 6

Page 250: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

İçerik

Page 251: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Eğitmen Hakkında

Erol Bozkurt Bilişim Teknolojileri DanışmanıUniversity of Houston, Computer Science.

Uzmanlıklar:Real Time Simülasyon Sistemleri Tasarımı ve

Programcılığı,Sistem Analizi, UML ve Yazılım Süreçleri Danışmanlığı.

Page 252: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Eğitim Planı

• 9:00 – 12:30 (3 Ders)

Öğle arası (12:30 – 13:30)

• 13:30-18:00 (4 Ders)

60 dakikada bir ara: 10 dk.

İhtiyacınıza göre düzenlemeler yapılabilir.

Page 253: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Tipik Katılımcı Profili

• Nesne Tabanlı Yazılım Deneyimi Olanlar• Nesne Tabanlı Yaklaşımı Öğrenmek İsteyenler• Analistler, Tasarımcılar, Programcılar, …• Süreç Mühendisleri• Kalite Sorumluları• Proje Yöneticileri• Konu Uzmanları (Domain Expert)• Müşteriler

Page 254: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Katılımcılar Hakkında

• Şirketiniz ve faaliyet alanı• Sizin rolünüz• Eğitim almanızdaki nedenler• Eğitime yönelik beklentileriniz

Page 255: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Eğitim Materyalleri

• Eğitim Kitabı.• Çalışmalarımızda kullanacağımız ürünlerin

demolarını ve egzersiz dokümanları içeren CD-ROM.

Page 256: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Bizi Seçtiğiniz İçin Teşekkür Ederiz!

Page 257: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Analistler için Modelleme

Bölüm 2 / 6

Page 258: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

İçerik

Page 259: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

İçerik

• Nesne Tabanlı Yaklaşımın Temelleri• Class’lar ve Nesneler

Page 260: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Nesne Tabanlı Yaklaşım:

• Esnek bir Referans Mekanizması: Abstraction• Etkili bir Gizleme Mekanizması: Encapsulation• Sistemi Hazmedilebilir Parçalara Ayırabilmek:

Modularity• Sistemin Parçalarının Alakalandırılabilmesi:

Hierarchy

Page 261: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Abstraction Abstraction

Page 262: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Abstraction (Soyutlama)• Sisteme değişik referanslara göre bakmak• Kullanıcı bazında geçerli hizmetleri

saptamak• Bir kullanıcıya yönelik olmayan sistem

hizmetlerini ondan gizlemek

Page 263: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Encapsulation

Page 264: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Encapsulation (Gizleme)– Kullanıcıya bir basitlik illüzyonu verebilmek– Kullanıcıyı gereksiz sistem detaylarıyla

uğraşmaktan kurtarmak– Sistemin parçalarının kolayca tekrar kullanımına

imkan vermek

Page 265: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Modularity

Page 266: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Modularity (Çok Parçalılık)– Tekrar kullanımı kolaylaştırmak– Testi ve Bakımı kolaylaştırmak– Bir projeye yönelik parçaların entegrasyonunu

kolaylaştırmak

Page 267: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Her abstraction

bir hiyerarşi oluşturur.

Kullanıcı

Sistem

Page 268: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Hierarchy (Hiyerarşi)– Class’ların sağladıkları fonksiyonellik bazında

uzmanlaşmalarına imkan vermek– Genel kullanıma açık metodları belirli paketler

halinde toplayabilmek– Sistemin yapısının takibini kolaylaştırmak

Page 269: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

İçerik

• Nesne Tabanlı Yaklaşımın Temelleri• Class’lar ve Nesneler

Page 270: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

özellikler/benzerlikler

?

özellikler/benzerlikler

?

ali meltemali meltem

Class’lar ve Nesneler

Page 271: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

ali meltemali meltem

Class’lar ve Nesneler

yaş cinsiyet ad soyad

Page 272: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

ali meltemali meltem

iki FARKLI kişi

Class’lar ve Nesneler

yaş : 25cinsiyet : erkekad : alisoyad : turalı

yaş : 23cinsiyet : kadınad : meltemsoyad : manisalı

Page 273: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

ali meltem

nesne

Class’lar ve Nesneler

Değişkenler/özellikler

yaşcinsiyetadsoyad

yaş : 25cinsiyet : erkekad : alisoyad : turalı

yaş : 23cinsiyet : kadınad : meltemsoyad : manisalı

Page 274: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Diğer nesneler:Diğer nesneler:

Class’lar ve Nesneler

Değişkenler/özellikler???

Page 275: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Diğer nesneler:Diğer nesneler:

AvustralyaAvustralya İtalyaİtalya İngiltereİngiltere

Class’lar ve Nesneler

Değişkenler/özellikler

isimbaşkentnüfusparaBirimi

Page 276: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

• Bu nesneleri birbirlerinden nasıl ayıracağız?• Bu nesneleri birbirlerinden nasıl ayıracağız?

Tüm nesnelerTüm nesneler

Class’lar ve Nesneler

Page 277: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Ortak değişkenlerOrtak değişkenler

ÜlkeÜlke KişiKişi

Class’lar ve Nesneler

yaşcinsiyetadsoyad

isimbaşkentnüfusparaBirimi

Page 278: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

“yeni bir kişi”

?“hangi değişkenler?”

ali meltem

yaşcinsiyetadsoyad

Kişi(ler)

Class’lar ve Nesneler

yaş : 23cinsiyet : kadınad : meltemsoyad : manisalı

yaş : 25cinsiyet : erkekad : alisoyad : turalı

Değişkenler/özellikler

Page 279: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

“yeni bir kişi”

ali meltem

yaşcinsiyetadsoyad

Kişi(ler)

Class’lar ve Nesneler

yaş : 23cinsiyet : kadınad : meltemsoyad : manisalı

yaş : 25cinsiyet : erkekad : alisoyad : turalı

Değişkenler/özellikler

yaşcinsiyetadsoyad

Page 280: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Kişi

Class’lar ve Nesneler

yaşcinsiyetadsoyad

class Nesne tabanlı terminoloji (instance)variables

attributes

fields

Page 281: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

ali meltem

Kişi

Class’lar ve Nesneler

yaşcinsiyetadsoyad

yaş : 23cinsiyet : kadınad : meltemsoyad : manisalı

yaş : 25cinsiyet : erkekad : alisoyad : turalı

Nesneler

instances

Page 282: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

ali

İngiltere

}

?

?

?

}

meltem

Class’lar ve Nesneler

Nesneler

Bir nesnenin özellikleri nelerdir?

yaş : 23cinsiyet : kadınad : meltemsoyad : manisalı

yaş : 25cinsiyet : erkekad : alisoyad : turalı

}isim : ingiltereBaşkent : LondraNüfus: 3,534,209paraBirimi : Pound

Page 283: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

ali

İngiltere

}

state }

meltem

Class’lar ve Nesneler

Nesneler

Bir nesnenin özelliklerini ne belirler?

yaş : 23cinsiyet : kadınad : meltemsoyad : manisalı

yaş : 25cinsiyet : erkekad : alisoyad : turalı

}isim : ingiltereBaşkent : LondraNüfus: 3,534,209paraBirimi : Pound

kimliği

kimliği

kimliği

state

state

Page 284: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Class’lar ve Nesneler

Nesne

Nesnenin sahip olduğu özellikler

Identity: Kimlik State: Durum

Page 285: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Class’lar ve Nesneler

Nesneler

State / DurumIdentity / Kimlik

Benzersiz

Değişebilir

Page 286: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

yaş : 25cinsiyet : erkekad : alisoyad : turalı

yaş : 45cinsiyet : erkekad : velisoyad : kara

Identity / Kimlik

State / Durum aynı da olabilir farklı da

Class’lar ve Nesneler

{Orta Yaş} {Yetişkin}

Benzersiz

Page 287: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Analistler için Modelleme

Bölüm 3 / 6

Page 288: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

İçerik

Page 289: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

İçerik

• Görsel Tasarım• UML Modeli• UML Sonrasında Yazılım Dünyası

Page 290: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Görsel Tasarım

Bir sistemin verdiği bir hizmeti

nasıl gerçekleştirdiğinin görsel olarak ifade edilmesidir.

Page 291: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

UML Süreci Yaklaşımları

– use-case driven (kullanıcıya sağlanan fayda odaklı), – architecture centric (esnek, bakımı ve tekrar

kullanılabilirliği kolay bir sistem mimarisi oluşturmaya elverişli),

– iterative (kademeli olarak)– incremental (birbirinin üzerine inşa ederek).

Page 292: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Rumbaugh Tanımı

Bilgi İşlem

İş Akışı

Sipariş

Ürün

Kargo

Görsel Tasarım standartlaşmış sembolleri kullanarak tasarım yapmaktır

“Bir Model bir Sistemin vazgeçilmez özelliklerini gösterir.”

Dr. James Rumbaugh

Page 293: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Görsel tasarımın faydaları

İş Akışı Bilgisi Toplamak İletişimi KolaylaştırmakProje Kontrolünü ArtırmakSistem Mimarisini OluşturmakTekrar Kullanabilmek

Page 294: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

İş Akışı Bilgisi Toplamak

Use Case’ler ile yazılımın müşteri kullanımı odaklı olması sağlanıyor.

Page 295: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

İletişimi Kolaylaştırmak

Birlikte çalışması gereken bu iki takım çoğu zaman farklı kelime hazneleri yüzünden anlaşamıyor.

Görsel Tasarımda UML kullanımı müşterinin dünyasıyla sistemin dünyasını birbirine bağlar

İş Analistleri sistemin gereksinimlerini belirlerler

Programcılar bu gereksinimlere dayanarak sistemi oluştururlar

Page 296: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Proje Kontrolünü Artırmak

Sistemler yüzlerce hatta binlerce class’dan oluşabiliyor.

Bu class grupları sisteme bakan kişinin ihtiyacına göre organize edilebilmeli.

Görsel Tasarım sisteme farklı yönlerden bakabilmeyi sağlar.

Page 297: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Sistem Mimarisi Oluşturmak

Görsel Tasarım oluşan çözümü kullanılan programlama dilinden bağımsız hale getirir.

Programlama dili belirlenince tasarım fiziki ortama taşınır.

Page 298: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Tekrar Kullanabilmek

Bileşenler

Farklı Sistemler

Tasarımınızı bileşenlere bölerek çözümünüzün parçalarını tekrar kullanabilirsiniz.

Page 299: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

UML Öncesi

• 1960 - 70– COBOL, FORTRAN, C– Yapısal analiz ve tasarım teknikleri

• 1980 – 1990 başları– Smalltalk, Ada, C++, Visual Basic– İlk NT yöntemlerin ortaya çıkması

• 1990’ların geriye kalanında– Java– UML– Unified Process

Page 300: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Tijuana “shantytown”: http://www.macalester.edu/~jschatz/residential.html

UML Öncesi

Page 301: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

İçerik

• Görsel Tasarım• UML Modeli• UML Sonrasında Yazılım Dünyası

Page 302: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Modeller ve Şemalar

Use CaseDiagramsUse Case

DiagramsUse CaseŞeması

ScenarioDiagramsScenario

DiagramsCollaboration

/ CommunicationŞeması

StateDiagramsState

DiagramsComponentŞeması

ComponentDiagramsComponent

DiagramsDeploymentŞeması

StateDiagramsState

DiagramsObjectŞeması

ScenarioDiagramsScenario

DiagramsStatechart

/ State MachineŞeması

Use CaseDiagramsUse Case

DiagramsSequenceŞeması

StateDiagramsState

DiagramsClassŞeması

ActivityŞeması

Bir model bir sisteminBelli bir açıdan eksiksiz olarakIfade edilebilmesinisağlar

Model

Page 303: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Modellerin Faydaları

• Problem Çözme Mekanizması• Alternatif Çözümleri Görebilme• Sistemin Karmaşıklığını Kontrol Altına Alabilme• Ürünleri Daha Hızlı Oluşturabilme• Proje Maliyetini Düşürme• Hataları Azaltabilme

Page 304: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Model Nedir?

• Gerçeğin basitleştirilmiş bir ifadesi,• Sistemin veya Sürecin kavramsal düzeyde

anlaşılmasıdır

Page 305: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Model Kullanımı

Gereksiz Zaruri

Kağıttan Uçak F-15

Page 306: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Model Kullanımı

• Bilişim Takımları F-15’leri kağıttan uçak yaklaşımıyla oluşturabileceklerini zannedebiliyor.– Gereksinimlerden Kodlamaya geçiş– Daha uzun çalışmak, sistem mimarisi odaklı

olmayan kod yazmak– Esnek bir Sistem Mimarisi olmaması– Başarısızlık

Page 307: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Modelin Faydası

• Tasarladığımız çözümü anlayabilmek• Modeller ...

– Tasarlamak istediğimiz çözümü düşünebilmemize,– Sistemin yapısını ve davranışını belirleyebilmemize, – Sistemi oluşturabilmemize ve – Yaptıklarımızı dokümante edebilmemize yarıyor.

• Kapsamlı sistemleri modeller olmadan tasavvur etmek bile mümkün değil.

Page 308: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

4 Model Kuralı

• Model problemi nasıl çözeceğinizi belirler.• Her model farklı detay seviyelerinde

kullanılabilir.• Model çözümün kullanılacağı dünyadan

kopmamalıdır.• Çözüme yönelik tek bir model yetersizdir

Page 309: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

4 Model Kuralı

• Oluşturacağınız model probleme ve çözüme yaklaşımınızı belirler.– Seçilen model bir anlam dünyası oluşturur– Her anlam dünyası sizi başka bir çözüme yöneltir

Model problemi nasıl çözeceğinizi belirler.

Page 310: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

4 Model Kuralı

• Her model kullanıcısına yönelik olmalıdır.– Detay seviyesi modeli kimin ve ne amaçla

kullandığına göre değişmelidir.

Her model farklı detay seviyelerinde kullanılabilir

Page 311: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

4 Model Kuralı

• Model gerçekçi olmalı– Gerçek yerine göre bir kullanım senaryosu, yerine

göre bir sistem kısıtlaması olabilir. Dolayısıyla model farklı referansları barındırabilmelidir.

– Gerçeği basitleştirmeli– Riskli unsurları işaret etmeli

Model çözümün kullanılacağı dünyadan kopmamalı

Page 312: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

4 Model Kuralı

• Sistemler birbirleri kötü olarak etkilemeyen farklı modellerle incelenmeli.– Birbirlerinden bağımsız olarak oluşturulabilen,

incelenebilen fakat birbirleriyle alakalı olan modeller oluşturulmalıdır

• Modellerin farklı referansları, oluşturulma nedenleri ve kullanıcıları olmalıdır.

Çözüme yönelik tek bir model yetersizdir

Page 313: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Process View

Deployment View

Logical View

Implementation View

KodVersiyonlar

Performans

Sistem MimarıTopoloji

kurulum, kullanım

Use-Case View

Analiz /Tasarım Kullanıcı

İşlevsellik

Sisteme 4+1 Bakışı

Page 314: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

İçerik

• Görsel Tasarım• UML Modeli• UML Sonrasında Yazılım Dünyası

Page 315: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Fallingwater:

http://www.casas.com/architect/franklloydwright/fallingwater000.html

UML Sonrası

Frank Lloyd Wright

Page 316: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Takım Üyeleri

UML’in Sınırları

Dil KullanılanSüreç

Page 317: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

UML’in Yarattığı İş Fırsatları

• Yetenekli bilişim elemanlarının deneyimlerini aktarabilmeleri

• Yeni mezunların ustalarından örnek alabilmeleri

• Problem çözümlerinin gereksinim, analiz ve tasarım faaliyetlerinin yan ürünlere dönüşmesi

• İşverenlerin en kritik bilgilerini altyapı çalışmalarından ayırabilmeleri

• Müteşebbislerin kendilerini daha çok yeni iş fikirlerine adayabilmeleri

Ken Ishiwata

Page 318: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Fırsatlara örnekler

• İnfina: İş bilgisi satma,• Anadolu Hayat: Altyapı değerlendirme,• Uml öğrenen doktor,• Yazılım projesine giren haritacılar,• Alman sigorta uygulama referans modeli,• Vs. vs.

Page 319: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

UML Kehanetleri• Teknolojik altyapı kullanımı kolaylaşacak• İşe özel nesne tabanlı yaklaşım bilgilerine erişim kolaylaşacak• İş mantığı bilgilerine erişim kolaylaşacak• Yönetsel yaklaşımların önemi artacak• İş mantığını gizleme artacak• Kod ve framework paylaşımı artacak• İş uzmanlarının yazılım alanına iştirakleri artacak• İşe özel framework pazarı kızışacak• Yazılım evleri uluslararası çalışmalara daha çok girmeye başlayacak• Az sayıda kişiden oluşan ve kısıtlı bütçe sahibi ekiplerin etkinlikleri artacak• Tasarımcı ve Sistem Analistlerinin popülerlikleri artacak• Programcıların önemleri daha çok algoritmik karmaşıklığa sahip alanlarda

korunacak• Framework bazlı kodlama hangarları oluşmaya devam edecek• Yazılım elemanlarının kişisel önemleri artacak

Page 320: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

İlham Kaynakları• Eğitimimizin sonunda açık kaynak kodlu bir projeyi UML

modelinize çekin ve inceleyin:

www.sourceforge.net

Max Goff

“Zero Dollar Bill”

Page 321: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Analistler için Modelleme

Bölüm 4 / 6

Page 322: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

İçerik

Page 323: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

İçerik

• UML Modeli Kavramları• UML Tanımını Genişletme Mekanizmaları• Davranış Şemaları• Yapısal Şemalar

Page 324: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

UML 2.0 Şema Türleri

*

*

*

*

*

Page 325: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Kısaca UML

UML sembolik bir dildir:Yazılım sistemlerinin oluşturulması esnasında

ortaya çıkan iş ürünlerinin– Tasavvur edilebilmesine,– İfade edilebilmesine,– Oluşturabilmesine ve – Dokümante edilebilmelerine yarar.

Page 326: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

UML Modeli Oluşturma Nedenleri

• Oluşturulacak sistemin yapısı ve davranışı hakkındaki bilgiyi paylaşmak

• Sistem mimarisini tasavvur ve kontrol edebilmek

• Sistemi daha iyi anlayıp çözümü basitleştirmek ve tekrar kullanılabilirliği artırmak

• Riskleri yönetebilmek

Page 327: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

4 Model Kuralı

• Oluşturduğunuz model problemi nasıl çözeceğinizi belirler.

• Her model farklı detay seviyelerinde bilgi verebilir.

• En iyi modeller gerçekle bağlarını koparmayanlardır.

• Tek bir model kesinlikle kafi değildir.

Page 328: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

İçerik

• UML Modeli Kavramları• UML Tanımını Genişletme Mekanizmaları• Davranış Şemaları• Yapısal Şemalar

Page 329: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

UML Genişletme Mekanizmaları

• UML tanımı çok geniş de olsa bazen özel durumlara uyabilmesi için ‘genişletilmesi’ (extend) gerekebilir.

• UML tanım genişletme mekanizmaları- Yeni model sembolleri oluşturmak, - Yeni özellikler (property) tanımlayabilmek, - Yeni semantik yapılar oluşturabilmek için kullanılır.

• Genişletme mekanizmaları dörde ayrılır:- stereotype, tagged values, kısıtlar ve notlar

Page 330: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Stereotype

• Stereotype genellikle UML sembollerini yeni ortamlarda tanımlamak amacıyla kullanılır:

Örneğin Asansör Kontrol Sisteminin bir modelini oluştururken, bazı class’ları ve durumlarını (state) vurgulamak isteyebiliriz

• «hardware»• «software»

• Stereotype mutlaka tanımlandığı özel durum için ve hep aynı şekilde (mantıkla) kullanılmalıdır.

Page 331: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Stereotype

«button»CancelButton

Stereotypeetiket gösterimi

state

• Stereotype kullanım şekli: - Stereotype’ı UML sembolünün adının üstüne yerleştiriniz

• Stereotype adını «» işaretleri arasına koyunuz: (Örneğin, «node»)

- Yeni ikonu (resmini) tanımlayınız

CancelButton

Stereotypeikon gösterimi

Page 332: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Stereotype“UML Tanımıyla Gelenler”

Tanımlı Stereotype’lar:UML tanımı içinde mevcut, anlamı kesin olarak

belirlenmiş ve işarete karşılık gelen bir ikonu olan işaretlerdir.

<<Stereotype Adı>>

Tanımla Gelenler:• Boundary, Entity, Control• Aktör, vs.

cd Design Model

Class1 ud Use ...

Actor1

Page 333: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Size Ait İşaretler“UML in Color”

Peter Coad (TogetherSoft) entityclass’larının da kendi aralarındagruplara ayrılması gerektiğini söyler:

i. <<Thing>> ii. <<Description>> iii. <<Role>> iv. <<Moment-Interval>>

Page 334: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Tagged Values• Tagged values

–UML sembollerine ek özellikler atarken kullanılır–Mevcut UML sembol ve stereotype’larına eklenebilir–Bir isim-değer (özellik-değer, tag-value) ikilisi olarak

kullanılır.

• Genellikle aşağıdaki konularda kullanılır- Kod üretimi- Versiyon kontrolü- Konfigürasyon yönetimi- Sahiplik (telif hakkı kanıtı)- vs. vs.

Page 335: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Tagged Values

• Tagged value {} parantezi içine yazılan çok kısa bir nottur:- {tag adı, ayraç (=), bir değer}’den oluşur.

{yazan = “Ali”, Versiyon = 2.5}

Eleman

isimadres

tagged value

Page 336: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Tagged Values ve Kısıtlamalar

Gösterimleri aynıdır. UML ürünleri kullanıldığında NOT sembolünün içine yazılırlar. Pek çok farklı yerde belirtilebildiklerinden yaygın bir kullanımı yoktur.

{Tagged Value / Constraint}

{Vermek istediğiniz ek bilgi}

{Vurgulamak istediğiniz kısıtlama}

Page 337: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

UML Metamodel

• Metamodel olası modellerin kullanacağı yapısal ve semantik özelliklerin tanımlandığı bir modeldir

• UML modeli, ait olduğu metamodelin bir uygulanış şeklidir

• UML metamodeli –UML sembollerini tanımlar–Tanımlamalar için UML sembollerinin bir alt kümesini

kullanır –Aralarında ilişkiler kurulan paketlerle düzenlenir

Page 338: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

• UML metamodeli aşağıdaki konulara yanıtlar bulunarak oluşturulur:

- Syntax Yapısı (Abstract Syntax): Class Şemaları kullanılarak tanımlanır

- Net olarak tanımlanmış kurallar: Model öğelerinin uyması gereken kurallar (sınırlamalar) tanımlanır- Örneğin, bir class’ın birden fazla adı olamaz

- Semantik Yapı: Model öğelerinin ilşkilendirilme biçimleri gündelik dille tanımlanır

UML Metamodel

Page 339: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

UML Profilleri• UML Profilleri özel konulara yönelik UML modelleri

geliştirebilmemizi sağlarla- Örneğin, süreç mühendisliği, gerçek zamanlı sistemler,

web uygulamaları vs. vs.

• Bir profil ‘paketinde’ bir veya daha çok genişletme mekanizması ürünleri bulunur (stereotype, tagged value, kısıtlamalar)

• Bunlar UML model öğelerine uygulanarak kullanılırlar

Page 340: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

UML Profilleri• Bir UML profilinde aşağıdaki çalışmalardan gerekenler

yapılır:

- UML metamodelinin ilgili bir bölümü seçilir

- Stereotype’lar ve/veya tagged value çiftleri tanımlanır

- Mevcut kurallara yeni ekler tanımlanır

- Yeni bir semantik yapı tanımlanır

Page 341: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Profil Örneği• Temel GUI bileşenlerine yönelik bir profil tanımlarsak, • GUI yapımız aşağıdaki öğelere sahip olacaktır:

- Formlar- Butonlar

• Kısıtlamalar: – Bir form bir ‘dialog box’ı çalıştırabilir– Formlar ve Dialog Box’ların butonları olabilir

Page 342: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

GUI ProfiliClass ve Association UML metamodelinden gelmektedir

GUI Profili

Class

<<stereotype>>Form

<<stereotype>>Button

Association

<<stereotype>>Contains

<<stereotype>>DialogBox

<<stereotype>>Invokes

Page 343: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

GUI Profili Uygulaması

<<Form>>MainView

1 1

<<Button>>OkButton

<<Button>>CancelButton

<<Invokes>>

<<Contains>> <<Contains>>

<<DialogBox>>OpenDialogBox

1 1

1 1

Page 344: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

İçerik

• UML Modeli Kavramları• UML Tanımını Genişletme Mekanizmaları• Davranış Şemaları• Yapısal Şemalar

Page 345: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

UML 2.0 Şemaları

Page 346: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Davranış Şemaları

– use case şeması*– activity şeması*– Etkileşim Şemaları

• sequence şeması• collaboration / communication şeması• interaction overview• timing şeması

– statechart / state machine şeması*

Page 347: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Use Case Şeması

• Temel Kavramlar• Şema İçeriği• Şemayla Aktarılan Bilgiler• Tasarım Teknikleri• Forward ve Reverse Engineering

Page 348: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Temel Kavramlar• Her tasarlanan sistem bir insanla veya başka bir sistemle

etkileşir• Sistemin kullanıcıları onun tahmin edilebilir bir şekilde

çalışmasını beklerler• Use Case sistemin kullanıcılarına sunacağı bir hizmetin

senaryo şeklindeki anlatımıdır. Bu yüzden bir fiil ismine sahiptir: Yap, Et gibi adlandırılır.

Örneğin, “Para Çek”, “Havale Yap”.• Aktör sistemin sunduğu hizmetleri kullanan bir kişi veya başka

bir sistemdir.• Aktörler mutlaka tasarlanan sistemin dışında olmalıdırlar.

Page 349: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Use Case’lerin 3 Temel İşlevi

– Sistemin Sınırlarını Çizmek: Tasarlanan sistemin dışarıdan nasıl görüleceğini programcılara da yol gösterebilecek şekilde belirlemek

– Sistemin Bütünlüğünü Görebilmek: Sunulan hizmetlerin sistem içinde nasıl gerçekleştirileceğini görebilmek

– Test için Referans Oluşturmak: Sistem oluştukça eklenen yeni unsurları kaldırıp kaldıramayacağını anlamak

Page 350: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

‘Sihirli’ Use Case Sayısı Nedir?

Functional Decomposition!

Page 351: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

İlgili Roller• Şemayı Hazırlayanlar:

– İş Analisti– Sistem Analisti

• Şemayı Kullananlar:– Müşteri– Proje Yöneticisi– Tasarımcı– Veri Tabanı Analisti– Kullanıcı Arayüzü Tasarımcısı– Testçi– Kullanım Kılavuzu Hazırlayanlar

Page 352: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Use Case Şeması Sembolleri - 1

Sembol Tanımı Syntax

use case Belli bir hedefe ulaşmak için kullanılabilecek tüm alternatif senaryolar.

aktör Sistemle etkileşen kişilerin canlandırdıkları roller ve dış sistemler.

sistem sınırı

Oluşturulan sistemle aktörleri birbirinden ayıran sınır.

UseCaseNam e

ActorNam e

Page 353: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Use Case Şeması Sembolleri - 2

Sembol Tanımı Syntax

association Aktörlerin veya Use Case’lerin birbirlerini kullanmaları.

generalization Aktörlerin çeşitlerini ve Use Case’lerin özel durumlarını vurgular.

extend Bir Use Case’in kullanıcısının seçimine bağlı olarak çalıştırdığı diğer bir Use Case’i vurgular.

<<extend>>

Page 354: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Use Case Şeması Sembolleri - 3

Sembol Tanımı Syntax

include Bir Use Case’in her zaman çalıştırdığı diğer bir Use Case’i vurgular.

Note Her şemaya dilenen bilgilerin yazılması için ve hyperlink oluşturmak amacıyla kullanılır.

note

Anchor note to item

Notu şemadaki sembollere bağlamaya yarar.

<<include>>

Page 355: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Şema Örneği 1

Page 356: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Use Case Bulma Teknikleri 1ud Use Case Model

Actor2

Actor1

Use Case1

Use Case2

Use Case3

Use Case4

Use Case5

Use Case6

Use Case 2 her zaman Use Case 1 i le birl ikte calisir.

Use Case 3 istegebagli olarak Use Case 4 i le birl ikte calisir.

Use Case 6, Use Case 5'in ozel birdurumudur. Use Case 5'in bazialternatif akislari buradadir.

Use Case 3'den Actor 2'ye birmesaj gitmektedir.

«extend»

«include»

ud Use Case Model

Actor2

Actor1

Use Case1

Use Case2

Use Case3

Use Case4

Use Case5

Use Case6

Use Case 2 her zaman Use Case 1 i le birl ikte calisir.

Use Case 3 istegebagli olarak Use Case 4 i le birl ikte calisir.

Use Case 6, Use Case 5'in ozel birdurumudur. Use Case 5'in bazialternatif akislari buradadir.

Use Case 3'den Actor 2'ye birmesaj gitmektedir.

«extend»

«include»

Page 357: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Use Case Bulma Teknikleri 2

Özne Nesne Fiil Oluşturulanlar Sistemin Cevabı Aday Use Case Aday Aktör

Öğrenci derse kayıt olur Ders listesine eklenme Dersi alabilirmi bakar Kayıt Ol Öğrenci

Haftalık Ders Programı Çakışan derslere bakar

Eğitmen derse kayıt olur Ders listesine eklenme Dersi alabilirmi bakar Kayıt Ol Öğrenci

Haftalık Ders Programı Çakışan derslere bakar

Event Table Çalışması:

Page 358: Analist Eğitimi - Tüm Bölümler -  [535 Slides]
Page 359: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Use Case Bulma Teknikleri 3

1. Aktörler Adaylarını Bulun2. Event Table Çalışmasını Yapın3. Aktör ve Use Case’leri Belirleyin4. Aktörleri Çizin ve İlişkilerini Düşünün5. Use Case’leri Çizin ve Aktörlere Bağlayın6. Use Case’ler Arasındaki İlişkileri Belirleyin

Page 360: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Aktör Bulma Soruları• Sistemin gereksinimleri kimleri ilgilendiriyor?• Sistem organizasyonun hangi biriminde kullanılacak?• Sistemden kimler faydalanacak?• Sisteme veri sağlayacak, sistemden bilgi alacak ve sistem kayıtlarını

değiştirecek olanlar kim?• Sistemin bakımını kim yapacak?• Sistemin hizmetlerinden yararlanacağı başka sistemler var mı?• Sistemin hizmetlerini sunacağı başka sistemler var mı?• Sistemin kullanımında birden fazla rolü oynayan kişiler var mı?• Sistemin kullanımında aynı rolü oynayan birden çok kişi var mı?

Page 361: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Use Case Bulma Soruları• Aktörlerin yerine getirecekleri görevler nelerdir?• Aktörlerden herhangi birisi sistem kayıtlarını oluşturma, kaydetme,

değiştirme, silme ve okuma amaçlı olarak kullanacak mı?• Hangi use case’ler yukarıdaki kaydetme, değiştirme, silme ve okuma

işlemlerine yol açacak?• Herhangi bir aktörün sistemi sistem dışındaki ani değişikliklerden

haberdar etmesi gerekli mi?• Herhangi bir aktörün sistem içinde olanlardan haberdar edilmesi

gerekiyor mu?• Hangi use case’ler sistemin bakımı için kullanılacak?• Sistemin vereceği tüm hizmetler (fonksiyonel gereksinimler) bulunan

use case’ler ile yansıtılabiliyor mu?

Page 362: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Use Case ŞemasıEgzersiz # 1

Lütfen şemadan anladıklarınızı bir paragrafta özetleyiniz (10 dk.)

uc Use Case Modeli II

Müşteri

(from Aktörler)

Sistem Yöneticisi

(from Aktörler)

Banka

(from Aktörler)

(from Use Case'ler)

Kataloğa Bak

(from Use Case'ler)

Satın Al

(from Use Case'ler)

Kataloğu Hazırla

(from Use Case'ler)

Sisteme Bağlan

«extend»

«include»

«include»

Page 363: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Use Case ŞemasıEgzersiz # 2

Aşağıdaki tanıma uygun use case şemasını çiziniz (15 dk.).

“Sadece üyelerin bir satın alma yapabileceği bir cd satış portali oluşturmanız gerekmektedir. Bu portali ziyaret edenler üye olmadıkları takdirde portal kataloğuna erişemeyeceklerdir.

Üye olma işlemi sırasında başvuru yapanların: • isim ve soyadları,• e-mail adresleri• favori müzisyenleri (3 isim)• favori cd’leri (3 isim)• arayıp bulamadıkları cd’ler (3 isim)• bilgileri toplanacaktır.

Üyelerden ayrıca bir şifre tanımlamaları istenecek ve e-mail adresleri kullanıcı adları olarak kullanılacaktır.

Web sitesinde şirket kataloğuna bakarak cd satın alabilmenin dışında, üyeler birbirleri arasında cd değiş tokuşu yapabileceklerdir.

Sistem üyelerin hangi cd’leri alıp sattıklarına, hangi cd’leri arayıp bulamadıklarına bakarak, cd önerilerinde bulunacaktır.“

Page 364: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Activity Şeması

• Temel Kavramlar• Şema İçeriği• Şemayla Aktarılan Bilgiler• Tasarım Teknikleri• Forward ve Reverse Engineering

Page 365: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Temel Kavramlar

• Sistem akışı içinde önce ne sonra ne olduğunu koşullarını işaret ederek gösterebiliriz.

• Use Case akışını çizebiliriz.• Sistem genelinin işleyişini çizebiliriz.• Bir hizmete yönelik işlemleri toplu halde

inceleyebiliriz (UC Map).• Tek bir işlemin nasıl gerçekleştirildiğini

inceleyebiliriz.

Page 366: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

İlgili Roller• Şemayı Hazırlayanlar:

– İş Analisti– Sistem Analisti– Tasarımcı– Programcı

• Şemayı Kullananlar:– Müşteri– Proje Yöneticisi– Tasarımcı– Programcı– Veri Tabanı Analisti– Kullanıcı Arayüzü Tasarımcısı

Page 367: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Activity Şeması Sembolleri 1

Sembol Tanımı Syntax

Start State Activity Şemasındaki akışın başladığı nokta.

End State Activity Şemasındaki akışın bittiği nokta.

Activity Akış esnasında gerçekleşen bir faaliyet veya bir komut.

Page 368: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Activity Şeması Sembolleri 2

Sembol Tanımı Syntax

State Transition

Activity sembollerini önce hangisinin geldiğini belirterek birbirine bağlar veya bir döngüyü ifade eder..

Decision Akışın koşullara göre dallandığı

noktalarda kullanılır.

Swimlane Faaliyet ve komutları sorumluluklarına göre gruplamaya yarar.

Page 369: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Activity Şeması Sembolleri 3Sembol Tanımı Syntax

Synchronization bars

Eş zamanlılık içeren faaliyetleri ‘ayrılma’ veya ‘birleşme’ noktaları oluşturarak birbirine bağlamaya yarar.

Note Her şemaya dilenen bilgilerin

yazılması için ve hyperlink oluşturmak amacıyla kullanılır.

note

Anchor note to item

Notu şemadaki sembollere bağlamaya yarar.

Page 370: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Activity Şeması Sembolleri 4

Sembol Tanımı Syntax

Object ‘Elle tutulabilir’ nesnelerdir.

OrderItem

ObjectFlow Object’i girdi ve çıktı olarak faaliyet

ve komutlara bağlamaya yarar.

Page 371: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Şema Örnekleri 1act Pizza Siparişi

Ahçıbaşı Garson Müşteri

ActivityInitial

Pizza hamurunu hazırla

Menüyü v erSiparişi Ver

Siparişi mutfağa ilet

Pizza malzemelerinihazırla

Pizzayı fırına v er

Garsona haber v er

Serv is yap

Afiyetle ye

Hesabı iste

Hesabı sun

Hesabı öde

v s. v s.

Page 372: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Activity Şeması Örnekleri 2act Telefon Satış Birimi

Müşteri Telefonla Satış Depo Muhasebe

ActivityInitial

İade isteğini ilet

Vazgeçirmeye çalış

Vazgeçti mi?

Elemana Bonus yaz

ActivityFinal

İade numarası v er

Kargoya v er

«iade edildi»Ürün

Ürünü kabul et

Ürünü tekrar satışa sun

Müşteriye ödeme yap

«satışa sunuldu»Ürün

ActivityFinal

Page 373: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Activity Şeması Örnekleri 3

Page 374: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Activity Şeması Örnekleri 4

Page 375: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Activity ŞemasıEgzersiz

Aşağıdaki bilgileri alternatifleri ve beklenmeyen durumları da ekleyerek activity şemasıyla anlatınız (15 dk.)

• Yemek Tarifi: Arap Usulü Ispanak– Soğanları kızgın yağda 5 dk. kavurunuz,– İsterseniz, sarmısak ve kimyon ekleyerek 1 dk. daha kızartınız.– Ispanakları tavaya yavaş yavaş ekleyiniz. Eklenen ıspanakların yapraklarını iyi

yumuşayıncaya kadar karıştırınız. Taze ıspanak büyük ölçüde pişirilirken ufalacağından, ıspakların hepsi tavaya sığacaktır.

– Daha önce yumuşamaları için gece boyunca suda beklettiğiniz nohutların suyunu süzünüz ve tavaya ekleyiniz.

– Karışıma tereyağı ve baharat (tuz, biber ve kırmızı biber) ekleyiniz.– Karışım köpürmeye başlayana dek ısıtmaya devam ediniz.– Karışımı kendi suyu içinde hafif nemli olarak sununuz.

Page 376: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Statechart Şeması

• Temel Kavramlar• Şema İçeriği• Şemayla Aktarılan Bilgiler• Tasarım Teknikleri• Forward ve Reverse Engineering

Page 377: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Temel Kavramlar 1

Page 378: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Temel Kavramlar 2

Page 379: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Temel Kavramlar 3

Action ve Output:

Page 380: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Temel Kavramlar 4Event ve State Machine örtüşmesi:

Page 381: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Temel Kavramlar 5Bir faaliyet sona erene ve state geçerliliğini yitirene dek eş zamanlıolarak sürekli çalışır:

Page 382: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Temel Kavramlar 6

Duruma (guard condition) göre çalıştırılan komutlar:

Page 383: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Temel Kavramlar 7

Hiyerarşik State Machine’ler:

Page 384: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

İlgili Roller

• Şemayı Hazırlayanlar:– Sistem Analisti– Tasarımcı– Programcı

• Şemayı Kullananlar:– Sistem Analisti– Tasarımcı– Programcı

Page 385: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

State Machine ŞemasıEgzersizi

Kredi Kartı borcunu zamanında ödemeyenlere tutarın % 5.5’i oranında ceza verilmektedir. Borcunu son ödeme tarihinden bir ay sonra hala ödemeyenlerin kartlarına el konulmaktadır. Diğer durumlarda kart kullanımı normal şekliyle sürmektedir.

Kredi Kartı aylık ödeme tutarı 1,000 YTL ve üzerinde olanların kart limitleri iki katına çıkarılmaktadır. 1000 YTL ve üzeri ödeme yapanlara toplam harcamalarının % 2’si oranında hediye çeki gönderilmektedir.

Page 386: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

İçerik

• UML Modeli Kavramları• UML Tanımını Genişletme Mekanizmaları• Davranış Şemaları• Yapısal Şemalar

Page 387: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

UML 2.0 Şemaları

Page 388: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Yapısal Şemalar

– class şeması*– package şeması*– composite structure şeması– object şeması– component şeması– deployment şeması

Page 389: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Class Şeması

• Temel Kavramlar• Şema İçeriği• Şemayla Aktarılan Bilgiler• Tasarım Teknikleri• Forward ve Reverse Engineering

Page 390: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Temel Kavramlar

• Class kendisinden üretilecek nesneler için ortak değişken ve metodları içeren bir şablondur.

• Bu şablondan üretilecek her nesne sadece şablonunda belirtilen değişken tipine uygun veri yapılarını taşıyabilir.

• Her nesne şablonunda tanımlanmış metodlar aracılığıyla kullanılabilir.

Page 391: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Temel Kavramlar

Değişkinler:Bir tip – değer ikilisidir.Class’lar değişken tipini belirler.Nesneler değişken değerini belirler.

Değişkenler bir ilkel veri veya bir class tipinde olabilirler.İlkel veri tipi kullanılan yazılım ortamına bağlı olarak

değişen integer veya string gibi mevcut veri tipleridir.

Page 392: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Temel Kavramlar

Metodlar:Class’ın tüm nesnelerinin canlandırabileceği

davranışlardır.Metodlar önce birer sorumluluk olarak ortaya

çıkıp daha sonra fonksiyonlara dönüşürler.Fonksiyona dönüştüklerinde parametreleri ve

return tipleri tanımlanmış olmalıdır.

Page 393: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Temel Kavramlar

• Değişkinler ‘private’• Metodlar ‘public’

Hepsi küçük harfle başlar ve kelimeler bitişik yazılır.

Course

- number : Integer- name : String- classSize : Integer- active : Boolean

+ openForEnrollment ( )+ closeEnrollment ( )+ isOpenForEnrollment ( )

Page 394: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Temel Kavramlar

• Her eleman bulunduğu yere erişim haklarını ifade eden bir görünürlüğe sahiptir (visibility).– ‘public’ elemanlar Class dışından görülebilir ve

erişilebilirler. Sembolleri: ‘+’– ‘protected’ elemanlar sadece Class’la generalization

ilişkisine sahip Class’larca görülebilir ve erişilebilirler. Sembolleri: ‘#’

– ‘private’ elemanlar ait olduğu Class dışında görülemez ve erişilemezler. Sembolleri: ‘-’

Page 395: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Temel Kavramlar

Encapsulation:Değişkenlerin ‘private’ olma nedenidir.

Course

- number : Integer- name : String- classSize : Integer- active : Boolean

+ openForEnrollment ( )+ closeEnrollment ( )+ isOpenForEnrollment ( )+ register ( )

Page 396: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Temel Kavramlar

Generalization:Farklı ‘abstraction’

seviyeleri arasında ırsiyet ilişkileri kurmak için kullanılır.

Course

- number : Integer- name : String- classSize : Integer- active : Boolean

+ openForEnrollment ( )+ closeEnrollment ( )+ isOpenForEnrollment ( )+ register ( )

+ courses

*

PostGraduateCourse

- Sponsor

+ publishWork ( )+ closeEnrollment ( )+ register ( )

GraduateCourse

- thesisTopic

+ register ( )

Page 397: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Temel Kavramlar

Polymorphism: implementasyonun detaylarını gizleyerek kolay kullanımı sağlar.

Aynı isme sahip fakat farklı çalışan fonksiyonları ifade eder.

Course

- number : Integer- name : String- classSize : Integer- active : Boolean

+ openForEnrollment ( )+ closeEnrollment ( )+ isOpenForEnrollment ( )+ register ( )

+ courses

*

PostGraduateCourse

- Sponsor

+ publishWork ( )+ closeEnrollment ( )+ register ( )

GraduateCourse

- thesisTopic

+ register ( )

Page 398: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Temel Kavramlar

Inheritance: oluşmuş class’ların özelliklerinin kademeli olarak zenginleştirilebilmesine olanak verir.

Class’ları özel durumlara istinaden ayırarak farklı ‘abstraction’ seviyeleri oluşturulmasını sağlar.

Böylece katmanlı bir sistem mimarisine imkan vererek tekrar kullanımı kolaylaştırır.

Page 399: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Temel Kavramlar

Abstract Class:Kendisinden nesne üretilmeyen, hiyerarşik yapının en

üstünde yer alan ve kendinden özelleştirilmiş class’lar vasıtasıyla değişkenlerini sistemin kullanımına sunan class’lardır.

cd Design

Hayvanlar

Eteburlar OtoburlarOmnivorlar

Page 400: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Class Şeması Sembolleri 1Sembol Tanımı Syntax

association Nesneleri etkileşen Class’lar arasında çizilir.

aggregation Parça bütün ilişkisi ifade eden bir association türüdür.

generalization Aralarında tür / ırsiyet ilişkisi olan Class’ları birbirlerine bağlar.

dependency Bağımlılık ilişkisini ifade eder.

Page 401: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Class Şeması Sembolleri 2

Sembol Tanımı Syntax

class Aynı veri yapısı ve davranışı sergileyen nesnelerin kaynaklandığı kalıptır.

interface Bir öğenin davranışlarını temsil eden bir fonksiyon grubudur.

«interface»

Page 402: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

İlgili Roller

• Şemayı Hazırlayanlar:– Tasarımcı– Programcı

• Şemayı Kullananlar:– Tasarımcı– Programcı

Page 403: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Class Şeması Örneğicd Design

Hayvanlar

EteburlarOtoburlar Omnivorlar

Tur

Ucanlar Surunenler

FotosentezYapanlar

Bitkiler

Page 404: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Class ŞemasıEgzersiz # 1

Page 405: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Class ŞemasıEgzersiz # 2

• “Dinozorlar Paleozoik, Mesozoik ve Senozoik zaman dilimlerinde görülmüşlerdir. Paleozoik’in sonlarına doğru memelileri andıran ilginç bir örnek Dimetrodon’dur. Dimetrodon’un sırtında yelken gibi büyük bir çıkıntı vardı. Dimetrodon yürürken dört ayağını birden kullanıyordu ve etçildi.

• Uçan dinozorlara (Pterosor) örnek olarak Pteranodon’u verebiliriz. Diğerlerinin aksine Pteranodon’un kuyruğu yoktu ve çok geniş kanatları vardı (8 m.). Yine ilginç bir özelliği diğerlerinin aksine dişlerinin olmamasıydı. Uçan dinozorlar etçillerdi.

• Etçil dinozorların en ünlüsü Tiranosorus’dur. Etçil dinazorların en önemli özelliklerinden birisi genellikle ön ayaklarının çok küçük ve kullanışsız olmasıdır. Bu tür etçil dinozorlar arka ayakları üzerinde yürür ve ön ayaklarını hareket amacıyla kullanmazlar.

• Otçul dinozorların en uzunları Diplodokus ve Brontosorus etçil dinazorların aksine dört dev ayağa sahiptiler ve hepsini kullanarak gayet hızlı yürüyebildikleri düşünülmektedir. ”

Page 406: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Package (Paket) Şeması

• Temel Kavramlar• Şema İçeriği• Şemayla Aktarılan Bilgiler• Tasarım Teknikleri• Forward ve Reverse Engineering

Page 407: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Temel Kavramlar

• Paket, Subsystem ve Model – Model içindeki elemanları belli bir referansa göre

gruplamaya yararlar. – Her grubun elemanları arasında farklı bir semantik

ilişki vardır. Farklı bir nedenden dolayı bir araya gelmişlerdir.

• Subsystem (Modül) ve Model aslında birer pakettir.

Page 408: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Temel Kavramlar

Paket UML modeli elemanlarından oluşan bir gruptur.

Page 409: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Paket Şeması Sembolleri

Page 410: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

İlgili Roller

• Şemayı Hazırlayanlar:– Herkes

• Şemayı Kullananlar:– Herkes

Page 411: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Paket Şeması Örnekleri

SiparişMüşteri

Yer CD

Stok Sipariş

Depo

Satış

Page 412: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Şema Eksiksizliği Kontrolleri 1

• UML Şeması hazırlamak serbest resim çalışmasına dönüşmemelidir.

• Şemanın hazırlanma amacı asla mevcudiyeti olmamalıdır.

• Şemayı hazırlayan ya düşünüyordur, ya sistemi geliştiriyordur, ya birisine doküman hazırlıyordur ya da bir sistemin yapısını inceliyordur.

• Şemaların belli hazırlayıcıları ve kullanıcıları vardır.

Page 413: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Şema Eksiksizliği Kontrolleri 2

• Bir UML şeması çizmeye karar verdiğimizde belli bir amacımız ve açıkça ifade edilebilen sorularımız olmalıdır.

• Sorularımız yanıt bulduğunda eğer şirketimiz içinde gereken dokümantasyon seviyesine de uyuyorsak çizim çalışması biter.

• Her şemanın aynı konuda olsalar bile farklı yararlılık dereceleri vardır. Bazı şemalar zamana karşı koyar bazılarıysa giderek gözden düşer.

Page 414: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Analistler için Modelleme

Bölüm 5 / 6

Page 415: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

İçerik

Page 416: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

İçerik

• Modüllerin Yapısı• Modül Tanımlama Teknikleri• Modül Gerçekleştirme Teknikleri• Modellerin Yapısı• Modellerin İlişkileri

Page 417: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Modül (Subsystem) Özellikleri

• Bir modülün iki özelliği vardır:– Dış görünümü: modülün sağladığı

hizmetleri gösterir. – İç görünümü: modülün verdiği hizmetleri

destekleyen altyapıyı gösterir. • Bu iki görünüm arasında bire bir bir ilişki

vardır.

Page 418: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Modül Özellikleri

Bir modül bir sistemin hem tanımlanma hem de gerçekleştirilme aşaması çalışmalarını içerir.

Gerçekleştirme elemanları

Tanım elemanları

Page 419: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Modülün Gerçekleştirilmesi

• Gerçekleştirme elemanları subsytem’in içeriğini gösterir.

• Modül gerçekleştirilmesi genellikle class’lar ve ilişkilerini içerir.

Gerçekleştirme elemanlarıTanım elemanları

?

Page 420: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Modül tanımı modülün dışarıdan nasıl görüldüğü belirtir

Gerçekleştirme elemanlarıTanım elemanları

?

Modül Tanımlanması

Page 421: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

İçerik

• Modüllerin Yapısı• Modül Tanımlama Teknikleri• Modül Gerçekleştirme Teknikleri• Modellerin Yapısı• Modellerin İlişkileri

Page 422: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Modül Tanımlanması

• Modül tanımı– Modülün verdiği hizmetleri tanımlar– Sistemin kullanıcılarına yaşatacağı deneyimi

tanımlar – Modülün iç yapısını gözler önüne dökmez – Modülün interface’lerini tanımlar

Page 423: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Tanımlama Teknikleri

• Use Case yaklaşımı• State Machine yaklaşımı• Mantıksal Class yaklaşımı• Metod Yaklaşımı

… ve bunların kombinasyonları

Page 424: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

• Modülü sunduğu hizmetlerle alakalandırabilmek için• Spesifikasyonun teknik olmayan insanlara aktarılabilmesi

için

Gerçekleştirme elemanlarıTanım elemanları

1. Use Case Yaklaşımı

Page 425: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

1. Use Case Yaklaşımı

Çağrı Kontrol

Tanım elamanları Realization elements

Change Digit Analysis Information

Initiate Call

Receive Digit and Connect

Hook Signal and Disconnect

Operator

Trunk

Subscription

Page 426: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

2. State Machine Yaklaşımı

• Duruma göre davranışı değişen modüller için (Simülasyon vs.)

• Modülün yaşadığı durumlar ve bu durumlar arasındaki geçişlere odaklanır

Tanım elemanları

Stopped Running

Error

Maintenance

Exhausted

Çağrı Kontrol

Page 427: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Tanım elemanları

AnalyzerNumber

Dictionary

Network Manager

Çağrı Kontrol

3. Mantıksal Class Yaklaşımı

• Modülün kullanımı nesnelerin manipülasyonu olarak görülüyorsa

• Gereksinimler belli bir standarda uyum zorunluluğundan kaynaklanıyorsa

Page 428: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

4. Metod Yaklaşımı

• Basit (atomic) hizmetler veren modüller için• Metodlar birbirlerinden bağımsız olarak çağrılıyorlarsa

MetodlarinitiateConnection (…)

dialledDigit (…)

throughConnect (…)

bAnswer (…)

bOnHook (…)

aOnHook (…)

Çağrı Kontrol

Page 429: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Tekniklerin KombinasyonlarıÇağrı Kontrol

changeDigitAnalysisInformation (...)

Initiate Call

Receive Digit and Connect

Hook Signal and DisconnectSubscription

Trunk

Specification elements

Tanım elemanları

Metodlar

Page 430: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

• Üç tanımlı parçadan oluşur• Bu parçalar isteğe bağlı olarak kullanılmayabilir

Gerçekleştirme elemanları

Tanım elemanları

OperationsMetodlar

Eksiksiz Modül Notasyonu

Page 431: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

İçerik

• Modüllerin Yapısı• Modül Tanımlama Teknikleri• Modül Gerçekleştirme Teknikleri• Modellerin Yapısı• Modellerin İlişkileri

Page 432: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Tanım (Specification) – Gerçekleştirme (Realization)

• Tanım ve gerçekleştirme birbirleriyle uyumlu olmalıdır

• Tanım ile gerçekleştirme arasındaki ilişki (mapping) şu şekilde ifade edilebilir:– gerçekleştirme (realization) ilişkisi– birliktelik (collaboration)

Page 433: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Metodlar

operation1( ) : Type1

operation2( ) : Type2

operation3( ) : Type3

operation4( ) : Type4

operation5( ) : Type5

Gerçekleştirme elemanları

«realize»

operation1( )

Gerçekleştirme İlişkisi

Gerçekleştirme (Realization) özellikle tek seviyeli ilişkileri göstermekte faydalı

Page 434: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Gerçekleştirme İlişkisi

Gerçekleştirme elemanları

Tanım elemanları

changeDigitAnalysisInformation ( )

Initiate Call

Receive Digit and Connect

Hook Signal and DisconnectSubscription

Trafik Kontrol

Metodlar

Trunk

changeDigitAnalysisInformation ( )::

«realize»

Page 435: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Collaboration

• Collaboration (Birliktelik): Belli bir hedefe yönelik olarak nesne etkileşimlerinin resmedilmesidir. Bu bir UC senaryosu veya class ilişkileri incelemesi olabilir.

• Interaction (Etkileşim):Bir birliktelik içindeki nesnelerin arasındaki haberleşmelerdir.

Page 436: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Collaboration

• Bir ‘collaboration’ bir iş yerine getirilirken gereken rolleri tanımlar

• Bu roller birbirleriyle etkileşen nesneler aracılığıyla canlandırılır

Sequence Şeması

:Trunk :Traffic Control :Subscription

markBusy

dialledDigit

dialledDigit

throughConnect

bAnswer

markBusy

Collaboration Şeması

:Trunk

:Traffic Control

:Subscription

3: dialledDigit6: bAnswer

5: markBusy1: markBusy

4: throughConnect

2: dialledDigit

Page 437: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Collaboration Sembolleri

Page 438: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Collaboration Notasyonu

Bir birliktelik (collaboration) ve katılımcıları

Collaboration

Rol

Class

Rol adı

Rol adıRol adı

Rol adı

Page 439: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Tanım elemanları Gerçekleştirme elemanları

Receive Digit and Connect

Hook Signal and Disconnect

Initiate Call

CoordinatorAnalysisDatabase

NetworkInterface

Collaboration

Collaboration genellikle daha karmaşık durumlarda faydalıdır

Page 440: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Collaboration ÇeşitleriRol modeli bir özel durumu ifade ederken Class modeli dahagenele yönelik. Dolayısıyla her Class modeline karşılık birdenfazla Rol modeli olacaktır.

Page 441: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Use Case RealizationCollaboration Şeması: “Sipariş Alınması”

Page 442: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Use Case Realization (UCR)

Page 443: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Use Case Realization (UCR)

Page 444: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Use Case Realization (UCR)

Page 445: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Use Case Realization (UCR)

Page 446: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Model Bağımlılıkları

Üniversite Kayıt Sistemi

Page 447: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Modüller Ne Zaman Gerekli?

• Büyük bir sistemin hangi parçalardan oluştuğunu ve bu parçaların bağımlılıklarını göstermek gerektiğinde (Sistem Mimarisi)

• Dağıtık (distributed) yazılım geliştirme yapılıyorsa • Bir grup modülün nasıl büyük bir sisteme

dönüştürülebileceğini gözlemleyebilmek için (Sistem Mimarisi)

• Bileşen bazlı yazılım geliştirme yapabilmek için

Page 448: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Modül Oluşturma Teknikleri• Büyük bir sistemin her kendine haslık gösteren

parçasını bir modülle ifade edin• Tanımlama (specification) tekniğini sistem ve

modülün özelliklerine göre belirleyin• Her modülü ayrı ayrı ve tanımlama elemanlarını

(gereksinim) kullanarak gerçekleştirin (realize)

Page 449: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

İçerik

• Modüllerin Yapısı• Modül Tanımlama Teknikleri• Modül Gerçekleştirme Teknikleri• Modellerin Yapısı• Modellerin İlişkileri

Page 450: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Model

Bir model sisteme belli nedenden dolayı farklı bir bakış şeklidir. Oluşturulma amacına uygun şekilde dokümantasyona ve detay seviyesine sahiptir.

Page 451: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Model

Tasarım Modeli

Use Case Modeli

Page 452: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Model Sembolleri

Model

Trace

Sembol Tanım Syntax

Modeller arasındaki bağımlılık aynı konuların farklı bakış açıları altındaki ürünlerini temsil eder.İşaret tek veya çift yönlü olabilir.

«trace»

Sistemi belli muhataplara onlara özel detay seviyesiyle sistemin ilgili yönlerinin gösterilmesidir.

İsim

Page 453: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Trace

Analiz

Tasarım

«trace»

Page 454: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Model / Şema

Use Case Modeli

Şemalar modeli dokümante eder

Tasarım Modeli

Page 455: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Model Ne Zaman Gerekli?

• Farklı paydaşlara sisteme kendi ihtiyaçlarına göre bakabilmelerini sağlamak için

• Sistemi gerektiğinde sadece tek bir yönden inceleyebilmek

• Yazılım geliştirme sürecinde farklı aşamalarda üretilenleri dokümante edebilmek

Page 456: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Model Oluşturma Teknikleri

• Her modelin amacını tanımlayınız • Her model amacına uygun şekilde sistemin

eksiksiz bir resmini çizmelidir • Modelin amacına odaklanarak ilgisiz

bilgileri modele eklemeyiniz

Page 457: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

İçerik

• Modüllerin Yapısı• Modül Tanımlama Teknikleri• Modül Gerçekleştirme Teknikleri• Modellerin Yapısı• Modellerin İlişkileri

Page 458: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Modeller ve ModüllerModeller ve Modüller arasında hiyerarşik ilişkiler kurulabilir:

Bankacılık Sistemi

Tasarım Modeli

Analiz Modeli

UC Realization

MuhasebeModülü

MuhasebeModülü

Page 459: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

[1] Modellerİş Modeli (Seçeneğe Bağlı)

Page 460: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

[2] ModellerGereksinim Modeli

Page 461: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

[3] ModellerAnaliz ve Tasarım Modelleri

Page 462: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

[4] ModellerEk Modeller

Page 463: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Rational SoftwareReferans UML Modeli

PearlCircle İnternette Açık Artırma

Page 464: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Model ElemanlarıGereksinim, Analiz, Tasarım ve Kullanıcı Arayüzü Tasarımıçalışmalarının ilişkileri.

Tasarım

Gereksinim

Analiz

KullanıcıArayüzüTasarımı

Specification

Realization

Realization

Page 465: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Analiz Mdl.

UC Mdl.

Page 466: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Tasarım

Tasarım

Page 467: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

User Experience

Mdl.

Page 468: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Gereksinim → Analiz

Etkileşim Şeması # <= Akış #

Page 469: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Analiz ÇalışmalarıParticipants: Kullanılan class’larınUC bazında gruplanmasıdır.

Analysis Elements: class’ların mantıkiilişkilerine göre yeniden gruplandırılmalarıdır.Bu geleneksel modüler yapıya karşılık gelir.

Page 470: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Analiz → Tasarım

Page 471: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Gereksinim → Kullanıcı Arayüzü

Page 472: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Bid on Item – Analiz - VOPC

Page 473: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Bid on Item – Analiz – Temel Akış

Page 474: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Bid on Item – Tasarım - VOPC

Page 475: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Bid on Item – TasarımTemel Akış

Page 476: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Bid on Item – UX - VOPC

Page 477: Analist Eğitimi - Tüm Bölümler -  [535 Slides]
Page 478: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Analistler için Modelleme

Bölüm 6 / 6

Page 479: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Neredeyiz?

Page 480: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

İçerik

Page 481: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

İçerik

• Analiz ve Tasarım Modelleri Yapısı• Analiz Class’ları• Class Bulma Teknikleri

Page 482: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

İlgili Roller

Page 483: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Analiz Modeli Girdileri

Page 484: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Analiz Modeli Oluşturma Aşamaları

1 < N < 5}

Page 485: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Analiz ve Tasarım Model Yapısı

• Analiz (veya Tasarım) Paketleri • Gerek duyulduğunda class başına ve/veya modül

genelinde State Machine şemaları• Kullanım Senaryosu Gerçekleştirilmeleri (Use Case

Realizations)• Temel Soyutlamalar (Sadece Analiz Modelinde)• Katmanlar ve Modüller (Özellikle Tasarım Modelinde)

Page 486: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Use Case Realizations İçeriği

Analiz veya Tasarıma aitliğine bakılmaksızın Use Case başına,

• Bir Class Şeması: VOPC (View of Participating Classes)2. Bir Class Şeması: Traceabilities3. N sayıda Etkileşim Şeması

1 < N < Akış Sayısı

1 = Temel Akış her zaman alınır.

Analiz/Tasarım ModeliÇalışmaları

Page 487: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Modeller ve Modüller“Analysis Elements”

Page 488: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Modeller ve Modüller“Design Elements”

Page 489: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Modeller ve Modüller“UCR – Analysis Mapping”

Page 490: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Modeller ve Modüller“UCR – Design Mapping”

Page 491: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Senaryo – Class İlişkisi

Aynı class birden fazla UCR’da,kullanılabilir. Böylece class’ların sorumlulukları bir takım çalışmasıyla senaryo ihtiyaçlarına bağlı olarak zamanla eksiksizleşir.

‘1’

‘2’

‘3’

Page 492: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Diğer Tasarım Seviyesi Modelleri

Tasarımcı:• Deployment Modeli• İmplementasyon Modeli (*)Veritabanı Analisti:• Veritabanı Modeli (Data Model)Kullanıcı Arayüzü Tasarımcısı:• Kullanıcı Etkilişimi Modeli (Human

Interaction / User Experience Model)

Page 493: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Diğer Tasarım Seviyesi Modelleri“Deployment Modeli”

Page 494: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Deployment ŞemasıÖrneği

Page 495: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Diğer Tasarım Seviyesi Modelleri“Veritabanı Modeli”

Page 496: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Diğer Tasarım Seviyesi Modeli“Kullanıcı Etkileşimi Modeli”

Page 497: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Diğer Tasarım Seviyesi Modelleri“Kullanıcı Etkileşimi Modeli”

Page 498: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

İçerik

• Analiz ve Tasarım Modelleri Yapısı• Analiz Class’ları• Class Bulma Teknikleri

Page 499: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Analiz Class’ları Nelerdir?

• Analiz class’ları bulunurken üç farklı referans kullanılır:

• Sistem ve aktörleri birbirlerinden ayıran sınırlar• Sistemin kullandığı bilgi türleri• Sistemin akış mantığı

Page 500: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Analiz Class’ları Nelerdir?

<<boundary>>

<<entity>>

<<control>>

=

=

=

Stereotype aynı sembolle ifade edilen nesneleri ayrıştırmaya yarar.

Page 501: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Analiz Class’ı Çeşitleri

<<boundary>>

<<boundary>>

<<entity>>

<<control>>

<<entity>>

<<boundary>>

Aktör1

Aktör2

Sistemin dış dünyayla etkileşimini sağlar

Sistemdeki verileri depolar ve yönetir

Use Case davranışını koordine eder

Page 502: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Boundary Class

• Sistemin sağladığı işlevler ile kullanıcıları arasındaki etkileşimleri sağlar– User interface class’ları

• Kullanıcıya sağlanan bilgilere odaklanır• UI detay özellikleri bu aşamada göz önüne alınmaz• Örnek: ViolationsDialog

– System / Device interface class’ları• Hangi protokollerin tanımlanması gerektiğine odaklanır.

Protokollerin implementasyon detayları bu aşamada göz önüne alınmaz

• Örnek: OffendersDBProxy

Page 503: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Entity Class

• Sistemin temel kavramlarının bir modelidir• Genellikle saklanacak bilgileri ifade eder• Sistem seviyesindeki mantığı içerir• Ortamdan bağımsızdır• Birden fazla use case’de kullanılabilir

Page 504: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Control Class

• Use case’in davranışını kontrol ve koordine eder• Use case’in yerine getirmesi gerekenleri iş bazında

class’lara atar– Bir control class’ı diğer class’lara bir şey yapmaları isteğini

iletmeli ve kesinlikle atama haricinde bir iş yapmamalıdır

• Boundary ve entity class’larını bir araya getirir• Genellikle her use case için bir control class’ı vardır

Page 505: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Çok Katmanlı Mimari

Tasarımdaki karşılıkları aşağıdaki gibi olabilir (Java/J2EE):

• Arayüz Katmanı: JSP• İş Mantığı Katmanı: Session Beans + Servlets• Veri Katmanı: Entity Beans • + Veri Erişim Katmanı, vs. vs.

Page 506: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

İçerik

• Analiz ve Tasarım Modelleri Yapısı• Analiz Class’ları• Class Bulma Teknikleri

Page 507: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Analiz Class’larını Bulma Yolları

1. Her use case için:a. Dokümanına başvurunuz. b. Entity class’larını bulunuzc. Boundary ve Control class’larını bulunuzd. Her class için:

i. Değişkenlerini bulunuzii. İlişkilerini (Mesajları da içerir) bulunuz

2. Modelin bir sağlamasını yapınız

Page 508: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Analiz Class’larını Bulma Yolları

//

Page 509: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Class’ları Bulacağımız Yerler 1

Birincil kaynağın UC Dokümanı olduğunu aklımızda tutarak,Eğer Use Case Dokümanı sorunluysa:• UC tanımı her zaman analiz class’larını bulmak için kafi

olmayabilir– Önce Entity class’ları bulunmalıdır

• Müşteriye yönelik yazılan uc tanımına gerekli sistem reaksiyonlarını ifade edecek detaylar (sistem içi davranışlar) eklenebilir

• Sistemin dışarıdan gözlenen davranışlarına sebep olan iç özelliklerine odaklanmak gerekebilir

Page 510: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Class’ları Bulacağımız Yerler 2

• Class’lar aşağıdaki dokümanlarda gizlenebilirler:– Gereksinim Dokümanları– Use case modeli– Müşteri istekleri– Problem domain– Proje dokümanları

Page 511: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Class’ları Bulacağımız Yerler 3

• Boundary class’ları– Her aktör / uc ikilisi için en az bir tane olmalıdır

• Control class’ları– Genellikle her uc için bir tane vardır– Benzer control class’ları varsa ait oldukları

uc’ler birleştirilebilirler• Örnek: “manage traffic report”, “edit/add/remove

traffic report” use case’lerini barındırabilir.

Page 512: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

İsim Ayıklama Yöntemi“Noun Filtering”

Use Case Tanımı

Senaryolar

İsim Ayıklama

Use Case için ilk VOPC Şeması sürümü

Diğer Dokümanlar

Page 513: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

İsim Ayıklama Yöntemi“Noun Filtering”

• Entity Class’ları– Problem tanımı, gereksinim ve diğer mevcut

dokümanlardaki isimleri inceleyerek bulunur– Bulunan isimler:

• Nesneler• Nesnelerin değişkenleri• Aktörler• Hiçbiri olabilir

Page 514: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

İsim Ayıklama Yöntemi“Noun Filtering”

Problem metninin dikkatle okunarak, herhangi bir hatalı düşünce şeklinden kötü olarak etkilenmemek için bulunan tüm isimlerin listelenmesidir.

Daha sonra bulunan isimlerden entity class’ı olamayacaklar elenir.

Page 515: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

İsim Eleme Nedenleri 1

• Birbirine eş class’lar– Yalnızca isimlendirme farklı

• İlgisiz class’lar– Oluşturulacak sistem için anlamsız

• Değişkenler / Metodlar– İlkel veri tipleri– Veri işleme şekilleri

Page 516: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

İsim Eleme Nedenleri 2

• Roller– Class’dan ziyade bir class’dan türetilebilecek nesne adayları

• Örnek: “Asistan” ve “Öğrenci” “Kişi” class’ın farklı rolleridir.

• Soyut kavramlar– Fiziki olarak mevcut olmayan değerlerdir– Nadiren analiz class’ına dönüşürler. Daha çok değişken

adaylarıdır: “İstek”, “Satış”– Tasarım aşamasında class’lara dönüşebilirler.

Page 517: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Değişkenleri Bulma Yolları

• Saptanan class’ların özelliklerini ifade ederler– Bu class’larca taşınacak veri yapılarıdır

• Class’a dönüşmeyen isimler– Akış içinde değeri önemli olan veri yapılarıdır– Bir nesne tarafından benzersiz bir biçimde

sahiplenilecek değerlerdir

Page 518: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

İlişkileri Bulma Yolları

• İlişki (Association) genellikle bir fiile karşılık gelir– Mekan: yanında, içinde, üstünde … – Eylem: oluşturmak, yönetmek … – Haberleşme: konuşur, dinler, onaylar, uyarır … – Sahiplik: aidiyet, parça, bütün ...– Diğer: çalışır, evlidir, okur ...

• Problem ve Çözümle ilgisiz ilişkileri göz ardı ediniz • Nesne Etkileşim Şemaları ilişkileri bulmanın en

etkili yoludur

Page 519: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Örnek: Trafik Denetim Sistemi

• Entity Class adayları:

Trafik Raporu

Süpervizör

Rapor Okuması

Konfirmasyon

Suçlu Detayları Formu

T. Raporuna Eklenen

Sistem

Suçlu

Police memuru

Araç no

Plaka no

Hata

Trafik polisi

Polis şefi

Suç

ID

Password

Polis merkezi

Kapanma

Tarih

Hız

Trafik hatası

Memur

Page 520: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Eşdeğer Class’ları Eleme

Memur ve Bilirkişi Kişi ile temsil edilecek

Trafik Raporu

Süpervizör

Rapor Okuması

Konfirmasyon

Suçlu Detayları Formu

T. Raporuna Eklenen

Sistem

Suçlu

Police memuru

Araç no

Plaka no

Hata

Trafik polisi

Polis şefi

Suç

ID

Password

Polis merkezi

Kapanma

Tarih

Hız

Trafik hatası

Memur

Page 521: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

İlgisiz Class’ları Eleme

Trafik Raporu

Kişi

Rapor Okuması

Konfirmasyon

Suçlu Detayları Formu

T. Raporuna Eklenen

Suçlu

Police memuru

Araç no

Plaka no

Trafik polisi

Polis şefi

Suç

ID

Password

Polis merkezi

Kapanma

Tarih

Hız

Page 522: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Değişken ve Metod Eleme

Trafik Raporu

Kişi

Rapor Okuması

Konfirmasyon

Suçlu Detayları Formu

T. Raporuna Eklenen

Suçlu

Police memuru

Araç no

Plaka no

Trafik polisi

Polis şefi

Suç

ID

Password

Kapanma

Tarih

Hız

Page 523: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Soyut Kavramları Eleme

Trafik Raporu

Kişi

Konfirmasyon

Suçlu Detayları Formu

Suçlu

Police memuru

Trafik polisi

Suç

Page 524: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Örnek: Trafik Denetim Sistemi

Ayıklama Öncesi:

Trafik Raporu

Süpervizör

Rapor Okuması

Konfirmasyon

Suçlu Detayları Formu

T. Raporuna Eklenen

Sistem

Suçlu

Police memuru

Araç no

Plaka no

Hata

Trafik polisi

Polis şefi

Suç

ID

Password

Polis merkezi

Kapanma

Tarih

Hız

Trafik hatası

Memur

Page 525: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Örnek: Trafik Denetim Sistemi

Trafik Raporu

Kişi

Suçlu Detayları Formu

Suçlu

Police memuru

Trafik polisi

Suç

Ayıklama Sonrası:

Page 526: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

• Trafik raporu• Kişi• Suçlu Detayları Formu• Suçlu• Polis memuru• Trafik polisi• Suç• …

Entity class’ları

Bazen bu listede boundary class’ları da kendilerini bariz olarak gösterirler. Ancak bu class’ları bulmanın en iyi yolu UC akışını incelemektir.

Page 527: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Boundary class’ları

• RaporDetaylariFormu• PolisDetaylariFormu• RaporIzlemeFormu• KonfirmasyonEkrani• SucluDBProxy• PolisDBProxy• ...

Veri Tabanına erişim katmanındaki interface’ler.

Page 528: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Control Class’ları

• RaporKontrol• LoginKontrol

Page 529: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Use Case’ler

• Rapor Et– Rapor Ekle– Rapor Sil– Rapor İzle– Rapor Güncelle

• Sisteme Bağlan

Page 530: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Analiz Class’ları 1

Page 531: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Analiz Class’ları 2

Violation

EditReportController<<control>>

Traf f icReport

Of f ender Traf f icPoliceman

Clerk

ReportDetailsForm<<boundary >>

Conf irmationDialog<<boundary >>

PolicemanDBProxy<<boundary >>

Of f endersDBProxy<<boundary >>

Of f endersDB

PolicemenDB

1

1 1

1

1

Page 532: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

İlham Kaynakları

Christopher Alexander

Martin Fowler Peter Coad

Kelli HoustonSizin Adınız

?

Don Box

Page 533: Analist Eğitimi - Tüm Bölümler -  [535 Slides]

Pratik Egzersiz