YAZILIM
MİMARİLERİ
Nesne tabanlı programlama
 (Object

Oriented Programming)
 OOP tekniği gerçek dünyadaki somut
nesnelerin, bir yazılımın sunduğu soyut
modelde birer karşılığı olmasına dayanır.
 Bu karşılıklara da nesne (object) adı verilir.
Problemin çözüm aşamaları
 Problemin

saptanması ve ifade edilmesi
 Problemin doğasının anlaşılması için
çevresinden soyutlanması
 Problemi simgeleyen soyut bir kavramsal
modelin oluşturulması
 Bu modelin çözümlenmesi ve bu modelin
sunduğu probleme bir çözüm getirilmesi
 Getirilen çözümün orijinal problemi çözüp
çözmediğinin denetlenmesi
 Yazılım

geliştirmede kullanacağımız çeşitli
modellerin ifade edilmesi için, yazılım
sektöründeki herkesin kullanacağı
modelleme dillerine (modelling language)
ihtiyaç duymaktayız.
UML
 UML

(Unified Modelling Language, Birleşik
Modelleme Dili) yazılım modellenmesi ve
planlanması için kullanılan standart bir
dildir.
Yazılımda Modelleme
Modellemenin Avantajları
 Modeller

önemli olmayan ayrıntılardan
arındırıldıklarından dolayı, daha basit ve
anlaşılabilir yapıda olurlar. Bu
sayede, bizim için modelleri tartışmak ve
modelleri temel alarak çalışmak daha
kolay olur.
 Modeller

soyut oldukları için çözümlerin
küçük boydaki bir modele göre hazırlanıp
bir pilot uygulamasının yapılması daha
kolaydır. Bu avantaj çözümlerin
denenmesini daha hızlı ve özellikle daha
ucuz yapabilmemizi sağlar. Zaman zaman
gerçek dünyada modelini çıkarttığımız
sisteme müdahale etme şansımız
olmayabilir. Örneğin ekonomik yönleri
olan sistemlerde deney yapma şansımız
pek olmaz, olduğu zaman da oldukça
pahalı deneylerle karşılaşırız.
İyi bir sınıf tasarımı iyi bir modeldir ve iyi
modellerde bulunması gereken şu özelliklere
mümkün oldukça sahip olmalıdır;
 Gerçek

dünyayı doğru ifade etmelidir.
 İşlevi tasarımdan ayırmalıdır.
 Bütün önemli özellikleri doğrudan
sunmalıdır.
 Önceden yazı ile ifade edilmiş bulunan
tüm verileri sunmalıdır.
Class Diyagramları
UML’de sınıflar OOP
mantığından yola çıkılarak
düşünülmüştür
 Sınıfların bir adı,özellikleri
(attributes) ve
işlevleri(functions) vardır.
 Bunlara ek olarak “notes” (sınıf
hakkında ekstra bilgiler) ve
“Constraints” adlı sınıfla ilgili
çeşitli özel koşullara ait
bilgilerde bulunabilir.

UML’nin efektif yararları
 Tasarım

ve analizi yapılmış olduğu için daha
kolay kodlama yapılır.
 Hatalar minimuma indirilir
 Tekrar kullanılabilir kod sayısı epey artabilir
 Bellek kullanımı daha verimli olur
 Programın kararlılığı artar(Senaryoların
yardımıyla)
 Takım çalışması için harika bir yardımcıdır
UML Modellemede Diyagramlar
Bir modelleme metodolojisi olan UML temel olarak 9
diyagram tipine sahiptir.
 Class Diyagramları
(Sınıf yapılarını gösterir)
 Object Diyagramları
(Gerçekleşmiş Nesnelerin bilgileri)
 State Diyagramları
(Nesnelerin o anki durumları)
 Sequence Diyagramları (Değişken durumların ifadesi)
 Activity Diyagramları
(Nesnelerin faaliyetleri)
 Use Case Diyagramları (Gerçek senaryolar üzerinde test)
 Collaboration
””
(Parçaların bütünü oluşturması)
 Component
””
(Bileşenlerin diyagramı)
 Deployment
””
(Sistemin çalışma platformundaki
hallerini gösteren diyagramlar)
Class’lar arasındaki ilişkiler
İnsan sınıfından Ali nesnesi ve Kitap
sınıfından ‘Uml Kitabı’ nesnesi ve
aralarındaki ‘okuma’ ilişkisi
Burada Müşteri ile Kitapçı sınıfı
arasında "satın alma“ ilişkisi var.Fakat
müşteri satın alırken ücret ödemek
zorundadır.Bu ilişkiyi göstermek için
ücret sınıfı ilişki ile kesikli çizgi ile
birleştirilir.
Burada 1 yüzbaşı 100 Er'e
komut(emir) verebilir anlamı
çıkmaktadır
Kaynaklar


UML ile Nesne
Tabanlı Çözümleme
ve Tasarım, Bora
GÜNGÖREN

Ayancık Meslek
Yüksekokulu
Öğr. H. Kübra KÖSE

Yazılım Mimarileri - Hafta 3

  • 1.
  • 2.
    Nesne tabanlı programlama (Object Oriented Programming)  OOP tekniği gerçek dünyadaki somut nesnelerin, bir yazılımın sunduğu soyut modelde birer karşılığı olmasına dayanır.  Bu karşılıklara da nesne (object) adı verilir.
  • 3.
    Problemin çözüm aşamaları Problemin saptanması ve ifade edilmesi  Problemin doğasının anlaşılması için çevresinden soyutlanması  Problemi simgeleyen soyut bir kavramsal modelin oluşturulması  Bu modelin çözümlenmesi ve bu modelin sunduğu probleme bir çözüm getirilmesi  Getirilen çözümün orijinal problemi çözüp çözmediğinin denetlenmesi
  • 5.
     Yazılım geliştirmede kullanacağımızçeşitli modellerin ifade edilmesi için, yazılım sektöründeki herkesin kullanacağı modelleme dillerine (modelling language) ihtiyaç duymaktayız.
  • 6.
    UML  UML (Unified ModellingLanguage, Birleşik Modelleme Dili) yazılım modellenmesi ve planlanması için kullanılan standart bir dildir.
  • 7.
  • 8.
    Modellemenin Avantajları  Modeller önemliolmayan ayrıntılardan arındırıldıklarından dolayı, daha basit ve anlaşılabilir yapıda olurlar. Bu sayede, bizim için modelleri tartışmak ve modelleri temel alarak çalışmak daha kolay olur.
  • 9.
     Modeller soyut olduklarıiçin çözümlerin küçük boydaki bir modele göre hazırlanıp bir pilot uygulamasının yapılması daha kolaydır. Bu avantaj çözümlerin denenmesini daha hızlı ve özellikle daha ucuz yapabilmemizi sağlar. Zaman zaman gerçek dünyada modelini çıkarttığımız sisteme müdahale etme şansımız olmayabilir. Örneğin ekonomik yönleri olan sistemlerde deney yapma şansımız pek olmaz, olduğu zaman da oldukça pahalı deneylerle karşılaşırız.
  • 10.
    İyi bir sınıftasarımı iyi bir modeldir ve iyi modellerde bulunması gereken şu özelliklere mümkün oldukça sahip olmalıdır;  Gerçek dünyayı doğru ifade etmelidir.  İşlevi tasarımdan ayırmalıdır.  Bütün önemli özellikleri doğrudan sunmalıdır.  Önceden yazı ile ifade edilmiş bulunan tüm verileri sunmalıdır.
  • 11.
    Class Diyagramları UML’de sınıflarOOP mantığından yola çıkılarak düşünülmüştür  Sınıfların bir adı,özellikleri (attributes) ve işlevleri(functions) vardır.  Bunlara ek olarak “notes” (sınıf hakkında ekstra bilgiler) ve “Constraints” adlı sınıfla ilgili çeşitli özel koşullara ait bilgilerde bulunabilir. 
  • 12.
    UML’nin efektif yararları Tasarım ve analizi yapılmış olduğu için daha kolay kodlama yapılır.  Hatalar minimuma indirilir  Tekrar kullanılabilir kod sayısı epey artabilir  Bellek kullanımı daha verimli olur  Programın kararlılığı artar(Senaryoların yardımıyla)  Takım çalışması için harika bir yardımcıdır
  • 13.
    UML Modellemede Diyagramlar Birmodelleme metodolojisi olan UML temel olarak 9 diyagram tipine sahiptir.  Class Diyagramları (Sınıf yapılarını gösterir)  Object Diyagramları (Gerçekleşmiş Nesnelerin bilgileri)  State Diyagramları (Nesnelerin o anki durumları)  Sequence Diyagramları (Değişken durumların ifadesi)  Activity Diyagramları (Nesnelerin faaliyetleri)  Use Case Diyagramları (Gerçek senaryolar üzerinde test)  Collaboration ”” (Parçaların bütünü oluşturması)  Component ”” (Bileşenlerin diyagramı)  Deployment ”” (Sistemin çalışma platformundaki hallerini gösteren diyagramlar)
  • 14.
    Class’lar arasındaki ilişkiler İnsansınıfından Ali nesnesi ve Kitap sınıfından ‘Uml Kitabı’ nesnesi ve aralarındaki ‘okuma’ ilişkisi Burada Müşteri ile Kitapçı sınıfı arasında "satın alma“ ilişkisi var.Fakat müşteri satın alırken ücret ödemek zorundadır.Bu ilişkiyi göstermek için ücret sınıfı ilişki ile kesikli çizgi ile birleştirilir. Burada 1 yüzbaşı 100 Er'e komut(emir) verebilir anlamı çıkmaktadır
  • 15.
    Kaynaklar  UML ile Nesne TabanlıÇözümleme ve Tasarım, Bora GÜNGÖREN Ayancık Meslek Yüksekokulu Öğr. H. Kübra KÖSE