Yazılım mimarisindeki modeller: seviye modeli

Adanali

Active member
Yazılım mimarisindeki modeller: seviye modeli


  1. Yazılım mimarisindeki modeller: seviye modeli

Modeller, modern yazılımın geliştirilmesinde ve yazılımın mimarisinde önemli bir soyutlamadır. Açıkça tanımlanmış terminoloji, temiz dokümantasyon ve öğrenme en iyisinden sunarlar. Katman modeli bir aktiviteyi yatay katmanlara böler. Her seviyenin belirli bir sorumluluğu vardır ve daha yüksek sınıf için bir hizmet sağlar.










Rainer Grimm yıllardır yazılım mimarı, ekip ve eğitim müdürü olarak çalıştı. C ++ programlama dilleri, Python ve Haskell hakkında makaleler yazmayı seviyor, ancak uzman konferanslarla konuşmayı da seviyor. Modern C ++ blogunda, C ++ tutkusuyla yoğun bir şekilde ilgileniyor.













Seviyedeki katman modeli veya mimari, “Modele yönelik yazılım mimarisi, Cilt 1” kitabına göre yapıyı kaosa getirmeye yardımcı olan mimari bir modeldir.

Olarak da bilinir

Kapsam


  • Bölünmesi gereken büyük sistemler


sorun

  • Farklı seviyelerde işlem gerçekleştiren bir sistem,
  • Daha yüksek seviyeler daha düşük seviyeler kullanır
Çözüm

  • Katmanlı sistemi yapılandırın,
  • Üst düzey hizmetler, daha düşük seviyelerin hizmetlerine dayanmaktadır.
yapı










(Resim: Chunte7, CC BY-SA 3.0, Wikimedia Commons üzerinden)









Client

  • Üst seviyeyi alın
Layer J

  • kapsül için özel rol ve sorumluluk Layer J,
  • hizmetlerini kullanarak Layer J-1 onun
  • Sadece olabilir Layer J-1 erişim.
Tanımlanmamış olmasına rağmen, tabaka mimarilerinin çoğu üç veya dört katmandan oluşur. Her katman diğerlerinden bağımsızdır. Saf versiyonda, bir katman yalnızca aşağıdakilere erişebilir. Bir seviye üstünüze erişemez, çünkü bu daha fazla bağımlılık yaratır ve kontrol yapısını karmaşıklaştırır. Buna ek olarak, bir üstünlüğe bağlı bir seviye başka bir uygulamada kolayca kullanılamaz. Bir seviye genellikle cephe modelini uygulayarak işlevlerini sağlar. Cephe modeli karmaşık bir sisteme basitleştirilmiş bir arayüz sunar.

Örnekler


Seviye modeli, yazılım geliştirmenin başlangıcından itibaren sık kullanılmıştır. Sonuç olarak, birçok uygulama var:

OSI modeli ve TCP/IP modeli

Açık Sistemlerin Bağlantı Modeli (OSI modeli), “” [ISO] Sistemlerin arası konstrüksiyonu için standart geliştirme '.[2] OSI referans modelinde, bir hesaplama sistemi arasındaki iletişim yedi farklı soyutlama seviyesine ayrılır: fiziksel, veri bağlantısı, ağ, taşıma, oturum, sunum ve uygulama. ((( )))









Aynı şey basitleştirilmiş TCP/IP modeli için de geçerlidir: Yaygın olarak TCP/IP olarak bilinen İnternet Protokolü Suite, internette kullanılan iletişim protokollerini ve benzer bilgisayar ağlarını işlevsel kriterlere göre düzenlemek için bir çerçevedir. İletim Kontrol Protokolü'ndeki (TCP) temel protokoller, Kullanıcı Datagram (UDP) protokolü ve İnternet Protokolü (IP). (https://en.wikipedia.org/wiki/internet_protocol_suite)

İnşaat Sistemleri

Birleştirilmiş sistemler için yazılım gelişirse, genellikle C ++ 'da farklı soyutlama seviyeleri kullanırsınız.

  • Genellikle kart destek paketi ile başlarsınız (ör.
  • Donanım soyutlama seviyesi (HAL), donanım ve dahil edilen sistemde çalışan yazılım arasında soyutlama seviyesidir. İşletim sisteminden donanımdaki farklılıkları gizleme görevine sahiptir.
Python'u C/C ++ ile genişletin/dahil edin

Python'un C/C ++ 'da genişlemesi aşağıdaki adımlardan oluşur:

  1. Python değerlerini c/c ++ 'daki dönüştürür,
  2. C/C ++ işlevselliğini gerçekleştirmek için dönüştürülen değerleri kullanın
  3. Sonuçları C/C ++ 'dan Python'a dönüştürün.
Ayar da ters sırada aynı şeyi yapar. Python ve seviye C bizi bekliyor? İşte basitleştirilmiş strateji.

Python'un her türlü veri türü int mirasçıları object.









Veri türündeki C-Counterpart object Bu C yapısı PyObject. C nesneye yönelik değildir. PyObject Python nesnelerinin hafızası için bir tür başlangıç noktasıdır. Uygulama GitHub: Object.C'de mevcuttur. PyObject Esasen bir referans ölçer ve karşılık gelen türde bir işaretçi vardır.

Python türü için bir yöntem çağırırsanız, bu çağrı yapısına gider. PyObjectİç object.c Tanımlanmıştır. İçinde object.c C fonksiyonunu belirleyin Py_TYPE Nesnenin türü ve karşılık gelen işlevi C seviyesine çağırır. Bu, karşılık gelen yöntem türev tipte uygulanırsa, buna çağrıldığı anlamına gelir. Bu durumda, standart uygulaması PyObject Bu mümkünse aradı.

Avantajlar ve dezavantajlar


Avantajlar

Her katmanın belirli bir rolü ve bazı görevleri vardır. Bir arayüze kıyasla üst sınıf hizmetlerini sunar. Üst katman sadece alt seviye arayüzüne bağlıdır. Sonuç olarak, alt seviye kolayca değiştirilebilir.

Her seviye hizmetlerini kapsülledi. Bu, her seviyenin işlevselliğini test etmeyi kolaylaştırır. Birim testler olarak ince test katmanlar içinde yapılmalıdır.

Farklı seviyelerin ayrılması (endişe ayrımı) sayesinde, her seviye yalıtımda uygulanabilir. Her şeyden önce, seviyeler arasındaki arayüz tanımlanmalıdır.

Dezavantajlar

  • Katmanların ayrıntıjı
Katmanların doğru tanecikliğini bulmak zor olabilir. Çok fazla seviye, sadece minimum sorumluluğa sahip katmanlara yol açabilir. Mimarinin anlaşılması da zor olabilir. Çok az katman, katmanları değiştirmeyi, test etmeyi ve tek başına geliştirmeyi oldukça karmaşık hale getirir.

Bir müşteri çağrısı, en düşük seviyede biten bir dizi çağrıyı tetikler. Bu çağrı dizisinin uygulama performansı üzerinde olumsuz bir etkisi olabilir. Bu özellikle katmanlar uzak olduğunda doğrudur.

Sırada ne var?


Farklı adımlarda verileri işleyen bir sisteminiz varsa ve her adımın bağımsız olarak geliştirilmesi gerekiyorsa, boru ve filtre modeli oldukça pratiktir. Bunun hakkında bir sonraki makalemde yazacağım.


(RME)




Ne yazık ki, bu bağlantı artık geçerli değil.

Boşa harcanan eşyalara olan bağlantılar, 7 günlük daha büyükse veya çok sık çağrılmışsa gerçekleşmez.


Bu makaleyi okumak için bir Haberler+ paketine ihtiyacınız var. Şimdi yükümlülük olmadan bir hafta deneyin – yükümlülük olmadan!
 
Üst