Yazılım geliştirmede ürün hattı mühendisliği yaklaşımı kullanımı
Using software product line engineering approach for software development
Yazar: RECEP ATAŞ
Danışman: PROF. DR. OYA KALIPSIZ
Yıldız Teknik Üniversitesi / Fen Bilimleri Enstitüsü / Bilgisayar Mühendisliği Ana Bilim Dalı
Derece: Yüksek Lisans, 2011
Konu: Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol = Computer Engineering and Computer Science and Control
Dizin: Yazılım geliştirme = Software development ; Yazılım mimarisi = Software architecture

Özet:
Son yıllarda yazılımların metalaşması sonucu bir yazılım sistemini oluşturan parçaların büyük bölümü sadece o yazılım tarafından değil, genel birçok yazılım ürünü tarafından da kullanılmaktadır. Büyük bölümü ortak olan yazılım sistemlerinde daha efektif yazılım geliştirme için sadece ürüne özgü kısımlara odaklanılmalıdır. Bu yazılım sistemleri için yazılımın yeniden kullanımının sistematik olarak ele alınması gerekmektedir. Yazılım geliştirme süreçlerini hızlı, düşük maliyetli ve kaliteli bir şekilde gerçekleştirebilmek için yazılımın yeniden kullanımı alanında birçok yeni fikir tanımlanmıştır.Yazılım mühendisliğindeki tüm güncel yaklaşımlar, yazılım yeniden kullanımının artırılmasını hedeflemektedir. Bu amaçla ortaya çıkan en yeni yaklaşımlardan biri Yazılım Ürün Hattı Mühendisliği yaklaşımıdır. Bu yaklaşım yazılım geliştirme sürecinde önemli bir yer almaya ve organizasyonlar tarafından benimsenmeye başlanmıştır. Yazılım Ürün Hatları, belirli ortak kabulleri sistematik olarak yeniden kullanarak ve ürünlerin farklılık gösterdiği yerlerde değişkenliği yöneterek benzer ürünler geliştirmeyi amaçlamaktadırlar.Çalışmada ele alınan kurumsal ADK uygulamaları alanı, farklı dağıtım kanallarında çalışabilen çok sayıda benzer özellikleri olan yazılım sistemlerini içerir. Buradan yola çıkarak, bu çalışmada J2EE ve web tabanlı uygulamalarında kullanılan bir yazılım ürün hattı mimarisi incelenerek örnek uygulamalarla bu yöntemin yazılım geliştirmedeki başarısının gösterilmesi amaçlanmıştır. Çalışmada kullanılan Dinamik Yazılım ÜrünxiiiHattı, Servis Tabanlı Mimarinin kullanımıyla değişkenliklerin çalışma anında dinamik olarak yapılandırılması sağlamaktadır. Bu yaklaşımın benzer özellikteki kurumsal ADK yazılımları için yazılım üretkenliğini arttırdığı görülmüştür. Sonuç olarak gereksinim analizi, tasarım, geliştirme ve test süreçlerinde yazılım varlıklarının yeniden kullanımı ile geliştirme için gerekli iş gücü azalmaktadır. Yazılım Ürün Hattı mimarisinin sağladığı ortak bileşen ve servisler birçok farklı ürün tarafından da kullanıldığı için yazılım kalitesi artmaktadır.

Abstract:
In recent years, as a consequence of software commodization, a major part of a software system is not unique for that software but also used by many similar software systems. For software systems like this, organizations should focus on the specific parts of the software rather than the common parts to develop softwares more effectively. Therefore, software reuse should be applied systematically for the software systems that share common software assets. There are so many concepts defined for software reuse research area to perform software development processes on a lower cost, faster and in quality basis.All the new approaches on software engineering aims at enhancing the software reuse and productivity. One of the newest approach on this purpose is Software Product Line Engineering discipline, which is becoming to take an important share at software development and accepted by the software organizations. The idea of the Software Product Lines (SPL) relies on developing similar software products by reusing and configuring the common assets of these products and managing the variabilities between them.The application domain of enterprise Alternative Distribution Channel (ADC) software products taken in this study, contain many software systems share common features which can be run on different distrubition platform. By considering this point, the study aims to show the success of the approach on a Software Product Line architecture exploited for developing J2EE and web based software systems within axvcase study. The SPL case exploited in the study is a Dynamic SPL which provides configuring some variabilities at runtime by combining the SPL and Service Oriented Architecture approaches. For similar ADC applications, it is seen that Dynamic SPL approach improves the software productivity. Within exploiting the requirements, design, implementation and test artifacts in many products, the required software development effort is reduced and software quality is increased.