Gömülü sistemler için model tabanlı yazılım ve tasarım aracı
Model based software design and development tools for embedded systems
Yazar: İBRAHİM ARDIÇ
Danışman: YRD. DOÇ. DR. MEHMET DEMİRER
Hacettepe Üniversitesi / Fen Bilimleri Enstitüsü / Elektrik-Elektronik Mühendisliği Ana Bilim Dalı
Derece: Yüksek Lisans, 2015
Konu: Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol = Computer Engineering and Computer Science and Control ; Elektrik ve Elektronik Mühendisliği = Electrical and Electronics Engineering

Özet:
Yazılım projelerinde, iyi tanımlanmış gereksinimlerden ve mimari tasarımlardan
satır bazında kod geliştirmek kolaydır. Bu durum, daha karmaşık, milyonlarca satır
kod içeren sistemlerde bir ekip tarafından geliştirilebilir. Bu noktada tasarım ve
gereksinim arasındaki tutarlılık ön plana çıkmaktadır. Yapılacak olan
değişikliklerdeki herhangi bir yanlış anlama tasarımın değişmesine ve sonunda
kodun da binlerce satırında değişikliğine sebep olabilir. Bu değişim sırasında
geliştirici, doğru olan satırlarda da yanlışlıkla değişiklik yapabilir. Yapılacak olan
değişiklik, değişiklik gerektirmeyen yerlere de etkisi sonucunda beklenmeyen
hatalara sebep olabilir ve testlerde bu hatanın farkına varılamayabilir. Sonuçta,
bütün bu durumlar, üretilecek olan yazılımın maliyetini beklenene göre daha fazla
arttırmaktadır. Bu tip karmaşaların önüne geçmek ve maliyeti düşürebilmek
amacıyla yazılım sektöründe çeşitli yazılım araçları geliştirilmiştir. Tasarımı daha
kolay ifade etmek ve yazılımla eşleştirmek bu problem için bir çözüm olabilir, ancak
sistemin büyüklüğü ve birçok alt sistemler mevcut ise bu araçlar bazı noktalarda
yetersiz kalabilmektedir.
Bu tez kapsamında, belirtilmiş olan problemlere çözüm bulabilmek için yeni bir
model dili ve bu dili şekillendiren model tabanlı yazılım geliştirme ana çatısı
geliştirilmiştir. Bu ana çatıda, bu tür yapılmış çalışmalarda olmayan grafiksel ifade
edilmiş hem grafik ara yüzü hem de mantıksal modellerden, belirlenmiş olan
programlama diline özgü kod üretim işlemi gerçekleştirilmektedir. Üretilen bu kod
ile birlikte bu yöntemle uçuş ekranları tasarımının geliştirilmesi açısından büyük
kolaylıklar sağlayacaktır. Geliştiriciler için sadece gereksinim ve tasarım arasındaki
tutarlılık ön plandadır ve bu şekilde herhangi bir tasarım değişikliğinden kaynaklı
kodlamada yapılacak olan hataların önüne geçilmiş olacaktır.

Abstract:
Developing manual codes in compliance with well-defined requirements and
architectural design is an easy task as software projects. For complex systems, a
billion lines of code can even be developed by teams. At this point, the requirement
and design consistency become crucial. Even little misunderstandings in the
amendments to be made leads to change in design and eventually resulting in
changes thousands of lines of code. During the operation of changes, the developer
may accidentally modify correct lines. Amendments to be made, the places that do
not require changes as a result of the impact may cause unexpected errors and
these errors may not be detected during the tests. After all, the cost of the software
to be produced shall be higher than expected. To avoid this type of complexities and
in order to reduce the cost of software, various software tools have been developed
in software industry. More understandable and easier expression of design and
reasonable matching of this design to the software can be a good solution to the
problem; however in the case that the system size is large and various sub-systems
exist, these tools may fail to satisfy requirements adequately.
In this thesis, to find solutions to the problems described, a new model language
and the model-based software development framework for this language have been
developed. At this framework, the code generation process has been executed to
model specified programming language from the models expressed graphically. For
developers only, the consistency between requirements and design is at the
forefront, and arising from any design changes to be made in coding errors will be
prevented accordingly.