Etki alanı modelleme metodolojileri. Nesne yönelimli programlama teknolojisi için uygulama araçları

  • 21.06.2019

Nesneye Yönelik Modelleme

Bir bilgisayarda çizimler oluştururken çoğu modern grafik sisteminde genel olarak kabul edilen felsefe, en basit geometrik ilkelleri kullanmaktır: noktalar, çizgiler ve yaylar. Listelenen ilkellerin çeşitli kombinasyonları yardımıyla, geometrik özelliklerine belirli değerler atayarak (yani karakteristik noktaların, uzunlukların, yarıçapların vb. koordinatları) ve programa gömülü düzenleme komutlarını kullanarak, kullanıcı keyfi olarak karmaşık bir görüntü oluşturabilir. Hemen hemen her grafik sisteminde, örneğin Bézier eğrileri veya NURBS eğrileri gibi çizim için çok daha fazla komut olduğunu iddia edebilirsiniz. Bununla birlikte, buna aldanmayın: donanım düzeyinde, tüm bu eğriler ve spline'lar hala gerçek eğriye yaklaşan (yani eğrinin gerçek konumuna mümkün olduğunca yakın olan) sıralı bir dizi segmente çevrilir. . 3B katı modellemede yaklaşık olarak aynı yaklaşım: çeşitli temel 3B şekillerin (küp, küre, koni, torus vb.) ardışık kombinasyonları ve ayrıca temel şekillendirme işlemleri (ekstrüzyon, döndürme, Boole işlemi) kullanılarak karmaşık bir hacimsel nesne oluşturulur. , vb.) AD.).

Çoğu durumda, bu yaklaşım kullanıcılar için oldukça uygundur, çünkü hemen hemen her şekilde görüntüler ve modeller oluşturmanıza olanak tanır. Ancak bu, grafik sisteminin işlevselliğine hakim olmak için harcanan zamanın yanı sıra bu tür her bir çizimi veya üç boyutlu modeli oluşturmak için harcanan zamanın pahasına gelir. Aslında ücret o kadar büyük değil, ancak yakında bu yaklaşım kullanıcılara uymayı bıraktı. Bunun nedeni, öncelikle tasarım yapılırken kullanıcının gerçek (henüz mevcut olmasa da) maddi bir nesnenin modelini veya görüntüsünü oluşturduğu gerçeği göz önünde bulundurulmalıdır. Gerçek dünyanın bu tür herhangi bir nesnesi, her zaman geleneksel bir çizimin veya bir 3B modelin görüntüsü aracılığıyla aktarılamayan iyi tanımlanmış özelliklerle donatılmıştır. Araçların geliştirilmesiyle böyle bir olasılığın ve buna bağlı olarak tasarım gereksinimlerinin gereksiz olmaktan uzak olacağı belirtilmelidir. Bireysel geliştiricileri biraz farklı bir yol izlemeye zorlayan itici güç olarak hizmet eden şey buydu, bunun sonucunda nesne yaklaşımı icat edildi.

Nesne yönelimli modellemede, kullanıcı en basit geometrik ilkellerle değil, belirli nesnelerle çalışır. Örneğin, bir binanın kat planını oluştururken, şimdi noktalar, çizgiler ve yaylar yerine duvarlar, pencereler, kapılar, ayrı odalar vb. veya varsayılan olarak atanır) bir nesne oluşturulurken ve çizim görüntüsü veya 3D modelin geometrisi ile birlikte belge dosyasında saklanır. Pencereler için bu özellikler, pencere şeklinin genel boyutlarını ve tanımını (dikdörtgen, yarım daire biçimli, kemer biçimli veya başka herhangi bir şekil), camın optik özelliklerini ve çerçevenin malzeme ve dokusunu içerebilir. Duvarlar için - duvarın kalınlığı, uzunluğu ve yüksekliği, duvarın malzemesi, dış ve iç yüzeylerin dokusu, verilen duvarda pencere veya kapı olduğu gerçeği ve bunlara karşılık gelen nesnelere yapılan referanslar pencereler veya kapılar.

Üç boyutlu modellemede, sistemin kullanıcıya seçim yapması için sunduğu bireysel nesnelerden bir 3B sahne de oluşturulur. Örneğin, belirli bir programın oturma odalarının veya ticari binaların tasarımını simüle etmesi amaçlanıyorsa, böyle bir programın veritabanı, çeşitli yumuşak veya ofis mobilyaları, dolaplar, masalar vb. ile temsil edilebilir. Her üç boyutlu iç nesne ayrıca belirli sınırlar içinde değiştirilmesine izin veren belirli özelliklere sahiptir (renk değiştirme, konfigürasyon, malzeme seçme ve diğer özellikler).

Bir nesne yaklaşımını kullanmanın birçok faydası vardır.

Plan ve çizimler oluşturma hızı, büyüklük sırasına göre artar.

Çizim veya model daha bilgilendirici hale gelir: bir nesneyi seçerken (veya düzenlerken) özelliklerini kolayca tanımlayabilirsiniz (değiştirebilirsiniz) ve bu özelliklerin çoğu kural olarak normal bir çizim veya modelde görüntülenemez.

Nesnelerin veri tabanı bazen sadece keyfi, önceden hazırlanmış değil, aynı zamanda oldukça gerçek nesnelerle (örneğin, çeşitli şirketlerden gerçek hayattaki mobilya parçaları, belirli üreticilerin malzemeleri, vb.) doldurulur. Bu gibi durumlarda, program, projenin tamamlanmasından hemen sonra gerekli malzemeleri ve diğer nesneleri iletişim kurabileceğiniz ve sipariş edebileceğiniz tedarikçilerin ve üreticilerin adreslerini içermelidir.

Nesneleri değiştirmek ve değiştirmek kolaydır, program belirli özelliklerin değerlerinin ayarlanmasının doğruluğunu izler (örneğin, yerleştirildiği duvarın boyutlarından daha büyük bir pencere oluşturamazsınız). Bu, çalışmayı kolaylaştırır ve kasıtsız hataları önler.

Oluşturulan model (çizim), projede gezinmeyi, tek tek parçalarını aramayı ve düzenlemeyi kolaylaştıran hiyerarşik bir ağaç (Şekil 1.1) şeklinde sunulabilir.

Pirinç. 1.1. Nesne yaklaşımına dayalı bir yapı planının hiyerarşik temsiline bir örnek

Not

Katmanlama, bilgisayar destekli tasarımda yeni olmaktan uzaktır. Bununla birlikte, bu durumda, ağacın düğümleri, kural olarak, bilgi vermeyen ve herhangi bir anlamsal yük taşımayan, grafik görüntünün ayrı parçaları değil, belirli bir özelliğe göre bölünmüş belirli nesnelerdir.

Grafik görüntüler oluştururken nesne yönelimli yaklaşımın ana, ancak hiç de belirgin olmayan avantajlarından biri, hızlı ve tamamen otomatik olarak üç boyutlu bir görüntüye geçme yeteneğidir (başka bir deyişle, otomatik olarak üç boyutlu bir görüntü oluşturma yeteneği). yansıtılan nesnenin modeli). Kullanıcının çalıştırabileceği nesne kümesinin her durumda sınırlı olduğu gerçeğini ve ayrıca her nesnenin özelliklerine, şeklinin tam bir resmini elde etmek için yeterli bilginin konabileceği gerçeğini göz önünde bulundurarak, grafik görüntüsünün "yükseltilmesini", kullanıcının herhangi bir çabası olmadan 3D olarak uygulamak mümkün hale gelir (bu tam olarak ArCon sisteminde uygulanan yaklaşımdır). Sonuç olarak, kullanıcı neredeyse hiç çaba harcamadan projesinin üç boyutlu bir temsilini neredeyse anında elde eder. Ortaya çıkan üç boyutlu model daha sonra görselleştirilebilir ve gerçekçi bir resim elde edilebilir veya daha fazla düzenleme veya mühendislik hesaplamaları için başka bir sisteme aktarılabilir. Ayrıca, bu durumda, kullanıcının herhangi bir özel 3D modelleme becerisine ihtiyacı yoktur.

Not

Bu özelliğe daha fazla dikkat edilmelidir, çünkü çizimlerden üç boyutlu bir modelin oluşturulması, tüm mühendislik grafik sistemleri geliştiricileri için uzun süredir tökezleyen bir blok olmuştur. Aslında, pratikte, zıt ilke uygulanır - bitmiş bir modelden bir çizimin (aslında bir 3B modelin projeksiyonu) oluşturulması. Bazı iyi bilinen CAD sistemlerinde (özellikle SolidWorks'te) zıt eylemi (iki boyutlu bir görüntüden 3B'ye geçiş) uygulama girişimi gerçekleşti, ancak bunu başarılı olarak adlandırmak zor. İki boyutlu görüntüye, beyan edilen işlevselliğin her yerde uygulanmasına izin vermeyen çok katı kısıtlamalar uygulanır. Nesne yaklaşımı, elbette belirli nesnelerin özelliklerini dikkate alarak eksiksiz bir üç boyutlu model elde etmeyi mümkün kılar.

Yukarıda sıralanan birçok avantaja rağmen, nesne yönelimli yaklaşımın dezavantajları da vardır.

Her şeyden önce (ve bu açıktır) sınırlı sayıda hazır nesne ve bunların keyfi olarak değiştirilmesinin imkansızlığıdır. Bu, programın esnekliğini ortadan kaldırır, bu da nesne tasarımı ilkesinin yalnızca aşağıdaki durumlarda uygulanabileceği anlamına gelir. uzmanlaşmış sistemler (örneğin, ArCon, Professional Home Design Platinum, vb.). Bu tür sistemlerin geliştiricilerinin, yazılım ürününün sorunları otomatikleştirmesi ve çözmesi ve ayrıca önerilen nesnelerin özelliklerini özelleştirme yeteneğini en üst düzeye çıkarması amaçlanan endüstrinin özelliklerini kapsamlı bir şekilde hesaba katması gerekir.

Burada sistemin maliyeti ve işlevselliği sorunu ön plana çıkıyor. Bu veya bu özel programın amaçlarınıza uygun olduğundan %100 eminseniz, satın alırken hiç şüpheniz olmasın. Aksi takdirde, atanan görevleri çözmenin mümkün olup olmayacağından emin olmak için işlevselliği daha ayrıntılı incelemeniz gerekir veya en kötü durumda, "normal" ve pahalı bir CAD editörüne para harcamanız gerekecektir.

Nesneye yönelik grafik mühendisliği sistemlerinin ikinci dezavantajı, diğer grafik sistemleriyle entegrasyon sorunudur. Veri iletiminde herhangi bir sorundan bahsetmiyoruz - hem 2D hem de 3D bilgi alışverişi uzun zamandır herhangi bir ticari yazılım için standart olarak kabul edildi. Sorunun özü, tam olarak nesnelerin özelliklerinin değerlerinin yanı sıra nesneler arasında kurulan tüm hiyerarşik bağlantıların kaybında yatmaktadır. Nedeni açıktır: Projenin ihraç edilmesi planlanan sistem nesne yaklaşımını desteklemeyebilir veya kendi nesneleri için bundan farklı bir özellik listesine sahip olabilir. Bu nedenle, ArCon programından bir proje kaydedilirken, yalnızca grafik görüntüsü başka bir formata aktarılır (ArCon nesnesine değil).

Not

İleriye baktığımda, ArCon + 2005 projelerinin Dosya kullanılarak çeşitli 2D ve 3D formatlarda dışa aktarılabileceğini söyleyeceğim. Formatta dışa aktarın (Şekil 1.2). Programın VRML, DXF, 3ds Max sistem formatı gibi iyi bilinen veri alışverişi formatlarını ve bir projeyi yürütülebilir bir EXE dosyasına kaydetme özelliğini desteklediğini unutmamak önemlidir (aşağıda daha fazlası).

Pirinç. 1.2. ArCon'dan projeleri dışa aktarmak için desteklenen biçimler

Diğer sistemlerden veri içe aktarıldığında durum daha da kötüdür. Belirli bir biçime indirgenmezlerse, bunları nesneye özel sisteme "almak" imkansızdır. Örneğin, bir çizimi AutoCAD'den ArCon'a aktarırken yalnızca bir görüntü yüklenebilir. Aynı zamanda, ArCon, açık görüntüde pencerelerin, kapıların, duvarların vb. Nerede olduğunu bağımsız olarak tanıyamaz ve hatta dahası, bireysel nesnelere oldukça makul özellikler atayamaz. Bu, çizimin ArCon'da daha fazla düzenlenmesinin ve ayrıca 3D olarak "yükseltilmesinin" imkansız olduğu anlamına gelir. İçe aktarma özünde anlamsız hale gelir, bu nedenle nesne yönelimli tasarım sistemlerinin büyük çoğunluğunun grafik verilerini dışarıdan okumak için işlevleri yoktur.

Ancak bu kadar önemli eksikliklere rağmen iş kolaylığı ve en önemlisi projelerin hızı ve görünürlüğü ön plana çıkıyor. Sonuç olarak, son yıllarda, bu kitapta tartışılan ArCon programı gibi sistemler, çeşitli tasarım problemlerinin çözümünde geniş uygulama alanı bulmuştur.

Yazılım geliştirmede modellemeye yönelik çeşitli yaklaşımlar vardır. Bunlardan en önemlileri algoritmik (yapısal) ve nesne yönelimlidir.

Yapılandırılmış yöntem, yazılım geliştirmeye yönelik geleneksel yaklaşımı temsil eder. Ana yapı taşı bir prosedür veya işlevdir ve öncelikle kontrolün aktarılması ve büyük algoritmaların daha küçük algoritmalara ayrıştırılması konularına dikkat edilir.

Yazılım geliştirmeye en modern yaklaşım nesne yönelimlidir. Burada bir nesne veya sınıf ana yapı taşıdır. En genel anlamda, bir nesne, genellikle bir etki alanı veya çözümün sözlüğünden çıkarılan bir varlıktır ve bir sınıf, aynı türdeki bir dizi nesnenin açıklamasıdır. Her nesnenin kimliği (adlandırılabilir veya diğer nesnelerden bir şekilde farklı şekilde ayırt edilebilir), durumu (genellikle bazı veriler bir nesneyle ilişkilendirilir) ve davranışı (onunla bir şeyler yapabilirsiniz veya diğer nesnelerle bir şeyler yapabilir) vardır.

Örnek olarak, bir kullanıcı arabirimi, ara katman yazılımı ve bir veritabanından oluşan üç katmanlı bir faturalandırma sistemi mimarisini düşünün. Arayüz belirli nesneleri içerir - düğmeler, menüler ve iletişim kutuları. Veritabanı ayrıca belirli nesnelerden, yani etki alanı varlıklarını temsil eden tablolardan oluşur: müşteriler, ürünler ve siparişler. Ara yazılım, işlemler ve iş kuralları gibi nesnelerin yanı sıra etki alanı varlıklarının (müşteriler, ürünler ve siparişler) daha soyut temsillerini içerir.

Nesne yönelimli bir dünya görüşünü benimsersek, bir dizi sorunun yanıtlanması gerekir. İyi bir nesne yönelimli mimari nasıl bir yapıya sahip olmalıdır? Bir proje üzerinde çalışırken hangi eserler oluşturulmalıdır? Onları kim yaratmalı? Ve son olarak, sonuç nasıl değerlendirilir?

Nesneye yönelik sistemleri görselleştirmek, belirtmek, oluşturmak ve belgelemek UML'nin amacıdır.

Nesne yönelimli modelleme dilleri, 70'lerin ortasından 80'lerin sonlarına kadar, araştırmacıların, nesne yönelimli programlama dillerinin yeni yeteneklerini ve giderek daha karmaşık uygulamaların gereksinimlerini dikkate alma ihtiyacı ile karşı karşıya kalmasıyla ortaya çıktı. analiz ve tasarıma çeşitli alternatif yaklaşımlar geliştirmeye başlamak.

Çevreleyen dünyayı ilgili sınıfların örnekleri olan nesneler biçiminde temsil etme paradigmasına dayanan yazılım sistemlerinin geliştirme teknolojisine nesne yönelimli analiz ve tasarım (OOAP) - OOA & D (Nesne) denir. -Yönelimli Analiz / Tasarım). Bu teknoloji çerçevesinde, UML, yalnızca yazılımın değil, aynı zamanda daha geniş sistem sınıflarının ve iş uygulamalarının nesne yönelimli kavramları kullanarak modelleme sonuçlarının grafiksel temsilinin bir aracıdır. Aynı zamanda, kavramsal ve fiziksel seviyelerin modelleri için temel kavramlar arasındaki ilişki açıkça sağlanır, özellikle karmaşık çok amaçlı sistemler için önemli olan modellerin ölçeklenebilirliği sağlanır.

Dil geliştiricilerin kendileri bunu şöyle tanımlar: "Yazılım bileşenlerinin, iş süreçlerinin ve diğer sistemlerin belirtilmesi, görselleştirilmesi, tasarımı ve belgelenmesi için geliştirilmiş genel amaçlı bir görsel modelleme dili".

OOP teknolojisinde, veri ve algoritma arasındaki ilişki daha düzenlidir: ilk olarak, bir sınıf (bu teknolojinin temel konsepti) verileri (yapılandırılmış değişken) ve yöntemleri (fonksiyonları) birleştirir. İkincisi, işlevler ve veriler arasındaki etkileşim şeması temelde farklıdır. Bir nesne üzerinde çağrılan bir yöntem (işlev), genellikle doğrudan başka bir işlevi çağırmaz. Başlamak için, başka bir nesneye erişimi olmalıdır (oluştur, bir işaretçi al, mevcut nesnede dahili nesneyi kullan, vb.), bundan sonra zaten bunun için bilinen yöntemlerden birini çağırabilir. Böylece programın yapısı, farklı sınıflardaki nesnelerin birbirleriyle etkileşimi ile belirlenir. Kural olarak, bir sınıf hiyerarşisi vardır ve OOP teknolojisi aksi takdirde "sınıftan sınıfa" programlama olarak adlandırılabilir.

Herhangi bir programlama dört ilkeden birine göre gerçekleştirilir:

Modülerlik ilkesi

· "Genelden özele" ilkesi

Adım adım prensibi

yapılandırma ilkesi

Modüler programlama. Modülerlik ilkesi, bir dizi modül (fonksiyon) biçiminde bir programın geliştirilmesi için bir gereklilik olarak formüle edilmiştir. Bu durumda, modüllere ayırma doğası gereği mekanik olmamalı, programın mantığından hareket etmelidir:

1. modülün boyutu sınırlı olmalıdır;

2. modül mantıksal olarak tutarlı ve eksiksiz bir eylem gerçekleştirmelidir;

3. modül evrensel olmalıdır, yani mümkün olduğu kadar parametreli olmalıdır: gerçekleştirilen eylemin tüm değişken özellikleri parametreler aracılığıyla aktarılmalıdır;

4. Girdi parametrelerinin ve modülün sonucunun global değişkenler aracılığıyla değil, formel parametreler ve fonksiyonun sonucu aracılığıyla aktarılması arzu edilir.

Programın bir başka, ancak zaten fiziksel birimi, bir dizi işlev ve veri türü ve değişken tanımını içeren bir metin dosyasıdır. Dosya düzeyinde modüler programlama, eksiksiz bir program kodunu birden çok dosyaya bölme yeteneğidir. Modülerlik ilkesi sadece programlar için değil, aynı zamanda veriler için de geçerlidir: mantıksal veya fiziksel bir nesneyi karakterize eden herhangi bir parametre seti, programda tek bir veri yapısı (yapılandırılmış değişken) olarak gösterilmelidir.

Modülerlik ilkesinin somutlaşmışı, standart fonksiyonların kütüphanesidir. Genellikle ortak veri yapılarını kullanan eksiksiz bir parametreli eylemler seti sağlar. Kitaplıklar, bağımsız olarak çevrilmiş ve kitaplık dizinine yerleştirilmiş benzer programlardır.

Yukarıdan aşağıya programlama. Bir programın yukarıdan aşağıya tasarımı, geliştirmenin, bir programın bazı eylemlerinin doğal bir dilde, "genelden özele" genel gayri resmi formülasyonundan ilerlediği anlamına gelir: onu programlama dilinin üç resmi yapısından biriyle değiştirmek:

· Basit bir eylem dizisi;

· Seçim veya operatör yapıları;

· Tekrar veya döngü yapıları.

Algoritmanın kaydında bu, dış (kapalı) yapıdan iç (iç içe) yapıya doğru harekete karşılık gelir. Bu yapılar ayrıca kendi kısımlarında eylemlerin resmi olmayan tanımlarını da içerebilir, yani yukarıdan aşağıya tasarım doğası gereği adım adımdır. Bu yaklaşımın ana özelliklerini not edelim:

· Başlangıçta program, doğal dilde bir tür gayri resmi eylem biçiminde formüle edilmiştir;

· İlk olarak, giriş parametreleri ve eylemin sonucu belirlenir;

· Bir sonraki detaylandırma adımı, önceki adımlarda elde edilen programın yapısını değiştirmez;

Tasarım sürecinde farklı dallarda aynı eylemler elde edilirse, bu, bu eylemi ayrı bir işlev olarak resmileştirme ihtiyacı anlamına gelir;

· Gerekli veri yapıları program detaylandırma ile eş zamanlı olarak tasarlanır.

Adım adım programlama. Yukarıdan aşağıya tasarım, doğası gereği adım adımdır, çünkü her seferinde bir sözlü formülasyonun tek bir dil yapısıyla değiştirilmesini içerir. Ancak bir program geliştirme sürecinde, sözlü formülasyonun kendisinin daha ayrıntılı olarak detaylandırılmasıyla ilgili başka adımlar olabilir.

Bu ilkenin ayrı ayrı vurgulanması, programı baştan sona detaylandırma cazibesini önleme ve algoritmanın ikincil değil ana ayrıntılarını vurgulama ve bunlara odaklanma yeteneğini geliştirme ihtiyacını gösterir.

Genel olarak, yukarıdan aşağıya adım adım program tasarımı "doğru" bir programı garanti etmez, ancak üst detaylandırma adımlarından birinde bir kilitlenme bulunduğunda geri dönmenize izin verir.

Yapılandırılmış programlama. Programın azalan adım adım detaylandırılmasıyla, işlem için gerekli veri yapıları ve değişkenler, resmi olmayan tanımlardan dil yapılarına geçiş olarak ortaya çıkar, yani algoritma ve veri detaylandırma süreçleri paralel ilerler. Ancak, bu öncelikle bireysel yerel değişkenler ve dahili parametreler için geçerlidir. En genel bakış açısından, bir nesne (bizim durumumuzda, veriler) onunla gerçekleştirilen eylemlere (bizim durumumuzda bir algoritma) göre her zaman birincildir. Bu nedenle, aslında, bir programda verilerin düzenlenme şekli, algoritma yapısını her şeyden daha fazla etkiler ve veri yapılarını tasarlama süreci, bunların işlenmesi için bir algoritma tasarlama sürecini geride bırakmalıdır.

Yapılandırılmış programlama, algoritma ve veri yapılarının modüler, yukarıdan aşağıya, adım adım tasarımıdır.

Programlamaya nesne yönelimli bir yaklaşım 3 ana bileşen içerir:

Nesneye yönelik analiz (OOA),

Nesneye yönelik tasarım (OOD),

· Nesneye yönelik programlama (OOP).

Herhangi bir mühendislik disiplininde tasarım, genellikle, belirli bir sorunu çözmenin yollarını bulmak ve eldeki görevin tamamlanmasını sağlamak için kullandığımız birleşik bir yaklaşımı ifade eder. Mühendislik tasarımı bağlamında tasarım amacı, bir sistemin oluşturulması olarak tanımlanır.

· Verilen (muhtemelen gayri resmi) işlevsel özellikleri karşılar;

· Ekipmanın getirdiği kısıtlamalarla tutarlıdır;

· Performans ve kaynak tüketimi için açık ve örtülü gereksinimleri karşılar;

· Ürün tasarımı için açık ve örtük kriterleri karşılar;

· Ek araçların dahil edilmesinin yanı sıra süre ve maliyet gibi geliştirme sürecinin kendisi için gereksinimleri karşılar.

Tasarım, çelişen gereksinimlerle ilgilidir. Ürünleri, gelecekteki sistemin yapısını anlamamıza, gereksinimleri dengelememize ve bir uygulama şeması çizmemize izin veren modellerdir.

Program, tasarlanan sistemin sayısal bir modelidir (Şekil 1.3.1.)

Pirinç. 1.3.1.

Model oluşturmanın önemi. Modelleme, büyük ölçüde ayrıştırma, soyutlama ve hiyerarşi ilkelerini uygulaması nedeniyle tüm mühendislik disiplinlerinde yaygındır. Her model, incelenen sistemin belirli bir bölümünü tanımlar ve biz de, az çok güvendiğimiz eski modeller temelinde yeni modeller oluştururuz. Modeller, başarısızlıklarımızı kontrol etmemizi sağlar. Sıradan ve olağandışı durumlarda her modelin davranışını değerlendirir ve ardından bir şey bizi tatmin etmezse uygun iyileştirmeler yaparız.

Yazılım tasarımının unsurları. Açıkça, yazılım mühendisini karmaşık bir yazılım sisteminin gereksinimlerinden bunların yerine getirilmesine kadar yönlendiren herkese uyan tek bir yöntem yoktur. Karmaşık bir yazılım sistemi tasarlamak, bir dizi reçeteyi körü körüne takip etmek değildir. Aksine, kademeli ve yinelemeli bir süreçtir. Ve yine de, tasarım metodolojisinin kullanımı, geliştirme sürecine belirli bir organizasyon getiriyor. Yazılım mühendisleri, üç kategoride sınıflandırabileceğimiz onlarca farklı teknik geliştirmiştir. Farklılıklara rağmen, bu yöntemlerin ortak bir yanı vardır. Özellikle, aşağıdakiler tarafından birleştirilirler:

· Semboller - her bir modeli tanımlayan dil;

· Süreç - bir model tasarlama kuralları;

· Araçlar - model oluşturma sürecini hızlandıran ve modellerin işleyiş yasalarının zaten somutlaştığı araçlar. Araçlar, geliştirme sürecinde hataları belirlemenize yardımcı olur.

İyi bir tasarım yöntemi, programcıya belirli bir derecede ifade özgürlüğü verirken sağlam bir teorik temele dayanır.

Nesneye Yönelik Modeller. Alanın kendisinde bulunan nesnelere odaklanan ve nesne yönelimli ayrıştırma denilen şeyi oluşturan modeller oluşturmak en faydalıdır.

Nesneye Yönelik Analiz ve Tasarım, mantıksal olarak nesneye yönelik ayrıştırmaya yol açan bir yöntemdir. Nesneye yönelik tasarım kullanılarak ekonomik olarak yazılan esnek programlar oluşturulur. Durum uzayının makul bir şekilde bölünmesiyle, programımızın doğruluğuna daha fazla güveniriz. Sonuç olarak, karmaşık yazılım sistemleri geliştirirken riski azaltıyoruz.

Model oluşturma, karmaşık sistemlerin tasarımında son derece önemli olduğundan, nesne yönelimli tasarım zengin bir model seçimi sunar (Şekil 1.3.2). Nesne yönelimli tasarım modelleri, sistemin hem sınıflarının hem de nesnelerinin hiyerarşisini yansıtır. Bu modeller, karmaşık bir sistem geliştirirken göz önünde bulundurulması gereken tüm kritik tasarım kararlarını kapsar ve bu nedenle, iyi organize edilmiş karmaşık sistemlerin beş özelliğinin tümüne sahip projeler oluşturmamız için bize ilham verir.


Pirinç. 1.3.2

OOP, sınıflar olarak adlandırılan bu verilerle toplu olarak çalışabilen veri ve prosedürlerin birleşimine dayanan bir programlama ideolojisidir.

OOP'nin özü, günlük yaşamda bilinen nesne modelinin kullanılmasıdır. Her nesnenin kendi özellikleri vardır ve onunla karakteristik eylemleri gerçekleştirebilirsiniz. Sınıf, bir nesne türüdür. Sınıf, özellikleri ve eylemleri tanımlar ve uygular. Anlayışımızdaki bir nesne, türü bir tür sınıf olacak bir değişken olacaktır. Özelliklerini bir sınıfın alanlarına göre ve bu sınıfın (nesnenin) bir örneği ile gerçekleştirilebilecek eylemleri yöntemlerle çağıracağız.

Bir sınıfın örnek uygulaması altında, TBook'un bir görünümünü ve bu tür değişkenlerle çalışmak için bir dizi işlevi tanımlamak için bir sınıf kullanan bir kitap kavramının uygulanmasını düşünün:

PagesCount: tamsayı;

işlev CompareWithBook (DiğerKitap: TBook): tamsayı;

prosedür ShowTitle;

yapıcı Oluştur (NewTitle, New

İnsan bilişsel yetenekleri sınırlıdır; ayrıştırma, soyutlama vurgulama ve hiyerarşileri kullanarak onları birbirinden ayırabiliriz.

Karmaşık sistemler, nesnelere veya süreçlere odaklanılarak keşfedilebilir; Dünyanın birbirleriyle etkileşim sürecinde sistemin davranışını belirleyen düzenli bir nesneler kümesi olarak görüldüğü nesne yönelimli ayrıştırmayı kullanmak için iyi nedenler vardır.

Nesneye yönelik analiz ve tasarım - nesne ayrıştırmasını kullanan bir yöntem; nesne yönelimli yaklaşımın kendi notasyon sistemi vardır ve söz konusu sistemin çeşitli yönleri hakkında fikir edinebileceğimiz zengin bir mantıksal ve fiziksel modeller seti sunar.

Mihail Vasiliev, Igor Khomkov, Sergey Shapovalenko

Bilgi sistemlerinin (IS) yaşam döngüsünün neredeyse tüm aşamalarında - hem sistemin temel özellikleri ortaya konduğunda tasarım hem de halihazırda inşa edilmiş bir IS'nin bakımı ve yönetimi - çok önemli birçok konu ortaya çıkar. Bu IP mimarisi artan ihtiyaçları karşılayabilecek mi? Hangi darboğazlar en çok dikkat gerektirir? IP'nin bir yıl içinde çalışır durumda kalması için ne gibi yatırımlar gerekiyor? .. üç yıl mı? .. beş yıl mı? Kullanılan IP'nin verimliliği nedir?

Tüm bu soruların yanıtlanması kolay olmaktan uzaktır. Onlara doğru cevap vermek daha da zor. Bir kurumsal bilgi sisteminin varlığının herhangi bir aşamasında analiz edilmesi karmaşık bir konudur.

Kurumsal bilgi sistemlerinin karmaşıklığının tesadüfi değil, onların gerekli bir özelliği olduğunu söyleyebiliriz. Aşağıdakiler arasında çeşitli nedenlerle belirlenir:

Çözülmekte olan problemin karmaşıklığı;

IS geliştirmenin karmaşıklığı;

Yeterlilik, ölçeklenebilirlik, güvenilirlik, maliyet etkinliği ve güvenlik gibi parametreleri sağlamanın karmaşıklığı;

Bireysel IS alt sistemlerinin tanımının karmaşıklığı.

Modelleme teknolojilerinin uygulanmasıyla nesnel bir değerlendirme yapılabilir. Bir model oluşturmak, onu analiz etmek ve "eğer... ise ne olur?" sorularına cevap almak. IP'nin çeşitli durumlarda davranışını tahmin etmeye izin verir. En yaygın olarak kullanılanlar, tezgah prototipleme ve IS'nin bilgisayar modellerinin yapımıdır.

Şu anda bilgi sistemleri modelleme araçları pazarında üç lider var. Bunlar Amerikan şirketleri MIL3 (OPNET modelleme sistemi), Make Systems (NetMaker XA sistemi) ve CACI Products Company (COMNET sistemi). İncirde. 1, OPNET sisteminin ana penceresini gösterir. (PC Haftası / RE, No. 34/98, s. 36, Şekil 2'de, OPNET sistemindeki sonuçların grafiksel sunumu için bir pencere gösterilmektedir.) Bu sistemlerden biri ve burada uygulanan yaklaşım üzerinde daha ayrıntılı olarak duralım. .

COMNET III Kullanan IC Simülasyon Teknolojisi

Karmaşık sistemleri modellemenin açık yolu, onları Divide et impera (Böl ve yönet. - Lat.) antik ilkesine göre ayrıştırmaktır. Karmaşık IS'nin bir dizi ilgili alt sistem biçiminde hiyerarşik temsili, durumu açıklamanın anahtarıdır. Bu tür bir ayrıştırmanın bir sonucu olarak elde edilen alt sistemler, sırayla, hiyerarşinin bir sonraki seviyesinin alt sistemlerine bölünebilir ve sonsuza kadar böyle devam edebilir. Onların modellerini yaratmamızı sağlayan karmaşık sistemleri ayrıştırma yeteneğidir. Ancak bu yolda zamanında durabilmek son derece önemlidir.

Ayrıştırma işleminin son aşaması, her bir belirli modelde uygulanan en düşük soyutlama düzeyi ile belirlenir. Aşırı ayrıntılı parçalanma, beklenenin tam tersi bir sonuca yol açabilir: Modellenen sistemi basitleştirmek yerine, karmaşıklığına gelinebilir, “ağaçlar için orman görünmez” denen şeye. Bu nedenle, başarılı modelleme için doğru soyutlama seviyesi kritik öneme sahiptir.

Karmaşık sistemleri modellemeyi kolaylaştırmak için bir sonraki adım, ortak soyutlamaları keşfetmek ve izole etmektir. Modellenen IS'nin ayrıştırılmasını zaten gerçekleştirdiğimizi ve belirli bir varlık hiyerarşisi aldığımızı varsayalım. Örneğin, birden çok ağ kartına ve yazılım yönlendirmesine sahip bir Cisco 7500 yönlendirici ve bir NS7000 bilgisayar, tamamen farklı iki varlık veya aynı yönlendirici sınıfına ait iki varlık olarak görüntülenebilir. Doğru seçilmiş soyutlama seviyesi ile birlikte sınıf metaforunu kullanarak sistemin ayrıştırılması, IS modelinin inşasını radikal bir şekilde basitleştirmeyi mümkün kılar.

Pirinç. 1. OPNET sisteminin ana penceresi

Genellikle, iki ana ayrıştırma türü göz önünde bulundurulur: çalışılan sistemi aktif ilkelerine göre, yani içinde belirli bir sırada meydana gelen süreçlere göre ayıran algoritmik ve incelenen sistemin bölünmesine izin veren nesne yönelimli aynı tür soyutlamaların sınıflarına ayrılır. Her iki ayrıştırma türü de COMNET III'te kendi yolunu bulmuştur.

Model oluşturmaya yönelik COMNET III yaklaşımı, standart bir adımlar dizisi olarak temsil edilebilir:

IS topolojisinin tanımı ve ekipman parametrelerinin tanımı;

Trafik kaynaklarının tanımı ve davranışları, ağ yükünün tanımı;

Simülasyon senaryosunun belirlenmesi.

IS topolojisinin tanımı ve trafik kaynaklarının topolojinin düğümleriyle bağlantıları, nesne yönelimli ayrıştırma uygulamak için ideal bir alandır. Trafik kaynaklarının davranışını ve ağ yükündeki zaman içindeki değişiklikleri tanımlamak için algoritmik bir ayrıştırma gereklidir.

Daha önce belirtildiği gibi, IS ayrıştırması için sınır koşulları, gerekli soyutlama seviyesine bağlıdır. Soyutlama, IP projesini oluşturan geliştiricinin veya onu sürdüren sistem yöneticisinin, davranışının en temel özelliklerini nasıl uygulandıklarından ayırmasına olanak tanır. “İyi bir soyutlama, üzerinde düşünülmesi ve kullanılması gereken ayrıntıları vurgulayan ve şu anda alakasız veya dikkat dağıtıcı olanları atlayan bir soyutlamadır” * 1. Bu nedenle, bir durumda, bir bilgisayarı tanımlarken, mimarinin ayrıntılı bir açıklamasına girmeden onu bir trafik kaynağı olarak tanımlamak yeterlidir; diğerinde, örneğin işlemci ve parametre sayısı gibi özelliklerin ayrıntılı bir değerlendirmesi. disk alt sistemi gerekli olabilir.

*1. Shaw M. Modern Programlama Dillerinde Soyutlama Tekniği. - IEEE Yazılımı, Ekim. 1984, v. 1 (4), s. 10.

COMNET sisteminde, modelleme süresini önemli ölçüde azaltabilen ve sürecini gerçek sistemle açık bir şekilde ilişkilendirerek sezgisel hale getirebilen nesne yönelimli ayrıştırma yöntemi tamamen uygulanabilir. Model, kullanıcının gerçek yaşam deneyiminden aşina olduğu bir tür “yapı taşları” olan nesnelerden oluşturulur. COMNET sistemi ile bu tür nesnelerin geniş bir kütüphanesi sağlanır - gerçek ağ ekipmanı modelleri ve çevreye erişim yöntemleri. COMNET nesne modeline daha yakından bakalım (Şekil 2).

Pirinç. 2. Temel COMNET III sınıf kitaplığı

Bu sistemdeki nesneler iki sınıfa ayrılabilir: ilk olarak topolojiyi tanımlamak için kullanılır ve ikinci olarak trafik ve ağ yükü özelliklerini tanımlamak için kullanılır. Bir dizi kitaplık sınıfını içeren temel COMNET III ekranı Şekil 2'de gösterilmektedir. 3.

Pirinç. 3. COMNET sisteminin ana ekranı

COMNET III'teki topolojinin açıklaması

COMNET III sistemindeki düğümler, bağlantılar, yaylar gibi temel topoloji kavramları PC Week / RE, no.34/98, s. 34.

Hiyerarşik topolojileri tanımlamak ve bağımsız yönlendirilebilir etki alanlarını modellemek için düğümlere, bağlantılara ve yaylara ek olarak, COMNET, nesneleri grafiğin tepe noktalarına yerleştirilebilen başka bir ek sınıf içerir - bir alt ağ.

Çoklu kalıtım dahil kalıtım mekanizmasının kullanılması, kullanılan sınıfların aralığını genişletir.

Düğüm sınıfı, dört yeni sınıf tarafından miras alınır.

"Bilgisayar ve İletişim Düğümü" Sınıfı (C&C Düğümü, Bilgisayar ve İletişim Düğümü)

Bu nesneler, trafik kaynakları veya havuzları olarak hizmet edebilir ve ayrıca işlemci ve disk alt sistemleri üzerindeki yükü hesaba katan karmaşık yazılım sistemlerini modellemek için kullanılır. C&C Düğümü ile açıklanan IS düğümleri, yazılım yönlendiricilerini modellemek için de kullanılabilir.

"Bilgisayar Grubu" sınıfı (Bilgisayar Grubu Düğümü)

Nesne yalnızca bilgisayar sistemlerini modellemek için kullanılabilir, çünkü işlevleri yalnızca trafiğin kaynağını ve hedefini içerir. Kural olarak, aynı davranışa sahip bilgisayar gruplarını tanımlamak için kullanılır.

Yönlendirici Düğüm sınıfı

Bu tür nesneler, donanım yönlendiricilerini modellemek için kullanılır. Tıpkı C&C Düğümü gibi, Yönlendirici Düğüm de trafiğin hem kaynağı hem de alıcısı olarak hareket edebilir ve düğümün donanım kaynaklarını (işlemciler, disk alt sistemleri) kullanan uygulamaları yürütebilir. Simüle edilen nesnelerin donanım uygulamasının daha ayrıntılı bir açıklaması için, giriş ve çıkış arasındaki trafiğin dahili geçişini simüle etmeyi mümkün kılan dahili veri yolunun varlığı ve parametreleri gibi bir dizi ek özellik tanıtılmıştır. nesnenin bağlantı noktaları.

Düğüm sınıfını değiştir

Yönlendirme yeteneklerine sahip Anahtar Düğümü nesneleri, trafiği dahili bağlantı noktaları arasında aktarmak için ihmal edilebilir zaman harcayan anahtarları simüle etmek için kullanılır. Ancak, bu nesneler, önceki üç nesnenin aksine, trafik kaynağı veya havuzu olarak kullanılamaz.

Karmaşık yazılım sistemlerini modellemek için C&C Düğümü, Bilgisayar Grubu Düğümü ve Yönlendirici düğüm sınıflarının nesneleri, disk alt sisteminin özellikleri gibi daha önce bahsedilen bu tür nesneleri kullanan komutların bir deposunu içerir. COMNET'in parçası olan çeşitli sınıflardaki nesnelerin sürekli güncellenen kitaplığı, çok çeşitli gerçek hayattaki donanım aygıtları modellerini içerir.

Bağlantı nesnesi iki yeni nesneyi devralır.

Noktadan Noktaya Bağlantı sınıfı

Bu sınıf, iki düğüm arasındaki kanalları tanımlamak için kullanılır. Bu tür bağlantılara bir örnek, geniş alan ağlarındaki yönlendiricileri bağlayan kiralık hatlar veya devre anahtarlamalı ağlardaki bağlantılar olabilir.

Çoklu erişim bağlantı sınıfı

Bu sınıfın uygulama alanı, birkaç düğümün aynı veri iletim ortamına erişiminin olduğu durumlardır. Buna karşılık, bu nesne, Taşıyıcı Algılama, Belirteç Geçişi, SONET vb. gibi ortam erişim yönteminin uygulanmasının belirli gerçeklerini tanımlayan bir dizi yeni nesne tarafından devralınır (bkz. Şekil 2).

Şimdiye kadar, bir ana nesnenin tek bir alt nesne tarafından miras alındığı durumlara baktık. Ancak nesne yönelimli yaklaşım, çoklu kalıtımla daha karmaşık durumlara izin verir. Bu kalıtım biçimi COMNET için de geçerlidir. Burada, Transit Network ve WAN Cloud gibi önemli sınıfların nesnelerini oluşturmak için çoklu kalıtım kullanılır.

Her iki sınıf da iki ana sınıftan miras alır - Subnet ve Link. Kalıtımın şekli Şekil 1'de gösterilmektedir. 2. Bu seçeneği daha ayrıntılı olarak ele alalım.

alt ağ sınıfı

Son derece önemli bir sınıf. Hiyerarşik IS topolojileri oluşturmak için kullanılır, alt ağları farklı yönlendirme algoritmalarıyla ve omurgada kullanılan algoritmadan bağımsız olarak doğru bir şekilde tanımlamanıza olanak tanır. Ayrıca, karmaşık IC'leri modellerken gereksiz ayrıntıları gizlemek için alt ağlar kullanılır. COMNET'te, isteğe bağlı bir yuvalama derinliğine sahip sistemleri tanımlamak için kullanılırlar. Dahili alt ağ topolojisi ile omurga topolojisi arasındaki bağlantılar, sayısı isteğe bağlı olabilen erişim noktaları kullanılarak yapılır (bkz. Şekil 3).

Transit Ağ sınıfı

Alt ağların ve bağlantıların çocuğu, üst nesnelerin özelliklerini birleştiren bir nesnedir. Bir toplu taşıma ağı aynı anda hem bağlantı hem de alt ağ olarak görüntülenebilir. Bağlantı olarak, paketleri bir düğümün çıkış arabelleğinden diğerinin giriş arabelleğine iletir. Bir alt ağ olarak transit ağ, kendi yönlendirme algoritması ile sınırları içinde bir alan oluşturur.

"Bulut" Sınıfı (WAN Bulutu)

Küresel ağlar için soyut temsiller oluşturmanıza izin veren bu sınıfın nesneleri, aynı zamanda üst nesnelerin özelliklerini de devralır - Alt Ağ ve Bağlantı. Topoloji açısından, WAN Bulut nesnesi bir bağlantı nesnesi gibi davranır, simgesi doğrudan düğümlere bağlanır. İç yapı açısından, bulut, küresel ağları modellemek için bir tür noktadan noktaya bağlantı olan bir dizi sanal devre ve erişim bağlantılarından oluşur.

COMNET III'te trafik ve ağ yükünün açıklaması

Daha önce de söylediğimiz gibi, COMNET'teki IS modeli iki bölümden oluşur: sistem topolojisinin bir tanımı ve trafik kaynaklarının ve ağ yükünün bir tanımı. Topoloji ile ilgili temel bir dizi nesneyi ele aldık. Şimdi trafik nesnelerine dönelim.

COMNET, trafiği tanımlamak için çok çeşitli araçlar sağlar.

mesaj sınıfı

Bu sınıfa ait nesneler, tek bir hedef nesneye veya birden çok nesneye tek bir mesaj göndermenize izin verir. Bu tür mesajların iletilmesi, her paketin diğerlerinden bağımsız olarak yönlendirildiği bir dizi datagram olarak görülür.

Yanıt sınıfı

Bu sınıfın nesneleri yalnızca yanıt mesajları göndermek için kullanılabilir. Message veya Response sınıflarının nesneleri tarafından oluşturulan mesajların gelmesiyle yönlendirilirler. Response sınıfının mesajlarının alıcısı, her zaman kontrol mesajlarının kaynağının (Response veya Message sınıfının) bağlı olduğu Node sınıfının nesnesi olacaktır.

Çağrı sınıfı

Call sınıfının nesneleri, devre anahtarlamalı ağların modellerini oluşturmak için kullanılır. Çağrının kaynağı, dağıtım yasası, süre ve yönlendirme sınıfı dikkate alınarak bant genişliği gereksinimleri gibi bir dizi parametreyle tanımlanır.

Oturum sınıfı

Bu nesneler, sanal bağlantılar üzerinden yönlendirilen mesaj veya mesaj kümelerini içeren oturumları simüle etmek için kullanılır. Bir oturum kurulum paketi gönderilerek ve bir alındı ​​paketi alınarak bir oturum başlatılır. Gelecekte, oturum çerçevesinde, Session sınıfının nesnesinde de açıklanan isteğe bağlı sayıda mesaj gönderilebilir. Bu mesajlar, ana hat üzerindeki veya nesneyi içeren alt ağdaki yönlendirme algoritmasına bağlı olarak, veri birimleri veya sanal bağlantılar olarak yönlendirilir.

Ayrıca COMNET III'ün, çeşitli trafik analizörleri kullanılarak elde edilebilen sözde harici trafik dosyaları kullandığını unutmayın.

Message, Response, Call ve Session sınıflarının çoklu mirasının sonucu olan Application sınıfının nesneleri özellikle ilgi çekicidir (bkz. Şekil 2). Nesneleri, ağ iş yükünün en esnek tanımını ve model içindeki trafik kaynaklarının davranışını sağlar. Ayrıca, bunları kullanırken, DBMS, posta sistemleri vb. gibi dağıtılmış olanlar da dahil olmak üzere hemen hemen her türlü yazılım sistemi kolayca modellenebilir.

Bu sınıfın nesneleri tarafından tanımlanan gerçek bir uygulama, üç kurucu parça içerir. Birincisi, bunlar Application sınıfı nesnesinin bağlı olduğu düğümün parametreleridir. Bu parametreler, gerekli işlemcilerin ve disk alt sistemlerinin özelliklerini ve sayısını ayarlamak için kullanılır. İkincisi, bunlar, düğümün yukarıda belirtilen özelliklerini kullanan sözde komut depolarıdır. Üçüncüsü, bu komutların yürütülme sırasını kontrol eden Application nesnesinin kendisidir.

Düğümün komut deposu ve dolayısıyla Application sınıfının nesnesi aşağıdaki komutları içerebilir:

Taşıma Mesajı Bu komut, üst Message nesnesinden miras alınan Application sınıfının sonucudur.

Kurulum, Session sınıfından devralmanın sonucudur.

Cevap Mesajı, Response sınıfından miras alır.

Filtre Mesajı Bu komut, filtreleme koşullarını karşılayan bir mesaj alınana kadar Application sınıfının nesnesinde açıklanan tüm işlemleri askıya almanızı sağlar.

İşlem Bu komut, işlemci üzerinde bir yüke neden olan işlemeyi simüle eder.

Oku ve yaz Bu iki komut, düğüm işlemcisinin doluluk durumunu simüle etmeye de izin verir, ancak bu sefer dosyaları okumak ve yazmak için disk alt sistemi ile etkileşim bağlamında.

Böylece Application, Message, Response, Session ve Call sınıflarını kullanarak hem mevcut ağ yükünün esnek bir şekilde modellenmesi hem de IS'nin parçası olan yazılım sistemlerinin davranışının ayrıntılı bir açıklaması mümkündür. Bu sınıfların, karmaşık dağıtılmış yazılım sistemlerini ve bunların ağın mevcut ağ altyapısı üzerindeki etkilerini modellemenize izin vermesi kritik derecede önemlidir.

COMNET III Nesneleri: Parametrik Soyutlama

COMNET III sınıflarının temel kümesinden bahsederken, sözde parametrik soyutlamanın onlara uygulanabilirliğinden bahsetmek son derece önemlidir. Bu yaklaşım, farklı özelliklere sahip bir sınıfın örnekleri olan yeni nesneler oluşturmanıza olanak tanır. Gigabit Ethernet gibi önemli teknolojik çözümler, dikkate alınan soyutlamanın parametreleri - seçilen sınıfın özellikleri - değiştirilerek çok basit bir şekilde modellenebilir.

Bir örneğe bakalım. MAC alt katmanında taşıyıcı algılama ve çarpışma algılama (CSMA / CD, çoklu erişime sahip bir bağlantı sınıfı) ile rastgele bir erişim yöntemi kullanarak yerel bir ağı simüle ettiğimizi varsayalım, ancak ağ ekipmanı üreticisi tarafından önerilen bağlantı katmanı standardı "yerel" IEEE 802.3'ten biraz farklıdır. Böyle bir durum, nesne yönelimli bir yaklaşım uygulamayan bir ürün kullanıldığında bazı yanlışlıklara neden olabilir. Geliştirici, ürün üreticisi tarafından sunulan standardı, büyük olasılıkla klasik 802.3'ü kullanmak zorunda kalacaktı. İncirde. Şekil 4, kullanıcının bu standardın parametrelerini düzenleyebileceği COMNET III arayüz penceresini gösterir - çarpışma algılaması durumunda yeniden iletim sayısı, çerçeve başlığının uzunluğu, vb. Başka bir deyişle, kullanıcı parametrelendirmeyi kendisi gerçekleştirir. nesnenin.

Pirinç. 4. IEEE 802.3 standardının 10BaseT bağlantısının parametrelendirilmesi

Bu nedenle referans standardın ve üretici standardının uygunluğuna karar veriyoruz. Diğer eylemlerimiz, CSMA / CD sınıfındaki nesnelerin kitaplığını, kullanıcı tarafından tanımlanan yeni bir standartla yenilemeye indirgenmiştir. Bunu yapmak için, sadece yeni parametreler ekleyin. Aynı şeyi donanım düğümleri, trafik kaynakları, WAN Bulut parametreleri vb. ile de yapabiliriz.

Bu, parametreleştirmenin, model geliştiricinin daha esnek kararlar almasına izin vererek, nesnelerin temel kitaplığını genişletmek için bol fırsatlar sağladığını gösterir.

Kalıtım mekanizmasını daha fazla kullanarak temel sınıf kümesini genişletebilirsiniz.

Modeller arası kopyala-yapıştır modu

Çok karmaşık bir topolojik tanımlamaya sahip büyük bir model oluşturduğumuzu varsayalım. Burada iki yoldan gidebiliriz: sistemin tüm topolojisini tek bir dosyada birleştirin veya birkaç parça oluşturun ve ardından bunları birleştirin. İkinci seçenek, geliştirici için birkaç nedenden dolayı daha uygundur. Bu, her bir parçada hata ayıklama kolaylığı, iyi görünürlük ve nihayetinde büyük güvenilirliktir.

Gelecekte, tüm sorun nesneleri bir modelden diğerine aktarmaktır. Bunu çözmek için, yeni oluşturulan nesnelerin kaynak modelde yerel olanlar dışındaki tüm özelliklerle modelden modele aktarılmasını sağlayan COMNET III Intermodel kopyala-yapıştır modunu kullanmak uygundur.

Bir örnek verelim. Diyelim ki bir modelden diğerine biraz yükü olan bir ağ parçası aktarıyoruz. Trafik, Message sınıfının nesneleri tarafından tanımlanır. Kaynak modelde yerel olan bu tür nesnelerin özelliği, hedefidir. Özelliklerin geri kalanı, kaynak modele bağlı olmayan Düğüm sınıflarını (C&C düğümü, Bilgisayar grubu, Yönlendirici, Anahtar), Bağlantı vb. devralan nesnelerden değişiklik yapılmadan taşınacaktır.

Bu durumda parametreleştirme prosedürü çok basittir. Özellikle nesneye otomatik olarak eklenen yeni modeldeki isim listesine göre mesajın yönünü belirleyebilirsiniz.

Açıklanan yöntemin uygulanması, esnek bir şekilde genişletilebilir nesne kümesinden herhangi bir modelin yapımında geniş fırsatlar açar - yapı taşları, modelleme maliyetini önemli ölçüde azaltmanıza olanak tanır.

Modüler düğüm oluşturma

Çoklu kalıtımı temel alan yeni bir sınıfın nesnesini oluşturma prosedürünü düşünün.

Bir geliştiricinin, bir donanım aygıtının ayrıntılı bir modelini oluşturmakla görevlendirildiğini varsayalım (örneğin, birkaç arabirim modülünün bir arabirim veri yolu ile bağlı olduğu bir yönlendirici). Modeli oluşturmanın amacı, arayüz veriyolundaki gecikmeyi belirlemektir. Standart COMNET III açıklamasında, bir veri yolu iki parametre ile tanımlanır: bant genişliği ve frekans. Böyle bir tanımlamanın bizim için yeterli olmadığı açıktır. Bununla birlikte, veri yolunu ayrı bir cihaz olarak tanımlamamıza izin veren bir nesnemiz var - bağlantı. Genel olarak, bu tamamen standart bir çözüm değildir, ancak Link sınıfının nesnesinin gerekli parametreleştirmesini gerçekleştirdikten sonra, örneğin tahkim işlevini uygulayan tam özellikli bir cihaz olarak bir veri yolu modeli alacağız. . Şek. 5 MPRouter nesnesi bu şekilde modellenmiştir. Buradaki arayüz veriyolu, Token Bus algoritmasına göre çalışır.

Pirinç. 5. Taşıma sırasında trafik kaynağının parametrelendirilmesi

bir modelin başka bir modele parçası (Oturum Kaynağı)

Aynı zamanda, geliştiricinin bu tür teknikleri kötüye kullanmaması gerektiği söylenmelidir, çünkü daha önce de belirtildiği gibi, bazı durumlarda her nesnenin aşırı doğru bir açıklaması, güvenilirliğinde bir azalma ile ifade edilen ters etkiyi verebilir. model bir bütündür. Bu teknik, nesnelerin özelliklerinin ayrıntılı bir açıklamasının gerekli olduğu durumlarda uygulanabilir.

Nesne durumlarını ayarlama yeteneği

COMNET'teki herhangi bir nesne birkaç durumda olabilir. Örneğin, Link ve Node sınıflarının nesneleri için, durumlar yukarı, aşağı, başarısızlık mümkündür (açık, kapalı, hata). Ayrıca bu durumlar arasındaki geçişleri simüle edebilir ve geçişin simüle edilmiş IS üzerindeki etkisini analiz edebilirsiniz (Şekil 6).

Pirinç. 6. Nesnenin mevcut durumunun parametrelerinin belirlenmesi (Düğüm Özellikleri)

Bu, geliştiriciye "ya olursa ...?" gibi dinamik senaryolar oluşturma fırsatı verir. ve böylece oluşturulan modelin esnekliğini önemli ölçüde artırır.

Bu nedenle, COMNET III'te model oluşturmak için temel araçlara ve en yaygın tekniklere baktık. Yazarlar, modern IC'lerde yaygın olarak kullanılan çeşitli çözümleri modellemeye daha fazla makale ayırmayı planlıyor.

İşlevsel ve nesne yaklaşımı arasındaki temel fark, sistemin ayrıştırılma biçiminde yatmaktadır. Nesne yönelimli yaklaşım, nesne ayrıştırmasını kullanır, statik yapı ise şu şekilde tanımlanır: nesneler ve bağlantılar arasında ve sistemin davranışı şu şekilde tanımlanır: mesajlaşma nesneler arasında. Metodolojinin amacı, modelden hareket etmenize izin veren organizasyonun bir iş modelini oluşturmaktır. kullanım durumları iş fonksiyonlarının uygulanmasında yer alan bireysel nesneleri tanımlayan bir modele.

Kavramsal çerçeve, aşağıdaki ilkeler dikkate alınarak oluşturulan nesne modelidir:

  • soyutlama;
  • kapsülleme;
  • modülerlik;
  • hiyerarşi;
  • yazıyor;
  • paralellik;
  • istikrar.

Temel konseptler nesne yönelimli yaklaşım nesne ve sınıftır.

Nesne - iyi tanımlanmış bir davranışı olan ve bir durumu, davranışı ve kişiliği olan bir nesne veya fenomen. Benzer nesnelerin yapısı ve davranışı, onlar için ortak bir sınıf tanımlar. Sınıf, ortak bir yapı ve davranışla ilişkili nesneler kümesidir.... Nesne yaklaşımının bir sonraki önemli kavram grubu kalıtım ve polimorfizmdir. konsept polimorfizm bir sınıfın birden fazla türden olma yeteneği olarak yorumlanabilir. Miras veri ve yöntemleri ekleme veya geçersiz kılma yeteneğine sahip mevcut sınıflara dayalı yeni sınıflar oluşturmak anlamına gelir.

Nesne yaklaşımının önemli bir kalitesi, kuruluşun faaliyet modellerinin ve öngörülen bilgi sistemi modellerinin gereksinimlerin oluşumu aşamasından uygulama aşamasına kadar tutarlılığıdır. Nesne modelleri, modellenen etki alanının (organizasyon) gerçek varlıklarının bilgi sisteminin nesnelere ve sınıflarına eşlenmesini izlemek için kullanılabilir.

Mevcut yöntemlerin çoğu nesne yönelimli yaklaşım Dahil etmek modelleme dili ve modelleme sürecinin bir açıklaması. İşlem Bir proje geliştirirken izlenecek adımların bir açıklamasıdır. Olarak modelleme dili nesne yaklaşımı birleşik kullanır modelleme dili Modelleme için standart bir diyagram seti içeren UML.

Diyagram, birçok öğenin grafiksel bir temsilidir. Çoğu zaman, köşeler (varlıklar) ve kenarlar (ilişkiler) ile bağlantılı bir grafik olarak gösterilir ve sistemin belirli bir izdüşümünü temsil eder.

Nesneye Yönelik Yaklaşım aşağıdaki avantajlara sahiptir:

  • Nesne ayrıştırma, gerekli anlamlı tasarrufları sağlamak için ortak mekanizmalar kullanarak daha küçük modeller oluşturmayı mümkün kılar. Nesne yaklaşımının kullanılması, geliştirme birleştirme düzeyini ve yeniden kullanıma uygunluğu önemli ölçüde artırır, bu da bir geliştirme ortamının oluşturulmasına ve montaj modeli oluşturmaya geçişe yol açar.
  • Nesne ayrıştırma, modelin nispeten küçük alt sistemlere dayalı evrimsel bir gelişim yolunu varsaydığından, karmaşık modellerin oluşturulmasından kaçınmanıza izin verir.
  • Nesne modeli doğaldır çünkü dünyanın insan algısına odaklanır.

Dezavantajlara nesne yönelimli yaklaşım yüksek başlangıç ​​maliyetlerini içerir. Bu yaklaşım anında geri dönüş sağlamaz. Uygulamasının etkisi, iki veya üç projenin geliştirilmesinden ve yeniden kullanılabilir bileşenlerin birikmesinden sonra etkilenir. Nesne yaklaşımının özelliklerini yansıtan diyagramlar daha az açıktır.

Mevcut tekniklerin karşılaştırılması

V fonksiyonel modeller(DFD - veri akış diyagramları, SADT diyagramları), ana yapısal bileşenler, diyagramlara bağlı fonksiyonlardır (işlemler, eylemler, iş). nesne akışları.

şüphesiz haysiyet fonksiyonel modeller uygulama mı yapısal yaklaşım Her bir fonksiyonel bloğun birçok alt fonksiyona vb. ayrıştırılabildiği ve böylece modüler bir işlev gerçekleştirebildiği "yukarıdan aşağıya" ilkesine göre IC'lerin tasarımına IC tasarımı... İçin fonksiyonel modeller IP ayrışmasının prosedürel ciddiyeti ve sunumun netliği karakteristiktir.

NS Işlevsel yaklaşım ER-diyagramları "nesne - özellik - ilişki" şeklindeki nesne veri modelleri ayrı olarak geliştirilir. Etki alanı modellemenin doğruluğunu kontrol etmek için, işlevsel ve nesne modelleri arasında bire bir ilişkiler kurulur.

Ana dezavantaj fonksiyonel modeller süreçlerin ve verilerin birbirinden ayrı olarak var olmasıdır - işlevsel ayrıştırmanın yanı sıra arka planda bir veri yapısı vardır. Ayrıca dinamik olarak değiştirilebilen bilgi işlem süreçlerinin yürütülme koşulları da net değildir.

Listelenen dezavantajlar fonksiyonel modeller filme alındı nesne yönelimli modeller, ana yapısal bileşenin, bu sınıfın özelliklerine erişebilen bir dizi işleve sahip bir nesne sınıfı olduğu.

Nesne sınıfları, izin veren bir genelleme hiyerarşisi ile karakterize edilir. miras daha yüksek bir nesne sınıfından daha düşük bir sınıfa nesnelerin yalnızca nitelikleri (özellikleri) değil, aynı zamanda işlevler (yöntemler).

İşlevlerin kalıtımı durumunda, prosedürlerin özel uygulamasından soyutlanabilir ( soyut veri türleri), belirli durum alt sınıfları için farklılık gösterir. Bu, benzer program modüllerine ortak adlarla atıfta bulunmayı mümkün kılar ( polimorfizm) ve yazılımı değiştirirken program kodunu yeniden kullanın. Böylece, nesne yönelimli sistemlerin konu alanındaki değişikliklere göre uyarlanabilirliği, Işlevsel yaklaşımçok daha yüksek.

Nesne yönelimli yaklaşım aynı zamanda ilkeyi de değiştirir. IC tasarımı... İlk olarak, nesne sınıfları tahsis edilir ve daha sonra, nesnelerin olası durumlarına (nesnelerin yaşam döngüsü) bağlı olarak, bilgi sisteminin dinamik davranışının en iyi şekilde uygulanmasını sağlayan işleme yöntemleri (işlevsel prosedürler) belirlenir.

İçin nesne yönelimli yaklaşım Alanı modellemek için grafik yöntemler geliştirilmiştir, birleşik modelleme dili UML'de genelleştirilmiştir. Bununla birlikte, nesne yönelimli modeller, model sunumunun müşteri-kullanıcıya görünürlüğü açısından işlevsel modellerden açıkça daha düşüktür.

Bir konu alanını modellemek için bir metodoloji seçerken, genellikle bir kriter olarak dinamizm derecesi kullanılır. Daha düzenlenmiş görevler için, daha uyarlanabilir görevler için fonksiyonel modeller daha uygundur. iş süreçleri(iş akışı yönetimi, bilgi depolarına dinamik sorguların uygulanması) - nesne yönelimli modeller. Bununla birlikte, aynı IS içinde, farklı problem sınıfları, aynı problem alanını tanımlayan farklı tipte modeller gerektirebilir. Bu durumda kombine etki alanı modelleri.