INGENIAS DEVELOPMENT KıT Engin Deniz Tümer
Genel Bakış Özellikleri Avantajları Katmanları Kurulumu Kullanımı Test ve Debugging
GENEL BAKıŞ INGENIAS Development Kit, Çok Etmenli Sistemlerin analizine, tasarımına ve gerçekleştirimine imkan sağlayan açık-kaynak kodlu bir framework ’tür. INGENIAS Development Kit, INGENIAS metodolojisini destekleyen bir tool’ dur. Ancak diğer metodolojileri de destekler. Bu kit, 2002 yılında J. J. Gomez-Sanz’in doktora tezinin bir parçası olarak yaratılmıştır. 2008’de Portekiz’deki AAMAS toplantısında en iyi demo ödülünü kazanmıştır. JAVA platformu üzerinde tasarlanmış ve GPL v3(Genel Kamu Lisansı) lisansını sağlar.
ÖZELLIKLERI INGENIAS, farklı çalışmaların eş zamanlı kullanımlarını destekleyerek birleştirici bir yaklaşım olarak kullanılabiliniyor. Kavramların silinmesi ya da güncellenmesi için, sadece meta modellerde değişiklik yapıp, geliştirme tool’unu yenilemek gerekiyor. Bu sayede araştırmacılar yaptıkları işle ilgili kavramların, ilişkilerin ve niteliklerin neler olduğuna belirleyen kararların teorik görevlerine odaklanabiliyorlar. Aynı üreticinin oluşturduğu INGENME tool’ u sayesinde, etmen tasarımı için görsel bir editör kullanılır. Görsel editör için kullanılan dilleri tanımlı XML dosyalarıyla sağlar.
AVANTAJLARı Round – trip (gidiş – dönüş) özelliği: Otomatik kod üretme ve bu kodlardaki değişiklikleri yönetebilme Debugging özelliği: Görev seviyesinde breakpoint koyabilme Açıklık özelliği: Eklentiler sayesinde, yeni özellikleri entegre edebilme olasılığı
IDK ’NıN ANA KATMANLARı - I INGENIAS Development Kit (IDK) tool’ unun iki temel tipi mevcuttur. Grafik Editörü: Yazılımcının, Çok etmenli sistemlerin özelliklerini, etmen spesifikasyonları yardımıyla yaratmasına veya değiştirmesine olanak sağlar. Temel etmen modeli, INGENIAS metodolojisi içinde tanımlanmıştır, ancak Agent UML gibi dillerle de birleşik haldedir. Grafiksel özellikler, UML diyagramları şeklinde çizilebilindiği gibi, INGENIAS metodolojisindeki notasyonlar kullanılarak da sağlanabilinir.
IDK ’NıN ANA KATMANLARı - II Modüller: Programın özelliklerinin ve otomatik kod üretiminin doğrulanmasını MAS spesifikasyonlarını kullanarak sağlarlar. IDK, mevcut modüllerin desteğini sağlaması yanında, kullanıcıların kendi modüllerini tasarlamasına imkan sağlayarak IDK’ daki fonksiyoneliteyi genişletmeyi de destekler.
GRAFIK EDITÖRÜ ÖZELLIKLERI-I Proje Yönetim Özelliği: Metodolojiye uygun olarak inşa edilmiş birden fazla diyagram kullanılabilinir. Bu diyagramlar paketler halinde düzenlenebilinir. Sürükle – bırak metoduyla diyagramlara ait ikonlarda değişiklik yapılabilinir. MAS Spesifikasyonları Yönetimi Özelliği: Kullanıcılar, önceden yaratılmış INGENIAS metamodel varlıklarına göz atabilirler. Ayrıca diyagramlar arası kullanılan ögeleri yeniden kullanabilirler veya tüm diyagramlardan bu ögeleri kaldırabilirler. Açık Kaynak Kodlu Olması: Bu sayede grafik editörünün kaynak koduna herkes ulaşabilir ve dileyenler kendi plugin’ lerini tasarlayarak editörle entegre edebilirler. Sadece uygulamadaki class ‘ları genişleterek plugin tasarımı yapmak mümkün.
GRAFIK EDITÖRÜ ÖZELLIKLERI-II Notasyon Özelliği: Notasyonlar diğer alternatif tool’lardaki gibi hard-coded bir halde değildir. Orijinal meta modeli değiştirerek notasyonları düzenlemek mümkün. Ayrıca, farklı diyagramlarda kullanılan ikonlar, herhangi bir zamanda UML benzeri yada INGENIAS notasyonu şekline değiştirilebilinir. Bu da her ikonun ne anlama geldiğini öğrenmeyi hızlandırır. Kullanıcı Dostu: Tool’ un crash edebilme ihtimali var, bu yüzden periyodik olarak üzerinde çalışılan dosyaların backup’ ları alınıyor. Ayrıca, diyagram tasarım adımları kolaylaştırılmış. Son olarak performans olarak iyi durumda, Pentium işlemcilerde ve 512 MB RAM'larda düzgün çalışabiliyor. Dokümantasyon Özelliği: Yaratılan diyagramları çeşitli formatlarda dışarıya çıkartılabiliniyor. Ayrıca programa dipnotlar eklenebiliniyor.
KURULUMU-I INGENIAS destek araçlarının parçası olan tüm dosyalar Maven Repository’ de bulunmaktadır. IDK ‘yı yükleyebilmek için JDK’nın versiyon 1.5 ve yukarısı bilgisayarda bulunmalı. bulunan zip dosyası indirilir. Örnek bir folder’a konur. (c:\idk\ gibi) Editörü açabilmek için komut istemi açılarak idk dosyasının yeri bulunulur ve aşağıdaki komut çalıştırılır.
KURULUMU-II Her ne kadar editöre, komut istemi ile girilebilinse de, öneri olarak ant adı verilen tool gösteriliyor ( Ant yalnızca editörü açmakla kalmıyor, size editörde yeniden compile, ekli modülleri compile ve testleri çalıştırma imkanlarını sağlıyor. Ant yüklendiği takdirde komut: oluyor. Ant yüklendiğinde ant.bat veya ant.sh dosyalarını sistemdeki PATH(Bilgisayarım->gelişmiş sistem ayarları->gelişmiş->ortam değişkenleri->sistem değişkenleri->PATH) ortam değişkeni içine ekletmek gerekiyor. Eğer hızlı bir şekilde editörü açmak istersek bir bat dosyası oluşturup içine şunları ekleyip kaydedebiliriz.
KULLANIMI-ı Kurulumu düzgün yapabildiysek editördeki ana ekran bizi karşılayacak. Yeni proje açtıysak farenin sağ tuşu ile istediğimiz model ya da diyagramı oluşturabiliriz.
KULLANIMI-II Yeni bir projeye başlanılacağı gibi mevcut spesifikasyonlarda yüklenebilinir. Yüklemek için File -> Load
KULLANIMI-III Spesifikasyon yüklendiğinde sol tarafta proje ve varlıklar bizi karşılıyor. Örnek spesifikasyonda 3 adet etmenle sinema bileti alım sistemi tanımlanmış. (Alıcı, Satıcı, Arayüz) Sol taraftakiler roller sağ taraftaki etmenleri temsil ediyor. (rol atama diyagramı)
KULLANIMI-IV Alıcı ve Arayüz etmeni PDA(kişisel dijital yardımcı) ortamında, satıcı etmen sinema ortamındadır. (çevre diyagramı)
KULLANIMI-V Etmenlere hedef eklemek için panodan hedef ikonunu seçiyoruz. (ServeRequests ve GetCinemaTickets hedefi) GetCinemaTickets alt hedeflere ayrılmış durumda. (FindCinema ve GetTicket alt hedefleri). Her bir alt hedefin bağlı olduğu tasklar bulunmakta. (Örneğin ChooseCinema Taskı başarılı olduysa FindCinema alt hedefi gerçekleştirilmiştir denir.)
KULLANIMI-VI GoBackHome taskı çift tıklanarak içindeki kodu ve taskın adını görüntüleyebilmemiz mümkün. Ancak kodda kompleks değişiklikler yapmak istediğimiz zaman code generator module’ lerinden birisini seçmemiz gerekecek. (basit bir alan olduğu için syntax ’a dikkat ederek değiştirilebilinir.)
KULLANIMI-VII Spesifikasyonumuzu tamamladığımızda code generation module’ ü sayesinde etmenlerimizi diğer platformlara taşıyabiliyoruz. Örnek olarak JADE LEAP platformu seçildi. Bunu gösterebilmek için uygun hedef platformunda spesifikasyonumuzun verify edilmesi gerekiyor. Verify sırasında hata aldıysak: Verify sırasında hata almadıysak generate ediyoruz:
KULLANIMI-VIII Kod generate edildikten sonra compile edilebilinir, ancak tam olarak programın fonksiyonelliği sağlanmış durumda değil. Bunun için her bir oluşturulmuş görev dosyaları için kullanıcıdan inputlardan outputlara nasıl dönüşüm olacağı bilgisi bekleniyor. Bu değişiklikler için dışsal bir editör kullanılabilinir. (Ör: Eclipse) Kodu generate ettikten sonra, kodda değişiklik yapılacaksa dışsal editörler (Ör: Eclipse) yardımıyla dosyalar açılır ve kod değiştirilir. Editörler sayesinde yapılan değişiklikler, orijinal spesifikasyonlara upload edilebiliniyor. Bunun için bir başka plugin olan INGENIAS Code Uploader kullanılıyor. Bu plugin Java görev dosyalarında yapılan somut değişikliklere bakarak farklılıkları diğer tarafa gönderiyor. Bu sayede iki tarafta birbirleriyle senkronik hale geliyor.
KULLANIMI-IX Oluşturulan Java kodunu JADE LEAP ’te kullanabilmek için komut isteminden aşağıdaki sarı kodu yazarak, compile ediyoruz. Oluşturulan Java kodunu JADE LEAP ’te çalıştırabilmek için komut isteminden aşağıdaki sarı kodu yazarak, run ediyoruz.
KULLANIMI-X Sistemdeki tüm etmenler benzer arayüzle açılıyor. Arayüz sayesinde JADE üzerinden interaction’ ları (solda), açılan arayüzler sayesinde de stateler (sağda) görüntülenebiliniyor.
TEST VE DEBUGGING Spesifikasyonun, test varlıkları ve MAS başlatma koşullarının test gereklilikleri önceden tanımlanabiliyor. Sonradan da test ihtiyacı çıktığında, yazılımcı IDK’ daki kütüphaneleri kullanarak etmenlerin iç durumlarını ve kişisel davranışlarını inceleyebiliyor. Çalıştırma süresince, kullanıcıya GUI sayesinde, etmenlerdeki mental varlıkların hangisi olduğu ve ya hangi interactionların çalıştırıldığı gibi faydalı bilgiler veriliyor. GUI iki farklı moda sahip: otomatik ve manuel. Manuel modda, çalıştırılacak görevler ilk olarak kullanıcıya gösteriliyor. Görevlerin input output bilgisi görev süresince görüntülenebiliniyor. Otomatik modda ise çalıştırılacak olan görevler yürütme kuyruğunun tepesine konularak gösteriliyor.
Dinlediğiniz için teşekkür ederim… Youtube: Editör Snapshot: