Akademik BiliÅim '10 10 - 12 Åubat 2010 MuÄla
Akademik BiliÅim '10 10 - 12 Åubat 2010 MuÄla
Akademik BiliÅim '10 10 - 12 Åubat 2010 MuÄla
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Geleneksel Yazılım Mühendisliğinden Alana Özel Yazılım Mühendisliğine DoğruÇağatay Çatal<strong>Akademik</strong> Bilişim’<strong>10</strong> - XII. <strong>Akademik</strong> Bilişim Konferansı Bildirileri<strong>10</strong> - <strong>12</strong> Şubat 20<strong>10</strong> Muğla ÜniversitesiMimari Temelli Yazılım Mühendisliği(Architecture-Based Software Engineering) isebu problemi, daha az sayıda seçenek ile adreslemektedir.“İhtiyaç duyulan temel bileşenlernelerdir, bu bileşenlerin etkileşimleri nelerdir,uygun sistem konfigürasyonları için ne tür birleşmelergereklidir” gibi sorulara yanıt verilerek,çözüm uzayındaki seçenek sayısı azaltılır.Verilen problem için, potansiyel mimarilerdenbirkaç tanesi seçilir ve bu mimarilerden birisiile sistem gerçeklenir [1]. Şekil 2’de mimaritemelli yazılım geliştirme resmedilmektedir.Alana Özel Yazılım Mühendisliğinde (Domain-Specific Software Engineering) ise problemuzayının bölgelerini (alan), Alana Özel YazılımMimarilerine (Domain-Specific Software Architecture)eşleştiriyoruz. Bu mimariler, dahasonra uygulamaya özel mimarilere özelleştiriliyorve bu özelleştirilmiş mimari gerçekleniyor.Alanlar, iyi tanımlanmış problem sınıflarıdır.Her alan için, etkin mimari çözümleritanımlanabilmektedir. Bu çözümlere, ReferansMimari (Reference Architecture) adı verilmektedir.Alan içindeki her yeni problem için yenimimariler geliştirmek yerine, çözümler referansmimariyi uyarlayarak türetilir [1]. Şekil3’de, Alana Özel Yazılım Mühendisliğinin basitleştirilmişbir şekli verilmektedir.Alana Özel Yazılım Mühendisliğinin, birbiriile ilişkili üç temel ilgisi bulunmaktadır: Alan,İşletme ve Teknoloji [2].Alan: Problem uzayını sınırlandırmak için biralan mevcut olmalıdır.Teknoloji: Alan üzerinde farklı teknolojik çözümleruygulanabilmelidir.İşletme: Maliyetleri azaltma ve pazar payınıbüyütme gibi işletme amaçları nedeni ile alanaözel yazılım mühendisliği uygulanması tercihedilmektedir. Bu üç alanın kesişimi, alana özelyazılım mühendisliğini gösterir.194Şekil 1. Geleneksel yazılım mühendisliğiŞekil 2. Mimari temelli yazılım mühendisliğiŞekil 3. Alana özel yazılım mühendisliğiAlana örnek olarak; otomotiv, medikal teknolojisi,tüketici elektroniği, telekomünikasyon,ara katman (middleware) teknolojisi, masaüstüuygulamaları, oyun programlama, CAD/CAM,aviyonik sistemler verilebilir. Her bir alanı dakendi içinde alt alanlara ayırmak mümkündür.Örneğin; aviyonik alanını sabit kanatlı (fixedwingaircraft) ve döner kanatlı (rotary-wing aircraft)platformlar olarak iki alt alana ayırabiliriz.Bu alanların, gerektirdiği uzmanlık bilgisi, ilgilimühendislerin yetenekleri farklı olacaktır [1].Şekil 4’te Alana Özel Yazılım Mühendisliğininüç kavram ile ilişkili olduğu gösterilmektedir.Şekil 4. Alan-işletme-teknoloji etkileşimiAlan ve işletmenin kesiştiği bölge, çekirdekyetenekler (core competencies) olarak ifadeedilmektedir. İşletmeler, yeteneklerini belirlialanlarda yoğunlaştırarak o alanda başarılıolmayı hedeflemektedirler. İşletme ve teknolojininkesiştiği bölge, genel alt yapı (generalinfrastructure) olarak tanımlanmaktadır. Üzerindeçalışılan alandan bağımsız olarak işletmelerin,birçok probleme çözüm getirebilmesiiçin alt yapısında IDE’ler, derleyiciler, yazılımmodelleme araçları bulunmalıdır. Teknoloji vealanın kesiştiği bölge ise bir alana özel çözümler(solutions specialized for a domain) olaraktanımlanmaktadır. Bu çözümler, işletmeninamacından bağımsızdır. Örneğin; özellikle birgörev bilgisayarı (mission computer) yazılımıgeliştirmek için geliştirilmiş olan bir derleyici195veya programlama dili bu kategoriye girmektedir[1]. Alan, işletme ve teknolojinin kesiştiğibölge ise Alana Özel Yazılım Mühendisliğinioluşturmaktadır. İşletmenin amaçları doğrultusunda,özel bir alandaki problemin çözümüiçin, gerekli teknolojinin yardımıyla çözümlerinoluşturulması olarak ifade edilebilir.Alana Özel Yazılım Mühendisliğinin uygulandığıdurumda, sıradan bir yazılım mimarisindençok daha özel çıktıların oluşturulması gerekmektedir.Bu çıktılar temel olarak,• Alan Modeli ve• Alana Özel Yazılım Mimarisiolarak ifade edilebilir.Alana Özel Yazılım Mimarisi aşağıdaki üç parçadanoluşmaktadır [3]:• Referans Mimari (Bir alan için genel çerçeveyitanımlar)• Bileşen kütüphanesi (Alan uzmanlığınınyeniden kullanılabilir parçalarını içerir)• Uygulama konfigürasyon yöntemi (Uygulamayaözel gereksinimleri karşılamak içingerekli bileşenleri seçer ve yapılandırır)Şekil 5’de alana özel yazılım mimarisi merkezligeliştirme süreci [1] resmedilmektedir.Şekil 5. Alana özel yazılım mühendisliği süreci