• Sonuç bulunamadı

HLA temelli benzetimlerde kullanılması gereken bilgiler HLA’nın gerektirdiği şekilde tanımlanmalıdır. Bu amaçla HLA’nın nesne model şablonu (OMT) yapısına uyulmalıdır. Bu yapıya uygun olarak benzetimde kullanılacak bilgilerin nesne temelli tanımlanması için çeşitli ticari araçlar geliştirilmiştir. Bu uygulama içerisinde gerekli bilgileri tanımlamak için DMSO’nun geliştirdiği, RTI 1.3’ü destekleyen OMDT (Object Model Development Tool) yazılımı kullanılmıştır. Bu yazılım ile nesne sınıfları, bu sınıfların özellikleri, parametre sınıfı gibi tanımlamalar gerçekleştirilmiştir. Bahsedilen yazılımın kurulumu ve kullanım ayrıntılarına girilmeden uygulamaya özgü tanımlamalar açıklanmıştır. Programın kurulumu ve kullanım ayrıntıları için kullanım kılavuzuna bakılabilir (AEgis, 1998).

Yeni bir nesne modeli geliştirilirken öncelikle geliştirilen modelin ismi, hangi amaçla geliştirildiği, kim tarafından geliştirildiği, geliştiricinin iletişim bilgileri gibi tanımların girilmesi yararlı olacaktır. Bu bilgileri girmek, programın işlemi bakımından zorunlu değildir. Ancak bu modeli inceleyen veya uygulayan kullanıcılar bu bilgilerden gerektiği zaman faydalanacak, ihtiyaç halinde geliştirici ile iletişime geçebilecektir. İlgili pencereye Nesne Modeli Tanımlama Tablosu (Object Model Identification Table) denmektedir ve bu pencereye “View” menüsünden ulaşılmaktadır. Geliştirilecek uygulama ile ilgili bu bilgiler Şekil 5.6’da görülmektedir.

Şekil 5.6. Nesne modeli tanımlama penceresi

Ardından federasyonda kullanılacak nesne sınıfları, “View” menüsünden “Class table” seçilerek tanımlanmalıdır. Örnek uygulamamızda ürün ve alt-ürünler Şekil 5.7’de görüldüğü gibi tanımlanmıştır. Nesneler, hiyerarşik olarak alt nesnelere sahip olabilmektedir. Tanımlamamıza göre “Urun” üst sınıf, “UrunA”, “UrunB” ve “UrunC”, bunun alt sınıflarıdır. Nesne isimlerinden sonra görülen (PS) ifadesi, nesnelerin hem yayımlanabilir (publish) hem de abone olunabilir (subscribe) olduğunu göstermektedir. Uygulamasını yaptığımız örnekte bilgi alımı ve güncellemesi her iki yönlü olduğu için tanımlamanın böyle olması uygundur.

Nesne sınıf yapısı tanımlama penceresinde açılan tabloda federasyonda kullanılacak nesneler tanımlandıktan sonra bunların özellikleri de tanımlanmalıdır. Bunun için “View” menüsünden “Attribute table” seçilmelidir. Örnek uygulamamızda ürünün sipariş numarası ve miktarı, “Urun” nesnesinin özellikleri olarak tanımlanmıştır. Alt-ürünlerin ise her birinin başlama ve bitiş zamanları özellik olarak tanımlanmıştır. Örneğin “baszamanA” ve “bitzamanA”, “UrunA” alt nesnesinin özellikleridir ve A alt ürününün başlama ve bitiş zamanlarını ifade etmektedir. İlgili pencere Şeklil 5.8’de verilmiştir.

Şekil 5.8. Özellik tanımlama penceresi

Pencerede görülen “Datatype” sütunu veri tipini tanımlamak içindir. Açılacak listeden uygun bir HLA veri tipi seçilebilmektedir. Bu uygulamada, veri tipi programlama esnasında tanımlanacağından veri tipleri “any” olarak seçilmiştir. “Cardinality” sütunu, özelliğin boyutunu tanımlamak içindir. Bir dizi veya liste şeklinde verisi olmayan özellikler için 1 seçilmelidir. “Units” sütunu, verinin birimini gösteren açıklama sütunudur (adet, dakika, YTL/saat, gibi). Girilmesi zorunlu değildir. İsteğe bağlı girilen diğer bir sütun ise “Resolution”dır. Özelliğin iki değeri arasında oluşabilecek en küçük farkı ifade etmektedir. Örneğin kesikli değer alan özellikler için kullanılabilir. “Accuracy” sütunu ise benzetim esnasında verinin, verilen değerden maksimum sapmasını yakalamak içindir. Bu kullanılmayacak ise “perfect” seçilir. “Update Type” sütunu, özelliğin verisinin güncellenme şeklini ifade etmek içindir. Yanındaki sütun ise açıklama girmek içindir. “Transferable/Acceptable” sütunu, özelliğin sahipliğinin (kullanım haklarının) bir

federeden diğerine aktarılabilir olup olmadığı ile tanımlamanın yapıldığı kısımdır. “Updateable/Reflectable” sütunu ise ilgili federenin, özelliğin verisini güncelleme hakkına sahip olup olmadığı, başka federenin ürettiği değeri alıp alamayacağı ile ilgili tanımlamanın yapılmasını sağlamaktadır. Kullanılacak veriler hep güncellenebilir hem de yansıtılabilir olduğundan (U/R) seçilmiştir. “Routing Space” sütunu ise etkileşimlerin belirli filtrelerden geçerek gönderilmesi ile ilgilidir. “Send Interaction with Region” komutu kullanıldığında devreye girmektedir.

Federasyonda iki etkileşim kullanılmaktadır. Bunlardan birincisini ana imalatçı tedarikçiye, diğerini ise tedarikçi ana imalatçıya göndermektedir. Nesne Etkileşimlerin tanımlandığı pencere Şekil 5.9’da verilmiştir.

Şekil 5.9. Etkileşim tanımlama penceresi

Nesnelerin özellikleri olduğu gibi, etkileşimlerin de parametreleri olabilmektedir. Örnek federasyonda veriler nesne özelliklerinde tutulmakta, bunların güncellenmesi ve yansıtılması ile iletilmektedir. Dolayısıyla etkileşimler kullanılmıştır ancak parametreler kullanılmamıştır. Etkileşim almak, olayları tetiklemektedir. Tercihen parametreler kullanılacak olsaydı Şekil 5.10’da gösterildiği gibi tanımlanması gerekmekteydi. Buradaki sütunların anlamları, özellik penceresi açıklanırken ifade edilmişti.

Şekil 5.10. Parametre tanımlama penceresi

Gerekli tüm tanımlamalar gerçekleştirildikten sonra nesne modeli kaydedilmelidir. Kayıt işlemi gerçekleştirilirken program, modelin doğruluğunu test etmektedir. Hata ile karşılaşıldığında uyarmaktadır. Eğer modelde hata ile karşılaşılmazsa Şekil 5.11’de görüldüğü gibi modelin geçerli olduğu bildirilmektedir.

Şekil 5.11. Nesne modelinin test sonuç penceresi

Nesne modeli tanımlaması bittikten sonra kaydedilen model .omd uzantısı ile kaydedilmektedir. Federasyonda kullanılacak olan nesne yapısı ise FED dosyası olarak kaydedilmelidir. Tanımlanan nesne modelinin (SOM veya FOM) FED dosyasına dönüştürülmesi için “File” menüsünden “Save as” seçilmeli ve kayıt türü .fed dosyası olacak şekilde değiştirilmelidir.

FED dosyası oluşturulduktan sonra federasyonun çalıştırılmasını sağlayan benzetim yazılımının C++ kodları oluşturulmasına geçilmesi mümkündür. Aşağıda, örnek uygulamanın nasıl geliştirildiği anlatılmıştır.