• Sonuç bulunamadı

Büyük Ölçekli Ve Kullanımda Olan Projelerde Ana Mimari Değişiklikleri

N/A
N/A
Protected

Academic year: 2021

Share "Büyük Ölçekli Ve Kullanımda Olan Projelerde Ana Mimari Değişiklikleri"

Copied!
6
0
0

Yükleniyor.... (view fulltext now)

Tam metin

(1)

Büyük Ölçekli Ve Kullanımda Olan Projelerde Ana

Mimari Değişiklikleri

Karani Kardaş

Havelsan A.Ş., Komuta Kontrol ve Savunma Teknolojileri Direktörlüğü, 06510, Çankaya, Ankara - Türkiye.

kkardas@havelsan.com.tr

Özet. Büyük ölçekli ve kullanıcı sayısı fazla olan canlı yazılım projelerinde teknolojik değişimler başta olmak üzere maliyetlerin azaltılması, ciddi hataların çözümü, ek fonksiyonel istekler gibi birçok nedenlerle büyük mimari değişikliklere ihtiyaç olabilir. Canlı sistemi bozmadan ve kullanıcı alışkanlıklarını değiştirmeden bu büyük değişikliklerin ve yeniliklerin sisteme eklenmesi büyük bir ihtiyaçtır. Bu çalışma büyük ölçekli bir yazılım projesinin birçok modülünde kullanılan Coğrafi Bilgi Sistemleri altyapısının daha teknolojik kütüphaneler kullanılarak değiştirilmesini ve geliştirilmesini adım adım sunar. Sonuç olarak modüller hangi geliştirimin aktif olduğunu bilmeden arayüzler üzerinden CBS kabiliyetlerine erişebilmekte ve ihtiyaçlarını karşılayabilmektedir.

Anahtar Kelimeler: Mimari Değişikliği, Coğrafi Bilgi Sistemleri, NASA WorldWind Uygulaması

Major Architectural Changes in Large Scale Projects

Karani Kardaş

Havelsan A.Ş., Komuta Kontrol ve Savunma Teknolojileri Direktörlüğü, 06510, Çankaya, Ankara - Türkiye.

kkardas@havelsan.com.tr

Abstract. Major architectural changes may be required in large-scale software projects for many reasons such as technological changes, reducing costs, solving important errors, and additional functional requests. Adding these major changes and innovations to the system is a great need without ruining the live system and changing user habits. This study presents a step-by-step operations of changing and developing the Geographic Information Systems infrastructure, which is used in many modules of a large-scale software project, by using more technological libraries. As a result, modules can access and use GIS capabilities through interfaces without knowing which implementation is active.

Keywords: Architectural Change, Geographic Information Systems, NASA WorldWind Application.

(2)

1

Giriş

Başarılı yazılım projeleri bitirilip canlı kullanımına verildikten sonra geliştirilmeye ve iyileştirilmeye ihtiyaç duyarlar. Başarılı projeler daha uzun süre kullanımda kalır ve kullanımda kaldıkça teknolojisi eskir. Canlı, yaşayan sistemin zamanla yeni teknolojilere adaptasyonu önemli ve zor bir süreçtir. Hatta proje büyüklüğü ve kullanıcı sayısı arttıkça bu değişiklik daha risklidir. Canlı kullanımı olan ve kısa süreli aralıklarla sürüm güncellemeleri olan büyük projelerde işleyişi bozmayacak şekilde ve kullanıcı alışkanlıklarını kötü yönde etkilemeyecek şekilde ve hatalara sebep olmadan büyük değişikliklerin yansıtılması önemlidir [1,2].

Coğrafi Bilgi Sistemleri (CBS) coğrafi bilgilerin kullanıcıya gösterildiği, kullanıcının şekil bilgilerini altlık haritalar üzerinde görebileceği, çeşitli değişiklikler yapabileceği, kullanıcı ihtiyaçları doğrultusunda çeşitli analizler yapabileceği bir ortam sunar [3]. Genel olarak veri, insan, yazılım, donanım, personel, analiz ana boyutlarından oluşur. Yazılım sistemlerinde başlıca ihtiyaç duyulan CBS kabiliyetleri; harita açma, raster ve vektör harita gösterimi, katman gösterimi, şekil oluşturma ve değiştirme kabiliyetleri, ölçek / projeksiyon / datum dönüşümleri, harita üzerinde mesafe / alan ölçüm yetenekleri, şekil kesişim analizleri, radar kaplama çizimi ve görünürlük analizleri gibi kabiliyetlerden oluşur. Örnek CBS Kullanımları Şekil 1’de gösterilmiştir.

Şekil 1. Örnek Coğrafi Bilgi Sistemleri Kullanımları ([4]’den alıntılanmıştır)

Hemen her alanda teknoljik iyileştirmeler CBS yazılımlarının da kalitesini arttırmaya olanak sağlar. OpenGL [5] teknolojisindeki gelişmeler sayesinde ve üç boyutlu gösterim kabiliyetlerinin artması ile iki boyutlu coğrafik gösterimlerden üç boyutlu gösterimlere geçiş sağlanmıştır. Böylece kullanıcı iki boyutlu analizlere ek olarak üç boyutlu analizler ve görüntülemeler de yapabilir hale gelmiştir.

Literatürde büyük mimari değişiklikleri ile ilgili çalışmalar mevcuttur ancak CBS altyapısının değişimi ile ilgili çalışmalar nadirdir [6, 7]. Bu çalışmada sistematik bir şekilde büyük bir yazılımda en az değişiklik ve yüksek güvenirlikle birçok yazılım modülü tarafından kullanılan iki boyutlu CBS altyapısının üç boyutlu hale getirilişi adım adım gösterilmiştir. Bildiri şu şekilde organize edilmiştir: ikinci bölümde çalışmada kullanılan açık kaynaklı CBS kütüphaneler hakkında bilgiler verilmiştir. Üçüncü bölümde geliştirilen yazılım detaylı bir şekilde adım adım sunulmuştur. Son bölümde geliştirimin artı ve eksi yönleri tartışılmış, sonuçlar ve gelecek çalışmalar değerlendirilmiştir.

(3)

2

Kullanılan Coğrafi Bilgi Sistemleri Kütüphaneleri

Önerilen çalışmada kullanılan CBS kütüphaneleri OpenMap [8] ve WorldWind [9] açık kaynaklı kütüphaneleridir. OpenMap, Java programlama dili tabanlı ve iki boyutlu bir CBS kütüphanesidir. OpenMap bileşenleri bir çerçeve altyapısı sağlar ve yazılımlara bu bileşenleri ihtiyaç doğrultusunda değiştirme imkanı tanır. Bu bileşenler ile coğrafik bilginin harita üzerinde gösterimi sağlanmış olur. OpenMap uygulamaları Java uygulaması olarak çalışabildiği gibi tarayıcı üzerinden de çalıştırılabilir. Open Geospatial Consortium (OGC) [10] standartlarından etkin raster gösterimini sağlayan Web Map Service (WMS) standardını destekler. OpenMap kütüphanelerinin kullanımını gösteren örnek görüntüler Şekil 2’de gösterilmiştir.

Şekil 2. Örnek OpenMap Uygulama Görüntüleri

OpenMap kütüphanesi farklı projeksiyon yöntemlerini desteklese de üç boyutlu görünüm yeteneğine sahip değildir. Bu da detaylı analizleri sınırlandırmaktadır. OpenMap kütüphanesinin güncel teknolojileri içermemesi, sınırlı OGC standardını destekliyor olması ve üç boyutlu analizlere olanak sağlamaması nedeni ile bu kütüphanenin kullanımı giderek azalmaktadır.

NASA’nın geliştirdiği WorldWind kütüphanesi açık kaynaklı üç boyutlu küre analizi sağlar. OGC standartlarının büyük çoğunluğunu destekler. WorldWind kütüphanesi kolaylıkla ve ihtiyaçlara uygun şekilde geliştirilebilir. Bu kütüphane platform bağımsızdır. Bir başka deyişle Windows, Macintosh, Linux gibi farklı işletim sistemleri üzerinde geliştirme yapılabilir. Ağ ve mobil ortamlar için de yazılım geliştirilmesine olanak tanır. WorldWind ekran kartının sahip olduğu yetenekleri kullanır; böylece günümüz coğrafi bilgi sistemlerinin ihtiyaç duyduğu üç boyutlu görselleştirme işlemini performanslı bir şekilde gerçekleştirir. WorldWind, görsel coğrafi bilgi sistemi geliştirmek isteyen yazılımcılar için çok güçlü, etkileşimli üç boyutlu ve kolay bir ortam sunar [11]. WorldWind kütüphanelerinin kullanımını gösteren örnek görüntüler Şekil 3’te gösterilmiştir.

(4)

3

Geliştirilen Sistem

Mimarisi bu çalışmada önerilen yöntemle güncellenmesi amaçlanan sistemin mevcut mimarisi Şekil 4'te gösterildiği gibidir. Bir çok modül tarafından kullanılan OpenMap tabanlı iki boyutlu CBS yeteneğine bağlılık şekilden de görüldüğü gibi oldukça yüksektir. Bu mimari yapısıyla CBS Kütüphanesini kullanan modüller CBS değişikliklerinden büyük şekilde etkilenebilir.

Şekil 4. Sistem Geliştirilme Öncesi Mimari

Mimari değişikliği aşama aşama gerçekleştirilmiştir. İlk aşamada yazılım testleri hazırlanmıştır. Var olan sistemi bozmama amacıyla test sürecine büyük önem verilmiştir. Büyük bir değişiklik yapılacağı için öncelikle var olan sistemi bozmama adına gerekli birim testleri ve senaryo testleri hazırlanmıştır. Böylece sistemin güvenirliği arttırılmıştır. Bu aşamada karşılaşılan en büyük zorluk CBS kullanıcı arayüzü testlerinin yazılmasıdır. Abbot testleri [12] ile bu ihtiyaç kısmi olarak sağlanabilse de bazı CBS analizi tabanlı arayüz testleri için Abbot testleri yetersiz kalmaktadır. Ancak saf CBS hesap ve analizleri için birim testleri yazılmıştır. Coğrafik hesaplamaların doğruluğu MATLAB gibi yazılımların coğrafik hesaplamalarından alınan değerlerle veya İnternet’teki çevrimiçi hesaplamaların yapıldığı sitelerden alınan değerlerle sağlanmıştır.

Çalışmanın ikinci aşamasında CBS yetenekleri için arayüzler tanımlanmış ve bir arayüz çerçevesi (ing. framework) oluşturulmuştur. Fabrika ve soyut fabrika tasarım desenleri başta olmak üzere tasarım desenleri kullanılarak ve “Model-View-Controller” (MVC) mimari desenleri kullanılarak tamamen arayüzler üzerinden CBS ihtiyaçlarını karşılayacak bir çerçeve oluşturulmuştur. Geliştirilen arayüz kümesindeki bazı önemli sınıfların sınıf diyagramı Şekil 5’te sunulmuştur.

Çalışmanın üçüncü aşamasında CBS kabiliyetlerini kullanan tüm modüllerde iyileştirmeler (ing. refactoring) yapılmıştır. Böylece modüllerdeki ve testlerdeki CBS kabiliyetleri kullanımı sadece arayüz üzerinden olabilecektir. Bu işlem sonrasında modüllerde direk kütüphane geliştirimlerine bağlılık ortadan kaldırılmış; CBS modülüne bağlılık sadece CBS arayüz çerçevesi üzerinden olacak hale getirilmiştir. Modüller gerekli arayüzlere erişimleri fabrika sınıfları üzerinden alabilir. Bu fabrika sınıfları çalışma anı parametrelerine göre iki boyutlu CBS kabiliyet kümesi veya üç boyutlu CBS kabiliyet kümesi döndürür. Modüller hangi geliştirimin aktif olduğunu bilmeden arayüzler üzerinden CBS kabiliyetlerine erişir ve ihtiyaçlarını karşılar. Tablo 1’de modüllerden CBS kabiliyetlerine arayüzler üzerinden yapılabilen örnek erişimlerin Java kod örnekleri listelenmiştir.

Çalışmanın dördüncü aşamasında önceki iki boyutlu OpenMap kütüphane kullanımının arayüz çerçevesi üzerinden yapılabilmesi sağlanmıştır. Böylece OpenMap kütüphanelerine direk erişilerek yapılan CBS ihtiyaçları, arayüz üzerinden sağlanır hale getirilmiştir.

(5)

Şekil 5. Uygulamanın Arayüz Setindeki Bazı Önemli Sınıfların Ana Sınıf Diyagramı Tablo 1. Modüllerin Arayüzler Üzerinden CBS Kabiliyetlerini Kullanım Örnekleri

Harita oluşturma IMap myMap = AMapCreator.createMap();

Katman oluşturma ILayer myLayer = myMap.createLayer("Deneme");

Şekil oluşturma IPolygon myPolygon = AShapeCreator.createPolygon(coordinates);

Coğrafik Hesaplamalar ICalculator myCalculator = CalculatorFactory.getCalculator();

myCalculator.calculateDistance(coord1, coord2); myCalculator.calculateAngle(coord1, coord2);

Analizler IAnalyzer myAnalyzer = AnalyzerFactory.getAnalyzer();

myAnalyzer.calculateVisibility(coord1, coord2); boolean result = myAnalyzer.intersects(shape1, shape2); myAnalyzer.convertCoordinate();

Beşinci aşamada ise arayüz sınıflarının üç boyutlu WorldWind kütüphaneleri kullanılarak gerçekleştirimi yapılmıştır. Yazılımın iki boyutlu ve üç boyutlu CBS kütüphaneleri ile birlikte çalışabilirliği çalışma anında derlemeye gerek kalmadan uygulama açılışında kullanıcı seçimi ile gerçekleştirilmiştir. Böylece modüller gerçekleştirim detayından uzak bir şekilde iki boyutlu veya üç boyutlu CBS ihtiyaçlarını karşılar. Çalışma sonrası oluşan mimari Şekil 6’da gösterilmiştir. Tüm yazılım modülleri CBS ihtiyaçlarını arayüz üzerinden karşıladığı için modüllerin olası ileri kütüphane değişkliklerinden etkilenmesi de en aza indirilmiştir.

(6)

4

Sonuçlar ve Değerlendirme

Bu çalışmada, büyük ölçekli bir yazılım projesinin birçok modülünde kullanılan CBS altyapısının daha teknolojik kütüphaneler kullanılarak değiştirilmesi sunulmuştur. CBS yeteneklerine erişim için genel bir CBS arayüzü çerçevesi oluşturulmuş ve modüller tarafından CBS yeteneklerine erişim bu arayüz çerçevesi üzerinden sağlanmıştır. Bu arayüz çerçevesinin hem iki boyutlu hem de üç boyutlu gerçekleştirimi yapılmıştır. Tüm bu işlemler yapıldığında çalışan sistemi bozmama adına birim, senaryo, Abbot ve kullanıcı testlerine önem verilerek sistem güvenirliği arttırılmıştır. Sonuç olarak modüller hangi geliştirimin aktif olduğunu bilmeden arayüzler üzerinden CBS kabiliyetlerine erişebilmekte ve ihtiyaçlarını karşılayabilmektedir. Modüllerin kütüphane bağımlılıkları ortadan kaldırılmış olur. Ayrıca çalışmada riskin düşürülmesi için üç boyutlu CBS sisteminin iki boyutlu CBS sistemi ile birlikte çalışılabilmesi sağlanmış; böylece öngörülmeyen bir hata durumunda kullanıcının eski iki boyutlu CBS Kütüphanesi ile işlemine devam edebilmesi sağlanmıştır. İki kütüphane ile birlikte çalışabilirlik ayrıca donanımsal hazırlığa da süre sağlar. Bu CBS değişikliği yeni üç boyutlu teknolojileri kullandığından ekran kartı iyileştirmesi gibi donanımsal değişikliklere de neden olabilir. Henüz donanımı hazır olmayan kullanıcılar eskisi gibi iki boyutlu sistem üzerinden devam edebilir. Üç boyutlu sistemin tamamen iki boyutlu sistemin ihtiyaçlarını karşıladığı kullanıcı kararı ile belirlendiğinde bu değiştirebilme yeteneği kaldırılabilir.

Çalışma sırasında karşılaşılan zorlukların başında teknoloji uyumsuzluğu verilebilir. Üç boyutlu Worldwind kütüphanesi OpenGL bağımlı olduğundan bazı Java Swing uyumsuzlukları yaşanmıştır. Ayrıca kullanıcı etkileşimli CBS işlemleri için geliştirilen ve otomatize edilen testlerde zorluklar yaşanmıştır. Kullanıcı testleri ile bu zorluk aşılmıştır.

Gelecek çalışma olarak, bu mimarinin altyapısal değişikliği planlanmakta ve istemci kısmının inceleştirilerek (ing. thin-client) ağ üzerinden gerçekleştirilmesi hedeflenmektedir.

Kaynakça

1. Shaw, M., & Garlan, D.: Software architecture (Vol. 101). Englewood Cliffs: prentice Hall. (1996) 2. Bass, L., Clements, P., & Kazman, R.: Software architecture in practice. Addison-Wesley

Professional. (2003)

3. Clarke, K.: Getting started with GIS. (1999)

4. GIS – The Geographic Approach , https://www.esri.com/news/arcnews/fall07articles/gis-the-geographic-approach.html, Son Erişim 2019/06/05

5. Woo, M., Neider, J., Davis, T., & Shreiner, D.: OpenGL programming guide: the official guide to learning OpenGL, version 1.2. Addison-Wesley Longman Publishing Co., Inc.. (1999)

6. Le, D. M., Behnamghader, P., Garcia, J., Link, D., Shahbazian, A., & Medvidovic, N.: An empirical study of architectural change in open-source software systems. In 2015 IEEE/ACM 12th Working Conference on Mining Software Repositories (pp. 235-245). IEEE. (2015)

7. Bennett, K. H., & Rajlich, V. T.: Software maintenance and evolution: a roadmap. In Proceedings of the Conference on the Future of Software Engineering (pp. 73-87). ACM.(2000)

8. An Open Source Java MappingToolkit, http://openmap-java.org, Son Erişim 2019/06/05 9. NASA WorldWind, https://worldwind.arc.nasa.gov/, Son Erişim 2019/06/05

10. Na, A., & Priest, M.: Open Geospatial Consortium Inc. Wayland, MA, USA, 26. (2007)

11. Kardas, K.: Yükseklik Verilerinin Kullanılabilirliği ve Kalitesi: Endüstriyel Durum Çalışması. VII. Uzaktan Algılama CBS Sempozyumu (UZAL-CBS). (2018)

12. Ruiz, A., & Price, Y. W.: Test-driven gui development with testing and abbot. IEEE Software, 24(3), 51-57. (2007)

Şekil

Şekil 1. Örnek Coğrafi Bilgi Sistemleri Kullanımları ([4]’den alıntılanmıştır)
Şekil 3. Örnek WorldWind Uygulama Görüntüleri
Şekil 4. Sistem Geliştirilme Öncesi Mimari
Şekil 5.  Uygulamanın Arayüz Setindeki Bazı Önemli Sınıfların Ana Sınıf Diyagramı   Tablo 1

Referanslar

Benzer Belgeler

Nitekim, modelin Young modül değeri belirli oranlarda azaltılarak uygulandığında; örneğin E=10 4 kg/cm 2 değerine kargın elde edilen yatay yerdeğişim değerleri,

SANAYI SEKTÖRÜ BÜYÜK ÖLÇEKLİ KURULUŞ TÜRKİYE PETROL RAFİNERİLERİ ANONİM ŞİRKETİ (TÜPRAŞ). PLASTIK VE KAUÇUK ÜRÜNLERI

Bu çalışma, Türkiye’de Lojistik sektörünün performans ve verimliliğinin araştırılması, sektöre ışık tutacak alana ilişkin yeni veri ve bulguların elde edilmesi,

Tüm bu faydalar ışığında Kocaeli, Türkiye’de bulunan lastik üretim fabrikasının alan bazlı olarak elektrik enerjisi tüketimine etkisi olan parametrelerinin belirlenmesi

臺北醫學大學今日北醫: 號外!外國學生推薦獎金倒數計時開始囉

Söz konusu ulusal politikalar, yeni işler yaratılamamasını saymazsak, genç işsizliği konusunda en önemli sorun olarak kabul edilen gençlerin nitelikleri ile

İkinci Dünya Savaşı boyunca hem silah ticaretinden pa­ ra kazanan hem de İngiliz gizli servisi adına çalışan Satvet Lütfi, Yunanistan, Bulgaristan ve Romanya’da

Cenazesi yarın öğle namazım mütaakıp Şişli Camiinden kaldırı­ lacaktır.. Celâl Fuat Türkgeldi, 1904