Moose (analiz) - Moose (analysis)

Kanada geyiği
Moose Logosu
Ekran görüntüsü
Modellere göz atmak için varsayılan Moose kullanıcı arayüzünün ekran görüntüsü
Modellere göz atmak için varsayılan Moose kullanıcı arayüzünün ekran görüntüsü
Geliştirici (ler)Moose Ekibi
Kararlı sürüm
7.0.2 / 26 Temmuz 2019 (2019-07-26)
YazılmışSmalltalk
İşletim sistemiÇapraz platform
TürVeri analizi
LisansBSD Lisansı
İnternet sitesimoosetechnology.org

Kanada geyiği bir Bedava ve açık kaynak yazılım platformu ve veri analizi yerleşik Pharo.

Moose, verilerin içe aktarılması ve ayrıştırılmasından modellemeye, ölçüm, sorgulama, madencilik ve etkileşimli ve görsel analiz araçları oluşturmaya kadar çeşitli hizmetler sunar. Moose bir araştırma bağlamında doğdu,[1] ve şu anda dünya çapında çeşitli araştırma grupları tarafından desteklenmektedir. Endüstride giderek daha fazla benimseniyor[kaynak belirtilmeli ].

Ana Özellikler

Moose'un felsefesi, analistin yeni özel analiz araçları üretmesini sağlamak ve analiz akışını özelleştirmektir. Moose esas olarak yazılım analizinde kullanılırken, herhangi bir veri için çalışmak üzere oluşturulmuştur.

Bunu başarmak için birden fazla mekanizma ve çerçeve sunar:

  • İçe aktarma ve meta-meta-modelleme, genel bir meta-tanımlı motor aracılığıyla gerçekleştirilir.[2][3] Hiç meta model kendi kendine tanımlanmış bir meta-meta-model açısından tanımlanmıştır ve bu açıklamaya göre, içe / dışa aktarma MSE dosya formatı aracılığıyla sağlanır. Bu dosya formatı sayesinde Moose, harici araçlarla veri alışverişi yapabilir.
  • Ayrıştırma için Moose yeni bir çerçeve sağlar [4] birkaç ayrıştırma teknolojisinden yararlanan (örneğin ifade dilbilgisini ayrıştırma ) ve bu bir akıcı arayüz kolay inşaat için.
  • Yazılım analizi, özellikle FAMIX meta-modeller ailesi aracılığıyla desteklenir. FAMIX'in çekirdeği, benzer bir dilden bağımsız meta modeldir. UML ancak analize odaklanmıştır. Ayrıca, modelleri sorgulamak için zengin bir arayüz sağlar.
  • Görselleştirme iki farklı motorla desteklenir: biri grafik görselleştirmelerini ifade etmek için,[5] ve biri çizelgeleri ifade etmek için. İkisi de bir akıcı arayüz kolay inşaat için.
  • Moose'da gezinme önemli bir ilkedir ve aynı zamanda birçok şekilde desteklenir. Genel bir arayüz, analistin herhangi bir modele göz atmasını sağlar. Moose, belirli tarayıcıları belirtebilmek için, spesifikasyonu belirli bir tarayıcı aracılığıyla kolaylaştıran genel bir motor sunar. akıcı arayüz.

Tarih

1996-1999: İlk altyapı, meta model

Moose doğdu Bern Üniversitesi Eylül 1996-Eylül arasında gerçekleşen bir Avrupa projesi olan FAMOOS bağlamında. 1999. FAMOOS, nesne yönelimli eski sistemlerde tasarım sorunlarını analiz etmek ve tespit etmek ve bu sistemleri daha esnek mimarilere taşımak için yöntem ve araçlara odaklandı. FAMOOS'un ana sonuçları FAMOOS El Kitabında ve Nesneye Yönelik Yeniden Yapılandırma Modellerinde özetlenmiştir.[6] kitap.

FAMOOS projesinin başlangıcında Moose, yalnızca FAMIX olarak bilinen, dilden bağımsız bir meta-modelin uygulanmasıydı. C / C ++ kodunun ayrıştırılması Sniff + ile yapıldı ve üretilen modeller CDIF standardı ile ithal edildi. Başlangıçta Moose, sabit kodlu bir ithalatçı sağladı ve basit görselleştirme ve program bilgisi çıkarıcı için temel oluşturdu (1997). Daha sonra metrikleri hesaplamak için kullanılmaya başlandı.

Daha sonra, meta model geliştikçe, ithalat / ihracat hizmetinin meta modele ortogonal olması gerektiği ve en önemlisi ortamın meta-model uzantısını desteklemesi gerektiği ortaya çıktı. Sonuç olarak, o zamanlar varlıkları ve ilişkileri temsil edebilen ilk, son derece basit bir meta-meta-model uygulandı (1998).

1999-2003: Değişim biçimleri, görselleştirmeler

XMI standardının getirilmesiyle bir ilk Meta Nesne Tesisi meta-model uygulandı ve CDIF meta modelleri, XMI model üretimi için MOF meta modellerine dönüştürüldü. Bununla birlikte, Moose meta-meta modeli olarak MOF kullanılmadı.

Paralel olarak, görselleştirme gelişimi, hesaplanan metrik setinin genişlemesine yol açtı. O zamanlar CodeCrawler, Moose'un amiral gemisi uygulamasıydı ve CodeCrawler, Moose'un (1999) mimarisini önemli bir süre etkiledi. Örneğin, görünümler oluşturulmadan önce metriklerin tüm varlıklar için hesaplanması gerekiyordu.

Sistemlerin evrimini araştırmaya duyulan ilgi, meta-model havuzunun uygulanmasına yol açtı. Bu nedenle, ilk uygulama Evolution Matrix (2001) idi. Daha sonra, sistemlerin evrimini anlamak için daha fazla araştırma yapıldı ve Van'ın (2002) gelişmesiyle sonuçlandı.

Evrim analizi, büyük miktarda verinin manipüle edilmesini gerektirdiğinden, tüm model bilgilerini her zaman değiştirmek artık mümkün değildi. Ayrıca, modeldeki tüm varlıklar için metriklerin önceden hesaplanması başka bir darboğazdı. Sonuç olarak, birkaç hizmet uygulandı: modellerin kısmi yüklenmesi, özelliklerin tembel hesaplanması ve sonuçların önbelleğe alınması.

Meta açıklamaların, bu verileri işlemek için farklı tekniklerden veri temsilini (yani meta modeli) ayırmanın güçlü bir yolu olduğu ortaya çıktı. Sonuç olarak, ekip MOF benzeri bir meta-meta modeli (2002) uygulamaya başladı ve orijinal olanı değiştirdi. Eclipse Modeling Framework'e (EMF) benzer bir mimari sunar.

2003-2007: Genel Kullanıcı Arayüzü, özel değişim formatı, kodlanabilir görselleştirmeler

Meta açıklamanın bir uygulaması olarak, genel bir GUI'nin geliştirilmesi, gezinme, sorgulama ve iç gözlem gibi temel hizmetleri sağlamak için başlatılmıştır (2003). Önbellekleme mekanizmasında ve sorgulamada önemli bir rol, birinci sınıf bir varlık olarak bir grup kavramı tarafından oynanır: Moose'daki her sorgu veya seçim bir grup verir ve herhangi bir grup Tarayıcı'da (2003) değiştirilebilir.

Araç geliştirmeyi kolaylaştırmak için bir eklenti mekanizmasına ihtiyaç vardı. Böylece, meta tanıma dayalı olarak, her araç, meta modeldeki her bir varlığa ekli menüye kendisini kaydedebilir. Bu basit mekanizma, bu araçların, aralarında sabit kodlanmış bir bağımlılık oluşturmadan birbirini tamamlamasına izin verir.

Menülerin ve grupların kombinasyonu, karmaşık analizlerin her biri farklı bir araçtan yararlanabilen birden çok adıma bölünebileceği anlamına geliyordu. Araçları birleştirmek ve oluşturmak böylece doğal ve şeffaf hale gelir.

2006 yılında Meta, EMOF'nin (Essential Meta Object Facility) kendi kendine tanımlanmış bir uygulaması olarak oluşturuldu ve Moose'un meta-meta-modelinin yerini aldı. Meta ile birlikte yeni MSE dosya formatı oluşturuldu. Meta kendi kendini tanımladığı için, Moose artık aynı mekanizmayı kullanarak hem harici modelleri hem de meta modelleri yükleyebiliyor. Aynı zamanda XMI ve CDIF desteği de düştü.

Etkileşimli görsel araçların hızlı prototiplenmesi için destek sağlamak için Mondrian inşa edildi. Mondrian, Smalltalk'ı temel bir betik dili olarak kullanıyor ve grafik tabanlı görselleştirmeler için destek ekliyor. Mondrian, ESUG 2006 İnovasyon Ödülleri'nde 2.lik ödülünü aldı.

2007'de, EyeSee adlı yeni bir motor, Excel benzeri çizelgelerin yazılmasına izin vermek için Moose'un etrafında büyüdü. EyeSee, ESUG 2007 İnovasyon Ödüllerinde 2.lik ödülünü aldı.

2008-2011: FAMIX 3.0, komut dosyası yazılabilir tarayıcılar ve Pharo'ya geçiş

2008'de Meta, EMOF'den daha basit ve daha esnek olan yeni bir meta-meta-model (FM3) uygulayan Fame ile değiştirildi. Şöhret oluşturma çabası, yazılım analizi için bir meta-model ailesi olan FAMIX 3.0'ın geliştirilmesiyle ilişkilidir.

2008'in sonundan itibaren Moose'u VisualWorks'ten açık kaynak Smalltalk olan Pharo'ya taşımak için büyük bir çaba gösterildi. Pharo altındaki ilk alfa sürümü Ağustos 2009'da piyasaya sürüldü.

Bu süre zarfında, etkileşimli tarayıcıların komut dosyası oluşturmak için bir motor olan Glamour geliştirildi. Glamour, ESUG 2009 İnovasyon Ödülleri'nde 3.lük ödülünü aldı.

PetitParser, Moose Suite'e eklendi. PetitParser, özel ayrıştırıcılar oluşturmak için yeni bir motordur.

Referanslar

  1. ^ Oscar Nierstrasz, Stéphane Ducasse ve Tudor Gîrba. Moose'un Hikayesi: Çevik Bir Yeniden Yapılandırma Ortamı. Avrupa Yazılım Mühendisliği Konferansı Bildirilerinde (ESEC / FSE'05), s. 1—10, ACM Press, New York NY, 2005. Davetli bildiri.
  2. ^ Stéphane Ducasse, Tudor Gîrba, Adrian Kuhn ve Lukas Renggli. Smalltalk kullanarak Meta Ortam ve Yürütülebilir Meta Dil: Bir Deneyim Raporu. Journal of Software and Systems Modeling (SOSYM) 8 (1) s. 5-19, Şubat 2009.
  3. ^ Adrian Kuhn ve Toon Verwaest. FAME, Çalışma Zamanında Metamodeling için Polyglot Kitaplığı. Çalışma Zamanında Modeller Üzerine Çalıştay'da, s. 57-66, 2008
  4. ^ Lukas Renggli, Stéphane Ducasse, Tudor Gîrba ve Oscar Nierstrasz. Dinamik Diller için Pratik Dinamik Gramerler. 4. Dinamik Diller ve Uygulamalar Çalıştayı'nda (DYLA 2010), Malaga, İspanya, Haziran 2010
  5. ^ Michael Meyer, Tudor Gîrba ve Mircea Lungu. Mondrian: Bir Çevik Görselleştirme Çerçevesi. ACM Sempozyumunda Yazılım Görselleştirme (SoftVis'06), s. 135—144, ACM Press, New York, NY, ABD, 2006.
  6. ^ Serge Demeyer, Stéphane Ducasse ve Oscar Nierstrasz. Nesneye Dayalı Yeniden Yapılandırma Kalıpları, Kare Parantez İlişkilendirmeleri, 2008. URL

Dış bağlantılar