İlgiye Yönelik Yaklaşımla Yazılım Geliştirme Software Development with Aspect Oriented Approach

Benzer belgeler
BLM 426 YAZILIM MÜHENDİSLİĞİ BAHAR Yrd. Doç. Dr. Nesrin AYDIN ATASOY

İLGİYE YÖNELİK YAKLAŞIMLA YAZILIM GELİŞTİRME

GPS Mesajlarının Nesneye Yönelik Yazılım Tasarım Prensiplerinden Genişlemeye Açık, Değişikliğe Kapalı Prensibine Göre Ele Alınması

Veresiye Satışlarınız, Sonradan faturaya dönüştürülmek üzere İrsaliye olarak Transfer edilir.

EYLÜL 2012 POWERPOINT Enformatik Bölümü

DESTEK DOKÜMANI. 1 Ocak 2010 tarihinden itibaran banka hesap numarası yerine IBAN numarası kullanılacaktır.

Uzaktan Eğitim. Web Tabanlı Kurumsal Eğitim

TIGER ENTERPRISE ÜRÜN FARK DOKÜMANI

T.C. SAKARYA ÜNİVERSİTESİ FEN EDEBİYAT FAKÜLTESİ MATEMATİK BÖLÜMÜ DIŞ PAYDAŞ ANKET FORMU

Kentsel Planlama ve Kentsel Altyapı İlişkisinde Yeni bir Dönem; Kentsel Dönüşüm

T.C. MİMAR SİNAN GÜZEL SANATLAR ÜNİVERSİTESİ FEN EDEBİYAT FAKÜLTESİ İSTATİSTİK BÖLÜMÜ LİSANS DERS TANITIM FORMU

BLM 426 YAZILIM MÜHENDİSLİĞİ BAHAR Yrd. Doç. Dr. Nesrin AYDIN ATASOY

HACETTEPE ÜNİVERSİTESİ

İndirilecek KDV Listesi Uygulaması

KURUMSAL WEB TASARIM Proje Teklifi

EYLÜL 2012 EXCEL Enformatik Bölümü

Kısaca ; Servis Pozitif, firma tarafından kendisine sağlanmış kullanıcı girişleri yetkisi ile internet olan her platformdan sisteme giriş yapabilir.

Orta Ölçekli Yazılım Firmaları İçin İdeal Bağımsız Doğrulama ve Geçerleme Organizasyon Yaklaşımı

Aksiyon Ekleme Ekranı Kullanım Kılavuzu

EYLÜL 2012 WORD Enformatik Bölümü

Algoritma, Akış Şeması ve Örnek Program Kodu Uygulamaları Ünite-9

AB 7. ÇERÇEVE PROGRAMI İŞBİRLİĞİ ÖZEL PROGRAMI VE KAPASİTELER ÖZEL PROGRAMI PROJE TEKLİFİ DEĞERLENDİRME KRİTERLERİ. İçindekiler:

DESTEK DOKÜMANI TEMĐNAT ĐŞLEMLERĐ. Unity/Tiger/ GO ürünlerinde Alınan/Verilen Teminat işlemlerinin kullanılabilmesi sağlanmıştır.

YILDIZ TEKNİK ÜNİVERSİTESİ İNŞAAT FAKÜLTESİ HARİTA MÜHENDİSLİĞİ BÖLÜMÜ ARAZİ ÇALIŞMASI - 2

İŞLETME STAJI RAPORU

Günümüzde internet kullanımının hızla yaygınlaşmasından dolayı e-ticaret sistemlerine olan ilgi arttırmıştır.

Finansal Risk Yönetimi Mevzuat Bilgilendirmesi

İnsan Kaynakları Yönetimine İş Süreçleri Yaklaşımı

Gazi Üniversitesi Teknoloji Fakültesi Endüstriyel Tasarım Mühendisliği Bölüm Tanıtımı

BİLGİSAYAR DESTEKLİ TASARIM FİNAL PROJE ÖDEVİ

ENVISTA ARM API Bilgileri

Algoritma Geliştirme ve Veri Yapıları 5 Rekürsif Algoritmalar. Mustafa Kemal Üniversitesi

BEACON İŞARETÇİLERİ KULLANILARAK GERÇEKLEŞTİRİLEN ÖĞRENCİ YOKLAMA SİSTEMİ

Kanal Veri Kartı Eleman Bilgileri Ekranı Kullanım Kılavuzu

Yazılım Mühendisliği Proje Ödevi

İNSAN KAYNAKLARI YÖNETİMİ UZMANLIK SERTİFİKA PROGRAMI EĞİTİMİ

Kurumsal Sosyal Sorumluluk Denetim ve Belgelendirme 2012 Yılı Eğitim ve Seminer Programı

BLM 426 YAZILIM MÜHENDİSLİĞİ BAHAR Yrd. Doç. Dr. Nesrin AYDIN ATASOY

BLM 426 YAZILIM MÜHENDİSLİĞİ BAHAR Yrd. Doç. Dr. Nesrin AYDIN ATASOY

VERİ TABANI SİSTEMLERİ

DESTEK DOKÜMANI E-BĐLDĐRGE UYGULAMASI

OKYANUS YÖNETİM EĞİTİMLERİ

BLM 426 YAZILIM MÜHENDİSLİĞİ BAHAR Yrd. Doç. Dr. Nesrin AYDIN ATASOY

YILDIZ TEKNİK ÜNİVERSİTESİ İNŞAAT FAKÜLTESİ HARİTA MÜHENDİSLİĞİ BÖLÜMÜ ARAZİ ÇALIŞMASI - 2

ENERJİ SİSTEMLERİNDE KESME YÖNTEMİ İLE GÜVENİLİRLİK ANALIZI

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

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

NETIKS Uygulamaları Yenilikleri. Organizasyon Şeması. Taşıma İşlemi. Pozisyon Bilgi Ekranı. Şema üzerinden çalışanların özlük bilgisi görüntüleme


Çizelge 1. Yeraltısuyu beslenim sıcaklığı ve yükseltisi tahmininde kullanılan yöntemlerin karşılaştırılması

Müşterek Harekat Alanı Simülasyon Sistemi: Temsili Ortam Standart ve Uygulamaları

MERKEZ YAZILIM API Bilgileri

Güvenli İnternet Teknolojileri Kol. Şti. Teknik Servis Hizmetleri ve Bakım Anlaşmaları Tanıtım

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

KIYMET TRANSFER. EKRAN KILAVUZU v.01

A. BİÇİME İLİŞKİN ANALİZ VE DEĞERLENDİRME

BTU 100 BİLGİSAYAR OKURYAZARLIĞI Veri Tabanı Uygulamaları I

Millî Savunma Bakanlığı Bilgi Sistemi Canlı Kullanıma Açıldı

AMAÇ... 2 ÜRÜN / SERVĐS TANIMI... 2 ÜRÜN / SERVĐS ÖZELLĐKLERĐ... 2 Önemli Noktalar... 3 Standartlar ve Kısıtlar... 3 Sistemin Özellikleri...

DEFTER BEYAN YARDIM KILAVUZU

3. Kalite Güvence Sisteminin Genel Yapısı ve Gözden Geçirilmesine İlişkin Değerlendirme

ISO 9001:2015 & ISO 14001:2015 GEÇİŞ REHBERİ

EYLÜL 2012 EXCEL Enformatik Bölümü

Mobil Cihazlardan Web Servis Sunumu

Değerlendirme erlendirme Süreci: S

.-_ TEKLİF MEKTUBU TÜRKİYE. Teklif Formu

TEB ÜCRETLENDİRME POLİTİKASI

Hızlı Kullanım Kılavuzu. 1. Sistem Gereksinimleri. 2. Kurulum ve Etkinleştirme. Kurulum. Etkinleştirme

Algoritma Geliştirme ve Veri Yapıları 2 Veri Modelleri. Mustafa Kemal Üniversitesi

OKÜ İçerik Yönetim Sistemi. Proje Amacı; OKÜ web sitelerinin içeriklerinin etkin yönetimi ve sunumu.

Yazılım Mühendisliği 1

/tßq-b TEKLİF MEKTUBU. TRABZON lll KAMU HASTANELER] BIRLIGI GENEL SEKRETERLICI Kanııni Eğitim Araştırma Hastanesi. Teklif Formu

JAVA RMI ve Hibernate teknolojileri kullanılarak çok amaçlı bir yazılım altyapısı hazırlanması

Dosya ve Klasör İşlemleri

KAMU İÇ DENETİM PLANI ve PROGRAMI HAZIRLAMA REHBERİ

Dayanışma Evi Küçük Projeler Programı. Açık Başvuru Çağrısı

Bölüm 1. Tasarım. Bölüm 1. Makine Mühendisliği Tasarımına Giriş

SAP PartnerEdge VAR Tarafından Verilen Destek Özel Şartları ve Koşulları ( VAR Tarafından Verilen Destek Modeli )

ATATÜRK ÜNİVERSİTESİ ÖĞRENCİ İŞLERİ OTOMASYONU ÖĞRETİM ELEMANI KULLANIM KILAVUZU ( )

ALTI SİGMA EĞİTİM PROGRAMLARI. Kara Kuşak Eğitimi

BİLGİ GÜVENLİĞİ BİLİNÇLENDİRME EĞİTİMİ

1. AS30 Hisse Alım Satım Onaylama

MÜDEK Değerlendirme Ölçütleri

EYLÜL 2012 POWERPOINT Enformatik Bölümü

Faturalarda Son Ödeme Tarihi

KONU: KURUMSAL YÖNETİM İLKELER (KURUMSAL YÖNETİM TEBLİĞİ SERİ II NO:17.1)

ProtaStructure Suite 2016 SP8 Yeni Özellikler

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

31 Ağustos 4 Eylül 2015, Antalya Eğitim Gündemi

Ygs-Lys dan itibaren üniversitelere öğrenci seçimi iki aşamalı sınav uygulanarak yapılacaktır.

İçindekiler Hosting hizmeti için silme isteği oluşturulması Reseller Paketi altında hosting hizmetinin oluşturulması Kesintiyi en aza indirmek için

BAY.t Entegre_PRO v5.2 Yapılan Geliştirmeler HIZLI SATIŞ

ARAÇ KONUM VE DURUM BİLGİLERİNİN BİLGİSAYARDA ON LINE TAKİBİ: ARAÇ TAKİP SİSTEMİ (ATS) ÇÖZÜMLERİ

SÜREÇ İYİLEŞTİRME-II

DAVRANIŞ KURALLARI VE ETİK DEĞERLER Tekel Karşıtı ve Rekabet İlkeleri

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

Çok İşlemci Üzerinde Çalışan Yazılımlar için Hata Yönetim Altyapısı

MÜDEK Değerlendirme Ölçütleri

Film Arşiv Sistemi. Yazılım Tasarım Belgesi

ARIZA PROSEDÜRÜ (Ek Form 3)

Transkript:

İlgiye Yönelik Yaklaşımla Yazılım Geliştirme Sftware Develpment with Aspect Oriented Apprach Oytun Kurtar, Oya Kalıpsız, Fen Bilimleri Enstitüsü Bilgisayar Mühendisliği Yıldız Teknik Üniversitesi ytunkurtar@gmail.cm kalipsiz@yildiz.edu.tr, Özet Nesneye Yönelik Prgramlama (NYP), yazılım mühendisliği için önemli bir dönüm nktasıdır. Çünkü NYP, günlük yaşantımızda karşılaştığımız prblem çözme mantığına benzer larak, prblemleri nesne mdeli larak ele alabilmemizi sağlayan bir prgramlama mekanizması sunar. Fakat NYP teknikleri, yazılım sistemlerindeki artan ihtiyaçlar ve karmaşıklaşan prblemler karşısında bazı gereksinimleri karşılamakta yetersiz kalmaya başlamıştır. Bu çalışmada NYP tekniklerinin eksik kaldıkları yerlerde kullanılabilecek yeni teknikleri içeren bir prgramlama yaklaşımı üzerinde durulacaktır. Bu yeni yaklaşım İlgiye Yönelik Prgramlama (Aspect Oriented Prgramming, İYP) adı ile anılmaktadır. Çalışma süresince, bazı tasarımların neden gerçek kd içerisinde uygulanmasının zr lduğu ve karmaşıklığa neden lduğu incelenmiş ve bunu gidermek için kullanılan İlgiye Yönelik Prgramlama (İYP) teknikleri üzerinde durulmuştur. Abstract Object Oriented Prgramming (OOP) is a very imprtant milestne in Sftware Engineering, since it prvides a prgramming mechanism t handle prblems as an bject mdel, similar t ur daily life prblem slving mechanism. But in sme cases, OOP techniques remain insufficient due t increasing needs and the cmplexity f the sftware systems. In this wrk, insufficient parts f the OOP techniques will be discussed and the apprach called Aspect Oriented Prgramming (AOP) will be intrduced. During this wrk, reasns f difficulty f applying sme design types in actual cde and reasns f the results in cmplexity is examined, and fcused n the AOP techniques t vercme these prblems. 1. Giriş İhtiyaçları sürekli artan ve karmaşıklaşan iş dünyasındaki birçk firma, bu gereksinimlerini yazılım ürünleri ile karşılamayı talep etmekte, süreçlerini bu uygulamalar ile takip ederek verimliliklerini arttırmayı hedeflemektedir. Klay adapte edilebilir, düşük maliyetli ve değişiklik yönetimi klay yapılabilen uygulamaların geliştirilmesine ihtiyaç duyulmaktadır. Günümüzde geliştirilen uygulamaların büyük bir kısmı, özellikle kurumsal uygulamalar, tek bir dsya içerisine yazılmış tek bir mdülden luşmuş yapıda değildirler Bunlar, sistem gereksinimlerini karşılamak için luşturulmuş mdül kleksiynlarının bir arada çalışmasından luşmaktadırlar. NYP Tenikleri kullanılarak geliştirilen bu uygulamalarda prgram mdülleri karmaşık hedefler içeren alt mdüllere ayrıştırılmaktadır. Aynı hedefleri içeren kdların mdüller içerisinde tekrarlanması ise kd karmaşasına yl açmakta ve uygulamaların yönetilebilirliğinin azalmasına yl açmaktadır. İlgiye Yönelik Prgramlama nın (İYP) hedefi bu ve benzeri yazılım geliştirme prblemlerine çözüm getirmektir. Bu yeni prgramlama yaklaşımı, dağıtık işlevselliği merkezileştiren mdüller lan ilgilerin luşturulması üzerine kurulmuştur. 2. İYP Temel Kavramlar İlgiye Yönelik Prgranlama yaklaşımı ile Yazılım Dünyasına yeni girmiş terimler bulunmaktadır. Bunların bilinmesi bu yazılım geliştirme tekniğinin anlaşılmasına temel luşturmaktadır. İlgi: İlgiye Yönelik Prgramlamanın temeli ilgi terimidir. İlgi, özel bir amaç veya kavram anlamına gelmektedir. Teknik terim larak ifade edilirse ilgiler; yazılım geliştiriciler tarafından ele alınması gereken işlevsel veya işlevsel lmayan kalite hedefli sistem bileşenleridir. Enine Kesen İlgi: Birçk ilgi, sistemin temel fnksiynelitesini etkileme eğilimindedir. Sistemin temel fnksiynları ile bütünleşik çalışan ve bu temel fnksiynların işleyişini etkileyen ilgilere Enine Kesen İlgiler (Crsscutting Cncerns) adı verilir. Enine kesen ilgiler, sistemin diğer fnksiynları ile birlikte çalışmak durumunda lduğundan bunların mdüller içine yayılması, prjenin ileri safhalarında kntrl edilebilirliğin zrlaşmasına hatta imkansız hale gelmesine neden labilmektedir Birleşme Nktaları (Jin Pints): Bir sistemdeki Birleşme Nktaları ana mdül içinde tanımlanan, bu mdül içerisinde bir başka kdun (örneğin bir enine kesen ilginin) icra etmeye başlaması gereken yeri belirten iyi tanımlanmış yerler lmalıdır. İcra Nktaları : (Pintcuts): Birleşme Nktaları ile belirlenmiş özel yerlere gelindiğinde sisteme eklenecek

lan işlevin uygulamanın hangi kısmına ekleneceğinin bilgisinin barındırır. İcra nktaları 3 çeşittir: Önce (Befre): Belirlenmiş metddan önce çalışır. Esnasında (Arund): Belirlenmiş metd ile birlikte çalışır. Kşul barınırır. Snra (After): Belirlenmiş metddan snra çalışır İcra Edilecek Kd (Advice): Bir birleşme nktasına gelindiğinde, enine kesen ilgi kdu içerisinde tanımlanan icra nktasında, işletilecek lan kdu ifade etmek için kullanılır. İYP İlgileri (Aspects ): İYP prgramlama metdljisinde, ayrıştırılmış tüm enine kesen işlevlerin bulunduğu birimlere İYP ilgisi (aspect) adı verilmektedir.aspectj ile geliştirildiğinde bu ilgilerin tamamı java sınıfları yapısındadırlar. Bu nedenle bu ilgilerden, sistemin ana sınıfları ile birlikte çalışan ilgi sınıfları larak bahsedilecektir. Ek Tip Tanımlamaları (Inter-Type Decleratins): İYP prgramlama yaklaşımı, mevcut sınıfların genişletilmesi, yeni tip ve metdların da eklenebilmesi için kullanılmaktadır. Ek Tip Tanımlamaları, İYP için önemli bir kavramdır çünkü sınıflara esnek tip tanımlama özelliği eklemektedir. Dkuma (Weaving): İYP de, dkuyucu adı verilen mekanizma ayrıştırılmış halde bulunan ilgileri bir araya tplar. Diğer bir deyişle farklı çalışma mantığı lan ilgileri, çalışmaları gerektikleri nktaları belirleyerek birleştirir ve gereksinimleri karşılayan sistemin meydana gelmesini sağlar. 3. İYP Süreçlerinde UML UML (Unified Mdelling Language), yazılım mimarilerinin yaratılması ve dkümante edilmesi için kullanılan standart grafiksel bir dildir. Birçk metd ve teriye kaynak teşkil edebilecek fikirler ve kavramlar içermektedir. UML, birçk diyagram tipi, mdelleme elemanı, gösterim şekli içeren sayısız mdelleme tekniği sunmaktadır. Bu teknikler farklı karakteristiklerdeki yazılım prjelerinin mdellenmesi için farklı yllar sunar. Bu bölümde İYP süreçlerinde UML dili kullanımı incelenecektir. İYP ile yazılım gereksinimlerinin ayrıştırılması Şekil 1 de görülmektedir. Belirlenmiş enine kesen ilgilerin sistemde tariflenmesi Tabl1 de görülmektedir.. Enine Kesen İlgi: Tanım: Gereksinimler Listesi Tabl 1: Bir tabl örneği <Adı> <Çalışma tanımlaması> <, Orta, Düşük> <İlgiyi tanımlayan gereksinimler> <İlgi tarafından etkilenen UML mdelleri> Şekil 1: Gereksinimlerin Ayrıştırılması 4. İYP ve GOF Kalıpları Yazılım mühendisliğinde tasarım kalıbı, sıkça karşılaşılan prblemlere karşı geliştirilmiş genel uygulanabilen çözüm larak tanımlanabilir. Bir tasarım kalıbı direkt larak kda dönüştürülebilecek tamamlanmış bir tasarım değildir. Farklı durumlarda prblemlerin çözümü için kullanılabilen bir tanımlama veya çözüm şablnudur. Nesneye Yönelik Prgram geliştirmede sıkça kullanılan Gang f Fur (GOF) tasarım kalıpları, sadece belirli bir dil veya kısmi bir prgramlama yaklaşımı için tasarlanmamışlardır. Tasarım kalıpları yazılım sistemlerinin yeniden kullanılabilirliğine katkıda bulunmak ve sıkça karşılaşılan prblemlere çözüm getirmek amacıyla geliştirilmişlerdir. Belirli prblemlere etkin çözümler getiren tasarım kalıpları bazen uygulamalar içerisinde enine kesen ilgiler prblemine sebep labilmektedirler. İYP de tasarım kalıplarının uygulanmasının amacı, bu kalıpların uygulanmasındaki enine kesen ilgiler prblemine çözüm getirmektir. 4.1. Tasarım Kalıplarının İlgiye Yönelik Prgramlama ile Uygulanması Günümüzde tasarım kalıplarının İYP ile uygulanması alanında birçk araştırmalar yapılmaktadır. Tasarım kalıplarının İYP ile uygulanması ile elde edilecek birçk avantaj bulunmaktadır. Bunlardan bazıları aşağıdaki başlıklar şeklinde listelenebilir: 4.1.1. Yerellik Yeni işlevsellik kazandıran kdlar ilgiler içerisinde tanımlanır, böylece uygulamaların kdlarında değişiklik yapılmasına gerek kalmaz ve mdülerizasyn sağlanmış lur.

4.1.2. Yeniden Kullanılabilirlik İşlevsellik kdunun ilgiler içerisinde uygulanması büyük randa syutlama sağlar. Bu özellik sayesinde tanımlanan arayüzler aracılığıyla yeniden kullanılabilirlik ranı artar. 4.1.3. Birleştirme Şeffaflığı Uygulamanın bütününde karmaşıklığa sebep lmadan birçk tasarım kalıbının bir nesneye uygulanabilmesi sağlanır. 4.1.4. Eklenip Ayrılabilirlik Tasarım kalıpları kullanılarak geliştirilen bir uygulamada uygulanmış tasarım kalıbı uygulamanın genelini etkilemez. İlgiye Yönelik Prgramlama ile bir parametre değişimi tasarım kalıbının aktif veya pasif yapılabilmesini sağlar. 5. İYP Yaklaşımı ile Yazılım Geliştirme Uygulaması Çalışma süresince anlatılan İYP yaklaşımının bir örnek üzerinde incelenmesinin, bu yaklaşım ile birlikte gelen avantajlar ve dezavantajların görülmesi açısından faydalı lacağı düşünülmüştür. Uygulamada öncelikle gereksinimler analiz edilmiş ve işlevsel gereksinimler ile enine kesen ilgiler ayrıştırılmıştır. Daha snra uygulamanın nesneye dayalı diyagramları çizilmiş ve enine kesen ilgiler eklenerek aradaki farklar, İYP ile sistemin gerçeklenmesi incelenmiştir. Sistem gereksinimlerine göre uygun araç seçilmiş, ilgilerin içeriklerine ve sisteme etkilerine göre tasarım kalıpları ile gerçeklemeleri sağlanacaktır. Tasarım Kalıplarındaki enine kesen ilgiler prblemi de göz önünde bulundurularak bu ilgiler için belirlenen tasarım kalıpları açıklanmış ve bu tasarım kalıplarının İYP ile uygulanmasıyla elde edilen sınıf diyagramları luşturulmuştur. Belirlenmiş bu prje tasarımı ve planına göre de uygulama gerçekleştirilmiş ve snuçlar incelenmiştir. Örnek sistem bir Fatura Takip Uygulamasıdır. Gereksinimlerin analizi ile başlayan uygulama gerçekleştirim süreci, enine kesen ilgilerin tespiti, açıklanması ve ilgiye yönelik gerçekleştirme süreci ile ele alınarak tamamlanmıştır. 5.1. Gereksinimlerin Belirlenmesi İlgiye Yönelik yaklaşım ile geliştirilecek lan Fatura Takip Sistemi (FTS) uygulamasının gereksinim analizi süreci snunda gereksinimleri luşturulmuştur. FTS, genel hatlarıyla satış snucunda üretilecek lan fatura bilgilerinin naya müteakip e-psta aracılığıyla ilgili kullanıcıların bilgilendirilmesini kapsayan bir uygulamadır. 5.2. Enine Kesen İlgilerin Belirlenmesi Gereksinim Analizi sırasında listelenen sistemle ilgili tüm gereksinimlerin bir kısmı sistemden beklenen esas işlevler, diğer bir kısmı ise geliştirilecek lan tüm işlevleri etkileyecek lan ilgilerdir. Bölümün ilk kısmında belirtilen Gereksinimler göz önünde bulundurularak tasarlanmış ilgiler, çizelgelerde görülmektedir. Bu ilgiler, gereksinim analizi sırasında çıkarılmış lan gereksinimlerden, sistemden beklenen esas işlevselliği enine kesen ve esas işlevsellikle birlikte arka planda çalışması gereken fnksiynelliktir. Bu kapsamda belirlenmiş lan 3 adet enine kesen ilgi bulunmaktadır. 5.2.1. E-Psta Gönderme Fatura Giriş, Onaylama veya reddedilme gibi işlevlerle birlikte veya bu işlevlerden snra çalışması gereken bir işlev lup, temel işlemleri enine kesen bir ilgi larak belirlenmiştir. Tabl 2, bu ilginin UML diyagramını göstermektedir. Tabl 2: E-Psta Gönderim İlgisi Enine Kesen İlgi Otmatik E-psta Gönderimi Tanım Sistem, fatura talebi luşturma, naylama, iptal, reddetme ve silme durumlarında tanımlı kullanıcı listesine e-psta göndermelidir. Gereksinim Listesi 5.2.2. Veritabanı İşlemleri G1,G2,G3,G5,G6,G8 Senarylar: Fatura Talebi Oluşturma, Fatura Talebi Silme, Fatura Talebi Onaylama, Fatura Talebi Reddetme ve Fatura Talebi İptal Etme Sistem işlevleri lan kayıt, silme ve düzenleme gibi işlevlerin, sistemin iş mantığı ile birlikte çalışması gerekliliğinden dlayı kd karmaşasının önlenmesi amacıyla veritabanı işlemlerinin farklı bir katman tarafından yapılmasının sağlanması hedeflenmiştir. Veritabanı işlemleri ilgisinin UML diyagramı Tabl 3 de görülmektedir. Enine Kesen İlgi Tanım Tabl 3: Veritabanı İşlemleri İlgisi Veritabanı İşlemleri Sistemin, tüm veritabanı kayıt, kuma ve silme işlerini esas mdüllerden syutlanmış bir ara katman tarafından gerçeklemesi GereksinimListesi G1, G2, G5, G6, G7, G8, G9, G10, G11, G12 Senarylar: Fatura Talebi Oluşturma, Fatura Tal. Silme, Fat.Tal Onaylama, Fatura Talebi Reddetme ve Fatura Talebi İptal Etme, Ödeme Girişleri, Fatura Taksit Eşleme

5.2.3. Günlük Tutma Sistemi Sistem Fnksiynalitesi ile birlikte çalışması gereken sistem günlüğünün tutulması da enine kesen ilgi larak belirlenmiş ve Tabl 4 de görülen UML diyagramı luşturulmuştur. Enine İlgi Tanım Gereksinim Listesi Tabl 3: Günlük Tutma İlgisi Kesen Günlük Tutma Sistem, tüm işlemlerden snra işlemi yapan kişi, işlem yapılan tarih ve yapılan işlem bilgilerini kaydetmelidir. G1, G2, G3, G4, G5, G6, G8, G9, G10, G11, G12 Senarylar: Fatura Talebi Oluşturma, Fatura Talebi Silme, Fatura Talebi Onaylama, Fatura Talebi Reddetme ve Fatura Talebi İptal Etme, Ödeme Girişleri, Fatura Taksit Eşleme, Taksit Güncelleme, Fatura Taksit Eşleme 5.3. Belirlenen İlgilerin GOF Kalıpları ile Tasarlanması Sistem gereksinimlerinden ayrıştırılarak luşturulmuş ilgilerin İlgiye Yönelik Prgramlama teknikleri ile gerçeklenmesinden önce bu ilgilerin nasıl tasarlanacağı knusu üzerinde durulması gerekmektedir. Çalışma süresinde İYP Tekniklerinin GOF Kalıpları üzerindeki etkilerinin ölçümlenmeye çalışılmasından dlayı ilgiler GOF Kalıplarından uygun lanlarının belirlenerek tasarım yapılmıştır. 5.3.1. Otmatik E-psta Gönderme İlgisi: FTS uygulamasında fatura talep kayıtları ile ilgili tüm durum değişiklikleri hakkında tüm tanımlı kullanıcı listesine e-psta gönderilmesi talep edilmektedir. Standart Java uygulaması ile geliştirildiğinde tüm fatura işlemlerinin gerçekleştiği kdların altında e-psta gönderim ile ilgili kdların da yer alması gerekmektedir. Bu da kd karmaşasına sebep labileceği gibi, e-psta gönderim kdlarıyla ilgili yapılacak bir değişikliğinde tüm bu kdların geçtiği yerlerde kd düzeltmesi yapmayı gerektirir. Bu nedenle e-psta gönderim işlemi, prgramın genelini etkileyen bir enine kesen ilgi larak belirlenmiştir. E- psta gönderme ilgisinin tasarım kalıplarıyla gerçekleştirilmesi kd yayılımı ve dağıtımını engelleyecektir. Bunun için Gözlemci Tasarım Kalıbı uygun bulunmuştur. Gözlemci tasarım kalıbı, gözlenen nesnelerin durum değişikliklerinin algılanıp gerekli işlemlerin yapılmasını sağlamaktadır. Bu yapı temel alınarak fatura taleplerinin durum değişikliklerinin algılanarak tmatik e-psta gönderiminin tetiklenmesi, gözlemci tasarım kalıbı ile gerçeklenmiştir. Gözlemci Tasarım Kalıbının yapısı itibari ile uygulama içerisinde gözlemci ve gözlenen nesnelerin lması gerekmektedir. E-psta gönderim esnasında gözlenen nesne Fatura nesneleri gözlemleyen nesne ise MailGnderim sınıfı ise gözlemci knumundadır. Bu durumda Fatura nesnelerinde meydana gelen bir durum değişikliği, MailGnderim nesnesindeki e-psta luşturma ve luşturulan e-pstayı gönderme metdlarını tetikleyecek ve enine kesen ilgi kdunun çalıştırılması sağlanacaktır. 5.3.2. Veritabanı İşlemleri İlgisi Uygulamada faturaların ve ödemelerin sisteme kaydettirilmesi, kaydedilmiş faturaların listelenmesi, durumlarının değiştirilmesi, ödeme işlemlerinin yapılması, günlük kayıtlarının tutulması gibi veritabanından bilgi kuma, veritabanına bilgi yazma gibi işlemlerin gerçekleştirilmesi bir enine kesen ilgi larak tasarlanmıştır. Bu enine kesen ilgi kdlarının uygulama içerisindeki kdlarla birlikte yazılıp kd yayılımına ve karmaşasına sebebiyet vermemesi için işlevsel sınıflardan syutlanmaları gerekmektedir. Uygulamada, veritabanı bütünlüğü için eklenmiş lan Hibernate çatısı kd stili ile luşturulmuş bir Data Access Object (DAO) ara sınıfı kullanılmaktadır. Bu ara sınıf uygulama işlevleri ile direk larak bağlantılı lan OdemeYneticisi ve FaturaYneticisi sınıfları ile iletişim halindedir. DAO arasınıfı içerisinde verilerin kaydedilmesi, kunması ve çeşitli sql kmutlarının kullanılan hibernate çatısına uygun yazılmış lan metdları mevcuttur. Bu ara sınıfla iletişim halinde bulunan FaturaYneticisi ve OdemeYneticisi sınıfları tüm uygulamanın veritabanı işlemleri ile ilişkili tek bağlantı nktaları lmalarından ötürü bu sınıfların yaratılmış tek bir kpyaları lması tüm işlemlerin bu kpyalar üzerinden gerçekleştirilmesi veritabanı bütünlüğü ve bellek kullanımı açısından gerek şarttır. Bir sınıfın tek bir kpyasının yaratılmasının istendiği durumlarda kullanılan Yegane Tasarım Kalıbı, Veritabanı İşlemleri ilgisi için kullanılabilir. Bu tasarım kalıbının İYP yaklaşımıyla uygulanmasıyla tüm veritabanı işlemi gerektiren sınıflar tarafından (eğer yaratılmamışsa) FaturaYneticisi veya OdemeYneticisi sınıflarının bir kpyasının yaratılabilmesi sağlanacaktır. 5.3.3. Günlük Tutma Uygulamaya eklenecek lan günlük tutma işlevi sistem kullanıcıları tarafından yapılacak lan tüm işlemlerin kullanıcı ve tarih bazında kayıtlarının tutulmasını kapsamaktadır. Yapılacak lan işlemlerin snunda günlüğünün tutulması, günlük tutma kdunun tüm metdlar içerisine gömülmesini gerektirir. Bu özelliğinden dlayı günlük tutma işlevi de sistemden bir enine kesen ilgi larak tanımlanmıştır. Tüm işlem kmutlarından snra tanımlanması gereken bir ilgi lan günlük tutma, işletilecek lan uygulama kmutlarının kaydedilmesi içerdiğinden dlayı tasarım kalıpları bölümünde anlatılan Kmut Tasarım Kalıbı kullanılarak gerçeklenebilir. Kmut Tasarım Kalıbı nın İYP ile uygulanması ile işletilecek lan tüm kmutların tek bir icra nktası ile gerçeklenmesi

sağlanabilir. Böylece uygulama, tasarım kalıbının enine kesen ilgi özelliğinden de yalıtılmış lur. Yaratılacak lan günlük tutma sınıfı, sistem tarafından gerçekleştirilen temel işlemlerin tanımlanmış ldukları FaturaYnetici ve OdemeYneticisi sınıflarına uygulanacak ve bu sınıflar içerisindeki tüm metdlar ile birlikte çalışması sağlanacaktır. 6. Snuçlar Bu çalışmada, günümüzde sürekli artan yazılım ihtiyaçlarını karşılamak için NYP yaklaşımını temel alarak nun eksiklerini tamamlamayı hedef alan kullanım alanı genişlemekte lan İYP yazılım geliştirme yaklaşımı çeşitli yönleriyle incelenmiş, birçk prblemin çözümünde kullanılan GOF tasarım kalıplarının bu yeni yazılım geliştirme yaklaşımı ile gerçekleştirimi üzerinde durulmuştur. İncelenen bu yeni yaklaşım, örnek Fatura Takip Sistemi üzerindeki enine kesen ilgilerin gerçekleştiriminde kullanılmıştır. Kullanılan yöntemin sisteme kattığı avantajlar ve dezavantajlar incelenmiştir. Sistem ilgilerinin ayrıştırılması ile belirlenmiş lan Enine Kesen ilgiler, İYP ilgileri larak tasarlanmışlardır. Belirlenmiş bu ilgiler GOF Kalıpları ve İYP tekniklerinin bir arada uygulanmasıyla gerçeklenmiştir. GOF Kalıplarına İYP tekniğinin uygulanmasıyla kalıpların gerçeklenmesi sırasında meydana gelen gereksiz kd tekrarlaması ve arayüz gerçeklemesinden kaynaklanan kd yeniden yazımı engellenmiştir. Tasarım kalıplarının gerçeklenmesi aşamasında her tasarım kalıbının kuralı syut bir ilgide tanımlanmış, daha snra tanımlanan gerçek bir ilgide bu syut ilgide tanımlanmış lan kural mevcut ilgi verileriyle gerçeklenmiştir. İlgi kuralının syut ilgi ile tanımlanması, sisteme daha snradan eklenecek lan aynı kuralın kullanımını gerektiren farklı ilgiler lması durumunda tasarım kalıbının yeniden kullanılabilirliğini sağlamıştır. Sistemin İYP tekniği kullanılarak uygulanması ile mevcut uygulama kdları değiştirilmeden yeni işlevlerin eklenmesi sağlanmıştır. Bu nedenle mevcut uygulama kdları farklı uygulamalarda da kullanılabilmektedir. İlgilerin sisteme eklenip ayrılması için mevcut ilgi kdunun eklenip çıkarılması yeterlidir. Uygulamanın kdlarında bir değişiklik yapılmasına gerek kalmamaktadır. Uygulamanın geliştirilmesi esnasında her yeni eklenen özellik ilgi sınıfları şeklinde eklendiğinen dlayı sistemin bakım yapılabilirliği de klaylaşmıştır. Çalışmanın gerçekleştirimi esnasında karşılaşılan en büyük güçlük tasarım kalıplarının İYP uygulamalarının pratikte çk az kullanılmış lmasıdır. Kurumsal uygulama geliştirme rtamlarında da İYP yaygın larak kullanılmamakta ve daha çk akademik düzeyde incelemeleri ve araştırmaları yapılmaktadır. Bu nedenle kurumsal düzeydeki uygulamaların geliştirilmesinde kullanılabilmesi için pratik bilgi, zamanmaliyet hesaplamalarının ve derleme-çalışma zamanı perfrmans planlamalarının prje özellikleri bazında değerlendirilerek yapılması gerekmektedir. Belirli alanlardaki uygulamalara temel sağlayacak, genişletilebilir ve bakımı yapılabilir, klay yönetilebilir ve zaman maliyet planlarına uygun bir yapının luşturulması zr bir süreçtir. Bu çalışmada anlatılan GOF kalıpları ve İYP yaklaşımının kullanımı, yazılım geliştirme süreci snunda istenilen özelliklere sahip uygulamalar geliştirilmesine yardımcı lacak, NYP yaklaşımı ile karşılaşılan birçk prbleme çözüm lacaktır. Bu knulardaki akademik araştırmaların genişletilmesine destek lmak ve İYP kullanımının yaygınlaştırılması bu çalışmanın hedeflerinden biridir. 7. Kaynaklar [1] Araúj, J., Mreira, A., Brit, I. ve Rashid A., (2002), Aspect-Oriented Requirements with UML, Wrkshp n Aspect-Oriented Mdelling with UML, Octber 2002, Dresden Germany. [2] Bdkin, R. ve Laddad, R., (2004), Zen and The Art Of Aspect Oriented Prgramming, Aspects can greatly simplify design and maintanence f cmplex systems, Linux Magazine [3] Charfi, A. ve Mezini, M., (2005), Applicatin f Aspect-Oriented Prgramming t Wrkflws The case f Web Service Cmpsitin with AO4BPEL, Sftware Technlgy Grup, March 2005, Susse, Tunisia. [4] Charfi, A. ve Mezini, M., (2006), Aspect-Oriented Wrkflw Languages, Talk @ cpis 2006, 3 Nv. 2006, Mntpellier-France. [5] Kande, M., Kienzle J. ve Strhmeier H., (2002a), Frm AOP t UML- a bttm-up apprach, Prceedings f the AOM with UML wrkshp at AOSD, 2002. [6] Pawlak, R., Seinturier, L., ve Retaillé, J.P, (2005), Fundatins f AOP fr J2EE Develpment, Apress, USA