yetenek modellerinin gerçekleştirimi Üzerine bir durum Çalışması
DESCRIPTION
Yetenek modelleri (feature models) yazılım geliştirme dünyasında yaygın olarak kullanılan modeller olmasına rağmen, bu modellerin gerçekleştirim iz düşümlerinin nasıl elde edileceğine ilişkin genel olarak kabul görmüş bir yöntem bulunmamaktadır. Yeteneklerin gerçekleştirim seviyesinde nasıl ifade edileceğini tanımlayan bir yöntemin yeniden kullanımı, farklı geliştiriciler ve/veya projeler için belirli bir kalitenin tekrarlanabilirliği açısından önemli bir unsurdur. Bu bağlamda, bu makale yetenek modelinden gerçekleştirim aşamasına geçiş üzerine bir durum çalışması içermektedir. Çalışma kapsamında, derinlik ölçüm sonarı (iskandil sistemi) grafiksel kullanıcı arayüz yazılım ailesi yetenek modeli ele alınmaktadır.TRANSCRIPT
Tasnif Dışı
Yetenek Modellerinin Gerçekleştirimi Üzerine Bir
Durum ÇalışmasıOrçun Dayıbaş
Aselsan A.Ş. SST-MD-YMMAralık, 2012 / İzmir
Tasnif Dışı O.Dayıbaş / UYMK’12 / 7-8 Aralık 2012 2
İçerik
• Giriş• Değişkenlik Yönetimi• Yetenek Modelleri• Yapılandırma Modeli ve Yetenekler• Gerçekleştirim
– Bağımlılık İletimi– Mimari Bağımlılıklar– Tasarımdan Gerçekleştirime Yarı Otomatik Geçiş
• Sonuç• Soru-Cevap
Tasnif Dışı O.Dayıbaş / UYMK’12 / 7-8 Aralık 2012 3
Giriş
• Sorun– KULAÇ derinlik ölçüm sonarı (İskandil sistemi)
– Farklı platformlar için farklı GKA(Grafiksel Kullanıcı Arayüz) yazılımları• Denizaltı• Su üstü
• Çözüm– Uyarlanabilir iskandil GKA yazılımı– Sonar projeleri için yeniden kullanılabilir
yetenekler
Tasnif Dışı O.Dayıbaş / UYMK’12 / 7-8 Aralık 2012 4
Değişkenlik Yönetimi
• Yazılım ürün hattı (YÜH) bağlamında değişkenlik– Ürün hattı değişkenliği– Yazılım değişkenliği
• YÜH değişkenlik türleri [1]– Ortaklık: Tüm ürünlerde (aile üyesi) ortak olan
işlevler.– Değişkenlik: Bazı ürünlerde ortak olan ama
tüm ürünlerde ortak olmayan işlevler.– Ürüne özel: Sadece bir üründe olan, diğer
üründe olmayan işlevler.
Tasnif Dışı O.Dayıbaş / UYMK’12 / 7-8 Aralık 2012 5
Yetenek Modeli
• Yetenek modeli, yazılım ürün hattının kapsadığı tüm olası ürünleri, sıradüzensel (hierarchical) yetenekler ve bu özellikler arası ilişkiler ile ifade eder.
Tasnif Dışı O.Dayıbaş / UYMK’12 / 7-8 Aralık 2012 6
Yetenek Modeli
• Yetenek modellerinde en yaygın kullanılan ilişkiler [2]– Sıradüzensel olarak üst-alt özellikler arası
(parental)• Zorunlu (mandatory): Alt özellik gerekli.• Seçimsel (optional): Alt özellik seçimsel.• Veya (or): İlgili gruptaki alt özelliklerden bir veya bir
kaçı seçilebilir.• Alternatif (xor): İlgili gruptaki alt özelliklerinden yalnız
biri seçilebilir.– Sıradüzensel olmayan (cross-tree)
• A gerektirir B: A’nın seçilmesi B’nin de dolaylı olarak seçilmesini gerektirir.
• A dışlar B: A’nın seçilmesi B’nin dolaylı olarak seçilmemesini gerektirir.
Tasnif Dışı O.Dayıbaş / UYMK’12 / 7-8 Aralık 2012 7
Yetenek Modeli
• Yetenek modelleme ortamı: FeatureIDE
• Desteklediği geliştirme yöntemleri [3]– Ön işleyici kullanımı– Delta-yönelimli programlama– İlgi-yönelimli programlama– …
Tasnif Dışı O.Dayıbaş / UYMK’12 / 7-8 Aralık 2012 8
Yetenek Modeli
• Yetenek modelinin ilk sürümü (sezgisel)
Tasnif Dışı
Yetenek Modeli
• TracWiki üstünde yapılan çalışma– Gereksinimlerin yeteneklere eşlenmesi– Yetenek bağımlılıklarının belirlenmesi– Yetenek gerçekleştirim önceliklerinin
belirlenmesi• Yetenek modelinin FeatureIDE’ye
aktarılması
O.Dayıbaş / UYMK’12 / 7-8 Aralık 2012 9
Tasnif Dışı O.Dayıbaş / UYMK’12 / 7-8 Aralık 2012 10
Yetenek Modeli
• Yetenek modelinin son sürümü
Tasnif Dışı O.Dayıbaş / UYMK’12 / 7-8 Aralık 2012 11
Yapılandırma Modeli
• Yapılandırma modeli, yetenek modeli üzerinde yapılmış bir seçimi ifade eder.– Sadece seçilmiş yetenekleri içerir; değişkenlik
içermez.– Aynı bilgi değişik biçemlerde ifade edilebilir.
Tasnif Dışı O.Dayıbaş / UYMK’12 / 7-8 Aralık 2012 12
Gerçekleştirim
• FeatureIDE’nin desteklediği gerçekleştirim yöntemleri– Olgun ve/veya yaygın olmayan çerçeveler.– Var olan gerçekleştirime etkisi yüksek
yöntemler.• Çözüm: Bağımlılık iletimi (DI - Dependency
Injection) tabanlı özgün çözüm.– FeatureIDE çıktısı yapılandırma.– Var olan bileşenlerin yetenek yapılandırmaları
ile uyumlandırılması (gerekirse).– Bağımlılık iletimi çerçevesi ile bağımlılıkların
yönetilmesi (Google Guice [4])
Tasnif Dışı O.Dayıbaş / UYMK’12 / 7-8 Aralık 2012 13
Gerçekleştirim
• Bağımlılık İletimi– Nesnelerin özelliklerinin dışarıdan bir birim
tarafından yaratılan olgular ile kurulması ilkesine dayanır [5].
– Sadece arayüz kullanımı (a) yaratım bağımlılığını ortadan kaldırmaz. Bağımlılık iletimi (b) ile bu bağımlılık işlevsel nesnelerin dışına taşınmış olur.
Tasnif Dışı O.Dayıbaş / UYMK’12 / 7-8 Aralık 2012 14
Gerçekleştirim
• Mimari Bileşenler ve Yetenekler
Tasnif Dışı O.Dayıbaş / UYMK’12 / 7-8 Aralık 2012 15
Büyük Resim
• Yetenekten gerçekleştirime geçiş
Tasnif Dışı O.Dayıbaş / UYMK’12 / 7-8 Aralık 2012 16
Sonuç ve Değerlendirme
• Tekrarlanabilir bir yetenek modeli gerçekleştirim yöntemi oluşturulmuştur.– Geliştirici yetenek modeli üzerinden
yapılandırmayı belirterek ürünü oluşturabilir.• Gereksinimlerin yeteneklere eşlenmesi ile
izlenebilirliği olan tüm varlıklar benzer bir yöntemle üretilebilir (Ör: Test yazılımları).
• İlerleyen dönemde bu çalışmanın genişletilerek devamı planlanmaktadır.– Yetenek gereksinimlerinin, model ile uyumlu
olarak ifade edilmesinde karşılaşılan zorlukları çözmek.
– Yetenek özellikleri (non-functional attributes).
Tasnif Dışı O.Dayıbaş / UYMK’12 / 7-8 Aralık 2012 17
Teşekkürler…
• Sorularınız?
odayibas
Tasnif Dışı O.Dayıbaş / UYMK’12 / 7-8 Aralık 2012 18
Kaynakça
[1] F. Van Der Linden, K. Schmid, E. Rommes, “Software Product Lines in Action”, Springer ( 2007).
[2] D. Benavides, A. R. Cortés, P. Trinidad, S. Segura, “A Survey on the Automated Analyses of Feature Models”, JISBD 2006: 367-376 (2006).
[3] T.Thüm, et al. “FeatureIDE: An Extensible Framework for Feature-Oriented Software Development” Science of Computer Programming (2012).
[4] Google Guice http://code.google.com/p/google-guice/[5] M. Fowler, "Inversion of Control Containers and the
Dependency Injection Pattern", http://martinfowler.com/articles/injection.html