SlideShare a Scribd company logo
1 of 533
Analize Giriş Bölüm 1/4
İçerik
Eğitmen Hakkında Erol Bozkurt – erol.bozkurt@xupit.com 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ığı.
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.
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
Katılımcılar Hakkında Şirketiniz ve faaliyet alanı Sizin rolünüz Eğitim almanızdaki nedenler Eğitime yönelik beklentileriniz
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.
Bizi Seçtiğiniz İçin Teşekkür Ederiz!
Analize Giriş Bölüm 2 / 4
İçerik
Analizden Ne Anlıyoruz? Bir konuyu derinlemesine inceleyerek  ,[object Object]
temel parçaları ve ilişkilerini,
işleyiş mantığını ve
baz aldığı varsayımlarısaptama faaliyetlerinin tümüdür. Sherlock Holmes
Analizden Ne Anlıyoruz? Analiz esnasında dikkat edilebilecek öğeler ,[object Object]
Çö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çleriFormül: Roller – İş Ürünleri – İş Adımları
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!
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.
Analist Kimdir? Terapisttir Toplantı yöneticisidir Değişiklik mühendisidir
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 ...
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.
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.
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.
Analist Türleri
Analist Türleri / Farklı Tanımlar İş Analisti Sistem Analisti Analist / Programcı Veri / Veritabanı ‘Analisti’
Alakalı Meslekler Değişiklik Mühendisi Süreç Mühendisi İş Geliştirme Yöneticisi Proje Yöneticisi
İlgili Standartlar RUP, XP, MIL-STD, IEEE vs. CMMI CobiT, ITIL
Olası Bir Kariyer Planı
İş Analisti
İş Analisti
Sistem Analisti
Sistem Analisti
Analize Giriş Bölüm 3 / 4
İçerik
İç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ı
KiminNeyiNe ZamanNasıl yapacağını tanımlamaktır. Yeni  sistem Değişen gereksinimler Süreç Süreç Nedir?
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ı
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
Milestone(s) Ürünün sürümleri Bu fazlar kısa bir süre için örtüşebilir Fazlar Waterfall Yazılım Süreci Gereksinim Analizi Tasarım İmplementasyon Test Bakım zaman
Waterfall Neden Pratik Değildir? 1. Sahip olunması istenen bilgilerin hepsi hazır değildir Bü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 gerekir Buradan alınan sonuçlara göre gereksinimler değişebilir  3. Sık sık ara sürümler çıkarmak zorunda kalırız Paydaşların (müşteriler, yöneticiler) projeye güvenlerini tazelemek gerekir Tasarı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
Spiral Süreç
M  I  L  E  S  T  O  N  E  S α(prototype)   X β X sürüm 1.0 1 2 3 1  2 3   1 2 3 1   2 3  2   3 1 Spiral Süreç zaman İterasyon # Gereksinim Tasarım Kodlama Test
Örtüşen Süreç Aşamaları: UP
RUP’un Gelişimi Rational Unified Process 5.0 İşlevsellik Testi Performans Testi Gereksinim Denet. Değişiklik Denet. İş Akışı Veri Tabanı UI 1998 Rational  Objectory Process 4.1 1996-1997 UML Rational Yaklaşımı Objectory Process 1.0-3.8 1987-1995 Ericsson Yaklaşımı
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”
İç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ı
zaman Gereksinim Kontrolü Sistem Mimarisi  Kullanılabilirlik  Resmi Sürüm Proje Gelişim Süreci Inception Elaboration Construction Transition saptama tasarlama oluşturma sunma ,[object Object], berraklaştırılması ,[object Object],	          saptanması, Baseline	 ,[object Object]
Transition: Kullanıma sunulma,[object Object]
I n c e p t i o n E l a b o r a t i o n C o n s t r u c t i o n T r a n s i t i o n P r e l i m i n a r y i t e r . i t e r . i t e r . i t e r . i t e r . i t e r . i t e r . I t e r a t i o n ( s ) # 1 # 2 # n # n + 1 # n + 2 # m # m + 1 İterasyonlar ve İşler Aşamalar İşler Gereksinim Analiz Tasarım Uygulanma Test İterasyon
İterasyonlar ve Risk Proje risklerinin ortaya konması ,[object Object]
Risk-bazlı iterasyonlar
EntegrasyonInception Waterfall Elaboration ,[object Object]
Müşteri memnuniyetini ölçmeRisk Construction ,[object Object]
Sistem Mimarisinin oluşması
Temel mekanizmaların tasarlanmasıTransition Preliminary Iteration Architect. Iteration Architect. Iteration Devel.  Iteration Devel.  Iteration Devel.  Iteration Transition Iteration Transition Iteration Post- deployment Zaman
Risk Azaltma Odaklı İterasyonlar İterasyon N’in Planı ,[object Object]
 ZamanlamaEn önemli risklere yönelik senaryoların oluşturulması İlk Proje Riskleri İlk Proje Odağı Iteration N’in oluşması ,[object Object],Iterasyon N Iteration N’in değerlendirilmesi Yenilenen Proje Planı ,[object Object]
 Zamanlama
 Odak/İçerikGiderilen Riskler Diğer Riskler ,[object Object],[object Object]
İterasyon Süreci ,[object Object]
 Güncel Risk Raporu
 Model, kod ve test kayıtları İterasyon Planı Gereksinimlerin Sapt. Analiz + Tasarım Uygulama Test Release Release raporu Yeni Risk Raporu Konfigürasyon Denet.
Adapte Olabilen bir Süreç: UP Rational Stratejik Hizmetler Biriminde baş danışman.  Uzmanlık alanları: ,[object Object]
 Sistem Mühendisliği Süreçleri
 Yazılım Proje Yönetimi
 LiderlikSoftware Leadership: A Guide to Successful Software Development Murray Cantor Slaytlar 20 - 28
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 ...
‘Waterfall’ Yaklaşımının Sonuçları Sözde Sonuçlar Gerçek Sonuçlar ,[object Object]
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. ,[object Object]
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.
Paradoks Yapı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çerisindeeksiksizleşmesi ve detay seviyelerinin artması.
Yazılım Problemi: İki nokta arasındaki en kısa yol Buradan Buraya Nasıl gideceğiz? Düşündüğümüz Güzergah Müşteriyi Tatmin Edebilecek Alan ,[object Object]
Maliyet (zaman ve para)
Katmadeğer: Yazılım Geliştirici (kar, deneyim, satış, Pazar payı vs.)Projenin ilk Durumu ,[object Object]
Elemanlar, kabiliyetleri, bilgileri
Kaynak eksiklikleri
Belirsizlikler,[object Object]
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. Planlanan Proje Bitişi Planlanan Güzergah Gerçek Güzergah ‘Waterfall’Yönetimi: “Planla ve Takip Et”  Müşteriyi Tatmin Edebilecek Alan Projenin ilk Durumu Gerçek Proje Bitişi
İteratif Yaklaşımda Liderlik: “Manevra Yap ve Adapte Ol” Gerçek Güzergah Devamlı olarak : Resmin geneline hakim ol – Proje yönelik istek değişikliklerini değerlendir Manevra 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?  Gerçek Proje Bitişi Planlanan Proje Bitişi Planlanan Güzergah Müşteriyi Tatmin Edebilecek Alan Projenin ilk Durumu
İç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ı
Bir iş Bir rol Activity  (Faaliyet) Role (Çalışan) Artifact (Oluşanlar) Sürecin oluşturduğu, kullandığı veya değiştirdiği bir ürün Use case UP’in 3 Temel Parçası  Use Case’leri tanımla Analist sorumluluğu Use case paketi
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.
Activity
Artifact
Unified Process Yapısı
Discipline ve Workflow Disiplin: Gereksinim Yönetimi Workflow: Gereksinim Yönetimine  ait çalışma şekli detayları
Workflow Details
Daha Fazla Detay “Rol Üzerinden”
Daha Fazla Detay“Yapılacak İş Üzerinden”
Daha Fazla Detay“Üretilenler Üzerinden”
Daha Fazla Detay“Bir Adım Daha İleriye: Şablonlar”
İş Akışları Modelleri Oluşturur
“Ürünler ve Kullanım Teknikleri”
Özetlersek
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.
İç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ı
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.
SPEM Gösterimi“Disiplinler” X X X
SPEM Gösterimi“Roller”
SPEM Gösterimi“Yapılanlar”
SPEM Gösterimi“Üretilenler”
SPEM Gösterimi“Roller, Yapılanlar ve Üretilenler”
İç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ı
Süreç Haritası
Süreç Haritası“Çevik Süreç Tanımları”
Süreç Haritası“CMMI”
Süreç Haritası“Unified Process”
UP Uyarlamaları
Gereksinim Yönetimi“Standart UP”
Analiz ve Tasarım “Standart UP”
İmplementasyon “Standart UP”
Bizim UP Sürecine Yaklaşımız
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
Gereksinimler
2. Analiz ve Tasarım
3. İmplementasyon
4. Test
Proje Yönetimi
Süreç Mühendisliği
İç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ı
İdeal Proje Ekibi
BizimProje Ekibimiz
Ahmet = Sistem Analisti
Ahmet = UI Tasarımcısı
Ahmet = Testçi
Leyla = Sistem Mimarı
Leyla = Tasarımcı
Leyla = Programcı
Mehmet = Veritabanı Tasarımcısı
Hülya = Proje Yöneticisi
Hülya = Süreç Uzmanı
İç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ı
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.
1a. Paydaşlar“Kullanıcılar”
1b. Paydaşlar“Proje Ekibi Adayları”
1c. Paydaşlar“Proje Ekibi”
2a. Gereksinim Türleri
2b. Gereksinim Türleri
2c. Gereksinim DeğişkenleriÖrnek: “Statü”
3. Kısıtlama Türleri
4. Risk Türleri
5. Metrik Türleri
6. Emek Türleri
7. Bakım“Problem Türleri”
8. Test
9. UML Kapsamına Ekler“Size Özel Stereotype”
İlham Kaynakları Philippe Kruchten Watts Humphrey ? Murray Cantor Sizin Adınız Terry Quatrani James Bach James Rumbaugh Grady Booch Ivar Jacobson
Analize Giriş Bölüm 4 / 4
Neredeyiz?
İçerik
İç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
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
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)
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
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
İç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
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
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
Detay Seviyeleri Daha detaylı Müşterinin probleminin tanımı İhtiyaç İşlev Çözümün tanımı Gereksinim Çözümün gerçekleştirilmesi Gerçekleştirme
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
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?
Ö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.
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ş)
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
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
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
İç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
Altı Ekip Yeteneği Problem analizi Müşteri ihtiyaçlarını anlama Sistemi tanımlama Sistem kapsamını yönetme Sistem tanımının revize edilmesi Doğru sistemin geliştirilmesi
1. Problemi analizi Bu konuya ileride, daha sonra değineceğiz.
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
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?
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?
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ı
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?
İç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
Problemler ve Fırsatlar Sistemlerin en önemli iki nedeni: Problem çözmek; mevcut sistem müşteri ihtiyaçlarını karşılamıyor demek  Fırsatları değerlendirmek; yeni ürün düşünceleri, yeni işlevler, yeni pazarlar vs.  Biz problem çözmeye odaklanacağız
Problem Analizi Aşamaları Problem beş aşamada tahlil edilebilir: Problem tanımı üzerinde anlaşmak Problemin temel nedenlerini anlamak Paydaş ve kullanıcıları tespit etmek  Sistemin sınırlarını tespit etmek Çözümü sınırlandıracak olan kısıtları bulmak
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?
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  2Probleminnedenlerinianlamak
2Probleminnedenlerinianlamak ‘Akıl haritası’ (mindmap) çizebiliriz 12 m.  Boeing Uçak A.H.
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
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
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
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
İç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
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
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
İş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)
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!
İ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
İş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
İş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}
İş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?
İşlevler ve Gereksinimler Üst seviye gereksinimler: İşlevler “features” Fonksiyonel gereksinimler “functional requirements” Fonksiyonel olmayan gereksinimler “supplementary requirements”
Gereksinim Grupları
İç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
VizyonDokümanı GelenekselSRS EkGereksinimler Use-Case Modeli Senaryo Odaklı Gereksinim Yönetimi İhtiyaçlar İşlevler Senaryo Odaklı Yol Geleneksel Yol Gereksinimler = + Geleneksel Software Requirements Specification (SRS) dokümanı Use Case Modeli ve Ek Gereksinimler Dokümanına (Supplementary Requirements) karşılık gelmektedir.
Ek Gereksinimler (Supplementary Specification) Proje Sözlüğü (Glossary) Gereksinim Ürünleri (Artifact) Use Case Modeli Aktörler Use Case’ler ... Use-Case Dokümanları
İ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ı
Gereksinim Ürünleri (Artifact) Use Case Şemaları
Gereksinim Ürünleri (Artifact)
[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
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.
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
Vizyon - Amaç
Vizyon – İş Fırsatı
Vizyon – Problem Tanımı
Vizyon - Paydaşlar
Paydaş Detayları
İşlevler
Gereksinim Ürünleri (Artifact)
[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ı.
Use Case: Olayların Akışı ,[object Object]
Birden fazla Alternatif Akış:
Başarılı alternatif akışlar
Başarısız Akışlarhata durumlarını tolere etmeye yarar“Happy Path”
Senaryo Nedir? Bir senaryo use case’in içerdiği akışların bir kombinasyonunun başlayıp bitişidir: Use Case Instance.
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
Senaryolar Her use case’in odağı başarılı TemelAkışı’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
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.
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
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*
1. Use Case Tanımı İlişkili Use Case’ler Ek Gereksinimler İş Kuralları Kullanım Yoğunluğu Açık Konular
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.
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
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.
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)
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
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.
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
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?
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
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.
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
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.
Bid on Item - Use Case Dokümanı İnternette Açık Artırma
UC Dokümanı - Tanım
UC Dokümanı - Akış
UC Dokümanı – Geriye Kalan
Gereksinim Ürünleri (Artifact)
[3]Ek Gereksinimler: FURPS+ Modeli Ek Gereksinimlerin kapsamı: ,[object Object]
Kullanılabilirlik (Usability)
Güvenilirlik (Reliability)
Performans
Bakım (Supportability)
+ = geriye kalan herşey,[object Object]
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?
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
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)
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?
“+” İçeriği: İmplementasyon  Interface Operasyonel Paketleme Kanuni konular Ve aklınıza ne gelirse!
“+” - İ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)
“+” - 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.)
“+” - 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)
“+” - 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ı?
“+” - 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ı)
FURPS + ve UML
Gereksinim Ürünleri (Artifact)
[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
İç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
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.
Gereksinimlerin Takip Edilebilirliği
Önceliklendirme ve Takip Edilebilirlik Kriterleri
Önceliklendirme ve Takip Edilebilirlik Kriterleri veya
Gereksinim Yönetimi Planı 1“Vizyon Kapsamında”
Gereksinim Yönetimi Planı 2“Vizyon Kapsamında”
Gereksinim Yönetimi Planı 3“Vizyon Kapsamında”
Gereksinim Yönetimi Planı 4“Vizyon Kapsamında”
Gereksinim Yönetimi Planı Configuration Management Plan Requirements Management Plan
1. İterasyonların Belirlenmesi İnternet’te Açık Artırma Sistemi
2. İterasyonların Belirlenmesi
3. İterasyonların Belirlenmesi Sistem Mimarisini Etkileyen UC’ler İterasyon 1 İterasyon 2 İterasyon 2
İlham Kaynakları James Bielak Ellen Gottesdiener Alistair Cockburn ? Sizin Adınız
Pratik Çalışma
Analistler için Modelleme Bölüm 1 / 6
İçerik
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ığı.
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.
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
Katılımcılar Hakkında Şirketiniz ve faaliyet alanı Sizin rolünüz Eğitim almanızdaki nedenler Eğitime yönelik beklentileriniz
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.
Bizi Seçtiğiniz İçin Teşekkür Ederiz!
Analistler için Modelleme Bölüm 2 / 6
İçerik
İçerik Nesne Tabanlı Yaklaşımın Temelleri Class’lar ve Nesneler
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
Abstraction Abstraction
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
Encapsulation
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
Modularity
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
Kullanıcı Her abstraction bir hiyerarşi  oluşturur. Sistem
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
İçerik Nesne Tabanlı Yaklaşımın Temelleri Class’lar ve Nesneler
Class’lar ve Nesneler ali					 	               meltem özellikler/benzerlikler?
Class’lar ve Nesneler ali					 	           meltem yaş             cinsiyet             ad soyad
Class’lar ve Nesneler iki FARKLI kişi ali					 	   meltem yaş             : 25 cinsiyet      : erkek ad              : ali soyad        : turalı yaş             : 23 cinsiyet      : kadın ad               : meltem soyad         : manisalı
Class’lar ve Nesneler yaş cinsiyet ad soyad Değişkenler/ özellikler nesne ali meltem yaş             : 25 cinsiyet      : erkek ad              : ali soyad        : turalı yaş             : 23 cinsiyet      : kadın ad               : meltem soyad         : manisalı
Class’lar ve Nesneler Değişkenler/ özellikler ??? Diğer nesneler:
Class’lar ve Nesneler isim başkent nüfus paraBirimi Değişkenler/ özellikler Diğer nesneler: Avustralya İngiltere İtalya
Class’lar ve Nesneler Tüm nesneler Bu nesneleri birbirlerinden nasıl ayıracağız?
Class’lar ve Nesneler yaş cinsiyet ad soyad isim başkent nüfus paraBirimi Kişi Ülke Ortak değişkenler
“yenibirkişi” ? “hangideğişkenler?” Class’lar ve Nesneler yaş cinsiyet ad soyad Değişkenler/ özellikler Kişi(ler) ali meltem yaş             : 23 cinsiyet      : kadın ad               : meltem soyad         : manisalı yaş             : 25 cinsiyet      : erkek ad              : ali soyad        : turalı
“yenibirkişi” Class’lar ve Nesneler yaş cinsiyet ad soyad Değişkenler/ özellikler Kişi(ler) ali meltem yaş             : 23 cinsiyet      : kadın ad               : meltem soyad         : manisalı yaş             : 25 cinsiyet      : erkek ad              : ali soyad        : turalı yaş cinsiyet ad soyad
Class’lar ve Nesneler Kişi yaş cinsiyet ad soyad Nesne tabanlı terminoloji class (instance)variables attributes fields
Class’lar ve Nesneler yaş cinsiyet ad soyad Kişi instances ali meltem yaş             : 23 cinsiyet      : kadın ad               : meltem soyad         : manisalı yaş             : 25 cinsiyet      : erkek ad              : ali soyad        : turalı Nesneler
Class’lar ve Nesneler İngiltere Nesneler ali Bir nesnenin özellikleri nelerdir? isim : ingiltere Başkent : Londra Nüfus: 3,534,209 paraBirimi : Pound } yaş             : 25 cinsiyet      : erkek ad              : ali soyad        : turalı ? } ? yaş             : 23 cinsiyet      : kadın ad               : meltem soyad         : manisalı } ? meltem
Class’lar ve Nesneler kimliği kimliği İngiltere Nesneler ali Bir nesnenin özelliklerini ne  belirler? isim : ingiltere Başkent : Londra Nüfus: 3,534,209 paraBirimi : Pound } yaş             : 25 cinsiyet      : erkek ad              : ali soyad        : turalı state } state yaş             : 23 cinsiyet      : kadın ad               : meltem soyad         : manisalı } state kimliği meltem
Class’lar ve Nesneler Nesne Nesnenin sahip olduğu özellikler State: Durum Identity: Kimlik
Class’lar ve Nesneler Nesneler Değişebilir Benzersiz State / Durum Identity / Kimlik
Class’lar ve Nesneler {Orta Yaş} {Yetişkin} Benzersiz Identity / Kimlik yaş             : 25 cinsiyet      : erkek ad              : ali soyad        : turalı yaş             : 45 cinsiyet      : erkek ad              : veli soyad        : kara State / Durum aynı da olabilir farklı da
Analistler için Modelleme Bölüm 3 / 6
İçerik
İçerik Görsel Tasarım UML Modeli UML Sonrasında Yazılım Dünyası
 Görsel Tasarım Bir sistemin verdiği bir hizmeti nasıl gerçekleştirdiğinin görsel olarak ifade edilmesidir.
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).
Rumbaugh Tanımı Bilgi İşlem “Bir Model bir Sistemin 	    vazgeçilmez özelliklerini gösterir.” Dr. James Rumbaugh Sipariş Ürün Kargo İş Akışı Görsel Tasarım standartlaşmış sembolleri kullanarak tasarım yapmaktır
Görsel tasarımın faydaları ,[object Object]
İletişimiKolaylaştırmak
ProjeKontrolünüArtırmak
SistemMimarisiniOluşturmak
TekrarKullanabilmek,[object Object]
İletişimi Kolaylaştırmak Birlikteçalışmasıgerekenbuikitakımçoğuzamanfarklıkelimehazneleriyüzündenanlaşamıyor. GörselTasarımdaUMLkullanımımüşterinindünyasıylasistemindünyasınıbirbirinebağlar Programcılar bu gereksinimlere dayanarak sistemi oluştururlar İş Analistleri sistemin gereksinimlerini belirlerler
Proje Kontrolünü Artırmak Sistemleryüzlercehattabinlerceclass’danoluşabiliyor. Buclassgruplarısistemebakankişininihtiyacınagöreorganizeedilebilmeli. GörselTasarımsistemefarklıyönlerdenbakabilmeyisağlar.
Sistem Mimarisi Oluşturmak GörselTasarımoluşançözümükullanılanprogramlamadilindenbağımsızhalegetirir. Programlamadilibelirlenincetasarımfizikiortamataşınır.
Tekrar Kullanabilmek Farklı Sistemler Tasarımınızıbileşenlerebölerekçözümünüzünparçalarınıtekrarkullanabilirsiniz. Bileşenler
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
Tijuana “shantytown”: http://www.macalester.edu/~jschatz/residential.html UML Öncesi
İçerik Görsel Tasarım UML Modeli UML Sonrasında Yazılım Dünyası
Modeller ve Şemalar Bir model bir sistemin Belli bir açıdan eksiksiz olarak Ifade edilebilmesini sağlar State Diagrams State Diagrams Class Şeması Use Case Diagrams Use Case Diagrams State Diagrams Use Case Şeması State Diagrams Use Case Diagrams Object Şeması Use Case Diagrams Sequence Şeması Scenario Diagrams State Diagrams Scenario Diagrams State Diagrams Component Şeması Collaboration / Communication Şeması Model Component Diagrams Scenario Diagrams Component Diagrams Scenario Diagrams Deployment Şeması Statechart / State Machine Şeması Activity Şeması
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
Model Nedir? Gerçeğinbasitleştirilmişbirifadesi, SisteminveyaSürecinkavramsaldüzeydeanlaşılmasıdır
Model Kullanımı Gereksiz Zaruri F-15 Kağıttan Uçak
Model Kullanımı BilişimTakımlarıF-15’lerikağıttanuçakyaklaşımıylaoluşturabileceklerinizannedebiliyor. GereksinimlerdenKodlamayageçiş Dahauzunçalışmak,sistemmimarisiodaklıolmayankodyazmak EsnekbirSistemMimarisiolmaması Başarısızlık
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.
4 Model Kuralı Modelprobleminasılçözeceğinizibelirler. Hermodelfarklıdetayseviyelerindekullanılabilir. Modelçözümünkullanılacağıdünyadankopmamalıdır. Çözümeyöneliktekbirmodelyetersizdir
4 Model Kuralı Modelprobleminasılçözeceğinizibelirler. Oluşturacağınızmodelproblemeveçözümeyaklaşımınızıbelirler. Seçilenmodelbiranlamdünyasıoluşturur Heranlamdünyasısizibaşkabirçözümeyöneltir
4 Model Kuralı Hermodelfarklıdetayseviyelerindekullanılabilir 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.
4 Model Kuralı Modelçözümünkullanılacağıdünyadankopmamalı Modelgerçekçiolmalı Gerçekyerinegörebirkullanımsenaryosu,yerinegörebirsistemkısıtlamasıolabilir.Dolayısıylamodelfarklıreferanslarıbarındırabilmelidir. Gerçeğibasitleştirmeli Riskliunsurlarıişaretetmeli
4 Model Kuralı Çözümeyöneliktekbirmodelyetersizdir Sistemlerbirbirlerikötüolaraketkilemeyenfarklımodellerleincelenmeli. Birbirlerindenbağımsızolarakoluşturulabilen,incelenebilenfakatbirbirleriylealakalıolanmodelleroluşturulmalıdır Modellerinfarklıreferansları,oluşturulmanedenlerivekullanıcılarıolmalıdır.
Kullanıcı İşlevsellik SistemMimarı Performans Sisteme4+1Bakışı Logical View Implementation View Analiz /Tasarım Kod Versiyonlar Use-Case View Process View Deployment View Topoloji kurulum, kullanım
İçerik Görsel Tasarım UML Modeli UML Sonrasında Yazılım Dünyası
Fallingwater:  http://www.casas.com/architect/franklloydwright/fallingwater000.html UML Sonrası Frank Lloyd Wright
UML’in Sınırları Takım Üyeleri Dil Kullanılan Süreç
UML’in Yarattığı İş Fırsatları Ken Ishiwata 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
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.
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
İlham Kaynakları Max Goff Eğitimimizin sonunda açık kaynak kodlu bir projeyi UML modelinize çekin ve inceleyin:  www.sourceforge.net “Zero Dollar Bill”
Analistler için Modelleme Bölüm 4 / 6
İçerik
İçerik UML Modeli Kavramları UML Tanımını Genişletme Mekanizmaları Davranış Şemaları Yapısal Şemalar
UML 2.0 Şema Türleri * * * * *
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.
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
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.
İçerik UML Modeli Kavramları UML Tanımını Genişletme Mekanizmaları Davranış Şemaları Yapısal Şemalar
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ı ,[object Object]
Yeni özellikler (property) tanımlayabilmek,
Yeni semantik yapılar oluşturabilmek için kullanılır.Genişletme mekanizmaları dörde ayrılır: ,[object Object],[object Object]
Stereotype «button» CancelButton Stereotype ikon gösterimi Stereotype etiket gösterimi  CancelButton state Stereotype kullanım şekli: ,[object Object],Stereotype adını «» işaretleri arasına koyunuz: (Örneğin, «node») ,[object Object],[object Object]
Size Ait İşaretler“UML in Color” Peter Coad (TogetherSoft) entity class’larının da kendi aralarında gruplara ayrılması gerektiğini  söyler: <<Thing>>  <<Description>>  <<Role>>  <<Moment-Interval>>
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 ,[object Object]
Versiyon kontrolü
Konfigürasyon yönetimi
Sahiplik (telif hakkı kanıtı)
vs. vs.,[object Object],[object Object]
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}
Notlar Abstraction-occurrence pattern 1..* Title Copy Oluşturulan modellere eklenen daha detaylı açıklamalardır ,[object Object],Not ikonu içine yazılan yazılardır
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
[object Object]
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ırUML Metamodel
UML Profilleri UML Profilleri özel konulara yönelik UML modelleri geliştirebilmemizi sağlarla ,[object Object],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
UML Profilleri Bir UML profilinde aşağıdaki çalışmalardan gerekenler yapılır:  ,[object Object]
Stereotype’lar ve/veya tagged value çiftleri tanımlanır
Mevcut kurallara yeni ekler tanımlanır
Yeni bir semantik yapı tanımlanır  ,[object Object]
ButonlarKısıtlamalar:  Bir form bir ‘dialog box’ı çalıştırabilir Formlar ve Dialog Box’ların butonları olabilir
GUI Profili GUI Profili Class Association <<stereotype>> Form <<stereotype>> Button <<stereotype>> Contains <<stereotype>> Invokes <<stereotype>> DialogBox Class ve Association UML metamodelinden  gelmektedir
GUI Profili Uygulaması <<Form>> MainView 1 1 <<Invokes>> <<DialogBox>> OpenDialogBox 1 1 <<Contains>> <<Contains>> 1 1 <<Button>> OkButton <<Button>> CancelButton
İçerik UML Modeli Kavramları UML Tanımını Genişletme Mekanizmaları Davranış Şemaları Yapısal Şemalar
UML 2.0 Şemaları
Davranış Şemaları use case şeması* activity şeması* Etkileşim Şemaları sequence şeması collaboration / communication şeması interaction overview timing şeması statechart / state machine şeması*
Use Case Şeması Temel Kavramlar Şema İçeriği Şemayla Aktarılan Bilgiler Tasarım Teknikleri Forward ve Reverse Engineering
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.
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
‘Sihirli’ Use Case Sayısı Nedir? Functional Decomposition!
İ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
Use Case Şeması Sembolleri - 1
Use Case Şeması Sembolleri - 2
Use Case Şeması Sembolleri - 3
Şema Örneği 1
Use Case Bulma Teknikleri 1
Use Case Bulma Teknikleri 2 Event Table Çalışması:
Use Case Bulma Teknikleri 3 Aktörler Adaylarını Bulun Event Table Çalışmasını Yapın Aktör ve Use Case’leri Belirleyin Aktörleri Çizin ve İlişkilerini Düşünün Use Case’leri Çizin ve Aktörlere Bağlayın Use Case’ler Arasındaki İlişkileri Belirleyin
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ı?
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?
Use Case ŞemasıEgzersiz # 1 Lütfen şemadan anladıklarınızı bir paragrafta özetleyiniz (10 dk.)
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ızgerekmektedir. 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.“
Activity Şeması Temel Kavramlar Şema İçeriği Şemayla Aktarılan Bilgiler Tasarım Teknikleri Forward ve Reverse Engineering
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.
İ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ı
Activity Şeması Sembolleri 1
Activity Şeması Sembolleri 2
Activity Şeması Sembolleri 3
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.
Şema Örnekleri 1
Activity Şeması Örnekleri 2
Activity Şeması Örnekleri 3
Activity Şeması Örnekleri 4
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.
Statechart Şeması Temel Kavramlar Şema İçeriği Şemayla Aktarılan Bilgiler Tasarım Teknikleri Forward ve Reverse Engineering
Temel Kavramlar 1
Temel Kavramlar 2
Temel Kavramlar 3 Action ve Output:
Temel Kavramlar 4 Event ve State Machine örtüşmesi:
Temel Kavramlar 5 Bir faaliyet sona erene ve state geçerliliğini yitirene dek eş zamanlı olarak sürekli çalışır:
Temel Kavramlar 6 Duruma (guard condition) göre çalıştırılan komutlar:
Temel Kavramlar 7 Hiyerarşik State Machine’ler:
İlgili Roller Şemayı Hazırlayanlar: Sistem Analisti Tasarımcı Programcı Şemayı Kullananlar: Sistem Analisti Tasarımcı Programcı
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.
İçerik UML Modeli Kavramları UML Tanımını Genişletme Mekanizmaları Davranış Şemaları Yapısal Şemalar
UML 2.0 Şemaları
Yapısal Şemalar class şeması* package şeması* composite structure şeması object şeması component şeması deployment şeması
Class Şeması Temel Kavramlar Şema İçeriği Şemayla Aktarılan Bilgiler Tasarım Teknikleri Forward ve Reverse Engineering
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.
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.
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.
Temel Kavramlar Değişkinler ‘private’ Metodlar ‘public’ Hepsi küçük harfle başlar ve kelimeler bitişik yazılır.
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: ‘-’
Temel Kavramlar Encapsulation: Değişkenlerin ‘private’ olma nedenidir.
Temel Kavramlar Generalization: Farklı ‘abstraction’ seviyeleri arasında ırsiyet ilişkileri kurmak için kullanılır.
Temel Kavramlar Polymorphism: implementasyonun detaylarını gizleyerek kolay kullanımı sağlar. Aynı isme sahip fakat farklı çalışan fonksiyonları ifade eder.
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.
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.
Class Şeması Sembolleri 1
Class Şeması Sembolleri 2
İlgili Roller Şemayı Hazırlayanlar: Tasarımcı Programcı Şemayı Kullananlar: Tasarımcı Programcı
Class Şeması Örneği
Class ŞemasıEgzersiz # 1
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. ”
Package (Paket) Şeması Temel Kavramlar Şema İçeriği Şemayla Aktarılan Bilgiler Tasarım Teknikleri Forward ve Reverse Engineering
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.
Temel Kavramlar Paket UML modeli elemanlarından oluşan bir gruptur.
Paket Şeması Sembolleri
İlgili Roller Şemayı Hazırlayanlar: Herkes Şemayı Kullananlar: Herkes
Paket Şeması Örnekleri Müşteri Sipariş Yer CD Sipariş Stok Satış Depo
Ş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.
Ş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.
Analistler için Modelleme Bölüm 5 / 6
İçerik
İçerik Modüllerin Yapısı Modül Tanımlama Teknikleri Modül Gerçekleştirme Teknikleri Modellerin Yapısı Modellerin İlişkileri
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.
Modül Özellikleri Tanım elemanları Gerçekleştirme elemanları Bir modül bir sistemin hem tanımlanma hem de gerçekleştirilme aşaması çalışmalarını içerir.
Modülün Gerçekleştirilmesi Tanım elemanları Gerçekleştirme elemanları ? Gerçekleştirme elemanları subsytem’in içeriğini gösterir.  Modül gerçekleştirilmesi genellikle class’lar ve ilişkilerini içerir.
Modül Tanımlanması Tanım elemanları Gerçekleştirme elemanları ? Modül tanımı modülün dışarıdan nasıl görüldüğü belirtir
İçerik Modüllerin Yapısı Modül Tanımlama Teknikleri Modül Gerçekleştirme Teknikleri Modellerin Yapısı Modellerin İlişkileri
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
Tanımlama Teknikleri Use Case yaklaşımı State Machine yaklaşımı Mantıksal Class yaklaşımı Metod Yaklaşımı … ve bunların kombinasyonları
Gerçekleştirme elemanları Tanım elemanları Modülü sunduğu hizmetlerle alakalandırabilmek için Spesifikasyonun teknik olmayan insanlara aktarılabilmesi için 1. Use Case Yaklaşımı
1. Use Case Yaklaşımı Realization elements Change Digit Analysis Information Operator Initiate Call Trunk Receive Digit and Connect Hook Signal and Disconnect Subscription Çağrı Kontrol Tanım elamanları
Stopped Running Maintenance Exhausted Error 2. State Machine Yaklaşımı Çağrı Kontrol Tanım elemanları 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
Number Dictionary Analyzer Network Manager 3. Mantıksal Class Yaklaşımı Çağrı Kontrol Tanım elemanları Modülün kullanımı nesnelerin manipülasyonu olarak görülüyorsa Gereksinimler belli bir standarda uyum zorunluluğundan kaynaklanıyorsa
initiateConnection (…) dialledDigit (…) throughConnect (…) bAnswer (…) bOnHook (…) aOnHook (…) 4. Metod Yaklaşımı Çağrı Kontrol Metodlar Basit (atomic) hizmetler veren modüller için Metodlar birbirlerinden bağımsız olarak çağrılıyorlarsa
Tekniklerin Kombinasyonları Initiate Call Trunk Receive Digit and Connect Hook Signal and Disconnect Subscription Çağrı Kontrol Specification elements Metodlar changeDigitAnalysisInformation (...) Tanım elemanları
Operations Gerçekleştirme elemanları Metodlar Tanım elemanları Eksiksiz Modül Notasyonu Üç tanımlı parçadan oluşur Bu parçalar isteğe bağlı olarak kullanılmayabilir
İçerik Modüllerin Yapısı Modül Tanımlama Teknikleri Modül Gerçekleştirme Teknikleri Modellerin Yapısı Modellerin İlişkileri
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)
«realize» Metodlar Gerçekleştirme elemanları operation1( ) : Type1 operation1( ) operation2( ) : Type2 operation3( ) : Type3 operation4( ) : Type4 operation5( ) : Type5 Gerçekleştirme İlişkisi Gerçekleştirme (Realization) özellikle tek seviyeli ilişkileri göstermekte faydalı
Gerçekleştirme İlişkisi «realize» Trafik Kontrol Gerçekleştirme elemanları Metodlar changeDigitAnalysisInformation ( ) Tanım elemanları Initiate Call changeDigitAnalysisInformation ( ) : : Trunk Receive Digit and Connect Hook Signal and Disconnect Subscription
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.
Collaboration Sequence Şeması Collaboration Şeması 2: dialledDigit  :Trunk  :Subscription  :Traffic Control  :Traffic Control markBusy dialledDigit 4: throughConnect dialledDigit  :Trunk throughConnect markBusy  :Subscription bAnswer 1: markBusy Bir ‘collaboration’ bir iş yerine getirilirken gereken rolleri tanımlar Bu roller birbirleriyle etkileşen nesneler aracılığıyla canlandırılır  3: dialledDigit 6: bAnswer 5: markBusy
Collaboration Sembolleri
Collaboration Notasyonu Collaboration Rol adı Rol adı Rol Rol adı Rol adı Class Bir birliktelik (collaboration) ve katılımcıları
Tanım elemanları Gerçekleştirme elemanları Initiate Call Network Interface Receive Digit and Connect Coordinator Analysis Database Hook Signal and Disconnect Collaboration Collaboration genellikle daha karmaşık durumlarda faydalıdır
Collaboration Çeşitleri Rol modeli bir özel durumu ifade ederken Class modeli daha genele yönelik. Dolayısıyla her Class modeline karşılık birden fazla Rol modeli olacaktır.
Use Case Realization Collaboration Şeması: “Sipariş Alınması”
Use Case Realization (UCR)
Use Case Realization (UCR)
Use Case Realization (UCR)
Use Case Realization (UCR)
Model Bağımlılıkları Üniversite Kayıt Sistemi
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
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)
İçerik Modüllerin Yapısı Modül Tanımlama Teknikleri Modül Gerçekleştirme Teknikleri Modellerin Yapısı Modellerin İlişkileri
Model Bir model sisteme belli nedenden dolayı farklı bir bakış şeklidir. Oluşturulma amacına uygun şekilde dokümantasyona ve detay seviyesine sahiptir.
Model Use Case Modeli Tasarım Modeli
Model Sembolleri Sistemi belli muhataplara onlara özel detay seviyesiyle sistemin ilgili yönlerinin gösterilmesidir. İsim 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» Sembol Tanım Syntax Model Trace
Trace Analiz Tasarım «trace»
Model / Şema Şemalar modeli dokümante eder Use Case Modeli Tasarım Modeli
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
Model Oluşturma Teknikleri Her modelin amacını tanımlayınız  Her model amacına uygun şekilde sistemin eksiksiz bir resmini çizmelidir
Analist Eğitimi - Tüm Bölümler -  [535 Slides]
Analist Eğitimi - Tüm Bölümler -  [535 Slides]
Analist Eğitimi - Tüm Bölümler -  [535 Slides]
Analist Eğitimi - Tüm Bölümler -  [535 Slides]
Analist Eğitimi - Tüm Bölümler -  [535 Slides]
Analist Eğitimi - Tüm Bölümler -  [535 Slides]
Analist Eğitimi - Tüm Bölümler -  [535 Slides]
Analist Eğitimi - Tüm Bölümler -  [535 Slides]
Analist Eğitimi - Tüm Bölümler -  [535 Slides]
Analist Eğitimi - Tüm Bölümler -  [535 Slides]
Analist Eğitimi - Tüm Bölümler -  [535 Slides]
Analist Eğitimi - Tüm Bölümler -  [535 Slides]
Analist Eğitimi - Tüm Bölümler -  [535 Slides]
Analist Eğitimi - Tüm Bölümler -  [535 Slides]
Analist Eğitimi - Tüm Bölümler -  [535 Slides]
Analist Eğitimi - Tüm Bölümler -  [535 Slides]
Analist Eğitimi - Tüm Bölümler -  [535 Slides]
Analist Eğitimi - Tüm Bölümler -  [535 Slides]
Analist Eğitimi - Tüm Bölümler -  [535 Slides]
Analist Eğitimi - Tüm Bölümler -  [535 Slides]
Analist Eğitimi - Tüm Bölümler -  [535 Slides]
Analist Eğitimi - Tüm Bölümler -  [535 Slides]
Analist Eğitimi - Tüm Bölümler -  [535 Slides]
Analist Eğitimi - Tüm Bölümler -  [535 Slides]
Analist Eğitimi - Tüm Bölümler -  [535 Slides]

More Related Content

What's hot

003 Uml Semalari [94 Slides]
003 Uml Semalari [94 Slides]003 Uml Semalari [94 Slides]
003 Uml Semalari [94 Slides]Erol Bozkurt
 
Akış Şemaları ( İş Analizi ve Uygulamaları Dersi)
Akış Şemaları ( İş Analizi ve Uygulamaları Dersi)Akış Şemaları ( İş Analizi ve Uygulamaları Dersi)
Akış Şemaları ( İş Analizi ve Uygulamaları Dersi)Tugba Ozen
 
Bilişim Teknolojileri Projelerinde Temel Başarı ve Başarısızlık Nedenleri
Bilişim Teknolojileri Projelerinde Temel Başarı ve Başarısızlık NedenleriBilişim Teknolojileri Projelerinde Temel Başarı ve Başarısızlık Nedenleri
Bilişim Teknolojileri Projelerinde Temel Başarı ve Başarısızlık Nedenlericgoze
 
Sistem analizi-1
Sistem analizi-1Sistem analizi-1
Sistem analizi-1warlock76
 
Business Analyst Training in Hyderabad
Business Analyst Training in HyderabadBusiness Analyst Training in Hyderabad
Business Analyst Training in HyderabadUgs8008
 
Concepts Of business analyst Practices - Part 1
Concepts Of business analyst Practices - Part 1Concepts Of business analyst Practices - Part 1
Concepts Of business analyst Practices - Part 1Moutasm Tamimi
 
KARLILIK ANALİZİ VE REKABET ANALİZİ
KARLILIK ANALİZİ VE REKABET ANALİZİKARLILIK ANALİZİ VE REKABET ANALİZİ
KARLILIK ANALİZİ VE REKABET ANALİZİCansu Arslan
 
Iş etüdü (yerleştirme tipleri)
Iş etüdü (yerleştirme tipleri)Iş etüdü (yerleştirme tipleri)
Iş etüdü (yerleştirme tipleri)Habip TAYLAN
 
Stratejik İnsan Kaynakları Yönetimi
Stratejik İnsan Kaynakları Yönetimi Stratejik İnsan Kaynakları Yönetimi
Stratejik İnsan Kaynakları Yönetimi Ipek Aral
 
End302 05 tesis_tasarimi
End302 05 tesis_tasarimiEnd302 05 tesis_tasarimi
End302 05 tesis_tasarimiHabip TAYLAN
 

What's hot (20)

003 Uml Semalari [94 Slides]
003 Uml Semalari [94 Slides]003 Uml Semalari [94 Slides]
003 Uml Semalari [94 Slides]
 
İnsan Kaynakları Yönetimi İş Analizi
İnsan Kaynakları Yönetimi İş Analiziİnsan Kaynakları Yönetimi İş Analizi
İnsan Kaynakları Yönetimi İş Analizi
 
Proje Yonetimi
Proje YonetimiProje Yonetimi
Proje Yonetimi
 
Akış Şemaları ( İş Analizi ve Uygulamaları Dersi)
Akış Şemaları ( İş Analizi ve Uygulamaları Dersi)Akış Şemaları ( İş Analizi ve Uygulamaları Dersi)
Akış Şemaları ( İş Analizi ve Uygulamaları Dersi)
 
09092014 ata ws
09092014 ata ws09092014 ata ws
09092014 ata ws
 
Bilişim Teknolojileri Projelerinde Temel Başarı ve Başarısızlık Nedenleri
Bilişim Teknolojileri Projelerinde Temel Başarı ve Başarısızlık NedenleriBilişim Teknolojileri Projelerinde Temel Başarı ve Başarısızlık Nedenleri
Bilişim Teknolojileri Projelerinde Temel Başarı ve Başarısızlık Nedenleri
 
İŞ ANALİZİ VE TASARIMI
İŞ ANALİZİ VE TASARIMIİŞ ANALİZİ VE TASARIMI
İŞ ANALİZİ VE TASARIMI
 
UML ile Modelleme
UML ile ModellemeUML ile Modelleme
UML ile Modelleme
 
İş Analizi
İş Analiziİş Analizi
İş Analizi
 
Sistem analizi-1
Sistem analizi-1Sistem analizi-1
Sistem analizi-1
 
Surec yonetimi
Surec yonetimiSurec yonetimi
Surec yonetimi
 
Business Analyst Training in Hyderabad
Business Analyst Training in HyderabadBusiness Analyst Training in Hyderabad
Business Analyst Training in Hyderabad
 
Concepts Of business analyst Practices - Part 1
Concepts Of business analyst Practices - Part 1Concepts Of business analyst Practices - Part 1
Concepts Of business analyst Practices - Part 1
 
Class Diagram
Class DiagramClass Diagram
Class Diagram
 
PROBLEM ÇÖZME VE KARAR VERME TEKNİKLERİ
PROBLEM ÇÖZME VE KARAR VERME TEKNİKLERİPROBLEM ÇÖZME VE KARAR VERME TEKNİKLERİ
PROBLEM ÇÖZME VE KARAR VERME TEKNİKLERİ
 
2 kapsam yonetimi
2   kapsam yonetimi2   kapsam yonetimi
2 kapsam yonetimi
 
KARLILIK ANALİZİ VE REKABET ANALİZİ
KARLILIK ANALİZİ VE REKABET ANALİZİKARLILIK ANALİZİ VE REKABET ANALİZİ
KARLILIK ANALİZİ VE REKABET ANALİZİ
 
Iş etüdü (yerleştirme tipleri)
Iş etüdü (yerleştirme tipleri)Iş etüdü (yerleştirme tipleri)
Iş etüdü (yerleştirme tipleri)
 
Stratejik İnsan Kaynakları Yönetimi
Stratejik İnsan Kaynakları Yönetimi Stratejik İnsan Kaynakları Yönetimi
Stratejik İnsan Kaynakları Yönetimi
 
End302 05 tesis_tasarimi
End302 05 tesis_tasarimiEnd302 05 tesis_tasarimi
End302 05 tesis_tasarimi
 

Viewers also liked

Proje Yonetimi 2.0
Proje Yonetimi 2.0Proje Yonetimi 2.0
Proje Yonetimi 2.0Ozgur Alaz
 
001 Giris [8 Slides]
001 Giris [8 Slides]001 Giris [8 Slides]
001 Giris [8 Slides]Erol Bozkurt
 
002 Uml Sizin Icin Anlami [34 Slides]
002 Uml Sizin Icin Anlami [34 Slides]002 Uml Sizin Icin Anlami [34 Slides]
002 Uml Sizin Icin Anlami [34 Slides]Erol Bozkurt
 
Yazılım Projelerine Scrum Yazılım Geliştirme Modelinin Uygulanması ve Scrum Y...
Yazılım Projelerine Scrum Yazılım Geliştirme Modelinin Uygulanması ve Scrum Y...Yazılım Projelerine Scrum Yazılım Geliştirme Modelinin Uygulanması ve Scrum Y...
Yazılım Projelerine Scrum Yazılım Geliştirme Modelinin Uygulanması ve Scrum Y...Cenk Derinozlu
 

Viewers also liked (8)

Proje Yonetimi 2.0
Proje Yonetimi 2.0Proje Yonetimi 2.0
Proje Yonetimi 2.0
 
001 Giris [8 Slides]
001 Giris [8 Slides]001 Giris [8 Slides]
001 Giris [8 Slides]
 
002 Uml Sizin Icin Anlami [34 Slides]
002 Uml Sizin Icin Anlami [34 Slides]002 Uml Sizin Icin Anlami [34 Slides]
002 Uml Sizin Icin Anlami [34 Slides]
 
Hastane Poliklinik Otomasyonu
Hastane Poliklinik OtomasyonuHastane Poliklinik Otomasyonu
Hastane Poliklinik Otomasyonu
 
Yazılım Projelerine Scrum Yazılım Geliştirme Modelinin Uygulanması ve Scrum Y...
Yazılım Projelerine Scrum Yazılım Geliştirme Modelinin Uygulanması ve Scrum Y...Yazılım Projelerine Scrum Yazılım Geliştirme Modelinin Uygulanması ve Scrum Y...
Yazılım Projelerine Scrum Yazılım Geliştirme Modelinin Uygulanması ve Scrum Y...
 
Ch5 system modeling
Ch5 system modelingCh5 system modeling
Ch5 system modeling
 
Ch4 req eng
Ch4 req engCh4 req eng
Ch4 req eng
 
Ch2 sw processes
Ch2 sw processesCh2 sw processes
Ch2 sw processes
 

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

Bpm yildiz tekno park 2019
Bpm yildiz tekno park 2019Bpm yildiz tekno park 2019
Bpm yildiz tekno park 2019Serkan Turkeli
 
Surec yonetimi 2014_aralık_aui
Surec yonetimi 2014_aralık_auiSurec yonetimi 2014_aralık_aui
Surec yonetimi 2014_aralık_auiSerkan Turkeli
 
E-ticarette Yazılım ve Altyapı
E-ticarette Yazılım ve AltyapıE-ticarette Yazılım ve Altyapı
E-ticarette Yazılım ve AltyapıMurat Kader
 
Yazılım mimarisi yazılım müh.
Yazılım mimarisi yazılım müh.Yazılım mimarisi yazılım müh.
Yazılım mimarisi yazılım müh.Hüseyin Örer
 
Web KullanılabilirliliğIi
Web KullanılabilirliliğIiWeb KullanılabilirliliğIi
Web KullanılabilirliliğIiAytac Mestci
 
005 Alternatif Yazilim Surecleri [99 Slides]
005 Alternatif Yazilim Surecleri [99 Slides]005 Alternatif Yazilim Surecleri [99 Slides]
005 Alternatif Yazilim Surecleri [99 Slides]Erol Bozkurt
 
GDO'suz Yazılım Geliştirme Teknikleri
GDO'suz Yazılım Geliştirme TeknikleriGDO'suz Yazılım Geliştirme Teknikleri
GDO'suz Yazılım Geliştirme TeknikleriLemi Orhan Ergin
 
Yazilim mi̇mari̇leri̇(aoy)
Yazilim mi̇mari̇leri̇(aoy)Yazilim mi̇mari̇leri̇(aoy)
Yazilim mi̇mari̇leri̇(aoy)Ahmet Yanik
 
Yazılım projeleri süreç performans ölçümü
Yazılım projeleri süreç performans ölçümüYazılım projeleri süreç performans ölçümü
Yazılım projeleri süreç performans ölçümüTUBITAK
 
Yazılım mühendisliğinde i̇nsan bilgisayar etkileşimi
Yazılım mühendisliğinde i̇nsan bilgisayar etkileşimiYazılım mühendisliğinde i̇nsan bilgisayar etkileşimi
Yazılım mühendisliğinde i̇nsan bilgisayar etkileşimiBetul Kesimal
 
Erp Yolculuguna Cikacaklara Oneriler
Erp Yolculuguna Cikacaklara OnerilerErp Yolculuguna Cikacaklara Oneriler
Erp Yolculuguna Cikacaklara OnerilerÖzer Mustafa Onar
 
SelçUk şEnol Unified Process
SelçUk şEnol   Unified ProcessSelçUk şEnol   Unified Process
SelçUk şEnol Unified ProcessFatih Çengel
 
Mikideas Eğitim ve Danışmanlık Hizmetleri
Mikideas Eğitim ve Danışmanlık Hizmetleri Mikideas Eğitim ve Danışmanlık Hizmetleri
Mikideas Eğitim ve Danışmanlık Hizmetleri Erol Bozkurt
 
Yazılım Mimarileri - Yazılım Geliştirme Modelleri
Yazılım Mimarileri - Yazılım Geliştirme ModelleriYazılım Mimarileri - Yazılım Geliştirme Modelleri
Yazılım Mimarileri - Yazılım Geliştirme ModelleriKubra Kose
 

Similar to Analist Eğitimi - Tüm Bölümler - [535 Slides] (20)

Bpm yildiz tekno park 2019
Bpm yildiz tekno park 2019Bpm yildiz tekno park 2019
Bpm yildiz tekno park 2019
 
Surec yonetimi 2014_aralık_aui
Surec yonetimi 2014_aralık_auiSurec yonetimi 2014_aralık_aui
Surec yonetimi 2014_aralık_aui
 
E-ticarette Yazılım ve Altyapı
E-ticarette Yazılım ve AltyapıE-ticarette Yazılım ve Altyapı
E-ticarette Yazılım ve Altyapı
 
Yazılım mimarisi yazılım müh.
Yazılım mimarisi yazılım müh.Yazılım mimarisi yazılım müh.
Yazılım mimarisi yazılım müh.
 
Web KullanılabilirliliğIi
Web KullanılabilirliliğIiWeb KullanılabilirliliğIi
Web KullanılabilirliliğIi
 
005 Alternatif Yazilim Surecleri [99 Slides]
005 Alternatif Yazilim Surecleri [99 Slides]005 Alternatif Yazilim Surecleri [99 Slides]
005 Alternatif Yazilim Surecleri [99 Slides]
 
Cevik Yaklasim, Scrum ve XP Pratikleri
Cevik Yaklasim, Scrum ve XP PratikleriCevik Yaklasim, Scrum ve XP Pratikleri
Cevik Yaklasim, Scrum ve XP Pratikleri
 
GDO'suz Yazılım Geliştirme Teknikleri
GDO'suz Yazılım Geliştirme TeknikleriGDO'suz Yazılım Geliştirme Teknikleri
GDO'suz Yazılım Geliştirme Teknikleri
 
Yazilim mi̇mari̇leri̇(aoy)
Yazilim mi̇mari̇leri̇(aoy)Yazilim mi̇mari̇leri̇(aoy)
Yazilim mi̇mari̇leri̇(aoy)
 
MART - www.martgeldi.com - Bilgi Teknolojileri (IT) Eğitimlerimiz
MART -  www.martgeldi.com - Bilgi Teknolojileri (IT) EğitimlerimizMART -  www.martgeldi.com - Bilgi Teknolojileri (IT) Eğitimlerimiz
MART - www.martgeldi.com - Bilgi Teknolojileri (IT) Eğitimlerimiz
 
Yazılım projeleri süreç performans ölçümü
Yazılım projeleri süreç performans ölçümüYazılım projeleri süreç performans ölçümü
Yazılım projeleri süreç performans ölçümü
 
Yazılım mühendisliğinde i̇nsan bilgisayar etkileşimi
Yazılım mühendisliğinde i̇nsan bilgisayar etkileşimiYazılım mühendisliğinde i̇nsan bilgisayar etkileşimi
Yazılım mühendisliğinde i̇nsan bilgisayar etkileşimi
 
BTRisk Yazılım Güvenliği Yönetimi Eğitimi
BTRisk Yazılım Güvenliği Yönetimi EğitimiBTRisk Yazılım Güvenliği Yönetimi Eğitimi
BTRisk Yazılım Güvenliği Yönetimi Eğitimi
 
Sunum tdd
Sunum tddSunum tdd
Sunum tdd
 
MART - www.martgeldi.com - İş Analizi Eğitimlerimiz
MART - www.martgeldi.com - İş Analizi EğitimlerimizMART - www.martgeldi.com - İş Analizi Eğitimlerimiz
MART - www.martgeldi.com - İş Analizi Eğitimlerimiz
 
Visual Studio Developer Tools
Visual Studio Developer ToolsVisual Studio Developer Tools
Visual Studio Developer Tools
 
Erp Yolculuguna Cikacaklara Oneriler
Erp Yolculuguna Cikacaklara OnerilerErp Yolculuguna Cikacaklara Oneriler
Erp Yolculuguna Cikacaklara Oneriler
 
SelçUk şEnol Unified Process
SelçUk şEnol   Unified ProcessSelçUk şEnol   Unified Process
SelçUk şEnol Unified Process
 
Mikideas Eğitim ve Danışmanlık Hizmetleri
Mikideas Eğitim ve Danışmanlık Hizmetleri Mikideas Eğitim ve Danışmanlık Hizmetleri
Mikideas Eğitim ve Danışmanlık Hizmetleri
 
Yazılım Mimarileri - Yazılım Geliştirme Modelleri
Yazılım Mimarileri - Yazılım Geliştirme ModelleriYazılım Mimarileri - Yazılım Geliştirme Modelleri
Yazılım Mimarileri - Yazılım Geliştirme Modelleri
 

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

  • 3. Eğitmen Hakkında Erol Bozkurt – erol.bozkurt@xupit.com 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ığı.
  • 4. 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.
  • 5. 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
  • 6. Katılımcılar Hakkında Şirketiniz ve faaliyet alanı Sizin rolünüz Eğitim almanızdaki nedenler Eğitime yönelik beklentileriniz
  • 7. 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.
  • 8. Bizi Seçtiğiniz İçin Teşekkür Ederiz!
  • 11.
  • 12. temel parçaları ve ilişkilerini,
  • 14. baz aldığı varsayımlarısaptama faaliyetlerinin tümüdür. Sherlock Holmes
  • 15.
  • 18. Çözümü geliştirecek kişilerin yazılım geliştirme süreçleriFormül: Roller – İş Ürünleri – İş Adımları
  • 19. 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!
  • 20. 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.
  • 21. Analist Kimdir? Terapisttir Toplantı yöneticisidir Değişiklik mühendisidir
  • 22. 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 ...
  • 23. 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.
  • 24. 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.
  • 25. 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.
  • 27. Analist Türleri / Farklı Tanımlar İş Analisti Sistem Analisti Analist / Programcı Veri / Veritabanı ‘Analisti’
  • 28. Alakalı Meslekler Değişiklik Mühendisi Süreç Mühendisi İş Geliştirme Yöneticisi Proje Yöneticisi
  • 29. İlgili Standartlar RUP, XP, MIL-STD, IEEE vs. CMMI CobiT, ITIL
  • 37. İç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ı
  • 38. KiminNeyiNe ZamanNasıl yapacağını tanımlamaktır. Yeni sistem Değişen gereksinimler Süreç Süreç Nedir?
  • 39. 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ı
  • 40. 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
  • 41. Milestone(s) Ürünün sürümleri Bu fazlar kısa bir süre için örtüşebilir Fazlar Waterfall Yazılım Süreci Gereksinim Analizi Tasarım İmplementasyon Test Bakım zaman
  • 42. Waterfall Neden Pratik Değildir? 1. Sahip olunması istenen bilgilerin hepsi hazır değildir Bü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 gerekir Buradan alınan sonuçlara göre gereksinimler değişebilir 3. Sık sık ara sürümler çıkarmak zorunda kalırız Paydaşların (müşteriler, yöneticiler) projeye güvenlerini tazelemek gerekir Tasarı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
  • 44. M I L E S T O N E S α(prototype) X β X sürüm 1.0 1 2 3 1 2 3 1 2 3 1 2 3 2 3 1 Spiral Süreç zaman İterasyon # Gereksinim Tasarım Kodlama Test
  • 46. RUP’un Gelişimi Rational Unified Process 5.0 İşlevsellik Testi Performans Testi Gereksinim Denet. Değişiklik Denet. İş Akışı Veri Tabanı UI 1998 Rational Objectory Process 4.1 1996-1997 UML Rational Yaklaşımı Objectory Process 1.0-3.8 1987-1995 Ericsson Yaklaşımı
  • 47. 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”
  • 48. İç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ı
  • 49.
  • 50.
  • 51. I n c e p t i o n E l a b o r a t i o n C o n s t r u c t i o n T r a n s i t i o n P r e l i m i n a r y i t e r . i t e r . i t e r . i t e r . i t e r . i t e r . i t e r . I t e r a t i o n ( s ) # 1 # 2 # n # n + 1 # n + 2 # m # m + 1 İterasyonlar ve İşler Aşamalar İşler Gereksinim Analiz Tasarım Uygulanma Test İterasyon
  • 52.
  • 54.
  • 55.
  • 57. Temel mekanizmaların tasarlanmasıTransition Preliminary Iteration Architect. Iteration Architect. Iteration Devel. Iteration Devel. Iteration Devel. Iteration Transition Iteration Transition Iteration Post- deployment Zaman
  • 58.
  • 59.
  • 61.
  • 62.
  • 64. Model, kod ve test kayıtları İterasyon Planı Gereksinimlerin Sapt. Analiz + Tasarım Uygulama Test Release Release raporu Yeni Risk Raporu Konfigürasyon Denet.
  • 65.
  • 67. Yazılım Proje Yönetimi
  • 68. LiderlikSoftware Leadership: A Guide to Successful Software Development Murray Cantor Slaytlar 20 - 28
  • 69. 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 ...
  • 70.
  • 72. Detaylı bir spesifikasyon hazırlanıyor.
  • 75. Toplantılar ve dokümanlar karmaşık bir yazılım sisteminin gerçek risklerinin çok azına değiniyor.
  • 76. Elle tutulur bir delil yok.
  • 78. Pek azın*(% 10) tasarımı yönlendiriyor.
  • 79. Gereksinimlerin hepsine nüfuz etme çabası kritik noktaları gözden kaçırıyor.
  • 80.
  • 81. 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.
  • 82. Paradoks Yapı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çerisindeeksiksizleşmesi ve detay seviyelerinin artması.
  • 83.
  • 85.
  • 88.
  • 89. 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. Planlanan Proje Bitişi Planlanan Güzergah Gerçek Güzergah ‘Waterfall’Yönetimi: “Planla ve Takip Et” Müşteriyi Tatmin Edebilecek Alan Projenin ilk Durumu Gerçek Proje Bitişi
  • 90. İteratif Yaklaşımda Liderlik: “Manevra Yap ve Adapte Ol” Gerçek Güzergah Devamlı olarak : Resmin geneline hakim ol – Proje yönelik istek değişikliklerini değerlendir Manevra 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? Gerçek Proje Bitişi Planlanan Proje Bitişi Planlanan Güzergah Müşteriyi Tatmin Edebilecek Alan Projenin ilk Durumu
  • 91. İç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ı
  • 92. Bir iş Bir rol Activity (Faaliyet) Role (Çalışan) Artifact (Oluşanlar) Sürecin oluşturduğu, kullandığı veya değiştirdiği bir ürün Use case UP’in 3 Temel Parçası Use Case’leri tanımla Analist sorumluluğu Use case paketi
  • 93. 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.
  • 97. Discipline ve Workflow Disiplin: Gereksinim Yönetimi Workflow: Gereksinim Yönetimine ait çalışma şekli detayları
  • 99. Daha Fazla Detay “Rol Üzerinden”
  • 100. Daha Fazla Detay“Yapılacak İş Üzerinden”
  • 102. Daha Fazla Detay“Bir Adım Daha İleriye: Şablonlar”
  • 104. “Ürünler ve Kullanım Teknikleri”
  • 106. 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.
  • 107. İç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ı
  • 108. 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.
  • 114. İç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ı
  • 121. Analiz ve Tasarım “Standart UP”
  • 123. Bizim UP Sürecine Yaklaşımız
  • 124. 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
  • 126. 2. Analiz ve Tasarım
  • 131. İç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ı
  • 134. Ahmet = Sistem Analisti
  • 135. Ahmet = UI Tasarımcısı
  • 137. Leyla = Sistem Mimarı
  • 140. Mehmet = Veritabanı Tasarımcısı
  • 141. Hülya = Proje Yöneticisi
  • 142. Hülya = Süreç Uzmanı
  • 143. İç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ı
  • 144. 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.
  • 157. 9. UML Kapsamına Ekler“Size Özel Stereotype”
  • 158. İlham Kaynakları Philippe Kruchten Watts Humphrey ? Murray Cantor Sizin Adınız Terry Quatrani James Bach James Rumbaugh Grady Booch Ivar Jacobson
  • 162. İç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
  • 163. 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
  • 164. 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)
  • 165. 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
  • 166. 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
  • 167. İç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
  • 168. 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
  • 169. 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
  • 170. Detay Seviyeleri Daha detaylı Müşterinin probleminin tanımı İhtiyaç İşlev Çözümün tanımı Gereksinim Çözümün gerçekleştirilmesi Gerçekleştirme
  • 171. 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
  • 172. 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?
  • 173. Ö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.
  • 174. 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ş)
  • 175. 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
  • 176. 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
  • 177. 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
  • 178. İç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
  • 179. Altı Ekip Yeteneği Problem analizi Müşteri ihtiyaçlarını anlama Sistemi tanımlama Sistem kapsamını yönetme Sistem tanımının revize edilmesi Doğru sistemin geliştirilmesi
  • 180. 1. Problemi analizi Bu konuya ileride, daha sonra değineceğiz.
  • 181. 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
  • 182. 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?
  • 183. 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?
  • 184. 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ı
  • 185. 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?
  • 186. İç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
  • 187. Problemler ve Fırsatlar Sistemlerin en önemli iki nedeni: Problem çözmek; mevcut sistem müşteri ihtiyaçlarını karşılamıyor demek Fırsatları değerlendirmek; yeni ürün düşünceleri, yeni işlevler, yeni pazarlar vs. Biz problem çözmeye odaklanacağız
  • 188. Problem Analizi Aşamaları Problem beş aşamada tahlil edilebilir: Problem tanımı üzerinde anlaşmak Problemin temel nedenlerini anlamak Paydaş ve kullanıcıları tespit etmek Sistemin sınırlarını tespit etmek Çözümü sınırlandıracak olan kısıtları bulmak
  • 189. 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?
  • 190. 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 2Probleminnedenlerinianlamak
  • 191. 2Probleminnedenlerinianlamak ‘Akıl haritası’ (mindmap) çizebiliriz 12 m. Boeing Uçak A.H.
  • 192. 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
  • 193. 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
  • 194. 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
  • 195. 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
  • 196. İç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
  • 197. 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
  • 198. 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
  • 199. İş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)
  • 200. 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!
  • 201. İ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
  • 202. İş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
  • 203. İş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}
  • 204. İş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?
  • 205. İşlevler ve Gereksinimler Üst seviye gereksinimler: İşlevler “features” Fonksiyonel gereksinimler “functional requirements” Fonksiyonel olmayan gereksinimler “supplementary requirements”
  • 207. İç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
  • 208. VizyonDokümanı GelenekselSRS EkGereksinimler Use-Case Modeli Senaryo Odaklı Gereksinim Yönetimi İhtiyaçlar İşlevler Senaryo Odaklı Yol Geleneksel Yol Gereksinimler = + Geleneksel Software Requirements Specification (SRS) dokümanı Use Case Modeli ve Ek Gereksinimler Dokümanına (Supplementary Requirements) karşılık gelmektedir.
  • 209. Ek Gereksinimler (Supplementary Specification) Proje Sözlüğü (Glossary) Gereksinim Ürünleri (Artifact) Use Case Modeli Aktörler Use Case’ler ... Use-Case Dokümanları
  • 210. İ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ı
  • 211. Gereksinim Ürünleri (Artifact) Use Case Şemaları
  • 213. [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
  • 214. 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.
  • 215. 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
  • 216.
  • 218. Vizyon – İş Fırsatı
  • 219. Vizyon – Problem Tanımı
  • 224. [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ı.
  • 225.
  • 228. Başarısız Akışlarhata durumlarını tolere etmeye yarar“Happy Path”
  • 229. Senaryo Nedir? Bir senaryo use case’in içerdiği akışların bir kombinasyonunun başlayıp bitişidir: Use Case Instance.
  • 230. 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
  • 231. Senaryolar Her use case’in odağı başarılı TemelAkışı’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
  • 232. 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.
  • 233. 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
  • 234. 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*
  • 235. 1. Use Case Tanımı İlişkili Use Case’ler Ek Gereksinimler İş Kuralları Kullanım Yoğunluğu Açık Konular
  • 236. 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.
  • 237. 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
  • 238. 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.
  • 239. 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)
  • 240. 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
  • 241. 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.
  • 242. 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
  • 243. 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?
  • 244. 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
  • 245. 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.
  • 246. 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
  • 247. 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.
  • 248. Bid on Item - Use Case Dokümanı İnternette Açık Artırma
  • 249. UC Dokümanı - Tanım
  • 250. UC Dokümanı - Akış
  • 251. UC Dokümanı – Geriye Kalan
  • 253.
  • 258.
  • 259. 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?
  • 260. 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
  • 261. 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)
  • 262. 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?
  • 263. “+” İçeriği: İmplementasyon Interface Operasyonel Paketleme Kanuni konular Ve aklınıza ne gelirse!
  • 264. “+” - İ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)
  • 265. “+” - 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.)
  • 266. “+” - 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)
  • 267. “+” - 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ı?
  • 268. “+” - 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ı)
  • 269. FURPS + ve UML
  • 271. [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
  • 272. İç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
  • 273. 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.
  • 275. Önceliklendirme ve Takip Edilebilirlik Kriterleri
  • 276. Önceliklendirme ve Takip Edilebilirlik Kriterleri veya
  • 277. Gereksinim Yönetimi Planı 1“Vizyon Kapsamında”
  • 278. Gereksinim Yönetimi Planı 2“Vizyon Kapsamında”
  • 279. Gereksinim Yönetimi Planı 3“Vizyon Kapsamında”
  • 280. Gereksinim Yönetimi Planı 4“Vizyon Kapsamında”
  • 281. Gereksinim Yönetimi Planı Configuration Management Plan Requirements Management Plan
  • 282. 1. İterasyonların Belirlenmesi İnternet’te Açık Artırma Sistemi
  • 284. 3. İterasyonların Belirlenmesi Sistem Mimarisini Etkileyen UC’ler İterasyon 1 İterasyon 2 İterasyon 2
  • 285. İlham Kaynakları James Bielak Ellen Gottesdiener Alistair Cockburn ? Sizin Adınız
  • 287. Analistler için Modelleme Bölüm 1 / 6
  • 289. 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ığı.
  • 290. 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.
  • 291. 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
  • 292. Katılımcılar Hakkında Şirketiniz ve faaliyet alanı Sizin rolünüz Eğitim almanızdaki nedenler Eğitime yönelik beklentileriniz
  • 293. 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.
  • 294. Bizi Seçtiğiniz İçin Teşekkür Ederiz!
  • 295. Analistler için Modelleme Bölüm 2 / 6
  • 297. İçerik Nesne Tabanlı Yaklaşımın Temelleri Class’lar ve Nesneler
  • 298. 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
  • 300. 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
  • 302. 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
  • 304. 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
  • 305. Kullanıcı Her abstraction bir hiyerarşi oluşturur. Sistem
  • 306. 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
  • 307. İçerik Nesne Tabanlı Yaklaşımın Temelleri Class’lar ve Nesneler
  • 308. Class’lar ve Nesneler ali meltem özellikler/benzerlikler?
  • 309. Class’lar ve Nesneler ali meltem yaş cinsiyet ad soyad
  • 310. Class’lar ve Nesneler iki FARKLI kişi ali meltem yaş : 25 cinsiyet : erkek ad : ali soyad : turalı yaş : 23 cinsiyet : kadın ad : meltem soyad : manisalı
  • 311. Class’lar ve Nesneler yaş cinsiyet ad soyad Değişkenler/ özellikler nesne ali meltem yaş : 25 cinsiyet : erkek ad : ali soyad : turalı yaş : 23 cinsiyet : kadın ad : meltem soyad : manisalı
  • 312. Class’lar ve Nesneler Değişkenler/ özellikler ??? Diğer nesneler:
  • 313. Class’lar ve Nesneler isim başkent nüfus paraBirimi Değişkenler/ özellikler Diğer nesneler: Avustralya İngiltere İtalya
  • 314. Class’lar ve Nesneler Tüm nesneler Bu nesneleri birbirlerinden nasıl ayıracağız?
  • 315. Class’lar ve Nesneler yaş cinsiyet ad soyad isim başkent nüfus paraBirimi Kişi Ülke Ortak değişkenler
  • 316. “yenibirkişi” ? “hangideğişkenler?” Class’lar ve Nesneler yaş cinsiyet ad soyad Değişkenler/ özellikler Kişi(ler) ali meltem yaş : 23 cinsiyet : kadın ad : meltem soyad : manisalı yaş : 25 cinsiyet : erkek ad : ali soyad : turalı
  • 317. “yenibirkişi” Class’lar ve Nesneler yaş cinsiyet ad soyad Değişkenler/ özellikler Kişi(ler) ali meltem yaş : 23 cinsiyet : kadın ad : meltem soyad : manisalı yaş : 25 cinsiyet : erkek ad : ali soyad : turalı yaş cinsiyet ad soyad
  • 318. Class’lar ve Nesneler Kişi yaş cinsiyet ad soyad Nesne tabanlı terminoloji class (instance)variables attributes fields
  • 319. Class’lar ve Nesneler yaş cinsiyet ad soyad Kişi instances ali meltem yaş : 23 cinsiyet : kadın ad : meltem soyad : manisalı yaş : 25 cinsiyet : erkek ad : ali soyad : turalı Nesneler
  • 320. Class’lar ve Nesneler İngiltere Nesneler ali Bir nesnenin özellikleri nelerdir? isim : ingiltere Başkent : Londra Nüfus: 3,534,209 paraBirimi : Pound } yaş : 25 cinsiyet : erkek ad : ali soyad : turalı ? } ? yaş : 23 cinsiyet : kadın ad : meltem soyad : manisalı } ? meltem
  • 321. Class’lar ve Nesneler kimliği kimliği İngiltere Nesneler ali Bir nesnenin özelliklerini ne belirler? isim : ingiltere Başkent : Londra Nüfus: 3,534,209 paraBirimi : Pound } yaş : 25 cinsiyet : erkek ad : ali soyad : turalı state } state yaş : 23 cinsiyet : kadın ad : meltem soyad : manisalı } state kimliği meltem
  • 322. Class’lar ve Nesneler Nesne Nesnenin sahip olduğu özellikler State: Durum Identity: Kimlik
  • 323. Class’lar ve Nesneler Nesneler Değişebilir Benzersiz State / Durum Identity / Kimlik
  • 324. Class’lar ve Nesneler {Orta Yaş} {Yetişkin} Benzersiz Identity / Kimlik yaş : 25 cinsiyet : erkek ad : ali soyad : turalı yaş : 45 cinsiyet : erkek ad : veli soyad : kara State / Durum aynı da olabilir farklı da
  • 325. Analistler için Modelleme Bölüm 3 / 6
  • 327. İçerik Görsel Tasarım UML Modeli UML Sonrasında Yazılım Dünyası
  • 328. Görsel Tasarım Bir sistemin verdiği bir hizmeti nasıl gerçekleştirdiğinin görsel olarak ifade edilmesidir.
  • 329. 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).
  • 330. Rumbaugh Tanımı Bilgi İşlem “Bir Model bir Sistemin vazgeçilmez özelliklerini gösterir.” Dr. James Rumbaugh Sipariş Ürün Kargo İş Akışı Görsel Tasarım standartlaşmış sembolleri kullanarak tasarım yapmaktır
  • 331.
  • 335.
  • 336. İletişimi Kolaylaştırmak Birlikteçalışmasıgerekenbuikitakımçoğuzamanfarklıkelimehazneleriyüzündenanlaşamıyor. GörselTasarımdaUMLkullanımımüşterinindünyasıylasistemindünyasınıbirbirinebağlar Programcılar bu gereksinimlere dayanarak sistemi oluştururlar İş Analistleri sistemin gereksinimlerini belirlerler
  • 337. Proje Kontrolünü Artırmak Sistemleryüzlercehattabinlerceclass’danoluşabiliyor. Buclassgruplarısistemebakankişininihtiyacınagöreorganizeedilebilmeli. GörselTasarımsistemefarklıyönlerdenbakabilmeyisağlar.
  • 338. Sistem Mimarisi Oluşturmak GörselTasarımoluşançözümükullanılanprogramlamadilindenbağımsızhalegetirir. Programlamadilibelirlenincetasarımfizikiortamataşınır.
  • 339. Tekrar Kullanabilmek Farklı Sistemler Tasarımınızıbileşenlerebölerekçözümünüzünparçalarınıtekrarkullanabilirsiniz. Bileşenler
  • 340. 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
  • 342. İçerik Görsel Tasarım UML Modeli UML Sonrasında Yazılım Dünyası
  • 343. Modeller ve Şemalar Bir model bir sistemin Belli bir açıdan eksiksiz olarak Ifade edilebilmesini sağlar State Diagrams State Diagrams Class Şeması Use Case Diagrams Use Case Diagrams State Diagrams Use Case Şeması State Diagrams Use Case Diagrams Object Şeması Use Case Diagrams Sequence Şeması Scenario Diagrams State Diagrams Scenario Diagrams State Diagrams Component Şeması Collaboration / Communication Şeması Model Component Diagrams Scenario Diagrams Component Diagrams Scenario Diagrams Deployment Şeması Statechart / State Machine Şeması Activity Şeması
  • 344. 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
  • 345. Model Nedir? Gerçeğinbasitleştirilmişbirifadesi, SisteminveyaSürecinkavramsaldüzeydeanlaşılmasıdır
  • 346. Model Kullanımı Gereksiz Zaruri F-15 Kağıttan Uçak
  • 347. Model Kullanımı BilişimTakımlarıF-15’lerikağıttanuçakyaklaşımıylaoluşturabileceklerinizannedebiliyor. GereksinimlerdenKodlamayageçiş Dahauzunçalışmak,sistemmimarisiodaklıolmayankodyazmak EsnekbirSistemMimarisiolmaması Başarısızlık
  • 348. 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.
  • 349. 4 Model Kuralı Modelprobleminasılçözeceğinizibelirler. Hermodelfarklıdetayseviyelerindekullanılabilir. Modelçözümünkullanılacağıdünyadankopmamalıdır. Çözümeyöneliktekbirmodelyetersizdir
  • 350. 4 Model Kuralı Modelprobleminasılçözeceğinizibelirler. Oluşturacağınızmodelproblemeveçözümeyaklaşımınızıbelirler. Seçilenmodelbiranlamdünyasıoluşturur Heranlamdünyasısizibaşkabirçözümeyöneltir
  • 351. 4 Model Kuralı Hermodelfarklıdetayseviyelerindekullanılabilir 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.
  • 352. 4 Model Kuralı Modelçözümünkullanılacağıdünyadankopmamalı Modelgerçekçiolmalı Gerçekyerinegörebirkullanımsenaryosu,yerinegörebirsistemkısıtlamasıolabilir.Dolayısıylamodelfarklıreferanslarıbarındırabilmelidir. Gerçeğibasitleştirmeli Riskliunsurlarıişaretetmeli
  • 353. 4 Model Kuralı Çözümeyöneliktekbirmodelyetersizdir Sistemlerbirbirlerikötüolaraketkilemeyenfarklımodellerleincelenmeli. Birbirlerindenbağımsızolarakoluşturulabilen,incelenebilenfakatbirbirleriylealakalıolanmodelleroluşturulmalıdır Modellerinfarklıreferansları,oluşturulmanedenlerivekullanıcılarıolmalıdır.
  • 354. Kullanıcı İşlevsellik SistemMimarı Performans Sisteme4+1Bakışı Logical View Implementation View Analiz /Tasarım Kod Versiyonlar Use-Case View Process View Deployment View Topoloji kurulum, kullanım
  • 355. İçerik Görsel Tasarım UML Modeli UML Sonrasında Yazılım Dünyası
  • 357. UML’in Sınırları Takım Üyeleri Dil Kullanılan Süreç
  • 358. UML’in Yarattığı İş Fırsatları Ken Ishiwata 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
  • 359. 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.
  • 360. 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
  • 361. İlham Kaynakları Max Goff Eğitimimizin sonunda açık kaynak kodlu bir projeyi UML modelinize çekin ve inceleyin: www.sourceforge.net “Zero Dollar Bill”
  • 362. Analistler için Modelleme Bölüm 4 / 6
  • 364. İçerik UML Modeli Kavramları UML Tanımını Genişletme Mekanizmaları Davranış Şemaları Yapısal Şemalar
  • 365. UML 2.0 Şema Türleri * * * * *
  • 366. 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.
  • 367. 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
  • 368. 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.
  • 369. İçerik UML Modeli Kavramları UML Tanımını Genişletme Mekanizmaları Davranış Şemaları Yapısal Şemalar
  • 370.
  • 371. Yeni özellikler (property) tanımlayabilmek,
  • 372.
  • 373.
  • 374. Size Ait İşaretler“UML in Color” Peter Coad (TogetherSoft) entity class’larının da kendi aralarında gruplara ayrılması gerektiğini söyler: <<Thing>> <<Description>> <<Role>> <<Moment-Interval>>
  • 375.
  • 379.
  • 380. 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}
  • 381.
  • 382. 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
  • 383.
  • 384. Syntax Yapısı (Abstract Syntax): Class Şemaları kullanılarak tanımlanır
  • 385. Net olarak tanımlanmış kurallar: Model öğelerinin uyması gereken kurallar (sınırlamalar) tanımlanır
  • 386. Örneğin, bir class’ın birden fazla adı olamaz
  • 387. Semantik Yapı: Model öğelerinin ilşkilendirilme biçimleri gündelik dille tanımlanırUML Metamodel
  • 388.
  • 389.
  • 390. Stereotype’lar ve/veya tagged value çiftleri tanımlanır
  • 391. Mevcut kurallara yeni ekler tanımlanır
  • 392.
  • 393. ButonlarKısıtlamalar: Bir form bir ‘dialog box’ı çalıştırabilir Formlar ve Dialog Box’ların butonları olabilir
  • 394. GUI Profili GUI Profili Class Association <<stereotype>> Form <<stereotype>> Button <<stereotype>> Contains <<stereotype>> Invokes <<stereotype>> DialogBox Class ve Association UML metamodelinden gelmektedir
  • 395. GUI Profili Uygulaması <<Form>> MainView 1 1 <<Invokes>> <<DialogBox>> OpenDialogBox 1 1 <<Contains>> <<Contains>> 1 1 <<Button>> OkButton <<Button>> CancelButton
  • 396. İçerik UML Modeli Kavramları UML Tanımını Genişletme Mekanizmaları Davranış Şemaları Yapısal Şemalar
  • 398. Davranış Şemaları use case şeması* activity şeması* Etkileşim Şemaları sequence şeması collaboration / communication şeması interaction overview timing şeması statechart / state machine şeması*
  • 399. Use Case Şeması Temel Kavramlar Şema İçeriği Şemayla Aktarılan Bilgiler Tasarım Teknikleri Forward ve Reverse Engineering
  • 400. 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.
  • 401. 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
  • 402. ‘Sihirli’ Use Case Sayısı Nedir? Functional Decomposition!
  • 403. İ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
  • 404. Use Case Şeması Sembolleri - 1
  • 405. Use Case Şeması Sembolleri - 2
  • 406. Use Case Şeması Sembolleri - 3
  • 408. Use Case Bulma Teknikleri 1
  • 409. Use Case Bulma Teknikleri 2 Event Table Çalışması:
  • 410.
  • 411. Use Case Bulma Teknikleri 3 Aktörler Adaylarını Bulun Event Table Çalışmasını Yapın Aktör ve Use Case’leri Belirleyin Aktörleri Çizin ve İlişkilerini Düşünün Use Case’leri Çizin ve Aktörlere Bağlayın Use Case’ler Arasındaki İlişkileri Belirleyin
  • 412. 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ı?
  • 413. 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?
  • 414. Use Case ŞemasıEgzersiz # 1 Lütfen şemadan anladıklarınızı bir paragrafta özetleyiniz (10 dk.)
  • 415. 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ızgerekmektedir. 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.“
  • 416. Activity Şeması Temel Kavramlar Şema İçeriği Şemayla Aktarılan Bilgiler Tasarım Teknikleri Forward ve Reverse Engineering
  • 417. 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.
  • 418. İ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ı
  • 422. 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.
  • 427. 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.
  • 428. Statechart Şeması Temel Kavramlar Şema İçeriği Şemayla Aktarılan Bilgiler Tasarım Teknikleri Forward ve Reverse Engineering
  • 431. Temel Kavramlar 3 Action ve Output:
  • 432. Temel Kavramlar 4 Event ve State Machine örtüşmesi:
  • 433. Temel Kavramlar 5 Bir faaliyet sona erene ve state geçerliliğini yitirene dek eş zamanlı olarak sürekli çalışır:
  • 434. Temel Kavramlar 6 Duruma (guard condition) göre çalıştırılan komutlar:
  • 435. Temel Kavramlar 7 Hiyerarşik State Machine’ler:
  • 436. İlgili Roller Şemayı Hazırlayanlar: Sistem Analisti Tasarımcı Programcı Şemayı Kullananlar: Sistem Analisti Tasarımcı Programcı
  • 437. 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.
  • 438. İçerik UML Modeli Kavramları UML Tanımını Genişletme Mekanizmaları Davranış Şemaları Yapısal Şemalar
  • 440. Yapısal Şemalar class şeması* package şeması* composite structure şeması object şeması component şeması deployment şeması
  • 441. Class Şeması Temel Kavramlar Şema İçeriği Şemayla Aktarılan Bilgiler Tasarım Teknikleri Forward ve Reverse Engineering
  • 442. 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.
  • 443. 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.
  • 444. 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.
  • 445. Temel Kavramlar Değişkinler ‘private’ Metodlar ‘public’ Hepsi küçük harfle başlar ve kelimeler bitişik yazılır.
  • 446. 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: ‘-’
  • 447. Temel Kavramlar Encapsulation: Değişkenlerin ‘private’ olma nedenidir.
  • 448. Temel Kavramlar Generalization: Farklı ‘abstraction’ seviyeleri arasında ırsiyet ilişkileri kurmak için kullanılır.
  • 449. Temel Kavramlar Polymorphism: implementasyonun detaylarını gizleyerek kolay kullanımı sağlar. Aynı isme sahip fakat farklı çalışan fonksiyonları ifade eder.
  • 450. 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.
  • 451. 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.
  • 454. İlgili Roller Şemayı Hazırlayanlar: Tasarımcı Programcı Şemayı Kullananlar: Tasarımcı Programcı
  • 457. 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. ”
  • 458. Package (Paket) Şeması Temel Kavramlar Şema İçeriği Şemayla Aktarılan Bilgiler Tasarım Teknikleri Forward ve Reverse Engineering
  • 459. 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.
  • 460. Temel Kavramlar Paket UML modeli elemanlarından oluşan bir gruptur.
  • 462. İlgili Roller Şemayı Hazırlayanlar: Herkes Şemayı Kullananlar: Herkes
  • 463. Paket Şeması Örnekleri Müşteri Sipariş Yer CD Sipariş Stok Satış Depo
  • 464. Ş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.
  • 465. Ş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.
  • 466. Analistler için Modelleme Bölüm 5 / 6
  • 468. İçerik Modüllerin Yapısı Modül Tanımlama Teknikleri Modül Gerçekleştirme Teknikleri Modellerin Yapısı Modellerin İlişkileri
  • 469. 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.
  • 470. Modül Özellikleri Tanım elemanları Gerçekleştirme elemanları Bir modül bir sistemin hem tanımlanma hem de gerçekleştirilme aşaması çalışmalarını içerir.
  • 471. Modülün Gerçekleştirilmesi Tanım elemanları Gerçekleştirme elemanları ? Gerçekleştirme elemanları subsytem’in içeriğini gösterir. Modül gerçekleştirilmesi genellikle class’lar ve ilişkilerini içerir.
  • 472. Modül Tanımlanması Tanım elemanları Gerçekleştirme elemanları ? Modül tanımı modülün dışarıdan nasıl görüldüğü belirtir
  • 473. İçerik Modüllerin Yapısı Modül Tanımlama Teknikleri Modül Gerçekleştirme Teknikleri Modellerin Yapısı Modellerin İlişkileri
  • 474. 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
  • 475. Tanımlama Teknikleri Use Case yaklaşımı State Machine yaklaşımı Mantıksal Class yaklaşımı Metod Yaklaşımı … ve bunların kombinasyonları
  • 476. Gerçekleştirme elemanları Tanım elemanları Modülü sunduğu hizmetlerle alakalandırabilmek için Spesifikasyonun teknik olmayan insanlara aktarılabilmesi için 1. Use Case Yaklaşımı
  • 477. 1. Use Case Yaklaşımı Realization elements Change Digit Analysis Information Operator Initiate Call Trunk Receive Digit and Connect Hook Signal and Disconnect Subscription Çağrı Kontrol Tanım elamanları
  • 478. Stopped Running Maintenance Exhausted Error 2. State Machine Yaklaşımı Çağrı Kontrol Tanım elemanları 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
  • 479. Number Dictionary Analyzer Network Manager 3. Mantıksal Class Yaklaşımı Çağrı Kontrol Tanım elemanları Modülün kullanımı nesnelerin manipülasyonu olarak görülüyorsa Gereksinimler belli bir standarda uyum zorunluluğundan kaynaklanıyorsa
  • 480. initiateConnection (…) dialledDigit (…) throughConnect (…) bAnswer (…) bOnHook (…) aOnHook (…) 4. Metod Yaklaşımı Çağrı Kontrol Metodlar Basit (atomic) hizmetler veren modüller için Metodlar birbirlerinden bağımsız olarak çağrılıyorlarsa
  • 481. Tekniklerin Kombinasyonları Initiate Call Trunk Receive Digit and Connect Hook Signal and Disconnect Subscription Çağrı Kontrol Specification elements Metodlar changeDigitAnalysisInformation (...) Tanım elemanları
  • 482. Operations Gerçekleştirme elemanları Metodlar Tanım elemanları Eksiksiz Modül Notasyonu Üç tanımlı parçadan oluşur Bu parçalar isteğe bağlı olarak kullanılmayabilir
  • 483. İçerik Modüllerin Yapısı Modül Tanımlama Teknikleri Modül Gerçekleştirme Teknikleri Modellerin Yapısı Modellerin İlişkileri
  • 484. 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)
  • 485. «realize» Metodlar Gerçekleştirme elemanları operation1( ) : Type1 operation1( ) operation2( ) : Type2 operation3( ) : Type3 operation4( ) : Type4 operation5( ) : Type5 Gerçekleştirme İlişkisi Gerçekleştirme (Realization) özellikle tek seviyeli ilişkileri göstermekte faydalı
  • 486. Gerçekleştirme İlişkisi «realize» Trafik Kontrol Gerçekleştirme elemanları Metodlar changeDigitAnalysisInformation ( ) Tanım elemanları Initiate Call changeDigitAnalysisInformation ( ) : : Trunk Receive Digit and Connect Hook Signal and Disconnect Subscription
  • 487. 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.
  • 488. Collaboration Sequence Şeması Collaboration Şeması 2: dialledDigit :Trunk :Subscription :Traffic Control :Traffic Control markBusy dialledDigit 4: throughConnect dialledDigit :Trunk throughConnect markBusy :Subscription bAnswer 1: markBusy Bir ‘collaboration’ bir iş yerine getirilirken gereken rolleri tanımlar Bu roller birbirleriyle etkileşen nesneler aracılığıyla canlandırılır 3: dialledDigit 6: bAnswer 5: markBusy
  • 490. Collaboration Notasyonu Collaboration Rol adı Rol adı Rol Rol adı Rol adı Class Bir birliktelik (collaboration) ve katılımcıları
  • 491. Tanım elemanları Gerçekleştirme elemanları Initiate Call Network Interface Receive Digit and Connect Coordinator Analysis Database Hook Signal and Disconnect Collaboration Collaboration genellikle daha karmaşık durumlarda faydalıdır
  • 492. Collaboration Çeşitleri Rol modeli bir özel durumu ifade ederken Class modeli daha genele yönelik. Dolayısıyla her Class modeline karşılık birden fazla Rol modeli olacaktır.
  • 493. Use Case Realization Collaboration Şeması: “Sipariş Alınması”
  • 499. 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
  • 500. 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)
  • 501. İçerik Modüllerin Yapısı Modül Tanımlama Teknikleri Modül Gerçekleştirme Teknikleri Modellerin Yapısı Modellerin İlişkileri
  • 502. Model Bir model sisteme belli nedenden dolayı farklı bir bakış şeklidir. Oluşturulma amacına uygun şekilde dokümantasyona ve detay seviyesine sahiptir.
  • 503. Model Use Case Modeli Tasarım Modeli
  • 504. Model Sembolleri Sistemi belli muhataplara onlara özel detay seviyesiyle sistemin ilgili yönlerinin gösterilmesidir. İsim 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» Sembol Tanım Syntax Model Trace
  • 505. Trace Analiz Tasarım «trace»
  • 506. Model / Şema Şemalar modeli dokümante eder Use Case Modeli Tasarım Modeli
  • 507. 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
  • 508. Model Oluşturma Teknikleri Her modelin amacını tanımlayınız Her model amacına uygun şekilde sistemin eksiksiz bir resmini çizmelidir