Upgrade to Pro — share decks privately, control downloads, hide ads and more …

3. Workshop

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.

3. Workshop

Avatar for EdirnePHP

EdirnePHP

May 03, 2017
Tweet

More Decks by EdirnePHP

Other Decks in Programming

Transcript

  1. 2 / 27 Programlama Yaklaşımları • Prosedür Yönelimli Diller (Fortran,

    Pascal) – Problemi alt parçalara bölerek parçaların birleştirilmesi. • Fonksiyon Yönelimli Diller (Lisp) – Kod tekrarının engellenmesi. • Mantık Yönelimli Diller (Prolog) – Mantıksal terimler kullanılarak algoritma geliştirme. • Nesne Yönelimli Diller (C++, C#, Java, PHP) – Nesneleri ve birbirleriyle etkileşim hâlinde olan nesneler sistemini tanımlamak.
  2. 3 / 27 Yazılım Geliştirme Aşamaları • Analiz – Yazılımın

    “ne yapacağı” belirlenir – Program hedefleri • Tasarım – Yazılımın “nasıl yapılacağı” belirlenir • Kodlama • Test • Bakım
  3. 4 / 27 Temel İlkeler • Sarmalama (Encapsulation) • Kalıtım

    (Inheritance) • Soyutlama (Abstraction) • Çok Biçimlilik (Polymorphism) bkz. s. 20 bkz. s. 21 bkz. s. 22 bkz. s. 23
  4. 5 / 27 UML (Unified Modelling Language) • UML –

    Yazılım mühendisliğinde nesneye yönelik sistemleri modellemede kullanılan açık standart olmuş bir görsel modelleme dilidir. • Model – Gerçek dünyadaki bir olayın veya sistemin soyutlanması, basitleştirilmesi ve kavramlaştırılmasıdır. • Modelleme – Bir sistemi incelemek üzere o sistemin basit bir örneğinin yapılmasıdır.
  5. 6 / 27 UML Diyagramları • Davranış Diyagramları – Use-Case

    (Kullanıcı Senaryosu) – Statechart (Durum) – Activity (Etkinlik)
  6. 7 / 27 • Yapısal Diyagramlar – Class (Sınıf) –

    Object (Nesne) – Component (Bileşen) – Package (Paket) – Deployment (Dağılım) – Composite Structure (Bileşik Yapı) UML Diyagramları
  7. 8 / 27 • Etkileşim Diyagramları – Sequence (Sıralama) –

    Communication (İletişim) – Interaction Overview (Etkileşime Bakış) – Timing (Zaman Akışı) UML Diyagramları
  8. 10 / 27 UML Diyagramları • Sınıf (Class) Diyagramı En

    üstte sınıf ismi bulunur. Özellikler (isteğe bağlı) Sınıfa ait tüm alanları içermelidir. Fonksiyonlar (isteğe bağlı)
  9. 11 / 27 UML Diyagramları • Sınıf (Class) Diyagramı ¡erişim_modu

    isim : tip [adet] = varsayılan değer ¡erişim_modu : + public ¡ # protected ¡ - private ¡ / türetilmiş ¡Statik alanların altı çizilir. ¡Türetilmiş özellik: Diğer özellikler kullanılarak üretilirler.
  10. 12 / 27 UML Diyagramları • Sınıf (Class) Diyagramı ¡erişim_modu

    isim (parametreler) : döndürülen_tip ¡erişim_modu: + public ¡ # protected ¡ - private ¡ ¡Statik fonksiyonların altı çizilir. ¡Parametre tipleri (isim: tip) şeklinde yazılır. ¡Yapıcı ve değer olarak void döndüren fonksiyonlarda döndürülen_tip yazılmaz.
  11. 13 / 27 UML Diyagramları • Sınıf (Class) Diyagramı •

    Genelleme (kalıtım ilişkisi) • Ortaklık (association – kullanma ilişkisi) – Bağımlılık (dependency) – Birliktelik (aggregation) – Birleşme (composition)
  12. 14 / 27 UML Diyagramları • Sınıf (Class) Diyagramı ¡Hiyerarşiler,

    yukarıdan aşağıya (genelden özele) çizilir. Sınıflar arası genelleme ilişkisi ise özelleşmiş sınıftan genel sınıfa çizilen içi boş okla gösterilir.
  13. 15 / 27 UML Diyagramları • Sınıf (Class) Diyagramı •

    1. Çokluk (multiplicity): kaç tane kullanıldığı •* Þ 0, 1 veya daha fazla •1 Þ 1 tane •2..4 Þ 2 ve 4 arasında •5..* Þ 5 veya daha fazla • 2. İsim: İlişkinin ismi • 3. Yönlülük (navigability)
  14. 16 / 27 ¨ Birliktelik: "is part of" (parçasıdır) ¨

    Birleşme: "is entirely made of“ (tamamen yapılmıştır) ¨ Bağımlılık: "uses temporarily” (geçici olarak kullanır) UML Diyagramları • Sınıf (Class) Diyagramı
  15. 17 / 27 UML Diyagramları • Sınıf (Class) Diyagramı Piyango

    Bileti Rastgele Sayı bağımlılık 1 1 Araba birliktelik Motor Sayfa Kitap birleşme * 1
  16. 18 / 27 UML Diyagramları •Sınıf (Class) Diyagramı Siparis -

    tarih : string - odendi : bool - siparisNo : long - sonrakiNo : long - tutar : float + gonder() + kapat() Musteri - isim : string - adres : string + knGetir(): string KurumsalMusteri - irtibatKisi : string - krediNotu: string - krediLimit : float + knGetir() : string BireyselMusteri - kartNo: long MalKalemi - miktar : int - tutar : float + knGetir(): string 1..* 1 0..*
  17. 19 / 27 PHP 5 ve NYP • Değişkenler (Özellik

    - Attribute) • Fonksiyonlar (Metot - Method) • Sınıflar (Class) • Arayüzler (Interface) • “new” anahtar sözcüğü • “this” anahtar sözcüğü – Sınıf özelliğine erişen değişken
  18. 20 / 27 Sınıflar (Classes) • Değişken örüntülerinden oluşan veri

    türleridir. class makaleler { var $kategori; var $baslik; var $yazar; var $yayin_tarihi; function __construct ($kategori, $baslik, $yazar, $yayin_tarihi){ $this->kategori = $kategori; $this->baslik = $baslik; $this->yazar = $yazar; $this->yayin_tarihi = $yayin_tarihi; } }
  19. 21 / 27 Sarmalama (Encapsulation) • Özellik/metotların erişim yapısının belirlenmesidir.

    • İlgili özellik/metoda sınıf dışından atama yapılamaz. • Erişim belirteçleri: – public : erişime açık özellikler/metotlar – private : sadece sınıf içi erişim – protected : kalıtım ile sınıflar arasında erişim
  20. 22 / 27 Kalıtım (Inheritance) • Bir sınıfın başka bir

    sınıftan türemesidir. • Türeyen sınıf, kendisinden türediği sınıftan özellik ve metotları miras alır. • “extends” anahtar sözcüğü ile sınıf türetilir.
  21. 23 / 27 Soyutlama (Abstraction) • İçinde en az bir

    soyut metot barındıran sınıf/nesnenin yerine getirmesi istenen temel işlevi metot düzeyinde belirlemek dışında ayrıntılara yer vermeyen yapılardır. • Soyut bir sınıfın yeni (new) bir örneği oluşturulamaz ve soyut sınıfı genişleten sınıflar, soyut sınıftaki metotları aşırı yüklemek (override) zorundadır.
  22. 24 / 27 Çok Biçimlilik (Polymorphism) • Farklı veri türleri

    değerleri düzgün bir arayüz kullanılarak ele alınması için izin veren bir programlama dili özelliğidir. • Özetle, aynı adlı bir metodun farklı sınıflar tarafından kullanılmasıdır.
  23. 25 / 27 Arayüz (Interface) • Soyut sınıflara (abstract classes)

    çok benzerler. • Gövdeli yordam barındırmazlar. • İçerdikleri metot ve özellikler public erişim belirtecine sahip olmak zorundadır.
  24. 26 / 27 Sihirli Metodlar (Magic Methods) •__constructor() •__destructor() •__call()

    •__callStatic() •__get() •__set() •__isset() •__unset() •__clone() •__toString() •__sleep() •__wakeup() •__invoke() •__set_state()
  25. 27 / 27 İstisna İşleme (Exception Handling) • İstisnalar, belirtilen

    bir hata oluşursa betiğin normal akışını değiştirmek için kullanılır. • İstisna işleme, belirtilen bir hata (istisnai) koşulu meydana gelirse kod yürütmesinin normal akışını değiştirmek için kullanılır. try{ ..... } catch(Exception $e){ $e->getMessage(); } getMessage(); getFile(); getLine(); getCode(); getPrevious(); getTrace(); getTraceAsString();