GPS Mesajlarının Nesneye Yönelik Yazılım Tasarım Prensiplerinden Genişlemeye Açık, Değişikliğe Kapalı Prensibine Göre Ele Alınması

Benzer belgeler
Algoritma, Akış Şeması ve Örnek Program Kodu Uygulamaları Ünite-9

İlgiye Yönelik Yaklaşımla Yazılım Geliştirme Software Development with Aspect Oriented Approach

Çok İşlemci Üzerinde Çalışan Yazılımlar için Hata Yönetim Altyapısı

İndirilecek KDV Listesi Uygulaması

VERİ İLETİŞİMİ FİNALİ

DESTEK DOKÜMANI E-BĐLDĐRGE UYGULAMASI

Yazılım Örüntüleri (SE 461) Ders Detayları

Orta Ölçekli Yazılım Firmaları İçin İdeal Bağımsız Doğrulama ve Geçerleme Organizasyon Yaklaşımı

OPEN ZEKA OTONOM ARAÇ EĞİTİMİ. Eğitim Kataloğu. 30 Kasım 2018 e kadar geçerlidir. Güncel doküman için sitemizi takip edebilirsiniz.

MERKEZ YAZILIM API Bilgileri

BLM 426 YAZILIM MÜHENDİSLİĞİ BAHAR Yrd. Doç. Dr. Nesrin AYDIN ATASOY

BEACON İŞARETÇİLERİ KULLANILARAK GERÇEKLEŞTİRİLEN ÖĞRENCİ YOKLAMA SİSTEMİ

Kurumsal Sosyal Sorumluluk Denetim ve Belgelendirme 2012 Yılı Eğitim ve Seminer Programı

MERKEZ YAZILIM API Bilgileri

BLM 426 YAZILIM MÜHENDİSLİĞİ BAHAR Yrd. Doç. Dr. Nesrin AYDIN ATASOY

HACETTEPE ÜNİVERSİTESİ

Hızlı Kullanım Kılavuzu. 1. Sistem Gereksinimleri. 2. Kurulum ve Etkinleştirme. Kurulum. Etkinleştirme

BİLGİSAYAR DESTEKLİ TASARIM FİNAL PROJE ÖDEVİ

PROSteel 2016 ÇELİK YAPI TASARIMI ÖĞRENCİ YARIŞMASI Semt Pazar Yeri" Tasarımı

Veresiye Satışlarınız, Sonradan faturaya dönüştürülmek üzere İrsaliye olarak Transfer edilir.

Navigasyon amaçlı alıcılardan elde edilen konumlamaya ilişkin veriler kullanıcı arayüzünde gösterilmekte yada alıcı tipine bağlı olarak bilgisayar

TIGER ENTERPRISE ÜRÜN FARK DOKÜMANI

ENVISTA ARM API Bilgileri

DESTEK DOKÜMANI. 1 Ocak 2010 tarihinden itibaran banka hesap numarası yerine IBAN numarası kullanılacaktır.

3. Kalite Güvence Sisteminin Genel Yapısı ve Gözden Geçirilmesine İlişkin Değerlendirme

PC KONTROLLÜ DENEYSEL KURUTMA CİHAZININ ELEKTRONİK TASARIMI VE KONTROL YAZILIMI

Uzaktan Eğitim. Web Tabanlı Kurumsal Eğitim

BLM 426 YAZILIM MÜHENDİSLİĞİ BAHAR Yrd. Doç. Dr. Nesrin AYDIN ATASOY

SR EK-1 STANDART İLAN FORMU VE BAŞVURU EVRAKLARI

BLM 426 YAZILIM MÜHENDİSLİĞİ BAHAR Yrd. Doç. Dr. Nesrin AYDIN ATASOY

BİLKENT ÜNİVERSİTESİ İNGİLİZ DİLİ MESLEK YÜKSEKOKULU (İDMYO)

5.1. Eğitimin Niteliğini Artırmak Amacıyla Durum Tespitine Yönelik Çalışmalar Yapılması [2012/101]

Düzenleme Paneli-02 Öneriler Mehmet Yakut

DEFTER BEYAN YARDIM KILAVUZU

MÜDEK Değerlendirme Ölçütleri

Domintell Home Technology ile Neleri Yaparsınız?

Doğrudan Havacılık - Uzay İlişkili Yükseköğretimde 2016 Yılı (Öğretim, Öğretim Kurumları & Öğretim Kontenjanları)

ANKARA SAĞLIK BİLİMLERİ DERGİSİ YAZAR REHBERİ

İŞLETME STAJI RAPORU

Gazi Üniversitesi Teknoloji Fakültesi Endüstriyel Tasarım Mühendisliği Bölüm Tanıtımı

Çalışmanın Başlık/İngilizce Başlık Bilgisi

Story Map Uygulaması (Application)

SteelPRO 2017 ÇELİK YAPI TASARIMI ÖĞRENCİ YARIŞMASI

OKÜ İçerik Yönetim Sistemi. Proje Amacı; OKÜ web sitelerinin içeriklerinin etkin yönetimi ve sunumu.

T.C. MİMAR SİNAN GÜZEL SANATLAR ÜNİVERSİTESİ FEN EDEBİYAT FAKÜLTESİ İSTATİSTİK BÖLÜMÜ LİSANS DERS TANITIM FORMU

MÜŞTERİYE DAHA YAKIN OLMAK

Bağlamsal Doğrulama için Bir Yazılım Tasarım Şablonu

BLM 426 YAZILIM MÜHENDİSLİĞİ BAHAR Yrd. Doç. Dr. Nesrin AYDIN ATASOY

Kurtköy Profil 1 Developer) FCBS AR Yazılım Uzmanı (Mid/Senior Java

Kurumsal Sosyal Sorumluluk Denetim ve Belgelendirme 2010 Yılı Eğitim ve Seminer Programı

DESTEK DOKÜMANI TEMĐNAT ĐŞLEMLERĐ. Unity/Tiger/ GO ürünlerinde Alınan/Verilen Teminat işlemlerinin kullanılabilmesi sağlanmıştır.

SÜLEYMAN DEMİ REL ÜNİ VERSİ TESİ MÜHENDİ SLİ K-Mİ MARLIK FAKÜLTESİ MAKİ NA MÜHENDİ SLİĞİ BÖLÜMÜ MEKANİK LABORATUARI DENEY RAPORU

Bilal Tahsin ALKAN KİŞİSEL BİLGİLER: Doğum Tarihi : Doğum Yeri : Aydın/Nazilli Medenî Durumu : Evli Askerlik Durumu : Tamamlandı (05/2010)

Kentsel Planlama ve Kentsel Altyapı İlişkisinde Yeni bir Dönem; Kentsel Dönüşüm

CHAPTER 6 FTP SERVER

E-SERTİFİKA KULLANIMININ YAYGINLAŞTIRILMASINDA ÜNİVERSİTENİN ROLÜ: BİR DERS ÖRNEĞİ

KONU: 2018 GLOBAL HİLE VE SUİSTİMAL RAPORU SAYI:

PROJE TEKLİFİ EKLER. INTERREG - IPA Bulgaristan-Türkiye SÖİ Programı CCI 2014TC16I5CB005

1. AMAÇ Bu dokümanın amacı,xxxxx Çalışanlarının kariyer hareketlerini tanımlar.

ALTI SİGMA EĞİTİM PROGRAMLARI. Kara Kuşak Eğitimi

EMRAM Değerlendirmesi ve Seviye 6 ve 7 Süreci. Antalya, Mart 2015

/tßq-b TEKLİF MEKTUBU. TRABZON lll KAMU HASTANELER] BIRLIGI GENEL SEKRETERLICI Kanııni Eğitim Araştırma Hastanesi. Teklif Formu

DİCLE NEHRİNDE TAŞINAN AYLIK SÜSPANSE-SEDİMENT MİKTARININ YAPAY SİNİR AĞLARI İLE BELİRLENMESİ

MEVITAS İŞLEMLERİ MEVITAS Merkezi Elektronik Veri İletim Toplama Analiz Sistemi Genel İlkeleri 1

Prekast betonun (Ön dökümlü beton) yerinde dökme betona göre avantajları şu şekildedir:

BEŞİKTAŞ BELEDİYESİ SOKAK HAYVANLARINA İNOVATİF VE SÜRDÜRÜLEBİLİR YAŞAM EVİ TASARIM YARIŞMASI ŞARTNAME 2017

Türkiye de STD. Sorunlar and yaklaşımlar

KURUMSAL WEB TASARIM Proje Teklifi

İHKİB İSTANBUL HAZIR GİYİM VE KONFEKSİYON İHRACATÇILARI BİRLİĞİ KURUMSAL SOSYAL SORUMLULUK ÇALIŞMALARIMIZ

Nesneye Dayalı Analiz ve Tasarım (SE 321) Ders Detayları

SIMCC - Simülasyon Kontrol Merkezi. SIMCC Genel Bak&8. Simülasyon nedir?

YILDIZ TEKNİK ÜNİVERSİTESİ İNŞAAT FAKÜLTESİ HARİTA MÜHENDİSLİĞİ BÖLÜMÜ ARAZİ ÇALIŞMASI - 2

Geliştirici Klavuzu

10. Ders Akusto- ve Magneto-Optik Etkiler

TIP ile MÜHENDİSLİĞİN ortak zekası;

YZM 2108 Yazılım Mimarisi ve Tasarımı

MÜDEK Değerlendirme Ölçütleri. 31 Mayıs 2014 Mövenpick Hotel, Ankara

Dersin Amacı. Bu dersin amacı, hakkında bilgi sahibi olmaktır.

MIM_TKY_ARAÇLAR_BN/2: KIYASLAMA ( benchmarking )

İçindekiler. Okuma lisansı info acar, için verilmiştir. Çoğaltılması ve dağıtılması yasaktır.

LOJİSTİK SEKTÖRÜNÜN ÜLKEMİZDEKİ GELİŞİMİ ve REKABET VİZYONU

HACETTEPE ÜNİVERSİTESİ YABANCI DİLLER YÜKSEKOKULU İNGİLİZCE HAZIRLIK BİRİMİ AKADEMİK YILI ÖĞRENCİ BİLGİLENDİRME EL KİTABI

Kısaca ; Servis Pozitif, firma tarafından kendisine sağlanmış kullanıcı girişleri yetkisi ile internet olan her platformdan sisteme giriş yapabilir.

TÜRKİYE TEKNOLOJİ GELİŞTİRME VAKFI (TTGV) ÇEVRE PROJE DESTEKLERİ KILAVUZU

Değerlendirme erlendirme Süreci: S

KONU: KURUMSAL YÖNETİM İLKELER (KURUMSAL YÖNETİM TEBLİĞİ SERİ II NO:17.1)

IBM Yazılım Markaları...2. Kategoriye Göre IBM Yazılım Ürünleri...5. Rational Ürün Ailesi...9. Rational Rapid Developer...14

Dersin Amacı. Bu dersin amacı, hakkında bilgi sahibi olmaktır.

MÜDEK Değerlendirme Ölçütleri

TÜRK DÜNYASI BASIN SEMPOZYUMU Mart 2019/AMASYA

MÜDEK Değerlendirmesi Evre ve Aşamaları. MÜDEK Eğitim Çalıştayı 13 Mayıs 2017, İstanbul

TÜRKİYE FİNANS YAZAR KASA POS FIRSATLARI! GİB Onaylı yazar kasa POS cihazları ile uyumlu POS uygulaması Türkiye Finans ta!

1. SINIF 1. YARIYIL 2. YARIYIL Kr edi EC TS. N o. 06 ve Becerisi II 2. SINIF 3. YARIYIL 4. YARIYIL. Kr edi. N o DKA SINIF 5.

DOĞRU MÜŞTERİYİ SEÇMEK

ÜNİVERSİTEYE YOLCULUK TERCİH YAPIYORUM /2017

Aktif Öğrenmenin Tanımı

MÜDEK Değerlendirmesi Evre ve Aşamaları. MÜDEK Program Değerlendirici Eğitim Çalıştayı Ekim 2017, İstanbul

1. TH160 Vekil Bilgilerinin İletimi Giriş, Güncelleme Giriş, Silme Giriş İşlemleri TH162 Vekil Bilgilerinin İletimi Onay,İptal

Belirli ses basınç seviyelerine maruz kalan ikamet eden kişi sayısı. Belirli ses basınç seviyelerine maruz kalan alanların büyüklüğü.

Transkript:

Dkuz Eylül Üniversitesi-Mühendislik Fakültesi Fen ve Mühendislik Dergisi Cilt 19 Sayı 55.1(Özel Sayı) Ocak 2017 Dkuz Eylul University-Faculty f Engineering Jurnal f Science and Engineering Vlume 19 Issue 55.1. (Special Issue) January 2017 DOI: 10.21205/deufmd.2017195529 GPS Mesajlarının Nesneye Yönelik Yazılım Tasarım Prensiplerinden Genişlemeye Açık, Değişikliğe Kapalı Prensibine Göre Ele Alınması Mehmet Mustafa GÜRSUL *1, Muhammed Ali ASAN 2, Tahsin Alp YANAR 3 1 Savunma Teknljileri Mühendislik ve Tic. A.Ş., Ankara 2 Savunma Teknljileri Mühendislik ve Tic. A.Ş., Ankara 3 Savunma Teknljileri Mühendislik ve Tic. A.Ş., Ankara (Alınış / Received: 06.06.2016, Kabul / Accepted: 12.08.2016, Online Yayınlanma / Published Online: 09.01.2017) Anahtar Kelimeler Strateji Tasarım Kalıbı, Fabrika Mett Tasarım Kalıbı, Açık Kapalı Tasarım Prensibi, NMEA 0183 Standardı, GPS Mesajları Özet: NMEA 0183; deniz sistemlerindeki elektrnik cihazlar arasındaki iletişimde kullanılan bir standarttır. Bu uygulama bildirisinde; ilk önce NMEA 0183 standardı ile ilgili genel bilgiler verilecektir. Snra ise; GPS alıcısından gönderilen NMEA 0183 standardındaki mesajların nesneye yönelik prgramlamanın temel prensiplerinden lan genişlemeye açık fakat değişikliğe kapalı prensibine uygun larak strateji ve fabrika tasarım kalıpları ile yazılım tasarımının nasıl yapıldığı anlatılacaktır. Handling GPS Messages Accrding T The Object Oriented Sftware Design Principles f Open fr Extensin, Clsed fr Mdificatin Principle Keywrds Strategy Design Pattern, Factry Methd Design Pattern, Open Clsed Design Principle, NMEA 0183 Standard, GPS Messages Abstract: NMEA 0183 is a standard fr interfacing marine electrnic devices. In this applicatin article, general infrmatin abut the NMEA 0183 standard will be given first. Then, design f the sftware, which handles NMEA 0183 messages cming frm GPS receiver, by using strategy and factry methd design patterns will be discussed accrding t the ne f the bject riented prgramming principle pen fr extensin, clse fr the mdificatin. *Srumlu yazar: mehmetgursul@gmail.cm 1. Giriş NMEA 0183; deniz sistemlerinde kullanılan derinlikölçer, snar, pusula, tmatik pilt, GPS alıcıları gibi elektrnik cihazlar arasındaki iletişimde kullanılan bir standarttır. Amerika da kurulan Ulusal Deniz Elektrnik Birliği (Natinal Marine Electrnics Assciatin) tarafından tanımlanmıştır ve kntrl edilmektedir. Deniz uygulamalarında NMEA 0183 standardının yerini yavaş yavaş NMEA 2000 standardı almaya başlamıştır [1]. 57

Tipik bir NMEA 0183 standardındaki GPS cümlesi aşağıdaki gibi bir frmata sahiptir: <başlangıç karakteri> <başlık>,<veri >*<kntrl numarası><cr><lf> Tüm NMEA 0183 standardındaki mesajlar başlangıç karakteri (starting delimeter) larak "$" ya da "!" karakteri ile başlar ve her bir veri alanı "," karakteri ile ayrılır. Kntrl numarası (checksum) değeri: $ ve * karakterleri arasındaki karakterlerin 8 bitlik exclusive OR değeridir ('$' ve '*' karakterleri hesaplamaya dâhil edilmez)[2]. seçenekler GLONASS uydu sistemi için GL, GNSS sistemi kullanan aygıtlar için ise GN dir. 4101.38311; DDMM.MMMMM frmatındaki değeridir. enlem N; kuzey enlemi lduğunu belirtir. 02834.97812; DDDMM.MMMMM frmatındaki değeridir. bylam GPS alıcısından gönderilen ve GP ile başlayan temel mesajlardan bazıları aşağıda verilmektedir: GPRMC: Zaman, knum, yön ve hız bilgilerini içeren mesajdır. GPGLL: Zaman, knum ve durum bilgisi içeren mesajdır. GPGGA: Zaman, knum, kullanılan uydu sayısı, anten irtifası vb bilgileri içeren mesajdır [3]. E; dğu bylamı lduğunu belirtir. *6F, kntrl tplamı (checksum) değerini gösterir. İlk A, durum (status) değeridir. A ise geçerli (valid), diğer durumlarda geçersiz (invalid) dir. Bu mesajlardan $GPGLL mesajının frmatı detaylı bir şekilde aşağıda verilmiştir. İkinci A, mde indicatr değeridir. Aşağıdaki değerleri almaktadır: $GPGLL,4101.38311,N,02834.9781 2,E,065932.18,A,A*6F GP, bu mesajın kaynağının GPS uydu sistemi lduğunu göstermektedir. Diğer A: Aut D: Differential E: Estimated M: Manual Input S: Simulatr N: Data Invalid 58

Şekil 1: GPS Mesajlarının Akış Diyagram Bu uygulama bildirisinde; yukarıda adları verilen NMEA 0183 standardındaki GPS mesajlarının nesneye yönelik prgramlamanın temel prensiplerinden lan pen fr extensin, clse fr mdificatin prensibine uygun larak nasıl bir mimari ile ele alınacağına değinilecektir. 2. Prblem Uydu sistemlerinden GPS alıcısına gelen mikr dalgalar, GPS alıcısı tarafından NMEA 0183 standardına uygun larak çeşitli mesajlar halinde UDP/IP prtklü ile Ethernet kartı üzerinden gönderilmektedir (bknz. Şekil 1). Sürekli gönderilen bu mesajların Ethernet kartı üzerinden kunup, genel geçerlilik kntrlleri yapıldıktan snra ilgili mesajın nesnesindeki verileri dldurulmak istenmektedir. GPS alıcısı tarafından GP ile başlayan birçk türde mesaj gönderilmektedir. GPS mesajlarını ele alan bir yazılım prjesinde ihtiyaç duyulan mesajlar ele alındıktan snra yeni ihtiyaçlara uygun larak başka GP ile başlayan mesajların da işlenmesi ihtiyacı dğabilmektedir. Bu yeni mesajları ele alırken de var lan mesajları çözümleyen kd parçalarında en az değişiklik ile yazılımın genişleyebilir lması gereklidir. Bu ihtiyaçlara uygun şekilde Çözüm ve Tasarım bölümünde anlatılan şekilde uygulama geliştirilebilir. 3. Çözüm ve Tasarım Nesneye yönelik tasarım prensipleri; kdu tasarlarken ya da yazarken uygulanan ve böylece kdun daha klay bakımı yapılabilir, esnek ve genişleyebilir lmasını sağlayan basit temel araç ya da tekniklerdir [4]. Nesneye yönelik tasarımın beş temel prensibinin baş harflerinden luşan SOLID [5] kelimesinin içerisindeki O harfi, pen/clsed prensibini belirtmektedir. Open/clsed prensibi yazılım varlıklarının (sınıflar, mdüller, fnksiynlar, vb.) genişlemeye açık fakat değişikliğe kapalı lması larak tanımlanmaktadır [4]. GPS ten gelen NMEA 0183 standardındaki mesajların ele alınması ile ilgili tasarımda pen/clsed prensibine uygun larak strateji ve fabrika mett tasarım kalıpları birlikte kullanılmıştır. Strateji ve fabrika mett tasarım kalıpları ile ilgili kısa bilgi aşağıda verilmektedir. Strateji tasarım kalıbı, algritmanın davranışının çalışma zamanında (runtime) belirlenmesini sağlayan bir yazılım tasarım kalıbıdır. Strateji tasarım kalıbı; Bir algritma ailesi tanımlar, Her bir algritmayı sarmalar (encapsulates), Algritmanın bu algritma ailesi içinde değiştirilebilir lmasını sağlar [6]. 59

Şekil 2: Strateji Tasarım Kalıbı Sınıf Diyagramı Strateji tasarım kalıbı sınıf diyagramı aşağıda Şekil 2 de gösterilmektedir. Fabrika mett tasarım kalıbı; nesnelerin yaratılmasını başka bir sınıfa delege eden bir yazılım tasarım kalıbıdır. Fabrika mett tasarım kalıbı ile; Nesne yaratılması fabrika sınıfı içinde yer alır, Böylece nesnenin yaratılması ve nesnenin kullanılması ayrıştırılmış lur, Fabrika sınıfı içindeki nesne yaratılması mantığında yapılacak değişiklik, nesne kullanımı tarafında herhangi bir değişikliğe gerek duymadan yapılabilir [6]. Fabrika mett tasarım kalıbı sınıf diyagramı aşağıda Şekil 3 te gösterilmektedir. Strateji ve fabrika mett tasarım kalıpları Şekil 4 te gösterildiği şekilde sisteme uyarlanmıştır. Bu tasarım ile yeni bir mesajı yazılımda ele almak ihtiyacı dğduğunda; strateji tasarım kalıbı sayesinde, var lan mesajlarda herhangi bir değişiklik yapma gereği duymadan, yeni mesajı yazılıma klayca entegre edebilme lanağı sağlanmış lmaktadır. Örneğin X adında yeni bir NMEA 0183 standardındaki mesaj yazılıma eklenmek istendiğinde, strateji tasarım kalıbı sayesinde; Şekil 4 te gösterilen mesajlarda ve MessageManager sınıfında herhangi bir değişiklik yapmaya gerek kalmadan sadece aşağıda belirtilen iki eklemenin yapılması yeterli lacaktır: MsgXHandler şeklinde IMessageHandler arayüzünü gerçekleyen bir sınıf eklenip, MessageFactry sınıfında bu yeni mesaj için <messagetype, MsgXHandler> anahtar-değer (key-value) verisini eklemek yeterli lacaktır. Bu kısımda istenirse Dependency Injectin ile kd yeniden derlemeye gerek kalmadan yapılabilir. 60

Şekil 3: Fabrika Mett Tasarım Kalıbı Sınıf Diyagramı Şekil 4: GPS Mesaj Ayrıştırma Sınıf Diyagramı Strateji tasarım kalıbının avantajlarının yanında nesne sayısını artması larak dezavantajı da bulunmaktadır. kşul deyiminin eklenmesini gerektirecektir. Diğer bir alternatif de kşullu deyimler kullanarak hangi alt sınıfın mesajı ele alacağına karar vermektir. Fakat bu şekilde yapıldığında yeni bir mesaj ele alınmak istendiğinde yeni bir 61

4. Tartışma ve Snuç Yazılım prjelerindeki temel srunlardan birisi; yeni ihtiyaçlara uygun larak var lan yazılımın genişleyememesi ve herhangi bir değişiklikte var lan kd parçalarında da değişiklik yapılma gerekliliğinin dğmasıdır. Bu makale ile GPS mesajlarının ele alınacağı bir yazılım prjesinin genişlemeye açık fakat var lan kdlar üzerinde de en az değişikliğe yl açacak şekildeki yazılım tasarımı ile yazılımın yeni ihtiyaçlara cevap verebilmesi sağlanmıştır. Ayrıca kd kunabilirliği ve yazılım bakımı da daha klay duruma getirilmiştir. Kaynakça [1]. Standard NMEA-0183 sentences descriptin, freenmea.net/dcs, Erişim Tarihi: 16.08.2016 [2]. IEC 61162-1 Maritime navigatin and radicmmunicatin equipment and systems Digital interfaces Part 1: Single talker and multiple listeners Editin 4.0, Nvember 2010. [3]. NMEA Data, www.gpsinfrmatin.rg/dale/nmea.ht m, Erişim Tarihi: 16.08.2016 [4]. Head First Object-Oriented Analysis&Design, Brett D. McLaughlin, Garry Pllice, David West, 2006, O Reilly Media, First Editin [5]. SOLID (bject-riented design),https://en.wikipedia.rg/wiki/ SOLID_(bject-riented_design), Erişim Tarihi: 20.05.2016 [6]. Design Patterns, Elements f Reusable Object-Oriented Sftware, Erich Gamma, Richard Helm, Ralph Jhnsn, Jhn Vlissides 62