Geleneksel Yazılım Mühendisliğinden Alana Özel Yazılım Mühendisliğine Doğru



Benzer belgeler
Geleneksel Yazılım Mühendisliğinden Alana Özel Yazılım Mühendisliğine Doğru

Yazılım Mimari Tasarımından Yazılım Geliştirme Çatısının Üretilmesinde Model Güdümlü Bir Yaklaşım

İleri Yazılım Mimarisi (SE 658) Ders Detayları

BM208- Nesneye Dayalı Analiz ve Tasarım. Sunum 7

Bilişim Sistemleri. Modelleme, Analiz ve Tasarım. Yrd. Doç. Dr. Alper GÖKSU

ARDIŞIL DİYAGRAM YAPI DİYAGRAMI. Sistem Analizi ve Tasarımı Dersi

Eylül 2007 de v1.0 ı yayınlanan SysML sayesinde endüstri mühendislerinin de ihtiyacı karşılanmış oldu.

Yaz.Müh.Ders Notları #6 1

ALICIA Projesi ve SDT A.Ş. nin Katılımı

Bilişim Sistemleri. Modelleme, Analiz ve Tasarım. Yrd. Doç. Dr. Alper GÖKSU

Bilgisayar Mühendisliği. Bilgisayar Mühendisliğine Giriş 1

100 % Özel Türk Şirketi


i eknolojt yon Ġnovas

Düzce Üniversitesi Teknoloji Transfer Ofisi ve ilgili mekanizmaların vizyonu, Bölgesel, ulusal ve

Askeri Gemilerde Entegre Platform Kontrol ve Köprüüstü Sistemleri Endüstri Günü

MilSOFT TASNİF DIŞI 1/6

Görünümler ve Ötesi Yaklaşımıyla Radar Yazılım Mimarisi Dokümantasyonu Tecrübeleri. Ali Özzeybek M. Devrim Tokcan Murat Tuncer

Savunma Sanayii Telnolojileri Sertifika Programı

Elbistan Meslek Yüksek Okulu Güz Yarıyılı

08225 AĞ TEMELLERĠ. Elbistan Meslek Yüksek Okulu GÜZ Yarıyılı. Öğr. Gör. Murat KEÇECĠOĞLU. 20 EKi Salı, Çarşamba

YZM 2108 Yazılım Mimarisi ve Tasarımı

Kurumsal Mimari. (Enterprise Architecture) MUSTAFA ULUS, 2015

Yazılım Mühendisliği Bölüm - 3 Planlama

Bilgi Sistemleri Tasarımı (SE 503) Ders Detayları

Sensör Birleştirme Eğitimi. Hızlı jet uçağa monte görev sistemlerinin geliştirilmiş operasyonel performansı vasıtasıyla avantaj sağlayın

DGridSim Gerçek Zamanlı Veri Grid Simülatörü. Yazılım Tasarımı Dokümanı v Mustafa Atanak Sefai Tandoğan Doç. Dr.

BLG Sistem Analizi ve Tasarımı. Öğr. Grv. Aybike ŞİMŞEK

YAZILIM MÜHENDİSLİĞİNİN TEMELLERİ 9.Hafta. Bakım

SENTEZ TABANLI YAZILIM MİMARİSİ TASARIM YAKLAŞIMININ ESSENCE ÇERÇEVESİYLE MODELLENMESİ

YAZILIM ÜRÜN HATTINDA YETENEK MODELİNDEN ÜRÜN KONFİGÜRASYONUNUN OLUŞTURULMASI

Bilgisayar Mühendisliği

Gereksinim Mühendisliği (SE 560) Ders Detayları

T.C. ERCİYES ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ EĞİTİM ÖĞRETİM YILI DERS KATALOĞU

MESLEKİ TERMİNOLOJİ I 1. HAFTA YAZILIM MÜH. TEMEL KAVRAMLAR

Kullanım Durumu Diyagramları (Use-case Diyagramları)

TEKİM - Teknolojik ve Kurumsal İşbirliği Merkezi Bilgi ve İletişim Sistemleri Sanayi, Danışmanlık ve Ticaret Ltd. Sti. Adres (Merkez): Mustafa Kemal

Sınıf Diyagramları Amaç: Sınıf Diyagramları Nasıl Çizilir?

YÖK TEZLERİ PROJE KELİME TARAMASI

Öğretim planındaki AKTS Ulusal Kredi

NESNEYE YÖNELİK PROGRAMLAMA Unified Modelling Language (UML) Bütünleşik Modelleme Dili

Nagios XI Günümüzün talep gören kurumsal gereksinimleri için en güçlü BT altyapısı gözetim ve uyarı çözümüdür.

Yazılım Mühendisliğinde İleri Konular (SE 650) Ders Detayları

Bilişim Sistemleri. Modelleme, Analiz ve Tasarım. Yrd. Doç. Dr. Alper GÖKSU

Sinirsel Benzetim ve NSL. İlker Kalaycı 06, 2008

Yıldız Teknik Üniversitesi Bilgisayar Mühendisliği Bölümü. 13 Kasım 2010

BENZERSİZ SORUNLARA BENZERSİZ ÇÖZÜMLER

Yazılım Mimarisi (SE 322) Ders Detayları

Tarih Saat Modül Adı Öğretim Üyesi. 01/05/2018 Salı 3 Bilgisayar Bilimlerine Giriş Doç. Dr. Hacer Karacan

Bilindiği üzere Bilgi Güvenliği Yönetim Sistemi, bilgi ve bilgi varlıklarının

Yazılım Kalite Yönetimi (SE 554) Ders Detayları

Bilgiyi Keşfedin! Özelleştirme, Eklenti ve Veri Entegrasyonu Kurumsal Seviyede Yönetim ve Performans

Bilindiği üzere Bilgi Güvenliği Yönetim Sistemi, bilgi ve bilgi varlıklarının

Yazılım Mühendisliği Bölüm - 3 Planlama. Cengiz GÖK

Doç. Dr. Cüneyt BAYILMIŞ

WINDESKCONCENTO. sıgnum. Kurumsal İş Süreçleri Uygulamaları. windesk.com.tr

Yazılım Yeniden Yapılamaya Yönelik Bir Kurumsal Mimari: Model Güdümlü ve Ontoloji Tabanlı Bir Yaklaşım

Kurumsal Yönetim Sistemleri Sistemleri

YENİ NESİL AÇIK ARŞİVLER İLKAY HOLT COAR (CONFEDERATION OF OPEN ACCESS REPOSITORIES) AÇIK ERİŞİM KONFERANSI 27 EKIM 2016 TÜBİTAK ANKARA

VERİ TABANI SİSTEMLERİ

UHeM ve Bulut Bilişim

AKILLI TEKNOLOJİLER ENTEGRE ÇÖZÜMLER. Cenk ÖZEN OPERASYONLAR GENEL MÜDÜR YARDIMCISI. 1/22 28 Kasım 2017

BİLİŞİM SİSTEMLERİ GÜVENLİĞİNDE YENİ EĞİLİMLER

Komuta Kontrol Muhabere Bilgisayar ve İstihbarat (C4I) Yüksek Lisans Eğitiminin Askeri Personel için Önemi

BİLİŞİM SİSTEMLERİNİN PRENSİPLERİ

Chapter 5 Sistem Modelleme. Lecture 1. Chapter 5 System modeling

Pardus. S.Çağlar Onur, 21 Aralık Pardus Projesi [TÜBİTAK / UEKAE] Linux Kullanıcıları Derneği

Model Güdümlü Geliştirme ile Gömülü Kaynakların Yönetimi

Yaz.Müh.Ders Notları #4 1

HAVELSAN, Türk Silahlı Kuvvetleri Güçlendirme Vakfı nın bir iştirakidir.

Bilkent Üniversitesi Bilgisayar Mühendisliği Bölümü. Bilgisayar Mühendisliği

Atış Kontrol Yazılımlarında Ürün Hattı Yaklaşımının Uygulanması

Doç. Dr. Cüneyt BAYILMIŞ

GÖRSEL PROGRALAMA HAFTA 2 PROGRAMLAMA DİLLERİNE GİRİŞ

ED Model Yapıtaşı Haberleşme Altyapısı

Yazılım Mühendisliği 1

NESNEYE YÖNELİK TASARIM SÜRECİ

Yazılım Nedir? Yazılım Mühendisi. Yazılım Mühendisliği. ACM/IEEE Etik Kodu. Etik Kural için Önsöz BIL 304 YAZILIM MÜHENDİSLİĞİ

Yazılım Mühendisliği Bölüm - 2 Yazılım Geliştirme Yaşam Döngüsü. Cengiz GÖK

COĞRAFİ TABANLI MÜHENDİSLİK PROJELERİNİN AŞAMALARI VE YÖNETİMİ. Ş.KUŞCU, Emekli öğr. Üyesi,

Bir yazılım geliştirme metodolojisi aşağıdaki adımlardan meydana gelir; Yazılım geliştirme sürecine destek verecek araçlar, modeller ve yöntemler.

SBE16 / Akıllı Metropoller Ekim 2016 / İSTANBUL

KTO KARATAY ÜNİVERSİTESİ MEKATRONİK MÜHENDİSLİĞİ BÖLÜMÜ

Arş.Gör.Muhammet Çağrı Gencer Bilgisayar Mühendisliği KTO Karatay Üniversitesi 2015

Pardus. A. Murat Eren, 25 Mart Pardus Geliştiricisi. Pardus Yenilikleri Sık Sorulan Sorular

SAVUNMA SANAYİİ İÇİN ARAŞTIRMACI YETİŞTİRME PROGRAMI (SAYP)

Deniz Savunma Sistemleri Alanında Sistematik Yazılım Yeniden Kullanım Yaklaşımı

İş Zekası Sistemi Veriyi Stratejik Bilgiye Dönüştürür

Yazılım Geliştirme Sürecinde Değer Akış Haritalama Yöntemi Uygulama Çalışması

ĐSTEMCĐ SUNUCU SĐSTEMLER DERSĐ FĐNAL ÇALIŞMASI SORULAR YANITLAR

e-öğrenme Çözümleri Geliştirmek

Web Tabanlı CMMI Süreç Yönetimi Uygulamalarının Süreç ve Yazılım Geliştirme Performansına Pozitif Etkileri

NESNEYE YÖNELİK ÇÖZÜMLEME SÜRECİ

9.DERS Yazılım Geliştirme Modelleri

Sosyal Ağlar ve Çevrimiçi Kütüphane Katalogları: OPAC 2.0

ÖNSÖZ ŞEKİL LİSTESİ TABLO LİSTESİ

Veritabanı Yönetim Sistemleri (Veritabanı Kavramı) Veri Modelleri

Veritabanı Yönetim Sistemleri (Veritabanı Kavramı) İş Kuralları ve Veri Modelleri

Bulanık Mantık Tabanlı Uçak Modeli Tespiti

GridAE: Yapay Evrim Uygulamaları için Grid Tabanlı bir Altyapı

Transkript:

Akademik Bilişim 10 - XII. Akademik Bilişim Konferansı Bildirileri 10-12 Şubat 2010 Muğla Üniversitesi Geleneksel Yazılım Mühendisliğinden Alana Özel Yazılım Mühendisliğine Doğru TÜBİTAK-Marmara Araştırma Merkezi, Bilişim Teknolojileri Enstitüsü, Kocaeli cagatay.catal@bte.mam.gov.tr Özet: Geleneksel Yazılım Mühendisliği yaklaşımında, bir problem çok sayıda yöntemle çözülebilmektedir. Her defasında benzer problemlere yeni çözümler üretmenin etkin olmadığının anlaşılması ile birlikte, Alana Özel Yazılım Mimarisi ve Yazılım Ürün Hatları kavramları literatürde ortaya konulmuştur. Bu çalışmada, Alana Özel Yazılım Mühendisliği yaklaşımının ülkemize sağlayacağı katma değer açısından değerlendirilmesi yapılarak, üniversite-sanayi işbirliğine giden yolda ne tür girdiler sunabileceği tartışılmıştır. İşletmeler, yeni ürünleri geliştirirken maliyetleri azaltabilmek ve aynı masrafları tekrarlamamak için, tekli-sistem mühendisliği yaklaşımı yerine, ürün hattı temelli mühendislik yaklaşımlarını uygulamayı tercih etmeye başlamışlardır. Henüz ülkemiz açısından çok yeni sayılabilecek bu geliştirme yaklaşımına geçiş için atılabilecek adımlar, bu çalışma bağlamında ele alınmış ve gerekli eylem adımları belirlenmiştir. Anahtar Sözcükler: Alana Özel Yazılım Mühendisliği, Yazılım Ürün Hatları, Mimari Temelli Yazılım Mühendisliği, Yazılım Mimarisi Towards Domain-Specific Software Engineering from Traditional Software Engineering Abstract: In Traditional Software Engineering approach, one problem can be solved in a large number of ways. Because producing new solutions for similar problems every time is infeasible, Domain-Specific Software Architecture and Software Product Lines concepts were proposed in literature. In this study, Domain-Specific Software Engineering approach was evaluated from the national point of view, and its benefits for the university-industry collaboration were discussed. Recently, businesses started to prefer product line-based engineering approaches instead of single-systems engineering because of not repeating same expenses and reducing costs to create new products. In this study, the necessary steps to move to this engineering approach that is a very new one for our country are described and action items are identified. Keywords: Domain-Specific Software Engineering, Software Product Lines, Architecture-Based Software Engineering, Software Architecture. 1. Giriş 193 Yazılım geliştirme ile çözülebilecek problemlerin, çok sayıda çözüm yöntemi mevcuttur. Yazılım mühendisleri; problem uzayındaki problem tanımını kullanarak, çözüm uzayında yer alan bir yazılım sistemine bu problemi dönüştürürler. Problem uzayı ve çözüm uzayı, farklı terminolojiler kullandığından ve bir yazılım gereksinimini çok farklı şekillerde ele almak mümkün olduğundan, bu dönüşüm oldukça zordur. Çok farklı seçeneklerin mevcut olması, çok farklı çözümleri beraberinde getirmektedir [1]. Geleneksel Yazılım Mühendisliğinin basitleştirilmiş bir şekli Şekil 1 de resmedilmektedir. Şekilde, bir problem için çok sayıda çözüm yönteminin bulunduğu resmedilmiştir ve uygun çözümü bulmak bu durumda oldukça zordur.

Geleneksel Yazılım Mühendisliğinden Alana Özel Yazılım Mühendisliğine Doğru Mimari Temelli Yazılım Mühendisliği (Architecture-Based Software Engineering) ise bu problemi, daha az sayıda seçenek ile adreslemektedir. İhtiyaç duyulan temel bileşenler nelerdir, bu bileşenlerin etkileşimleri nelerdir, uygun sistem konfigürasyonları için ne tür birleşmeler gereklidir gibi sorulara yanıt verilerek, çözüm uzayındaki seçenek sayısı azaltılır. Verilen problem için, potansiyel mimarilerden birkaç tanesi seçilir ve bu mimarilerden birisi ile sistem gerçeklenir [1]. Şekil 2 de mimari temelli yazılım geliştirme resmedilmektedir. Alana Özel Yazılım Mühendisliğinde (Domain- Specific Software Engineering) ise problem uzayının bölgelerini (alan), Alana Özel Yazılım Mimarilerine (Domain-Specific Software Architecture) eşleştiriyoruz. Bu mimariler, daha sonra uygulamaya özel mimarilere özelleştiriliyor ve bu özelleştirilmiş mimari gerçekleniyor. Alanlar, iyi tanımlanmış problem sınıflarıdır. Her alan için, etkin mimari çözümleri tanımlanabilmektedir. Bu çözümlere, Referans Mimari (Reference Architecture) adı verilmektedir. Alan içindeki her yeni problem için yeni mimariler geliştirmek yerine, çözümler referans mimariyi uyarlayarak türetilir [1]. Şekil 3 de, Alana Özel Yazılım Mühendisliğinin basitleştirilmiş bir şekli verilmektedir. Alana Özel Yazılım Mühendisliğinin, birbiri ile ilişkili üç temel ilgisi bulunmaktadır: Alan, İşletme ve Teknoloji [2]. Şekil 1. Geleneksel yazılım mühendisliği Şekil 2. Mimari temelli yazılım mühendisliği Alan: Problem uzayını sınırlandırmak için bir alan mevcut olmalıdır. Teknoloji: Alan üzerinde farklı teknolojik çözümler uygulanabilmelidir. İş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ı tercih edilmektedir. Bu üç alanın kesişimi, alana özel yazılım mühendisliğini gösterir. Şekil 3. Alana özel yazılım mühendisliği 194

Akademik Bilişim 10 - XII. Akademik Bilişim Konferansı Bildirileri 10-12 Şubat 2010 Muğla Üniversitesi Alana ö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ı da kendi içinde alt alanlara ayırmak mümkündür. Örneğin; aviyonik alanını sabit kanatlı (fixedwing aircraft) ve döner kanatlı (rotary-wing aircraft) platformlar olarak iki alt alana ayırabiliriz. Bu alanların, gerektirdiği uzmanlık bilgisi, ilgili mü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. veya programlama dili bu kategoriye girmektedir [1]. Alan, işletme ve teknolojinin kesiştiği bölge ise Alana Özel Yazılım Mühendisliğini oluşturmaktadır. İşletmenin amaçları doğrultusunda, özel bir alandaki problemin çözümü için, gerekli teknolojinin yardımıyla çözümlerin oluş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 Mimarisi Şekil 4. Alan-işletme-teknoloji etkileşimi Alan ve işletmenin kesiştiği bölge, çekirdek yetenekler (core competencies) olarak ifade edilmektedir. İşletmeler, yeteneklerini belirli alanlarda yoğunlaştırarak o alanda başarılı olmayı hedeflemektedirler. İşletme ve teknolojinin kesiştiği bölge, genel alt yapı (general infrastructure) olarak tanımlanmaktadır. Üzerinde çalışılan alandan bağımsız olarak işletmelerin, birçok probleme çözüm getirebilmesi için alt yapısında IDE ler, derleyiciler, yazılım modelleme araçları bulunmalıdır. Teknoloji ve alanın kesiştiği bölge ise bir alana özel çözümler (solutions specialized for a domain) olarak tanımlanmaktadır. Bu çözümler, işletmenin amacından bağımsızdır. Örneğin; özellikle bir görev bilgisayarı (mission computer) yazılımı geliştirmek için geliştirilmiş olan bir derleyici 195 olarak ifade edilebilir. Alana Özel Yazılım Mimarisi aşağıdaki üç parçadan oluşmaktadır [3]: Referans Mimari (Bir alan için genel çerçeveyi tanımlar) Bileşen kütüphanesi (Alan uzmanlığının yeniden kullanılabilir parçalarını içerir) Uygulama konfigürasyon yöntemi (Uygulamaya özel gereksinimleri karşılamak için gerekli bileşenleri seçer ve yapılandırır) Şekil 5 de alana özel yazılım mimarisi merkezli geliştirme süreci [1] resmedilmektedir. Şekil 5. Alana özel yazılım mühendisliği süreci

Geleneksel Yazılım Mühendisliğinden Alana Özel Yazılım Mühendisliğine Doğru Şekil 5 de verilen Alan Modelini, bir alan hakkında bilgiler içeren çıktılar kümesi olarak tanımlayabiliriz. Bu çıktılar; Şekil 6 da alan modelinin temel elemanları ve bu elemanlar için kullanılabilecek modelleme diyagramları gösterilmektedir. Alanda gerçekleştirilen fonksiyonlar, Fonksiyonları gerçekleştiren veya üzerinde fonksiyonların gerçekleştirildiği varlıklar (entity), Sistemden akan veri ve bilgiler olarak ifade edebiliriz. Aviyonik alanındaki fonksiyonlara örnek olarak, uçağın inişi, kalkışı, taksi pozisyonu, akaryakıt alması gibi fonksiyonları verebiliriz. Bu alandaki varlıklar ise uçuş enstrümanları, akaryakıt tankları, uçağı kontrol etmek için kullanılan hidrolik sıvılar, akaryakıt dolumu sırasında tanklara transfer edilen akaryakıt olabilir. Veri ve bilgi ise; çeşitli pilot komutları, uyarılar, durum kontrol mesajları, kara kutulardan toplanan veri, akaryakıt tüketim oranları olabilir. Alan modelleri sayesinde, problem alanının terminolojisini ve semantiğini standartlaştırmak mümkün oluyor. Bu terminoloji ve semantik, o alanın ontolojisini oluşturuyor [1]. Bir alan modeli aşağıdaki elemanlardan oluşmaktadır [1]: Alan Sözlüğü (Domain Dictionary): Alandaki terimleri tanımlar. Bilgi Modeli (Information Model): Alandaki varlıkları ve veriyi tanımlar. Özellik Modeli (Feature Model): Özellikleri sunmak üzere, varlıklar ve verinin nasıl birleştiğini tanımlar. Operasyonel Model: Varlıklar arasında veri ve kontrol akışının nasıl sağlandığını tanımlamaktadır. Alan Sözlüğü, düz metinsel tanımların verildiği bir sözlük olarak hazırlanabilmektedir. Proje belgeleri hazırlanırken kullanılan tanımlar başlığına benzer şekilde oluşturulabilir. Diğer elemanlar ise, özel modelleme yaklaşımları gerektirmektedir. 196 Şekil 6. Alan modelinin elemanları Bilgi modeli, aşağıdaki diyagramlardan bir veya birden fazlasını içerebilir [1]: Bağlam-Bilgi Diyagramı (Context- Information Diagram): Alanın içinde ve dışında yer alan varlıkların, bu varlıklar arasındaki bilgi akışının gösterildiği diyagramlardır. Varlık-İlişki Diyagramı (Entity- Relationship Diagram): Alan içindeki varlıklar arasındaki içerme (has_a) ve genelleştirme (is_a) ilişkilerini gösteren diyagramlardır. Semantik Ağ (Semantic Network): Bilgi temsili (knowledge representation) için uzun yıllardır kullanılan bir yöntem olup E-R diyagramlarına benzemektedir. Nesne Diyagramı (Object Diagram): Uygulama alanındaki nesneleri, özellikleri ve operasyonları açısından tanımlar ancak bu nesneler yazılım içindeki nesneler olmak durumunda değildir, problem uzayındaki varlıklardır. Özellik modeli, kullanıcılar ve geliştiriciler arasında iletişimi kolaylaştırmaktadır, uygulamanın yetenekleri bu modellerle ortaya konulur. Özellikler; zorunlu, seçime bağlı, varyant özellik olarak üçe ayrılır. Özellik modeli için

Akademik Bilişim 10 - XII. Akademik Bilişim Konferansı Bildirileri 10-12 Şubat 2010 Muğla Üniversitesi aşağıdaki modelleme yaklaşımlarından bir veya daha fazlası kullanılabilir [1]: Özellik İlişki Diyagramı (Feature Relationship Diagram): Bu diyagram, metinsel olarak zorunlu ve seçime bağlı özelliklerin aktarıldığı şekilde hazırlanabilir. Ayrıca, kalite gereksinimlerini de bu diyagrama dâhil etmek mümkündür. Kullanım Durumu Diyagramı (Use Case Diagram): UML içinde mevcut olan ve iyi bilinen bir diyagramdır. Temsil Modeli (Representation Model): Bilginin kullanıcılara nasıl gösterildiğini tanımlayan modeldir. Operasyonel model; fonksiyonları, bu fonksiyonlar arasındaki veri alış verişini ve bu fonksiyonların akışını tanımlar. Diğer bir ifadeyle, alan içinde uygulamaların nasıl çalıştığını gösterir. Aşağıdaki yöntemlerle modellenebilir [1]: Veri-Akış Diyagramı (Data-Flow Diagram): Sistem içinde verinin nasıl değiş tokuş edildiğini açıkça temsil eden diyagramdır. Kontrol-Akış Diyagramı (Control-Flow Diagram): Sistem içinde varlıklar arasında kontrolün nasıl aktığını gösteren diyagramdır. Durum-Geçiş Diyagramı (State-Transition Diagram): Alan içindeki varlıkların geçeceği farklı durumları, durumlar arasındaki geçişlere neden olayları, bu olaylar nedeniyle ortaya çıkan eylemleri tanımlar. UML içindeki durum diyagramlarına benzemektedir. 2.bölümde yazılım ürün hatları, 3. bölümde ülkemizdeki ürün hattı yaklaşımları, 4. bölümde öneriler, 5. bölümde sonuç ve 6. bölümde referanslar verilmektedir. 2. Yazılım Ürün Hatları Alana özel yazılım mühendisliğinin önemli tekniklerinden birisi de, yazılım ürün hattı mimarileridir. Bu mimariler, bugünlerde yazılım mimarisinin, gümüş kurşunu (silver bullet) olarak ifade edilmektedir. Maliyetleri azaltmak ve kaliteyi arttırmak için yüksek bir potansiyeli bulunan bir tekniktir [1]. Bu noktada, mühendislik ürün hatları (engineering product lines) ve işletme ürün hatları (business product lines) arasındaki farkı açıklamakta fayda bulunmaktadır. İşletme ürün hatlarında, belirli bir ürün ailesini bir arada bulundurmak önemlidir ancak teknik açısından benzerlikler ve farklılıkların dikkate alınması önemli değildir. Mühendislik ürün hatlarında ise ürünlerin tasarımı ve oluşturulması esnasında, başından sonuna kadar teknik açıdan benzerlikler ve farklılıklar dikkate alınmaktadır. Geleneksel yazılım mühendisliğinde, ürün geliştirme masrafları ve gelirlerini gösteren resim Şekil 7 de verilmektedir. Şekilde görüldüğü gibi, geleneksel geliştirme pratikleri uygulandığı durumda her yeni ürün geliştirilmesi aynı masrafların yeniden yapılmasını gerektirmektedir. Yaptığımız değerlendirmelere göre; Bilgi Modeli için bağlam diyagramı veya ER diyagramlarının, Özellik Modeli için kullanım durumu diyagramının, Operasyonel Model için veri-akış, kontrolakış ve durum-geçiş diyagramlarının uygun olduğu değerlendirilmiştir. Özellik Modeli için ayrıca, FORM (Feature Oriented Reuse Method) yöntemi [4] de sıkça kullanılmaktadır. Ayrıca, ürün hattı mühendisliği yaklaşımında kullanım durumu diyagramları içerisinde ortak ve değişken kullanım durumlarının nasıl ifade edileceği Gomaa nın kitabında açıklanmaktadır [5]. 197 Şekil 7. Ürün masraf ve gelirleri Şekil 8 de, ürün hatlarının kullanıldığı durumda masrafların azaldığı, resmedilmektedir.

Geleneksel Yazılım Mühendisliğinden Alana Özel Yazılım Mühendisliğine Doğru Şekil 8. Ürün hattı mimarileri uygulanması Şekil 8 ve Şekil 7 karşılaştırıldığında, ürün hattı mimarilerinin işletme açısından benzer ürünler geliştirirken oldukça yararlı bir yaklaşım olduğu görülecektir. Alana Özel Yazılım Mühendisliği tekniklerinin, yazılım geliştirmede nasıl uygulandığını görmek için tüketici elektroniği için Philips tarafından geliştirilmiş olan Koala [6] mimari tanımlama dilini veya Yazılım Tanımlı Radyo (Software Defined Radio) için Alana Özel Yazılım Mimarisi olan Software Communications Architecture (SCA) [7] mimarisini incelemek mümkündür. Sahip olduğu mekanizmalarla, Koala mimarlara gömülü sistemlerin ürün hatlarını gerçeklemeye izin verir. Ürün hatlarını etkin şekilde gerçeklemek için araç desteği, grafiksel görselleştirme ve basit notasyona sahiptir [1]. 3. Ülkemizde Ürün Hattı Yaklaşımları Ulusal konferanslarda sunulan bildirilere göre, ülkemizde büyük ölçekli yazılım yoğun sistem geliştiren firmaların, yazılım yeniden kullanılabilirliğini sağlamak üzere, ürün hattı yaklaşımlarını kısmi olarak kullanmaya çalıştığını söyleyebiliriz. Kutluca ve arkadaşları [8], GEM- KOMSIS projesi sayesinde, MilSOFT Yazılım Teknolojileri firması içerisinde, iki yeni ürün hattının oluşturulduğunu raporlamışlardır. Bu ürün hatlarının ilki, CMSCORE-PL (Combat Management System CORE Product Line) olarak ifade edilmiştir. En küçük platformlardan (karakol botu gibi) en karmaşık sistemlere (denizaltı gibi) kadar farklı ölçeklerde Savaş 198 Yönetim Sistemi ihtiyaçlarının bu ürün hattı mimarisi ile karşılanabileceği açıklanmıştır. Bu ürün hattının; Sahil Güvenlik Komutanlığı Arama Kurtarma Gemisi, Genesis Veri Linkleri Sistemi, Yeni Tip Denizaltı ve Modernizasyon projeleri için gerekli alt yapıyı sunduğunu raporlamışlardır. İkinci ürün hatları ise CE-PL (Computing Environment Product Line) olarak ifade edilmiştir. Bu ürün hattı, gerçek zamanlı dağıtık veri dağıtımı için ara katman olarak kullanılmaktadır. GEMKOMSIS in mimarisi geliştirilirken, OACE (Open Architecture Computing Environment) referans mimarisinden yararlanıldığı ifade edilmiştir. Yazılım yeniden kullanılabilirliği, yazılım geliştirmenin tüm çıktılarını ilgilendirmektedir. Çalışmalarında, isterlerin ve test durumlarının yeniden kullanılabilirliğinin nasıl sağlandığı, özellik modellerinden yararlanılıp yararlanılmadığı bilgisine ulaşılamamıştır. Ayrıca, bildirideki bilgilere göre tekli-sistem mühendisliği yaklaşımına benzer bir sürecin uygulandığı gözlemlenmiş, alan mühendisliği konusunda çalışma yapılıp yapılmadığı, alan modellerinin oluşturulup oluşturulmadığı bilgilerine bildiriden ulaşılamamıştır. Koray ve arkadaşları [9], insansız sistemler alanında ASELSAN da geliştirilen iki tane kara aracının (İzci ve Gezgin), JAUS (Joint Architecture for Unmanned Systsems) referans mimarisine göre oluşturulduğunu raporlamışlardır. JAUS, insansız sistemler için hem alan modelini hem de referans mimariyi ortaya koyan, 1995 yılında başlatılmış ve ABD Savunma Bakanlığı tarafından onaylanmış bir programdır [9]. JAUS referans mimarisi, servis yönelimli olup ASELSAN tarafından Open- JAUS çerçevesi [10] kullanılmıştır. Koray ve arkadaşları, böyle bir alan modelinin, proje ekibinin insansız sistemler hakkında hızlıca belirli bir bilgi seviyesine gelmelerini sağladığını ifade etmiştir. Bu çalışmada, referans mimari ve alan mimarisinin daha çok kullanım düzeyinde olduğunu görmekteyiz. Çalışmanın son bölümünde, ASELSAN Savunma Sistem Teknolojileri (SST) grubunda; K4İGK (Komuta, Kontrol, Komünikasyon, Kompüter, İstihbarat, Keşif ve Gözetleme) ve Silah Sistem-

Akademik Bilişim 10 - XII. Akademik Bilişim Konferansı Bildirileri 10-12 Şubat 2010 Muğla Üniversitesi leri için, Alan Analizi Yapılması ve Referans Yazılım Mimarisi Geliştirilmesi için iki ayrı çalışma yürüttükleri ifade edilmiştir. Altıntaş ve arkadaşları [11], Aurora ismini verdikleri, çok katmanlı ve Web temelli mimarilerde yazılım geliştirme sürecini hızlandıran bir yazılım ürün hattını geliştirdiklerini raporlamışlardır. Aurora üzerinde geliştirilen projelerini; Temel Bankacılık Sistemi, Merkezi Kayıt Kuruluşu, Kaydi Sistem, Sigortacılık Alt yapısı olarak açıklamışlardır. Kahraman ve arkadaşları [12], ASELSAN SST grubu içerisinde, silah sistemi projeleri için gerçekleştirilen alan mühendisliği çalışmalarını raporlamışlardır. Özelinde, atış kontrol yazılımı içeren sistemler üzerinde çalışılmıştır. Özellik modelleme için, FORM yaklaşımı tercih edilmiş, referans mimarinin oluşturulması için bileşen tabanlı bir yaklaşım uygulanmıştır. Henüz bu kapsamda sonlandırılmış bir proje bulunmadığı, yakın dönemde sonuçlandırılacak birçok projede referans mimarinin kullanılacağı ifade edilmiştir. Karataş ve arkadaşları [13], ASELSAN SST grubu içerisinde yaptıkları çalışmada, uygulama mühendisliği süreci adımlarının model güdümlü bir yaklaşım ile otomatize edilebileceğini raporlamışlardır. Bu bildirilere göre, ürün hattı mühendisliğinin, ülkemizde ASELSAN, MİLSOFT, CYBERSOFT firmalarının ilgi alanında olduğunu ifade edebiliriz. 4. Değerlendirme ve Öneriler refahı veya yeni projeler için kullanılabilecektir. Savunma projeleri için ürün hattı bağlamında tedarik sürecinin nasıl gerçekleştirileceği konusu da ayrıntıları ile yakın dönemde belirlenmelidir. Belirli bir alan için ürün hattının mı tedarik edileceği, firmaya ait bir ürün hattından ürün tedariki mi yapılacağı gibi alternatif tedarik yöntemleri belirlenmeli, her yöntemin ayrıntıları açıkça saptanmalıdır. Bu kapsamda, Şubat 2009 da ABD de Yazılım Mühendisliği Enstitüsü Army Software Product Line Workshop isimli çalıştayı düzenlemiş, ABD ordusuna çözüm üreten alt yüklenicilerin ürün hattı deneyimlerini ifade etme imkânı doğmuştur. Bu çalışmanın, raporuna web üzerinden ulaşılabilmektedir [14]. Yakın zamanda ülkemizde, Yazılım Ürün Hatları konusunda bir çalıştayın organize edilmesi ile bu kapsamda çalışan organizasyonlar, üniversiteler, kurumlar bir araya getirilerek Ulusal açıdan önemli fikirlerin tartışıldığı bir ortam oluşturulabilir. Üniversiteler, belirli alanlara odaklanarak bu alanlarda uzmanlaşmayı hedeflemelidir. Bu sayede, endüstri ile işbirliği kolaylaşacaktır. Örneğin; iş süreçleri, gömülü sistemler gibi alanlarda uzman bölümler oluşturularak, endüstriden kolaylıkla işbirliği talepleri doğacaktır. Alanişletme-teknoloji açısından tüm bölümler kendi uzmanlık alanlarını belirleyerek hangi işletme alanı ile paralel teknolojik araştırmalar yapacağını saptamalıdır. 5. Sonuç Alana özel yazılım mühendisliği ve özelinde yazılım ürün hatları sayesinde, büyük ölçekli yazılım sistemlerinin ürün geliştirme maliyetleri azaltılabilmektedir. Bu kapsamda, ülkemizde bu yaklaşımların uygulanmaya başlanması ile birlikte, özellikle simülasyon projelerinde, sistem spesifik simülatör geliştirmek yerine, simülatör ürün hatları geliştirilerek; esnek, yeniden konfigüre edilebilir ve daha düşük sahip olma maliyetine sahip, ürün aileleri oluşturulabilecektir. Bu sayede, projelerde her defasında aynı masrafların oluşması önlenmiş olacak, bu yatırımlardan elde edilecek tasarruflar halkın 199 Bu çalışmada, alana özel yazılım mühendisliği konusu derinlemesine irdelenerek ülkemiz açısından değerlendirmeler ve öneriler yapılmıştır. Ürün hattı mühendisliğinin önümüzdeki dönemler için stratejik bir araştırma alanı olduğu değerlendirilmiştir. 6. Kaynaklar [1] Taylor, R.N., Medvidovic, N., Dashofy, E.M., Software Architecture: Foundations, Theory, and Practice, John Wiley & Sons, Inc., Hoboken, NJ, (2010).

Geleneksel Yazılım Mühendisliğinden Alana Özel Yazılım Mühendisliğine Doğru [2] Medvidovic, N., Dashofy, E., Taylor, N., Moving architectural description from under the technology lamppost, Information and Software Technology, 49(1): 12-31 (2007). [3] Hayes-Roth, B., Pfleger, K., Lalanda, P., Morignot, P., Balabanovic, M. A domainspecific software architecture for adaptive intelligent systems, IEEE Transactions on Software Engineering, 21(4): 288-301 (1995). [4] Kang, K.C., Kim, S., Lee, J., Kim, K., Kim, G.J., Shin, E., FORM: A feature-oriented reuse method wih domain-specific reference architectures, (1998). [5] Gomaa, H., Designing software product lines with UML: from use cases to patternbased software architectures, Addison Wesley, (2004). [6] Van Ommering, R., Van Der Linden, F., Kramer, J., Magee, J., The KOALA component model for consumer electronics software, IEEE Computer, 33(3): 78-85, (2000). [7] Modular Software-Programmable Radio Consortium, Software Communications Architecture Specification v2.2, Specification, MSRC-5000SCA. [9] Koray, T., Yurdakul, C.T., Yakın, İ., Komuta kontrol sistemlerinde alan modeli ve referans mimari kullanımı, 2. Ulusal Yazılım Mimarisi Konferansı, 11-12 Eylül 2008, İzmir, sf. 99-106. [10] OpenJAUS, http://www.openjaus.com [11] Altıntaş, N.İ., Surav, M., Keskin, O., Çetin, S., Aurora yazılım üretim bandı, 2. Yazılım Mühendisliği Sempozyumu, 22-24 Eylül 2005, Ankara, sf. 109-118. [12] Kahraman, E., İpek, T., İyidir, B., Bazlamaçcı, C.F., Bilgen, S., Bileşen tabanlı yazılım ürün hattı geliştirmeye yönelik alan mühendisliği çalışmaları, 4. Ulusal Yazılım Mühendisliği Sempozyumu, 8-10 Ekim 2009, İstanbul, sf. 283-287. [13] Karataş, E. K., İyidir, B., Yazılım ürün hattı yaklaşımında model güdümlü uygulama mühendisliği, 4. Ulusal Yazılım Mühendisliği Sempozyumu, 8-10 Ekim 2009, İstanbul, sf. 149-153. [14]http://www.sei.cmu.edu/productlines/ start/assip.cfm [8] Kutluca, H., Çetin, İ.E., Çakır, U., Kılıç, M., GEMKOMSIS savaş yönetim sistemi yazılımının ar-ge projesi olarak geliştirilmesi, deniz platformları için sunduğu ortak alt yapı ve sahil güvenlik arama kurtarma gemisi uygulaması, Yazılım Kalitesi ve Yazılım Geliştirme Araçları Sempozyumu, 9-10 Ekim 2008, İstanbul, sf. 3-11. 200