Özgün UML-Prolog Köprüsü Tasarımı

終了済み 投稿 3年前 着払い
終了済み 着払い

UML (Unified Modeling Language) nesneye yönelik yazılım geliştirme sürecinde yaygın kullanılan bir tasarım dilidir. Bir UML tasarımının en önemli öğesini sınıf diyagramı (class diagram) oluşturur. Sınıf diyagramları bir yazılım projesindeki sınıfları ve bunlar arasındaki ilişkileri göstererek yazılacak olan kodu çerçeve olarak oluşturmaya yetecek bilgi içerir.

Model tabanlı yazılım geliştirme teknolojileri tasarım diyagramlarının dönüşümler (transformations) yoluyla alternatif platformlara uygun hale getirilmelerini sağlayabilir veya daha az veya daha çok soyut hale getirebilir. Model tabanlı yazılım geliştirmenin en son hedefi ise tasarımlardan otomatik olarak kod üretmektir.

Dönüşümleri kural tabanlı ve programlanabilir bir ortamda gerçekleştirebilmek için verilerin Prolog dilinde ifade edilmesi akıllıca bir strateji olacaktır.

Bu çerçevede sizden istediğim UML sınıf modellerini Prolog’da ifade etmek için bir bilgi gösterimi standardı geliştirmenizdir. Geliştirilen bu standart, herhangi bir UML diyagramının Prolog içinde ifade edilebilmesini sağlayacak ve dolayısıyla Prolog kodu yazarak UML diyagramını çizmek mümkün olabilecektir. (Tabi ileride bu işe uygun bir araç geliştirilirse…) Bu projeden beklenen fayda uzun vadede Prolog kullanılarak yazılabilecek olan dönüşümlerin sınıf modelleri üzerinde doğrudan çalışabilmesinin sağlanmasıdır. Projenin gereksinimlerin belirlenmesi aşamasında standartlar dairesinde üretilen hayali bir bilgi tabanına yöneltilebilecek sorgular (query) üzerinde durulmalı ve tasarım bu saptanan gereksinimlere yönelik olarak yapılmalıdır.

· UML sınıf modelini içeren bir bilgi tabanına transformasyon amaçlı (veya benzer başka amaçlı) yöneltilebilecek sorgular (query) nelerdir?

· Bu sorgulara cevap verebilecek Prolog önerme/kural modelleri nasıl olmalıdır?

Prolog: Bu proje için temel Prolog bilgisi gerekmektedir. Prolog sade ve kolay bir dildir. Mantık önermeleri ve çıkarsama kuralları birbiriyle uyumlu bir biçimde bir arada aynı dosya içinde yer alabilmektedir. Yüklemler mantığına dayanmakla birlikte, gerek söz-dizim, gerek semantik açıdan yüklemler mantığının bire bir kopyası değildir. Kendine özgü kuralları vardır.

UML Bilgisi: UML dilinin tasarıma yönelik sınıf modellerinin söz dizim ve anlambilim (semantik) açıdan detaylı gözden geçirilmesi gerekebilecektir.

Geçmiş Çalışmalar: UML ile Prolog bağlantısını kurmaya yönelik geçmişte pek çok çalışma yapılmıştır. Çalışma kapsamında bunlar incelenmeli fakat özgün bir tasarım yapılmalıdır. Tasarımın özellikle sadeliği ve kullanım kolaylığı ön planda olmalıdır. Rapor yazılırken var olan yaklaşımların güçlü ve zayıf yanlarından söz edilmeli (referanslarla) ve tercih edilen tasarım kararları gerekçelendirilmelidir.

Projenin amacını daha açık bir biçimde anlayabilmek amacıyla Model Tabanlı Yazılım Geliştirme (Model Driven Software Development) literatürünü araştırabilirsiniz.

Projenin Çıktısı: Bir teknik rapor yazılacaktır. Rapor projenin hedefini genişçe anlatmalı ve UML ile Prolog arasında köprü kurmaya çalışan önceki çalışmalardan kısaca bahsetmelidir. Tasarlanacak olan standart, Prolog’un bir alt-dili olarak görülebileceğinden, yapılacak tasarımın içeriği aslında bir dil tanımlama işlevindedir. Bu nedenle bu (sözde) dilin sözdizimi ve anlam-bilimsel açıdan eksiksiz olarak tanımlanması gerekmektedir.

プロローグ UMLデザイン

プロジェクトID: #29259586

プロジェクトについて

リモートプロジェクト アクティブ 3年前