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
sorun
(Resim: Chunte7, CC BY-SA 3.0, Wikimedia Commons üzerinden)
Client
Ö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.
Python'un C/C ++ 'da genişlemesi aşağıdaki adımlardan oluşur:
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
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!
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
- Katmanlı sistemi yapılandırın,
- Üst düzey hizmetler, daha düşük seviyelerin hizmetlerine dayanmaktadır.

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

Client
- Üst seviyeyi alın
- kapsül için özel rol ve sorumluluk Layer J,
- hizmetlerini kullanarak Layer J-1 onun
- Sadece olabilir Layer J-1 erişim.
Ö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'un C/C ++ 'da genişlemesi aşağıdaki adımlardan oluşur:
- Python değerlerini c/c ++ 'daki dönüştürür,
- C/C ++ işlevselliğini gerçekleştirmek için dönüştürülen değerleri kullanın
- Sonuçları C/C ++ 'dan Python'a dönüştürün.
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ı
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!