YAZILIM MÜHENDİSLİĞİ-ANALİZ

Slides:



Advertisements
Benzer bir sunumlar
Microsoft Access Bu program Microsoft program paketinin içerisinde yer alan; çok büyük miktarlardaki verilerin depolanabileceği veritabanı oluşturmamıza.
Advertisements

Yazılım Geliştirme Süreci
YAZILIM GELİŞTİRME SÜRECİ
Yazılım Mühendisliği Bölüm - 4 Sistem Analizi
UML Unified Modeling Language
Component’e Dayalı Yazılım Mühendisliğinde Çözümleme Süreci “Component-Based Software Engineering Analysis” Yusuf Altunel İstanbul Kültür Üniversitesi,
Resimlerin Kullanımı.
YAZILIM MÜHENDİSLİĞİ-ANALİZ
Problemi Çözme Adımları
KONTROL ÖZELLİKLERİ.
BELGELEME Ian Sommerville, “Software Documentation”,
END3061 SİSTEM ANALİZİ VE MÜHENDİSLİĞİ
END3061 SİSTEM ANALİZİ VE MÜHENDİSLİĞİ
ISO 9001:2008 Değişiklikleri Mart Madde No ve Değişiklikler Madde 1.2 “ürünün veya kuruluşun yapısı gereği bu standardın bir veya birkaç maddesinin.
BENZETİM Prof.Dr.Berna Dengiz 4. Ders Modelleme yaklaşımları
Yazılım Test Süreci. Yazılım test süreci Test Hazırlık Adımında Neler Yapılmalıdır? Test edilecek yazılıma ait analiz ve teknik tasarım aşamaları ile.
TÜMLEŞİK MODELLEME DİLİ
ANALİZ.
Görev Analizi Doç.Dr. Şirin Karadeniz.
Yapısal Program Geliştirme – if, if-else
Sistem Geliştirme Sistemin tanımı. Sistemin Temel özellikleri
Yazılım Proje Yönetimi
Nesneye Dayalı Programlama
Bilgi Sistemi Geliştirme
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 19Slide 1 Doğrulama ve Geçerlilik.
Nesneye yönelİk analİz ve tasarima gİrİş
Ece Olcay Güneş & S. Berna Örs
BBY Bilgi Sistemleri Tasarımı
Proje Başarısı. Hangi Nedenler Projeleri başarısızlığa sürükler? Mevcut durumun yetersiz analizi Projelerin hedef gruplarla ilgili olmaması Doğru stratejilerin.
TASARIM BELGELERİ DİLARA SOLMAZ.
END3061 SİSTEM ANALİZİ VE MÜHENDİSLİĞİ
END3061 SİSTEM ANALİZİ VE MÜHENDİSLİĞİ
KARAR ALICI OLARAK YÖNETİCİ.
SİSTEM ANALİZİ ve TASARIM
ALİ FINDIK Galatasaray Ünİversİtesİ 2015
Veri Tabanı Tasarım Süreci
BİLGİSAYAR DESTEKLİ EĞİTİM UYGULAMALARI
Karar Sürecinin Modellenmesi
BİL 102 BİLGİSAYAR PROGRAMLAMA DERS 1. PROGRAM GELİŞTİRME AŞAMALARI 1- Probleme ilişkin veriler nelerdir? 2- Çözüm yöntemi nasıl olacaktır? 3- Çözüm sonucunda.
Yapısal Tasarım Araçları
Geleneksel Tasarım Araçları
SİSTEM VE YAZILIM Bilgisayar sistemleri donanım, yazılım ve bunları işletmek üzere gerekli işlemlerden oluşur. Yazılım, bilgisayar sistemlerinin bir bileşeni.
DENEYSEL YAKLAŞIM (Kullanıcı Testleri)
Yapısal Tasarım Araçları
Bilgisayar Mühendisliğindeki Yeri
ÇEVİK (Agile) SÜREÇLER Değişen gereksinimler, teknik riskler gibi önceden belirlenemeyen durumlara ve yazılım ürününü etkileyebilecek her tür değişikliğe.
Geleneksel Tasarım Araçları
Yazılım Mühendisliği YYurtaY. Ekip çalışması
Sistem Analizi ve Tasarımı
UNICASE... kapsamlı bir CASE* aracı * UNICASE.
 Active Directory, ağ kaynaklarını verimli bir şekilde yönetmenize olanak sağlayan, genişletilebilir bir dizin hizmetidir. Bu dizin hizmeti, ağda bulunan.
Ders 4: Sistem Çözümleme
ANKARA ÜNİVERSİTESİ SAĞLIK BİLİMLERİ FAKÜLTESİ SOSYAL HİZMET BÖLÜMÜ
Yazılım Mühendisliği Standartları
ISO 9001:2015 standardı – 8. Maddenin Tanıtımı
SİSTEM ANALİZİ VE TASARIMI
ACTIVE DIRECTORY.
SİSTEM ANALİZİ VE TASARIMI
ERP Projesinin Aşamaları İzmir. ERP Projesinin Aşamaları SatışSatış - Başlangıç – Kurulum – Analiz – Plan – Uyarlama – Eğitim – Geliştirme.
Problem Çözme Yaklaşımları
Algoritmanın Hazırlanması
PROGRAMLAMAYA GİRİŞ FORTRAN 77.
ONTOLOJİ GELİŞTİRME ALANINDA ÇEVİK YAKLAŞIMLAR
Bilgisayar Bilimi Problem Çözme Süreci-2.
Problemi Çözme Adımları
EĞİTİMDE BİLGİSAYAR KULLANIMI
Yazılım Mühendisliği Temel Süreçler - Sistem Analizi
Yazılım Mühendisliği Temel Süreçler – PLANLAMA II
İLERİ VERİ TABANI UYGULAMALARI
Gereksinim Analizi Çalışmaları
Sunum transkripti:

YAZILIM MÜHENDİSLİĞİ-ANALİZ

İçerik Yazılım İster (Gereksinim) Analizi İster Nedir? İster Türleri Alan İşlevsel, işlevsel olmayan Sistem, Kullanıcı Diğer İster Çözümleme Aşamaları İster Çözümleme Yöntemleri Doğal Dil Yapısal Doğal Dil Formlar, şablonlar aracılığı ile ifade Grafiksel Gösterim Veri Akış Şemaları UML diyagramları (Kullanım senaryoları-Use Case Sıralı-sequential ) diyagram gibi Geçerleme,Gözden Geçirme Sonuç: The software requirements document (Yazılım İster (Gereksinim) Dökümanı)

Yazılım İsterleri Çözümlemesi  Bir bilgisayar programının başarısı öncelikle müşteri isteklerini tam olarak karşılamasına bağlıdır.  Yazılım isterleri çözümleme aşaması  Müşterinin yazılımdan bekledikleri belirlenir  Gereksinimler açıklığa kavuşturulur  Yazılım isterleri modellenir ve tanımlanır  Böylece de sonraki aşamalar için temel oluşturulur.

İster  Kullanıcı ve sistem isterleri nelerdir?  İster nedir?  İster çeşitleri  Kullanıcı ve sistem isterleri nelerdir?  İşlevsel (functional) ve işlevsel-olmayan (non-functional) isterler nelerdir?

İster nedir?  İster (gereksinim): gerekli olan, istenen veya ihtiyaç duyulan.*  IEEE 729  Kullanıcı tarafından bir problemi çözme ya da bir hedefi gerçekleştirmek için ihtiyaç duyulan durum ya da yetenek * http://www.webster.com ** Pressman, R. Software Engineering: A Practitioner’s approach

İster mühendisliği nedir?  Tüm bu hizmet ve kısıtlamaların  belirlenmesi  çözümlenmesi  belgelendirilmesi  ve kontrol edilmesi sürecine İster (Gereksinim) Mühendisliği denir

İsterler neden önemlidir?  İsterlerden kaynaklı hatalar geç aşamalarda fark edilir  Genellikle yanlış bilgi, ihmal ve tutarsızlık kaynaklıdır  Bu durumda da düzeltilme maliyetleri yüksek olur

İster Türleri Görevlerine Göre İşlevsel (Functional) İşlevsel Olmayan (Nonfunctional) Detay Seviyesine Göre Kullanıcı Sistem Alan İsterleri Diğer İsterler?? İsterleri farklı detay seviyelerinde yazmak gereklidir çünkü farklı okuyucular onları farklı şekillerde kullanacaklardır

Kullanıcı İsterleri  İşlevsel ve işlevsel olmayan gereksinimleri tanımlamalı, böylece detaylı teknik bilgiye sahip olmayan sistemin kullanıcıları tarafından da anlaşılabilmelidir.  Kullanıcı isterleri, doğal dil, basit tablo ve formlar ve şemalar ile tanımlanır.  Sadece sistemin harici davranışlarını belirtmeli ve mümkün olduğunca tasarım özelliklerine girmekten kaçınmalıdır.  Çoğunlukla, teknik-olmayan okuyucular tarafından okunurlar

Sistem İsterleri  Kullanıcı isterlerinin daha detaylı belirtimidir  Sistemi tasarlamak için temel oluşturur.  İdeal olarak, basitçe, harici davranış ve kısıtlamaları tanımlar. Tasarım ve uygulama ile ilgilenmemelidir.  Fakat pratikte, tasarım bilgisi bulundurabilir.  İster belirtimine yardımcı olabilmek için bir başlangıç mimarisi tasarlanabilir  tasarımda yeniden kullanılabilir  Başka var olan sistemlerle arayüzü bulunabilir  tasarıma kısıt getirir  İşlevsel olmayan isterlere özel bir mimariye karar verilebilir  tasarıma kısıt getirir.

Uygulama Alanı isterleri İşlevsel veya işlevsel olmayan?? Her ikisi de olabilir. Alana özel gereksinimler, sistemin çalışacağı ortam. Kullanım ortamında gözlem yapılarak nelere gereksinim duyulduğu ve işin kapsamı belirlenir. Benzer ürünler incelenir, onlardan temel isterler çıkarılır. Gerekirse bu bilgiler bir kapsam tanımlama belgesinde toplanır

Uygulama Alanı isterleri Mevcut gereksinimleri yeni fonksiyonel gereksinimleri, kısıtlamalar ekleyebilir Bu gereksinimler yerine getirilmezse sistem çalışamaz. Kütüphane sistemi uygulama alanı isterleri: Z39.50 standardı esas alınacaktır tüm veritabanları için standart bir kullanıcı arayüzü olacaktır. Telif kısıtlamalarıdan dolayı, bazı belgeleri ulaştığında hemen silinmelidir.Kullanıcı gereksinimlerine bağlı olarak, bu belgeler ya elle kullanıcıya yönlendirme veya bir ağ yazıcısı yönlendirilirilerek sistem sunucusu üzerinde yerel olarak basılacaktır. Tren sinyalizasyon sistemi Trenin yavaşlama gibi hesaplanacaktır: Dtrain = Dcontrol + Dgradient

Definitions and specifications

İşlevsel isterler

İşlevsel-olmayan isterler

İşlevsel-olmayan ister çeşitleri olmayan İsterler Ürün Kurum isterleri Harici isterler isterleri Kullanıla Verim Güven Taşına Teslim Gerçek bilirlik leştirim Standart Birlikte Etik Yasal bilirlik lilik ilirlik lar işlerlik İsterler isterler Performans isterleri Gizlilik isterleri Alan isterleri Güvenlik isterleri

İşlevsel-olmayan ister örnekleri  İşlevsel olmayan isterler diğer işlevsel olmayan ya da işlevsel isterler ile çakışabilir ya da etkileşebilir.  Örn.  Sistem tarafından kullanılacak maksimum hafiza 4 MB den fazla olmayacak.  Sistem ADA kullanılarak yazılacak. Ada programını istenen 4MB den düşük hafıza isteri ile derlemek mümkün olmayabilir.  Başka bir geliştirme dili seçimi  Hafızayı arttırma

İşlevsel-olmayan isterlerin ölçümü  Doğruluğunu sınamak zordur: Kullanılabilecek olası ölçüm yolları (metric) vardır.  Ama bazılarını belirlemek zordur: bakım gibi  Mümkün olduğunca doğruluğu sınanabilecek işlevsel- olmayan ister yazmaya çalışmalısınız

İşlevsel-olmayan ister ölçütleri (metrics)  Hız:  Güvenilirlik  İşlenen işlem/saniye  Ekran yenileme  Ortalama hata sayısı zamanı (MTF-Mean Time to failure)  Kullanımda olmama olasılı ğ ı  Sağlamlık  Boyut:  K bytes  Ram miktarı  Hata sonrası yeniden başlatma zamanı  Kullanım kolaylığı  Gerekli eğitim süresi  Hataya neden olan olay yüzdesi  Yardım ekranlarının sayısı  Taşınabilirlik  Hedef sistem sayısı  Hedefe bağımlı anlatım yüzdesi

İşlevsel-olmayan ister örnekleri  Sistem, deneyimli bir kontrolör tarafından kolayca kullanılmalı ve kullanıcı hataları en aza indirilecek şekilde organize edilmelidir.  Doğruluğu sınanabilecek şekilde yeniden yaz:  Deneyimli kontrolörler sistem fonksiyonlarını 2 saatlik bir eğitim sonrasında kolaylıkla kullanabileceklerdir. Bu eğitimden sonra, deneyimli kullanıcıların ortalama hata yapma oranı günde 2 defayı geçmeyecektir.

İşlevsel ve işlevsel-olmayan isterlerin ilgisi  Örn. Güvenlik ile ilgili bir işlevsel olmayan kullanıcı isterleri bir takım işlevsel isterlerin oluşmasına neden olabilir  Kimlik denetleme özelliği: oturum yönetimi, cookie, vb  Kimlik denetleme işlevi hem işlevsel hem işlevsel-olmayan istere örnektir.  Her iki çeşit ister arasında net bir ayrım yoktur.

Diğer İsterler Davranış şeklinde ifade edilemeyen isterlerdir. (non-behavioral requirements) Arayüz İsterleri (Interface Requirements) Kullanıcı Arayüzleri Yazılım Arayüzleri Donanınım Arayüzleri İletişim Arayüzleri

Kullanıcı Arayüzü Yazılım ürünü ile kullanıcısı arasındaki her bir arayüzün mantıksal özellikleri açıklanmalıdır. Bu özellikler, yazılım ihtiyaçlarının giderilmesine yönelik olan ekranformatları, pencere görünümleri, menü ya da rapor içerikleri, programlanabilir fonksiyon tusları gibi konfigürasyon özellikleridir. Ayrıca arayüzler ile sistemin kendisini kullananlara nasıl görünmesi gerektigi de tarif edilmelidir.

Yazılım Arayüzleri Diger gerekli yazılım ürünlerinin kullanımı ve ürünün yazılımlar ile olan arayüzleri burada ortaya konmalıdır. Gerekli her bir yazılım ürünü için, isim, spesifikasyon numarası, versiyon ve kaynak belirtilmelidir. Tanımlanan her bir arayüz, mesaj içerigi ve format yönünden açıklanmalıdır.

Donanım Arayüzleri İletişim Arayüzleri Burada yazılım ürünü ile donanım bilesenleri arasındaki her bir arayüzün mantıksal özellikleri verilmelidir. Bunun yanında örnek olarak; hangi cihazların desteklenecegi, nasıl ve hangi protokollerle desteklenecegi gibi noktalar da belirtilmelidir. İletişim Arayüzleri Yerel ag protokolleri..vs gibi iletisim arayüzleri burada açıklanmalıdır.

İçerik Yazılım İster (Gereksinim) Analizi İster Nedir? İster Türleri Alan İşlevsel, işlevsel olmayan Sistem, Kullanıcı Diğer İster Çözümleme Aşamaları İster Çözümleme Yöntemleri Doğal Dil Yapısal Doğal Dil Formlar, şablonlar aracılığı ile ifade Grafiksel Gösterim Veri Akış Şemaları UML diyagramları (Kullanım senaryoları-Use Case Sıralı-sequential ) diyagram gibi Geçerleme,Gözden Geçirme Sonuç: The software requirements document (Yazılım İster (Gereksinim) Dökümanı)

İster çözümleme aşamaları  Çözümleyici (Analyst): Yeteri deneyime sahip yazılım isteri çözümlemesi yapan kişi  Çözümleme çalışmaları beş başlık altında incelenebilir:  Problemin anlaşılması  Problemin çözümlenmesi  Modelleme  Belirtim  Gözden geçirme

İsterlerin değişmesi  İsterlerin çözümlenmesi ne kadar iyi yapılırsa yapılsın, süreç sırasında da isterlerde değişiklik meydana gelebilir:  Müşteri ve geliştirici arasındaki iletişimin yeterli olmaması  Bu aşamaya çabuk geçebilmek için bazı varsayım ya da kabullenmeler yapılmış olması  Müşterinin ne istediğini tam bilememesi ve sık sık fikir değiştirmesi  Geliştiricinin deneyim eksikliği  Ayrıntılı tasarıma geçilince yeni isterlerin gerekliliğinin ortaya çıkması

İsterlerin Belirlenmesi  Sistemin başarısı, sistemden ne istendiğinin doğru olarak algılanmasına bağlıdır  Bunun için düzeylere ayrılmış sistem isterlerinden Yazılım İsterleri belirtimi (SRS) çıkartılmalıdır. 

İçerik Yazılım İster (Gereksinim) Analizi İster Nedir? İster Türleri Alan İşlevsel, işlevsel olmayan Sistem, Kullanıcı Diğer İster Çözümleme Aşamaları İster Çözümleme Yöntemleri Doğal Dil Yapısal Doğal Dil Formlar, şablonlar aracılığı ile ifade Grafiksel Gösterim Veri Akış Şemaları UML diyagramları (Kullanım senaryoları-Use Case Sıralı-sequential ) diyagram gibi Geçerleme,Gözden Geçirme Sonuç: The software requirements document (Yazılım İster (Gereksinim) Dökümanı)

Gereksinim Çıkarma ve Analizi – Zorluklar Yazılım gelistirme çalısmalarının ön asamaları Kimse birbirini tanımıyor, sistemi bilmiyor Yöntem, teknoloji, vb. yeni olabilir Kullanıcı odaklı problemler yasanabilir. Kullanıcılar ne istediklerini bilmeyebilir. Kullanıcılar isteklerini kendi terimleriyle ifade edebilir. Farklı kullanıcıların çelisen istekleri olabilir. Farklı grupların beraber çalısmasını gerektiriyor. Kullanıcı grupları, analiz uzmanları, mimari/tasarım uzmanları Kurumsal ve politik etkenler sistem gereksinimlerini etkileyebilir. Analiz boyunca gereksinimler degisebilir; yeni kullanıcılar çıkabilir ve is ortamı degisebilir.

Gereksinim Geçerleme Gereksinimlerin müsterinin istedigi sistemi tanımladıgını güvence altınaalmayı hedefler. Gereksinimlerden kaynaklanan bir hatayı sonradan düzeltmenin maliyeti yüksek oldugundan, geçerleme büyük önem tasır. Gereksinim geçerleme teknikleri: Gözden geçirme – gereksinimlerin sistematik ve paydaslara dayalı analizi Prototip olusturma – sistemin çalısan bir taslagı üzerinden kontrol Test durumu gelistirme – sistemin test edilebilirligini kontrol amacıya gereksinimler için test durumu gelistirme

Gözden Geçirme Gözden geçirme çalısmalarında hedefimiz, yazılım gereksinimlerinin asagıdaki özellikleri tasıdıgından emin olmaktır: Tam ve dogru Anlasılabilir Tutarlı Test edilebilir Diger belgelerde tanımlanan is/kullanıcı/sistem gereksinimlerine izlenebilir

Gereksinimler ve Tasarım Gereksinimler, sistemin “ne” yapacagını tanımlar. Tasarım, sistemin tanımlanan gereksinimlerinin “nasıl” gerçeklestirilecegini belirtir. Pratikte, gereksinimler ve tasarım her zaman net olarak ayrılamayabilir. Sistem mimarisi, gereksinimleri yapısallastırmak için tasarlanır. Sistem islevleri, tasarımı kısıtlayan diger sistemlerle iliski içinde gerçeklestiriliyor olabilir. Müsteri tarafından, sistemin özel bir tasarıma uyması isteniyor olabilir. Gereksinimlerin türlerine göre ayrı baslıklar altında tanımlanması, bu karısıklıgı azaltacaktır.

Doğal Dile İle İlgili Problemler Muglaklık (“Ambiguity”) Gereksinimler, okuyan herkes tarafından aynı yorumlanacak sekilde yazılmalıdır. Dogal dil muglak ifadelere açıktır. Asırı esneklik (“Over-flexibility”) Bir gereksinim, dogal dil ile çok farklı sekillerde ifade edilebilir. Modülerligin olmayısı (“Lack of modularisation”) Dogal dilin ögeleri, sistem gereksinimlerini yapısallastırmak için yetersiz kalmaktadır. Bu problemlere ragmen dogal dilin kullanılması, müsteri ve gelistirici arasındaki iletisim açısında önem tasımaktadır.

Gereksinimleri Yazmak İçin Öneriler:Doğal Dil Kullanımı İçin Standart bir biçim belirleyerek gereksinimleri tanımlarken kullanın. Her gereksinime bir numara verin. Dogal dili tutarlı olarak kullanın. Zorunlu ve seçimli gereksinimleri farklı kalıplarla ifade edin. Gereksinimlerin önemli kısımlarını ayırt etmek için farklı yazı tipi (büyük harf, alt çizme, farklı renk, vb.) kullanın. Bilgisayar terimlerini kullanmaktan kaçının.

Gereksinimlerin Bulanıklıgı Gereksinimler net olarak ifade edilmedigi zaman problemler yasanır. Bulanık gereksinimler gelistiriciler ve kullanıcılar tarafından farklı algılanabilir. Örnek: “Sistem, kullanıcının doküman ambarındaki dokümanları okuması için, uygun görüntüleyiciler saglamalıdır.” “uygun görüntüleyiciler”: Kullanıcı yorumu : her farklı doküman tipi için farklı kullanıcı Gelistirici yorumu : her dokümanın içerigini gösteren bir metin görüntüleyici

Gereksinimlerin Tamlığı ve Tutarlılıgı Gereksinimler tam ve birbiriyle tutarlı olarak ifade edilmelidir. Tamlık : Sistemin beklenen tüm özellikleri tanımlanmalıdır. Tutarlılık: Sistemin tanımlanan özellikleri arasında çeliskiler bulunmamalıdır. Pratikte, dogal dilden kaynaklanan zorluklar sebebiyle, gereksinimleri tam ve tutarlı olarak ifade etmek çok kolay degildir. Tanımlanan gereksinimlerin ilgili tüm kisilerce gözden geçirilmesi, tamlıgı ve tutarlılıgı büyük ölçüde saglamanın en basit yoludur. VAD kullanılması durumunda aşağıdaki gibi kriterler denetlenmelidir Bütün süreçlerin girdi ve çıktıları var mı? Süreçler, veri akışları, dış birim ve veri depoları uygun şekilde adlandırılıp numaralandırılmış mı? Planlama aşamasında öngörülen belirtimlerin hepsi ele alınmış mı?

Doğal Dile Alternatifler Yapısal Doğal Dil Formlar, şablonlar aracılığı ile ifade Grafiksel Gösterim VAD UML diyagramları (Kullanım senaryoları-Use Case Sıralı-sequential ) diyagram gibi

Yapısal Dogal Dil – Örnek: Form Esaslı Tanımlama

Çizelge şeklinde gösterim

VAD- Veri Akış Diyagramı  Sistem içinde her verinin nasıl taşındığı ve bu veri akışını sağlayan fonksiyonların (işlevlerin) neler olduğu veri akış diyagramında (VAD-DFD) tarif edilir.  Sistemin varlıkları  Süreçleri  Sistemdeki veri depoları  Ve bunlar arasındaki verinin nasıl aktığını gösterir

VAD- Veri Akış Diyagramı  Bilgi bilgisayar sistemi içerisinde akarken dönüşür  Sistem çeşitli formlarda girdi alır ve bu girdileri yazılım, donanım ve insan elemanları ile işleyerek çeşitli formdaki çıktılara dönüştürür.  VAD verinin girişten çıkışa dek olan dönüşümü ve bilginin taşınmasını gösteren grafiksel bir tekniktir.

VAD simgeleri Anlam Simge - 1 Simge - 2 Örnek Dış varlık İşlem (süreç) Öğrenci İşlem (süreç) Veri akışı Veri deposu Veri deposu

VAD Kuralları İşlemin sadece çıkışı olamaz. İşlemin sadece girişi İşlem girişleri istenen çıkışı verecek kadar yeterli olmalıdır.

VAD Kuralları Her veri deposu bir işlemle ilgili olmalıdır varlıkla doğrudan ilişkide olamaz Veri akış oku çift yönlü olamaz. Bir işlemle veri deposu arasında karşılıklı veri akışı varsa farklı tek yönlü oklarla gösterilmelidir.

VAD Kuralları Bir işlemden farklı iki işleme gidecek olan aynı veri, aynı yönde iki uçlu okla gösterilmelidir. Veri hiçbir işlemden geçmeden çıktığı işleme doğrudan dönmez Veri akış okları üzerinde gösterilen veri, sadece isim formatında olmalıdır

VAD Düzeyleri gösterilerek girdi ve çıktılargelen ve çıkan oklar ile  VAD bir sistemi ya da yazılımı herhangi bir soyutlama düzeyinde göstermek için kullanılabilir.  VAD artan bilgi akışı ve işlevsel detayları içerecek şekilde çeşitli seviyelere bölünebilir.  Seviye 0 olarak gösterilen VAD aynı zamanda kapsam diyagramı(temel sistem modeli) olarak da adlandırılır:Tüm sistem tek bir balon içerisinde gösterilerek girdi ve çıktılargelen ve çıkan oklar ile ifade edilirler.

VAD Düzeyleri olan VAD daha detaylı bilgi akışı ve  Seviye olan VAD daha detaylı bilgi akışı ve süreçleri içerecek şekilde ek süreçlere (balonlara) ayrılır.  Seviye 1 VAD 5 ya da 6 süreç(balon) ve bunlar arasındaki akışları gösterir.  Seviye 1 de gösterilen süreçler kapsam modelinde yer alan ana sistemin alt fonksiyonlarını içerir.

VAD Örneği  Seviye 0 Diyagram

VAD Örneği  Seviye 1 Diyagram

VAD Örneği  Süreç 2.0 için Seviye 2 Diyagram

VAD çizim yöntemi  Süreç hikayesi gramer olarak ayrıştırılır. (tüm isim ve fiiller ayrıştırılır)  Eş anlamlı olan isim ve fiiller atılır.  Gramatik ayrıştırmaya dayalı olarak bir model çıkmaya başlar:  Tüm fiiller sistem süreçleridir: VAD içerisinde balonlar içerisinde yer alır  Tüm isimler harici varlıklar, veri öğesi ya da veri deposudur.  Seviye 0 VAD çizilir  Seviye 0 Seviye 1 modele detaylandırılır daha sonra da Seviye 1’deki süreçler Seviye 2 olarak detaylandırılırlar

Analysis Model - UML Function Data Behavior Class diagram Object State-chart diagram Interaction diagram Class diagram Object diagram Use case diagram Activity diagram Data Behavior Function

Unified Modeling Language (UML) Yazılım sistemlerinin modellemesi için geliştirilmiş standart bir dildir Yazılım is ürünlerinin; tanımlanması, görsel hale getirilmesi, belgelendirilmesi Açık standarttır; birçok araç tarafından desteklenir Tüm yazılım geliştirme sürecini destekler Çıkış hedefleri: Kullanımı kolay, görsel bir modelleme dili sunmak Programlama dillerinden ve geliştirme sürecinden bağımsız olmak En iyi yöntemleri bütünleştirmek

Unified Modeling Language (UML) Sundukları: Yazılım ürünlerinin gösterimi için yapı tasları ve ilişkiler Sunmadıkları: Sisteminin nasıl gelistirilmesi gerektigini tanımlamaz Nesne yönelimli yazılım modellemesi için yapılar sunar, ancak; Bu yapıların hangi sıra ile kullanılması gerektigini tanımlamaz Yapıların gelistirme sürecinin hangi asamalarında kullanılması gerektigini tanımlamaz

UML Türleri

UML Türleri Use case diyagramı:       Aktörler ve use case’ler arasındaki ilişkiyi gösterir. Etkinlik (Activity) diyagram:        Çoğu durumun eylem durumu olduğu ve geçişlerin bir durumdaki eylemin sonuçlanması ile tetiklendiği özel bir durum diyagramı türüdür. Bu diyagram daha çok iç işlemler esnasındaki akışı gösterir.

Sıralı Diyagramlar (Sequence diagrams)

Use Case Elemanları Aktör: Sistemin kullanıcıları Use-case: Sistemin destekleyeceği isler

Use Case Elemanları . "uses" ilişkisi ana use case in bir alt kümesidir, “extends" ilişkisi ise ana use case den farklı özellikleri (alternatif seçenekleri) olan bir use case ile ilişkilendirilir. Include” ilişkisi ise bir “use-case”in digerinin davranısını içermesi

Gereksinim Analizinde Use Case Bakıs açısı: Sistem, kullanıcısı için “ne” yapacak ? Sistem kapalı bir kutu (“black-box”) Sistem-kullanıcı etkilesimi Sistemin dısarıdan görünen davranısı Ilgilenmediklerimiz: Sistemin iç yapısı Sistem belirlenen davranısı “nasıl” yapacak ? Belirlenen davranıs “nasıl” kodlanacak ? Bu bakıs açısı, sistemdeki tüm islevselligi degil, kullanıcılar için artı deger olusturacak islemleri düsünmemizi saglar

Gereksinim Analizinde Use Case Kullanıcının gereksinimi olmayan özellikleri tanımlamamızı engeller Kullanıcının da anlayabilecegi sekilde sistemin davranıslarını ve sorumluluklarını tanımlar Kullanıcı ile iletisimi kolaylastırır Kullanıcı arayüzlerinin tasarlanmasını kolaylastırır Kullanıcı kılavuzlarını yazarken baslangıç noktasını olusturur Gelistirme sürecini baslatır ve tüm temel is adımlarını birbirine baglar Tasarlanacak test durumlarına esas olusturur

Aktivite Diyagramları Genel olarak bir akısı veya islemi göstermek için kullanılırlar. (“flowchart” benzeri bir yapı) Activity diyagramın içerisinde Etkinlik (“activity”) Sistem ve aktörler tarafından yapılan isleri ifade etmek için kullanılır Geçis (“transition”) Etkinlikler arasındaki geçisleri ifade etmek için kullanılır

ATM Aktivite Diyagramı