Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Tasnif Dışı
Olay Tabanlı Bir Yazılım
Mimarisinde Bağımlılık İletimi ve
Bileşen Gerçekleştirimi
Orçun Dayıbaş, Serdar Doğan...
Tasnif Dışı O.Dayıbaş, S.Doğan / UYMS’13 / 25-28 Eylül 2013 2
İçerik
• Giriş
• Yetenek Modeli ve Gereksinim Yönetimi
• Bil...
Tasnif Dışı
Giriş
O.Dayıbaş, S.Doğan / UYMS’13 / 25-28 Eylül 2013 3
• UYMK 2012 [1]
– “Yetenek Modellerinin
Gerçekleştirim...
Tasnif Dışı
Yetenekler ve Gereksinim Yönetimi
• Yetenekten Gerçekleştirime Yarı Otomatik Geçiş
O.Dayıbaş, S.Doğan / UYMS’1...
Tasnif Dışı
Yetenekler ve Gereksinim Yönetimi
• Yetenek Modeli (bkz. [1], [2])
• Yetenek-Gereksinim Eşlemesi
O.Dayıbaş, S....
Tasnif Dışı
Bileşen Tasarımı
• SOLID İlkeleri [3]
– SRP (Single Responsibility Principle)
– OCP (Open/closed Principle)
– ...
Tasnif Dışı
Mimaride Bileşen Etkileşimleri
• Nesne yönelimli bir mimaride bileşen
etkileşimleri iki temel sınıfa ayrılabil...
Tasnif Dışı
Yolcu Çerçevesi
• Katmanlı GKA uygulaması geliştirme alt yapısı.
– Google Guava EventBus + Google Guice temell...
Tasnif Dışı
Yolcu Çerçevesi
• Kurallar
– İş akışı çağrıları aşağıdaki gibi kısıtlanmıştır.
O.Dayıbaş, S.Doğan / UYMS’13 / ...
Tasnif Dışı
Sonuç ve Değerlendirme
• Ölçümler
O.Dayıbaş, S.Doğan / UYMS’13 / 25-28 Eylül 2013 10
Tasnif Dışı
Sonuç ve Değerlendirme
• Yetenek tabanlı kullanılabilir varlıkların (bileşen
ve gereksinimler) üretilmesi.
– 3...
Tasnif Dışı
Teşekkürler…
O.Dayıbaş, S.Doğan / UYMS’13 / 25-28 Eylül 2013 12
• Sorularınız?
odayibas odayibas@aselsan.com.tr
Tasnif Dışı
Kaynakça
• [1] O.Dayıbaş, “Yetenek Modellerinin Gerçekleştirimi
Üzerine Bir Durum Çalışması”, UYMK (2012).
• [...
Upcoming SlideShare
Loading in …5
×

Olay Tabanlı Bir Yazılım Mimarisinde Bağımlılık İletimi ve Bileşen Gerçekleştirimi

676 views

Published on

Olay yolu (Event Bus), yazılım bileşenleri arasında Yayımcı-Abone (Publish-Subscribe) tarzına uygun iletişim sağlayan ve bunu yaparken yazılım bileşenlerinin birbirlerinden haberdar olmasını gerektirmeyen bir yapıdır. Bağımlılık iletimi (Dependency Injection) de bileşen bağımlılıklarının dışarıdan iletilerek bileşenlerin yapılandırılabilmesine olanak sağlar. Mimarisi olay yolu üzerine kurgulanmış bir yazılımda bağımlılık iletimi kullanılması durumunda, bu iki yaklaşımın etkileşimi, denetim altına alınması gereken bir husus haline gelir. Bu çalışma kapsamında, sözü edilen denetimin yazılım geliştirme süreci içerisinde nasıl ele alınabileceği tartışılmıştır. Bu bağlamda, geliştirdiğimiz derinlik ölçüm sonarı (iskandil sistemi) grafiksel kullanıcı arayüz (GKA) yazılım mimarisine temel olan “Yolcu” çerçevesi ve ilgili proje kapsamında edinilen kullanım deneyimleri de makale kapsamında verilmiştir.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Olay Tabanlı Bir Yazılım Mimarisinde Bağımlılık İletimi ve Bileşen Gerçekleştirimi

  1. 1. Tasnif Dışı Olay Tabanlı Bir Yazılım Mimarisinde Bağımlılık İletimi ve Bileşen Gerçekleştirimi Orçun Dayıbaş, Serdar Doğan Eylül, 2013 – İzmir/Türkiye
  2. 2. Tasnif Dışı O.Dayıbaş, S.Doğan / UYMS’13 / 25-28 Eylül 2013 2 İçerik • Giriş • Yetenek Modeli ve Gereksinim Yönetimi • Bileşen Tasarımı • Yazılım Mimarilerinde Bileşen Etkileşimleri • Yolcu Çerçevesi • Sonuç ve Değerlendirme • Soru-Cevap
  3. 3. Tasnif Dışı Giriş O.Dayıbaş, S.Doğan / UYMS’13 / 25-28 Eylül 2013 3 • UYMK 2012 [1] – “Yetenek Modellerinin Gerçekleştirimi Üzerine Bir Durum Çalışması”, O.Dayıbaş • Sorun – Uyarlanabilir iskandil GKA yazılımı nasıl etkin gerçeklenebilir? • Sonar projeleri için yeniden kullanılabilir yetenekler. • Deniz projeleri için yeniden kullanılabilir bileşenler. • Çözüm – Olay tabanlı mimari + Bağımlılık iletimi
  4. 4. Tasnif Dışı Yetenekler ve Gereksinim Yönetimi • Yetenekten Gerçekleştirime Yarı Otomatik Geçiş O.Dayıbaş, S.Doğan / UYMS’13 / 25-28 Eylül 2013 4
  5. 5. Tasnif Dışı Yetenekler ve Gereksinim Yönetimi • Yetenek Modeli (bkz. [1], [2]) • Yetenek-Gereksinim Eşlemesi O.Dayıbaş, S.Doğan / UYMS’13 / 25-28 Eylül 2013 5
  6. 6. Tasnif Dışı Bileşen Tasarımı • SOLID İlkeleri [3] – SRP (Single Responsibility Principle) – OCP (Open/closed Principle) – LSP (Liskov Substitution Principle) – ISP (Interface Segregation Principle) – DIP (Dependency Inversion Principle) • Katmanlı mimari – Kullanıcı Arayüzü Katmanı (KA’lar ve KA Yöneticiler) – İş Mantığı Katmanı (İş Yöneticiler) – Soyutlama Katmanı (İş Yöneticiler) O.Dayıbaş, S.Doğan / UYMS’13 / 25-28 Eylül 2013 6
  7. 7. Tasnif Dışı Mimaride Bileşen Etkileşimleri • Nesne yönelimli bir mimaride bileşen etkileşimleri iki temel sınıfa ayrılabilir. – Olgu Yaratma (A) – İş Akışı Çağrıları (B) • Olgu Yaratma – Bağımlılık İletimi (Google Guice [4]) • İş Akışı Çağrıları – Olay tabanlı iletişim (Google Guava [5]) O.Dayıbaş, S.Doğan / UYMS’13 / 25-28 Eylül 2013 7
  8. 8. Tasnif Dışı Yolcu Çerçevesi • Katmanlı GKA uygulaması geliştirme alt yapısı. – Google Guava EventBus + Google Guice temelli. • Temel bileşenleri: Olay yolu, KA Yönetici, İş Yönetici. O.Dayıbaş, S.Doğan / UYMS’13 / 25-28 Eylül 2013 8
  9. 9. Tasnif Dışı Yolcu Çerçevesi • Kurallar – İş akışı çağrıları aşağıdaki gibi kısıtlanmıştır. O.Dayıbaş, S.Doğan / UYMS’13 / 25-28 Eylül 2013 9 1: Kullanıcı girdileri 2: İş akışı başlatan olaylar 3,4: Platform durum güncellemeleri ve alt iş adımları 5,6: Zaman uyumlu alt iş adımları
  10. 10. Tasnif Dışı Sonuç ve Değerlendirme • Ölçümler O.Dayıbaş, S.Doğan / UYMS’13 / 25-28 Eylül 2013 10
  11. 11. Tasnif Dışı Sonuç ve Değerlendirme • Yetenek tabanlı kullanılabilir varlıkların (bileşen ve gereksinimler) üretilmesi. – 316 gereksinim / 49 bileşen / 24 yetenek. • “Boilerplate” kodlardan kurtulma. – Gereksinimlerin %72’si: 45133 satır (2011). – Tüm gereksinimler + iki proje: 19747 satır (2013). • Yeniden kullanılabilir çerçeve gerçekleştirimi: Yolcu. O.Dayıbaş, S.Doğan / UYMS’13 / 25-28 Eylül 2013 11
  12. 12. Tasnif Dışı Teşekkürler… O.Dayıbaş, S.Doğan / UYMS’13 / 25-28 Eylül 2013 12 • Sorularınız? odayibas odayibas@aselsan.com.tr
  13. 13. Tasnif Dışı Kaynakça • [1] O.Dayıbaş, “Yetenek Modellerinin Gerçekleştirimi Üzerine Bir Durum Çalışması”, UYMK (2012). • [2] K.Pohl, “Requirements Engineering: Fundamentals, Principles, and Techniques”, Springer (2010). • [3] R.C. Martin, “Design Principles and Design Patterns”, Object Mentor (2000). • [4] “Google Guice – A Lightweight Dependency Injection Framework”, http://code.google.com/p/google-guice • [5] “Guava: Google Core Libraries for Java 1.6+”, http://code.google.com/p/ guava-libraries O.Dayıbaş, S.Doğan / UYMS’13 / 25-28 Eylül 2013 13

×