Yazılım Mühendisliği

Mimari Tasarım

Dr. Öğr. Üyesi Oğuz Emre Kural

2026

Öğrenme kazanımları

Bu dersin sonunda:

  • Yazılım mimarisinin ne olduğunu ve sistemin işlevsel olmayan özelliklerini neden belirlediğini açıklayabilecek,
  • Mimari tasarım kararlarını ve performans, güvenlik, emniyet, erişilebilirlik, bakım kolaylığı ve ölçeklenebilirliğin mimariye etkisini tartışabilecek,
  • Bir mimariyi 4+1 ve kavramsal görünümlerle anlatabilecek,
  • MVC, katmanlı, depo, istemci-sunucu ve boru ve filtre desenlerini karşılaştırıp bir probleme uygun olanı seçebilecek,
  • Hareket işleme, bilgi sistemi ve dil işleme uygulama mimarilerini tanıyıp bir sistemi bunlara göre değerlendirebileceksiniz.

Mimari Tasarıma Giriş

Mimari tasarım nedir?

Örnek: paketleme robotunun mimarisi

Gereksinim ve mimari iç içedir

İdeal olan

Gereksinim belirtimi hiçbir tasarım bilgisi içermez; önce ne, sonra nasıl konuşulur.

Gerçekte olan

Ana bileşenler gereksinim aşamasında belirlenir. İşlev grupları büyük bileşenlerle eşleştirilir ve paydaşlarla bu ayrıştırma üzerinden konuşulur.

Çok küçük sistemler dışında, mimariye gereksinimler tamamlanmadan başlanır.

Çevik süreçlerde de mimari önce gelir

Küçük ve büyük ölçekte mimari

Mimari neden önemli?

Mimariyi açıkça tasarlamanın üç faydası

Paydaş iletişimi

Mimari, sistemin üst düzey bir sunumudur; farklı paydaşlar arasındaki tartışmanın odağı olur.

Sistem analizi

Mimariyi erkenden açık hâle getirmek analiz gerektirir: Sistem performans, güvenilirlik, bakım kolaylığı gibi kritik gereksinimleri karşılayabilecek mi?

Büyük ölçekli yeniden kullanım

Benzer gereksinimli sistemlerin mimarisi çoğu zaman aynıdır. Ürün hattı mimarileri aynı mimariyi bir dizi ilişkili sistemde kullanır.

Bass, Clements ve Kazman (2012)

Blok diyagramların iki kullanımı

Tasarım üzerine tartışmak

Ayrıntıdan arınmış üst düzey bir görünüm. Paydaşlar sistemi bütün olarak tartışır; yöneticiler ana bileşenlere göre ekip ve plan kurar.

Tasarlanmış mimariyi belgelemek

Bileşenleri, arayüzlerini ve bağlantılarını gösteren eksiksiz bir model. Sistemi anlamayı ve evrimini kolaylaştırır.

Kutu ve çizgi tartışması

Eleştiri

Gayriresmî blok diyagramlar ne bileşenler arasındaki ilişkinin türünü ne de bileşenlerin dışa açık özelliklerini gösterir (Bass ve ark.).

Pratik

Sezgiseldir; alan uzmanları ve mühendisler birlikte tartışabilir, yöneticiler planlamada kullanır. Birçok projede tek mimari belgedir.

Ayrıntılı belgeleme için mimari tanımlama dilleri geliştirildi. Daha az yanlış anlamaya yol açarlar, ama pahalıdırlar ve maliyetlerine değip değmeyeceği bilinemez; bu yüzden yaygın değildir.

Özet: Mimari Tasarıma Giriş

  • Mimari tasarım, sistemin ana bileşenlerini ve ilişkilerini belirler; çıktısı bir mimari modeldir.
  • Mimari, gereksinim mühendisliğiyle iç içe yürür; çevik süreçlerde de erkenden kurulur.
  • İşlevsel olmayan özellikleri asıl belirleyen mimaridir.
  • Blok diyagramlar tartışma için yeterlidir; ayrıntılı belgeleme daha kesin gösterim ister.

Teknik olmayan bir yöneticiye, yeni proje için neden bir yazılım mimarına ihtiyaç olduğunu anlatan bir sunumun ana maddelerini yazın.

Mimari Tasarım Kararları

Etkinlikler dizisi değil, kararlar dizisi

Bir adımlar listesi gibi düşünmek

Önce şunu yap, sonra şunu… Mimari tasarımda böyle sabit bir sıra yoktur.

Bir kararlar dizisi gibi düşünmek

Mimar, sistemi ve geliştirme sürecini derinden etkileyen yapısal kararlar verir.

Sekiz temel soru

Üç kararı yakından tanıyalım

Genel uygulama mimarisi

Aynı alandaki sistemler, alanın temel kavramlarını yansıtan benzer mimarilere sahiptir. Ürün hatları, bir çekirdek mimari etrafında müşteriye özel çeşitlerle kurulur.

Dağıtım

Gömülü sistemler ve kişisel uygulamalarda gerekmeyebilir. Büyük sistemlerin çoğu ise birçok bilgisayara dağılır; bu karar performansı ve güvenilirliği belirler.

Desen ya da stil

İkisi artık aynı anlamda kullanılır. Desen, farklı sistemlerde kullanılmış bir organizasyonun özüdür; mimar, ortak desenleri, nerede işe yaradıklarını, güçlü ve zayıf yanlarını bilmelidir.

İşlevsel olmayan gereksinim mimariyi seçer

Güvenlik: kritik varlık en içte

Emniyet: riskli işlemler tek yerde

Erişilebilirlik: yedekli bileşenler

Bakım kolaylığı: küçük ve bağımsız bileşenler

Ölçeklenebilirlik: yük arttıkça büyüyebilmek

Ne demek?

Sistemin, kullanıcı ya da veri miktarı arttığında performansını koruyarak büyüyebilmesi. Sommerville’in beş özelliğinin yanında bugün en sık anılan kalite özelliklerinden biridir.

Mimariye etkisi

Bileşenler kopyalanabilir olmalı: kullanıcı durumunu kendi içinde tutmayan (durumsuz) servisler kolayca çoğaltılır. Darboğaz olabilecek ortak kaynaklar (ör. tek veritabanı) erkenden belirlenmelidir.

AS-HYS’yi tek bir hastaneden bütün ildeki kliniklere açmak, bir ölçeklenebilirlik kararıdır.

Özellikler çatışabilir

AS-HYS için mimari kararlar

Gereksinim AS-HYS’deki karşılığı Mimari karar
Güvenlik Hasta kayıtları gizlidir Katmanlı yapı; hasta verisi en içte, her katmanda yetki denetimi
Erişilebilirlik Klinik mesai boyunca randevu araması Randevu servisinin yedekli kopyaları
Performans Arama sonucu birkaç saniyede gelmeli Arama ve önbellek aynı sunucuda
Bakım kolaylığı Raporlama kuralları sık değişir Rapor üreteci ayrı, küçük bir bileşen
Emniyet Yanlış ilaç dozu uyarısı Doz denetimi tek bir bileşende toplanır

Mimariyi değerlendirmek

Asıl sınav kullanımda

Bir mimarinin gerçek testi, sistemin kullanıldığında işlevsel ve işlevsel olmayan gereksinimleri ne kadar karşıladığıdır.

Erken değerlendirme

Tasarım, referans mimarilerle ya da genel mimari desenlerle karşılaştırılabilir. Desenlerin işlevsel olmayan özelliklere etkisi bilinir (Bosch, 2000).

Kararları kayda geçirmek

Özet: Mimari Tasarım Kararları

  • Mimari tasarım bir kararlar dizisidir; sekiz temel soruya cevap arar.
  • Stil ve yapı seçimi işlevsel olmayan gereksinimlere göre yapılır.
  • Performans, güvenlik, emniyet, erişilebilirlik ve bakım kolaylığı farklı mimari ilkeler ister; bu ilkeler çatışabilir.
  • Çatışma, sistemin farklı parçalarında farklı desenler kullanılarak uzlaştırılır.

Performans ve güvenlik, bir sistemin mimarisinde birbiriyle çatışan gereksinimler olabilir. Bu iddiayı destekleyen bir gerekçe yazın.

Mimari Görünümler

Tek bir diyagram her şeyi gösteremez

Modüller

Sistem hangi modüllere ayrılıyor?

Çalışma zamanı

Süreçler çalışırken birbiriyle nasıl etkileşiyor?

Dağıtım

Bileşenler ağdaki makinelere nasıl yerleşiyor?

Hepsi farklı zamanlarda gereklidir; bu yüzden mimari çoğu zaman birden fazla görünümle anlatılır.

Kruchten’in 4+1 görünüm modeli

Mantıksal görünüm: temel soyutlamalar

Süreç görünümü: çalışma zamanı

Geliştirme görünümü: kim neyi geliştirir?

Fiziksel görünüm: hangi yazılım hangi makinede?

+1: bir senaryo bütün görünümleri birleştirir

Kavramsal görünüm

Hofmeister ve arkadaşları

Benzer görünümlere bir de kavramsal görünüm ekler: sistemin soyut bir görünümü. Üst düzey gereksinimleri ayrıntılı belirtimlere ayrıştırmanın temelidir; yeniden kullanılabilecek bileşenler hakkında karar vermeye yardım eder; tek bir sistem yerine bir ürün hattını temsil edebilir.

Pratikte

Kavramsal görünüm tasarım sırasında neredeyse her zaman çizilir. Bölümün başındaki paketleme robotu diyagramı bir kavramsal görünümdür. Diğer görünümler ilgili konu tartışılırken çizilir; hepsini eksiksiz çizmek nadiren gerekir.

Hangi gösterim? UML tartışması

UML yanlısı görüş

2006’da yapılan bir anket, mimaride UML’in çoğunlukla gayriresmî kullanıldığını gösterdi. Anketi yapanlara göre bu kötü bir şeydi: Gösterim kurallarına uyulmalıydı.

Sommerville’in görüşü

UML nesneye dayalı sistemler için tasarlandı; mimari aşamada daha yüksek soyutlama gerekir, sınıflar uygulamaya fazla yakındır. Tasarım sırasında tahtaya hızla çizilen gayriresmî gösterimler daha kullanışlıdır. UML, ayrıntılı belgelemede ve model güdümlü geliştirmede değerlidir.

Mimari tanımlama dilleri (ADL)

Ne kadar belge?

Çevik bakış

Ayrıntılı tasarım belgelerinin çoğu hiç kullanılmaz; onları üretmek zaman ve para kaybıdır.

Sommerville’in önerisi

Kritik sistemler dışında dört görünümün hepsini ayrıntılı çizmeye değmez. İletişime yarayan görünümleri geliştirin; belgenin eksiksiz olup olmadığına takılmayın.

Bugün yaygın bir yaklaşım: C4 modeli

Özet: Mimari Görünümler

  • Mimari tek bir çizimle anlatılamaz; birden fazla görünüm gerekir.
  • 4+1: mantıksal, süreç, geliştirme, fiziksel görünümler ve onları bağlayan senaryolar.
  • Kavramsal görünüm neredeyse her zaman çizilir; diğerleri gerektiğinde.
  • Tasarımda gayriresmî gösterimler, ayrıntılı belgelemede UML; ADL’ler yaygın değil.

Bir tren istasyonundaki bilet makinesi için kavramsal görünümü ve süreç görünümünü gösteren diyagramlar çizin.

Mimari Desenler: MVC ve Katmanlı Mimari

Desen nedir?

Bir mimari desen, farklı sistemlerde ve ortamlarda denenmiş ve sınanmış iyi tasarım pratiğinin stilize, soyut bir tanımıdır.

Desen yalnızca bir çizim değildir: ne zaman uygun olduğunu, ne zaman olmadığını, güçlü ve zayıf yanlarını da anlatır.

Desenlerin kısa geçmişi

Bir desen nasıl anlatılır?

Alan İçerik
Ad Desenin adı
Açıklama Sistemin nasıl organize edildiği
Örnek Desenin kullanıldığı bir sistem ve diyagramı
Ne zaman kullanılır? Desenin uygun olduğu durumlar
Avantajlar Desenin güçlü yanları
Dezavantajlar Desenin zayıf yanları, bedeli

Bu bölümdeki desenler

MVC: hangi sorunu çözer?

MVC: üç rol

Örnek akış: randevu iptali

MVC’nin web uygulamasındaki hâli

MVC deseni

Alan MVC (Model-View-Controller)
Açıklama Sunum ve etkileşimi sistem verisinden ayırır; sistem Model, View ve Controller bileşenlerine bölünür.
Örnek MVC ile organize edilmiş web uygulaması mimarisi.
Ne zaman kullanılır? Veriyi görüntülemenin ve onunla etkileşmenin birden çok yolu varsa; sunum ve etkileşimle ilgili gelecekteki gereksinimler bilinmiyorsa.
Avantajlar Veri, gösteriminden bağımsız değişebilir (ve tersi). Aynı veri farklı biçimlerde gösterilir; birindeki değişiklik hepsine yansır.
Dezavantajlar Veri modeli ve etkileşim basitse ek kod ve karmaşıklık getirebilir.

MVC pratikte

Paralel geliştirme

Ön yüz geliştiricileri View üzerinde, arka uç geliştiricileri Model ve Controller üzerinde aynı anda çalışabilir.

Test edilebilirlik

İş mantığı arayüzden bağımsız olduğu için Model için birim testi yazmak kolaydır.

Yaygınlık

Django, Ruby on Rails, ASP.NET MVC, Laravel gibi web çatılarının temelidir. Masaüstü ve mobilde MVP ve MVVM çeşitleri kullanılır.

MVC’den katmanlı mimariye

Katmanlı mimari: ayrım ve bağımsızlık

Sorumlulukların ayrılması: üç katmanlı yapı

Katman kuralı ve ihlali

Bir katmanı değiştirmek

Örnek: iLearn dijital öğrenme sistemi

Katmanlı mimari deseni

Alan Katmanlı mimari
Açıklama Sistem, ilgili işlevlerin bir arada olduğu katmanlara ayrılır; her katman üstündekine servis sağlar. Temel ilke: sorumlulukların ayrılması.
Örnek Okullar için iLearn dijital öğrenme sistemi.
Ne zaman kullanılır? Mevcut sistemlerin üzerine yeni olanaklar kurulurken; geliştirme her katmandan bir ekibin sorumlu olduğu birkaç ekibe dağılmışsa; çok düzeyli güvenlik gerekiyorsa.
Avantajlar Arayüz korunduğu sürece katmanlar bütünüyle değiştirilebilir (ör. veritabanını değiştirmek yalnızca veri katmanını etkiler). Katmanlar farklı teknolojilerle, farklı ekiplerce geliştirilebilir. Güvenilirlik için olanaklar (ör. kimlik doğrulama) birden çok katmanda tekrarlanabilir.
Dezavantajlar Temiz ayrım pratikte zordur; kural delinip alt katmanlara doğrudan erişilirse soyutlama sızar (leaky abstraction). İstek her katmanda yorumlandığı için performans düşebilir. Hiçbir iş yapmadan isteği aşağı aktaran gereksiz katmanlar bu maliyeti boşuna artırır.

Özet: Mimari Desenler: MVC ve Katmanlı Mimari

  • Desen, denenmiş iyi pratiğin tanımıdır; ne zaman kullanılacağını ve bedelini de söyler.
  • MVC veriyi (Model), sunumu (View) ve etkileşimi (Controller) ayırır.
  • Katmanlı mimari sistemi, her biri yalnızca altındakine dayanan katmanlara böler.
  • İkisinin ortak hedefi: ayrım ve bağımsızlık; değişiklikler yerel kalır.

Aynı randevu verisini hem web sayfasında hem mobil uygulamada göstermek istiyoruz. MVC’nin hangi özelliği bunu kolaylaştırır?

Mimari Desenler: Depo, İstemci-Sunucu, Boru ve Filtre

Kavramsal organizasyondan veri paylaşımına

Depo mimarisi: ortak veri, bağımsız araçlar

Depo deseninin bedeli: ortak veri modeli

Pasif depo ve kara tahta

Depo deseni

Alan Depo (Repository)
Açıklama Bütün veri, bütün bileşenlerin erişebildiği merkezi bir depoda yönetilir. Bileşenler doğrudan değil, yalnızca depo üzerinden etkileşir.
Örnek Araçların tasarım bilgisini bir depoda paylaştığı IDE.
Ne zaman kullanılır? Uzun süre saklanması gereken büyük hacimde bilgi üretiliyorsa; depoya veri girmesinin bir eylemi tetiklediği veri güdümlü sistemlerde. Komuta-kontrol, yönetim bilgi sistemleri, CAD ve IDE’ler.
Avantajlar Bileşenler bağımsızdır, birbirinin varlığını bilmez; yeni bir araç mevcutları değiştirmeden eklenir. Bir bileşenin değişikliği hepsine yayılır. Bütün veri tek yerde olduğu için güvenlik, yedekleme ve tutarlılık merkezi yönetilir.
Dezavantajlar Depo tek hata noktasıdır. Çok sayıda bileşen aynı anda okuyup yazarsa depo bir performans darboğazına dönüşür. Depoyu birden çok bilgisayara dağıtmak, kopyaları tutarlı tutmayı gerektirdiği için zordur.

Depodan istemci-sunucuya

İstemci-sunucu: hizmetler ve kullanıcıları

Örnek: film ve fotoğraf kütüphanesi

Modern bir örnek: Netflix

Bir videonun yolculuğu: boru ve filtre

Film kütüphanesinden Netflix’e

Kitaptaki film kütüphanesi Netflix (sadeleştirilmiş)
İstemci Tarayıcıdaki tümleşik arayüz TV, telefon ve tarayıcı uygulamaları
Katalog ve iş mantığı Tek katalog sunucusu API ağ geçidi ve yüzlerce mikroservis
Video sunucusu Tek video sunucusu İnternet servis sağlayıcılarının içindeki binlerce önbellek sunucusu (Open Connect)
Sıkıştırma Sunucuda, istek anında Önceden, her video için onlarca sürüm (boru ve filtre hattı)
Ölçekleme Sunucu eklemek Bulut bölgeleri ve otomatik ölçekleme; içerik izleyicinin yakınına taşınır
Tek hata noktası Her sunucu Yedekli servisler; arızalar bilerek tetiklenip sınanır (kaos mühendisliği)

Desen aynı: hizmetler ayrı sunucularda, istemciler istekle erişir. Değişen, ölçek ve bu ölçeğin getirdiği işlevsel olmayan gereksinimler.

Yük artınca: darboğaz ve ölçekleme

Dikey ve yatay ölçekleme

İstemci-sunucu deseni

Alan İstemci-sunucu (Client-server)
Açıklama Sistem bir hizmetler kümesidir; her hizmeti ayrı bir sunucu sağlar. İstemciler bu hizmetlerin kullanıcılarıdır.
Örnek İstemci-sunucu olarak organize edilmiş film ve video kütüphanesi.
Ne zaman kullanılır? Ortak bir veritabanına farklı yerlerden erişilmesi gerekiyorsa. Sunucular çoğaltılabildiği için yükü değişken sistemlerde de.
Avantajlar Merkezi yönetim: veri ve iş mantığı sunucuda; güncelleme ve güvenlik tek yerden yapılır. Erişim: ağa bağlı her yetkili istemci hizmeti kullanabilir. Ölçekleme: sunucu güçlendirilebilir (dikey) ya da çoğaltılabilir (yatay). Genel bir işlev (ör. yazdırma) bütün istemcilere açıktır.
Dezavantajlar Her hizmet tek hata noktasıdır; hizmet engelleme (DoS) saldırılarına açıktır. Çok sayıda istekte sunucu darboğaza dönüşür. Performans ve güvenilirlik ağ bağlantısına bağlıdır. Sunucular farklı kuruluşlara aitse yönetim sorunları çıkar.

İstemci-sunucudan boru ve filtreye

Boru ve filtre: bir montaj hattı

Adın kaynağı: UNIX boruları

Örnek: fatura ve ödeme işleme

Nerede uygun, nerede değil?

Toplu sıralı (batch)

Dönüşümler sırayla, veri toplu işlenir. Faturalama gibi veri işleme sistemlerinin yaygın mimarisidir.

Süreç hattı

Gömülü sistemlerde her süreç eşzamanlı çalışan bir filtre olur; sensörden gelen veri hat boyunca işlenir.

Etkileşimli arayüzler

Grafik arayüzlerin girdi-çıktısı karmaşıktır ve kontrol, fare tıklaması gibi olaylara dayanır; bunu sıralı bir veri akışına çevirmek zordur.

Boru ve filtre deseni

Alan Boru ve filtre (Pipe and filter)
Açıklama Her işlem bileşeni (filtre) ayrıdır ve tek bir veri dönüşümü yapar. Veri, bir borudaki gibi bir bileşenden diğerine akar.
Örnek Faturaları işleyen boru ve filtre sistemi.
Ne zaman kullanılır? Girdilerin ayrı aşamalarda işlenip ilgili çıktıların üretildiği veri işleme uygulamalarında (toplu ya da işlem tabanlı).
Avantajlar Anlaşılması kolaydır; dönüşümlerin yeniden kullanımını destekler. İş akışı biçimi birçok iş sürecine uyar. Dönüşüm ekleyerek geliştirmek kolaydır. Sıralı ya da eşzamanlı kurulabilir.
Dezavantajlar Veri aktarım biçimi üzerinde anlaşılmalıdır. Her dönüşüm girdisini ayrıştırıp çıktısını bu biçime çevirmek zorundadır; bu ek yük getirir ve uyumsuz veri yapılı bileşenleri yeniden kullanmayı imkânsız kılabilir.

Yapıdan kontrole

Kontrol desenleri

Desenler bir arada

Desen Gösterdiği görünüm Güçlü yanı Zayıf yanı
MVC Kavramsal Veri ile sunum ayrı değişir Basit sistemde fazla kod
Katmanlı Kavramsal Katmanlar değiştirilebilir Temiz ayrım zor, performans
Depo Statik yapı Büyük veriyi verimli paylaşır Tek hata noktası, ortak şema
İstemci-sunucu Çalışma zamanı Dağıtılabilir, ölçeklenir Ağa bağımlı, tek hata noktası
Boru ve filtre Çalışma zamanı Basit, yeniden kullanılabilir Ortak veri biçimi, etkileşime uymaz

Gerçek sistemler desenleri birleştirir: bir web uygulaması istemci-sunucu, sunucu tarafı katmanlı, arayüzü MVC olabilir.

Özet: Mimari Desenler: Depo, İstemci-Sunucu, Boru ve Filtre

  • Depo: bileşenler yalnızca ortak depo üzerinden veri paylaşır.
  • İstemci-sunucu: hizmetler ayrı sunuculardadır; istemciler istek gönderir.
  • Boru ve filtre: veri, tek iş yapan filtrelerden geçerek dönüştürülür.
  • Kontrol: merkezi ya da olay tabanlı olabilir. Gerçek sistemler desenleri birleştirir.

Çiftlikte sığırları otonom olarak güden, gerektiğinde insan operatörlerce uzaktan kumanda edilebilen dronlar için birden çok desen nasıl birlikte kullanılabilir?

Uygulama Mimarileri

Ortak ihtiyaçlar, ortak mimariler

Genel iş işlevleri

Personel, faturalama, muhasebe… Her işletmede benzerdir.

Sektöre özgü işlevler

Bütün telefon şirketleri aramaları bağlar ve ölçer, şebekeyi yönetir, fatura keser.

Uygulama mimarisi

Bir sistem sınıfının temel özelliklerini yakalayan, yeniden kullanılabilir yapı. Ayrıntıda farklı sistemler aynı iskeleti paylaşır.

E-ticaret ve uçak rezervasyonu: aynı iskelet

Yeniden kullanım çoğu zaman örtüktür

Uygulama mimarilerinin beş kullanımı

1 · Başlangıç noktası

Uygulama türünü bilmiyorsanız ilk tasarımı genel mimariye dayandırıp özelleştirirsiniz; boş sayfadan başlamazsınız.

2 · Tasarım kontrol listesi

Tasarımınızı genel mimariyle karşılaştırırsınız: Kimlik doğrulama, kayıt tutma, ödeme gibi standart bileşenleri düşündük mü?

3 · Ekip organizasyonu

Kararlı bileşenler paralel geliştirilebilir; iş bileşenlere göre dağıtılır: arayüz ekibi, API ekibi, veritabanı ekibi.

4 · Yeniden kullanım değerlendirmesi

Elinizdeki bileşenleri (ör. bir ödeme modülü) genel yapıdaki karşılıklarıyla karşılaştırırsınız.

5 · Ortak sözcük dağarcığı

“Bu bir hareket işleme sistemi” demek, sistemin doğası, zorlukları ve gereksinimleri hakkında hemen ortak bir anlayış yaratır.

Farklı görünen uygulamalar, ortak iskelet

Hareket işleme uygulamaları

Veritabanı merkezli; kullanıcı isteklerini işler, veritabanını günceller. En yaygın etkileşimli iş sistemleri: bankacılık, e-ticaret, bilgi sistemleri, rezervasyon.

Dil işleme sistemleri

Kullanıcının niyeti biçimsel bir dille ifade edilir. Sistem bu dili iç biçime çevirir ve yorumlar: derleyiciler, sorgu dilleri, XML gibi işaretleme dilleri.

Veritabanı işlemi: ya hepsi ya hiçbiri

Kullanıcının gözünden işlem

Kullanıcı işlemi

Bir amacı karşılayan tutarlı bir işlemler dizisi. Örneğin: “Dr. Yılmaz’ın yarınki boş randevu saatlerini bul.”

Veritabanı işlemi gerekir mi?

Bu istek veritabanını değiştirmez; teknik bir veritabanı işlemi olarak paketlenmesi gerekmeyebilir. Randevuyu kaydetmek ise veritabanını değiştirir ve atomik olmalıdır.

Hareket işleme uygulamalarının yapısı

ATM sisteminin mimarisi: girdi, işlem, çıktı

Bilgi sistemleri: katmanlı genel model

AS-HYS: genel modelin bir örneği

E-ticaret: kaynak yönetimi ve alışveriş sepeti

“Sipariş ver”e basınca neler olur?

Çok katmanlı istemci-sunucu ve ölçekleme

Diğer uygulama türleri

Veri işleme uygulamaları

Büyük veri kümelerini bir biçimden diğerine dönüştürür; çoğunlukla kullanıcı etkileşimi olmadan arka planda, toplu ya da akış olarak çalışır. Gün sonu raporları, veri ambarı (ETL) işlemleri, video sıkıştırma.

Olay işleme sistemleri

Dış dünyadan gelen olay akışlarına (sensör verisi, tıklamalar) anında tepki verir; eşzamansız ve tepkisel çalışır. Dolandırıcılık tespiti, nesnelerin interneti verisi, alarm sistemleri.

Kitabın web sitesinde toplu veri işleme, kaynak ayırma ve olay tabanlı düzenleme sistemlerinin mimarileri de yer alır.

Özet: Uygulama Mimarileri

  • Uygulama mimarileri, bir sistem sınıfının ortak iskeletini yakalar; başlangıç noktası, kontrol listesi ve ortak dil olarak kullanılır.
  • Hareket işleme sistemleri veritabanını atomik işlemlerle günceller; girdi, işlem ve çıktı olarak da okunabilir.
  • Bilgi sistemleri katmanlı bir genel modele uyar; katmanlar sunuculara eşlenip her düzeyde ölçeklenir.

Bilgi sistemlerinin genel modelini kullanarak, kullanıcıların etkinlikleri, boş biletleri ve fiyatları görüp bilet satın alabileceği bir bilet satış sisteminin bileşenlerini önerin.

Dil İşleme Sistemleri

Dil işleme sistemleri

Bir dili başka bir gösterime çevirir; programlama dilleri için ortaya çıkan kodu çalıştırabilir de.

Derleyiciler

Programlama dilini makine koduna çevirir.

XML ve sorgu dilleri

XML veri tanımını bir veritabanı sorgusuna ya da başka bir XML gösterimine çevirir.

Doğal dil işleme

Bir doğal dili başka birine, örneğin Fransızcayı Norveççeye çevirir; sözlük gibi ek bileşenler içerir.

Her gün kullandığımız dil işleme sistemleri

Çevirici ve yorumlayıcı

Derleyicinin bileşenleri

Bileşen Görevi
Sözcüksel analizci Girdi dilindeki sözcükleri (token) alır, iç biçime çevirir.
Sembol tablosu Çevrilen metindeki varlıkların (değişken, sınıf, nesne adları) bilgisini tutar.
Sözdizimsel analizci Dilin tanımlı dilbilgisine göre sözdizimini denetler, sözdizim ağacını kurar.
Sözdizim ağacı Derlenen programı temsil eden iç yapı.
Anlamsal analizci Ağaç ve sembol tablosundan yararlanarak anlamsal doğruluğu denetler.
Kod üreteci Sözdizim ağacını “dolaşır” ve soyut makine kodu üretir.

Ek olarak ağacı analiz edip dönüştüren bir en iyileyici (optimizer), üretilen kodu daha verimli hâle getirebilir.

Boru ve filtre derleyici

Depo tabanlı dil işleme ortamı

Referans mimariler

Nedir?

Bir alandaki sistem mimarilerinin önemli özelliklerini yakalar. Bir uygulama mimarisinde olabilecek her şeyi içerir; gerçekte tek bir uygulamanın hepsini içermesi pek olası değildir.

Ne işe yarar?

Tasarım önerilerini değerlendirmek ve karşılaştırmak; insanlara o alandaki mimari özellikleri öğretmek. Mimari değerlendirmede karşılaştırma noktası olarak kullanılır.

Bugün: tek parça mı, mikroservis mi?

Özet: Dil İşleme Sistemleri

  • Dil işleme sistemleri bir çevirici ve soyut makineyi çalıştıran bir yorumlayıcıdan oluşur.
  • Derleyiciler toplu ortamda boru ve filtre, etkileşimli ortamlarda depo etrafında kurulur.
  • Referans mimariler tasarımları değerlendirmek ve öğretmek için kullanılır.

Dil işleme sistemlerinin genel modelini kullanarak, doğal dildeki komutları SQL gibi bir dildeki veritabanı sorgularına çeviren bir sistemin mimarisini tasarlayın.

Bölüm Özeti

Hangi soru, hangi kavram?

Soru Kavram Akılda kalacak
Mimari neden önemli? İşlevsel olmayan özellikler Performans, güvenlik, bakım kolaylığını asıl mimari belirler
Hangi kararları veririz? Sekiz temel soru Stil ve yapı seçimi işlevsel olmayan gereksinimlere göre yapılır
Mimariyi nasıl anlatırız? 4+1 ve kavramsal görünüm Tek çizim yetmez; iletişime yarayan görünümleri çizin
Hazır çözüm var mı? Mimari desenler MVC, katmanlı, depo, istemci-sunucu, boru ve filtre
Benzer sistemler nasıl kurulur? Uygulama mimarileri Hareket işleme, bilgi sistemleri, dil işleme

Akılda kalacaklar

  • Mimari, sistemin iskeletidir; sonradan değiştirmek pahalıdır, bu yüzden çevik süreçlerde de erkenden kurulur.
  • Her mimari karar bir ödünleşimdir; tek bir “en iyi” mimari yoktur.
  • Desenler, denenmiş çözümleri bedelleriyle birlikte aktarır; gerçek sistemler desenleri birleştirir.
  • Mimariyi belgelemenin amacı eksiksizlik değil, iletişimdir; kararların gerekçesi kayda geçmelidir.

Alıştırmalar

  1. Bir sistemin mimarisini tasarlamaya, gereksinim belirtimi tamamlanmadan neden başlamak zorunda kalabilirsiniz?
  2. İnternette müzik satan ve dağıtan bir sistem için bir mimari önerin. Önerinizin temelinde hangi mimari desenler var?
  3. Bir enerji şirketinin binalar, araçlar ve ekipman gibi varlıklarını izleyen, sahadaki personelin mobil cihazlarla güncelleyebildiği ve şirketin mevcut varlık veritabanlarını birleştiren bir bilgi sistemi için katmanlı bir mimari tasarlayın.

Alıştırmalar (devam)

  1. Doğal dildeki komutları kabul edip SQL gibi bir dildeki veritabanı sorgularına çeviren bir sistemin mimarisini, dil işleme sistemlerinin genel modelini kullanarak tasarlayın.
  2. Müşteriyle bağımsız çalışıp sistem mimarisini tasarlayan ayrı bir “yazılım mimarı” mesleği olmalı mı? Sistemi başka bir şirket gerçekleştirecekse böyle bir mesleği kurmanın zorlukları neler olur?