Semmle - Semmle

Semmle
Semmle logo.png
İş türüYan kuruluş
KurulmuşAralık 2006; 13 yıl önce (2006-12) içinde Oxford, İngiltere
MerkezSan Francisco, California, ABD
Kurucu (lar)Oege de Moor
Kilit kişilerOege de Moor, Pavel Augustinov, Julian Tibble
SanayiYazılım analizi
Ürün:% sKod analiz yazılımı ve hizmetleri
EbeveynGitHub[1] (2019-günümüz)
URLsemmle.com

Semmle Inc ofisleri olan bir kod analiz platformu sağlayıcısıdır. San Francisco, Seattle, New York, Oxford, Valencia ve Kopenhag[2]. Derleyicilerdeki araştırmalar ve veri analizi üzerine inşa edilmiş, bir ekip tarafından geliştirilmiştir. Oxford Üniversitesi patentli teknolojisi, yazılım geliştirme süreciyle ilgili mevcut tüm verileri (kaynak kodu, yayın biletleri, geliştirme maliyetleri, ekip konumu vb.) kullanarak bir bilgi tabanı oluşturur ve kullanıcılarının bu bilgi tabanını doğru ve verimli bir şekilde sorgulamasına olanak tanır. Sonuçlar, geliştiricilerin, yöneticilerin ve yöneticilerin farklı ihtiyaçları için tasarlanmış kullanıcı arayüzlerinde sunulur. Öngörüler Semmle, ekip personelinin daha akıllıca projelendirmesine, yetenekleri daha iyi korumasına ve geliştirmesine, yazılım maliyetlerini kontrol etmesine ve yeni işlevleri daha erken sunmasına yardımcı olur.[kaynak belirtilmeli ]

Şirketin genel merkezi San Francisco Blue Boar Court merkezli geliştirme faaliyetleri ile, Alfred Caddesi, merkez Oxford, İngiltere. Semmle'nin müşterileri arasında Credit Suisse, NASA ve Dell.[3]

Arka fon

Akademik

SemmleCode, yazılım programlarının kaynağını sorgulamaya yönelik akademik araştırmalara dayanmaktadır. Bu tür ilk sistem Linton'un Omega sistemiydi,[4] sorguların nerede ifade edildiği QUEL. QUEL izin vermedi özyineleme sorgularda, örneğin hiyerarşik program yapılarını incelemeyi zorlaştırır. arama grafiği. Bir sonraki önemli gelişme, bu nedenle mantık programlama, XL C ++ Tarayıcısında bu tür yinelemeli sorgulara izin verir.[5] Bununla birlikte, tam bir mantık programlama dili kullanmanın dezavantajı, kabul edilebilir verimliliğe ulaşmanın çok zor olmasıdır. CodeQuest sistemi,[6] geliştirildi Oxford Üniversitesi, gözlemden ilk kullanan kişi oldu Veri kaydı, mantık programlamanın çok kısıtlayıcı bir versiyonu, ifade gücü ve verimlilik arasındaki tatlı noktadadır. QL sorgu dili Datalog'un nesne yönelimli bir sürümüdür.

Sanayi

İlk araştırmalar, bir dizi endüstriyel uygulamadan ayrılan yazılım programlarının kaynağını sorgulama üzerine çalışıyor. Özellikle uygulama zekası için sistemlerin temel taşı haline geldi (veri madenciliği yazılım sistemlerinin kaynağında) ve yazılım yenileme. 2007 yılında Paris tabanlı CAST[7] bu alandaki pazar liderlerinden biridir ve diğer önemli oyuncular arasında BluePhoenix içinde Herzliya, İsrail. SemmleCode, programcıların kendi projelerine özgü yeni sorguları kolayca formüle etmelerine olanak tanıyan nesne yönelimli bir sorgu dili kullanımıyla bu sistemlerden farklıdır.

SemmleCode'un oluşturulmasına yol açan akademik ve endüstriyel gelişmelerin tam bir hesabı, Hajiyev ve ark. Tarafından yazılan bir makalede bulunabilir.[8]

QL'de örnek sorgu

QL'nin kullanımını göstermek için, aşağıdaki iyi bilinen kuralı göz önünde bulundurun: nesne yönelimli programlama halka açık alanların nihai olarak ilan edilmesi gerektiğini. Bu kuralın ihlallerini bulmak için, herkese açık olan ancak nihai olmayan alanları aramalıyız. QL'de bu gereksinim şu şekilde ifade edilir:

 itibaren Alan f nerede f.hasModifier("halka açık")       ve       değil(f.hasModifier("final")) seç f.getDeclaringType().getPackage(),        f.getDeclaringType(),        f

Burada sadece suçlu alan değil f seçili, aynı zamanda bildiriminin gerçekleştiği paket ve tür.

Geliştirme ortamlarıyla entegrasyon

SemmleCode, bir Kullanıcı arayüzü aracılığıyla Eclipse IDE Java kodunu (hem kaynak kodu hem de bayt kodu) ve XML dosyalarını sorgulamak ve QL sorgularını düzenlemek için. Ancak bu, temelini oluşturan teknolojinin yalnızca bir uygulamasıdır: QL, diğer karmaşık veri türlerini sorgulamak için kullanılabilir.

Ayrıca bakınız

Referanslar

  1. ^ "GitHub, geliştiricilerin kod açıklarını tespit etmelerine yardımcı olmak için Semmle'ı satın aldı". venturebeat.com. Alındı 20 Eylül 2019.
  2. ^ "Bize Ulaşın". Semmle.
  3. ^ "Spin-out şirketi Semmle, Accel Partners'tan 8 milyon dolar güvence altına aldı" (Basın bülteni). Oxford Üniversitesi. Eylül 16, 2014. Alındı 18 Eylül 2015.
  4. ^ "Linton'un Omega sistemi". AMERİKA BİRLEŞİK DEVLETLERİ: California Üniversitesi, Berkeley. 1983.
  5. ^ Shahram Javey, Kin'ichi Mitsui, Hiroaki Nakamura, Tsuyoshi Ohira, Kazu Yasuda, Kazushi Kuse, Tsutomu Kamimura ve Richard Helm. XL C ++ tarayıcısının mimarisi. İçinde CASCON ’92: İşbirliğine Dayalı Araştırma Üzerine İleri Araştırmalar Merkezi'nin 1992 konferansının bildirileri, sayfalar 369–379. IBM Press, 1992.
  6. ^ "CodeQuest sistemi". İngiltere: Oxford Üniversitesi Bilgisayar Laboratuvarı. Arşivlenen orijinal 9 Ekim 2006.
  7. ^ "CAST Yazılımı".
  8. ^ Elnar Hajiyev, Mathieu Verbaere ve Oege de Moor, CodeQuest: Datalog ile Ölçeklenebilir Kaynak Kodu Sorguları. İçinde ECOOP 2006: 2006 Avrupa Nesne Tabanlı Programlama Konferansı Bildirileri, 2–27. sayfalar. Springer, 2006.

daha fazla okuma

  • Mark A. Linton. Programların ilişkisel görüşlerini uygulamak. Editör Peter B. Henderson'da, Yazılım Geliştirme Ortamları (SDE), sayfalar 132–140, 1984.

Dış bağlantılar