Research & Projects

Research Areas on Projects:

EU and National Funded Projects

Ongoing Projects 

1- ModelTGM:  Model Tabanlı ve Güdümlü Mühendislik ve Alan Özgü Dil Geliştirme

Bu projede, değişik yazılım modellemesi yaklaşımları ve teknolojilerinden faydalanarak, Radar ve EH sistemi yazılım bileşenleri geliştirilmesine yönelik modelleme dili ve araç kümesinin geliştirilmesi planlanmaktadır. Proje kapsamında tanımlanacak modelleme dili ve araç kümesi (editör ve dönüştürücüler) ile, yazılım geliştirme yaşam döngüsüne (YGYD) katkı sağlayan paydaşlar arasında ortak bir dil oluşturularak paydaşlar-arası iletişimin iyileştirilmesi ve model güdümlü mühendislik ile farklı yazılım girdi ve çıktılarının otomatik olarak oluşturulması ile ASELSAN ürünlerinin kalite faktörlerinin iyileştirilmesi amaçlanmaktadır. 


2- Artificial Intelligence supported Tool Chain in Manufacturing Engineering (AITOC)

The goal is to develop an integrated tool-chain for manufacturing engineering that supports decision making in early phases. To achieve this, the tool-chain will support formalization and automated analysis of requirements, computer-aided generation of simulation models, and software-supported generation of layout. In all of these dimensions, Artificial Intelligence will be utilized in expert systems and simulations based on data from existing solutions.

Completed Projects 

1- Boosting Design Efficiency for Heterogeneous³ Systems (PANORAMA)

The goal of PANORAMA is to research model-based methods and tools to master development of heterogeneous embedded hardware/software systems in collaboration with diverse and heterogeneous parties by providing best practice, novel analysis approaches, and guidance for development. To that end, the main line of action is geared to extending the scope and interoperability of current system level analysis approaches, particularly by enhancing existing abstract performance meta-models. The enhanced meta-model and the related tool framework will be a common and open platform to support collaborative development.

2- Blended Modeling for Enhanced Software and Systems Engineering (BUMBLE)

BUMBLE aims at providing an innovative system and software development framework based on modeling through blended modeling notations/languages (e.g. textual and graphical). The framework provides semi-automatic generation and management of full-fledged blended modeling environments from arbitrary DSMLs. Such modeling environments are expected to greatly boost the development of complex multi-domain systems by enabling seamless textual and graphical collaborative modeling. Based on a preliminary empirical study by some of the project idea partners, we expect at least a 30% improvement of the development speed using BUMBLE blended solutions compared to the state of the art of mutually exclusive notations for DSMLs. The results of BUMBLE will be (1) fed back into existing state-of-the-art open-source solutions enabling interested industrial and academic partners in the project and beyond to benefit from the project results, and (2) exploited in the development processes and tools of the consortium’s industrial partners.

3- Web Uygulamalarının Kullanıcı Davranışlarına Göre Model-Tabanlı Testi Için Alana-Özgü Modelleme Dili Ve Araçlarının Geliştirilmesi

Bu projede, teknik bilgisi kısıtlı paydaşların web uygulamaları kullanırken sergilemek istedikleri davranışları aksiyonlar ve aksiyonların aralarındaki ilişkiler cinsinden modellemelerine yönelik bir alana-özgü modelleme dili önerilecektir. Yeni modelleme dili, her profilde kullanıcının kolayca kavrayacağı düşünülen akış şeması (flowchart) notasyonunu temel alacaktır. Ayrıca, modelleme dili için geliştirilecek bir araç kümesi ile, kullanıcıların modelleme diline göre akış şeması modelleri yaratabilmesi ve sonrasında bu modellerden olası tüm davranış senaryolarını Behaviour-driven Development yaklaşımına göre otomatik türetebilmesi hedeflenmektedir. Her ne kadar kullanıcılar kendi davranışlarını akış şeması ile modellese de, bu diyagramlardaki bazı akışların (yani senaryoların) diğer akışlara göre daha çok tercih edilmesi muhtemeldir. Bundan ötürü, geliştirilecek başka bir araç ile de, kullanıcıların web uygulamayı kullanırken sergiledikleri gerçek aksiyonların tespit edilip sıklık derecelerine göre sınıflandırılması ve kullanıcı akış şema modelinden türetilen olası tüm BDD senaryolarının sık karşılaşılan aksiyonlara göre öncelik sırasına koyulması hedeflenmektedir. Böylece, olası tüm senaryoların sayıca büyük olduğu durumlarda önceliği düşük olan senaryolar (sık karşılaşılan aksiyonları içermeyenler) göz ardı edilebilecektir. Elde edilen öncelikli BDD senaryoları, web uygulama geliştiricileri tarafından BDD’yi destekleyen test otomasyon araçları (Selenium gibi) ile otomatik olarak web uygulama üzerinde koşulabilir ve web uygulamalarının kullanıcıların sık sergiledikleri davranışlara göre otomatik test edilmesi mümkün olabilir.


4- Yazılım Tasarım Kalıplarına Uygun Modellerin Tasarlanması, Analizi, ve Koda Dönüştürülmesi için Alana-özgü Modelleme Dili ve Araçlarının Geliştirilmesi

Yazılım tasarım kalıpları kaliteli yazılım geliştirme konusunda büyük öneme sahip olsa da, yazılımcılar tasarım kalıplarını kullanırken farklı sorunlar yaşamaktadır. Bunlardan bazıları şu şekilde ifade edilebilir: tasarım kalıplarının anlaşılmasının güç olması, hangi tasarım kalıbının hangi sistemler için uygulanması gerektiğinin net olarak tespit edilememesi, yazılım tasarım kalıplarına göre sistem mimarisi modelleyebilmek için UML benzeri bir modelleme teknolojisinin mevcut olmaması, mevcut sistem yapısının (yada davranışının) tasarım kalıplarına uyarlanmasına kod seviyesinde uğraşılması, ve tasarım kalıplarının doğru şekilde uyarlandığının otomatik olarak kontrol edilmesinin mümkün olmaması. Ayrıca, her ne kadar birçok üniversite yazılım mühendisliği dersinin müfredatına tasarım kalıplarını dahil etse de, öğrencilerin tasarım kalıpları üzerine yeterli bilgi sahibi olup pratik anlamda tecrübe kazanması pek de kolay olmamaktadır.

Bu projede, farklı yazılım tasarım kalıplarını destekleyen yazılım mimarileri modellemeye yönelik görsel yazılım modelleme dilinin ve mimari modelleri analiz edip otomatik kod üretmeyi sağlayan araçların geliştirilmesi amaçlanmaktadır. Buna göre, ilk olarak, geliştirilecek olan modelleme dilinin söz-dizimi ve semantik açısından tanımlanması yapılacaktır. Sonrasında, modelden koda dönüşüm algoritmaları tasarlanacaktır. Metaedit+ meta-modelleme aracı kullanılarak tanımlı modelleme dili için modelleme editörü geliştirilecektir. Yine Metaedit+ ile, semantik kurallara göre modellerin analizini destekleyen araç ile modelden Java koduna dönüşüm algoritma tasarımına göre modelden kod üreten dönüştürücü aracın geliştirilip modelleme editörüne entegrasyonu gerçekleştirilecektir. Son olarak, geliştirilen modelleme editörü ve dönüştürücü uygulamaların gerçek sistemler kullanılarak değerlendirilip test edilecektir.

5- Visual Specification of Software Architectures and their Analysis 

In this project, the goal is to offer a visual architecture description language that extends the XCD architecture description language with a visual notation set. VXCD's visual notation set is expected to be inspired from the well-known UML's component diagram. VXCD will have exactly the same semantics as XCD (Read the CBSE'14 paper for XCD's semantics). So, VXCD will allow for specifying contractual, modular, realisable, and formally analysable software architectures. Like XCD, VXCD will also support components and connectors (interaction protocols), but in a visual way. VXCD will allow designers to specify the behaviours of components and connector protocols through button clicks, form-filling, and selection lists by minimising the amount of texts that they need to type in. VXCD is to be supported with a drawing editor through which designers can specify their visual VXCD architectures. Using VXCD's code generator, designers can translate their VXCD architectures into textual XCD architectures. By doing so, designers can benefit from XCD's code generators for translating their architectural models into ProMeLa formal verification language. ProMeLa models can then be formally analysed for a number of system properties automatically using the SPIN model checker. VXCD is also to be supported by another code generator that can translate any visual VXCD architectures into software implementation code in Java. So, whatever designers specify visually including the structure, behaviours, and interaction protocol design decisions can be translated into Java code. This reduces the amount of time and effort that developers need to spend for implementing software systems. 

6- Internet of Things at Work 

IoT@Work will develop the technologies required to enable Internet of Things (IoT)-based applications and processes in the manufacturing domain. The IoT architecture will allow production processes to adapt quickly and easily to new business models and processes. Process and industry automation, however, have strong demands for reliable communication and security guarantees, which the IoT architecture has to incorporate from the start. Today, deployment and commissioning of complex production processes or Internet-enabled applications interacting with production systems still require a time consuming and error-prone manual network configuration process. This is due to the need to maintain a high level of determinism, safety, and security of the production process itself and avoiding both safety-critical failures and costly production interruptions. Furthermore, the traditional concept of a 'system's boundary' does not scale in scenarios where repurposed production systems have to fulfil new goals and adapt aspects like connectivity, dependability, security and privacy. IoT@Work will deliver tools and runtime mechanisms based on IoT technologies to significantly simplify commissioning, operating, and maintaining complex production processes. The contribution of this project will be focused on using self-configuration mechanisms, enabling what we call secure Plug&Work IoT. We want to contribute to the design ideas of the IoT architecture in order to dynamically and securely adapt networks and resources to better fit to "change", where this change could be due to infrastructure change, failures, or even process adaptations.


7- B2B Yazılımları için Alana-özgü Modelleme Dili ve İlgili Araçların Tasarımı ve Geliştirilmesi

Eryaz yazılım firması başta otomotiv yan sanayii firmaları olmak üzere ülkemizdeki birçok firma için uzun süredir B2B (business to business) web uygulamaları geliştirmektedir ve bu alanda geniş bir yer edinmeyi başarmıştır. B2B uygulamalarının geliştirilmesi sürecinde kodla-düzelt yazılım geliştirme modeli benimsenmiştir ve müşterilere hızlıca çalışan bir prototipin teslim edilmesi amaçlanmaktadır. Fakat, kodla-düzelt modeli esasında birçok soruna neden olmaktadır. Bunlardan bazıları, B2B uygulamalarının planlı bir şekilde test edilememesi ve hataların ayıklanamaması, müşterilerin sürecin içinde yer alamaması ve beklentilerinin tamamı ile karşılandığının anlaşılamaması, ve proje süresinin öngörülemeyen bir takım sorunlar nedeniyle uzayabilmesi olarak gösterilebilir.

Bu proje ile, B2B uygulamalarını en etkin ve verimli bir şekilde geliştirebilmek ve karşılaşılan sorunları minimum seviyeye indirgeyebilmek için, RYZ adında alana-özgü yazılım modelleme dili ve ilgili araçların geliştirilmesi planlanmaktadır. RYZ ile, müşteriler kullanacakları B2B uygulamasından beklentilerini yüksek-seviyede modelleyebilir ve B2B yazılımcıları da bu gereksinim modelleri ile uyumlu yazılım mimarisini modelleyip versiyonlar halinde saklayabilir, otomatik olarak koda dönüştürebilir, ve hatta yine müşterilerin istedikleri test senaryolarına göre otomatik olarak test edebilir. Ayrıca, tersine mühendislik yöntemi ile, koddan otomatik olarak modele geçip tasarımsal kararların üzerinden geçip değiştirebilmek te mümkün olacaktır. Böylece, en doğru, güvenilir, müşterilerin gereksinimlerini karşılayan B2B sistemleri model-güdümlü yazılım geliştirme yaklaşımı ile en kısa sürede geliştirilebilir.

7- B2B (Business to Business) Sistem Verilerinin Yapak Zeka Algoritmaları ile Analizini Destekleyen Yazılım Analiz Platformunun Geliştirilmesi

Eryaz yaklaşık 400 farklı müşteriye B2B (Business2Business) çözümleri sunarak müşterilerin ürünlerini web-ortamında sergileyip pazarlayabilmelerine imkan sağlamaktadır. Her müşteri, kendi B2B çözümü aracılığıyla ürünlerine ilgi duyan müşterileriyle iletişim kurmakta olup bu iletişimler sayesinde de birçok farklı veri B2B sistemleri tarafından depolanmaktadır. Bunlar arasında, müşterilen aradıkları ürünler, ürünlerin stok durumları, sipariş edilen ürünler, ürünlerin katalog taraması sonucu, sipariş tipleri (şirket içi yada müşteri siparişi), ve ürünlerin marka/modelleri gibi birçok farklı veri tipi mevcuttur. 400 farklı müşterinin her birinin kendi müşterilerinden elde ettikleri benzer veriler göz önünde bulundurulunca, Eryaz'ın büyük bir veri deposuna sahip olduğu anlaşılmaktadır. Bu projede amacımız, yeni geliştireceğimiz bir yazılım analiz platformu ile, büyük verinin gerçek zamanlı olarak depolanmasını ve analizini mümkün kılmaktır. Geliştirilecek yeni analiz platformu, mevcut veri üzerinde önceden tanımlı bir takım sorgulamaları otomatik olarak gerçekleştirip analiz sonucunu görselleştirebilecektir. Ayrıca, mevcut büyük veri üzerinde bir takım makine öğrenmesi algoritmaları uygulanarak bazı çıkarımların ve tespitlerin yapılması ve önerilerin oluşturulması planlanmaktadır. Bunlar arasında, belirli ürünleri sipariş eden müşterilerin başka hangi ürünlere yatkın olabileceği, belirli bir ürünü sipariş eden müşterilere aynı ürünün farklı markaları konularında önerilerde bulunmak, ve müşterilerin aynı ürünün farklı markalarına gösterdikleri ilginin incelenerek farklı markalar arasında benzerlik analizi yer almaktadır.