MODEL DÖNÜŞÜM DİLLERİNİN İNCELENMESİ VE BİR MODEL SORGU DİLİ ÖNERİSİ

Ebat: px
Şu sayfadan göstermeyi başlat:

Download "MODEL DÖNÜŞÜM DİLLERİNİN İNCELENMESİ VE BİR MODEL SORGU DİLİ ÖNERİSİ"

Transkript

1 EGE ÜNİVERSİTESİ FEN BİLİMLERİ ENSTİTÜSÜ (YÜKSEK LİSANS TEZİ) MODEL DÖNÜŞÜM DİLLERİNİN İNCELENMESİ VE BİR MODEL SORGU DİLİ ÖNERİSİ Arda GÖKNİL Bilgisayar Mühendisliği Anabilim Dalı Bilim Dalı Kodu: Sunuş Tarihi: Tez Danışmanı: Prof. Dr. N. Yasemin Topaloğlu Bornova-İZMİR

2

3 III Arda GÖKNİL tarafından yüksek lisans tezi olarak sunulan Model Dönüşüm Dillerinin İncelenmesi ve Bir Model Sorgu Dili Önerisi başlıklı bu çalışma E.Ü. Lisansüstü Eğitim ve Öğretim Yönetmeliği ile E.Ü. Fen Bilimleri Enstitüsü Eğitim ve Öğretim Yönergesi nin ilgili hükümleri uyarınca tarafımızdan değerlendirilerek savunmaya değer bulunmuş ve 25/07/2006 tarihinde yapılan tez savunma sınavında aday oybirliği/oyçokluğu ile başarılı bulunmuştur. Jüri Üyeleri: İmza Jüri Başkanı : Prof. Dr. N. Yasemin TOPALOĞLU Raportör Üye : Prof. Dr. Oğuz DİKENELLİ... Üye : Yrd. Doç. Dr. Adil ALPKOÇAK...

4

5 V ÖZET MODEL DÖNÜŞÜM DİLLERİNİN İNCELENMESİ VE BİR SORGU DİLİ ÖNERİSİ GÖKNİL, Arda Yüksek Lisans Tezi, Bilgisayar Mühendisliği Bölümü Tez Yöneticisi: Prof. Dr. N. Yasemin TOPALOĞLU Temmuz 2006, 112 sayfa Bu tez çalışmasında, Model Tabanlı Mühendislik kapsamında model dönüşümleri için geliştirilmiş ATL, MOLA, TEFKAT, GREAT, YATL model dönüşüm dilleri incelenmiş ve model dönüşüm dilleri değerlendirmesi için literatürde yer alan çalışmalar tartışılmıştır. Bu çalışmalar temel alınarak genel amaçlı bir model dönüşüm dilinin sağlaması gereken istekler ve bu istekler arasındaki ilişkiler araştırılmıştır. Tanımlanan istekler doğrultusunda, rol tabanlı bir model dönüşüm dilinin sorgu kısmını oluşturacak bir sorgu dili önerilmiştir. Rol tabanlı sorgu dilinde rollerin ve dönüşümlerin ifade edilmesinde gösterim olarak literatürde tanımlanmış Role-Based Modeling Language (RBML) dilinden yararlanılmıştır. Bu gösterim, rolü oynayan sınıfların sayılarını belirtmemize ve bu sınıflara ait kısıtları üst (meta) seviyede OCL kullanarak göstermemize olanak sağlamaktadır. Rol tabanlı sorgu dilinin UML-RDBMS ve çoklu kalıtım-tekli kalıtım dönüşümlerinde kullanımı örneklenmiş ve tartışılmıştır. Anahtar Sözcükler: Üst modelleme, Model Dönüşüm Dilleri, Rol Tabanlı Modelleme, Model Sorgu Dili.

6

7 VII ABSTRACT A SURVEY OF MODEL TRANSFORMATION LANGUAGES AND A MODEL QUERY LANGUAGE PROPOSAL GÖKNİL, Arda MSc in Computer Engineering Supervisor: Prof. Dr. N. Yasemin TOPALOĞLU July 2006, 112 pages In this thesis, model transformation languages like ATL, MOLA, TEFKAT, GREAT, and YATL which were developed for Model Driven Engineering (MDE) are studied. The requirements that model transformation languages should fulfill are examined by discussing the related work in the literature. Based on this survey, a set of generic transformation language requirements and the relations between these requirements are defined. According to the survey of transformation languages and the defined requirements, a role based model query language is proposed. The notation used in defining roles in role based model query language is Role-Based Modeling Language (RBML) which is defined by France (France et al., 2003a). This notation allows us to specify the number of model elements playing the role and to define the meta level constraints of that role as OCL constraints. The use of role based query language in UML-RDBMS and Multiple Inheritance-Single Inheritance transformations is defined and discussed. Keywords: Metamodeling, Model Transformation Languages, Role Based Modeling, Model Query Language.

8

9 IX TEŞEKKÜR Bu çalışmam süresince her türlü desteği sağlayan çok değerli danışmanım Sayın Prof. Dr. N. Yasemin Topaloğlu na teşekkürü bir borç bilirim. Çalışmam sırasında desteklerini hiç bir zaman esirgemeyen aileme, çalışma arkadaşım Ahmet Sıkıcı ya, arkadaşlarım Sinan Yıldırım, Zekai Demirezen, Tayfun Elmas, İnanç Seylan ve Önder Gürcan a teşekkür ederim.

10

11 XI İÇİNDEKİLER ÖZET... V ABSTRACT... VII TEŞEKKÜR... IX İÇİNDEKİLER... XI ŞEKİLLER DİZİNİ...XV 1 GİRİŞ MODEL TABANLI MÜHENDİSLİK Üst Modelleme ve Üst Model Katmanları Model Dönüşümleri Model Tabanlı Mühendislik için Teknik Uzaylar Model Tabanlı Mimari (Model Driven Architecture) Teknik Uzayı Diğer Teknik Uzaylar Ontoloji Teknik Uzayının Model Tabanlı Mühendislik Kapsamında İncelenmesi MODEL DÖNÜŞÜM DİLLERİ MOF 2.0 QVT RFP Kapsamında Geliştirilen Model Dönüşüm Dilleri için İstekler Czarnecki ve Helsen in Model Dönüşüm Dilleri Sınıflandırması ATL (ATLAS Transformation Language) Model Dönüşüm Dili ATL Dönüşüm Alt Yapısı ve Dönüşüm Yaklaşımına Genel Bir Bakış Örnek Bir Dönüşüm... 30

12 XII 3.4 MOLA (MOdel transformation LAnguage) Model Dönüşüm Dili MOLA Dönüşüm Alt Yapısı ve Dönüşüm Yaklaşımına Genel Bir Bakış Örnek Bir Dönüşüm TEFKAT Model Dönüşüm Dili TEFKAT Dönüşüm Alt Yapısı ve Dönüşüm Yaklaşımına Genel Bir Bakış Örnek Bir Dönüşüm GREAT (Graph Rewriting and Transformation language) Model Dönüşüm Dili GREAT Dönüşüm Alt Yapısı ve Dönüşüm Yaklaşımına Genel Bir Bakış Örnek Bir Dönüşüm YATL (Yet Another Transformation Language) Model Dönüşüm Dili YATL Dönüşüm Alt Yapısı ve Dönüşüm Yaklaşımına Genel Bir Bakış Örnek Bir Dönüşüm MODEL DÖNÜŞÜM DİLLERİNİN DEĞERLENDİRİLMESİ Literatürdeki Çalışmalar Gronmo (Gronmo et al., 2005) Kurtev (Kurtev, 2005) Model Dönüşüm Kriterlerinin Sınıflandırılması ve Aralarındaki İlişkilerin Tanımlanması için Önerilen Yaklaşım Yapılan Çalışmalar Işığında Kriterlerin Sınıflandırılması Kriterlerin Sınıflandırma İçerisindeki Dağılımı ve Kriterler Arasındaki Bağlantılar Önerilen Kriterlere Göre Model Dönüşüm Dillerinin Değerlendirilmesi...64

13 XIII 5 ROL TABANLI MODEL SORGU DİLİ Çizge Kavramı ve Çizge Tabanlı Dönüşüm Araçları Rol Kavramı Rol ve Çizge Kavramlarının Tasarlanan Dil İçerisinde Kullanılması Sorgu Dili Üst Modeli ve Üst Model Katmanları Arasındaki İlişkiler Dil İçerisindeki Temel Yapılar Desen Eşleşmelerinde Belirsizlikleri Önlemek İçin Kullanılan Yapılar Rol Tabanlı Sorgu Tanımları UML-RDBMS Dönüşümü için Rol Tabanlı Sorgu Tanımı Çoklu Kalıtım Tekli Kalıtım Dönüşümü için Rol Tabanlı Sorgu Tanımları SONUÇ KAYNAKLAR DİZİNİ ÖZGEÇMİŞ

14 XIV

15 XV ŞEKİLLER DİZİNİ Şekil Sayfa Şekil 2.1 Model Tabanlı Mimari İlkeleri...4 Şekil 2.2 Model Tabanlı Mühendislik, Standartlar ve Araçlar...5 Şekil 2.3 Dört Katmanlı Yapı...7 Şekil 2.4 OMG nin Dört Katmanlı Üst Modelleme Alt Yapısı...8 Şekil 2.5 Üst Modele Dayanan Model Dönüşümleri...9 Şekil 2.6 İki Model Tabanlı Mühendislik Teknik Uzayı...11 Şekil 2.7 Teknik Uzaylar Arasındaki Köprüler...12 Şekil 2.8 Model Tabanlı Mimari Seviyeleri ve Bu Seviyeler Arasındaki Geçişler...14 Şekil 2.9 Ontoloji Teknik Uzayının Model Tabanlı Mimari Teknik Uzayı ile Çıkarsama İşlemi için Beraber Kullanımı...17 Şekil 2.10 Model Tabanlı Mimari Kapsamında Ontolojik Model Seviyeleri...18 Şekil 3.1 Desen Tabanlı Bir Model Dönüşümü...20 Şekil 3.2 AMMA Platformu...28 Şekil 3.3 ATL İşletim Motoru Mimarisi...29 Şekil 3.4 MOLA Araç Şeması...33 Şekil 3.5 Ana Dönüşüm Diyagramı...35 Şekil 3.6 CreateAttributeCopies Alt Dönüşümü...36 Şekil 3.7 GREAT Dönüşüm Platformu Bileşenleri...42 Şekil 3.8 Çoklu Kalıtım-Tekli Kalıtım Dönüşümünde Kaynak ve Hedef Desenler...43 Şekil 3.9 UML-Java Dönüşümü İçerisinde Tanımlanan Kurallar ve Kuralların İşletim Sırası...44 Şekil 3.10 CopyClasses Kuralının İç Yapısı...45 Şekil 3.11 CreateInheritance Kuralının İç Yapısı...46

16 XVI Şekil 4.1 Model Dönüşüm Dili Kriterlerinin Sınıflandırılması için Önerilen Yaklaşım...57 Şekil 4.2 Dönüşüm İçerisinde Tanımlı Bir İzlenebilirlik Bağlantısı...58 Şekil 4.3 Tanımlanan Dil Kriterleri ve Model Dönüşüm Dilleri...65 Şekil 5.1 Modeller ve Çizge Gösterimleri Arasındaki İlişki...70 Şekil 5.2 UML Mimarisi ile Model Rol İlişkisi...73 Şekil 5.3 Bir Class Rolünün Yapısı...73 Şekil 5.4 Modelleme Dillerini Oluşturan Katmanlar...75 Şekil 5.5 Sorgu Dilinin Üst Modeli (Soyut Sözdizimi)...76 Şekil 5.6 Sorgu Dilinin Anlamsal Alanı...77 Şekil 5.7 Kaynak Üst Model Sınıfları ve Roller Arasındaki İlişkiler...78 Şekil 5.8 Dönüşüm Üst Sınıfı ve <<Dönüşüm Rolü>> Arasındaki İlişki...78 Şekil 5.9 Örnek Sorgunun Sorgu Dili Üst Modeli Örnekleriyle İfadesi...80 Şekil 5.10 Basitleştirilmiş UML Üst Modeli...82 Şekil 5.11 RODEL Sorgu Dilinde Örnek Bir UML Model Sorgusu...83 Şekil 5.12 Yayıncı-Kitap UML Modeli...84 Şekil 5.13 Sorgunun İşletilmesi Sonucu Dönen Değerler...84 Şekil 5.14 Sorgu Tanımı İçerisindeki Mantıksal Operatörler...85 Şekil 5.15 Değil Operatörünün Rol Tanımları Arasındaki İlişkiler Üzerine Uygulanması...86 Şekil 5.16 Desen Tanımları...87 Şekil 5.17 Sabit Sayılı Bir Desenin Uygulama Modeli Üzerindeki Eşleşmeleri...88 Şekil 5.18 Rolü Oynayan Model Elemanları Arasındaki İlişkiler için Sayı Kısıtları...89 Şekil 5.19 Kaynak Üst Model Kullanılarak Kaynak Desenin Tutarlılığının Kontrolü...90 Şekil 5.20 UML-RDBMS Sorgu Deseni I...92 Şekil 5.21 UML-RDBMS Sorgu Deseni II...93

17 XVII Şekil 5.22 UML-RDBMS Sorgu Deseni III...94 Şekil 5.23 Çoklu Kalıtım Tipleri...95 Şekil 5.24 Tek Seviyeli Çoklu Kalıtım İçin Sorgu Tanımı...96 Şekil 5.25 İki Seviyeli Çoklu Kalıtım İçin Sorgu Tanımı...96

18

19 1 1 GİRİŞ Günümüz yazılım sistemlerinin çözüm getirmeye çalıştığı problemlerin karmaşık yapısı ve sistemlerin bir çok değişik alt sistemden oluşması, bu sistemlerin geliştirilmesini ve bakım işlemini zorlaştırmaktadır. Bu nedenle yazılım endüstrisi, yazılım teknolojileri açısından büyük bir rekabet içerisindedir. Bu rekabetin bir yansıması olarak yeni programlama dilleri, yeni platformlar ve yeni veri gösterim teknikleri geliştirilmektedir. Yeniden kullanılabilir ve bakım aşamasının daha yönetilebilir olduğu yazılımların geliştirilmesi, yazılım mühendisliği araştırmacılarının öncelikli hedeflerini oluşturmaktadır. Var olan sistemlerin büyüklüğü ve karmaşıklığı bu tip yazılım sistemlerinin tamamen kod tabanlı geliştirilmesini zorlaştırmaktadır. Bu nedenle yazılım geliştirme paradigmalarında kod seviyesinden daha soyut seviyelerde geliştirme yapma ihtiyacı hissedilmektedir. Yüksek seviyede yazılım geliştirme yaklaşımlarından biri olan model tabanlı yazılım geliştirme, yazılımların yeniden kullanılabilirliğinin ve bakım kolaylığının model geliştirme ve model dönüşümleri ile artırılması fikrine dayanmaktadır. Model tabanlı yazılım geliştirme içerisinde tanımlanan yaklaşımların bir çoğu, farklı soyutlama seviyelerindeki modeller arasında otomatik geçişler ile soyutlama seviyesi yüksek olan alan modellerinden nihai kaynak kodu üretmeyi amaçlamaktadır. Farklı soyutlama seviyelerindeki modelleri kullanarak çalıştırılabilir kaynak kod üretme amacı, otomatik model dönüşüm yaklaşımı ile mümkün olabilecektir. Model dönüşümlerini tanımlamanın en etkili yöntemlerinden biri model dönüşüm dillerini kullanmaktır. Dönüşümlerin tanımlanması ve uygulanması için kullanılan dil, programlama dillerinde olduğu gibi kontrol ve döngü ifadeleri içerebilir. Dönüşüm dilleri ile diğer model dönüşüm yaklaşımların da yapılamayan kaynak ve hedef modellerdeki değişken noktaların yakalanması, kuralların esnek olarak işletilmesi gibi işlemler gerçekleştirilir.

20 2 Bu tezde literatürde model dönüşüm dillerinin sınıflandırılması ve model dönüşüm dilleri kriterleri üzerine yapılan çalışmalar incelenmiştir. Bu çalışmalar ışığında model dönüşüm dillerinin sağlaması gereken genel kriterler ve bu kriterler arasındaki ilişkiler araştırılarak tanımlanan bu kriterler kapsamında bazı model dönüşüm dilleri değerlendirilmiştir. Bu değerlendirmeden yola çıkarak bir rol tabanlı model dönüşüm dilinin ilk parçası olan rol tabanlı sorgu dili tasarlanmıştır. 2. bölümünde, tez içerisinde yer alan temel kavramlar incelenmiştir. Bu bölümde anlatılan kavramlar ve tanımlar, diğer bölümlerin anlaşılabilmesi için gerekli olan temel bilgileri içermektedir 3. bölümde, model dönüşüm dillerinin sınıflandırılması üzerine yapılmış olan çalışmalar tarafından belirtilmiş dil özellikleri incelenmiştir. Ayrıca ATL, MOLA, TEFKAT, GREAT ve YATL model dönüşüm dilleri, bu özellikler ışığında incelenmiştir. 4. bölümde, model dönüşüm dillerinin değerlendirilmesi için literatürdeki iki farklı çalışma incelenmiş ve bu çalışmalardan yola çıkılarak bir model dönüşüm dilinin sağlaması gereken genel amaçlı istekler ve bu istekler arasındaki ilişkiler tanımlanmıştır. Son olarak da üçüncü bölümde incelenen model dönüşüm dillerinin, tanımlanan bu istekleri ne ölçüde desteklediği tartışılmıştır. 5. bölümde, model elemanlarının genel karakteristiklerini modelleyen Rol kavramını temel alan bir model sorgu dilinin tasarımı açıklanmıştır. 6. bölümde, tez çalışmasının sonuçları belirtilmiştir.

21 3 2 MODEL TABANLI MÜHENDİSLİK Günümüzde yazılım mühendisliği araştırmacılarının öncelikli hedefi, yazılım geliştirmede üretkenlik artışının sağlanması ve bakımı kolay yazılımların geliştirilmesidir. Model tabanlı yazılım geliştirme, yazılımların yeniden kullanılabilirliğinin ve bakım kolaylığının model geliştirme ve model dönüşümleri ile artırılması fikrine dayanmaktadır. Bu fikrin temeli ise, yazılım geliştirme paradigmasının bir seviye yükseltilerek yazılım geliştiricilerinin zamanlarının büyük bir kısmında program kaynak kodu geliştirmesi yerine değişik soyutlama seviyelerinde yazılım modelleri geliştirmesidir. Model tabanlı yazılım geliştirmenin, yazılım geliştirmedeki üretkenlik artışını; ve Yazılım geliştirmede soyutlama düzeyini kod seviyesinden model seviyesine çıkartarak, Yazılım ürünlerin teknolojik değişimlerden en az seviyede etkilenmesini sağlayarak, mümkün kılacağı öne sürülmektedir (Atkinson and Kuhne, 2002). Model Tabanlı Mühendislik (Model Driven Engineering MDE), yazılım sistemlerinin model tabanlı bir şekilde geliştirilebilmesi için ortaya konulan mühendislik ilkelerini kapsamaktadır. Model Tabanlı Mimari, OMG tarafından tanımlanmış olan MOF, XMI, OCL, UML, CWM ve SPEM gibi standartlar etrafında Model Tabanlı Mühendislik kavramlarının uygulanması olarak düşünülebilir. IBM manifesto (Booch et al., 2004), Model Tabanlı Mimari yaklaşımının doğrudan gösterim, otomasyon ve standartlar olmak üzere üç kavrama dayandığını belirtmektedir.

22 4 Şekil 2.1 Model Tabanlı Mimari İlkeleri (Booch et al, 2004) Doğrudan gösterim ile belirtilen, bir problemin alana özgü diller (domain specific languages) kullanılarak modellenmesi iken bu alana özgü modellerin otomatik model dönüşümleri ile uygulama modellerine dönüştürülmesi, otomasyon kavramı ile açıklanmıştır. Modellerin birbirine dönüştürülebilir olması ise bazı standartların gerekliliğini ortaya çıkarmıştır. Modellerin doğrudan gösterimi, Model Tabanlı Mimari içerisinde büyük önem taşımaktadır. Problemin bulunduğu alanda yer alan varlıklar ve bu varlıklar arasındaki ilişkiler, alana özgü modelleme dilinin (Domain Specific Modeling Languages DSML) üst modelinde tanımlanmaktadır. Bu nedenle modellerin genel amaçlı modelleme dilleri yerine alana özgü modelleme dilleri ile ifade edilmesi, problemin tam olarak ve yoruma açık olmadan kullanıcılar tarafından modellenebilmesini mümkün kılmaktadır. Bezivin (Bezivin, 2005), IBM manifesto tarafından Model Tabanlı Mimari için ortaya atılan kavramları Model Tabanlı Mühendislik kapsamında genelleştirebilmek için birbirini takip eden iki adım tanımlamaktadır. İlk olarak Model Tabanlı Mühendislik tanımını oluşturan ilkeleri tanımlanırken, daha sonra bu tanımlanan ilkelerin

23 uygulamasının yapıldığı araçlar oluşturulmaktadır. Bu tanıma göre Şekil 2.2 de Model Tabanlı Mühendislik içerisinde tanımlı değişik standartlar ve bu standartların kullanıldığı platformlar yer almaktadır (Bezivin, 2005). 5 Şekil 2.2 Model Tabanlı Mühendislik, Standartlar ve Araçlar (Bezivin, 2005) 2.1 Üst Modelleme ve Üst Model Katmanları Model tabanlı geliştirmenin ana etkinliği, model dönüşümleridir. Modeller arası işbirliğini ve dönüşümü sağlamada önemli bir bileşen, üst modelleme (meta-modeling) kavramı ve üst modellerdir. Bir üst model (meta-model), belirli bir modelleme dilinde geçerli olan modelleri tanımlayan bir modeldir (Seidewitz, 2003). Üst model gibi üst düzey tanımlamalar, modeller üzerinde çalışılmasını kolaylaştırırlar (Atkinson and Künhe, 2002). OMG tarafından 1997 yılında tanımlanan Unified Modeling Language (UML) (OMG, 2003b), son yıllarda nesneye yönelik yazılım geliştirmede yaygın kullanılan bir modelleme standardıdır. UML modelleri ile geliştirilen sistemin yapısı ve davranış şekli, farklı bakış açılarından gösterilebilir. Bunun yanı sıra UML modellerinin metinsel

24 6 olarak açıklanması için Object Constraint Language (OCL) (Warmer and Kleppe, 2003) tanımlanmıştır. Üst model kavramı, UML tanımının da temelini oluşturmaktadır. UML üst modeli, geçerli olan UML modellerinin sağlaması gereken kuralları tanımlamaktadır. OMG tarafından sadece UML üst modelini değil, benzer dillerin de tanımını sağlamak için MOF (OMG, 1997) adı verilen bir çerçeve tanımlanmıştır. UML üst modeli, nesneye yönelik yazılım sistemleri için model tanımlamada kullanılan dili sağlarken, MOF, üst modeller oluşturmak için kullanılan dili tanımlar. MOF ile, yazılım geliştirme alanında farklı konularda, örneğin; veri ambarı, iş akışı, yazılım süreci gibi, birbirleriyle uyumsuz üst modellerin tanımlanmasının önlenmesi amaçlanmıştır (Bezivin, 2001). MOF un dört katmanlı üst model yapısı şu şekildedir: Üst-üst model (M3): Üst-model katmanın gerçekleştirilmesi için gerekli üst yapılarının bulunduğu katman. Üst model (M2): Model katmanın üst-veri yapısının tanımlandığı katmandır. Üst-üst veri ya da üst-model katmanı olarak model tanımları için gerekli dili sunar. Model (M1): Bilgiyi yani veriyi tanımlayan üst-veriden oluşan model katmanı. Kullanıcı Nesneleri (M0): Veri diye tanımlanan ve anlatılmak istenen bilgiden oluşan kullanıcı nesneleri katmanı. Bu kapsamda, UML üst model düzeylerini Şekil 2.3 deki gibi örnekleyebiliriz:

25 7 Şekil 2.3 Dört katmanlı yapı (OMG, 2003b) Bezivin (Bezivin, 2001), dört katmanlı hiyerarşi içerisinde tanımlanan modeller ile programlama dilleri arasında bir benzerlik kurmuştur. Bu benzetimde M0 katmanındaki çalışma zamanı örnekleri Pascal programının belirli bir andaki çalışmasıyla, M1 katmanındaki kullanıcı modelleri bir Pascal programıyla, M2 katmanında tanımlı modelleme dili üst modeli, Pascal dil bilgisiyle ilişkilendirilirken M3 katmanında yer alan üst üst model ise çeşitli programlama dillerinin tanımına olanak sağlayan EBNF kurallarına benzemektedir. Bu katmanlı yapının daha iyi anlaşılabilmesi için Şekil 2.4 te programlama dilleri bakış açısıyla katmanlar örneklenmiştir.

26 8 Şekil 2.4 OMG nin Dört Katmanlı Üst Modelleme Alt Yapısı (Bezivin, 2001) 2.2 Model Dönüşümleri Model dönüşümleri, bir veya daha fazla kaynak modelin girdi olarak alınıp bir dizi dönüşüm kuralının uygulanması sonucunda bir veya daha fazla hedef modeli oluşturma süreci olarak tanımlanmaktadır (Sendall and Kozaczynski, 2003). Model dönüşümleri farklı hedefler için gerçekleştirilebilir (France and Bieman, 2001): Modeller, aynı soyutlama düzeyinde kalarak, sistemin farklı özelliklerini göstermek için kullanılabilir veya modeller iyileştirilebilir. Bu tür dönüşüm, yatay dönüşüm olarak nitelenmektedir. Modeller, daha yüksek bir soyutlama düzeyinden daha düşük bir soyutlama düzeyine geçmek için kullanılabilir. Bu tür dönüşüm, dikey dönüşüm olarak nitelendirilir. Örneğin,

27 Modellerden kaynak kodun üretilmesi bu tür bir dönüşüme örnektir. Model Tabanlı Mimari içerisinde platform bağımsız modellerin platform bağımlı modellere dönüştürülmesi de bir dikey dönüşümdür. Üst modele dayanan model dönüşümlerinde kaynak model, dönüşümün sonunda elde edilecek hedef model ve dönüşüm kuralları tanımlanmış olmalıdır. Model dönüşüm işleminde öncelikle başlangıç modeli yani kaynak modeli içerisinde kaynak üst modeller aranır ve değiştirilmek istenen yapılar belirlenir. Daha sonra model dönüşümü için tanımlanmış olan dönüşüm kuralları, belirlenen bu yapılar üzerinde uygulanır. Dönüşüm kurallarının uygulanması sonucu üretilen hedef modelin hedef üst modeline uygun olması gereklidir. Böylece üretilen modelin doğruluğu, hedef üst model ile yapılan eşlemelerde sınanır. Şekil 2.5 de görülen kaynak ve hedef üst modeller, dönüşüme girecek kaynak modeller ile dönüşüm sonucu elde edilecek hedef modellerin bilgilerinin tutulduğu modellerdir. 9 Şekil 2.5 Üst Modele Dayanan Model Dönüşümleri (Bezivin, 2001)

28 10 Sendall ve Kozaczynski (Sendall and Kozacynski, 2003), model dönüşümlerinin tanımlanmasında araçlar tarafından kullanılan yaklaşımları üçe ayırmıştır: Doğrudan Model İşleme: Bu yaklaşımda amaç, Rational gibi yazılım geliştirme araçları ile model üzerinde işlem yapılabilmesini sağlayan API ler yardımıyla modellerin dönüşüme uğratılmasıdır. Ara Gösterim: Bu yaklaşımda, model standart bir biçimde tanımlanır ve bu tanım üzerinde çalışır. Örneğin uygulama modelleri, kaynak ve hedef desenler; XMI formatında tutulur (Wagner, 2002) (Demirezen, 2004). Her biri üç ayrı XMI dosyasında tutulan uygulama modeli, kaynak ve hedef desen belleğe yüklenir. Daha sonra kaynak desen, uygulama modeli içerisinde aranarak uygulama modelinin dönüşüme uğratılacak kısımları belirlenir ve kaynak ve hedef desene göre ilgili kural dosyası işletilir. Genel olarak bu yaklaşımda dönüşüm kurallarının XSLT formatında kodlanması tercih edilmektedir. XSLT formatında kodlanmış kurallar belleğe yüklenip uygulama modeli üzerinde işletilerek dönüşüm gerçekleştirilmiş olur. Model dönüşümünün doğru gerçekleşip gerçekleşmediği ise ilgili hedef desenlerin dönüşüme uğrayan uygulama modeli üzerinde aranması ile belirlenir. Bu yaklaşımın bazı dezavantajları bulunmaktadır. Örneğin kaynak ve hedef desenlerin statik olarak XMI dosyaları içerisinde kodlanması, desenlerdeki her bir değişken nokta için değişik XMI dosyalarının var olmasını gerektirmektedir. Bu nedenle aynı dosya içerisinde And, Or, XOR gibi mantıksal operatörler belirtilememektedir. Yine ayrıca kuralların da statik olarak kodlanması, koşulların kontrol edilerek kuralların işletilmesini olanaksız kılmaktadır. Dönüşüm dili desteği: Bu yaklaşımda ise dönüşümlerin tanımlanması ve uygulanması için tanımlanan dil, programlama dillerinde olduğu gibi kontrol ve döngü ifadeleri içerebilir. Dönüşüm dili desteği ile ara gösterimde

29 11 yapılamayan kaynak ve hedef desenlerdeki değişken noktaların yakalanması, kuralların esnek olarak işletilmesi gibi işlemler gerçekleştirilir. Dönüşüm dilleri, bu desteği And, Or, XOR, If gibi mantıksal ifadeleri kullanarak verir. 2.3 Model Tabanlı Mühendislik için Teknik Uzaylar Teknik uzay, değişik teknolojilerin bir problemi çözmek için bir araya gelerek oluşturduğu toplam uzaydaki teknolojiler olarak tanımlanmaktadır (Kurtev et al., 2002). Teknik uzay kavramı ile teknolojileri daha soyut seviyede tanımlayarak bu teknolojiler arasındaki benzerlikleri, farklılıkları ve olası işbirliklerini tanımlamak amaçlanmaktadır. Bazı teknik uzaylar kolayca tanımlanabilir. Örneğin programlama dilleri (Java, C#), veritabanı sistemleri, markup diller (XML), bilgi gösterim dilleri (OWL, RDF), modelleme ortamları ve dillerinin (UML, Model Tabanlı Mimari, Model Bağlantılı Programlama) her biri; bir teknik uzayı oluşturmaktadır. Şekil 2.6 İki Model Tabanlı Mühendislik Teknik Uzayı (Bezivin, 2005) Şekil 2.6; Model Tabanlı Mühendislik, Model Tabanlı Mimari ve Microsoft Yazılım Fabrikaları (Microsoft Software Factories) yaklaşımları arasındaki ilişkileri teknik uzay bakış açısıyla tanımlamıştır

30 12 (Bezivin, 2005). Buna göre Model Tabanlı Mühendislik, bir teknik uzay iken Model Tabanlı Mimari ve Microsoft Yazılım Fabrikaları, Model Tabanlı Mühendislik teknik uzayının alt uzayı olan teknik uzaylardır. Teknik uzay kavramında birden fazla teknoloji arasındaki ilişkilerin tanımlanabilmesi için değişik teknik uzaylar arasında köprülerin (Bridge) tanımlanmış olması gerekmektedir (Bezivin and Kurtev, 2005). Tanımlanan bu köprüler ile birden fazla teknik uzay arasında geçişler sağlanarak bu teknik uzayların bir problemin çözümünde birbirini tamamlaması sağlanacaktır. Bezivin (Bezivin and Kurtev, 2005), iki teknik uzay arasında tanımlanan köprüleri technical projector olarak adlandırarak injector ve extractor olmak üzere iki farklı technical projector tanımlamıştır. Şekil 2.7 deki gibi Teknik Uzay 1 den Teknik Uzay 2 ye doğru tanımlanan ilk geçiş injector olarak adlandırılırken bu işlemin tam tersi yani eski teknik uzaya dönüş extractor olarak adlandırılmaktadır. Şekil 2.7 Teknik Uzaylar Arasındaki Köprüler Model Tabanlı Mimari (Model Driven Architecture) Teknik Uzayı Object Management Group un (OMG), Kasım 2000 tarihinde model tabanlı yazılım geliştirme için ortaya koyduğu Model Tabanlı Mimari (Model Driven Architecture MDA) (OMG, 2003a), Model

31 Tabanlı Mühendislik yaklaşımının bir uygulaması olarak tanımlanmaktadır. Model Tabanlı Mimari ile nesne modellerinin çalıştırılabilir bileşenlere ve uygulamalara dönüştürülerek yazılım sistemlerinin geliştirilmesi amaçlanmaktadır. Model Tabanlı Mimari kapsamında üç soyutlama seviyesi tanımlanmaktadır: Programlama Bağımsız Modeller (Computation Independent Models CIMs) Platform Bağımsız Modeller (Platform Independent Models PIMs) Platforma Özgü Modeller (Platform Specific Models PSMs) Tüm bu soyutlama seviyelerinin en altında da kaynak kod yer almaktadır. Geliştirici, programlama bağımsız modelleri kullanarak sadece problem içerisinde yer alan varlıkları ve bu varlıklar arasındaki ilişkileri modelleyecektir. Bu soyutlama seviyesindeki bir modelde uygulama ile ilgili herhangi bir bilgi yer almamaktadır. Ancak programlama bağımsız modellerden platform bağımsız modellere otomatik olarak geçebilmek için geliştirici, programlama bağımsız model üzerinde işaretleme işlemini yapmalıdır. Model dönüşüm tanımları ise programlama bağımsız modelde yer alan işaretlemelerden yola çıkarak bir alt seviyedeki platform bağımsız modeli oluşturacaktır. Platform bağımsız modeller, herhangi bir platformu temel almamasına rağmen programlanabilir yapıları içerisinde barındırmaktadır. Platform bağımsız modellerden herhangi bir platforma özgü modele geçiş tanımlanabileceği gibi bu modellerden doğrudan platforma özgü kaynak kod da üretilebilir olmalıdır. 13

32 14 Şekil 2.8 Model Tabanlı Mimari Seviyeleri ve Bu Seviyeler Arasındaki Geçişler (Topaloglu ve Goknil, 2004) OMG, bu model seviyeleri için sunduğu UML tabanlı tüm model ve üst modelleri dört katmanlı yapıyı göz önünde tutarak geliştirmektedir. UML genel amaçlı bir dil olmasına rağmen dile yeni profil paketleri eklenerek değişik seviyelerde değişik sistemler için modelleme ortamları oluşturulabilmektedir Diğer Teknik Uzaylar Model Tabanlı Mimari teknik uzayının haricinde Model Tabanlı Mühendislik kapsamında incelenebilecek bir çok teknik uzay tanımlanabilir. Bu teknik uzaylar içerisinde Model Tabanlı Mühendislik ile iç içe geçmiş olan teknik uzay XML teknik uzayıdır. OMG tarafından tanımlanan XMI (XML Metadata Interchange) (OMG, 2003c), Model Tabanlı Mimari teknik uzayı ile XML teknik uzayı arasında Model Tabanlı Mühendislik kapsamında tanımlanmış bir köprüdür. Diğer bir önemli teknik uzay ise programlama dilleri teknik uzayıdır. EMF (EMF, 2002) teknik uzayı ile Model Tabanlı Mimari teknik uzayı, birbirini tamamlayan teknik uzaylar olarak tanımlanabilir. Model Tabanlı Mimari, standartların tanımlandığı bir teknik uzay iken EMF ise bu standartların gerçekleştirildiği bir teknik uzaydır. EMF içerisinde tanımlı modelleme de aynı OMG nin üst modelleme yapısında olduğu

33 gibi dört katmana dayanmaktadır. EMF içerisinde tanımlı M3 katmanı Ecore (EMF, 2002) üst üst modelidir. Ecore üst üst modeli, MOF üst üst modelinden çok farklılık içermemesine karşın MOF a göre daha basitleştirilmiş bir üst modeldir. Microsoft DSL teknik uzayı, yazılım fabrikaları olarak adlandırılmaktadır (Greenfield et al., 2004). Model Tabanlı Mühendislik teknik uzayının altında tanımlanmış bir teknik uzay olup Model Tabanlı Mimari ile aynı hedefleri taşımasına rağmen yazılım geliştirme süreci içerisinde tanımladığı adımlar Model Tabanlı Mimari teknik uzayından farklılıklar göstermektedir. Bu teknik uzay içerisinde geliştirim için izlenecek adımlar; nesne modelin tanımlanması, modelleme dilinin somut söz diziminin belirlenmesi, kullanıcıların alana özgü yazılım sistemini tanımlayabilmesi için dilin grafik editörünün oluşturulması ve modelleme dili kullanılarak oluşturulmuş yazılım modellerinden kod üretecek yapıların oluşturulması şeklinde özetlenebilir. Değişik teknik uzaylar arasında ilgili işlemleri gerçekleştirebilmek için tanımlanan köprülerden bir tanesi de ontoloji teknik uzayı ile Model Tabanlı Mimari teknik uzayı arasında kurulabilecek köprüdür. M3 seviyesinde Web Ontology Language (OWL) (Dean et al., 2004) ile çıkarsama gibi işlemlerin yapılması, ontoloji teknik uzayında bu işlemler ile ilgili alt yapının tanımlanmış olmasından dolayı daha olası gözükmektedir. 2.4 Ontoloji Teknik Uzayının Model Tabanlı Mühendislik Kapsamında İncelenmesi 15 Ontoloji teknik uzayının Model Tabanlı Mühendislik kapsamında kullanılması için yapılan çalışmalar iki farklı açılımda ilerlemektedir. Bu açılımların ilki UML yapıları ve OWL yapıları arasında eşlemelerin ve dönüşümlerin tanımlanarak UML tabanlı ontoloji geliştiriminin sağlanması şeklindedir. Bu konudaki bir çok araştırma (Backlawski et al., 2002) (Falkovych et al., 2003) (Gasevic et al., 2004), UML alt yapısının ontoloji geliştirmek için uygun bir omurga görevi üstlenebileceğini göstermektedir. Bu çalışmaların sonucunda ise OMG M2 seviyesinde UML-OWL eşlemesinin tanımlanabilmesi için gerekli Ontoloji Üst

34 16 Modeli (Ontology Definition Metamodel ODM) (OMG, 2004) üzerinde çalışan bir çalışma grubu kurmuştur. Ontoloji üst modeliyle hedeflenen, UML modelleri kullanılarak ontoloji tanımlarını oluşturabilmektir. Bu şekilde bir gerçekleştirme için OWL ile ontoloji üst modeli arasında ve ontoloji üst modeli ile UML ontoloji profili arasında her iki yönde de eşlemeler tanımlanabilmelidir (Bezivin, Devedzic et al., 2005). Ontoloji teknik uzayının Model Tabanlı Mühendislik kapsamında kullanımı konusundaki çalışmalarda ikinci açılım ise, Model Tabanlı Mimari içerisindeki farklı yazılım modellerinin tanımında ve bu modeller arasındaki otomatik dönüşümlerde ontoloji dillerinden yararlanmak şeklindedir. Roser ve Bauer (Roser and Bauer, 2005), ontoloji tabanlı model dönüşümlerinin gerçekleştirilmesi için bir mimari önermektedirler. Önerdikleri mimari, üst modellerin tanımladığı söz dizim ile ontoloji yapılarının tanımladığı anlam arasında bir ilişki içermektedir. Bu önerilen mimarinin yanı sıra Pahl (Pahl, 2005), Model Tabanlı Mimari kapsamındaki Programlama Bağımsız Model, Platform Bağımsız Model ve Platforma Özgü Modellerin üst modelleme mekanizmasından bağımsız olarak ontoloji kavramları ve dilleriyle modellenebileceği ve bu ontolojiler arasındaki geçişlerin de ontoloji eşleme araçları ile gerçekleştirilebileceğini ileri sürmektedir. Ontoloji kullanılarak Model Tabanlı Mimari modellerinin oluşturulmasıyla modeller üzerinde çıkarsama işlemleri gerçekleştirilebilecektir (Pahl, 2005). Ontoloji tabanlı bir model dönüşüm alt yapısı için kullanılabilecek sorgu ve dönüşüm kurallarının ontolojik tanımları (Goknil and Topaloglu, 2005a) da yapılmıştır. Ontoloji ile model kavramlarını teknik uzay kapsamında incelediğimizde bu iki kavramın Model Tabanlı Mühendislik içerisinde kullanımında ontoloji teknik uzayı ile Model Tabanlı Mimari teknik uzayları arasında model çıkarsama işlemleri için bir köprü kurulabileceğini gördük. Üst modelleme alt yapısı anlamsal olarak çalışmadığı ve model çıkarsama işlemlerini doğrudan desteklemediği için modeller üzerinde çıkarsama işlemi gerektiği durumlarda ontoloji teknik uzayına geçilerek çıkarsama işlemleri gerçekleştirilir. İlgili işlem ontoloji teknik uzayı içerisinde gerçekleştirildikten sonra tekrar eski teknik uzaya geçilerek işlemlere kalınan yerden devam edilir. Şekil 2.9, ontoloji teknik

35 uzayının Model Tabanlı Mimari teknik uzayı ile çıkarsama işlemi için beraber kullanımı için önerilen yaklaşımı göstermektedir. 17 Şekil 2.9 Ontoloji Teknik Uzayının Model Tabanlı Mimari Teknik Uzayı ile Çıkarsama İşlemi için Beraber Kullanımı Programlama bağımsız modeller aslında birer alan modeli olduğu için alanın modellenmesi ilk olarak ontoloji teknik uzayı içerisinde alan ontolojisinin tanımlanması şeklinde gerçekleştirilebilir. Bu şekilde bir ontoloji geliştirimi bize aslında doğrudan ontoloji teknik uzayı içerisinde aynı zamanda programlama bağımsız modeller üzerinde (Xu, 2004) da anlatılan çıkarsama işlemlerinin otomatik olarak gerçekleştirilmesi imkanını verecektir. Alan ontolojisinin ontoloji teknik uzayında tanımlanıp çıkarsama işlemlerinin yapılmasından sonra Şekil 2.9 da gösterilen injector (1) işlemi ile Model Tabanlı Mimari teknik uzayına geçilmektedir. İki teknik uzay arasında tanımlanan bu injector işlemi ile M2 seviyesindeki ontoloji tanımları ile yine aynı seviyedeki üst modeller arasında veri transferi gerçekleştirilerek alan ontolojisinden alan modeli oluşturulmaktadır. Bu noktadan itibaren Model Tabanlı Mimari teknik uzayında hali hazırda seviyeler arasında tanımlanmış dönüşümler

36 18 gerçekleştirilir. Platform bağımsız model seviyesine inildiğinde eğer tekrar bir çıkarsama işlemi gerekirse yine iki teknik uzay arasında injector ve extractor işlemleri gerçekleştirilebilir. Bu şekilde iki teknik uzay arasında geçişlerin gerçekleştirilebilmesi için iki teknik uzay arasında gerekli köprünün kurulması gerekmektedir. Bu köprü ise Model Tabanlı Mimari içerisinde tanımlı üst modelleme kavramı ile ontoloji teknik uzayı içerisinde ontoloji kavramları arasındaki ilgili eşlemelerin tanımlanması ile mümkün olabilmektedir. Şekil 2.10, üst modelleme ile ontoloji kavramları arasındaki eşlemeyi göstermektedir. Buna göre Model Tabanlı Mimari teknik uzayında M3 seviyesinde bulunan MOF üst üst modeline karşılık ontoloji teknik uzayında OWL ın kendi içerisinde tanımlı temel yapılar yer almaktadır. (Goknil and Topaloglu, 2005b) de iki teknik uzay arasında tanımlanan bu köprü içerisinde model elemanları ile ontoloji elemanları arasındaki eşlemeler tanımlanmaktadır. Şekil 2.10 Model Tabanlı Mimari Kapsamında Ontolojik Model Seviyeleri (Goknil and Topaloglu, 2005b)

37 19 3 MODEL DÖNÜŞÜM DİLLERİ Model Tabanlı Mühendislik (Model Driven Engineering) (Bezivin, 2005) kapsamında model tabanlı yazılım geliştirmek için temel şart, farklı soyutlama seviyelerinde tanımlanan modeller arasında otomatik geçişler yapabilmektir. Böylece bir üst soyutlama seviyesinde tanımlanan bir model, daha önce tanımlanmış dönüşümleri kullanan model dönüşüm araçları ile daha alt soyutlama seviyesindeki modellere dönüştürülebilir. Model dönüşümleri ile program kaynak koduna en yakın seviyedeki yazılım modelinden çalıştırılabilir program kodu üretilmesi hedeflenmektedir. Model Tabanlı Mühendislik altında tanımlanan Model Tabanlı Mimari, EMF, Microsoft Yazılım Fabrikaları ve Model Bağlantılı Programlama gibi teknik uzayların her birinin temelini model dönüşümleri oluşturmaktadır. Model dönüşümleri için farklı yaklaşımlar tanımlanmıştır. Uygulamalar farklı teknik uzaylarda farklılıklar göstermekle birlikte model dönüşümleri, temelde uygulama modellerinin kaynak ve hedef desenler doğrultusunda dönüşüm kuralları uygulanarak dönüşüme uğratılmasını sağlamaktadır. Dönüşüm dili desteği yaklaşımında (Sendall and Kozaczynski, 2003), dönüşümlerin tanımlanması ve uygulanması için tanımlanan dil, programlama dillerinde olduğu gibi kontrol ve döngü ifadeleri içerebilir. Dönüşüm dili desteği ile ara gösterimde yapılamayan kaynak ve hedef desenlerdeki değişken noktaların yakalanması, kuralların esnek olarak işletilmesi gibi işlemler gerçekleştirilir. Bu bölümde öncelikle Model Tabanlı Mimari için model dönüşüm dillerinin sağlaması gereken kriterlerin anlatıldığı OMG QVT (OMG, 2002) ve Czarnecki ve Helsen tarafından dönüşüm dillerinin sınıflandırılması üzerine yapılmış olan çalışma (Czarnecki and Helsen, 2003) incelenmiştir. Literatürde yer alan model dönüşüm dillerinden ATL (Jouault and Kurtev, 2005), MOLA (Kalnins et al., 2004b), TEFKAT (Lawley and Steel, 2005), GREAT (Agrawal et al., 2003) ve YATL (Patrascoiu, 2004a) bu çalışmalar doğrultusunda incelenmiştir.

38 MOF 2.0 QVT RFP Kapsamında Geliştirilen Model Dönüşüm Dilleri için İstekler Desen tabanlı dönüşüm yaklaşımında (Judson et al., 2003) kaynak modeller daha önceden belirlenen kaynak desenlerinden yola çıkılarak hedef modele dönüştürülmektedir. Şekil 3.1, desen tabanlı dönüşüm yaklaşımının bir özetini vermektedir. Şekil 3.1 deki M2 seviyesi dönüşümün üst modelini desteklerken, M1 seviyesi de model dönüşümlerinin gerçekleştirilmesini tanımlamaktadır. T1 ile ifade edilen model dönüşümü, M1 seviyesindeki kaynak UML modelini alır ve hedef UML modeline dönüştürür. Dönüşüm deseni (Transformation Pattern) ise, kaynak ve hedef modellerinin tanımlarını ve bunlar arasındaki ilişkilerle ilgili kısıtlamaları içerir. Şekil 3.1 Desen Tabanlı Bir Model Dönüşümü (Judson et al., 2003) QVT, bir model dönüşümünü Sorgu (Query), Görünüm (View), ve Dönüşüm (Transformation) olmak üzere üç parçaya ayırmaktadır: Sorgu bölümü, kaynak modeli girdi olarak almakta ve bu model içerisindeki bazı model elemanlarını seçmektedir. Görünüm bölümü, diğer modellerden elde edilen alt modellerdir.

39 21 Dönüşüm bölümü ise modeli girdi olarak alır veya bu model üzerinde değişiklikler yapar ya da bu modelden yola çıkarak yeni bir model yaratır. Desen tabanlı model dönüşümlerinin model dönüşüm dilleri tarafından gerçekleştirilebilmesi için QVT kapsamında tanımlanan istekleri şu genel başlıklar altında toplayabiliriz (OMG, 2002): Şekil 3.1 de ifade edilen desen tabanlı bir model dönüşüm dilinde M2 katmanında belirtilen kaynak desenin M1 katmanındaki kaynak model içerisinde aranması gerekmektedir. Bir model dönüşüm dilinin bu işlemi gerçekleştirebilmesi için MOF modellerini sorgulayacak bir sorgu diline ihtiyacı vardır. Şekil 3.1 deki dönüşümde kaynak desen ve hedef desen elemanları arasındaki dönüşümleri göstererek kaynak modeli hedef modele dönüştüren dönüşüm kurallarının tanımlandığı dönüşüm deseni yer almaktadır. Bir model dönüşüm dilinde de bu kuralların ifade edileceği ve sorgu dilinde tespit edilen model elemanları üzerinde işletilecek dönüşüm kurallarının tanımlanacağı bir dil tanımlanmalıdır. Değişik kaynak desenler tanımlanabilir ve aynı kaynak desenden yola çıkılarak farklı hedef desenlere ulaşılabilir. Bu nedenle modelin tanımlanması için bir dil gereklidir. QVT dillerinin standartlaştırılması için öngörülen istekler, zorunlu istekler (mandatory requirements) ve zorunlu olmayan istekler (optional requirements) olmak üzere iki başlık altında toplanmaktadır. Zorunlu İstekler: Sorgu Dili (Query Language): MOF (OMG, 1997) tabanlı modelleri sorgulamak için bir dile ihtiyaç vardır.

40 22 Dönüşüm Dili (Transformation Language): QVT kapsamında yapılacak öneriler, dönüşüm tanımlamalarının yapılabilmesi için bir dil tanımlamalıdır. Tanımlanacak bu model dönüşümleri, MOF tabanlı modeller üzerinde işletilebilmelidirler. Soyut Söz Dizimi Tanımı (Abstract Syntax Definition): QVT dilleri, soyut söz dizimi tanımlarını MOF modelleri şeklinde yapmalıdırlar. Yani her bir dilin MOF tabanlı bir üst modeli olmalıdır. Görünüm Dili (View Language): QVT dilleri, modellerin değişik görünümlerinin yaratılmasını desteklemelidirler. Tanımlayıcı Dil (Declarative Language): QVT kapsamında yapılan önerilerde dönüşümlerin eksiksiz şekilde gerçekleştirilebilmesi için önerilen dilin tanımlayıcı (declerative) olması gerekmektedir. Zorunlu Olmayan İstekler: Çift Taraflı Dönüşüm Tanımları (Bidirectional transformation definitions): Geliştirilen diller, tanımlanan dönüşümleri her iki yönde de desteklemelidir. İzlenebilirlik (Traceability): Diller, model elemanları arasında tanımlanan izlenebilirlik bilgisini desteklemelidir. Bu, kaynak modelde bulunan hangi model elemanına karşılık hedef modelde hangi model elemanının yer aldığı bilgisinin tutulmasını sağlar. Yeniden Kullanılabilirlik Mekanizmaları (Reuse Mechanisms): QVT dilleri, daha genel tanımlanmış dönüşüm tanımlarının genişletilmesini ve yeniden kullanılmasını sağlayan mekanizmaları destekleyebilirler.

41 23 Hareketsel Dönüşümler (Transactional Transformations): Dönüşümlerin parçalarının işletilmesi bir hareket (transaction) olarak düşünülebilir. Varolan Modellerin Güncellenmesi (Update of existing models): Önerilen diller, kaynak ve hedef modellerin aynı model olduğu dönüşümleri destekleyebilir. Bu istekler, QVT kapsamında önerilen dillerin bir standart içinde gerçekleştirilmesi amacıyla ortaya konmuştur. Önerilen diller, bu ana maddeleri sağlamakla beraber kendileri de bazı ilave maddeleri destekleyebilirler. DSTC (Duddy et al., 2003) (Gerber et al., 2002), QVT RFP dokümanında belirtilen standartları bir model dönüşüm dilinin sağlaması gereken temel kriterler olarak ele aldıktan sonra bu kriterlere ek olarak kendi önerdikleri dil içerisinde bazı ek kriterler geliştirmiştir: Dönüşüm kuralları, model elemanlarını tek tek işleyebileceği gibi, model elemanları kümesini de işleyebilmelidir. Kurallar, kaynak ve hedef model elemanları arasında ilişkiler kurarak işletilmelidir. Kurallar, değişik üst seviyelerde eşleme yapabilmeli ve model elemanı oluşturabilmelidir. Bunun için de model dönüşümlerinde dinamik tipleme (dynamic typing) desteklenmelidir. Dönüşümler, hem kaynak modelde hem de hedef modelde oluşabilecek değişkenlikleri işleyebilmelidir. Çeşitli hedef elemanları tek bir kural içerisinde tanımlanabilmelidir.

42 24 Tek bir hedef elemanı, çeşitli kurallar tarafından tanımlanabilmelidir. Böylece değişik kurallar, aynı nesne için değerler üretebilir. Okunabilirliği ve modülerliği sağlamak için kurallar gruplandırılmalıdır. Model dönüşüm dili ya da dili işleyen dönüşüm motoru, dönüşüm kurallarının bir sıra dahilinde işletilmesini desteklemelidir. 3.2 Czarnecki ve Helsen in Model Dönüşüm Dilleri Sınıflandırması Czarnecki ve Helsen (Czarnecki and Helsen, 2003), var olan model dönüşüm dili yaklaşımlarını inceleyerek model dönüşüm dillerindeki ortak noktaları ve farklılıkları tartışmıştır. Tanımlanan bu özellikler, bu bölüm içerisinde incelenecek olan ATL, MOLA, TEFKAT, GREAT ve YATL model dönüşüm dillerini sınıflayabilmek ve birbirleriyle olan benzerliklerini tanımlayabilmek açısından önem taşımaktadır. Czarnecki ve Helsen in tanımladığı özellikler aşağıda kısaca açıklanmıştır: a) Kaynak-Hedef İlişkisi Bir dönüşüm işleminde, kaynak model ve hedef model aynı olabilir veya dönüşüm işlemi sonucunda oluşan hedef model ayrı bir model olabilir. b) Dönüşüm Kuralları Kaynak modelde yer alan bir eleman ile hedef modelde o elemana karşı gelen hedef model elemanı arasındaki işlemi tanımlayan kurallarda, kuralın yönü, kural parametreleri ve kuralda kullanılan ara yapılar açısından farklılıklar olabilir.

43 25 Kuralların Yönü (Directionality): Dönüşüm kuralları tek yönde (unidirectionality) tanımlanabileceği gibi her iki yön (bidirectionality) için de tanımlanabilir. Kural Parametreleri (Rule parametrization): Dönüşüm kuralları parametreler ile çağrılırlar. Aynı kural, dönüşümün içerisinde farklı parametrelerle farklı işlemler için kullanılabilir. Ara Yapılar (Intermediate Structures): Bazı diller kurallar içinde ara yapıların yer almasına izin verebilir. c) Kuralların Uygulanması Esnasında İzlenen Yaklaşımlar Bir kural, kaynak model içerisinde yer alan birden fazla model elemanı üzerine uygulanabilir. Bu durumda izlenebilecek değişik yöntemler mevcuttur: Deterministik Yaklaşım (Deterministic): Bu yaklaşımda kuralın her çalıştırılmasında bu kuralın uygulandığı model elemanları aynı sırada bulunur. Deterministik Olmayan Yaklaşım (Non-deterministic): Bu yaklaşımda kuralın her çalıştırılmasında kuralın model elemanları üzerine uygulanma sırası değişir. Etkileşimli (Interactive): Bu durumda kuralların uygulanma sırasını kullanıcı belirler. d) Kuralların Zamanlaması Kural zamanlaması ile hangi kuralın hangi sırada işletileceği tanımlanmaktadır.

44 26 Biçim (Form): İşletim sırası, içsel (implicit) ve dışsal (explicit) olmak üzere iki değişik şekilde belirtilebilir. Kural Seçimi (Rule Selection): Kuralların hangi sırada işletileceğinin seçimi kaynak model üzerinde belirtilen kurallara göre yapılabilir. Birden fazla kuralın aynı anda model elemanı üzerinde uygulanabileceği durumlarda ise kural önceliklerine bakılır. Kural Yinelemeleri (Rule Iteration): Kural yinelemeleri, özyineleme (recursion), döngü gibi temel yapılar ve bunların birleşiminden oluşabilir. Aşama (Phasing): Dönüşüm tanımları ardışık olarak işletilen aşamalara bölünebilir. e) Kuralların Organizasyonu Kuralların organizasyonu ile dönüşüm kuralları arasındaki ilişkiler düzenlenir. Bu ilişkilerin düzenlenmesinde üç farklı mekanizma tanımlanmıştır: Modül Mekanizmaları (Modularity mechanisms): Kurallar gruplanarak ayrı paketler altında toplanabilir ve bu paketler içerisinde yeniden kullanılabilirler. Yeniden Kullanım Mekanizmaları (Reuse mechanisms): Var olan kural tanımları kullanılarak yeni kural tanımları oluşturulabilir. Organizasyon Yapıları (Organizational structure): Kurallar; kaynak dile, hedef dile ya da başka faktörlere göre düzenlenebilir. Örneğin, kaynak modelin UML modeli olduğu bir dönüşümde UML de bulunan paket-sınıf-metot hiyerarşisinin aynısı kurallar için de geçerlidir.

45 27 f) İzlenebilirlik Bağlantıları İzlenebilirlik bağlantıları ile model dönüşümünün işletilmesi sırasında kaynak ve hedef model elemanları arasında kurulan ilişki tutulabilir. İzlenebilirlik bağlantıları, iki şekilde oluşturulabilir: Kullanıcı Tabanlı (user-based): Model elemanları arasındaki bağlantıları kullanıcı tanımlar Adanmış Destek (Dedicated Support): Model dönüşüm dili ve model dönüşüm motoru, model elemanları arasındaki bağlantıları tanımlar. g) Dönüşüm Yönü Model dönüşüm dilleri, kuralların kaynak modelden hedef modele tek yönlü veya iki yönlü tanımlanmalarına izin verirler. Czarnecki ve Helsen, tanımladıkları bu sınıflandırma kriterleri ile var olan model dönüşüm dillerinin alan analizini yapmıştır. Burada kısaca, tanımladıkları değişken noktaları ve kategorileri belirttik. Bu değişken noktalar, bir model dönüşüm dilinin tasarımında verilen kararları yansıtmaktadır. Bu nedenle bölüm içerisinde ilgili model dönüşüm dillerini ve bu dillerin tasarımlarını incelerken Czarnecki ve Helsen tarafından tanımlanan bu değişken noktalar önem taşımaktadır. 3.3 ATL (ATLAS Transformation Language) Model Dönüşüm Dili ATLAS Model Transformation Language (ATL) (Jouault and Kurtev, 2005) (Bezivin et al., 2003), Fransa daki Nantes Üniversitesinde Prof. Dr. Jean Bezivin ve ekibi (ATLAS Grup) tarafından geliştirilmiş bir model dönüşüm dilidir. ATL, QVT standartlarını temel almasına rağmen hızlı geliştirim yapabilmek için Eclipse Modeling Framework (EMF) (EMF, 2002) çatısı altında geliştirildiğinden dolayı MOF üst modeli

46 28 benzeri Eclipse ECore üst modelini desteklemektedir. ATL dili, AMMA model platformunun bir parçasıdır. AMMA platformu, ATL ile birlikte dört ayrı bileşenden oluşmaktadır: Atlas Transformation Language (ATL), Atlas ModelWeaver (AMW), Atlas MegaModel Management (AM3), Atlas Technical Projectors (ATP). ATL, tanımlayıcı ve prosedürel özelliklerini taşıyan bir dil olup temel olarak desen tabanlı model dönüşüm yaklaşımını benimsemiştir. Platform içerisinde AMW aracı üst modeller arasında tanımlanan eşlemelerden yola çıkarak otomatik olarak ATL dönüşüm kodu üretmektedir (Fabro and Jouault, 2005). Şekil 3.2 AMMA Platformu (Bezivin, 2005) ATL Dönüşüm Alt Yapısı ve Dönüşüm Yaklaşımına Genel Bir Bakış ATL dönüşüm alt yapısı, değişik katmanlardan ve bu katmanlar içerisinde birbiriyle haberleşen bileşenlerden meydana gelmektedir. Şekil 3.3, ATL işletim motoru mimarisini göstermektedir. Buna göre ATL dönüşüm alt yapısı; ATL derleyicisi, ATL programları, ATL sanal makinası, model soyutlama katmanı, model ambarından XMI formatında kodlanmış model elemanlarını belleğe yükleyen EMF ve MDR bileşenlerinden oluşmaktadır. Bu bileşenler içerisinde ATL sanal makinası, ATL derleyicisi tarafından oluşturulmuş byte kodunu çalıştırmaktadır.

47 29 Şekil 3.3 ATL İşletim Motoru Mimarisi (Jouault and Kurtev, 2005) ATL de kaynak ve hedef modeller, farklı modellerdir. Kaynak model için sadece okuma izni verilirken hedef modeller için sadece yazma yetkisi verilmiştir. Bu nedenle modellerin iyileştirilmesini (model refactoring) amaçlayan kaynak ve hedef modelin aynı olduğu ve kaynak model için yapılan değişikliklerin aynı model üzerine yansıtıldığı dönüşümler, ATL tarafından doğrudan desteklenmemektedir. ATL, bu tip dönüşümleri dolaylı olarak destekleyebilmek için refining mode adı verilen bir modda çalışmaktadır. ATL nin dönüşüm kuralları, bir dönüşüm tanımı içerisinde tek yönlü olarak işletilirler. Kural içerisinde kaynak ve hedef model elemanları, söz dizimsel olarak ayrı yapılar içerisinde tanımlanmaktadır. Kurallara parametre geçirilmesi ise sadece dışarıdan çağrılabilen called rules adı verilen özel kurallar için desteklenmektedir. ATL, kuralların uygulanması için deterministik olmayan yaklaşımı desteklemektedir. Normal kural yapısı içerisinde tanımlanan kuralların model elemanları üzerindeki uygulanma sırası, dönüşümün her çalıştırılmasında farklı olabilmektedir. ATL, kuralların uygulanma yaklaşımını kullanıcının belirlediği etkileşimli yaklaşımı

48 30 desteklememektedir. Kuralların organizasyonu için ATL, içerdiği modül ve kütüphane yapıları ile modül mekanizmalarını desteklemektedir. Yardımcı kural (Helper rules) adı verilen kurallar, kütüphane yapıları içerisinde tanımlanarak birden fazla kural ve dönüşüm tarafından ortak olarak kullanılmasına imkan verilmektedir. İzlenebilirlik bağlantıları için ATL, adanmış destek yaklaşımı izlenmektedir. Buna göre ATL dili ve dönüşüm tanımlarını işleyen dönüşüm motoru, izlenebilirlik bağlantılarını oluşturur. Kuralların zamanlaması konusunda ATL, hem içsel hem de dışsal kural çağrımlarının her ikisine de destek vermektedir. Buna göre matched rules adı verilen model elemanıyla eşlenilmesi durumunda çalıştırılan normal kural tanımlarının çağırılması içsel (implicit) olarak gerçekleştirilir. Bunun yanı sıra çağırılan kurallar (called rules) dışsal olarak başka bir kural tarafından gerektiğinde parametre geçirilerek çağrılmaktadır Örnek Bir Dönüşüm ATL içerisinde dönüşüm tanımları modül başlıkları altında toplanmıştır. Bir modül içerisinde header adı verilen başlık bölümü, diğer modüllerin ve kuralların dönüşüm içerisine alındığı import bölümü, helpers adı verilen yapılar ile dönüşüm kurallarını içermektedir. Başlık bölümünde dönüşüm modülünün ismi verildikten sonra kaynak ve hedef modeller türedikleri üst modeller ile birlikte belirtilir. Aşağıda örnek UML model - RDBMS model dönüşümü için tanımlanmış başlık bölümü belirtilmektedir. module SimpleClass2SimpleRDBMS; create OUT : SimpleRDBMS from IN : SimpleClass; Bu başlık bölümünde create kelimesi ile OUT isimli hedef model belirtilirken from kelimesi ile de IN isimli kaynak model belirtilmektedir. SimpleRDBMS ve SimpleClass ifadeleri, bu kaynak ve hedef modellerin türedikleri üst modelleri tanımlamaktadır.

49 Başlık bölümünden sonra tanımlanan yardımcı kurallar (helper rules) ve dönüşüm kuralları, dönüşümün görevini tanımlayan bölümlerdir. ATL içerisinde tanımlanan yardımcı kurallar, diğer kurallar tarafından ortak olarak çağırılabilen ara yapılardır. Aşağıda bir yardımcı kural tanımı (Jouault and Kurtev, 2005) verilmiştir. 31 helper context SimpleClass!Class def : allattributes : Sequence(SimpleClass!Attribute) = self.attrs->union( if not self.parent.oclisundefined() then self.parent.allattributes->select(attr not self.attrs->exists(at at.name = ) else Sequence {} endif )->flatten(); attr.name) allattributes ismiyle tanımlanmış olan yardımcı kural, parametre olarak geçirilen ilgili sınıfın kalıtım yoluyla üst sınıflardan alınan özellikleri de dahil olmak üzere bütün özelliklerini sorgulamaktadır. ATL nin tanımlayıcı kural yapısı ise eşlenen kurallar şeklinde adlandırılmaktadır. Eşlenen bir kural; kaynak desen elemanları, hedef desen elemanları, kaynak desen elemanları üzerindeki OCL kısıtları ve kaynak desen elemanları ile hedef desen elemanları arasındaki atama operatörlerinden oluşmaktadır. Dilin şu anki kural yapısında bire-çok (mn) eşleme yapılmaktadır. Yani kaynak desen elemanı olarak tek bir eleman belirtilebilirken hedef desen elemanı olarak da birden fazla eleman kullanılabilmektedir. Aşağıda kaynak model içerisinde kalıcı olarak tanımlanmış sınıfları hedef modelde tablo yapısı olarak tanımlayan örnek bir kural (Jouault and Kurtev, 2005) verilmiştir. rule PersistentClass2Table{ from c : SimpleClass!Class ( c.is_persistent and c.parent.oclisundefined() )

50 32 } to t : SimpleRDBMS!Table ( name <- c.name ) PersistentClass2Table adıyla tanımlanan yukarıdaki kural tanımı içerisinde from kelimesinden sonra belirtilen tanım ile SimpleClass üst modelinde tanımlı Class ların ilgili koşutları sağlaması durumunda c değişkenine bağlanması ifade edilmektedir. Bu ifadeden sonra gelen kısıt yapıları ile c değişkenine bağlanacak Class ların kalıcı özelliğe sahip olması koşulu tanımlanmıştır. to kelimesinden sonra ise c değişkenine bağlanan her bir kaynak model elemanı için hedef üst model olan SimpleRDBMS üst modelinden türeyen hedef modelde Table üst sınıfından türemiş bir model elemanının yaratılacağı belirtilmiştir. name <- c.name ataması ile ise kaynak modelde eşlenen her bir model elemanı için hedef modelde yaratılan model elemanının name özelliğine eşlenen kaynak model elemanının name özelliğinin değerinin atanması gerçekleştirilmektedir. 3.4 MOLA (MOdel transformation LAnguage) Model Dönüşüm Dili MOLA (Model transformation LAnguage) (Kalnins et al, 2004b) (Kalnins et al, 2005), Letonya daki Latvia Üniversitesinde Prof. Dr. Audris Kalnins ve ekibi tarafından geliştirilmiş bir model dönüşüm dilidir. MOLA, QVT standartları kapsamında geliştirilmesinin yanında çizge dönüşümlerini temel alan grafik gösterime sahip bir model dönüşüm dilidir MOLA Dönüşüm Alt Yapısı ve Dönüşüm Yaklaşımına Genel Bir Bakış MOLA dönüşüm alt yapısı, Dönüşüm Tanımlama Ortamı (Transformation Definition Environment) ve Dönüşüm İşletim Ortamı (Transformation Execution Environment) olmak üzere iki kısımdan oluşmaktadır. Her iki ortam da ilişkisel veritabanına dayanan çalışma

51 zamanı ambarını (runtime repository) kullanmaktadır. Bu ilişkisel veritabanı içerisinde dönüşümler, üst modeller ve modeller tutulmaktadır. MOLA nın dönüşüm tanımlama ortamı MOF sınıflandırması içerisinde M2 seviyesine karşılık gelen üst model seviyesinde yer almaktadır. Dil içerisindeki yapıların grafiksel olarak gösterilmesi nedeniyle dönüşüm tanımlama ortamı grafik çizim editörü şeklinde davranmaktadır. Bu ortam, aynı üniversite tarafından geliştirilen Generic Modeling Framework (GMF) alt yapısı (Celm et al., 2003) üzerine kurulmuştur. Dönüşüm tanımlama ortamı aynı zamanda içerisinde MOLA derleyicisini de içermektedir. Böylece, tanımlanan dönüşümlerin söz dizimi kontrolleri yapılarak bütün üst modeller ve dönüşüm tanımları GMF formatından MOLA nın çalışma zamanı formatına çevrilebilmektedir. Dönüşüm işletim ortamı ise MOLA sanal makinesi üzerine kurularak bir yorumlayıcı ile çalışma zamanı ambarında bulunan örnekler işletilir. MOLA sanal makinesi, dil içerisinde tanımlanmış dönüşüm ifadelerini SQL sorgularına çevirerek dönüşümü gerçekleştirmektedir. Buna göre Şekil 3.4, genel olarak MOLA içerisinde yer alan bileşenleri ve araçları göstermektedir. 33 Şekil 3.4 MOLA Araç Şeması (Kalnins et al, 2005) MOLA, dönüşüm kurallarına parametre geçirilmesini desteklemektedir. Dönüşüm tanımları, dil içerisinde aynı prosedürel programlama dillerinde olduğu gibi ana dönüşüm ve alt dönüşüm olmak üzere ikiye ayrılmaktadır. Ana dönüşüm içerisinde alt dönüşümler

52 34 parametreli ya da parametresiz olmak üzere çağrılabilir. Kurallar ise tek yönlüdür. Aynı dönüşüm tanımı içerisinde hem kaynak modelden hedef modele hem de hedef modelden kaynak modele dönüşüm tanımlanamamaktadır. Kuralların işletim sırasının belirtilmesi etkileşimli olarak kullanıcıya bırakılmaktadır. Ana dönüşüm içerisinde alt dönüşümlerin sırası kullanıcının tercihine bağlı olarak tanımlanmaktadır. Alt dönüşüm içerisinde ise kurallar yine kullanıcı tarafından sıralanır. MOLA dilinde sağlanan döngü yapısı ile kurallar gruplanarak yinelemeler olarak işletilebilir. Kurallar, model elemanları üzerinde farklı sıralarda uygulanabilir. İzlenebilirlik bağlantıları ise kullanıcı tabanlıdır. Kullanıcının kaynak ve hedef model elemanları arasında tanımladığı işlemler aynı zamanda kaynak ve hedef model elemanları arasındaki izlenebilirlik bağlantılarını oluşturmaktadır Örnek Bir Dönüşüm Bu bölümde MOLA dili kullanılarak UML modellerinin RDBMS modellerine dönüştürülmesi için tanımlanan alt dönüşüm adımları anlatılmıştır. Şekil 3.5 de, UML model RDBMS model dönüşümü için MOLA da tanımlanan ana dönüşüm ve ana dönüşüm içerisindeki dört alt dönüşüm gösterilmiştir.

53 35 Şekil 3.5 Ana Dönüşüm Diyagramı (Kalnins et al, 2004a) Şekil 3.5 de verilen ana dönüşüm Class model elemanı ve diğer üç alt dönüşümü için bir FOREACH döngüsü içermektedir. MOLA içerisinde bu tip döngüler kalın çerçeveli dikdörtgen ile ifade edilmektedir. Bu dikdörtgenin içerisinde Class model elemanı ve diğer üç alt dönüşümün belirtilmesiyle birlikte bütün bu tanımlanan yapılar döngü içerisine alınmaktadır. Döngünün içerisinde ilk olarak Class yapısına eşlenen model elemanları c adı verilen değişkene atanmaktadır. Bu ifadenin de kalın dikdörtgen içerisine alınması bir döngü içerisinde kaynak modelin dolaşılarak c değişkenin eşlenen bütün elemanları bir küme halinde tutmasını sağlamaktadır. {kind= persistent } ifadesi ile de Class model elemanlarının c değişkenine eşlenebilmeleri için kalıcı olma kısıtı belirtilmiştir. İlk olarak eşlenen bütün Class lara ait Attribute ler kopyalanmakta daha sonra bu Class ve Attribute lere karşılık Table ve Column yapıları hedef model içerisinde oluşturulmakta

54 36 ve son olarak da daha önce kaynak model içerisinde oluşturulan kopya Attribute ler silinmektedir. Bütün bu işlemler sırasıyla CreateAttributeCopies, BuildTableColumns ve DeleteCopies alt dönüşümlerinin her bir model elemanı için teker teker bir döngü içerisinde çağrılmasıyla sağlanmaktadır. Ana döngüden çıkıldıktan sonra çağırılan AssociationToForeignKeys alt dönüşümü ile kaynak modelde yer alan bütün Association yapılara karşılık hedef modelde ilgili Table yapıları içerisinde ForeignKey yapıları oluşturulmaktadır. Şekil 3.6 CreateAttributeCopies Alt Dönüşümü (Kalnins et al, 2004a)

55 Şekil 3.6 ise ana dönüşüm içerisinde parametre gönderimi ile çağırılan CreateAttributeCopies alt dönüşümünü göstermektedir. Bu alt dönüşüm içerisinde iki tanesi iç içe olmak üzere üç FOREACH döngüsü içererek bu dönüşümü takip eden diğer alt dönüşümlerin Table ve bunlara bağlı Column yapılarını oluşturabilmeleri için eşlenen Class yapılarının sahip oldukları Attribute leri kopyalamaktadır TEFKAT Model Dönüşüm Dili TEFKAT model dönüşüm dili, Avustralya nın Quensland üniversitesinde Pegamento projesi kapsamında Dr. Michael Lawley ve ekibi tarafından geliştirilmiş tanımlayıcı (declerative) bir model dönüşüm dilidir (Lawley and Steel, 2005) (Duddy et al, 2003). TEFKAT dili, mantık tabanlı (logic based) ve MOF üst modelini destekleyen bir dildir. OMG nin MOF QVT kapsamında tanımlamış olduğu model dönüşüm dili istekleri doğrultusunda tasarlanmış bir dil olup ayrıca QVT RFP için de bir teklif belgesi (DSTC et al, 2003) hazırlanmıştır. Genel olarak dönüşüm dili, MOF meta elemanlarını da kapsayan bir dönüşüm üst modelini (transformation metamodel) içermektedir. Bu dönüşüm üst modeli, dil içerisinde tanımlı bütün kural ve dönüşüm elemanlarını kapsamaktadır. Dil, dönüşüm deseni ve kurallar olmak üzere ikiye ayrılmaktadır. Dönüşüm deseni, uygulama modelinde değiştirilecek model elemanlarını belirleyen sorgu cümleciklerini oluştururken, kurallar ise uygulama modeli üzerinde çalıştırılan dönüşüm işlemlerini temsil etmektedir TEFKAT Dönüşüm Alt Yapısı ve Dönüşüm Yaklaşımına Genel Bir Bakış TEFKAT dönüşüm motoru, Eclipse ortamı içerisinde geliştirilmiştir. Bu nedenle kullanıcılar dönüşüm motorunu Eclipse ortamına uyumlu bir yazılım olarak (eclipse plug-in) kullanabilirler. Dil, metinsel bir söz dizime sahip olmakla birlikte dil editörü içerisinde dönüşümü izleyebilmek ve sınayabilmek için debug ortamı mevcuttur.

56 38 TEFKAT dili, kaynak ve hedef modelin aynı model olduğu dönüşümleri desteklememektedir. Dönüşüme girdi olarak birden fazla sayıda kaynak model tanımlanabilirken, dönüşümden çıktı olarak da birden fazla hedef model tanımlanabilir. Dönüşüm kuralları parametre alarak, bu parametreler ile çağrılabilirler. Bu şekilde aynı kural dönüşümün içerisinde farklı parametrelerle farklı işlemler için kullanılabilir. TEFKAT, kuralların uygulanmasında deterministik olmayan yaklaşımı desteklemektedir. Normal kural yapısı içerisinde tanımlanan kuralların model elemanları üzerindeki uygulanma sırası, dönüşümün her çalıştırılmasında farklı olabilmektedir. Kuralların organizasyonu kapsamında TEFKAT içerdiği modül ve kütüphane yapıları ile modül mekanizmalarını desteklemektedir. İzlenebilirlik bağlantıları kullanıcı tabanlıdır. Kuralların zamanlaması konusunda TEFKAT, hem içsel hem de dışsal kural çağrımlarının her ikisine de destek vermektedir. TEFKAT da etkileşimli bir ortam bulunmaktadır. Kurallar, dönüşüm içerisinde sırayla yazılır ancak kuralların işletiminde bu sıra önemli değildir. Bir kural içerisinden başka kuralın çağrılması ise içsel çağrım (implicit rule call) ile sağlanır. Bunun yanı sıra bir kuralın sorgu bölümünde dışsal (explicit) olarak özyineli bir şekilde aynı sorgu ya da başka bir sorgu çağrılabilir. Dilin soyut söz dizimi MOF üst modeline dayanmaktadır. TEFKAT ile tanımlanan dönüşümler, MOF üst modeline dayanan dil üst modelinden türeyen modeller şeklinde belirtilmektedir. Dilin somut söz dizimi ise metinsel bir gösterime sahiptir Örnek Bir Dönüşüm TEFKAT içerisinde dönüşüm tanımları Transformation deyimi ile yapılmaktadır. Bir dönüşüm; içerisinde genel olarak Transformation adı verilen başlık bölümü, kaynak ve hedef üst modellerin içerisine alındığı import bölümü, izlenebilirlik bağlantılarının yapıldığı Tracking adı verilen yapılar ile dönüşüm kurallarını içermektedir. Başlık bölümünde dönüşümün ismi verildikten sonra kaynak ve hedef model isimleri belirtilir. IMPORT deyimleri ile birlikte de belirtilen kaynak ve hedef modellerin dayandığı kaynak ve hedef üst modelleri

57 dönüşüm içerisinde tanımlanır. Aşağıda örnek UML model RDBMS model dönüşümü için tanımlanmış başlık bölümü belirtilmektedir. 39 TRANSFORMATION mtip05_class_to_relational: class -> relational IMPORT IMPORT Başlık bölümünden sonra izlenebilirlik bağlantılarının tanımlandığı sınıf ifadeleri tanımlanmaktadır. Örnek dönüşümde kaynak ve hedef modeller için Class model elemanı ile Table model elemanı ve Attribute model elemanı ile Column model elemanı arasında izlenebilirlik bağlantısını tanımlayan iki sınıf ifadesi yer almaktadır. CLASS ClsToTbl { Class class; Table table; }; CLASS AttrToCol { Class class; Attribute attr; Column col; }; TEFKAT içerisinde kullanılan söz diziminde kurallar SQL benzeri ifadeler ile belirtilmektedir. Her bir kural kaynak ve hedef olmak üzere iki tane kısıt içermektedir. WHERE ifadesi ile kuralın eşleşeceği kaynak model içerisindeki model elemanlarına ait kısıtlar yazılırken MAKE ifadesi ile de eşlenen kaynak model elemanlarına karşılık hedef model içerisinde oluşturulacak model elemanları tanımlanmaktadır. LINKING bölümünde daha önce tanımlanan sınıf yapıları kullanılarak kural içerisinde izlenebilirlik bağlantıları tanımlanır. SET ifadesi ise MAKE ifadesi içerisinde oluşturulan hedef model elemanlarına ait özelliklerin atamalarının yapıldığı bölümdür. Aşağıda verilen ClassAndTable adlı kural (Lawley and Steel, 2005) ile kaynak model içerisindeki her bir Class yapısına karşılık hedef model içerisinde Table yapısı

58 40 oluşturulmaktadır. Kural C ve T parametrelerini dışarıdan aldığı için dışsal olarak çağırılan bir kuraldır. RULE ClassAndTable(C, T) FORALL Class C { is_persistent: true; name: N; } MAKE Table T { name: N } LINKING ClsToTbl WITH class = C, table = T; Aşağıda verilen MakeColumns kuralı (Lawley and Steel, 2005) ile de ClassAndTable kuralı ile oluşturulan Table model elemanları için kaynak modelde yer alan her bir Attribute model elemanına karşılık hedef model tarafında ilgili Column model elemanı oluşturulmaktadır. RULE MakeColumns WHERE ClassHasAttr(C, A, N, IsKey) AND ClsToTbl LINKS class = C, table = T MAKE Column Col FROM col(c, N) { name: N; type: A.type.name; } SET T.cols = Col, IF IsKey = true THEN SET T.pKey = Col ENDIF LINKING AttrToCol WITH class = C, attr = A, col = C;

59 3.6 GREAT (Graph Rewriting and Transformation language) Model Dönüşüm Dili 41 GREAT model dönüşüm dili ABD nin Vanderbilt üniversitesinde Dr. Gabor Karsai ve ekibi tarafından geliştirilmiş çizge tabanlı bir model dönüşüm dilidir (Agrawal et al, 2003) (Agrawal et al, 2004) (Agrawal, 2004). GREAT dili, MOF ya da ECore gibi Model Tabanlı Mimari kapsamında geliştirilen ve benzerlikler taşıyan modelleme alt yapılarını kullanmak yerine Model Bağlantılı Programlama (Model Integrated Computing - MIC) (Sztipanovitz and Karsai, 1997) yaklaşımı çerçevesinde geliştirilen Generic Modeling Environment (GME) (Agrawal et al, 2003) modelleme ortamı kullanılarak geliştirilmiştir GREAT Dönüşüm Alt Yapısı ve Dönüşüm Yaklaşımına Genel Bir Bakış GREAT dönüşüm alt yapısı kural işleyici (rule executor) ve kural sıralayıcı (sequencer) olmak üzere iki farklı bileşenden oluşmaktadır. Kural işleyici, bir kural içerisinde tanımlanan kaynak desen, hedef desen ve dönüşüm kurallarını alıp yorumlayarak ilk önce kaynak desen tarafından belirtilen problemi kaynak model içerisinde arar. Bu arama işleminden uygun bir eşleşme döndüğü takdirde kural işleyici, dönüşüm kurallarını hedef desen içerisinde belirtilen örnek modele göre eşlenen model üzerinde uygulayarak hedef modeli oluşturur. Kural işleyici, desenin eşlenmesi ve dönüşüm kurallarının model üzerinde uygulanabilmesi amacıyla desen eşleyici (pattern matcher) ve uygulayıcı (effecter) olmak üzere iki bileşenden oluşmaktadır. GREAT kullanılarak aynı model dönüşümü içerisinde birden fazla kural tanımlanabileceği için bu kuralların geliştirici tarafından belirtilen sıraya göre dönüşüm motoru tarafından işletilmesi kural sıralayıcı tarafından gerçekleştirilmektedir. GREAT, kuralların hem ardışık hem de paralel işletilmesine destek vermesine rağmen kuralların işletim sırasının belirlenmesini dışsal olarak dönüşümü geliştiren kişiye bırakmaktadır. Dönüşüm platformu bütün bu bileşenlerin kullanacağı modelleme API lerini de içermektedir. Kural işleyici, Universal Data Model (UDM) API yi kullanırken kural sıralayıcı Graph Rewrite (GR) API yi kullanmaktadır. Şekil 3.7, GREAT dönüşüm platformu içerisindeki bileşenleri ve aralarındaki ilişkiyi göstermektedir.

60 42 Şekil 3.7 GREAT Dönüşüm Platformu Bileşenleri (Agrawal et al., 2003) GREAT, dil kaynak-hedef ilişkisi bakımından kaynak ve hedef modellerin aynı olduğu dönüşümleri de destekleyebilmektedir. Kurallar, dönüşüm içerisinde tek yönlü tanımlanabilmektedir. GREAT, kurallara parametre geçirilmesini desteklemektedir. Bir kuraldan dönen model elemanları diğer kural içerisine parametre olarak gönderilerek aynı model elemanlarının dönüşüm motoru tarafından tekrar eşlemek zorunda kalması önlenir. Kuralların yanında test yapıları da GREAT içerisinde desteklenerek dönüşüm gerçekleştirmeden sadece sorgu yapabilme özelliği dile kazandırılmıştır. Kuralların model elemanları üzerinde işletilmesinde deterministik olmayan bir yaklaşım vardır. Kuralların işletim sırası, kullanıcı tarafından açık olarak belirtilir. GREAT içerisinde tanımlanmış akış kontrol dilinde (control-flow language) belirtilen kurallar ile birlikte kuralların ardışık olarak işletilme sırası ya da hangi kuralların paralel işletileceği kullanıcı tarafından belirlenir. İzlenebilirlik bağlantısı da kullanıcı tabanlıdır. Kullanıcı, Cross-Link adı verilen bağlantı yapılarını kullanarak kaynak ve hedef model elemanları arasındaki bağlantıyı belirtmektedir.

61 3.6.2 Örnek Bir Dönüşüm GREAT dilinin uygulandığı örnek bir dönüşüm, nesneye yönelik yaklaşımın temel özelliklerinden kalıtım için tanımlanan bir dönüşümle açıklanacaktır. Çoklu kalıtım-tekli kalıtım dönüşümü, UML modellerinin Java modellerine dönüşümünde gerçekleştirilmesi gerekli bir dönüşümdür. UML modelleri çoklu kalıtıma izin vermesine rağmen Java programlama dilinin çoklu kalıtıma izin vermemesi nedeniyle bu modellerin Java modellerine dönüşümünde çoklu kalıtım içeren model yapılarının tekli kalıtım içeren yapılara dönüştürülmesi gerekmektedir. (Dao et al., 2004), çoklu kalıtım-tekli kalıtım dönüşümü için altı değişik dönüşüm tekniği önermektedir. Gerçekleştirilen dönüşüm Role Aggregation tekniğini temel almaktadır. Şekil 3.8, Role Aggregation kullanılarak gerçekleştirilen dönüşüm için kaynak ve hedef desenleri göstermektedir. 43 Şekil 3.8 Çoklu Kalıtım-Tekli Kalıtım Dönüşümünde Kaynak ve Hedef Desenler GREAT kullanarak bu dönüşümü UML-JAVA dönüşümü içerisinde bir alt dönüşüm olarak tanımladık. Şekil 3.9, tanımladığımız UML-Java dönüşümünü oluşturan kuralları ve bu kuralların işletim sırasının GREAT dilinin kontrol akış dili içerisindeki tanımını vermektedir. Şekilde belirtilen her bir kutucuk bir kuralı temsil etmekteyken kurallar arasında kırmızı çizgiler ile yapılan bağlantılar ise kurallar arasındaki parametre geçişleridir.

62 44 Şekil 3.9UML-Java Dönüşümünü İçerisinde Tanımlanan Kurallar ve Kuralların İşletim Sırası Buna göre dönüşüm dokuz tane dönüşüm kuralı ve TestDiamond adı verilen bir tane test kuralından oluşmaktadır. Bu kurallar içerisinde örneğin CopyClasses ve CopyFeatures gibi kurallar UML üst modelindeki UML Class ve UML Feature model elemanlarını Java üst modelindeki JClass ve JFeature gibi model elemanlarına eşleyerek UML-Java dönüşümünü gerçekleştirmektedir. Şekil 3.10, CopyClasses kuralının iç yapısını göstermektedir. Buna göre kural UML üst modelinde tanımlı Class üst sınıfından örneklenen her bir model elemanına karşılık hedef model içerisinde Java üst modelinde tanımlı bir JClass yaratırken AttributeMapping bölümü içerisinde, oluşturulan model elemanının özellikleri atanmaktadır. Kural içerisinde Class ile JClass arasında tanımlanan ilişki bir izlenebilirlik bağlantısı olup tanımlı diğer kurallar içerisinde Class için oluşturulan JClass lara ulaşmada kullanılmaktadır. UMLOut ve JavaOut olarak tanımlanan yapılar ise bağlantı çıktıları olarak adlandırılıp eşlenen ve yaratılan model elemanlarının kural dışarısına çıkartılarak diğer kurala parametre olarak geçirilmesi için kullanılmaktadır.

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

Yazılım Mimari Tasarımından Yazılım Geliştirme Çatısının Üretilmesinde Model Güdümlü Bir Yaklaşım Yazılım Mimari Tasarımından Yazılım Geliştirme Çatısının Üretilmesinde Model Güdümlü Bir Yaklaşım İbrahim Onuralp Yiğit 1, Nafiye Kübra Turhan 2, Ahmet Erdinç Yılmaz 3, Bülent Durak 4 1,2,3,4 ASELSAN A.Ş.

Detaylı

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

Model Güdümlü Geliştirme ile Gömülü Kaynakların Yönetimi Model Güdümlü Geliştirme ile Gömülü Kaynakların Yönetimi Can Öz EGE ÜNİVERSİTESİ FEN BİLİMLERİ ENSTİTÜSÜ BİLGİSAYAR MÜHENDİSLİĞİ A.B.D. 1 İçerik Kaynak Yönetimi Problemi Kaynak Yönetimi Modellemesinin

Detaylı

ÜST MODELE DAYALI MODEL DÖNÜŞÜMLERİ EGE ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ

ÜST MODELE DAYALI MODEL DÖNÜŞÜMLERİ EGE ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ ÜST MODELE DAYALI MODEL DÖNÜŞÜMLERİ Özlem MORKAYA Tahir Emre KALAYCI EGE ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ İçerik 1. 2. 3. 4. 5. Giriş Üst Model ve Model Dönüşümü Üst Model Model Dönüşümü Model

Detaylı

Yazılım Mühendisliği 1

Yazılım Mühendisliği 1 Yazılım Mühendisliği 1 HEDEFLER Yazılım, program ve algoritma kavramları anlar. Yazılım ve donanım maliyetlerinin zamansal değişimlerini ve nedenleri hakkında yorum yapar. Yazılım mühendisliği ile Bilgisayar

Detaylı

ÜST MODELE DAYALI MODEL DÖNÜŞÜMLERİ

ÜST MODELE DAYALI MODEL DÖNÜŞÜMLERİ ÜST MODELE DAYALI MODEL DÖNÜŞÜMLERİ Özlem Morkaya1 Tahir Emre Kalaycı2 1 Rektörlük Bilgi İşlem Daire Başkanlığı, Ege Üniversitesi, İzmir 2 Bilgisayar Mühendisliği Bölümü, Ege Üniversitesi, İzmir 1 e-posta:

Detaylı

Android e Giriş. Öğr.Gör. Utku SOBUTAY

Android e Giriş. Öğr.Gör. Utku SOBUTAY Android e Giriş Öğr.Gör. Utku SOBUTAY Android İşletim Sistemi Hakkında 2 Google tarafından geliştirilmiştir. Dünyada en çok kullanılan mobil işletim sistemidir. 2018 itibariyle Dünyada Android; %78.65,

Detaylı

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

Yazılım Yeniden Yapılamaya Yönelik Bir Kurumsal Mimari: Model Güdümlü ve Ontoloji Tabanlı Bir Yaklaşım Yazılım Yeniden Yapılamaya Yönelik Bir Kurumsal Mimari: Model Güdümlü ve Ontoloji Tabanlı Bir Yaklaşım Doç.Dr. Murat Paşa UYSAL Prof.Dr. A. Erhan MERGEN Yazılım Yeniden Yapılama Genel olarak Yazılım Yeniden

Detaylı

Ferhat ERATA. Geylani KARDAŞ

Ferhat ERATA. Geylani KARDAŞ Ferhat ERATA Geylani KARDAŞ 1 1. Giriş 2. Model Güdümlü Geliştirme ve Modelleme Yaklaş ımı 2.1. Model Güdümlü Geliştirme (Genel Bak ış) 2.2. Model Güdümlü Mimari içerisinde Tez Çal ışması 2.3. PSM4WSS

Detaylı

Ege Üniversitesi Uluslararası Bilgisayar Enstitüsü

Ege Üniversitesi Uluslararası Bilgisayar Enstitüsü Hidayet Burak SARITAŞ Geylani KARDAŞ Ege Üniversitesi Uluslararası Bilgisayar Enstitüsü 4 Kasım 2010 Akıllı kartlar Amaç Model Güdümlü Uygulama Geliştirme Platform Bağımsız Akıllı Kart Modeli Platforma

Detaylı

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

Veritabanı Yönetim Sistemleri (Veritabanı Kavramı) Veri Modelleri Veritabanı Yönetim Sistemleri (Veritabanı Kavramı) Veri Modelleri Konular Veritabanı Tasarım Aşamaları Veri Modeli Nedir? Veri Modeli Temel Bileşenleri İş Kuralları (Business Rules) İş Kurallarını Veri

Detaylı

PROGRAMLAMAYA GİRİŞ. Öğr. Gör. Ayhan KOÇ. Kaynak: Algoritma Geliştirme ve Programlamaya Giriş, Dr. Fahri VATANSEVER, Seçkin Yay.

PROGRAMLAMAYA GİRİŞ. Öğr. Gör. Ayhan KOÇ. Kaynak: Algoritma Geliştirme ve Programlamaya Giriş, Dr. Fahri VATANSEVER, Seçkin Yay. PROGRAMLAMAYA GİRİŞ Öğr. Gör. Ayhan KOÇ Kaynak: Algoritma Geliştirme ve Programlamaya Giriş, Dr. Fahri VATANSEVER, Seçkin Yay., 2007 Algoritma ve Programlamaya Giriş, Ebubekir YAŞAR, Murathan Yay., 2011

Detaylı

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

Eylül 2007 de v1.0 ı yayınlanan SysML sayesinde endüstri mühendislerinin de ihtiyacı karşılanmış oldu. 1 Yazılımcıların da endüstri mühendislerinin de en büyük ihtiyaçlarının başında ortak modelleme dili ihtiyacı gelir. UML nin (Unified Modeling Language) Kasım 1997 de OMG tarafından yayınlanmasıyla birlikte

Detaylı

1.1 Metodolojiyi Gerçeklemek Üzere Geliştirilen Altyapı

1.1 Metodolojiyi Gerçeklemek Üzere Geliştirilen Altyapı 1.1 Metodolojiyi Gerçeklemek Üzere Geliştirilen Altyapı Metodolojisi üzerinde durduğumuz çalışman Eğitim altyapısını gerçekleştirmek: Proje iki ana parçadan oluşacaktır. Merkezi Altyapı Kullanıcı Arabirimi

Detaylı

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

Veritabanı Yönetim Sistemleri (Veritabanı Kavramı) İş Kuralları ve Veri Modelleri Celal Çeken Veysel Harun Şahin Veritabanı Yönetim Sistemleri (Veritabanı Kavramı) İş Kuralları ve Veri Modelleri Konular Veritabanı Tasarımı Yaşam Döngüsü Veri Modeli Nedir? Veri Modeli Temel Bileşenleri

Detaylı

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

NESNEYE YÖNELİK PROGRAMLAMA Unified Modelling Language (UML) Bütünleşik Modelleme Dili Özlem AYDIN NESNEYE YÖNELİK PROGRAMLAMA Unified Modelling Language (UML) Bütünleşik Modelleme Dili Trakya Üniversitesi Bilgisayar Mühendisliği Bölümü MODEL NEDİR? Model, gerçek dünyadaki bir olayın veya

Detaylı

BSM 532 KABLOSUZ AĞLARIN MODELLEMESİ VE ANALİZİ OPNET MODELER

BSM 532 KABLOSUZ AĞLARIN MODELLEMESİ VE ANALİZİ OPNET MODELER BSM 532 KABLOSUZ AĞLARIN MODELLEMESİ VE ANALİZİ OPNET MODELER Yazılımı ve Genel Özellikleri Doç.Dr. Cüneyt BAYILMIŞ Kablosuz Ağların Modellemesi ve Analizi 1 OPNET OPNET Modeler, iletişim sistemleri ve

Detaylı

Java Temel Özellikleri

Java Temel Özellikleri Java Temel Özellikleri Java Programlama Dili Java programlama dili şu anda dünyadaki en popüler programlama dillerinden biri haline gelmiştir. Java SUN bilgisayar şirketince elektrikli ev aletlerinin birbiriyle

Detaylı

Anlamsal Web Tabanlı Etmen Sistemlerinin Geliştirilmesinde Model Tabanlı Yaklaşım

Anlamsal Web Tabanlı Etmen Sistemlerinin Geliştirilmesinde Model Tabanlı Yaklaşım Anlamsal Web Tabanlı Etmen Sistemlerinin Geliştirilmesinde Model Tabanlı Yaklaşım Arda Göknil 1, Geylani Kardaş 2, N. Yasemin Topaloğlu 1, Oğuz Dikenelli 1 1 Ege Üniversitesi, Bilgisayar Mühendisliği Bölümü,

Detaylı

Görsel Programlama DERS 03. Görsel Programlama - Ders03/ 1

Görsel Programlama DERS 03. Görsel Programlama - Ders03/ 1 Görsel Programlama DERS 03 Görsel Programlama - Ders03/ 1 Java Dili, Veri Tipleri ve Operatörleri İlkel(primitive) Veri Tipleri İLKEL TİP boolean byte short int long float double char void BOYUTU 1 bit

Detaylı

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

BLG4146 - Sistem Analizi ve Tasarımı. Öğr. Grv. Aybike ŞİMŞEK BLG4146 - Sistem Analizi ve Tasarımı Öğr. Grv. Aybike ŞİMŞEK Tasarım Evresi Analiz evresinde sorulan NE sorusuyla elde edilen bilgilerin NASIL yapılacağı, NASIL gerçekleştirileceğinin ortaya konulduğu

Detaylı

IDE4DB Veritabanı Geliştirme Platformu Bitirme Projesi Sunumu

IDE4DB Veritabanı Geliştirme Platformu Bitirme Projesi Sunumu IDE4DB Veritabanı Geliştirme Platformu Bitirme Projesi Sunumu Onur EKER 040970627 Danışman: Yrd. Doç Dr. Feza BUZLUCA Sunum İçeriği Projenin Tanımı Projenin Amacı Projenin Analizi Projenin Çözüm Sunduğu

Detaylı

DITA ile Uygulama Belgeleri Hazırlamak

DITA ile Uygulama Belgeleri Hazırlamak Özgür Web Teknolojileri Günleri 2011 DITA ile Uygulama Belgeleri Hazırlamak Adil Güneş AKBAŞ adil@ozguryazilim.com.tr DITA? Özelleştirilmiş, konu tabanlı(topic-based), yapılandırılmış belge yazma mimarisi

Detaylı

SiSTEM ANALiZi ve TASARIMI

SiSTEM ANALiZi ve TASARIMI SiSTEM ANALiZi ve TASARIMI BIL3403 Öğ. Gör. ASLI BiROL abirol@kavram.edu.tr 01.10.2012 Dersin Amacı Bu ders ile öğrenci; edindiği mesleki bilgi birikimini kullanarak sektörde uygulanabilir bir projeyi

Detaylı

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

Algoritma Geliştirme ve Veri Yapıları 2 Veri Modelleri. Mustafa Kemal Üniversitesi Algoritma Geliştirme ve Veri Yapıları 2 Veri Modelleri Veri modelleri, veriler arasında ilişkisel ve sırasal düzeni gösteren kavramsal tanımlardır. Her program en azından bir veri modeline dayanır. Uygun

Detaylı

Normatif Çoklu Etmen Sistemlerinde Rol Tabanlı Etmenler İçin Politika Bazlı Bir Erişim Denetimi

Normatif Çoklu Etmen Sistemlerinde Rol Tabanlı Etmenler İçin Politika Bazlı Bir Erişim Denetimi Normatif Çoklu Etmen Sistemlerinde Rol Tabanlı Etmenler İçin Politika Bazlı Bir Erişim Denetimi Yaklaşımı, Arş. Gör. İzmir Yüksek Teknoloji Enstitüsü İzmir 11 Şubat 2010 Çoklu Etmen Sistemleri Çoklu Etmen

Detaylı

LINQ (Temel Kavramlar)

LINQ (Temel Kavramlar) LINQ (Temel Kavramlar) Ele Alınacak Başlıklar Temel Kavramlar Lambda İfadeleri (*Lambda Expressions) Query İfadeleri (*Query Expressions) Tür Çıkarsama (*Type Inference) Anonim Türler (*Anonymous Types)

Detaylı

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

Chapter 5 Sistem Modelleme. Lecture 1. Chapter 5 System modeling Chapter 5 Sistem Modelleme Lecture 1 1 Başlıklar İçerik/Bağlam (Context) modelleri Etkileşim Modelleri Yapısal Modeller Davranışsal Modeller Model Tabanlı Mühendislik 2 Sistem Modelleme Sistem modelleme,

Detaylı

ÖZET...V ABSTRACT...VII TEŞEKKÜR... IX ŞEKİLLER DİZİNİ... XIV SÖZLÜK... XIX

ÖZET...V ABSTRACT...VII TEŞEKKÜR... IX ŞEKİLLER DİZİNİ... XIV SÖZLÜK... XIX XI İÇİNDEKİLER ÖZET...V ABSTRACT...VII TEŞEKKÜR... IX ŞEKİLLER DİZİNİ... XIV SÖZLÜK... XIX 1. GİRİŞ... 1 2. PLANLAMANIN TARİHÇESİ... 7 2.1 Literatürdeki Planlayıcılar ve Kullandıkları Problem... Gösterimi

Detaylı

ANKARA ÜNİVERSİTESİ ELMADAĞ MESLEK YÜKSEKOKULU BİLGİSAYAR PROGRAMCILIĞI PROGRAMI DERS İÇERİKLERİ

ANKARA ÜNİVERSİTESİ ELMADAĞ MESLEK YÜKSEKOKULU BİLGİSAYAR PROGRAMCILIĞI PROGRAMI DERS İÇERİKLERİ ANKARA ÜNİVERSİTESİ ELMADAĞ MESLEK YÜKSEKOKULU BİLGİSAYAR PROGRAMCILIĞI PROGRAMI DERS İÇERİKLERİ TDİ111 TÜRKDİLİ 1 1. Dil, diller ve Türk dili 2. Dil bilgisi, sözcük, cümle 3. Kelime Türleri 4. Anlatımın

Detaylı

EGE ÜNİVERSİTESİ FEN BİLİMLERİ ENSTİTÜSÜ (YÜKSEK LİSANS TEZİ)

EGE ÜNİVERSİTESİ FEN BİLİMLERİ ENSTİTÜSÜ (YÜKSEK LİSANS TEZİ) EGE ÜNİVERSİTESİ FEN BİLİMLERİ ENSTİTÜSÜ (YÜKSEK LİSANS TEZİ) ÖLÇEKLENEBİLİR H.264 VİDEO KODLAYICISI İÇİN SEVİYELENDİRİLEBİLİR GÜVENLİK SAĞLAYAN BİR VİDEO ŞİFRELEME ÇALIŞMASI Gül BOZTOK ALGIN Uluslararası

Detaylı

PAZARTESİ SALI 2015-2016 Ders Programı 1. Öğretim 09.00-09.50 10.00-10.50 11.00-11.50 12.00-12.50 HRT4291 WEB TABANLI CBS GR:11 Ü.GÜMÜŞAY EZ-121 ; D1-129 HRT4291 WEB TABANLI CBS GR:22 Ü.GÜMÜŞAY EZ-121

Detaylı

Yazılım Gereksinimlerinin Görsel Çözümlemeleri: UML (UnifiedModeling Language) Birleştirilmiş Modelleme Dili

Yazılım Gereksinimlerinin Görsel Çözümlemeleri: UML (UnifiedModeling Language) Birleştirilmiş Modelleme Dili Yazılım Gereksinimlerinin Görsel Çözümlemeleri: UML (UnifiedModeling Language) Birleştirilmiş Modelleme Dili UML Diyagramlarının Sınıflandırması UML ile Dinamik Davranışsal (Behaviour) Modelleme usecasediyagramları

Detaylı

VERİ TABANI YÖNETİM SİSTEMLERİ

VERİ TABANI YÖNETİM SİSTEMLERİ VERİ TABANI YÖNETİM SİSTEMLERİ Veri Tabanı Nedir? Sistematik erişim imkânı olan, yönetilebilir, güncellenebilir, taşınabilir, birbirleri arasında tanımlı ilişkiler bulunabilen bilgiler kümesidir. Bir kuruluşa

Detaylı

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

Tarih Saat Modül Adı Öğretim Üyesi. 01/05/2018 Salı 3 Bilgisayar Bilimlerine Giriş Doç. Dr. Hacer Karacan BİLGİ TEKNOLOJİLERİ YÖNETİMİ EĞİTİM MODÜLLERİ Tarih Saat Modül Adı Öğretim Üyesi 01/05/2018 Salı Bilgisayar Bilimlerine Giriş Doç. Dr. Hacer Karacan Bu dersin amacı, bilgisayar bilimlerinin temel kavramlarını

Detaylı

BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ

BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ Dersin Adı Kodu Sınıf / Y.Y. Ders Saati (T+U+L) Kredi AKTS PROGRAMLAMA DİLLERİ BG-324 3/2 3+0+0 3+0 4 Dersin Dili : TÜRKÇE Dersin Seviyesi

Detaylı

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

Elbistan Meslek Yüksek Okulu Güz Yarıyılı HAFTA III Bilgi iletişim sistemi : Bilgi iletişim sistemi, dağıtık sistem içerisinde düğümler arasındaki iletişimi desteklemekle yükümlüdür. İletişim sistemi, iletişim ağı ile bağlanmış herhangi bir düğümün,

Detaylı

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

Yazılım Mühendisliği Bölüm - 3 Planlama 1 Yazılım Mühendisliği Bölüm - 3 Planlama 2 3 4 Planlama 5 Yazılım geliştirme sürecinin ilk aşaması Başarılı bir proje geliştirebilmek için projenin tüm resminin çıkarılması işlemi Proje planlama aşamasında

Detaylı

Öğretim planındaki AKTS Ulusal Kredi

Öğretim planındaki AKTS Ulusal Kredi Ders Kodu Teorik Uygulama Lab. Yazılım Gereksinimleri Mühendisliği Ulusal Kredi Öğretim planındaki AKTS 481052000001303 3 0 0 3 5 Dersin Yürütülmesi Hakkında Bu ders gerçek dünya problemlerinin analiz

Detaylı

FIRAT ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ Yazılım Mühendisliği Bölümü

FIRAT ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ Yazılım Mühendisliği Bölümü FIRAT ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ Yazılım Mühendisliği Bölümü YMH114 - Yazılım Mühendisliğinin Temelleri Dersi Proje Uygulaması ve Dokümantasyonu AKILLI ŞEHİR UYGULAMALARININ İNCELENMESİ VE ÖRNEK

Detaylı

DENİZ HARP OKULU BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ

DENİZ HARP OKULU BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ DENİZ HARP OKULU BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ Dersin Adı Kodu Sınıf/Y.Y. Ders Saati (T+U+L) Kredi AKTS Programlama Dillerinin Prensipleri BİM-323 3/II 3+0+0 3 4 Dersin

Detaylı

... ROBOTİK VE KODLAMA EĞİTİMİ ÇERÇEVESİNDE ÖĞRETİM YILI BİLİŞİM TEKNOLOJİLERİ DERSİ ÜNİTELENDİRİLMİŞ YILLIK DERS PLANI

... ROBOTİK VE KODLAMA EĞİTİMİ ÇERÇEVESİNDE ÖĞRETİM YILI BİLİŞİM TEKNOLOJİLERİ DERSİ ÜNİTELENDİRİLMİŞ YILLIK DERS PLANI ... ROBOTİK VE KODLAMA EĞİTİMİ ÇERÇEVESİNDE 2018 2019 ÖĞRETİM YILI BİLİŞİM TEKNOLOJİLERİ DERSİ ÜNİTELENDİRİLMİŞ YILLIK DERS PLANI Hazırlayan : Özel Öğretim Kurumları Birliği (ÖZKURBİR) Dersin Adı : Bilişim

Detaylı

Akıllı Ortamlarda Sensör Kontrolüne Etmen Tabanlı Bir Yaklaşım: Bir Jadex Uygulaması

Akıllı Ortamlarda Sensör Kontrolüne Etmen Tabanlı Bir Yaklaşım: Bir Jadex Uygulaması Akıllı Ortamlarda Sensör Kontrolüne Etmen Tabanlı Bir Yaklaşım: Bir Jadex Uygulaması Özlem Özgöbek ozlem.ozgobek@ege.edu.tr Ege Üniversitesi Bilgisayar Mühendisliği Bölümü İZMİR Sunum Planı - Giriş - Benzer

Detaylı

Müzik Verileri İçin XML Tabanlı Diller

Müzik Verileri İçin XML Tabanlı Diller Müzik Verileri İçin XML Tabanlı Diller İlker KALAYCI, M. Serdar KORUKOĞLU Ege Üniversitesi Bilgisayar Mühendisliği Bölümü 2009 Akademik Bilişim '09-Harran Üniversitesi 1 İçerik Giriş MIDI Özellikleri XML

Detaylı

VERİ TABANI UYGULAMALARI

VERİ TABANI UYGULAMALARI VERİ TABANI UYGULAMALARI VERİ TABANI NEDİR? Bir konuyla ilgili çok sayıda verinin tutulmasına, depolanmasına ve belli bir mantık içerisinde gruplara ayrılmasına veri tabanı denir. Veri tabanı programları;

Detaylı

ÖZGÜR YAZILIMLAR İLE J2EE

ÖZGÜR YAZILIMLAR İLE J2EE ÖZGÜR YAZILIMLAR İLE J2EE Buğra Çakır bugra@ibrahimcakir.com Seminer İçeriği 1. İki ve üç katmanlı yazılım mimarileri 2. Java ve J2EE platformu 3. Özgür yazılımlar ile J2EE 4. Eclipse, Lomboz ve JBoss

Detaylı

Bölüm 2 Varlık-İlişki Veri Modeli: Araçlar ve Teknikler. Fundamentals, Design, and Implementation, 9/e

Bölüm 2 Varlık-İlişki Veri Modeli: Araçlar ve Teknikler. Fundamentals, Design, and Implementation, 9/e Bölüm 2 Varlık-İlişki Veri Modeli: Araçlar ve Teknikler Fundamentals, Design, and Implementation, 9/e Üç Şema Modeli Üç şema modeli 1975 de ANSI/SPARC tarafından geliştirildi Veri modellemeninç ve rolünü

Detaylı

Öğr. Gör. Serkan AKSU http://www.serkanaksu.net. http://www.serkanaksu.net/ 1

Öğr. Gör. Serkan AKSU http://www.serkanaksu.net. http://www.serkanaksu.net/ 1 Öğr. Gör. Serkan AKSU http://www.serkanaksu.net http://www.serkanaksu.net/ 1 JavaScript JavaScript Nedir? Nestcape firması tarafından C dilinden esinlenerek yazılmış, Netscape Navigator 2.0 ile birlikte

Detaylı

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.

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. Yazılım Mühendisliği kapsamındaki Yazılım Geliştirme Metodolojileri, bir bilgi sistemini geliştirme sürecinin yapımını, planlamasını ve kontrolünü sağlayan bir framework tür. Her farklı framework güçlü

Detaylı

TÜMLEŞİK MODELLEME DİLİ. UML (Unified Modeling Language)

TÜMLEŞİK MODELLEME DİLİ. UML (Unified Modeling Language) TÜMLEŞİK MODELLEME DİLİ UML (Unified Modeling Language) UML NEDİR? Yazılım ve donanımların bir arada düşünülmesi gereken, Zor ve karmaşık programların, Özellikle birden fazla yazılımcı tarafından kodlanacağı

Detaylı

VERİ TABANI YÖNETİM SİSTEMLERİ

VERİ TABANI YÖNETİM SİSTEMLERİ VERİ TABANI YÖNETİM SİSTEMLERİ ÖĞR.GÖR.VOLKAN ALTINTAŞ 26.9.2016 Veri Tabanı Nedir? Birbiriyle ilişkisi olan verilerin tutulduğu, Kullanım amacına uygun olarak düzenlenmiş veriler topluluğunun, Mantıksal

Detaylı

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 10. LINUX OS (Programlama) BİLGİ & İLETİŞİM TEKNOLOJİLERİ GENEL BAKIŞ

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 10. LINUX OS (Programlama) BİLGİ & İLETİŞİM TEKNOLOJİLERİ GENEL BAKIŞ Ders 10 LINUX OS (Programlama) BİLGİ & İLETİŞİM TEKNOLOJİLERİ GENEL BAKIŞ LINUX de Programlama LINUX işletim sistemi zengin bir programlama ortamı sağlar. Kullanıcılara sistemi geliştirme olanağı sağlar.

Detaylı

Veritabanı. Ders 2 VERİTABANI

Veritabanı. Ders 2 VERİTABANI Veritabanı Veritabanı Nedir? Birbiri ile ilişkili verilerin bir arada uzun süreli bulundurulmasıdır. Veritabanı bazen Veritabanı Yönetim sistemi veya Veritabanı Sistemi yerine de kullanılır. Gerçek dünyanın

Detaylı

MOODLE UZAKTAN ÖĞRETİM SİSTEMİ

MOODLE UZAKTAN ÖĞRETİM SİSTEMİ MOODLE UZAKTAN ÖĞRETİM SİSTEMİ ÖZET Genel Bilgiler Moodle nedir? Sistem Gereksinimleri Moodle Sisteminin Kurulumu Ders ve kategori eklenmesi Bir dersin sistem özellikleri İstatistikler Sonuç ve öneriler

Detaylı

BİLİŞİM TEKNOLOJİLERİ GÖRSEL PROGRAMLAMA MODÜLER PROGRAMI (YETERLİĞE DAYALI)

BİLİŞİM TEKNOLOJİLERİ GÖRSEL PROGRAMLAMA MODÜLER PROGRAMI (YETERLİĞE DAYALI) T.C. MİLLÎ EĞİTİM BAKANLIĞI Hayat Boyu Öğrenme Genel Müdürlüğü BİLİŞİM TEKNOLOJİLERİ GÖRSEL PROGRAMLAMA MODÜLER PROGRAMI (YETERLİĞE DAYALI) 2013 ANKARA ÖN SÖZ Günümüzde mesleklerin değişim ile karşı karşıya

Detaylı

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

Sınıf Diyagramları Amaç: Sınıf Diyagramları Nasıl Çizilir? Sınıf Diyagramları Sınıf diyagramı statik bir diyagramdır. Bir uygulamanın statik görünümünü temsil eder. Sınıf diyagramı sadece bir sistemin farklı yönlerini görselleştirmek, açıklamak ve belgelemek için

Detaylı

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

DGridSim Gerçek Zamanlı Veri Grid Simülatörü. Yazılım Tasarımı Dokümanı v 1.0.1 01.08.2011. Mustafa Atanak Sefai Tandoğan Doç. Dr. DGridSim Gerçek Zamanlı Veri Grid Simülatörü Yazılım Tasarımı Dokümanı v 1.0.1 01.08.2011 Mustafa Atanak Sefai Tandoğan Doç. Dr. Atakan Doğan 1. Sistem Mimarisi DGridSim katmanlı bir yapı göz önünde bulundurularak

Detaylı

Üniversite Öğrenci İşleri Otomasyonu

Üniversite Öğrenci İşleri Otomasyonu Üniversite Öğrenci İşleri Otomasyonu Teknik Alt Yapı Microsoft Visual Studio Asp.Net C# Oracle Veritabanı Framework 2 Genel Özellikler Tamamen Web Tabanlı Modüler yapıya sahip Detaylı yetkilendirme yapılabiliyor

Detaylı

Yazılım Nedir? 2. Yazılımın Tarihçesi 3. Yazılım Grupları 4 Sistem Yazılımları 4 Kullanıcı Yazılımları 5. Yazılımın Önemi 6

Yazılım Nedir? 2. Yazılımın Tarihçesi 3. Yazılım Grupları 4 Sistem Yazılımları 4 Kullanıcı Yazılımları 5. Yazılımın Önemi 6 ix Yazılım Nedir? 2 Yazılımın Tarihçesi 3 Yazılım Grupları 4 Sistem Yazılımları 4 Kullanıcı Yazılımları 5 Yazılımın Önemi 6 Yazılımcı (Programcı) Kimdir? 8 Yazılımcı Olmak 9 Adım Adım Yazılımcılık 9 Uzman

Detaylı

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

YAZILIM MÜHENDİSLİĞİNİN TEMELLERİ 9.Hafta. Bakım YAZILIM MÜHENDİSLİĞİNİN TEMELLERİ 9.Hafta Bakım Bölüm Hedefi Geliştirilen yazılımın uygulamaya alınabilmesi için gerekli yöntemler ve yazılımın çalışması sırasında yapılması gereken bakım işlemleri bu

Detaylı

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

Yaz.Müh.Ders Notları #6 1 YAZILIM MÜHENDİSLİĞİ Prof.Dr. Oya Kalıpsız GİRİŞ 1 YAZILIM YETERLİLİK OLGUNLUK MODELİ Olgunluk Seviyeleri: Düzey 1. Başlangıç düzeyi: Yazılım gelişimi ile ilişkili süreçlerin tanımlanması için hiçbir sistematik

Detaylı

Akıllı telefonlar, avuçiçi bilgisayarlar ile taşınabilir (cep) telefonların özelliklerini birleştiren cihazlardır. Akıllı telefonlar kullanıcıların

Akıllı telefonlar, avuçiçi bilgisayarlar ile taşınabilir (cep) telefonların özelliklerini birleştiren cihazlardır. Akıllı telefonlar kullanıcıların Akıllı telefonlar, avuçiçi bilgisayarlar ile taşınabilir (cep) telefonların özelliklerini birleştiren cihazlardır. Akıllı telefonlar kullanıcıların bilgilerini saklamalarına, program yüklemelerine izin

Detaylı

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

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 08225 AĞ TEMELLERĠ Elbistan Meslek Yüksek Okulu 2014 2015 GÜZ Yarıyılı 20 EKi. 2014 Salı, Çarşamba Öğr. Gör. Murat KEÇECĠOĞLU Bilgi iletişim sistemi, dağıtık sistem içerisinde düğümler arasındaki iletişimi

Detaylı

SİSTEM VE YAZILIM. o Bilgisayar sistemleri donanım, yazılım ve bunları işletmek üzere gerekli işlemlerden oluşur.

SİSTEM VE YAZILIM. o Bilgisayar sistemleri donanım, yazılım ve bunları işletmek üzere gerekli işlemlerden oluşur. SİSTEM VE YAZILIM o Bilgisayar sistemleri donanım, yazılım ve bunları işletmek üzere gerekli işlemlerden oluşur. o Yazılım, bilgisayar sistemlerinin bir bileşeni olarak ele alınmalıdır. o Yazılım yalnızca

Detaylı

Eclipse, Nesneler ve Java 2 Java Nereden Çıktı? 2

Eclipse, Nesneler ve Java 2 Java Nereden Çıktı? 2 1 Eclipse, Nesneler ve Java 2 Java Nereden Çıktı? 2 Eclipse Mimarisi 4 Java Teknolojisine Genel Bir Bakış 6 Taşınabilirlik 6 Java Derleyicisi ve Bytecode 6 Java Sanal Makinası (Java Virtual Machine - JVM)

Detaylı

Sunum İçeriği. Programlamaya Giriş 22.03.2011

Sunum İçeriği. Programlamaya Giriş 22.03.2011 Programlamaya Giriş Nesne Tabanlı Programlamaya Giriş ve FONKSİYONLAR Sunum İçeriği Nesne Tabanlı Programlama Kavramı Fonksiyon tanımlama ve kullanma Formal Parametre nedir? Gerçel Parametre nedir? Fonksiyon

Detaylı

BİLİŞİM TEKNOLOJİLERİ ANDROİD İLE MOBİL PROGRAMLAMA GELİŞTİRME VE UYUM EĞİTİMİ MODÜLER PROGRAMI (YETERLİĞE DAYALI)

BİLİŞİM TEKNOLOJİLERİ ANDROİD İLE MOBİL PROGRAMLAMA GELİŞTİRME VE UYUM EĞİTİMİ MODÜLER PROGRAMI (YETERLİĞE DAYALI) T.C. MİLLÎ EĞİTİM BAKANLIĞI Hayat Boyu Öğrenme Genel Müdürlüğü BİLİŞİM TEKNOLOJİLERİ ANDROİD İLE MOBİL PROGRAMLAMA GELİŞTİRME VE UYUM EĞİTİMİ MODÜLER PROGRAMI (YETERLİĞE DAYALI) 2014 ANKARA ÖN SÖZ Günümüzde

Detaylı

BİLİŞİM TEKNOLOJİLERİ WEB TASARIMI MODÜLER PROGRAMI (YETERLİĞE DAYALI)

BİLİŞİM TEKNOLOJİLERİ WEB TASARIMI MODÜLER PROGRAMI (YETERLİĞE DAYALI) T.C. MİLLÎ EĞİTİM BAKANLIĞI Hayat Boyu Öğrenme Genel Müdürlüğü BİLİŞİM TEKNOLOJİLERİ WEB TASARIMI MODÜLER PROGRAMI (YETERLİĞE DAYALI) 2013 ANKARA ÖN SÖZ Günümüzde mesleklerin değişim ile karşı karşıya

Detaylı

=~ Metodu 92 Karakter Sınıfları 94 sub ve gsub metotları 101 Hızlı Tekrar 102 Kontrol Noktası 103 Düello 106 Sonraki Bölümde 109

=~ Metodu 92 Karakter Sınıfları 94 sub ve gsub metotları 101 Hızlı Tekrar 102 Kontrol Noktası 103 Düello 106 Sonraki Bölümde 109 vii 1 Neden Ruby? 2 Ruby Kurulumu 5 Windows ta Ruby Kurulumu 5 Linux ve Mac OS ta Ruby Kurulumu 6 Doğru Geliştirme Ortamının Seçimi 6 Diğer Ruby Uyarlamaları 9 Örnek Kodlar Hakkında 10 İnternet Adresi

Detaylı

Veritabanı Yönetim Sistemleri (Veritabanı Tasarımı) Varlık İlişki Modeli

Veritabanı Yönetim Sistemleri (Veritabanı Tasarımı) Varlık İlişki Modeli Veritabanı Yönetim Sistemleri (Veritabanı Tasarımı) Varlık İlişki Modeli Konular Veritabanı Tasarım Aşamaları Kavramsal Tasarım Temel Kavramlar Varlıklar Arası İlişkiler Var Olma Bağımlılığı (Existence

Detaylı

BİÇİMSEL YÖNTEMLER (FORMAL METHODS) Betül AKTAŞ Suna AKMELEZ

BİÇİMSEL YÖNTEMLER (FORMAL METHODS) Betül AKTAŞ Suna AKMELEZ BİÇİMSEL YÖNTEMLER (FORMAL METHODS) Betül AKTAŞ 14011021 Suna AKMELEZ 14011050 Biçimsel Yöntemler Nedir? Nerede Kullanılır? Biçimsel Tasarım Biçimsel Yöntemlerin Yararları Biçimsel Yöntemlerin Zayıf Yönleri

Detaylı

ICATT ÇEVİRİ UYGULAMASI SİSTEM MİMARİSİ VE VERİTABANI TASARIMI

ICATT ÇEVİRİ UYGULAMASI SİSTEM MİMARİSİ VE VERİTABANI TASARIMI ICATT ÇEVİRİ UYGULAMASI SİSTEM MİMARİSİ VE VERİTABANI TASARIMI İÇİNDEKİLER 1. GİRİŞ 1.1. KAPSAM 1.2. SİSTEM ÖZETİ 1.3. DOKÜMAN ÖZETİ 2. ÇALIŞMA KONSEPTİ 2.1. Yeni Kullanıcı Oluşturmak 2.2. Şirket Bilgilerini

Detaylı

Basit Mimari, Katmanlı Mimari ve doğrudan çalıştırma olarak üçe ayrılır.

Basit Mimari, Katmanlı Mimari ve doğrudan çalıştırma olarak üçe ayrılır. Yazılım Mimarisi 1.Yazılım Mimarisi Nedir? Yazılım mimarisi geliştirilen uygumaların maliyetlerinin azaltılmasında önemli bir yer tutar. Örneğin MVC modeli kullanarak bir uygulama geliştiriyoruz ve arayüz

Detaylı

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 7. Bölüm Metot Tanımlama ve Kullanma

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 7. Bölüm Metot Tanımlama ve Kullanma Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 7. Bölüm Metot Tanımlama ve Kullanma C Programlama Dr. Serkan DİŞLİTAŞ 7.1. Metot Kavramı Programlama dillerinde bütün kod satırlarının

Detaylı

Proje DöngD. Deniz Gümüşel REC Türkiye. 2007,Ankara

Proje DöngD. Deniz Gümüşel REC Türkiye. 2007,Ankara Proje Yönetiminde Y Temel Kavramlar Proje DöngD ngüsü Yönetimi ve Mantıksal Çerçeve eve Yaklaşı şımı Deniz Gümüşel REC Türkiye 2007,Ankara TEMEL KAVRAMLAR Proje nedir? Proje Yönetimi nedir???? Proje Döngüsü

Detaylı

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

Bilişim Sistemleri. Modelleme, Analiz ve Tasarım. Yrd. Doç. Dr. Alper GÖKSU Bilişim Sistemleri Modelleme, Analiz ve Tasarım Yrd. Doç. Dr. Alper GÖKSU Ders Akışı Hafta 10-11. Nesneye Yönelik Sistem Tasarımı Haftanın Amacı Bilişim sistemleri geliştirmede nesneye yönelik sistem tasarımı

Detaylı

VERİ TABANI SİSTEMLERİ

VERİ TABANI SİSTEMLERİ VERİ TABANI SİSTEMLERİ 1- Günümüzde bilgi sistemleri Teknoloji ve bilgi. 2- Bilgi sistemlerinin Geliştirilmesi İşlevsel Gereksinimleri 1.AŞAMA Gereksinim Belirleme ve Analiz Veri Gereksinimleri Gereksinimler

Detaylı

UZAKTAN EĞİTİM MERKEZİ

UZAKTAN EĞİTİM MERKEZİ ÜNİTE 2 VERİ TABANI İÇİNDEKİLER Veri Tabanı Veri Tabanı İle İlgili Temel Kavramlar Tablo Alan Sorgu Veri Tabanı Yapısı BAYBURT ÜNİVERSİTESİ UZAKTAN EĞİTİM MERKEZİ BİLGİSAYAR II HEDEFLER Veri tabanı kavramını

Detaylı

BİLİŞİM TEKNOLOJİLERİ SİSTEM YÖNETİMİ MODÜLER PROGRAMI (YETERLİĞE DAYALI)

BİLİŞİM TEKNOLOJİLERİ SİSTEM YÖNETİMİ MODÜLER PROGRAMI (YETERLİĞE DAYALI) T.C. MİLLÎ EĞİTİM BAKANLIĞI Hayat Boyu Öğrenme Genel Müdürlüğü BİLİŞİM TEKNOLOJİLERİ SİSTEM YÖNETİMİ MODÜLER PROGRAMI (YETERLİĞE DAYALI) 2013 ANKARA ÖN SÖZ Günümüzde mesleklerin değişim ile karşı karşıya

Detaylı

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

JAVA RMI ve Hibernate teknolojileri kullanılarak çok amaçlı bir yazılım altyapısı hazırlanması JAVA RMI ve Hibernate teknolojileri kullanılarak çok amaçlı bir yazılım altyapısı hazırlanması Hakan ALBAĞ Tahsin Barış AKAN Bitirme Projesi 05.06.2006 Giriş Ticari yazılımlarda ortak ihtiyaçlar Birden

Detaylı

Java da Soyutlama ( Abstraction ) ve Çok-biçimlilik ( Polymorphism )

Java da Soyutlama ( Abstraction ) ve Çok-biçimlilik ( Polymorphism ) Java da Soyutlama ( Abstraction ) ve Çok-biçimlilik ( Polymorphism ) BBS-515 Nesneye Yönelik Programlama Ders #9 (16 Aralık 2009) Geçen ders: Java Applet lerde bileşen yerleştirme türleri ( applet layouts

Detaylı

Bilgisayar Programlama Dilleri

Bilgisayar Programlama Dilleri Bilgisayar Programlama Dilleri Ömer YÜCEL 13253072 1/32 Sunum İçeriği 1. Program ve Programlama Dili Nedir? 2. Programlama Dillerinin Tarihçesi 3. Programlama Dillerinin Sınıflandırılması 4. Programlama

Detaylı

BİLİŞİM TEKNOLOJİLERİ ANDROİD İLE MOBİL PROGRAMLAMA MODÜLER PROGRAMI (YETERLİĞE DAYALI)

BİLİŞİM TEKNOLOJİLERİ ANDROİD İLE MOBİL PROGRAMLAMA MODÜLER PROGRAMI (YETERLİĞE DAYALI) T.C. MİLLÎ EĞİTİM BAKANLIĞI Hayat Boyu Öğrenme Genel Müdürlüğü BİLİŞİM TEKNOLOJİLERİ ANDROİD İLE MOBİL PROGRAMLAMA MODÜLER PROGRAMI (YETERLİĞE DAYALI) 2015 ANKARA ÖN SÖZ Dünyada bilim ve teknolojideki

Detaylı

Chapter 6 Mimari Tasarım. Lecture 1. Chapter 6 Architectural design

Chapter 6 Mimari Tasarım. Lecture 1. Chapter 6 Architectural design Chapter 6 Mimari Tasarım Lecture 1 1 Konular Mimari Tasarım Kararları Mimari Bakış Açıları Mimari Desenler Uygulama Mimarileri 2 Yazılım Mimarisi Sistemi meydana getiren alt sistemlerin belirlenmesi için

Detaylı

Mobil Cihazlardan Web Servis Sunumu

Mobil Cihazlardan Web Servis Sunumu Mobil Cihazlardan Web Servis Sunumu Özlem Özgöbek Ege Üniversitesi Bilgisayar Mühendisliği Bölümü 2010 İnternet erişiminin yaygınlaşması ve artık mobil cihazlar üzerinden bile yüksek hızlı veri iletişimine

Detaylı

YZM 2116 Veri Yapıları

YZM 2116 Veri Yapıları YZM 2116 Veri Yapıları Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği BAŞLAMADAN ÖNCE Bu dersi alan öğrencilerin aşağıdaki konuları bildiği

Detaylı

DEVLET PLANLAMA TEŞKİLATI BİLGİ TOPLUMU DAİRESİ BAŞKANLIĞI. e-yazışma Projesi. Paket Yapısı

DEVLET PLANLAMA TEŞKİLATI BİLGİ TOPLUMU DAİRESİ BAŞKANLIĞI. e-yazışma Projesi. Paket Yapısı DEVLET PLANLAMA TEŞKİLATI BİLGİ TOPLUMU DAİRESİ BAŞKANLIĞI e-yazışma Projesi Paket Yapısı 11/04/2011 İçindekiler 1. Giriş... 2 2. Paket Yapısı... 2 2.1. Paket Bileşenleri... 2 2.2. Senaryo... 6 1 1. Giriş

Detaylı

Autodesk Robot Structural Analysis Professional İnşaat Müh. için Yapısal Modelleme, Analiz ve Tasarım çözümü

Autodesk Robot Structural Analysis Professional İnşaat Müh. için Yapısal Modelleme, Analiz ve Tasarım çözümü Autodesk Robot Structural Analysis Professional İnşaat Müh. için Yapısal Modelleme, Analiz ve Tasarım çözümü İnş. Yük. Müh. Burçin ŞAHİNALP PROTA BİLGİSAYAR A.Ş. Autodesk Robot Structural Analysis Professional

Detaylı

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

YZM 2108 Yazılım Mimarisi ve Tasarımı YZM 2108 Yazılım Mimarisi ve Tasarımı Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği 1 BÖLÜM - 1 Yazılım Tasarımına Giriş Bu bölümde;

Detaylı

UNICASE.... kapsamlı bir CASE* aracı. * http://en.wikipedia.org/wiki/computer-aided_software_engineering

UNICASE.... kapsamlı bir CASE* aracı. * http://en.wikipedia.org/wiki/computer-aided_software_engineering UNICASE... kapsamlı bir CASE* aracı * http://en.wikipedia.org/wiki/computer-aided_software_engineering Neden UNICASE? Yazılım geliştirme projelerinde yazılım mühendisliği modelleri merkezi bir yerde ve

Detaylı

1.Yazılım Geliştirme Metotları 1

1.Yazılım Geliştirme Metotları 1 1.Yazılım Geliştirme Metotları 1 1.1 Klasik Çevrim(Waterfall) 1.2 V Modeli 1.3 Prototipleme/Örnekleme 1.4 Spiral Model 1.5 Evrimsel Geliştirme 1.6 Evrimsel Prototipleme 1.7 Artımlı Geliştirme 1.8 Araştırmaya

Detaylı

FIRAT ÜNİVERSİTESİ BİLGİSAYAR MÜH.

FIRAT ÜNİVERSİTESİ BİLGİSAYAR MÜH. FIRAT ÜNİVERSİTESİ BİLGİSAYAR MÜH. WSDL-SOAP MURAT TEZGİDER Web Servisi Nedir? web servisi :standart formatları kullanarak programlama dili, işletim sistemi ve platformdan bağımsız olarak bilgiyi paylaşan

Detaylı

PERFORMANS YÖNETĐMĐ. Hedefe Odaklı Çalışma ve Yetkinlik Yönetimi.

PERFORMANS YÖNETĐMĐ. Hedefe Odaklı Çalışma ve Yetkinlik Yönetimi. PERFORMANS YÖNETĐMĐ Kurumların yapısına uygun performans yönetimi sistemini esnek yapı sayesinde Đnsan Kaynakları uygulaması içinde tanımlayarak takip edebilme Performans kayıtlarını yöneticilere e-posta

Detaylı

OMNET++ 4.2.2. Ağ Benzetim Yazılımı (Network Simulation Framework) BİL 372 Bilgisayar Ağları. GYTE - Bilgisayar Mühendisliği Bölümü

OMNET++ 4.2.2. Ağ Benzetim Yazılımı (Network Simulation Framework) BİL 372 Bilgisayar Ağları. GYTE - Bilgisayar Mühendisliği Bölümü Bilgisayar Mühendisliği Bölümü OMNET++ 4.2.2 Ağ Benzetim Yazılımı (Network Simulation Framework) BİL 372 Bilgisayar Ağları OMNET++ OMNET++ (Objective Modular Network Testbed in C++), nesneye yönelik (objectoriented)

Detaylı

UBL UBL Türkiye Özelleştirmesi TEMEL BİLGİLER

UBL UBL Türkiye Özelleştirmesi TEMEL BİLGİLER e-fatura UBL UBL Türkiye Özelleştirmesi TEMEL BİLGİLER UBL (Universal Business Language) UBL, iş dünyasının evrensel ölçekte birlikte iş yapabilirlik ihtiyacını gidermek amacıyla doğmuş bir yapıdır. Bu

Detaylı

Swing ve JDBC ile Database Erişimi

Swing ve JDBC ile Database Erişimi Swing ve JDBC ile Database Erişimi JDBC API, tablolanmış herhangi bir tür veriye, özellikle İlişkisel Veritabanı, erişim sağlayan bir Java API sidir. JDBC, aşağıda verilen üç etkinliğin gerçekleştirilebileceği

Detaylı

Kurumsal bilgiye hızlı ve kolay erişim Bütünleşik Belge Yönetimi ve İş Akış Sistemi içinde belgeler, Türkçe ve İngilizce metin arama desteği ile içeri

Kurumsal bilgiye hızlı ve kolay erişim Bütünleşik Belge Yönetimi ve İş Akış Sistemi içinde belgeler, Türkçe ve İngilizce metin arama desteği ile içeri İş süreçleri ve belgelerin bilgisayar ortamında izlenmesi Bütünleşik Belge Yönetimi ve İş Akış Sistemi Kurumların belge ve içerik yönetim işlemleriyle iş süreçlerinin tanımlanması ve denetlenmesi ve bu

Detaylı

Önemli noktalar. Paradigma Nesnelere Giriş Mesajlar / Ara bağlantılar Bilgi Gizleme (Information Hiding ) Sınıflar(Classes) Kalıtım/Inheritance

Önemli noktalar. Paradigma Nesnelere Giriş Mesajlar / Ara bağlantılar Bilgi Gizleme (Information Hiding ) Sınıflar(Classes) Kalıtım/Inheritance Önemli noktalar Paradigma Nesnelere Giriş Mesajlar / Ara bağlantılar Bilgi Gizleme (Information Hiding ) Sınıflar(Classes) Kalıtım/Inheritance public class Test { // çalışır İnsan insan = new Çiçekçi();

Detaylı

Kural Motoru. www.paperwork.com.tr

Kural Motoru. www.paperwork.com.tr Kural Motoru www.paperwork.com.tr İş Kuralı Örnekleri Aşağıda iş kurallarına çeşitli örnekler verilmiştir; : İş Kuralı Nedir? T üm işletmeler kural merkezli çalışırlar. Kurallar hangi fırsatların takip

Detaylı

Üst Düzey Programlama

Üst Düzey Programlama Üst Düzey Programlama Yazılımda Günlükleme (Logging) Üst Düzey Programlama-ders07/ 1 Günlükleme -Logging Tüm büyük çaplı uygulamalarda günlükleme(logging) ihtiyaçları bulunmaktadır. Bir uygulamanın hata

Detaylı

BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ

BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ Dersin Adı Kodu Sınıf / Y.Y. Ders Saati (T+U+L) Kredi AKTS VERİ TABANI BG-313 3/1 3+1+0 3+0,5 5 Dersin Dili : TÜRKÇE Dersin Seviyesi : LİSANS

Detaylı