Yetenek Modellerinin Gerçekleştirimi Üzerine Bir Durum Çalışması

18
Tasnif Dışı Yetenek Modellerinin Gerçekleştirimi Üzerine Bir Durum Çalışması Orçun Dayıbaş Aselsan A.Ş. SST-MD-YMM Aralık, 2012 / İzmir

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 of Yetenek Modellerinin Gerçekleştirimi Üzerine Bir Durum Çalışması

Page 1: Yetenek Modellerinin Gerçekleştirimi Üzerine Bir Durum Çalışması

Tasnif Dışı

Yetenek Modellerinin Gerçekleştirimi Üzerine Bir

Durum ÇalışmasıOrçun Dayıbaş

Aselsan A.Ş. SST-MD-YMMAralık, 2012 / İzmir

Page 2: Yetenek Modellerinin Gerçekleştirimi Üzerine Bir Durum Çalışması

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

Page 3: Yetenek Modellerinin Gerçekleştirimi Üzerine Bir Durum Çalışması

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

Page 4: Yetenek Modellerinin Gerçekleştirimi Üzerine Bir Durum Çalışması

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.

Page 5: Yetenek Modellerinin Gerçekleştirimi Üzerine Bir Durum Çalışması

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.

Page 6: Yetenek Modellerinin Gerçekleştirimi Üzerine Bir Durum Çalışması

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.

Page 7: Yetenek Modellerinin Gerçekleştirimi Üzerine Bir Durum Çalışması

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– …

Page 8: Yetenek Modellerinin Gerçekleştirimi Üzerine Bir Durum Çalışması

Tasnif Dışı O.Dayıbaş / UYMK’12 / 7-8 Aralık 2012 8

Yetenek Modeli

• Yetenek modelinin ilk sürümü (sezgisel)

Page 9: Yetenek Modellerinin Gerçekleştirimi Üzerine Bir Durum Çalışması

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

Page 10: Yetenek Modellerinin Gerçekleştirimi Üzerine Bir Durum Çalışması

Tasnif Dışı O.Dayıbaş / UYMK’12 / 7-8 Aralık 2012 10

Yetenek Modeli

• Yetenek modelinin son sürümü

Page 11: Yetenek Modellerinin Gerçekleştirimi Üzerine Bir Durum Çalışması

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.

Page 12: Yetenek Modellerinin Gerçekleştirimi Üzerine Bir Durum Çalışması

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])

Page 13: Yetenek Modellerinin Gerçekleştirimi Üzerine Bir Durum Çalışması

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.

Page 14: Yetenek Modellerinin Gerçekleştirimi Üzerine Bir Durum Çalışması

Tasnif Dışı O.Dayıbaş / UYMK’12 / 7-8 Aralık 2012 14

Gerçekleştirim

• Mimari Bileşenler ve Yetenekler

Page 15: Yetenek Modellerinin Gerçekleştirimi Üzerine Bir Durum Çalışması

Tasnif Dışı O.Dayıbaş / UYMK’12 / 7-8 Aralık 2012 15

Büyük Resim

• Yetenekten gerçekleştirime geçiş

Page 16: Yetenek Modellerinin Gerçekleştirimi Üzerine Bir Durum Çalışması

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).

Page 17: Yetenek Modellerinin Gerçekleştirimi Üzerine Bir Durum Çalışması

Tasnif Dışı O.Dayıbaş / UYMK’12 / 7-8 Aralık 2012 17

Teşekkürler…

• Sorularınız?

odayibas

Page 18: Yetenek Modellerinin Gerçekleştirimi Üzerine Bir Durum Çalışması

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