NetBeans ile Rhapsody Plug-in Geliştirme

Aselsan stajı boyunca bana verilen ve araştırmam istenen proje IBM Rational Rhapsody kullanarak java ile bir plugin yazmam ve bunu rhapsody için uygulamaya koymam. Bende koyuldum araştırmaya ve notlarımı sizinle paylaşmaya..

Plug-in, kendi başına çalışabilen bir program için, genellikle çok özel bir alanda duyulan gereklilik üzerine geliştirilen, programa yeni özellikler ekleyen yazılımdır. Plug-inler ana programdan bağımsız çalışamaz.

33_img

IBM Rational Rhapsody  gömülü, gerçek zamanli veya teknik uygulama yazilimlari için UML ve SysML tabanli görsel yazilim gelistirme/modelleme ortamidir. Rhapsody  C, C++, Ada, Java ve C# dilleri ile birlikte piyasadaki lider gömülü sistem ortamlari/birimleri ile entegre olup görsel gelistirme yapabilme olanagi saglar ve Rhapsody sayesinde olusturulabilecek prototipler ile uygulama yasam döngüsündeki meydana gelebilecek riskler önceden elenebilir.

Gömülü yazılım ise herhangi bir sistem içerisinde yer alarak o sistemi daha akıllı hale getiren elektronik, donanım ve yazılım ile oluşmuş entegre sistemine verilen isimdir. Belirli bir fonksiyonu gerçekleştirir ve özel bir amaca hizmet eder.

SysML karmaşık sistemlerin sistem mühendisliği seviyesinde analiz ve tasarımının yapılmasını sağlayan bir modelleme aracıdır. SysML modelleme araçlarını, sistem analizlerini ve tasarımlarını yapan ve farklı mühendislik alanlarını birleştirip karmaşık sistem tasarlayan sistem mühendisleri kullanabilirler.

images

UML (Unified Modelling Language) yazılımın bileşenlerinin ve bunlar arasındaki ilişkilerin görsel olarak ifade edilmesini sağlayan bir standarttır.

Rhapsody ile yapilabilecekler:

  • C, C++, Java, Ada dilleri ve bunlarin davranissal diagramlari (behaviorals diagrams: Activity Diagrams, State Machine Diagrams, Use Case Diagrams) ile birlikte tam bir uygulama gelistirilebilir.
  • Animasyon özelligi ile tasarlanan model üzerinde debug yapilabilir (design level debugging) böylelikle problemleri erkenden çözebilir ve yüksek maliyetten kurtulabilinir.
  • Görsel modelleme için UML/SysML ‘i kullanir ve uygulama gelistirme döneminde gelistiriciler arasindaki iletisimi kolaylastirir.
  • AUTOSAR kullanarak kavramdan koda kadar otomotiv uygulamalari gelistirmenizi saglar
  • Android uygulamalar gelistirilebilir.
  • Reverse engineering yapilabilir.
  • MARTE, DODAF, MODAF ve UPDM gibi Domain-specific dilleri destegi vardir.
  • Kendi alanlarinda lider olan Gömülü Sistem gelistirme ortamlariyla entegre olabilmektedir.
  • MISRA-C ve MISRA-C++ uygulamalari gelistirilebilir.
  • Eclipse, Jazz ve RTC (Rational Team Concert) entegrasyonlari ile kodlama yaparken takim-isbirligi olanagi saglar.
  • TestConductor add-on ‘u ile model üzerinde görsel olarak test yapabilme olanagi saglar.
  • Gateway özelligi ile IBM Rational DOORS, IBM Rational RequisitePro ve diger gereksinim yönetim araçlariyla entegre olabilir. Gateway’in izlenebilirlik çözümünün yardim ettigi konular
  • Ayrica konfigürasyon yönetim araçlari olan IBM Rational Synergy, IBM Rational Team Concert ve IBM Rational ClearCase ile entegrasyonu vardir.

Rhapsody ile ilgili yeni başlayanlar için 2 tane link vereceğim. Bunlarla rhapsody’e giriş yapabilirsiniz.

Customizing Rhapsody using the API (V7.5)

Getting started with the Rational Rhapsody API

Rhapsody’i anlattıktan sonra gelelim benim Aselsan süresi boyunca uğraştığım projeye.

  • Proje adı: Atış Kontrol Sistemlerinin Debug Edilmesi
  • Projenin Tanıtımı: Rhapsody’de oluşturulan sınıfların attribute değerlerinin, statik fonksiyon isimlerinin, hangi state’de oldukları gibi bilgilerinin çalışma zamanında gösterilmesi ve Arayüz Tasarımı
  • Proje ile ilgili Yapılanlar: Rhapsody ile java bağlantılarını yaptım. Öncelike Rhapsody’de bulunan attribute değerlerini karşılaştırdım. Veri tiplerine göre karşılaştırma yaparak c kodu şeklinde Operation kısmında verileri gösterdim. Operation kısmındaki tüm statik fonksiyonları yazdırdım. İtsInstance adlı attribute ve Class isminde constructor ekledim ve bunların kontrolünü sağladım. Statechart kısmında statelerin tek tek analizini yaptım. Tüm stateleri liste şeklinde çektim. Ayrıca çektiğim statelerin ağaç yapısı olduğunu gördüm. Ağaçlarda gezinme metodlarını (preorder,inorder,postorder) kullanarak statelerin çalışma zamanında durumlarını gözlemledim.
  • Projeden Öğrendiklerim: Rhapsody’nin gömülü, gerçek zamanlı ve teknik uygulamalı yazılımlarda kullanılan, UML ve sysML tabanlı bir Ideyi tanıdım ve kullanmayı öğrendim. Model tabanlı geliştirme ve plugin geliştirmenin ne olduklarını öğrendim. Java ile veri yapılarını daha etkin bir şekilde kullandım. Proje bir debug şekilde çalışmaktadır. Programcıya state durumu analizini attribute değerlerini çalışma anında gösterek bunlar hakkında bilgi verdirdim.

Not : Çok ayrıntılı bir şekilde olmadı yazılar. Sadece genel olarak yaptığım hatları anlattım. Malum gizlilik sebebi ile ..

Post Author: umiitkose

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Şu HTML etiketlerini ve özelliklerini kullanabilirsiniz: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">