Bolum9

40
YAZILIM GEREKSİNİM ANALİZİ (SOFTWARE REQUIREMENTS ANALYSIS) Maltepe Üniversitesi Yazılım Mühendisliği Bölümü YZM 210

Transcript of Bolum9

YAZILIM GEREKSİNİM ANALİZİ (SOFTWARE REQUIREMENTS ANALYSIS)

Maltepe Üniversitesi Yazılım Mühendisliği Bölümü YZM 210

NESNE-TABANLI ANALİZ (ÖRNEK: KÜTÜPHANE OTOMASYON SİSTEMİ)

2

YZM 210 – Yazılım Gereksinimleri Analizi

9. BÖLÜM

YZM 210 – Yazılım Gereksinimleri Analizi

3

• Varlık Sınıflarının Çıkarılması:

‒ İşlevsel Modelleme: Kütüphane Otomasyon Sistemi

‒ Sınıf Modelleme: Kütüphane Otomasyon Sistemi

‒ Dinamik Modelleme: Kütüphane Otomasyon Sistemi

• Sınır ve Kontrol Sınıflarının Çıkarılması

• Use-case’lerin Gerçekleştirilmesi

Bölüm Kapsamında İncelenecek Konular

YZM 210 – Yazılım Gereksinimleri Analizi

4

Varlık Sınıflarının Çıkarılması

• Varlık sınıflarının çıkarılmasında, arttırımsal ve dönüşümlü olarak aşağıdaki üç adım uygulanır:

► İşlevsel modelleme (functional modeling)

Use-case’lerin tamamı için senaryolar hazırlanıp, sunulur. (Senaryo use-case’in bir örneğidir.)

► Sınıf modelleme (class modeling)

Varlık sınıfları ve bu varlık sınıflarının nitelikleri (attributes) belirlenir.

Varlık sınıfları arasındaki etkileşimler ve karşılıklı ilişkiler belirlenir.

Bu bilgiler sınıf diyagramları (class diagram) içinde sunulur.

► Dinamik modelleme (dynamic modeling)

Her bir varlık sınıfı tarafından icra edilen işlemler belirlenir.

Bu bilgiler de durum diyagramı (statechart) ile sunulur.

YZM 210 – Yazılım Gereksinimleri Analizi

5

• Bir kütüphane için bir bilgi sistemi geliştirilecektir. Geliştirilecek bu bilgi sistemi kitaplar, alıcılar ve kütüphane görevlileri arasındaki iş sürecini düzenleyecektir. Kütüphane içerisinde alıcıların ödünç alıp, daha sonra geri getirdiği birçok kitap yer almaktadır. Her kitap bir barkod numarasına ve her bir alıcı da üzerinde barkod numarası bulunan bir karta sahiptir. Alıcı bir kitabı ödünç alırken, kütüphaneci alıcının kartını ve kitabın barkod numarasını tarar ve bilgisayar terminalinde “O” tuşuna basar. Aynı şekilde, bir kitap geri getirildiğinde, kitabın barkodu taranır ve kütüphaneci bilgisayar terminalinde “G” tuşuna basar. Kütüphaneci (+) tuşuna basarak detayları ile birlikte kütüphaneye yeni kitaplar ekleyebilir veya (-) tuşuna basarak kitaplar çıkarabilir. Alıcılar bir terminal üzerinde kütüphane içindeki bütün kitapları belirli bir yazar adına (author’s name) göre {alıcı terminalde A tuşuna basar}, belirli bir başlığa (title) göre {alıcı terminalde T tuşuna basar} veya belirli bir konu alanına (subject area) göre {alıcı terminalde S tuşuna basar} arayabilir. Sonuç olarak, alıcı ödünç verilmiş bir kitabı isterse, kütüphaneci kitap üzerinde “B” tuşuna basarak bekletme koyabilir. Kitap geri getirildiğinde bekletme yapılan kişi için, kitap beklemeye alınacaktır.

İşlevsel Modelleme:

Kütüphane Otomasyon Sistemi

YZM 210 – Yazılım Gereksinimleri Analizi

6

• Kütüphane otomasyon sistemi için, beş olası use-case vardır;

Kitap Ödünç Verme,

Kitap Geri Getirme,

Kitap Ekleme-Çıkarma,

Kitap Bekletme,

Katalog Sorgulama.

İşlevsel Modelleme:

Kütüphane Otomasyon Sistemi (Devam..)

YZM 210 – Yazılım Gereksinimleri Analizi

7

• Kitap ödünç verme use-case’i için olası birinci senaryo;

Kitap Ödünç Verme Use-Case’i

1. Kütüphane görevlisi, terminalde “O” tuşuna basar ve kitabın ve alıcının kütüphane kartındaki barkod numaralarını tarar.

2. Sistem, kitabın başka biri tarafından bekletilmediğini belirler.

3. Sistem, ilgili kitap bilgisini günceller.

Görevli kitabı damgalar ve kartıyla birlikte alıcıya teslim eder.

YZM 210 – Yazılım Gereksinimleri Analizi

8

• Kitap ödünç verme use-case’i için olası ikinci senaryo;

Kitap Ödünç Verme Use-Case’i (devam…)

1. Kütüphane görevlisi, terminalde “O” tuşuna basar ve kitabın ve alıcının kütüphane kartındaki barkod numaralarını tarar.

2. Sistem, kitabın başkası tarafından bekletildiğini tespit eder.

Görevli kitabın alınmasına izin vermez.

YZM 210 – Yazılım Gereksinimleri Analizi

9

• Kitap ödünç verme use-case’i için olası üçüncü senaryo;

Kitap Ödünç Verme Use-Case’i (devam…)

1. Kütüphane görevlisi, terminalde “O” tuşuna basar ve kitabın ve alıcının kütüphane kartındaki barkod numaralarını tarar.

2. Sistem, bu kitabın alıcı için bekletildiğini belirler.

3. Sistem bekleme durumunu kaldırarak kitap bilgisini günceller.

Görevli kitabı damgalar ve kartıyla birlikte alıcıya teslim eder.

YZM 210 – Yazılım Gereksinimleri Analizi

10

• Kitap geri getirme use-case’i için olası birinci senaryo;

Kitap Geri Getirme Use-Case’i

Kitap görevliye verilir. Kitap üzerinde bekletilme yoktur.

1. Görevli terminalde “G” tuşuna basar ve kitabın barkodunu tarar.

2. Sistem, gerekli kitap bilgisini günceller.

Görevli, kitabı rafa kaldırmak üzere bir kenara koyar.

YZM 210 – Yazılım Gereksinimleri Analizi

11

• Kitap geri getirme use-case’i için olası ikinci senaryo;

Kitap Geri Getirme Use-Case’i (devam…)

Kitap görevliye verilir. Kitap üzerinde başkası için bir bekletme vardır.

1. Görevli terminalde “G” tuşuna basar ve kitabın barkodunu tarar.

2. Sistem, gerekli kitap bilgisini günceller.

Görevli, kitabı bekletilmek üzere ayrı bir rafa koyar.

YZM 210 – Yazılım Gereksinimleri Analizi

12

• Kitap ekleme-çıkarma use-case’i için olası birinci senaryo;

Kitap Ekleme-Çıkarma Use-Case’i

1. Görevli terminalde “+” tuşuna basar ve yeni kitabın barkodunu tarar.

2. Sistem kitabı veritabanına ekler.

YZM 210 – Yazılım Gereksinimleri Analizi

13

• Kitap ekleme-çıkarma use-case’i için olası ikinci senaryo;

Kitap Ekleme-Çıkarma Use-Case’i (devam…)

1. Görevli terminalde “-” tuşuna basar ve kitabın barkodunu tarar.

2. Sistem kitabı veritabanından siler.

YZM 210 – Yazılım Gereksinimleri Analizi

14

• Kitap bekletme use-case’i için olası birinci senaryo;

Kitap Bekletme Use-Case’i

Alıcı, kütüphane kartı ile birlikte üzerinde kitabın barkod numarası yazan formu görevliye uzatır.

1. Kütüphane görevlisi, terminalde “H” tuşuna basar ve formun ve alıcının kütüphane kartındaki barkod numaralarını tarar. Kitabın üzerinde zaten diğer bir alıcı için bekletme vardır.

2. Sistem, bu durumu bir mesaj olarak görüntüler.

Kütüphane görevlisi, alıcıyı bu konu hakkında bilgilendirir ve alıcıya kartını geri iade eder.

YZM 210 – Yazılım Gereksinimleri Analizi

15

• Kitap bekletme use-case’i için olası ikinci senaryo;

Kitap Bekletme Use-Case’i (devam…)

Alıcı, kütüphane kartı ile birlikte üzerinde kitabın barkod numarası yazan formu görevliye uzatır.

1. Kütüphane görevlisi, terminalde “H” tuşuna basar ve formun ve alıcının kütüphane kartındaki barkod numaralarını tarar. Kitabın üzerinde diğer bir alıcı için herhangi bir bekletme yoktur.

2. Sistem, kitap ile ilgili bilgileri günceller ve bu alıcı için kitap üzerinde bir bekletme koyar.

Görevli, alıcıya kartını geri iade eder ve alıcının teslim etmiş olduğu formu geri dönüşüm kutusuna atar.

YZM 210 – Yazılım Gereksinimleri Analizi

16

• Kitap sorgulama use-case’i için olası birinci senaryo;

Katalog Sorgulama Use-Case’i

1. Kütüphaneci veya alıcı terminalde “A” tuşuna basar ve ardından yazarın adını girer.

2. Sistem istenen bilgileri görüntüler.

YZM 210 – Yazılım Gereksinimleri Analizi

17

• Kitap sorgulama use-case’i için olası ikinci senaryo;

Katalog Sorgulama Use-Case’i (devam…)

1. Kütüphaneci veya alıcı terminalde “T” tuşuna basar ve ardından kitap adını girer.

2. Sistem istenen bilgileri görüntüler.

YZM 210 – Yazılım Gereksinimleri Analizi

18

• Kitap sorgulama use-case’i için olası üçüncü senaryo;

Katalog Sorgulama Use-Case’i (devam…)

1. Kütüphaneci veya alıcı terminalde “S” tuşuna basar ve ardından konu başlığını girer.

2. Sistem istenen bilgileri görüntüler.

YZM 210 – Yazılım Gereksinimleri Analizi

19

• Uygulama sahası hakkında tecrübe sahibi olmayan geliştiriciler, aday varlık sınıfları ortaya çıkarırken isim çıkarma (noun extraction) yönteminden yararlanırlar.

• İsim çıkartma yöntemi iki adımda gerçekleştirilen bir süreçtir:

1. Problemi kısaca tanımlama,

2. İsimleri belirleme.

Sınıf Modelleme:

Kütüphane Otomasyon Sistemi

YZM 210 – Yazılım Gereksinimleri Analizi

20

• Yazılımın tek paragraflık tanımı:

Bir Kütüphane Otomasyon Sistemi geliştirilecektir.

Kütüphanedeki her kitap ve de her alıcı bir barkod

numarasıyla tanımlanır. Bir kitap, eğer başkası için

bekletilmiyorsa ödünç alınabilir. Başka biri tarafından

alınmış bir kitaba en fazla bir kişi bekletme yapabilir. Bir

kitap geri getirildiğinde görevli tarafından alınır. Alıcıların ve

görevlilerin kitap sorgulamaya yetkileri vardır.

Sınıf Modelleme:

Kütüphane Otomasyon Sistemi (devam…)

YZM 210 – Yazılım Gereksinimleri Analizi

21

• İsimleri belirleme:

Bir Kütüphane Otomasyon Sistemi geliştirilecektir.

Kütüphanedeki her kitap ve de her alıcı bir barkod

numarasıyla tanımlanır. Bir kitap, eğer başkası için

bekletilmiyorsa ödünç alınabilir. Başka biri tarafından

alınmış bir kitaba en fazla bir kişi bekletme yapabilir. Bir

kitap geri getirildiğinde görevli tarafından alınır. Alıcıların ve

görevlilerin kitap sorgulamaya yetkileri vardır.

Sınıf Modelleme:

Kütüphane Otomasyon Sistemi (devam…)

YZM 210 – Yazılım Gereksinimleri Analizi

22

• Alıcı ve Görevli isimleri aktörlerdir.

• Barkod numarası kitap ve alıcı için bir özelliktir (attribute).

Dolayısıyla bu isimler sınıf olmaya uygun değildirler.

• Kütüphane, bekletme, sistem kelimeleri de soyut isimlerdir.

Dolayısıyla bu isimler de sınıf olamaya uygun değildirler.

• Böylece geriye Kitap ismi kalmaktadır.

Aday sınıfımız Kitap Sınıfı dır.

Sınıf Modelleme:

Kütüphane Otomasyon Sistemi (devam…)

YZM 210 – Yazılım Gereksinimleri Analizi

23

Başlangıç Sınıf Diyagramı

YZM 210 – Yazılım Gereksinimleri Analizi

24

• Sınır Sınıfları:

Görevli Ekranı Sınıfı,

Sorgulama Ekranı Sınıfı

• Kontrol Sınıfları:

Kütüphane Kontrol Sınıfı

Sınıf Modelleme:

Kütüphane Otomasyon Sistemi (devam…)

YZM 210 – Yazılım Gereksinimleri Analizi

25

Dinamik Modelleme:

Kütüphane Otomasyon Sistemi (devam…)

YZM 210 – Yazılım Gereksinimleri Analizi

26

Use-Case’leri Gerçekleştirme:

Kütüphane Otomasyon Sistemi

• Use-case’leri yeniden düzenleme ve genişletme süreci use-case’i gerçekleştirme (use-case realization) olarak adlandırılır.

• Bir use-case’e ait belirli bir senaryonun gerçekleştirilmesi için, bir etkileşim diyagramı (interaction diagram) kullanılır.

‒ Etkileşim diyagramı olarak ta ya sıralama (sequence) diyagramı ya da işbirliği (collaboration) diyagram kullanılır.

YZM 210 – Yazılım Gereksinimleri Analizi

27

Kitap Ödünç Verme Use-Case’i – Senaryo 1

• Kitap ödünç verme use-case’ine ait birinci senaryoyu gerçekleştirdiğimizde oluşan işbirliği diyagramı şekilde görüldüğü gibidir.

YZM 210 – Yazılım Gereksinimleri Analizi

28

Kitap Ödünç Verme Use-Case’i – Senaryo 1 (devam…)

• Kitap ödünç verme use-case’ine ait birinci senaryoyu gerçekleştirdiğimizde oluşan sıralama diyagramı şekilde görüldüğü gibidir.

YZM 210 – Yazılım Gereksinimleri Analizi

29

Kitap Ödünç Verme Use-Case’i – Senaryo 2

• Kitap ödünç verme use-case’ine ait ikinci senaryoyu gerçekleştirdiğimizde oluşan işbirliği diyagramı şekilde görüldüğü gibidir.

YZM 210 – Yazılım Gereksinimleri Analizi

30

Kitap Ödünç Verme Use-Case’i – Senaryo 2 (devam…)

• Kitap ödünç verme use-case’ine ait ikinci senaryoyu gerçekleştirdiğimizde oluşan sıralama diyagramı şekilde görüldüğü gibidir.

YZM 210 – Yazılım Gereksinimleri Analizi

31

Kitap Geri Getirme Use-Case’i – Senaryo 1

• Kitap geri getirme use-case’ine ait birinci senaryoyu gerçekleştirdiğimizde oluşan işbirliği diyagramı şekilde görüldüğü gibidir.

YZM 210 – Yazılım Gereksinimleri Analizi

32

Kitap Geri Getirme Use-Case’i – Senaryo 1

• Kitap geri getirme use-case’ine ait birinci senaryoyu gerçekleştirdiğimizde oluşan sıralama diyagramı şekilde görüldüğü gibidir.

YZM 210 – Yazılım Gereksinimleri Analizi

33

Kitap Geri Getirme Use-Case’i – Senaryo 2

• Kitap geri getirme use-case’ine ait ikinci senaryoyu gerçekleştirdiğimizde oluşan işbirliği diyagramı şekilde görüldüğü gibidir.

YZM 210 – Yazılım Gereksinimleri Analizi

34

Kitap Geri Getirme Use-Case’i – Senaryo 2

• Kitap geri getirme use-case’ine ait ikinci senaryoyu gerçekleştirdiğimizde oluşan sıralama diyagramı şekilde görüldüğü gibidir.

YZM 210 – Yazılım Gereksinimleri Analizi

35

Kitap Ekleme-Çıkarma Use-Case’i – Senaryo

• Kitap ekleme-çıkarma use-case’ine ait senaryoyu gerçekleştirdiğimizde oluşan işbirliği diyagramı şekilde görüldüğü gibidir.

YZM 210 – Yazılım Gereksinimleri Analizi

36

Kitap Ekleme-Çıkarma Use-Case’i – Senaryo

• Kitap ekleme-çıkarma use-case’ine ait senaryoyu gerçekleştirdiğimizde oluşan sıralama diyagramı şekilde görüldüğü gibidir.

YZM 210 – Yazılım Gereksinimleri Analizi

37

Kitap Bekletme Use-Case’i – Senaryo

• Kitap bekletme use-case’ine ait senaryoyu gerçekleştirdiğimizde oluşan işbirliği diyagramı şekilde görüldüğü gibidir.

YZM 210 – Yazılım Gereksinimleri Analizi

38

Kitap Bekletme Use-Case’i – Senaryo

• Kitap bekletme use-case’ine ait senaryoyu gerçekleştirdiğimizde oluşan sıralama diyagramı şekilde görüldüğü gibidir.

YZM 210 – Yazılım Gereksinimleri Analizi

39

Kitap Bekletme Use-Case’i – Senaryo

• Kitap bekletme use-case’ine ait senaryoyu gerçekleştirdiğimizde oluşan işbirliği diyagramı şekilde görüldüğü gibidir.

YZM 210 – Yazılım Gereksinimleri Analizi

40

Kitap Bekletme Use-Case’i – Senaryo

• Kitap bekletme use-case’ine ait senaryoyu gerçekleştirdiğimizde oluşan sıralama diyagramı şekilde görüldüğü gibidir.