Sınıf Diyagramları
(Class Diagrams)
    Seyfullah Demir
 Hacettepe Üniversitesi
  seyfullahdemir@gmail.com



                             1
Sınıf Diyagramları
Tanım
• Sınıf diyagramı: Bir sistemin yapısını; sistemdeki sınıfları,
  sınıfların niteliklerini ve sınıflar arasındaki ilişkileri
  göstererek ifade eden diyagramdır.
• Sistemi oluşturan sınıflar ve bunlar arasındaki ilişkiler
• Sistemin statik yapısını ifade eder.
• Yapısal (structural) bir diyagramdır.
• UML’deki en temel diyagram tiplerinden biridir.
• Sınıf diyagramları, nesneye-yönelik modellemenin
  yapıtaşıdır.

                                                             2
Sınıf Diyagramları
• Sınıf diyagramı, sistem için tanımlanan tüm
  sınıfları içermeyebilir.
• Bir sistemi modellemek için birden fazla sınıf
  diyagramı kullanılabilir.
• Bir sistemle ilgili çizilen bir sınıf diyagramı
  sistemin belirli bir görünümünü ifade ederken,
  çizilen bütün sınıf diyagramları birlikte bütün
  sistemi gösterir.

                                                3
Sınıf Diyagramları
• Sınıf diyagramı temelde statik bakış açısı sunar.
   – Yol Haritası gibi
      • Nesneler şehirleri, ilişkiler şehirler arasındaki yolları gösterir
      • Hedefe ulaşmak için hangi yolun takip edilmesi gerektiğini
        söylemez
• Sınıf diyagramında hangi nesnelerin işbirliği
  yaptığı belli,ancak nesnelerin nasıl işbirliği
  yapacakları belli değildir.
   – Nasıl sorusunun cevabı “sequence” veya
     “collaboration”diyagramlarında tanımlanır
                                                                             4
Sınıf Diyagramları
• Sınıf diyagramları, nesneye-yönelik
  programlama dilleriyle doğrudan
  eşleştirilebilen tek diyagram türüdür. Bu
  yüzden de yazılım geliştiriciler tarafından sıkça
  kullanılmaktadır.
• Sınıf diyagramları geliştirme boyunca kullanılır
• Sınıf diyagramı UML 2.0’da pek değişmemiştir.


                                                      5
Sınıf ve Nesne
• Sınıf nedir?
   – Ortak durum ve davranışlara sahip nesneler aynı sınıf
     altında gruplanır.
   – UML diliyle sınıf bir çeşit sınıflandırıcı(classifier)’dır
      • Örneğin, Volkswagen, Toyota ve Ford ortak özellikleri olan ve
        ortak davranışlar gösteren birer arabadır. Öyleyse bunların
        hepsini “Araba” sınıfıyla ifade edebilirim.
• Nesne nedir?
   – Belirli bir sınıfa ait olgudur(instance).
      • Örneğin Araba sınıfının bir nesnesi Toyota olabilir.

                                                                    6
Sınıf Diyagramları
• Sınıf Gösterimi




                                 7
Sınıf Diyagramları
Nitelikler (Attributes)
• İki çeşit gösterim şekli vardır
   – Satır içi (inlined)
   – Sınıflar arası ilişkiler vasıtasıyla
• Çokluk (multiplicity), biriciklik (uniqueness) ve
  sıralama (ordering) gibi kavramlar da
  gösterilebiliyor.


                                                      8
Sınıf Diyagramları
Satır içinde gösterilen nitelikler
• Satır içinde gösterilen nitelikler için aşağıdaki
  standart gösterim kullanılır.

   – visibility / name : type multiplicity = default
     {property strings and constraints} visibility ::=
     {+|-|#|~} multiplicity ::= [lower..upper]



                                                         9
Sınıf Diyagramları
•   visibility: Niteliğin görünürlüğünü belirtir.
     –   + : public
     –   - : private
     –   # : protected
     –   ~ : package
•   / : Niteliğin türetilmiş(derived) bir nitelik olduğunu belirtir.
•   name: Niteliğin adı
•   type: Niteliğin türü.
•   multiplicity: Niteliğin kaç tane olgusunun (instance) olabileceğini belirtir.
     – Kullanılmadığında “1” tane olgunun olacağı anlaşılır.
     – Bir tamsayı olabilir.
     – Niteliğin belli bir aralıkta olgusu olabiliyorsa, bu aralığı belirleyen iki tamsayı köşeli parantez
       içinde ve .. İle ayrılarak gösterilir.
     – Üst limiti yoksa sınırı belirtmek için * simgesi kullanılabilir.
     – Sıfır ya da daha çok olgusu olabileceği ifade edilmek istendiğinde ise * simgesi tek başına
       kullanılır.




                                                                                                             10
Sınıf Diyagramları
• default: Niteliğin varsayılan değeri varsa
  belirtilir.
• property strings: Özellik ve etiketlerden oluşan
  bir kısımdır. Biriciklik(uniqueness) ve
  sıralama(ordering) gibi kavramları ifade etmek
  için kullanılır.
• constraints: Nitelikle ilgili bir ya da daha fazla
  kısıtlama belirtilebilir. Doğal dille ifade
  edilebileceği gibi OCL ile de ifade edilebilir.

                                                   11
Sınıf Diyagramları
• Nitelikler - Örnek




                                 12
Sınıf Diyagramları
Sınıflar arasındaki ilişkiler vasıtasıyla gösterilen
  nitelikler
• Daha ayrıntılı bir sınıf diyagramı
• Karmaşık türdeki nitelikler için daha açıklayıcı
  bilgi sağlar.




                                                       13
Sınıf Diyagramları
Sınıflar arasındaki ilişkiler vasıtasıyla gösterilen
  nitelikler




                                                       14
Sınıf Diyagramları
İşlemler (Operations)
   – Bir sınıfın gerçekleştirdiği işlemler
      • Ekrana bir dörtgen çizme
      • Listeden seçilen elemanlarının sayısını hesaplama
   – İşlem imzası
• Operasyonlar şu gösterimle ifade edilir.
   – visibility name ( parameters ) : return-type {properties}
   – parameters:
      • direction parameter_name : type [ multiplicity ] =
        default_value { properties }


                                                             15
Sınıf Diyagramları
İşlem Gösterimi
• visibility: İşlemin görünürlüğünü belirtir.
• name: İşlemin adını belirtir. Yapılan işlemin
   özünü açıklayan bir eylem kullanılır.
• return-type: İşlemin döndüreceği değerin
   türünü belirtir.
• properties: İşlemle ilişkili kısıtlamaları ve
   özellikleri (constraints and properties) belirtir.

                                                        16
Sınıf Diyagramları
Parametre Gösterimi
• direction: Parametre işlemde “nasıl kullanılır” sorusunun
  cevabını belirtir. “in”, “inout“, “out” ya da “return” olabilir.
• parameter-name: Parametrenin adı.
• type: Parametrenin türü.
• multiplicity: İşleme geçilen parametrenin olgu sayısıyla ilgili
  bilgi verir.
• default value: parametrenin varsayılan değeri.
• properties: parametre ile ilişkili kısıtlamaları ve özellikleri
  (constraints and properties) belirtir.



                                                                 17
Sınıf Diyagramları
• İşlemler - Örnek




                                 18
Sınıf Diyagramları
• İşlemler ve Methodlar

  – Operasyon, yalnızca bir davranışı ortaya çıkarmak
    için (davranış tetikleme) kullanılacak bilgileri
    içerirken; metot, bu davranışın gerçekte nasıl
    implement edildiğini gösterir.




                                                        19
Sınıf Diyagramları
Soyut Sınıflar(Abstract Classes)
• Soyut sınıflar, gerçekleştirimi yapılmamış bir
  operasyon imzası (signature) sağlayan
  sınıflardır.




                                                   20
Sınıf Diyagramları
İLİŞKİLER (RELATIONSHIPS)
Dependency
  – Sınıflar arasındaki en zayıf ilişkidir.
  – İki sınıf arasında dependency ilişkisinin olması demek, bir sınıf diğer
    sınıfı kullanır ya da onun bilgisine sahiptir demektir.
  – “uses” ilişkisi vardır.
  – Sürekli bir ilişki yok. (transient relationship)
  – Bağımlı sınıfın nesnesi diğer sınıfın nesnesini gerektiğinde kullanır.




      • Window “uses” WindowClosingEvent                                      21
Sınıf Diyagramları
Association
  –   Dependency ilişkisinden daha güçlü
  –   “has a” ilişkisi vardır.
  –   Kaynak sınıf, hedef sınıfın olgusunu nitelik olarak içerir.
  –   Hedef sınıf diğer sınıflar tarafından da kullanılabilir
      (shared).




       • Window “has a” Cursor
                                                               22
Sınıf Diyagramları
Association(Devam)
• Association ilişkisi isimlendirilebilir, hangi sınıfın hangi sınıfı
  kullandığı (navigability) açıkça gösterilebilir.
• Multiplicity bilgisi açıkça gösterilebilir.




                                                                        23
Sınıf Diyagramları
Aggregation
  – Association ilişkisinin daha güçlü versiyonu
  – Aidiyet gerektirir.
  – İki sınıfın yaşam evreleri arasında bir ilişki gerektirebilir. Birbirlerinden
    bağımsız olarak yok edilemeyebilirler.
  – “Owns a” ilişkisi vardır
  – Navigability, multiplicity gösterilebilir.




      • Window “owns a” Rectangle



                                                                                24
Sınıf Diyagramları
Composition
  –   Sınıflar arasında çok güçlü bir ilişki kurar
  –   Parça-bütün ilişkisi kurar
  –   Bütün rolündeki nesne yok edildiğinde parça da yok olur.
  –   “is part of” ilişkisi vardır.
  –   navigability, multiplicity gösterilebilir.




       • TitleBar “is a part of” Window                          25
Sınıf Diyagramları
Generalization
  – Sınıf genelleştirmesi yapmak amaçlı kullanılır.
  – “is a” ilişkisi vardır.
  – İlişki isimlendirilmez, multiplicity tanımlanmaz.
  – UML çoklu kalıtımı destekler.




     • Cat “is a” Animal
                                                        26
Sınıf Diyagramları
Association Sınıfları (Association Classes)
• Association sınıfı; normal bir sınıf gibi ismi ve
  nitelikleri olan bir association’dır.




                                                      27
Sınıf Diyagramları
Arayüz (Interface)
•   Gerçekleştirimi olmayan işlemler içeren sınıf.
•   Sınıfın dışarıyla nasıl iletişim kuracağını gösterir.
•   Saf soyut sınıflardır.
•   Normal sınıf gösterimiyle gösterilebilir. <<interface>>
    sterotype’ı kullanılır.




                                                          28
Sınıf Diyagramları
Realization
• Bir çeşit genelleştirme (generalization) olarak
  düşünülebilir.
• Arayüz sınıfını gerçekleştiren (realize eden) sınıf
  arayüzdeki bütün işlemleri gerçekleştirmek
  (implement) zorundadır.




                                                        29
Sınıf Diyagramları
Şablonlar(Templates)
• Üreysel(generic) bir nitelik
• Herhangi bir türden elemanları saklayabilecek
  bir liste; ancak listenin bütün elemanları aynı
  türden olacak.




                                                30
Kütüphane Destek Sistemi
Gereksinimleri hatırlayalım…
• Kütüphane islemlerini desteklemek amacıyla web
  tabanlı bir yazılım sistemi olusturulacaktır.
• Üye olmak isteyen kisi sisteme kayıt olacak ve kayıtlı
  üyeler kayıtlı kitap ve dergileri ödünç alacaktır.
• Kisiler sisteme üye olmadan da kitap ve dergi
  katalogunu görebileceklerdir.
• Kütüphane sistem yöneticisi, yeni kitap ve dergilerin
  satın almasını yapacaktır. Popüler yayınlardan birden
  çok kopya satın alınacaktır. Eski kitap ve dergiler, zaman
  asımına ugradıklarında veya çok yıprandıklarında yok
  edilecektir.

                                                           31
Kütüphane Destek Sistemi
• Sistemde, üye bilgilerini düzenleyecek, üye kayıt islemini
  onaylayacak ve gerektiginde çevrimiçi yardım hizmeti
  verebilecek bir kütüphane görevlisi kullanıcısı bulunacaktır.
• Kütüphane görevlisi kullanıcısı kitap veya dergi ödünç
  islemleri ile ilgili olarak sisteme bilgi girecektir.
• Üye, kütüphanede kayıtlı olan ama o anda bulunmayan bir
  kitap veya dergiyi rezerve edebilecektir. Kitap veya dergi
  kütüphaneye geri döndürüldügünde, rezervasyonu yapan
  üye e-posta yoluyla haberdar edilecektir. Rezervasyon, üye,
  kitap veya dergiyi ödünç aldıgında veya üyenin özel istegi
  üzerine iptal edilebilecektir.



                                                              32
Kütüphane Destek Sistemi
• Sistem; kitap ve dergi baslıklarının, kitap ve dergi kopyalarının,
  üyelerin, ödünç islemlerinin ve rezervasyonların kaydedilmesine,
  güncellenmesine ve silinmesine olanak saglayacaktır.
• Uygulama, isletim sisteminden bagımsız çalısabilecek ve modern bir
  kullanıcı arayüzüne sahip olacaktır.
• Yazılım, merkezi bir veri tabanına baglanarak Web tabanlı olarak
  çalısabilecektir. Son kullanıcılar sisteme standart bir Web tarayıcısı
  ile baglanabilmeli ve kullanıcı makinenin üzerine herhangi baska bir
  program yüklenmesine gerek kalmamalıdır.
• Sistem özel bilgilerin aktarımı söz konusu oldugu durumda Web
  tarayıcı ile güvenli kanallar üzerinden iletisim saglayacaktır.
• Sistem yeni islevler eklemek suretiyle genisletilebilir olacaktır.




                                                                       33
Kütüphane Destek Sistemi



  Üst Düzey Tasarım
    Analiz Sınıfları
  (Domain Classes)

                           34
Kütüphane Destek Sistemi




                           35
Kütüphane Destek Sistemi



     Detay Tasarım
      İlk Aşamalar
   (Detailed Design)

                           36
KDS - Sınıf Diyagramları
Kullanici Yonetimi




                                   37
KDS - Sınıf Diyagramları
Katalog Yonetimi




                                  38
KDS - Sınıf Diyagramları
Ödünç Alma ve Rezervasyon İşlemleri Yönetimi




                                               39
KDS - Sınıf Diyagramları
Yetki Yönetimi




                                   40
Referanslar
• Oreilly Uml 2.0 In A Nutshell Jun 2005
• http://en.wikipedia.org/wiki/Class_diagram
• http://www.tutorialspoint.com/uml/uml_basi
  c_notations.htm
• http://www.visual-
  paradigm.com/VPGallery/diagrams/Class.html



                                           41
42

Class Diagram

  • 1.
    Sınıf Diyagramları (Class Diagrams) Seyfullah Demir Hacettepe Üniversitesi seyfullahdemir@gmail.com 1
  • 2.
    Sınıf Diyagramları Tanım • Sınıfdiyagramı: Bir sistemin yapısını; sistemdeki sınıfları, sınıfların niteliklerini ve sınıflar arasındaki ilişkileri göstererek ifade eden diyagramdır. • Sistemi oluşturan sınıflar ve bunlar arasındaki ilişkiler • Sistemin statik yapısını ifade eder. • Yapısal (structural) bir diyagramdır. • UML’deki en temel diyagram tiplerinden biridir. • Sınıf diyagramları, nesneye-yönelik modellemenin yapıtaşıdır. 2
  • 3.
    Sınıf Diyagramları • Sınıfdiyagramı, sistem için tanımlanan tüm sınıfları içermeyebilir. • Bir sistemi modellemek için birden fazla sınıf diyagramı kullanılabilir. • Bir sistemle ilgili çizilen bir sınıf diyagramı sistemin belirli bir görünümünü ifade ederken, çizilen bütün sınıf diyagramları birlikte bütün sistemi gösterir. 3
  • 4.
    Sınıf Diyagramları • Sınıfdiyagramı temelde statik bakış açısı sunar. – Yol Haritası gibi • Nesneler şehirleri, ilişkiler şehirler arasındaki yolları gösterir • Hedefe ulaşmak için hangi yolun takip edilmesi gerektiğini söylemez • Sınıf diyagramında hangi nesnelerin işbirliği yaptığı belli,ancak nesnelerin nasıl işbirliği yapacakları belli değildir. – Nasıl sorusunun cevabı “sequence” veya “collaboration”diyagramlarında tanımlanır 4
  • 5.
    Sınıf Diyagramları • Sınıfdiyagramları, nesneye-yönelik programlama dilleriyle doğrudan eşleştirilebilen tek diyagram türüdür. Bu yüzden de yazılım geliştiriciler tarafından sıkça kullanılmaktadır. • Sınıf diyagramları geliştirme boyunca kullanılır • Sınıf diyagramı UML 2.0’da pek değişmemiştir. 5
  • 6.
    Sınıf ve Nesne •Sınıf nedir? – Ortak durum ve davranışlara sahip nesneler aynı sınıf altında gruplanır. – UML diliyle sınıf bir çeşit sınıflandırıcı(classifier)’dır • Örneğin, Volkswagen, Toyota ve Ford ortak özellikleri olan ve ortak davranışlar gösteren birer arabadır. Öyleyse bunların hepsini “Araba” sınıfıyla ifade edebilirim. • Nesne nedir? – Belirli bir sınıfa ait olgudur(instance). • Örneğin Araba sınıfının bir nesnesi Toyota olabilir. 6
  • 7.
  • 8.
    Sınıf Diyagramları Nitelikler (Attributes) •İki çeşit gösterim şekli vardır – Satır içi (inlined) – Sınıflar arası ilişkiler vasıtasıyla • Çokluk (multiplicity), biriciklik (uniqueness) ve sıralama (ordering) gibi kavramlar da gösterilebiliyor. 8
  • 9.
    Sınıf Diyagramları Satır içindegösterilen nitelikler • Satır içinde gösterilen nitelikler için aşağıdaki standart gösterim kullanılır. – visibility / name : type multiplicity = default {property strings and constraints} visibility ::= {+|-|#|~} multiplicity ::= [lower..upper] 9
  • 10.
    Sınıf Diyagramları • visibility: Niteliğin görünürlüğünü belirtir. – + : public – - : private – # : protected – ~ : package • / : Niteliğin türetilmiş(derived) bir nitelik olduğunu belirtir. • name: Niteliğin adı • type: Niteliğin türü. • multiplicity: Niteliğin kaç tane olgusunun (instance) olabileceğini belirtir. – Kullanılmadığında “1” tane olgunun olacağı anlaşılır. – Bir tamsayı olabilir. – Niteliğin belli bir aralıkta olgusu olabiliyorsa, bu aralığı belirleyen iki tamsayı köşeli parantez içinde ve .. İle ayrılarak gösterilir. – Üst limiti yoksa sınırı belirtmek için * simgesi kullanılabilir. – Sıfır ya da daha çok olgusu olabileceği ifade edilmek istendiğinde ise * simgesi tek başına kullanılır. 10
  • 11.
    Sınıf Diyagramları • default:Niteliğin varsayılan değeri varsa belirtilir. • property strings: Özellik ve etiketlerden oluşan bir kısımdır. Biriciklik(uniqueness) ve sıralama(ordering) gibi kavramları ifade etmek için kullanılır. • constraints: Nitelikle ilgili bir ya da daha fazla kısıtlama belirtilebilir. Doğal dille ifade edilebileceği gibi OCL ile de ifade edilebilir. 11
  • 12.
  • 13.
    Sınıf Diyagramları Sınıflar arasındakiilişkiler vasıtasıyla gösterilen nitelikler • Daha ayrıntılı bir sınıf diyagramı • Karmaşık türdeki nitelikler için daha açıklayıcı bilgi sağlar. 13
  • 14.
    Sınıf Diyagramları Sınıflar arasındakiilişkiler vasıtasıyla gösterilen nitelikler 14
  • 15.
    Sınıf Diyagramları İşlemler (Operations) – Bir sınıfın gerçekleştirdiği işlemler • Ekrana bir dörtgen çizme • Listeden seçilen elemanlarının sayısını hesaplama – İşlem imzası • Operasyonlar şu gösterimle ifade edilir. – visibility name ( parameters ) : return-type {properties} – parameters: • direction parameter_name : type [ multiplicity ] = default_value { properties } 15
  • 16.
    Sınıf Diyagramları İşlem Gösterimi •visibility: İşlemin görünürlüğünü belirtir. • name: İşlemin adını belirtir. Yapılan işlemin özünü açıklayan bir eylem kullanılır. • return-type: İşlemin döndüreceği değerin türünü belirtir. • properties: İşlemle ilişkili kısıtlamaları ve özellikleri (constraints and properties) belirtir. 16
  • 17.
    Sınıf Diyagramları Parametre Gösterimi •direction: Parametre işlemde “nasıl kullanılır” sorusunun cevabını belirtir. “in”, “inout“, “out” ya da “return” olabilir. • parameter-name: Parametrenin adı. • type: Parametrenin türü. • multiplicity: İşleme geçilen parametrenin olgu sayısıyla ilgili bilgi verir. • default value: parametrenin varsayılan değeri. • properties: parametre ile ilişkili kısıtlamaları ve özellikleri (constraints and properties) belirtir. 17
  • 18.
  • 19.
    Sınıf Diyagramları • İşlemlerve Methodlar – Operasyon, yalnızca bir davranışı ortaya çıkarmak için (davranış tetikleme) kullanılacak bilgileri içerirken; metot, bu davranışın gerçekte nasıl implement edildiğini gösterir. 19
  • 20.
    Sınıf Diyagramları Soyut Sınıflar(AbstractClasses) • Soyut sınıflar, gerçekleştirimi yapılmamış bir operasyon imzası (signature) sağlayan sınıflardır. 20
  • 21.
    Sınıf Diyagramları İLİŞKİLER (RELATIONSHIPS) Dependency – Sınıflar arasındaki en zayıf ilişkidir. – İki sınıf arasında dependency ilişkisinin olması demek, bir sınıf diğer sınıfı kullanır ya da onun bilgisine sahiptir demektir. – “uses” ilişkisi vardır. – Sürekli bir ilişki yok. (transient relationship) – Bağımlı sınıfın nesnesi diğer sınıfın nesnesini gerektiğinde kullanır. • Window “uses” WindowClosingEvent 21
  • 22.
    Sınıf Diyagramları Association – Dependency ilişkisinden daha güçlü – “has a” ilişkisi vardır. – Kaynak sınıf, hedef sınıfın olgusunu nitelik olarak içerir. – Hedef sınıf diğer sınıflar tarafından da kullanılabilir (shared). • Window “has a” Cursor 22
  • 23.
    Sınıf Diyagramları Association(Devam) • Associationilişkisi isimlendirilebilir, hangi sınıfın hangi sınıfı kullandığı (navigability) açıkça gösterilebilir. • Multiplicity bilgisi açıkça gösterilebilir. 23
  • 24.
    Sınıf Diyagramları Aggregation – Association ilişkisinin daha güçlü versiyonu – Aidiyet gerektirir. – İki sınıfın yaşam evreleri arasında bir ilişki gerektirebilir. Birbirlerinden bağımsız olarak yok edilemeyebilirler. – “Owns a” ilişkisi vardır – Navigability, multiplicity gösterilebilir. • Window “owns a” Rectangle 24
  • 25.
    Sınıf Diyagramları Composition – Sınıflar arasında çok güçlü bir ilişki kurar – Parça-bütün ilişkisi kurar – Bütün rolündeki nesne yok edildiğinde parça da yok olur. – “is part of” ilişkisi vardır. – navigability, multiplicity gösterilebilir. • TitleBar “is a part of” Window 25
  • 26.
    Sınıf Diyagramları Generalization – Sınıf genelleştirmesi yapmak amaçlı kullanılır. – “is a” ilişkisi vardır. – İlişki isimlendirilmez, multiplicity tanımlanmaz. – UML çoklu kalıtımı destekler. • Cat “is a” Animal 26
  • 27.
    Sınıf Diyagramları Association Sınıfları(Association Classes) • Association sınıfı; normal bir sınıf gibi ismi ve nitelikleri olan bir association’dır. 27
  • 28.
    Sınıf Diyagramları Arayüz (Interface) • Gerçekleştirimi olmayan işlemler içeren sınıf. • Sınıfın dışarıyla nasıl iletişim kuracağını gösterir. • Saf soyut sınıflardır. • Normal sınıf gösterimiyle gösterilebilir. <<interface>> sterotype’ı kullanılır. 28
  • 29.
    Sınıf Diyagramları Realization • Birçeşit genelleştirme (generalization) olarak düşünülebilir. • Arayüz sınıfını gerçekleştiren (realize eden) sınıf arayüzdeki bütün işlemleri gerçekleştirmek (implement) zorundadır. 29
  • 30.
    Sınıf Diyagramları Şablonlar(Templates) • Üreysel(generic)bir nitelik • Herhangi bir türden elemanları saklayabilecek bir liste; ancak listenin bütün elemanları aynı türden olacak. 30
  • 31.
    Kütüphane Destek Sistemi Gereksinimlerihatırlayalım… • Kütüphane islemlerini desteklemek amacıyla web tabanlı bir yazılım sistemi olusturulacaktır. • Üye olmak isteyen kisi sisteme kayıt olacak ve kayıtlı üyeler kayıtlı kitap ve dergileri ödünç alacaktır. • Kisiler sisteme üye olmadan da kitap ve dergi katalogunu görebileceklerdir. • Kütüphane sistem yöneticisi, yeni kitap ve dergilerin satın almasını yapacaktır. Popüler yayınlardan birden çok kopya satın alınacaktır. Eski kitap ve dergiler, zaman asımına ugradıklarında veya çok yıprandıklarında yok edilecektir. 31
  • 32.
    Kütüphane Destek Sistemi •Sistemde, üye bilgilerini düzenleyecek, üye kayıt islemini onaylayacak ve gerektiginde çevrimiçi yardım hizmeti verebilecek bir kütüphane görevlisi kullanıcısı bulunacaktır. • Kütüphane görevlisi kullanıcısı kitap veya dergi ödünç islemleri ile ilgili olarak sisteme bilgi girecektir. • Üye, kütüphanede kayıtlı olan ama o anda bulunmayan bir kitap veya dergiyi rezerve edebilecektir. Kitap veya dergi kütüphaneye geri döndürüldügünde, rezervasyonu yapan üye e-posta yoluyla haberdar edilecektir. Rezervasyon, üye, kitap veya dergiyi ödünç aldıgında veya üyenin özel istegi üzerine iptal edilebilecektir. 32
  • 33.
    Kütüphane Destek Sistemi •Sistem; kitap ve dergi baslıklarının, kitap ve dergi kopyalarının, üyelerin, ödünç islemlerinin ve rezervasyonların kaydedilmesine, güncellenmesine ve silinmesine olanak saglayacaktır. • Uygulama, isletim sisteminden bagımsız çalısabilecek ve modern bir kullanıcı arayüzüne sahip olacaktır. • Yazılım, merkezi bir veri tabanına baglanarak Web tabanlı olarak çalısabilecektir. Son kullanıcılar sisteme standart bir Web tarayıcısı ile baglanabilmeli ve kullanıcı makinenin üzerine herhangi baska bir program yüklenmesine gerek kalmamalıdır. • Sistem özel bilgilerin aktarımı söz konusu oldugu durumda Web tarayıcı ile güvenli kanallar üzerinden iletisim saglayacaktır. • Sistem yeni islevler eklemek suretiyle genisletilebilir olacaktır. 33
  • 34.
    Kütüphane Destek Sistemi Üst Düzey Tasarım Analiz Sınıfları (Domain Classes) 34
  • 35.
  • 36.
    Kütüphane Destek Sistemi Detay Tasarım İlk Aşamalar (Detailed Design) 36
  • 37.
    KDS - SınıfDiyagramları Kullanici Yonetimi 37
  • 38.
    KDS - SınıfDiyagramları Katalog Yonetimi 38
  • 39.
    KDS - SınıfDiyagramları Ödünç Alma ve Rezervasyon İşlemleri Yönetimi 39
  • 40.
    KDS - SınıfDiyagramları Yetki Yönetimi 40
  • 41.
    Referanslar • Oreilly Uml2.0 In A Nutshell Jun 2005 • http://en.wikipedia.org/wiki/Class_diagram • http://www.tutorialspoint.com/uml/uml_basi c_notations.htm • http://www.visual- paradigm.com/VPGallery/diagrams/Class.html 41
  • 42.