Yazılım geliştirmede yapılar: mimari modeller

Saberie

Active member


  1. Yazılım geliştirmede yapılar: mimari modeller

Mimari modeller, bir yazılım sisteminin temel yapısını tanımlar ve genellikle tasarım modellerine dayanır. “Pattern-Oriented Software Architecture” serisindeki beş kitap, mimari örüntüler konusunda değerli bilgiler ve ipuçları sağlar.







Rainer Grimm, uzun yıllardır yazılım mimarı, ekip lideri ve eğitim yöneticisi olarak çalışmaktadır. C++, Python ve Haskell programlama dilleri üzerine makaleler yazmaktan hoşlanır, aynı zamanda sık sık uzmanlık konferanslarında konuşmaktan da keyif alır. Modernes C++ blogunda yoğun bir şekilde C++ tutkusundan bahsediyor.













Bir sınıflandırmaya genel bakışla başlayalım: Mimari kalıplar, tasarım kalıpları ve deyimler nasıl farklılık gösterir?

Mimari modeller, tasarım modelleri ve deyimler


Mimari model, tasarım modeli ve dil arasındaki temel fark, kapsamlarına ve soyutlama düzeylerine göre yapısal sınıflandırmada yatmaktadır:

  • mimari model tüm yazılım sisteminin temel yapısını tanımlar. Genellikle tasarım modellerine dayanırlar.
  • tasarım desenleri bileşenlerin etkileşimini tanımlar ve alt sistemlere odaklanır.
  • A deyim bir mimarinin veya tasarım modelinin somut bir programlama dilinde uygulanmasıdır. C++’daki en popüler deyimlerden biri Resource Acquisition Is Initialization’dır (RAII). Konteynerler, akıllı işaretçiler ve asma kilitlerle temsil edilirler.
Mimari kalıplar, tasarım kalıpları ve deyimler hakkındaki düşüncelerimi özetleyeyim:


  • Yapısal kategoriler soyuttan somuta kadar değişir. Deyimler en somut olanlardır.
  • Makro düzeyde (mimari desenler), mikro düzeyde (tasarım desenleri) ve programlama dilinde (deyimler) çalışırlar.
  • Mimari kalıplar sisteme, tasarım kalıpları alt sistemlere ve deyimler programlama diline odaklanır.
POSA – Model Odaklı Yazılım Mimarisi


Beş bölümden oluşan Model Odaklı Yazılım Mimarisi (POSA) kitap serisi, mimari modeller hakkında değerli bir kaynaktır:

  • Model Odaklı Yazılım Mimarisi, Cilt 1, Frank Buschmann, Regine Meunier, Hans Rohnert, Peter Sommerlad ve Michael Stal (POSA 1)
  • Model Yönelimli Yazılım Mimarisi, Cilt 2: Ağa Bağlı ve Eşzamanlı Nesneler için Modeller, Douglas C. Schmidt, Michael Stal, Hans Rohnert ve Frank Buschmann (POSA 2)
  • Model Odaklı Yazılım Mimarisi, Cilt 3: Kaynak Yönetimi Modelleri, Michael Kirchner ve Prashant Jain (POSA 3)
  • Model Odaklı Yazılım Mimarisi, Cilt 4: Dağıtılmış Programlama için Bir Model Dil, Frank Buschmann, Kevlin Henney ve Douglas C. Schmidt (POSA 4)
  • Model Odaklı Yazılım Mimarisi, Cilt 5: Modeller ve Model Dili, Frank Buschmann, Kevlin Henney ve Douglas C. Schmidt (POSA 5)
Bu makalenin bir parçası olarak, en sık kullanılan yedi mimari modeli kompakt bir biçimde sunacağım: Katmanlar, Borular ve Filtreler, Aracı, Model Görünümü Denetleyici (MVC), Reactor, Active Object ve Monitor Object.

POSA 1, bir ilk sınıflandırma sağlar.

Çamurdan (orijinal) yapıya


Aşağıdaki modeller, genel bir sistem etkinliğinin işbirliği yapan alt sistemlere kontrollü bir şekilde ayrışmasına izin verir.

  • katmanlı mimari: Bir aktiviteyi seviyelere bölün. Her seviyenin belirli bir sorumluluğu vardır ve bir üst seviyeye hizmet sağlar.
  • Borular ve filtreler: Karmaşık işlemleri gerçekleştirmek için tasarlanmış bir görevi, yeniden kullanılabilecek bir dizi ayrı öğeye ayırır. İşlemeyi gerçekleştiren iş öğeleri bağımsız olarak konuşlandırılıp ölçeklendirilebildiğinden, bu performansı, ölçeklenebilirliği ve yeniden kullanılabilirliği iyileştirebilir.
Dağıtılmış sistemler


Aracı modeli, bileşenleri farklı işlemlerde veya adres alanlarında bulunan sistemler oluşturmak için kullanılabilir.

  • komisyoncu: Uzak hizmet çağrılarıyla etkileşime giren dağıtılmış yazılım sistemlerini yapılandırır. İletişimleri, sonuçlarını ve istisnaları koordine etmekten sorumludur.
Etkileşimli sistemler


İnsan-bilgisayar etkileşimi ile bir sistem oluşturun.

  • Model Görünümü Denetleyicisi (MVC): Bir kullanıcı arabiriminin program mantığını tek tek model, görünüm ve denetleyici bileşenlerine ayırır. Model, uygulama verilerini ve kurallarını yönetir. Görünüm, verileri işler ve denetleyici, kullanıcıyla etkileşime girer.
POSA 2’de ek sınıflandırmalar eklenmiştir:

Çoğullamayı çözme ve olay iletme


Ağa bağlı ve dağıtılmış sistemlerde olayları başlatma, alma, çoğullamayı çözme ve gönderme.

  • reaktör: Aynı anda birden çok istemci isteğini kabul edebilen ve bunları farklı hizmet sağlayıcılara dağıtabilen olay güdümlü bir uygulama.
Yarışma modelleri


Bileşenlerin, alt sistemlerin ve uygulamaların eşzamanlı mimari ve tasarım problemlerini çözer.

  • aktif nesne: Yöntem yürütmeyi yöntem çağırmadan ayırır.
  • nesneyi izle: Bir seferde yalnızca bir üye işlevin yürütülebilmesi için bir nesneye erişimi senkronize edin.
Sıradaki ne?


POSA kitaplarına ve içinde yer alan maketlere bu ilk genel bakışın ardından, bir sonraki yazımda mimari maket katmanlarını daha detaylı bir şekilde sunacağım.


(harita)



Haberin Sonu
 
Üst