Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

UBI 622 ÇOK-ETMENLİ SİSTEMLER MODEL GÜDÜMLÜ YAZILIM GELİŞTİRME Doç. Dr. Geylani KARDAŞ

Benzer bir sunumlar


... konulu sunumlar: "UBI 622 ÇOK-ETMENLİ SİSTEMLER MODEL GÜDÜMLÜ YAZILIM GELİŞTİRME Doç. Dr. Geylani KARDAŞ"— Sunum transkripti:

1 UBI 622 ÇOK-ETMENLİ SİSTEMLER MODEL GÜDÜMLÜ YAZILIM GELİŞTİRME Doç. Dr. Geylani KARDAŞ

2 2 İçerik  Model Güdümlü Geliştirme  Model Güdümlü Mimari  Model Güdümlü Mimari Teknolojileri  Model Güdümlü Mimari’de Model İlişkileri  Model Dönüşümü

3 3 Model Güdümlü Geliştirme  Yazılım mühendisliğinde şu anki standart: Nesne yönelimli yaklaşım Uygulama ihtiyaçlarının UML ile modellenmesi UML modelleri temel alarak geliştiricilerin kodlama yapması Çalıştırma ortamı manuel kurulduğundan iş ve IT tanımlamaları arasında boşluk var  Yazılım kodları UML modellerinin ihtiyaçlarını tam olarak karşılayamıyor. Boşluk problemi:  Gidermesi zahmetli ve pahalı  Kalite kaybı Geliştiricilerin yetenek ve alan bilgisi eksikliği  Problemi eksik ya da yanlış yorumlamaları Geliştiricilerin doğal olarak hata yapmaya eğilimli olmaları

4 4 Model Güdümlü Geliştirme  Çözüm önerisi: Model Güdümlü Geliştirme (“Model Driven Development – MDD”) Yazılım geliştirme kod merkezli değil model merkezli Modeller “sadece resim” olmak yerine MDD’de sürecin birinci sınıf ana ürünleri (“first class development artifacts”) Farklı soyutlama seviyelerindeki modelleri kullanarak yazılım geliştirmedeki karmaşıklığı azaltmayı hedeflemektedir. Bir sistemin farklı kısımları manuel programlanmak yerine uygun bir modelleme dili kullanılarak belirtilir.

5 5 Model Güdümlü Geliştirme  MDD: Bünyesinde üstmodellerin (“metamodel”) tanımlanmasını ve bu üstmodeller arasında model dönüşümlerinin sağlanarak gerçek sistem modellerinin soyuttan somuta doğru elde edilmesini barındırır. Model dönüşümü, farklı soyut seviyelerdeki modellerin otomatik eşlenmesi için bir veya daha fazla kaynak modelini girdi olarak alır ve gerekli bir dizi dönüşüm kuralına bağlı olarak yine bir veya daha fazla hedef modelini çıktı olarak ortaya koyar. Derleyicilerden bu yana yazılım mühendisliğindeki ilk gerçek atılım (Selic, 2003)

6 6 Model Güdümlü Geliştirme  Prensipler, Standartlar, Araçlar (Hahn, 2007) :

7 7 Model Güdümlü Mimari  Model Güdümlü Mimari (“Model Driven Architecture - MDA”): MDD’nin özelleştirilmesi ve somutlaştırılması için OMG’nin (“Object Management Group”) bir önerisi Yazılım modellerinin çalıştırılabilir bileşenlere ve uygulamalara dönüştürülerek yazılım sistemlerinin geliştirilmesi amaçlanmaktadır. MDA, dağıtık bir uygulamanın teknolojisinden çok fonksiyonelliği ve davranışı üzerine yoğunlaşır.  Böylece yeni bir teknoloji gündeme geldiğinde uygulamanın ya da sistemin fonksiyonelliği ve davranışlarının tekrar tekrar modellenmesine gerek yoktur. MDA’de modeller geliştirim sürecine model dönüşüm zincirlerinden yazılım kodlarının üretilmesine kadar her safhada entegre olmuş durumdadırlar.

8 8 Model Güdümlü Mimari  OMG MDA (OMG, 2003) : MDA provides an open, vendor- neutral approach to the challenge of interoperability, building upon and leveraging the value of OMG's established modeling standards: Unified Modeling Language (UML); Meta-Object Facility (MOF); and Common Warehouse Meta- model (CWM). Platform-independent Application descriptions built using these modeling standards can be realized using any major open or proprietary platform, including CORBA (Common Object Request Broker Architecture), Java,.NET, XMI/XML, and Web-based platforms.

9 9 Model Güdümlü Mimari  MDA’de 3 temel soyutlama seviyesi: Programlama Bağımsız Model (“Computation Independent Model – CIM”) Platform Bağımsız Model (“Platform Independent Model – PIM”) Platforma Özgü Model (“Platform Specific Model – PSM”)  Soyutlama seviyelerinin en altında da kaynak kod  CIM: Sistemin ortamı ve sistemin özel ihtiyaçlarına yoğunlaşır. Programlama bağımsız bir bakış açısı sunar. Yapısal detayları ve hedef uygulama platformlarına yönelik detayları içermez. Bir CIM bazen bir iş alanı modelini (“domain model”) ve bu iş alanında yer alan kavramlara ait bir sözlüğü temsil eder.

10 10 Model Güdümlü Mimari  PIM: Platform bağımsız bakış açısı platforma özgü detayları göz önüne almaksızın bir sistemin işlevselliğine yoğunlaşır. Bir PIM platform bağımsızlığı sergilerken aynı zamanda benzer tipteki birçok farklı platform tarafından da kullanılabilmeye uygundur. Bir sistemin davranışlarını platform bağımsız bir şekilde tanımlayacak bilgileri içerir.  PSM: Gerçek platform uygulamasının detaylarını barındırmaktadır. PIM’deki tanımlamalar ve sistemin belli bir platformda nasıl ifade edileceği detaylarını birleştirir. Özel platform karakteristiklerini de göz önüne alarak bir PIM’i yeniden şekillendirir.

11 11 Model Güdümlü Mimari  MDA’ya dayalı yazılım geliştirme süreci ve model dönüşümleri:

12 12 Model Güdümlü Mimari  MDA’ya dayalı yazılım geliştirme süreci ve model dönüşümleri: CIM, PIM ve PSM’lerin dayandığı üstmodeller sırasıyla CIMM (“Computation Independent Metamodel”), PIMM (“Platform Independent Metamodel”) ve PSMM (“Platform Specific Metamodel”) Model dönüşüm deseni:  Bir kaynak modelin (km) bir hedef modeline (hm) dönüşümü  Dönüşüm bir model dönüşüm dilinde yazılmış dönüşüm tanımlarına göre yürütülmektedir.  Kaynak model, hedef model ve dönüşüm tanımı sırasıyla KÜM (Kaynak Üstmodeli), HÜM (Hedef Üstmodeli) ve DÜM’e (Dönüşüm Üstmodeli) uymaktadır.  D1, D2 ve D2’ ile ifade edilen MDA dönüşümlerinde kaynak ve hedef modeller yerine göre CIMM, PIMM ve çeşitli PSMM’lerin üstmodellerine uymaktadırlar.  Modelden modele dönüşümlerden sonra sıradaki ve son adım: Platformlara ait PSMM’leri kullanarak modelden yazılım koduna dönüşümleri gerçekleştirmek (D3 ve D3’) ve gerçek sistem uygulamalarını hayata geçirmek

13 13 Model Güdümlü Mimari  MDA’nin Vaat Ettikleri (Hahn, 2007) : Daha hızlı uygulama (“Faster implementation”) Daha iyi kod kalitesi (“Better quality of code”) Daha kolay bakım (“Easier maintenance”) Çevik geliştirim (“Agile development”) Daha çok yeniden kullanılabilirlik (“Greater reusability”) Esneklik / Genişletilebilirlik (“Flexibility / Extensibility”)

14 14 Model Güdümlü Mimari  Daha hızlı uygulama (Hahn, 2007) : Herhangi bir uygulamada yazılım kodunun ne kadarı manuel kodlanmalı? MDA ile geliştiriciler özel (“custom”) kodlamaya yoğunlaşabilir. Daha çok üretkenlik

15 15 Model Güdümlü Mimari  Daha iyi kod kalitesi (Hahn, 2007) : Otomatik üretilen kod test ve hata ayıklamaya daha az ihtiyaç duyar. Modelin kendisi test araçları üretebilir.  Örneğin “Object Contraint Language – OCL” ile tanımlanmış kısıtlar kullanılarak Daha temiz ve tutarlı Yüksek kalite  Dönüşümler tasarım desenlerini içerebilir.  Otomatik üretilen kodlar daha iyi bir mimariye sahip

16 16 Model Güdümlü Mimari  Daha kolay bakım (Hahn, 2007) : Bakım: “Total Cost of Ownership”’in büyük bir kısmı  Uygulamalar iş ve teknolojideki değişikliklere duyarlı olmalı Bakım işlemlerinin zorluğu  Örneğin aşağıdakileri gerçekleştirmek için ne kadar iş yapmak gerek?: Bir nesne sınıfına yeni özellik eklemek Bir “use case” değiştiğinde sistemi yeniden düzenlemek (“refactor”) Dış kaynakları entegre etmek Farklı bir teknolojiye sistemi taşımak “More model-driven code = less manual refactoring”

17 17 Model Güdümlü Mimari  Çevik geliştirim (Hahn, 2007) : Çevik metodolojinin yararları:  Somut ve çalışan yazılımlar elde etme  İş ve IT çalışanları arasında yakın iletişimin kurulması  İhtiyaçlardaki değişimlere esnek tepkilerin verilmesi MDA’nin çevik geliştirimi desteklemesi:  İyi çalışan ve mimarisi iyi kurulmuş yazılımların çabuk ve sürekli üretilebilmesi  Değişimleri yazılım koduna çabuk yansıtması

18 18 Model Güdümlü Mimari  Daha çok yeniden kullanılabilirlik (Hahn, 2007) : Tasarım desenleri model seviyesinde uygulanabilir.  Örneğin: İş alanı sınıflarını yapılandırmada Standart görevler için bileşenleri yapılandırmada İş alanı modelleri kütüphanelerde saklanabilir.  Yeni uygulamalarda yeniden kullanılabilir. İş ve teknik mimariler ayrı ayrı saklanabilir.  Esneklik / Genişletilebilirlik (Hahn, 2007) : MDA dönüşümleri kara kutu değil  Başka ürünleri elde etmek için modifiye edilebilir ya da genişletilebilirler.

19 19 Model Güdümlü Mimari Teknolojileri  MDA’in dayandığı teknolojiler: Unified Modeling Language (UML)  Yazılım sistemlerinin tanımlanması ve tasarlanması için “de facto” endüstri standardı Meta Object Facility (MOF)  MDA’de kullanılan standart modelleme ve değişim yapılarını sağlar.  Yapılar UML modelleme yapıların bir alt kümesi  Model/Üstveri değişimi ve birlikte işlerliği için bir temel oluşturur. XML Metadata Interchange (XMI)  Modellerin yapısal bir metinsel formda gösterimini sağlar.  UML modelleri ve MOF üstmodellerinin farklı modelleme araçları arasında kullanılabilmesi XMI kullanımı ile mümkündür. MOF Query/View/Transformation (QVT)  Bir MOF üstmodeline göre hazırlanmış modellerin sorgulanması ve dönüşümü için standart bir dil tanımı sağlar.

20 20 Model Güdümlü Mimari Teknolojileri  Eclipse Modelleme Çerçevesi (“Eclipse Modeling Framework – EMF”): Bir Java çerçevesi ve kod üretici MOF tanımlarının gelişmiş bir gerçekleştirimi Modelleri etkin, doğru ve kolaylıkla özelleştirilebilir Java kodlarına çevirir. Java, XML ve bir kısım UML’in birleşimi XMI yapısında standart model serileştirme sağlar. EMF modellerinin “Ecore” kullanılarak temsili  Ecore: MOF benzeri bir üstmodel  Ecore aynı zamanda bir EMF modeli, böylelikle kendisinin de üstmodeli

21 21 Model Güdümlü Mimari Teknolojileri  MDA uyumlu Eclipse teknolojileri Eclipse Modeling Framework (EMF)  Yapısal bir veri modelini temel alan yazılım araçlarının ve diğer uygulamaların oluşturulması için bir modelleme çerçevesi ve otomatik kod üretme ortamı  Eclipse Graphical Editing Framework (GEF)  Bir uygulama modeline dayalı olarak zengin bir grafiksel editör geliştirmeyi sağlar.  Eclipse Graphical Modeling Framework (GMF)  EMF ve GEF’e dayalı olarak grafiksel editörlerin geliştirilmesi için bir altyapı sağlar.  Atlas Transformation Language (ATL)  ATL projesi MDD için bir model dönüşüm dili, model dönüşümü sağlayan bir araç ve Eclipse platformuna dayalı entegre bir geliştirme ortamı sunar. 

22 22 MDA Model İlişkileri  Sistem modelleme için MDA’in tanımladığı üstmodel hiyerarşisi (Hahn, 2007) : Bir sistem M1 seviyesindeki bir model ile tanımlanır. Bir model modelleme yapılarının tanımlandığı ve M2 seviyesindeki yer alan bir üstmodele uyar. Bir üstmodelin kendisi M3 seviyesinde yer alan ortak bir üst- üstmodelde tanımlanır.

23 23 MDA Model İlişkileri  Sistem modelleme için MDA’in tanımladığı üstmodel hiyerarşisine bir örnek (Hahn, 2007) :

24 24 Model Dönüşümü  Model Dönüşümü: Model güdümlü yazılım geliştirmenin kalbi ve ruhu (Sendall and Kozaczynski, 2003)  Üstmodellerin tanımlanması MDD için gereklidir ancak yeterli değildir. MDD sürecinin asıl ürünleri olan hedef modellerinin elde edilmesi için bu üstmodeller arasında dönüşümlerin tanımlanması ve uygulanması gerekmektedir.  Model Dönüşümü (“Model Transformation”): Bir dizi modelin başka bir dizi modele ya da kendi üzerlerine eşlenmesi  Model Eşleme (“Model Mapping”): Kaynak ve hedef üstmodellerin elemanları arasındaki uygunluk veya benzerlik Model elemanları arasındaki uygunluk birebir, n’e bir, bire n veya n’e n şekillerinde olabilir.

25 25 Model Dönüşümü  a ve b ile adlandırılan iki farklı ortama ait üstmodel ve modeller sırasıyla MMa, MMb, Ma ve Mb olmak üzere f: a ve b arasında tanımlanan eşleme fonksiyonu Mb  f(MMa, MMb, Ma)  Model eşleme bir dönüşüme ait girdi ve çıktı modellerinin üstmodelleri arasında tanımlanır. MDD süreçlerinin “tasarım aşaması”’nda gerçekleştirilir.  Üstmodel varlıkları arasındaki eşlemeler model dönüşümü için kullanılan kuralları tanımlamaktadırlar. Kurallara dayalı olarak model dönüşümleri MDD süreçlerinin “çalışma zamanı”’nda gerçekleştirilir.

26 26 Model Dönüşümü  Model eşleme ve model dönüşümü:  Farklı soyutlama seviyelerinde model eşlemeleri:

27 27 Model Dönüşümü  MDA Picture (Hahn, 2007) :

28 28 Model Dönüşümü  Üstmodel varlık eşlemeleri tamamlandıktan sonra bu eşlemeler ve ilgili dönüşüm kısıtlarının biçimsel bir gösteriminin yapılması ve otomatik olarak model örnekleri üzerinde uygulanması yerine getirilmelidir.  MDD için model dönüşümlerinin yazılım ortamlarında biçimsel gösterimini gerçekleştirmek ve uygulanmasını sağlamak amacıyla model dönüşüm dillerinin kullanılmasına ihtiyaç duyulmaktadır.  ATL: ATLAS INRIA & LINA araştırma grubunun geliştirdiği ve MDA çalışmalarında oldukça sık kullanılan bir model dönüşüm dili Hem bir dönüşüm üstmodeli olarak hem de metinsel somut bir sözdizim olarak tanımlanmıştır. MDA çerçevesinde genel dönüşümlerin gerçekleştirilmesini sağlamaktadır. Dünyada şu an için en çok kullanılan yazılım geliştirme ortamlarından biri olan Eclipse Açık Geliştirme Platformu için ATL bir eklenti (“plug-in”) sunmaktadır (http://www.eclipse.org/m2m/atl/).http://www.eclipse.org/m2m/atl/

29 29 Model Dönüşümü  ATL’e dayalı model dönüşümlerinin genel görünümü (ATLAS Group, 2006) : MMM (Metametamodel): Ecore MM a (Kaynak metamodeli) M a (Kaynak model) MM t (Dönüşüm metamodeli): ATL M t (Dönüşüm modeli): ATL ile yazılan dönüşüm kuralları MM b (Hedef metamodeli) M b (Hedef model)

30 30 Model Dönüşümü  Bir ATL dönüşüm yapısı aşağıdaki elemanların birleşiminden oluşmaktadır (ATLAS Group, 2006) : Dönüşümle ile ilgili bazı özelliklerin tanımlandığı bir başlık kısmı Varolan bazı ATL kütüphanelerinin kullanılmasını sağlayan seçimlik bir ithal (“import”) kısmı Java programlama dili yordamlarının ATL eşleniği olarak kabul edilebilecek bir dizi yardımcı kural Kaynak modellerden hedef modellerin nasıl elde edileceğini tanımlayan bir dizi dönüşüm kuralı  Model dönüşümlerinin uygulanması sırasında kullanılan tüm üstmodellerin üst-üstmodeli (“meta-metamodel”) bir MOF varyantı olan Ecore’dur.  Dönüşümlerin üstmodeli ATL’dir. ATL üstmodeline uyan dönüşüm kuralları hazırlanmaktadır.

31 31 Model Dönüşümü  ATL’in model dönüşüm motorunu kullanmak amacıyla kaynak ve hedef üstmodellerinin EMF kodlamalarının (“encoding”) hazırlanması ve Ecore dosyalarında saklanması gerekmektedir.  EMF model ve üstmodel kodlama için “.ecore” adı verilen kendi dosya biçimini sağlamaktadır.  Kernel MetaMetaModel (KM3) (Jouault and Bezivin, 2006) : Ecore üstmodellerinin EMF kullanılarak elle düzenlenmesi oldukça güç bir iş KM3, Üstmodel düzenlemeyi Java programlama diline benzer bir sözdizimle kolaylaştırmaktadır. ADT’de (“ATL Development Tools”) KM3 desteği  Bir KM3 üstmodeli düzenlendikten sonra ADT’ye entegre edilmiş enjektörler kullanılarak Ecore biçimine otomatik olarak çevrilebilir.  Böylece model dönüşümleri için kaynak ve hedef üstmodellerinin ilgili yazılım ortamı için hazırlanmaları tamamlanmış olmaktadır.

32 32 Model Dönüşümü  Örnek bir ATL model dönüşümü: Families to Persons (http://www.eclipse.org/m2m/atl/doc/ ATLUseCase_Families2Persons.pdf)http://www.eclipse.org/m2m/atl/doc/ ATLUseCase_Families2Persons.pdf

33 33 Kaynaklar  ATLAS Group (2006) “ATL User Manual”, available at:  Hahn, C. (2007) “Model-Driven Architecture, Metamodelling & Model Transformations”, Slides from the Agent-oriented Software Engineering course, DFKI GmbH, available at: sb.de/~kuf/AOSE/Slides/MDA_AOSE_2806.pps  Jouault, F. and Bezivin, J. (2006) “KM3: A DSL for Metamodel Specification”, Lecture Notes in Computer Science, Vol. 4037, pp  OMG (2003) “Model Driven Architecture”, available at:  Selic, B. (2003) “The Pragmatics of Model-Driven Development”, IEEE Software, Vol. 20, Issue 5, pp  Sendall, S. and Kozaczynski, W. (2003) “Model Transformation: The Heart and Soul of Model-Driven Software Development”, IEEE Software, Vol. 20, Issue 5, pp


"UBI 622 ÇOK-ETMENLİ SİSTEMLER MODEL GÜDÜMLÜ YAZILIM GELİŞTİRME Doç. Dr. Geylani KARDAŞ" indir ppt

Benzer bir sunumlar


Google Reklamları