SlideShare a Scribd company logo
1 of 18
Yetenek Modellerinin
      Gerçekleştirimi Üzerine Bir Durum
                   Çalışması
                    Orçun Dayıbaş
              Aselsan A.Ş. SST-MD-YMM
                 Aralık, 2012 / İzmir




Tasnif Dışı
İç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   2
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   3
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   4
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   5
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               6
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   7
Yetenek Modeli

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




Tasnif Dışı      O.Dayıbaş / UYMK’12 / 7-8 Aralık 2012   8
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ı




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

• Yetenek modelinin son sürümü




Tasnif Dışı     O.Dayıbaş / UYMK’12 / 7-8 Aralık 2012   10
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   11
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              12
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    13
Gerçekleştirim

• Mimari Bileşenler ve Yetenekler




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

• Yetenekten gerçekleştirime geçiş




Tasnif Dışı      O.Dayıbaş / UYMK’12 / 7-8 Aralık 2012   15
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   16
Teşekkürler…

• Sorularınız?




              odayibas


Tasnif Dışı         O.Dayıbaş / UYMK’12 / 7-8 Aralık 2012   17
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




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

More Related Content

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

Xsteel ornegi
Xsteel ornegiXsteel ornegi
Xsteel ornegisersld85
 
Xsteel testleri
Xsteel testleriXsteel testleri
Xsteel testlerisersld85
 
Yazılım Mimarileri - Yazılım Geliştirme Modelleri
Yazılım Mimarileri - Yazılım Geliştirme ModelleriYazılım Mimarileri - Yazılım Geliştirme Modelleri
Yazılım Mimarileri - Yazılım Geliştirme ModelleriKubra Kose
 
Yazılım mimarisi yazılım müh.
Yazılım mimarisi yazılım müh.Yazılım mimarisi yazılım müh.
Yazılım mimarisi yazılım müh.Hüseyin Örer
 
Xsteel dokumani
Xsteel dokumaniXsteel dokumani
Xsteel dokumanisersld85
 
Xsteel testi
Xsteel testiXsteel testi
Xsteel testisersld85
 
Xsteel ozel-hocasi
Xsteel ozel-hocasiXsteel ozel-hocasi
Xsteel ozel-hocasisersld85
 
Xsteel ornek
Xsteel ornekXsteel ornek
Xsteel orneksersld85
 
Solidworks proje
Solidworks projeSolidworks proje
Solidworks projesersld31
 
0 btg - urun gelistirme yasam donugusu cozumleri (borland ve embarcadero) ara...
0 btg - urun gelistirme yasam donugusu cozumleri (borland ve embarcadero) ara...0 btg - urun gelistirme yasam donugusu cozumleri (borland ve embarcadero) ara...
0 btg - urun gelistirme yasam donugusu cozumleri (borland ve embarcadero) ara...BTGrubu
 
Xsteel odevi
Xsteel odeviXsteel odevi
Xsteel odevisersld85
 
Xsteel projeleri
Xsteel projeleriXsteel projeleri
Xsteel projelerisersld85
 
Xsteel ders-notu
Xsteel ders-notuXsteel ders-notu
Xsteel ders-notusersld85
 
Xsteel egitimi-kocaeli
Xsteel egitimi-kocaeliXsteel egitimi-kocaeli
Xsteel egitimi-kocaelisersld85
 
C sharp-2012
C sharp-2012C sharp-2012
C sharp-2012sersld30
 
Solidworks projeleri
Solidworks projeleriSolidworks projeleri
Solidworks projelerisersld31
 
Solidworks projeleri
Solidworks projeleriSolidworks projeleri
Solidworks projelerisersld57
 
Solidworks projeleri
Solidworks projeleriSolidworks projeleri
Solidworks projelerisersld58
 
Xsteel teknigi
Xsteel teknigiXsteel teknigi
Xsteel teknigisersld85
 
React.js Web Programlama
React.js Web ProgramlamaReact.js Web Programlama
React.js Web ProgramlamaCihan Özhan
 

Similar to Yetenek Modellerinin Gerçekleştirimi Üzerine Bir Durum Çalışması (20)

Xsteel ornegi
Xsteel ornegiXsteel ornegi
Xsteel ornegi
 
Xsteel testleri
Xsteel testleriXsteel testleri
Xsteel testleri
 
Yazılım Mimarileri - Yazılım Geliştirme Modelleri
Yazılım Mimarileri - Yazılım Geliştirme ModelleriYazılım Mimarileri - Yazılım Geliştirme Modelleri
Yazılım Mimarileri - Yazılım Geliştirme Modelleri
 
Yazılım mimarisi yazılım müh.
Yazılım mimarisi yazılım müh.Yazılım mimarisi yazılım müh.
Yazılım mimarisi yazılım müh.
 
Xsteel dokumani
Xsteel dokumaniXsteel dokumani
Xsteel dokumani
 
Xsteel testi
Xsteel testiXsteel testi
Xsteel testi
 
Xsteel ozel-hocasi
Xsteel ozel-hocasiXsteel ozel-hocasi
Xsteel ozel-hocasi
 
Xsteel ornek
Xsteel ornekXsteel ornek
Xsteel ornek
 
Solidworks proje
Solidworks projeSolidworks proje
Solidworks proje
 
0 btg - urun gelistirme yasam donugusu cozumleri (borland ve embarcadero) ara...
0 btg - urun gelistirme yasam donugusu cozumleri (borland ve embarcadero) ara...0 btg - urun gelistirme yasam donugusu cozumleri (borland ve embarcadero) ara...
0 btg - urun gelistirme yasam donugusu cozumleri (borland ve embarcadero) ara...
 
Xsteel odevi
Xsteel odeviXsteel odevi
Xsteel odevi
 
Xsteel projeleri
Xsteel projeleriXsteel projeleri
Xsteel projeleri
 
Xsteel ders-notu
Xsteel ders-notuXsteel ders-notu
Xsteel ders-notu
 
Xsteel egitimi-kocaeli
Xsteel egitimi-kocaeliXsteel egitimi-kocaeli
Xsteel egitimi-kocaeli
 
C sharp-2012
C sharp-2012C sharp-2012
C sharp-2012
 
Solidworks projeleri
Solidworks projeleriSolidworks projeleri
Solidworks projeleri
 
Solidworks projeleri
Solidworks projeleriSolidworks projeleri
Solidworks projeleri
 
Solidworks projeleri
Solidworks projeleriSolidworks projeleri
Solidworks projeleri
 
Xsteel teknigi
Xsteel teknigiXsteel teknigi
Xsteel teknigi
 
React.js Web Programlama
React.js Web ProgramlamaReact.js Web Programlama
React.js Web Programlama
 

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

  • 1. Yetenek Modellerinin Gerçekleştirimi Üzerine Bir Durum Çalışması Orçun Dayıbaş Aselsan A.Ş. SST-MD-YMM Aralık, 2012 / İzmir Tasnif Dışı
  • 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 2
  • 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 3
  • 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 4
  • 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 5
  • 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 6
  • 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 7
  • 8. Yetenek Modeli • Yetenek modelinin ilk sürümü (sezgisel) Tasnif Dışı O.Dayıbaş / UYMK’12 / 7-8 Aralık 2012 8
  • 9. 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ı Tasnif Dışı O.Dayıbaş / UYMK’12 / 7-8 Aralık 2012 9
  • 10. Yetenek Modeli • Yetenek modelinin son sürümü Tasnif Dışı O.Dayıbaş / UYMK’12 / 7-8 Aralık 2012 10
  • 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 11
  • 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 12
  • 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 13
  • 14. Gerçekleştirim • Mimari Bileşenler ve Yetenekler Tasnif Dışı O.Dayıbaş / UYMK’12 / 7-8 Aralık 2012 14
  • 15. Büyük Resim • Yetenekten gerçekleştirime geçiş Tasnif Dışı O.Dayıbaş / UYMK’12 / 7-8 Aralık 2012 15
  • 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 16
  • 17. Teşekkürler… • Sorularınız? odayibas Tasnif Dışı O.Dayıbaş / UYMK’12 / 7-8 Aralık 2012 17
  • 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 Tasnif Dışı O.Dayıbaş / UYMK’12 / 7-8 Aralık 2012 18