dc.contributor.advisor | İmre, Kayhan Mustafa | |
dc.contributor.author | Beygo, Burak Enes | |
dc.date.accessioned | 2025-03-03T10:15:04Z | |
dc.date.issued | 2025 | |
dc.date.submitted | 2025-01-17 | |
dc.identifier.citation | B.E. Beygo, Refactoring train control management software for real time operations, Master's thesis, Hacettepe University, 2025. | tr_TR |
dc.identifier.uri | https://hdl.handle.net/11655/36576 | |
dc.description.abstract | Model-driven development is a widely used approach in various domains, and its popularity has been increasing in certain industries. Refactoring software models is essential to maintain and enhance the quality of software models. A real-time system is designed to respond to inputs or events within a strict and predefined time limit, ensuring timely and predictable operation. It is used in critical applications where delayed responses can lead to system failures or serious consequences, such as in embedded systems, robotics, or air traffic control. This thesis introduces refactoring techniques to provide real-time ability to a train control management software. The refactoring techniques consist of two main parts. The first part focuses on refactoring an existing software model. In order for the software to work in real-time, the software model in which the working mechanism of the threads is defined must be suitable for real-time operations. The second part focuses on refactoring to optimize the software internally to work on a real-time operating system. A real-time operating system must also be arranged by refactoring the configurations. By refactoring the software model, we achieved a resource-sharing problem with the help of a spin-lock mechanism. Threads accessing the same resource might create problems if they read and write simultaneously. Locking is unnecessary if the shared resource is only read by all threads. Most of the time, the reading operation does not exist alone in the software projects, and the writing operation comes along with the reading operation. Problems arise when none of the synchronization mechanisms are used. In this work, we have worked on UML diagrams to inject a spin-lock synchronization mechanism. For this purpose, we have identified refactoring opportunities, also known as model smells, and applied refactoring techniques. We discussed the results of applied refactoring techniques to demonstrate the effects of the smells. We worked on Linux which is a widely used operating system for embedded and industrial systems. By refactoring Linux configurations, we tried to achieve deterministic behavior for the threads of train control management software. The results show that thread scheduling is improved to ensure that critical threads are completed within their deadlines. Moreover, we discussed fine-tuning the configurations of real-time Linux for increased performance of train control and management software. | tr_TR |
dc.language.iso | en | tr_TR |
dc.publisher | Fen Bilimleri Enstitüsü | tr_TR |
dc.rights | info:eu-repo/semantics/openAccess | tr_TR |
dc.subject | Model-Driven Development | tr_TR |
dc.subject | Refactoring | tr_TR |
dc.subject | Multithreading | tr_TR |
dc.subject | Embedded Systems | tr_TR |
dc.subject | Real-Time | tr_TR |
dc.subject | Linux | tr_TR |
dc.subject.lcsh | Bilgisayar mühendisliği | tr_TR |
dc.title | Refactoring Train Control Management Software For Real Time Operations | tr_TR |
dc.title.alternative | Tren Kontrol Yönetimi Yazılımının Gerçek Zamanlı İşlemler için Yeniden Düzenlenmesi | tr_TR |
dc.type | info:eu-repo/semantics/masterThesis | tr_TR |
dc.description.ozet | Model tabanlı geliştirme çeşitli alanlarda yaygın olarak kullanılan bir yaklaşımdır ve popülaritesi belli başlı endüstrilerde artmaktadır. Yazılım modellerinin kalitesini korumak ve geliştirmek için yazılım modellerinin yeniden düzenlenmesi esastır. Gerçek zamanlı bir sistem, girdilere veya olaylara sıkı ve önceden tanımlanmış bir zaman sınırı içinde yanıt vermek, zamanında ve öngörülebilir bir işlem sağlamak üzere tasarlanmıştır. Gömülü sistemler, robotik veya hava trafik kontrolü gibi gecikmiş yanıtların sistem arızalarına veya ciddi sonuçlara yol açabileceği kritik uygulamalarda kullanılır. Bu çalışma tren kontrol yönetim yazılımlarına gerçek zamanlı çalışma yeteneği kazandırabilmek için yeniden düzenleme metodları sunmaktadır. Yeniden düzenleme metodları iki ana bölümden oluşmaktadır. Birinci bölüm, var olan bir yazılım modelinin yeniden düzenlenmesi üzerine yoğunlaşmaktadır. Bir yazılımın gerçek zamanlı çalışabilmesi için iş parçacıklarının çalışma mekanizmasının tanımlandığı yazılım modeli gerçek zamanlı işlemlere uygun olmalıdır. İkinci bölüm ise yazılımın gerçek zamanlı bir işletim sisteminde çalışabilmesi için yazılımı içten optimize etme amaçlı yeniden düzenlemeleri içermektedir. Gerçek zamanlı işletim sisteminin konfigürasyonları da yeniden düzenlenmelidir. Bu çalışmada yazılım modeli yeniden düzenlenerek, bir senkronizasyon mekanizması yardımıyla bir kaynak paylaşım sorunu çözülmüştür. Aynı kaynağa erişen iş parçacıkları aynı anda okuyup yazarlarsa sorun ortaya çıkar. Paylaşılan kaynak yalnızca tüm iş parçacıkları tarafından okunuyorsa kilitleme gereksizdir. Çoğu zaman, yazılım projelerinde sadece okuma işlemi yapılmaz ve yazma işlemi okuma işlemiyle birlikte yapılır. Sorunlar, senkronizasyon mekanizmalarından hiçbiri kullanılmadığında ortaya çıkar. Bu çalışmada, bir döndürme kilidi senkronizasyon mekanizması UML diyagramları üzerine uygulanmıştır. Bu amaçla, model kokuları olarak da bilinen yeniden düzenleme fırsatlarını belirlenmiş ve yeniden düzenleme metodları uygulanmıştır. Model kokularının etkilerini göstermek için uygulanan yeniden düzenleme metodlarının sonuçları tartışılmıştır. Bu çalışmada gömülü ve endüstriyel sistemler için yaygın olarak kullanılan Linux işletim sistemi üzerinde çalışılmıştır. Linux konfigürasyonları yeniden düzenlenerek tren kontrol yönetim yazılımı için kesin olarak belirlenebilen davranışlar bütünü elde edilmeye çalışılmıştır. Kritik iş parçacıklarının belirlenen zaman içinde çalışması sağlanmış ve bunun sonuçları olarak iş parçacığı planlamasının iyileştirildiğini gözlemlenmiştir. Ayrıca, gerçek zamanlı Linux konfigürasyonlarının farklı değerlerinin tren kontrol ve yönetim yazılımının performansına etkisi tartışılmıştır. | tr_TR |
dc.contributor.department | Bilgisayar Mühendisliği | tr_TR |
dc.embargo.terms | 6 ay | tr_TR |
dc.embargo.lift | 2025-07-29T10:15:04Z | |
dc.funding | Yok | tr_TR |
dc.subtype | software | tr_TR |