Otomatik Kontrol Ulusal Toplantısı, TOK 2017, Eylül, Yıldız Teknik Üniversitesi, İstanbul

Ebat: px
Şu sayfadan göstermeyi başlat:

Download "Otomatik Kontrol Ulusal Toplantısı, TOK 2017, Eylül, Yıldız Teknik Üniversitesi, İstanbul"

Transkript

1 Otomatik Kontrol Ulusal Toplantısı, TOK 217, Eylül, Yıldız Teknik Üniversitesi, İstanbul Robot Geliştirme Yazılım Altyapılarının Yazılım Ürün Kalitesinin İncelenmesi Evaluation of Software Product Quality of Robot Development Software Frameworks Savaş Öztürk 1 1 TÜBİTAK BİLGEM TDBY Yazılım Test ve Değerlendirme Lab. Gebze, KOCAELİ Savas.ozturk@tubitak.gov.tr Özetçe Teknolojinin gelişimi ile birlikte robotlar ve otonom araçlar günlük hayatımızda daha çok yer almakta, bunları çalıştıran yazılımların boyutları ve önemi artmaktadır. Endüstride yaşanan hızlı gelişim, her şeyi en baştan geliştirmek yerine var olan parçaları tümleştirerek ilerlemeyi gerekli kılmaktadır. Yazılım açısından bu yönelim, açık kaynak kodlu yazılım ürünlerinin yaygınlaşmasını hızlandırmış ve açık kaynak kodu kullanan emniyet-kritik sistemlerde güvenliğin, güvenilirliğin, kullanılabilirliğin ve bakım yapılabilirliğin nasıl sağlanacağı soru işareti olmuştur. Bu çalışmada en yaygın kullanılan 9 açık kaynak kodlu robot geliştirme platformunun yazılımlarının ürün kalitesi incelenmiştir. Yazılımların bakım yapılabilirliği SIG Bakım Yapılabilirlik kriterine göre derecelendirilmiş ve Rome Lab. modeline göre de hata yoğunluğu öngörümleri gerçekleştirilmiştir. Metot seviyesinde ve sınıf seviyesinde yapılan ölçüt değerlendirmelerinde, incelemeye tabi yazılımların büyük kalite sorunları içerdikleri ve üzerinde geliştirilecek yazılımların da bu hataları devralarak ilerlediği gözlenmiştir. Abstract With the development of technology, robots and autonomous vehicles take place more than before, hence the software products inside of them get greater in size and importance. Fast development of the industry requires integration of instant parts instead of developing them from scratch. Such kind of trend has fastened the utilization of open source software, and how to handle reliability, security and maintainability has become an important question. Software product quality of selected most used open source robot development frameworks is investigated in this study. SIG Maintainability Model is used for grading and Rome Lab. Reliability Prediction Model is used for predicting initial fault density. Evaluations held on method level, class level and project level has shown that all the software products have been deployed with quality problems and new developers inherit defects from them. 1. Giriş Son yıllarda teknoloji her alanda büyük bir ivme ile gelişmektedir. Uzaya gönderilen roketin işini tamamlayınca dönmesi bir rutin haline gelmiş, bilim kurgu filmlerindeki otonom arabalar sokaklarda gezmeye başlamış, insansız orduların ayak sesleri duyulmaya başlanmıştır. Kuşkusuz bu gelişmelerde başat aktör yazılım ve donanımlarda gerçekleşen devrimsel gelişimlerdir. 3 yıl önceki donanımlarla fazla yol alınamayan yapay zekâ öğrenme algoritmaları, grafik kartlarına özel olarak geliştirilen işlemci teknolojisi sayesinde yeniden gündeme gelmiştir. Henüz 1 yıllık bir geçmişi olmayan Tesla otomobili, 1 yıllık otomotiv şirketlerinin tahtını, Windows geliştirme platformundan daha çok yazılımı çalıştırarak sarsmaktadır. Tesla bunu, bir geliştirmeci ordusu kullanmadan ve onlarca yıllık tecrübeye sahip olmadan, açık kaynak kodlu yazılımları etkin bir şekilde kullanarak başarmıştır. Artık şirketler sıfırdan yazılım üretmek yerine uygun yazılımları birleştirerek geliştirmeyi tercih etmektedir. Yazılımın yoğun ve etkin olarak kullanıldığı günümüzün kontrol sistemlerinde yazılımsal hatalar can kaybına kadar giden arızalara yol açabilir. Otonom otomobillerde direksiyon, gaz ve fren gibi bütün hayati kontroller, yazılımın sensörlerden aldığı bilgiyi çok hızlı bir şekilde işleyerek karar vermesi sonucunda gerçekleştirilir ve en küçük bir hatanın telafisi olamayabilir. Bu nedenle bu yazılımların ve temel teşkil eden açık kaynak kodlu yazılımların, kontrollü bir şekilde geliştirilmesi ve/veya çok iyi test edilmesi gerekir. Endüstri, bu gerçeğin farkındadır ve robot yazılımlarının kaliteli olması için Avrupa'da H22 projesi başlatılmıştır [1]. Açık kaynak kodun sıkça kullanıldığı yerlerden birisi de robot geliştirme platformlarının yazılımları olmuştur. Otonom sistemlere temel olacak bu yazılımların beklenen işlevleri yerine getirmesinin yanı sıra kalite faktörlerinden güvenilir (can, mal ve itibar kaybına sebep olmadan aralıksız çalışabilmesi), güvenli (dışarıdan kötü niyetli müdahalelere fırsat vermemesi), bakım yapılabilir (kodun anlaşılabilir ve kolay düzeltilebilir olması) olması da ön plana çıkmaktadır. Açık kaynak kodlu yazılımlarda süreç kalitesinin yani yazılımın nasıl geliştirildiğinin, belgelendirildiğinin ve test edildiğinin izlenmesi, farklı konumlarda farklı kültürel kimliğe sahip ekiplerin süreç kalitesini sağlamak için ayrı bir iş gücü tahsis etmesi zor olabilir. ABD Hava Kuvvetleri Rome Lab. 368

2 Otomatik Kontrol Ulusal Toplantısı, TOK 217, Eylül, Yıldız Teknik Üniversitesi, İstanbul güvenilirlik öngörümü çalışmasında, yazılımda en çok hatanın kodlama aşamasında eklendiği iddia edilmektedir [2]. Yani süreç ne kadar kaliteli işletilirse işletilsin, kodlama hataları yazılımın kalitesini yerle bir edebilir. Kodlar ve hata veritabanı gibi somut veriler üzerinden ürün kalitesini geliştirme ekibinden bağımsız olarak değerlendirmek mümkündür. Japonya'daki robot yarışmasında yarışmacı robotların yazılım kalitesi üzerinden değerlendirilmesi üzerinde çalışılmış, ancak UML tasarımlarına bakılarak yapılan değerlendirme hakemlerin değerlendirmesi ile uyumlu çıkmamıştır [3]. Bunun nedeni olarak tasarımın koda aynen geçirilmemesi olarak açıklanmıştır. Sadece kod üzerinde yapılan statik kod analizlerinin yazılımda mevcut hataların %6'ına yakınını daha test süreci başlamadan tespit ettiği ortaya çıkarılmıştır [3]. Dolayısıyla sadece koda bakarak kalite değerlendirmesi, önemli bir gösterge sağlar. Bu çalışmada en yaygın açık kaynak kodlu robot geliştirme yazılımlarının kod kalite incelemesi gerçekleştirilmiştir. Seçilen yazılımlara ait çevrimsel karmaşıklık (cyclomatic complexity), esas karmaşıklık (essential complexity), büyüklük (satır sayısı, yorum sayısı vb.) ve nesne yönelimli ölçütler (Chidamber & Kemerer metrik seti) kullanılarak bakım yapılabilirlik derecelendirmesi ve güvenilirlik öngörümleri gerçekleştirilmiştir. Bakım yapılabilirlik derecelendirmesi için SIG (Software Improvement Group) modeli ve hata yoğunluğu öngörümü için ise Rome Lab. modelinden esinlenilmiştir [5]. İncelemeye tabi yazılımların C/C++, C#, Java, Python, Ruby, PHP, Eagle gibi geniş yelpazede bir dil kümesi kullanılarak geliştirildiği gözlenmiş ve bu nedenle ölçümler için kapsamlı bir dil desteği sunan SciTools Understand aracı kullanılmıştır. Bakım yapılabilirlik ve güvenilirlik hesaplamaları ise laboratuvarımızda geliştirdiğimiz yazılımlar ile gerçekleştirilmiştir [6]. İnceleme sonucunda, yazılımların büyük kalite sorunları içerdiği, test edilemeyecek ve anlaşılamayacak kadar karmaşık metotlara sahip olduğu, hata dağılımının homojen olmadığı ve belli modüllerde toplandığı, nesne yönelimli tasarımın etkin yapılamadığı, sınıfların birbirine çok bağımlı ve sınıfların içerisinde bütünlük kaybı olduğu tespit edilmiştir. Bildirinin ikinci bölümünde incelemeye tabi yazılımlar, üçüncü bölümünde yazılım kalite metrikleri ve yazılım kalite modelleri, dördüncü bölümde ölçme ve değerlendirmeler anlatılarak beşinci bölümde değerlendirme sonuçları tartışılacaktır. 2. Açık Kaynak Kodlu Robot Geliştirme Yazılımları Sürücüsüz otomobiller ve insansız hava araçları gibi gelişmeler insanların robotiğe olan ilgisini artırmış ve mühendis olmayanların dahi geliştirebileceği geliştirme platformları yaygınlaştırmıştır. Bu çalışmada bu platformlar üç grupta incelenecektir: 2.1. Donanım Projeleri Robot, fiziksel bir varlıktır, donanım ve yazılımının uyumu ile çalışır. Aşağıdaki platformlar sadece yazılımı değil, donanımsal olarak robotları da geliştirmeyi sağlayacak çizimleri, tasarımları ve şemaları da içerir. Sparki: Uçtan uca bir robot geliştirme platformudur. Öğrencilerden yetişkinlere geniş kapsamda bir kullanıcı kitlesine hitap eden robotun şemaları, 3 boyutlu modelleri, sensörleri (mesafe, ivmeölçer, kızıl ötesi, kumpas, ışık sensörü vb.) açık kaynak kodlu olarak sunulmaktadır. Ardupilot: Dron tarzı uça araçları "kendin yap" felsefesi ile kontrol edebilmeyi sağlayan kapsamlı bir kit ile yazılım kütüphanesi sunar. TurtleBot: İster sağladığı kit ile isterse başka donanım ve sensörlerle geliştirmeyi sağlayan robot platformudur Yazılım Projeleri Robot sadece metal iskeletten ibaret değildir, iskelete komutları veren yazılımdır ve spesifik ya da jenerik olarak robot donanımlarına destek veren açık kaynak kodlu yazılım platformları bulunmaktadır. LeJOS: Lego Mindstorm robot setini programlamaya yarayan özellikle başlangıç seviyesi kullanıcılar için uygun Java temelli geliştirme ortamıdır. RoCK (Robot Construction Kit): Orocos gerçek zamanlı araç setine uygun olarak geliştirilen genişletilebilir ve mevcut uygulamalar için çok sayıda sürücü desteği sunan geliştirme ortamıdır. ROS (Robot Operating System): Open Source Robotics Foundation tarafından desteklenen dünya çapında kapsamlı bir topluluk tarafından geliştirilen, bilinen tüm ticari ve serbest robot donanımları ile uyumlu geliştirme ortamıdır Robot Benzetimleri Yazılımı donanıma gelişigüzel tümleştirmeden önce, robotun gerçek dünyadaki ortamdan hava koşullarına kadar değişen fiziksel kısıtlara uyumundan emin olabilmek için benzetimini gerçekleştirmek gerekir. Gazebo: Gelişmiş 3 boyutlu grafikleri, sanal sensörleri, geniş komut satırı desteği ve bulutta benzetimleri koşturabilme yeteneği ile Apache lisanslı tam bir benzetim çözümüdür. Modellemeye başlamak için gerekli bilinen robot platformları ile uyumlu çok sayıda eklentiyi destekler. MORSE (Modular Open Robots Simulation Engine): İç ve dış mekân kullanımına uygun akademik robot modellerine odaklı, Python ile programlanabilen ve Blender oyun motoru ile işlenen (render) benzetimler yapmak için kullanılır. V-REP (Virtual Robot Experimentation Platform): Windows, Mac ve Linux masaüstlerinde çalışan, çoklu programlama yaklaşımlarını ve dillerini destekleyen, gelişmiş fiziksel durumlar kadar yakınlık ve görsel sensörlerden gelen verileri de modelleyebilen benzetim geliştirme ortamıdır. 3. Yazılım Ürün Kalitesi Yazılım kalitesi denildiğinde akla ilk önce, kalite güvence olarak da bilinen, ağırlıklı olarak yazılımın belirlenen geliştirme süreci safhalarındaki üretilecek dokümantasyonu takip eden süreç kalitesi gelmektedir. Süreç kalitesi yazılımın geliştirilmesi için önemli yer tutsa da nesnel ölçütlerle değerlendirmesi zordur ve yaklaşım kurumdan kuruma değişir. Diğer taraftan ürün kalitesi ise üretilen koda ve arayüzlere 369

3 Otomatik Kontrol Ulusal Toplantısı, TOK 217, Eylül, Yıldız Teknik Üniversitesi, İstanbul odaklıdır, nesnel değerlendirme mümkündür. ISO/IEC 251 standardı yazılım ürün kalitesini 8 alt faktörde inceler: İşlevsel uygunluk, performans verimliliği, uyumluluk, kullanılabilirlik, güvenilirlik, güvenlik, bakım yapılabilirlik ve taşınabilirlik[7]. Bu faktörlerin ayrı ayrı değerlendirilmesi için sayısallaştırılabilir alt karakterler tanımlanmıştır. Örneğin bakım yapılabilirlik; tutarlılık, analiz edilebilirlik, değiştirilebilirlik, tekrar kullanılabilirlik ve test edilebilirlik adı altında 5 alt faktör açısından incelenmektedir. Güvenilirlik ise erişilebilirlik, kurtarılabilirlik, olgunluk ve hataya dayanıklılık faktörleri ile değerlendirilir. Herbir alt faktörün değerlendirilebilmesi için de ya geliştirici ya da kullanıcıya yöneltilen anket soruları, ya doldurulan kontrol listeleri ya da kod ve benzeri yazılım ürünlerinden elde edilen ölçütler kullanılır. Örneğin test edilebilirlik karmaşıklıkla ilgilidir ve kodun karmaşıklığı yüksekse test edilebilirliği ve dolayısı ile bakım yapılabilirliği azalır. gibi ölçütleri tek başlarına yazılım hakkında nesnel bir fikir edinilmesine yardımcı olacağı gibi bazı modellere girdi sağlayarak da daha geniş bir bakış açısı yakalanmasına yardımcı olur. Yazılım hakkında fikir edinmek için kullanılan en eski ve en basit ölçüt satır sayısıdır. Satır sayısı ölçütleri yazılımın büyüklüğü hakkında fikir verir ancak hataların tespitinde çok faydalı olmayabilir. Çok uzun bir metod sadece tanımlamaları içeriyordur ve hiç hata içermez. Kısa bir metot ise girift bir yapıda tanımlanmış ve çok sayıda hatayı barındırıyor olabilir. Bu nedenle 1976'da McCabe tarafından ortaya çıkarılan, metodların mantıksal karmaşıklığını hesaplayan ölçüt olan çevrimsel karmaşıklık (cyclomatic complexity) öne çıkar [8]. Koddaki her If, for/while, switch/case, try/catch gibi şart ifadesi karmaşıklığı artırır ve karmaşıklığın miktarı en az yapılması gereken test durumu sayısını verir. Çevrimsel karmaşıklık metriği yapısallığı bozan metotlar arası dallanmaları hesaba katmaz, halbuki bir satır kod ekleyerek programın yapısı alt üst edilebilir. Örneğin iç içe geçmiş 3 for bloğunun en iç noktasında kullanılacak bir return ya da go to ifadesi for döngülerinin ve metodun geri kalan kısımlarını çöpe atacak ve kullanılamaz hale getirecektir. McCabe, bu tür kullanımların oldukça tehlikeli olduğunu ileri sürerek bunu ölçen ölçütü Esas (Essential Complexity) olarak adlandırmıştır. Yazılım kalitesini ya da kaliteyi oluşturan alt faktörleri değerlendiren çok sayıda model de kalite faktörlerinin bir denetim listesinde yer alan sorulara cevap verilmesi dayalı olduğu benzer bir yöntemi izlemiştir yılında ortaya çıkan Rome Laboratuvarı Modeli yazılım güvenilirliği öngörümü (prediction) ve tahminine (estimation) yönelik kapsamlı bir yaklaşım sunar [2]. Bu model yazılım projesinin konsept aşamasından sistemin devreye alınması ve bakım sürecine kadar tüm safhalarda yazılım hakkında topladığı çeşitli veriler ile yazılımın hata yoğunluğunu (yazılımın barındırdığı satır sayısı başına hata sayısı) öngörür, sistem arızası oranını (belirli bir zaman aralığında sistem arızası oluşmasına yol açan yazılımsal hata) tahmin eder. Bu modeli geliştiren ABD Hava Kuvvetleri'nin geliştirdiği projelerden elde edilen birikim kullanılır, bir takım denetim listeleri yardımı ile öznel bilgiler derlenir, dokümantasyon, süreç, ekibin yapısı ve yazılım kodu da dahil olmak üzere kapsamlı bir veri ile güvenilirlik değerleri sayısallaştırılır. Rome lab. Modelinin kodlama aşamasında kullanılan hata yoğunluğu öngörüsünde, SX metriğinin hesaplanmasında McCabe çevrimsel karmaşıklık metriğinden faydalanılır. SM metriğinin hesaplanmasında ise birim kod büyüklüğüne bakılır. SX*SM*kodlama öncesi hata yoğunluğu değeri modelin kodlama aşaması sonundaki hata yoğunluğunu hesaplar. SX = (1.5a + b +.8c) / NM (1) SM = (.9u + w + 2x) / NM (2) a = çevrimsel karmaşıklığı 2'ye eşit veya daha yüksek olan metodların sayısı b = çevrimsel karmaşıklığı 2'den az ve 6'dan fazla olan metodların sayısı c = çevrimsel karmaşıklığı 6'dan az olan metodların sayısı u = satır sayısı 1'e eşit veya daha düşük olan metodların sayısı w = satır sayısı 1'den fazla veya 5'den az olan metodların sayısı x = satır sayısı 5'den fazla olan metodların sayısı NM = toplam metod sayısı Kodlama aşaması hata yoğunluğuna isterler ve tasarım gibi daha önceki aşamaların hiçbirisinde olmadığı kadar büyük etki eder. Rome Lab. Modelinde metot sayıları ölçülse de bu durum çok net bir gösterge sunmadığı için bunun yerine aynı kriterleri sağlayan kod satır sayılarının toplanması daha doğru bir yaklaşım olacaktır. SIG Bakım Yapılabilirlik modelinde ise metotların çevrimsel karmaşıklığı 1,1,2,5 sınır aralıklarının hangisinde olduğuna göre sınıflandırılır [9]. Bu sınıflandırmaya giren metotların satır sayılarının tüm projeye oranına göre seviye belirlenir (Tablo 1). Örneğin karmaşıklığı 5 den yüksek kod satır oranı %3, 2-5 arasında olan kod oranı %11, 1-2 arasında karmaşıklığı olan kod oranı da %23 olursa bu durum 2. Seviyeye karşılık gelir. Karmaşıklığı 5 den yüksek kod oranı sıfırlansa bile, 2 den yüksek oranı %11 olduğu için, %1 lik bir fark yüzünden seviye 2 de kalır. Kritiklik seviyesi Tablo 1: SIG Bakım Yapılabilirlik Modeli karmaşıklığın seviyelendirmeye etkisi Very high > 5 High > 2 Medium > 1 Low > Seviye Medium High Very High 1 Seviye 2,3,4 ya da 5 değilse 2 < 5% < 15% < 5% 3 < 4% < 1% < % 4 < 3% < 5% < % 5 < 25% < % < % SIG modelinde kullanılan diğer bir ölçüt ise Birim kod büyüklüğünün değerlendirilmesidir. Hesaplanış yöntemi karmaşıklık için yapılana benzemektedir. Bu modele göre satır sayısı 1 den yüksek olan metotların satır sayıları toplamı tüm projenin %5 inden yüksekse bakım yapılabilirliği oldukça zordur (Tablo 2). 37

4 Otomatik Kontrol Ulusal Toplantısı, TOK 217, Eylül, Yıldız Teknik Üniversitesi, İstanbul 4. Yazılım Kalite Değerlendirmeleri Seçilmiş olan 9 açık kaynak kodlu robot geliştirme yazılımı Github, SourceForge ve BitBucket gibi kod havuzlarından indirilmiştir. Bütün yazılımların C++ kullandığı, buna ilave olarak Python, Java, PHP ve C# gibi dillerin de tercih edildiği gözlenmiştir. Adı geçen bu dillerde geliştirilen kodlar inceleme kapsamına alınırken, Ruby, Eagle, Shell, Glsl, Cmake ve Lisp gibi dillerdeki kodlar, Understand aracının kapsamına girmediği için incelenememiştir. Understand ile Tablo 3'deki ölçütler incelenmiş, bunlardan faydalanarak bakım yapılabilirlik ve güvenilirlik hesaplamaları da yapılmıştır. Tablo 4 de ise incelenen yazılımlarına ait sayısal bilgiler sunulmuştur. Kritiklik seviyesi Tablo 2: SIG Bakım Yapılabilirlik Modeli birim satır sayısının seviyelendirmeye etkisi Birim Satır Sayısı Very high > 1 High > 5 Medium > 1 Low > Seviye Medium High Very High 1 Seviye 2,3,4 ya da 5 değilse 2 < 5% < 15% < 5% 3 < 4% < 1% < % 4 < 3% < 5% < % 5 < 25% < % < % Tablo 3: Kullanılan ölçüt ve modeller Analiz Ölçütler Kapsamı Metot seviyesi Çevrimsel karmaşıklık (vg), Esas karmaşıklık (evg), Kod satır sayısı (code), Yorum satır sayısı (comm) Sınıf seviyesi Bütünlük Kaybı (Lock of Cohesion of Methods-LCOM), Sınıflar Arası Bağımlılık (Coupling of Methods-CBO), Türetilmiş Alt Sınıf Sayısı (Number Of Children-NOC), Sınıfın Metot Sayısı (Weighted Methods For A Class-WMC), Sınıftan Yapılan Çağrı Sayısı (Response For A Class-RFC), Kalıtım Ağacı Derinliği (Depth Of Inheritance DIT), Yazılım Kalite Risk Oranı-İlk 3 (YKRO3) Proje Seviyesi Rome Lab. Güvenilirlik Hata Yoğunluğu Modeli (Metot sayısı temelli) Güvenilirlik Hata Yoğunluğu Modeli (Kod yoğunluğu temelli) SIG Bakım Yapılabilirlik Modeli ( ve Kod büyüklüğü faktörleri) 4.1 Metot Seviyesinde Değerlendirmeler Seçilen yazılımlar için metot seviyesinde yapılan değerlendirmelerde kod satır sayısı olarak 666, yorum satır sayısı olarak 2779, çevrimsel karmaşıklık olarak 1631 ve esas karmaşıklık olarak 149 gibi değerler eşiklerin çok üstünde gerçekleşen anormal ölçümlerdir (Tablo 5). TURTLE yazılımı eşik değerlere en çok dikkat edilen yazılım olmuştur. Sadece 12 metotta karmaşıklık eşik değeri olan 1 aşılmıştır. ARDU ta ise 3229 metot karmaşıklık eşiğini aşmış olup, karmaşıklığı 1631 olan metot mevcuttur. Bu metodun üzerinde güncelleme, düzeltme ve test yapmak oldukça zor ve riskli olacaktır. 666 satır uzunluğunda bir metoda sahip açık kaynak kodlu bir yazılımın bakım yapılabilirliği, güvenilirliği, güvenliği ve performansı tehdit altındadır. Metot seviyesindeki değerlendirmeler, proje seviyesinde kullanılan modellerle birlikte değerlendirildiğinde daha anlamlı olmaktadır. Tablo 4: İncelenen yazılımların sayısal özellikleri Toplam Satır Sayısı Metot sayısı Sınıf Sayısı SPARKI ARDU TURTLE LEJOS ROCK ROS GAZEBO MORSE V-REP Yazılım Adı Tablo 5: İncelenen yazılımların metot seviyesinde ölçüt değerleri (ölçülen en yüksek değer eşiği aşan metot sayısı) Çevrimsel SPARKI 3 23 ARDU TURTLE LEJOS ROCK 78-5 ROS Esas Kod Satır sayısı Yorum Satır Sayısı

5 Otomatik Kontrol Ulusal Toplantısı, TOK 217, Eylül, Yıldız Teknik Üniversitesi, İstanbul GAZEBO MORSE V-REP Sınıf Seviyesinde Değerlendirmeler Metotların uzun ve karmaşık olması projelerin anlaşılmasını, yönetilmesini ve test edilmesini zorlaştırır, kapsadığı hata sayısı ve derleme süresi açısından sorunlar içerir. Bu tür projeler üzerinde yatırım yapacak proje ekipleri, daha kodlamaya başlamadan altyapıdan gelecek sorunların çokluğundan ve alacağı risklerden haberdar olmalıdır. Açık kaynak kodlu robot geliştirme yazılımları farklı geliştirme ekiplerinin, farklı dillerde geliştirdiği kodlardan teşkil ettiği için ölçümlerden direk bir yargıya varmak doğru olmaz. CK metrik seti değerlendirmesinde 588 sınıf içeren MORSE, en iyi tasarıma sahip proje çıkmıştır (Tablo 6). Sadece Türetilen Alt Sınıf Sayısı (Number Of Children) ölçütünde eşiği aşan sınıflar bulunmuştur. Bunun dışında, NASA PROMISE araştırmalarında en çok hataya sebep verdiği tespit edilen Bütünlük Kaybı (Lock of Cohesion of Methods) ve Sınıflar Arasında Bağımlılık (Coupling Between Objects) ölçütlerinde tüm projeler eşiği aşan sınıflara sahiptir [1]. Yazılım Adı Tablo 6: İncelenen yazılımların sınıf seviyesinde ölçüt değerleri (ölçülen en yüksek değer eşik değerini aşan sınıf sayısı) LCOM SPARKI 1-14 ARDU TURTLE LEJOS 1-63 ROCK 1-12 ROS GAZEBO MORSE - V-REP CBO NOC WMC DIT RFC YKRO3 46,47 3,32 26,73 24,89 7,78 4,23 1,91 26,52 2,84 Nesne Yönelimli ölçütlerin sınıf bazında yoğunluklarına göre hesaplanan bir türetilmiş ölçüt olan YKRO değerlerine göre en yüksek ölçülen üç sınıfın toplam değerinde (YKRO) ise GAZEBO en başarılı proje olmuştur [11]. GAZEBO da CK ölçütlerine göre eşik değerinin üzerinde çıkan sınıflar çok olsa da belirli sınıflarda yığılma olmamış, en kritik üç sınıfın YKRO değerleri toplamı %1,91 gibi düşük bir değere tekabül etmiştir. GAZEBO nun bu başarısına karşılık, SPARKI %46,47 YKRO değeri ile büyük bir problem barındırmaktadır. Bu, SPARKI de 64 sınıfın 3 tanesi neredeyse tüm işlerin yarısını üslenmiş anlamını taşımakta ve sınıflar arası görev dengelemesinin doğru yapılmadığını göstermektedir. 4.3 Proje Seviyesinde Değerlendirmeler Metot ya da sınıflar tüm projeye ölçeklenmemişse düzeltilmesi kolay bir durum olabilir. Metotların karmaşıklık seviyesi ya da satır sayısı sadece eşiği aşıp aşmadığına göre değerlendirilmemeli ne kadar aştığı ve tüm projede ne kadar oranlandığı da önemlidir. Bu amaçla kullanılan SIG Bakım Yapılabilirlik Modeli karmaşıklık seviyelerini veryhigh (vg>5), high (5>vg>2), moderate (2>vg>1) ve normal (vg>1) olarak derecelendirmekte ve bunların oranlarına göre yazılıma bir not vermektedir. Örneğin veryhigh oranı %5 ten yüksek olan bir proje, bakım yapılabilirlik açısından yüksek problemlidir ve diğer dilimlere bakılmaksızın 5 üzerinden 1 puan alabilir. SIG Bakım yapılabilirlik modeli, benzer derecelendirmeyi satır sayısı, tekrarlanan kod oranı, birim test kapsama oranı gibi kriterlere göre de değerlendirmektedir. Bu çalışmada robot yazılımları sadece karmaşıklık ve satır sayısı yönlerinden ele alınmıştır. Tablo 7 de bakım yapılabilirlik hesaplamalarında kullanılan, karmaşıklık açısından ve kod satır sayısı açısından kod oranları görülmektedir. Yazılım Adı Tablo 7: İncelenen yazılımların proje seviyesinde ölçüt değerleri (%) Çok yüksek karmaşıklık (vg>5) Yüksek (5>=vg>2) Orta (2>=vg>1) Birim büyüklüğü Çok yüksek birim büyüklüğü (2>loc>1) Yüksek Birim büyüklüğü (1>=loc>5) Orta Birim Büyüklüğü (%) SPARKI 7,32 8,18 2,77 11,24 ARDU TURTLE 7,39 11,31 13,35 6,79 1,61 14,32 37,68 1,68 37,68 1,86 8,84 LEJOS 2,85 1,3 8,45 6,27 8,5 ROCK,96 3,6 7,58 2,25 7,92 ROS 8,98 1,98 12,45 5,63 8,62 1,91 GAZEBO 4,72 11,59 12,59 2,16 8,58 15,19 372

6 Otomatik Kontrol Ulusal Toplantısı, TOK 217, Eylül, Yıldız Teknik Üniversitesi, İstanbul MORSE 2,66 7,54,85 8, V-REP 5,82 12,97 15,96 2,84 1,85 15,56 5. Tartışma Tablo 8 de güvenilirlik hesaplamaları sonuçları hem Rome Lab. Modeline (metot sayısı) hem de kod oranı kriterine göre gösterilmiş, bunlara ilaveten karşılaştırma yapılabilmesi için bakım yapılabilirlik ve YKRO3 sonuçları eklenmiştir. Tabloda sıralama yapılırken, bakım yapılabilirlik notları ortalamasına bakılmış, eşit olduğu durumlarda da (ROS, ARDU ve TURTLE değerleri ortalamada en düşük değer olan 1 çıkmıştır.) kusur sayısı ortalaması kullanılmıştır. Tablo 8: İncelenen yazılımlar için özet durum tablosu (En iyi değerler koyu olarak gösterilmiştir.) düşüktür ve sıfıra yakındır. Bakım yapılabilirlik notu 4 olsa da kolaylıkla 5 e çıkarılabilecek durumdadır. MORSE, güvenilirliğe de olumlu katkıda bulunan ve hata sayısını azaltan bir şekilde geliştirilmektedir. - En popüler yazılımlardan olan ROS un yaklaşık %1 u (83 metotta 329 satır) yüksek karmaşıklık sınıfına girmektedir. Bu altyapı üzerinde yazılım geliştirmek riskler içermektedir. - Yazılımların bakım yapılabilirliğini en çok etkileyen faktör çok yüksek dilimleri olmuştur. Çoğu yazılımda yüksek ve orta aralıkları (turuncu ve gri bantlar) %7-14 arasında çıkmıştır (Bknz. Şekil 1). - SPARKI yazılım karmaşıklık ve birim kod büyüklüğü açısından en iyi ikinci olmasına rağmen, bütün işlevselliğin az sayıda sınıfta toplanması açısından nesne yönelimli tasarım bakımından kötü bir örnektir. Ürün Kalitesi Sıralaması Yazılım Adı Metot sayısı temelli öngörülen başlangıç kusur sayısı Satır sayısı temelli öngörülen başlangıç kusur sayısı (Düşük değer iyidir.) Yazılım Kalite Risk Oranı İlk 3 Toplamı Bakım yapılabilirlik notu - Bakım yapılabilirlik notu Satır sayısı (Yüksek değer iyidir.) 1 MORSE 7,2 7,6 26, SPARKI 7,4 1,2 46, ROCK 7,2 7,9 7, LEJOS 7,3 8,8 24, GAZEBO 7,4 9,7 1, V-REP 7,4 1,2 2, ROS 7,4 1,2 4, ARDU 9 TURTLE 7,4 1,5 3, ,3 14,5 26, Bu sonuçlara göre aşağıdaki çıkarımlar yapılabilir: - ROS ve ARDU gibi yüksek hacimli yazılımların güvenilirlik ve bakım yapılabilirlik sonuçları içermesi normal karşılanabilir. Ancak incelenen yazılımlarda en az satır sayısına sahip olan TURTLE en kalitesiz yazılım olmuştur. TURTLE ile kodlama aşamasında hata sayısı yaklaşık 1,5 kat artmaktadır. Tasarımsal dengesizlik mevcuttur, tüm işyükünün ¼ ünü sadece üç sınıf üstlenmektedir. - MORSE yazılımının disiplinli geliştirildiği söylenebilir. Çünkü gerek karmaşıklığında gerekse birim büyüklüklerinde çok yüksek dilimleri sıfır çıkmıştır. yüksek seviyedeki dilimleri de oldukça Şekil 1: İncelenen yazılımların karmaşık kod oranlarının görsel değerlendirmesi 6. Sonuçlar Teknolojik gelişmeler yazılımı o kadar önemli bir noktaya taşımıştır ki, yazılımdan kaynaklanan sorunlar büyük kayıplara yol açmaktadır. Yazılımın ve yazılım desteğinin kaliteli olması, itibarı, memnuniyeti ve kârı artırıcı, maliyetleri ve kazaları azaltıcı etkiye sahiptir. Donanımları aynı olan iki cep telefonundan birisi, işletim sisteminin tutarlılığı ve kullanım kolaylığından dolayı diğerine göre birkaç kat oranda fazla tercih edilmektedir. Benzer durum tüm cihazlar ve otonom sistemler için geçerlidir. Çoğu robot yarışmasında donanımlar değil, benzer donanımlar üzerinde çalışan yazılımlar yarışır. Yazılımın işlevsel olarak belirli beklentileri karşılaması yanında, performansı, kullanılabilirliği, güvenliği, güvenilirliği ve bakım yapılabilirliği de üzerinde çalıştığı donanıma artı değer katar. Bu çalışmada robot geliştirme altyapılarında en çok kullanılan 9 adet açık kaynak kodlu yazılımın ürün kalitesi incelenmiştir. Yazılımların karmaşıklık, bağımlılık, büyüklük, bütünlük gibi genel kabul görmüş ölçütlerle ve modellerle incelenmesi sağlanmış ve önemli sonuçlara ulaşılmıştır. En önemli sonuç bu yazılımlardan bazılarında rekor seviyesinde çok yüksek karmaşıklık ve büyüklük değerlerine rastlanmasıdır. yazılımın büyüklüğü ile orantılıdır. tezine ters düşen bir sonuç da 373

7 Otomatik Kontrol Ulusal Toplantısı, TOK 217, Eylül, Yıldız Teknik Üniversitesi, İstanbul ortaya çıkmış ve en az satır sayısına sahip TURTLE geliştirme platformu, en kalitesiz yazılım çıkmıştır. Arduino platformu üzerinde geliştirme yapmak için kullanılan ARDU ise aynı tezi doğrular şekilde en kalitesiz ikinci yazılım olmuştur. Robot benzetimi altyapılarından birisi olan MORSE ise ideale yakın bir kalitede geliştirilmiştir. Popüler bir altyapı olan yazılım geliştirmenin bazı riskler taşıdığı, yazılımların hataya açıklık, performans ve bakım yapılabilirlik açısından problemleri olabileceği görülmektedir. Yazılım geliştiricileri kısmen kullandığı veya üzerinde geliştirme yaptığı bu altyapıları anlayamazlar ve kalitesinden emin olamazlarsa, verdikleri emek boşa gidebilir. Elde edilen sonuçlar hızla büyüyen sektör için bir erken uyarı işaretidir. İncelenen yazılımlar bu şekilde büyümeye ve karmaşıklaşmaya devam ederse, ileride yönetilemez ve kullanılamaz duruma gelebileceği öngörülmektedir. Bu çalışma kontrol ve otomasyon sistemlerinde yazılımın önemine dikkati çekebilmek ve yazılım kalitesine ilgi uyandırabilmek amacını gerçekleştirmiştir. [9] Baggen, R., Schill, K., Visser, J., Standardized Code Quality Benchmarking for Improving Software Maintainability, 14th European Conference on Software Maintenance and Reengineering, March 15-18, 21 in Universidad Rey Juan Carlos, Madrid, Spain [1] Promise Software Engineering Repository, 26 [11] Palıgu F., Öztürk, S., Yağcı, N., Kodu İyileştirmeye Nereden Başlamalı? Bir Yazılım Metrik Yaklaşımı: Yazılım Kalite Risk Oranı, 7th Turkish National Software Engineering Symposium, İzmir, 213. Teşekkür Yazar, bu çalışmanın gerçekleştirilmesi için destek sağlayan TÜBİTAK BİLGEM Yazılım Test ve Kalite Değerlendirme Laboratuvarı'na teşekkür eder.. Kaynakça [1] Corbato, C.H., Bordignon, M., The ROSIN project: towards an EU Digital Industrial Platform for Robotics through Open-Source Software, Global ROS-I Community Meeting, 16 Mayıs 217 [2] Rome Laboratory, Reliability Engineer s Toolkit, Technical Report, [3] Washizaki, h, Kobayashi, Y., Watanabe, H., Nakajima, E., Hagiwara, Y., Hiranabe, K., Fukuda, K., Hiroyuki WATANABE3, Quality Evaluation of Embedded Software in Robot Software Design Contest, Progress in Informatics, No. 4, pp.63 78, (27) [4] Jones, C., Software Quality Metrics: Three Harmful Metrics and Two Helpful Metrics, Technical Report, 212. [5] Heitlager, I., Kuipers, T. and Visser, J., A Practical Model for Measuring Maintainability. 6th International Conference on the Quality of Information and Communications Technology, 27, pp [6] Öztürk, S., Yağcı, N. Kamu Yazılımlarında Ürün Kalitesinin Değerlendirilmesi İçin Pratik Bir Kod Kalitesi Modeli. 1. Ulusal Yazılım Mühendisliği Sempozyumu (UYMS 216), Ekim 216, Çanakkale. [7] ISO/IEC 251: 211- Systems and software engineering -- Systems and software Quality Requirements and Evaluation (SQuaRE) -- System and software quality models, gue_detail.htm?csnumber=35733 [8] McCabe, T. J. A Complexity Measure, IEEE Trans. Software Eng. SE-2, 4 (Dec. 1976),

Nesneye Dayalı Yazılım Metrikleri ve Yazılım Kalitesi. Ural ERDEMİR, Umut TEKİN, Feza BUZLUCA

Nesneye Dayalı Yazılım Metrikleri ve Yazılım Kalitesi. Ural ERDEMİR, Umut TEKİN, Feza BUZLUCA Nesneye Dayalı Yazılım Metrikleri ve Yazılım Kalitesi Ural ERDEMİR, Umut TEKİN, Feza BUZLUCA İÇERİK Yazılımda Kalite Kavramları Yazılımın İç Özellikleri Metrik Kümeleri Düşük Kalite Göstergeleri Tasarım

Detaylı

Yazılım Mühendisliği 1

Yazılım Mühendisliği 1 Yazılım Mühendisliği 1 HEDEFLER Yazılım, program ve algoritma kavramları anlar. Yazılım ve donanım maliyetlerinin zamansal değişimlerini ve nedenleri hakkında yorum yapar. Yazılım mühendisliği ile Bilgisayar

Detaylı

Kamu Yazılımlarında Ürün Kalitesinin Değerlendirilmesi İçin Pratik Bir Kod Kalitesi Modeli

Kamu Yazılımlarında Ürün Kalitesinin Değerlendirilmesi İçin Pratik Bir Kod Kalitesi Modeli Kamu Yazılımlarında Ürün Kalitesinin Değerlendirilmesi İçin Pratik Bir Kod Kalitesi Modeli Savaş Öztürk 1, Nurhan Yağcı 2 1,2 Yazılım Test ve Kalite Değerlendirme Laboratuvarı, TÜBİTAK BİLGEM, Gebze, Kocaeli

Detaylı

Yazılım Kalite Metriklerinin Kıyaslanması: Örnek Bir Olay İncelemesi. Comparison of Software Quality Metrics: A Case Study

Yazılım Kalite Metriklerinin Kıyaslanması: Örnek Bir Olay İncelemesi. Comparison of Software Quality Metrics: A Case Study Yazılım Kalite Metriklerinin Kıyaslanması: Örnek Bir Olay İncelemesi Comparison of Software Quality Metrics: A Case Study Alper Kıral 1[0000-0002-4018-0419] Tülin Erçelebi Ayyıldız 2[0000-0002-7372-0223]

Detaylı

PROGRAMLAMA TEMELLERİ

PROGRAMLAMA TEMELLERİ PROGRAMLAMA TEMELLERİ 2.HAFTA Yazılım Yazılım, elektronik aygıtların belirli bir işi yapmasını sağlayan programların tümüne verilen isimdir. Bir başka deyişle var olan bir problemi çözmek amacıyla bilgisayar

Detaylı

CENG 302 Yazılım Mühendisliği Yazılım Mimarisi - Devam. Alper UĞUR

CENG 302 Yazılım Mühendisliği Yazılım Mimarisi - Devam. Alper UĞUR CENG 302 Yazılım Mühendisliği Yazılım Mimarisi - Devam Alper UĞUR Yazılım Mimarisi Gereksinim: NE? Mimari : NE+NASIL GEREKSİNİMLER (software architecture) Requirements : WHAT? Architecture : WHAT + HOW?

Detaylı

Kodu İyileştirmeye Nereden Başlamalı? Bir Yazılım Metrik Yaklaşımı: Yazılım Kalite Risk Oranı

Kodu İyileştirmeye Nereden Başlamalı? Bir Yazılım Metrik Yaklaşımı: Yazılım Kalite Risk Oranı Kodu İyileştirmeye Nereden Başlamalı? Bir Yazılım Metrik Yaklaşımı: Yazılım Kalite Risk Oranı Furkan Palıgu, Savaş Öztürk, Nurhan Yağcı Yazılım Test ve Kalite Değerlendirme Merkezi, TÜBİTAK, Kocaeli {

Detaylı

MESLEKİ TERMİNOLOJİ I 1. HAFTA YAZILIM MÜH. TEMEL KAVRAMLAR

MESLEKİ TERMİNOLOJİ I 1. HAFTA YAZILIM MÜH. TEMEL KAVRAMLAR YAZILIM: SOFTWARE Yazılım (Software): Yazılım sadece bir bilgisayar programı değildir. Basılı veya elektronik ortamdaki her tür dokümanı da içeren ürün. Dokümanlar yazılım mühendislerine ve son kullanıcıya

Detaylı

Bilişim Teknolojileri Test ve Belgelendirme Hizmetleri. Mustafa YILMAZ mustafayilmaz@tse.org.tr

Bilişim Teknolojileri Test ve Belgelendirme Hizmetleri. Mustafa YILMAZ mustafayilmaz@tse.org.tr Bilişim Teknolojileri Test ve Belgelendirme Hizmetleri Mustafa YILMAZ mustafayilmaz@tse.org.tr Türk Standardları Enstitüsü tarafından yapılan Bilişim Teknolojileri Test ve Belgelendirme Hizmetleri Yazılım

Detaylı

Yıldız Teknik Üniversitesi Bilgisayar Mühendisliği Bölümü. 13 Kasım 2010

Yıldız Teknik Üniversitesi Bilgisayar Mühendisliği Bölümü. 13 Kasım 2010 Yıldız Teknik Üniversitesi Bilgisayar Mühendisliği Bölümü 13 Kasım 2010 2010-2011 Eğitim Yılı (Haziran-Kasım 2010 tarihleri arasında) Bölümü Değerlendirme Anket Formu Raporu Öğrencilerimizin staj yaptıkları

Detaylı

NESNEYE YÖNELİK TASARIM SÜRECİ

NESNEYE YÖNELİK TASARIM SÜRECİ NESNEYE YÖNELİK TASARIM SÜRECİ GİRİŞ Nasıl? sorusuna yanıt aranır. Nesne modeli: Analizden tasarıma. Doğrudan problem alanı ile ilgili nesnelerden oluşan model, yardımcı nesnelerle zenginleştirilir. Ana

Detaylı

Bilişim Sistemleri. Modelleme, Analiz ve Tasarım. Yrd. Doç. Dr. Alper GÖKSU

Bilişim Sistemleri. Modelleme, Analiz ve Tasarım. Yrd. Doç. Dr. Alper GÖKSU Bilişim Sistemleri Modelleme, Analiz ve Tasarım Yrd. Doç. Dr. Alper GÖKSU Ders Akışı Hafta 5. İhtiyaç Analizi ve Modelleme II Haftanın Amacı Bilişim sistemleri ihtiyaç analizinin modeli oluşturulmasında,

Detaylı

SİSTEM VE YAZILIM. o Bilgisayar sistemleri donanım, yazılım ve bunları işletmek üzere gerekli işlemlerden oluşur.

SİSTEM VE YAZILIM. o Bilgisayar sistemleri donanım, yazılım ve bunları işletmek üzere gerekli işlemlerden oluşur. SİSTEM VE YAZILIM o Bilgisayar sistemleri donanım, yazılım ve bunları işletmek üzere gerekli işlemlerden oluşur. o Yazılım, bilgisayar sistemlerinin bir bileşeni olarak ele alınmalıdır. o Yazılım yalnızca

Detaylı

Q-scout ne işe yarar?

Q-scout ne işe yarar? Q-scout Başlangıç Seviyesi Robot Yapım Ve Kodlama Kiti Bu sevimli robot, Scratch 3.0 tabanlı grafik kodlama ortamı ile birlikte 60 dakikalık bir yapım süresine sahiptir. Ultrasonik özelliği sayesinde engellerden

Detaylı

Mobil Uygulama Yazılımlarında Yazılım Metriklerinin Kullanılması

Mobil Uygulama Yazılımlarında Yazılım Metriklerinin Kullanılması Mobil Uygulama Yazılımlarında Yazılım Metriklerinin Kullanılması Using Software Metrics in Mobile Applications Software Dr. Aziz Can Yücetürk Vodafone IT Hizmetleri A.Ş. İstanbul aziz.yuceturk@vodafone.com

Detaylı

MÜHENDİSLİK FAKÜLTESİ / ENSTİTÜSÜ / YÜKSEKOKULU BİLİŞİM SİSTEMLERİ MÜHENDİSLİĞİ BÖLÜMÜ /ABD LİSANS PROGRAMI - 1 ( yılı ve sonrasında birinci

MÜHENDİSLİK FAKÜLTESİ / ENSTİTÜSÜ / YÜKSEKOKULU BİLİŞİM SİSTEMLERİ MÜHENDİSLİĞİ BÖLÜMÜ /ABD LİSANS PROGRAMI - 1 ( yılı ve sonrasında birinci MÜHENDİSLİK FAKÜLTESİ / ENSTİTÜSÜ / YÜKSEKOKULU BİLİŞİM SİSTEMLERİ MÜHENDİSLİĞİ BÖLÜMÜ /ABD LİSANS PROGRAMI - 1 (2016-17 yılı ve sonrasında birinci sınıfa başlayan öğrenciler için) BİRİNCİ YIL 1. Dönem

Detaylı

Yazılım Nedir? Yazılım Mühendisi. Yazılım Mühendisliği. ACM/IEEE Etik Kodu. Etik Kural için Önsöz BIL 304 YAZILIM MÜHENDİSLİĞİ 2012-2013.

Yazılım Nedir? Yazılım Mühendisi. Yazılım Mühendisliği. ACM/IEEE Etik Kodu. Etik Kural için Önsöz BIL 304 YAZILIM MÜHENDİSLİĞİ 2012-2013. BIL 304 YAZILIM MÜHENDİSLİĞİ 2012-2013 Yrd Doç. Dr. Turgay İBRİKÇİ Yazılım Nedir? Yazılım Tanımlanmış bir işlevi yerine getiren, Girdi ve Çıktıları olan, Herhangi bir donanım üzerinde çalışan, Bilgisayar

Detaylı

Yaz.Müh.Ders Notları #6 1

Yaz.Müh.Ders Notları #6 1 YAZILIM MÜHENDİSLİĞİ Prof.Dr. Oya Kalıpsız GİRİŞ 1 YAZILIM YETERLİLİK OLGUNLUK MODELİ Olgunluk Seviyeleri: Düzey 1. Başlangıç düzeyi: Yazılım gelişimi ile ilişkili süreçlerin tanımlanması için hiçbir sistematik

Detaylı

MONTE CARLO BENZETİMİ

MONTE CARLO BENZETİMİ MONTE CARLO BENZETİMİ U(0,1) rassal değişkenler kullanılarak (zamanın önemli bir rolü olmadığı) stokastik ya da deterministik problemlerin çözümünde kullanılan bir tekniktir. Monte Carlo simülasyonu, genellikle

Detaylı

PROGRAMLAMAYA GİRİŞ. Öğr. Gör. Ayhan KOÇ. Kaynak: Algoritma Geliştirme ve Programlamaya Giriş, Dr. Fahri VATANSEVER, Seçkin Yay.

PROGRAMLAMAYA GİRİŞ. Öğr. Gör. Ayhan KOÇ. Kaynak: Algoritma Geliştirme ve Programlamaya Giriş, Dr. Fahri VATANSEVER, Seçkin Yay. PROGRAMLAMAYA GİRİŞ Öğr. Gör. Ayhan KOÇ Kaynak: Algoritma Geliştirme ve Programlamaya Giriş, Dr. Fahri VATANSEVER, Seçkin Yay., 2007 Algoritma ve Programlamaya Giriş, Ebubekir YAŞAR, Murathan Yay., 2011

Detaylı

STİK K KURULTAYI YAZILIM LOJİST STİĞİ

STİK K KURULTAYI YAZILIM LOJİST STİĞİ LOJİST STİK K KURULTAYI YAZILIM LOJİST STİĞİ ISO/IEC 12207 Yazılım Yaşam Döngü Süreçleri Yazılım Lojistiği Yazılım desteği; yazılımın orijinal isterlerini ve daha sonradan gelebilecek değişiklik isteklerini

Detaylı

MATLAB A GİRİŞ. EE-346 Hafta-1 Dr. Ayşe DEMİRHAN

MATLAB A GİRİŞ. EE-346 Hafta-1 Dr. Ayşe DEMİRHAN MATLAB A GİRİŞ EE-346 Hafta-1 Dr. Ayşe DEMİRHAN MATLAB Teknik ve bilimsel hesaplamalar için yazılmış yüksek performanslı bir yazılım geliştirme aracı MATrix LABoratory (MATLAB) Boyutlandırma gerekmeyen

Detaylı

MerSis. Bilgi Teknolojileri Yönetimi Danışmanlık Hizmetleri

MerSis. Bilgi Teknolojileri Yönetimi Danışmanlık Hizmetleri MerSis Bilgi Teknolojileri Yönetimi Danışmanlık Hizmetleri Bilgi Teknolojileri risklerinize karşı aldığınız önlemler yeterli mi? Bilgi Teknolojileri Yönetimi danışmanlık hizmetlerimiz, Kuruluşunuzun Bilgi

Detaylı

25.10.2011. Arayüz Nedir? Arayüz Çeşitleri Arayüz Tasarım Yöntemleri Arayüz Tasarım Hataları. Ömer Faruk MIZIKACI 2008639402

25.10.2011. Arayüz Nedir? Arayüz Çeşitleri Arayüz Tasarım Yöntemleri Arayüz Tasarım Hataları. Ömer Faruk MIZIKACI 2008639402 Arayüz Tasarımı ve Programlama Neleri Konuşacağız Arayüz Nedir? Arayüz Çeşitleri Arayüz Tasarım Yöntemleri Arayüz Tasarım Hataları Ömer Faruk MIZIKACI 2008639402 Arayüz Nedir? Bilgisayar ve uygulamalarının

Detaylı

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 10. LINUX OS (Programlama) BİLGİ & İLETİŞİM TEKNOLOJİLERİ GENEL BAKIŞ

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 10. LINUX OS (Programlama) BİLGİ & İLETİŞİM TEKNOLOJİLERİ GENEL BAKIŞ Ders 10 LINUX OS (Programlama) BİLGİ & İLETİŞİM TEKNOLOJİLERİ GENEL BAKIŞ LINUX de Programlama LINUX işletim sistemi zengin bir programlama ortamı sağlar. Kullanıcılara sistemi geliştirme olanağı sağlar.

Detaylı

YAZILIM MÜHENDİSLİĞİ TEKNOLOJİ FAKÜLTESİ / BİLGİSAYAR MÜHENDİSLİĞİ

YAZILIM MÜHENDİSLİĞİ TEKNOLOJİ FAKÜLTESİ / BİLGİSAYAR MÜHENDİSLİĞİ YAZILIM MÜHENDİSLİĞİ TEKNOLOJİ FAKÜLTESİ / BİLGİSAYAR MÜHENDİSLİĞİ İÇERİK Yazılım, Yazılım Türleri Yazılım Mühendisliği Yazılım Geliştirmede Süreç Yönetimi Yazılım Geliştirme Süreç Modelleri Yazılım Kalitesi

Detaylı

MerSis. Bilgi Teknolojileri Bağımsız Denetim Hizmetleri

MerSis. Bilgi Teknolojileri Bağımsız Denetim Hizmetleri MerSis Bağımsız Denetim Hizmetleri risklerinizin farkında mısınız? bağımsız denetim hizmetlerimiz, kuruluşların Bilgi Teknolojileri ile ilgili risk düzeylerini yansıtan raporların sunulması amacıyla geliştirilmiştir.

Detaylı

Bir yazılım geliştirme metodolojisi aşağıdaki adımlardan meydana gelir; Yazılım geliştirme sürecine destek verecek araçlar, modeller ve yöntemler.

Bir yazılım geliştirme metodolojisi aşağıdaki adımlardan meydana gelir; Yazılım geliştirme sürecine destek verecek araçlar, modeller ve yöntemler. Yazılım Mühendisliği kapsamındaki Yazılım Geliştirme Metodolojileri, bir bilgi sistemini geliştirme sürecinin yapımını, planlamasını ve kontrolünü sağlayan bir framework tür. Her farklı framework güçlü

Detaylı

Mobil Uygulamaların Kalite Özelliklerinin Ölçümü

Mobil Uygulamaların Kalite Özelliklerinin Ölçümü Mobil Uygulamaların Kalite Özelliklerinin Ölçümü Nurseda ÖZDEMİR, Bahar GEZİCİ, Kıvanç DİNÇER Hacettepe Üniversitesi, Fen Bilimleri Enstitüsü, Bilgisayar Mühendisliği Anabilim Dalı Beytepe Kampüsü, 06800

Detaylı

Büyük Ölçekli bir Gömülü Yazılımın Geliştirme ve Otomatik Test Deneyimi

Büyük Ölçekli bir Gömülü Yazılımın Geliştirme ve Otomatik Test Deneyimi Büyük Ölçekli bir Gömülü Yazılımın Geliştirme ve Otomatik Test Deneyimi Eda Gürler 1 Murat Yılmaz 2 1, 2 Radar Elektronik Harp ve İstihbarat Sistemleri (REHİS) Grubu, ASELSAN A.Ş. Ankara 1 tverdi@aselsan.com.tr,

Detaylı

YMT 412-Yazılım Kalite Ve Güvencesi Gözden Geçirme Teknikleri 1/44

YMT 412-Yazılım Kalite Ve Güvencesi Gözden Geçirme Teknikleri 1/44 YMT 412-Yazılım Kalite Ve Güvencesi Gözden Geçirme Teknikleri F ı r a t Ü n i v e r s i t e s i Ya z ı l ı m M ü h e n d i s l i ğ i B ö l ü m ü 1/44 İçindekiler 1 7 Gözden Geçirmeler...3 2 3 4 5 6 Yazılım

Detaylı

Arş.Gör.Muhammet Çağrı Gencer Bilgisayar Mühendisliği KTO Karatay Üniversitesi 2015

Arş.Gör.Muhammet Çağrı Gencer Bilgisayar Mühendisliği KTO Karatay Üniversitesi 2015 Arş.Gör.Muhammet Çağrı Gencer Bilgisayar Mühendisliği KTO Karatay Üniversitesi 2015 KONU BAŞLIKLARI 1. Yazılım Mimarisi nedir? 2. Yazılımda Karmaşıklık 3. Üç Katmanlı Mimari nedir? 4. Üç Katmanlı Mimari

Detaylı

4. Bölüm Programlamaya Giriş

4. Bölüm Programlamaya Giriş 4. Bölüm Programlamaya Giriş Algoritma ve Programlamaya Giriş Dr. Serkan DİŞLİTAŞ 4.1. C# ile Program Geliştirme Net Framework, Microsoft firması tarafından açık internet protokolleri ve standartları

Detaylı

Bileşen kalitesi ölçümünde statik kod analizi yaklaşımı

Bileşen kalitesi ölçümünde statik kod analizi yaklaşımı Bileşen kalitesi ölçümünde statik kod analizi yaklaşımı Berkhan Deniz 1, Soner Çınar 1 1 Yazılım Mühendisliği Müdürlüğü, Mühendislik Dir., SST Grup Bşk. ASELSAN A.Ş. {berkhand, scinar}@aselsan.com.tr Özet.

Detaylı

EYLÜL 2012 İŞLETİM SİSTEMLERİ. Enformatik Bölümü

EYLÜL 2012 İŞLETİM SİSTEMLERİ. Enformatik Bölümü EYLÜL 2012 İŞLETİM SİSTEMLERİ İÇERİK 2 2 Yazılım nedir? Yazılım türleri nelerdir? İşletim sistemi nedir? İşletim sisteminin özellikleri İşletim sistemleri Unix Linux Windows Mac OS Android Yazılım Yazılım(Software),

Detaylı

aselsan Açık Pozisyonlar Bilgi Teknolojileri (BT) Denetçisi İç Denetçi

aselsan Açık Pozisyonlar Bilgi Teknolojileri (BT) Denetçisi İç Denetçi Açık Pozisyonlar Bilgi Teknolojileri (BT) Denetçisi aselsan ASELSAN'ın İç Denetim Bölümü'nde görevlendirilmek üzere aşağıdaki niteliklere sahip adaylara ihtiyaç bulunmaktadır. Üniversitelerin Bilgisayar

Detaylı

Bilgisayarda Programlama. Temel Kavramlar

Bilgisayarda Programlama. Temel Kavramlar Bilgisayarda Programlama Temel Kavramlar KAVRAMLAR Programlama, yaşadığımız gerçek dünyadaki problemlere ilişkin çözümlerin bilgisayarın anlayabileceği bir biçime dönüştürülmesi / ifade edilmesidir. Bunu

Detaylı

Pardus. S.Çağlar Onur, caglar@pardus.org.tr. 21 Aralık 2006. Pardus Projesi [TÜBİTAK / UEKAE] Linux Kullanıcıları Derneği

Pardus. S.Çağlar Onur, caglar@pardus.org.tr. 21 Aralık 2006. Pardus Projesi [TÜBİTAK / UEKAE] Linux Kullanıcıları Derneği Yenilikleri Projesi [TÜBİTAK / UEKAE] Linux Kullanıcıları Derneği 21 Aralık 2006 Yenilikleri İçerik 1 Neden? Nasıl? 2 Yenilikleri man 3 Yenilikleri Neden? Nasıl? 1 Neden? Nasıl? 2 Yenilikleri man 3 Yenilikleri

Detaylı

İşletim Sistemleri; İÇERİK. Yazılım BİLGİ TEKNOLOJİLERİ VE UYGULAMALARI 19.10.2015. 3 Yazılım Türleri

İşletim Sistemleri; İÇERİK. Yazılım BİLGİ TEKNOLOJİLERİ VE UYGULAMALARI 19.10.2015. 3 Yazılım Türleri İÇERİK 2 BİLGİ TEKNOLOJİLERİ VE UYGULAMALARI İşletim Sistemleri ÖĞR. GÖR. HASAN ALİ AKYÜREK Yazılım nedir? Yazılım türleri nelerdir? İşletim sistemi nedir? İşletim sisteminin özellikleri İşletim sistemleri

Detaylı

Pardus. A. Murat Eren, 25 Mart Pardus Geliştiricisi. Pardus Yenilikleri Sık Sorulan Sorular

Pardus. A. Murat Eren, 25 Mart Pardus Geliştiricisi. Pardus Yenilikleri Sık Sorulan Sorular Pardus A. Murat Eren, meren@pardus.org.tr Pardus Geliştiricisi 25 Mart 2007 İçerik 1 Neden? Nasıl? 2 3 Neden? Nasıl? 1 Neden? Nasıl? 2 3 Neden? Nasıl? Neden? Ana sözleşme Pardus, UEKAE tarafından, bilişim

Detaylı

Bilişim Sistemleri Değerlendirme Modeli ve Üç Örnek Olay İncelemesi

Bilişim Sistemleri Değerlendirme Modeli ve Üç Örnek Olay İncelemesi Bilişim Sistemleri Değerlendirme Modeli ve Üç Örnek Olay İncelemesi Özet Dr. Sevgi Özkan ve Prof. Dr Semih Bilgen Enformatik Enstitüsü, Orta Doğu Teknik Üniversitesi, Ankara Tel: (312) 210 3796 e-posta:

Detaylı

Bilgisayar Mühendisliği ve Yeni Teknolojiler. İbrahim SARAÇOĞLU

Bilgisayar Mühendisliği ve Yeni Teknolojiler. İbrahim SARAÇOĞLU Bilgisayar Mühendisliği ve Yeni Teknolojiler İbrahim SARAÇOĞLU Son 10 yılın en önemli teknolojileri Akıllı telefonlar Sosyal ağlar Voice over IP LED teknolojisi Bulut Bilişim İnsansız hava araçları Dijital

Detaylı

Bilgisayar Mühendisliği. Bilgisayar Mühendisliğine Giriş 1

Bilgisayar Mühendisliği. Bilgisayar Mühendisliğine Giriş 1 Bilgisayar Mühendisliği Bilgisayar Mühendisliğine Giriş 1 Mühendislik Nedir? Mühendislik, bilim ve matematiğin yararlı cihaz ve sistemlerin üretimine uygulanmasıdır. Örn: Elektrik mühendisleri, elektronik

Detaylı

BİLGİSAYAR PROGRAMLARININ TASARIMLARINDAKİ VE KODLARINDAKİ SORUNLARIN BELİRLENMESİ ALPER FİLİZ MEHMET ALİ SERT

BİLGİSAYAR PROGRAMLARININ TASARIMLARINDAKİ VE KODLARINDAKİ SORUNLARIN BELİRLENMESİ ALPER FİLİZ MEHMET ALİ SERT BİLGİSAYAR PROGRAMLARININ TASARIMLARINDAKİ VE KODLARINDAKİ SORUNLARIN BELİRLENMESİ ALPER FİLİZ 040080202 MEHMET ALİ SERT 040090521 SUNUM İÇERİĞİ Problem Tanımı Tespit Edilen Sorunlar Problemin Sonuçları

Detaylı

BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ

BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ Dersin Adı Kodu Sınıf / Y.Y. Ders Saati (T+U+L) Kredi AKTS YAZILIM MÜHENDİSLİĞİ BG-411 4/1 3+0+0 3+0 5 Dersin Dili : TÜRKÇE Dersin Seviyesi

Detaylı

Programlama Dilleri sıralaması Programlama Dilleri sıralaması 2016

Programlama Dilleri sıralaması Programlama Dilleri sıralaması 2016 Programlama Dilleri sıralaması 2016 Programlama Dilleri sıralaması 2016 Programcı olmak şu aralar popüler oldu, Türkiye de ve Dünya da en çok kazandıran mesleklerden biridir bu nedenle Programlama Dilleri

Detaylı

Herkes bir yerden başlar...

Herkes bir yerden başlar... Herkes bir yerden başlar... Başlıklar 1. Robot Akademide Neler Yapıyoruz. 2. Neden Robotik! 3. Derslerimizi Nasıl Planlıyoruz. 4. Öğrencilerimizin Kazanımları Nelerdir.? 5. Her Öğrencimiz Bizim İçin Değerlidir.

Detaylı

1.1. Yazılım Geliştirme Süreci

1.1. Yazılım Geliştirme Süreci Kazanımlar Bu bolümde; Yazılım geliştirme sureci konusunda bilgi sahibi olacak, Yazılım geliştirme surecinde gerekli olan araçları tanıyacak, Python dilinde program geliştirme ortamlarını inceleyebileceksiniz.

Detaylı

BİLİŞİM TEKNOLOJİLERİ ALANI BİLGİSAYAR PROGRAMLAMA TEKNİKLERİ KURS PROGRAMI

BİLİŞİM TEKNOLOJİLERİ ALANI BİLGİSAYAR PROGRAMLAMA TEKNİKLERİ KURS PROGRAMI T.C. MİLLÎ EĞİTİM BAKANLIĞI Hayat Boyu Öğrenme Genel Müdürlüğü BİLİŞİM TEKNOLOJİLERİ ALANI BİLGİSAYAR PROGRAMLAMA TEKNİKLERİ KURS PROGRAMI Ankara, 2018 İÇİNDEKİLER PROGRAMIN ADI... 2 PROGRAMIN DAYANAĞI...

Detaylı

MAK 1005 Bilgisayar Programlamaya Giriş. BİLGİSAYARA GİRİŞ ve ALGORİTMA KAVRAMI

MAK 1005 Bilgisayar Programlamaya Giriş. BİLGİSAYARA GİRİŞ ve ALGORİTMA KAVRAMI MAK 1005 Bilgisayar Programlamaya Giriş Uludağ Üniversitesi, Mühendislik Fakültesi Makine Mühendisliği Bölümü BİLGİSAYARA GİRİŞ ve ALGORİTMA KAVRAMI Prof. Dr. Necmettin Kaya 1 KONULAR 1. Bilgisayara giriş,

Detaylı

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 1. Bölüm C# Programlamaya Giriş

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 1. Bölüm C# Programlamaya Giriş Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 1. Bölüm C# Programlamaya Giriş C Programlama Dr. Serkan DİŞLİTAŞ 1.1. C# ile Program Geliştirme.Net Framework, Microsoft firması tarafından

Detaylı

28 Aralık 2013. Yıldız Teknik Üniversitesi Bilgisayar Mühendisliği Bölümü

28 Aralık 2013. Yıldız Teknik Üniversitesi Bilgisayar Mühendisliği Bölümü 28 Aralık 13 Yıldız Teknik Üniversitesi Bilgisayar Mühendisliği Bölümü 12-13 Eğitim Yılında (Ocak-Kasım 13 tarihleri arasında) doldurulmuş olan Bölümü Değerlendirme Anket Formları Raporu Öğrencilerin staj

Detaylı

Öğr.Gör. Gökhan TURAN www.gokhanturan.com.tr. Gölhisar Meslek Yüksekokulu

Öğr.Gör. Gökhan TURAN www.gokhanturan.com.tr. Gölhisar Meslek Yüksekokulu Öğr.Gör. Gökhan TURAN www.gokhanturan.com.tr Gölhisar Meslek Yüksekokulu Bilgisayarın Yapısı Donanım (Hardware): Bir bilgisayara genel olarak bakıldığında; Kasa, Ekran, Klavye, Fare, Yazıcı, Hoparlör,

Detaylı

Bilgisayar Mühendisliği

Bilgisayar Mühendisliği Bilgisayar Mühendisliği Bülent Ecevit Üniversitesi Bilgisayar Mühendisliği Bölümü http://bilgisayar.beun.edu.tr İçerik Zonguldak Tanıtımı Üniversite Tanıtımı Mühendis Kimdir? Mühendisin Sorusu Bilgisayar

Detaylı

Tarih Saat Modül Adı Öğretim Üyesi. 01/05/2018 Salı 3 Bilgisayar Bilimlerine Giriş Doç. Dr. Hacer Karacan

Tarih Saat Modül Adı Öğretim Üyesi. 01/05/2018 Salı 3 Bilgisayar Bilimlerine Giriş Doç. Dr. Hacer Karacan BİLGİ TEKNOLOJİLERİ YÖNETİMİ EĞİTİM MODÜLLERİ Tarih Saat Modül Adı Öğretim Üyesi 01/05/2018 Salı Bilgisayar Bilimlerine Giriş Doç. Dr. Hacer Karacan Bu dersin amacı, bilgisayar bilimlerinin temel kavramlarını

Detaylı

PROGRAMLAMA EĞĠTĠMĠ. Scratch ile Programlama, Elektronik Uygulamalar ve Robotik Eğitimi

PROGRAMLAMA EĞĠTĠMĠ. Scratch ile Programlama, Elektronik Uygulamalar ve Robotik Eğitimi PROGRAMLAMA EĞĠTĠMĠ Scratch ile Programlama, Elektronik Uygulamalar ve Bilişim teknolojilerinde yaşanan hızlı değişim ile birlikte bu teknolojiler eğitim ortamlarında daha fazla kullanılmaya başlanmıştır.

Detaylı

BENZERSİZ SORUNLARA BENZERSİZ ÇÖZÜMLER

BENZERSİZ SORUNLARA BENZERSİZ ÇÖZÜMLER BENZERSİZ SORUNLARA BENZERSİZ ÇÖZÜMLER HAKKIMIZDA Promod Ar-Ge Yazılım, dinamik sistem simülasyonu, prototiplemesi, kontrol tasarımı ve gerçeklenmesi alanlarında hizmet veren bir Ar-Ge ve Yazılım kuruluşudur.

Detaylı

DENİZ HARP OKULU BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ

DENİZ HARP OKULU BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ DENİZ HARP OKULU BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ Dersin Adı Kodu Sınıf/Y.Y. Ders Saati (T+U+L) Kredi AKTS Yazılım Mühendisliği BİM-411 4/I 4+0+0 4 4,5 Dersin Dili Dersin

Detaylı

CIK. çocuklar için K O D L AM A

CIK. çocuklar için K O D L AM A CIK çocuklar için K O D L AM A 4ya+ ş Başaran Bilişim Akademisi 17 yıllık tecrübesini BaşaranCIK ile genç nesillere aktarıyor. Türkiye de Özel Bilisim Eğitimleri kategorisinde bir ilk olan Çocuklar İçin

Detaylı

Java Temel Özellikleri

Java Temel Özellikleri Java Temel Özellikleri Java Programlama Dili Java programlama dili şu anda dünyadaki en popüler programlama dillerinden biri haline gelmiştir. Java SUN bilgisayar şirketince elektrikli ev aletlerinin birbiriyle

Detaylı

Turquaz. Açık kodlu muhasebe yazılımı http://www.turquaz.com. Turquaz Proje Grubu

Turquaz. Açık kodlu muhasebe yazılımı http://www.turquaz.com. Turquaz Proje Grubu Turquaz Açık kodlu muhasebe yazılımı http://www.turquaz.com Turquaz Proje Grubu Konu Başlıkları 1. Turquaz Proje Grubu 2. Programın fikri 3. Geliştirme aşaması 4. Programın içeriği 5. Yapılacaklar 6. Dizayn

Detaylı

YAZILIM KAVRAMINA BİR BAKIŞ. Gürcan Banger Elektrik Yük. Müh. ESOGÜ - 9 Nisan 2007

YAZILIM KAVRAMINA BİR BAKIŞ. Gürcan Banger Elektrik Yük. Müh. ESOGÜ - 9 Nisan 2007 YAZILIM KAVRAMINA BİR BAKIŞ Gürcan Banger Elektrik Yük. Müh. ESOGÜ - 9 Nisan 2007 YAZILIM ve DONANIM Bilgisayar kavramı, donanım ve yazılım olmak üzere iki ana bileşenden oluşuyor. Elektronik, mekanik

Detaylı

Gömülü Sistemler, Uygulama Alanları ve Dünya daki Ekonomik Boyutu

Gömülü Sistemler, Uygulama Alanları ve Dünya daki Ekonomik Boyutu İçerik Sakarya Üniversitesi Bilgisayar Mühendisliği Bölümü Yrd.Doç.Dr. Murat İSKEFİYELİ Gömülü Sistemler, Uygulama Alanları ve Dünya daki Ekonomik Boyutu Dr. Ahmet Kaya 2 1 Gömülü Sistem Kavramı Bir ana

Detaylı

Yaz.Müh.Ders Notları #6 1

Yaz.Müh.Ders Notları #6 1 YAZILIM MÜHENDİSLİĞİ Prof.Dr. Oya Kalıpsız BÖLÜM 2. YAZILIM PROJE YÖNETİMİ 1 2.1.0. GENEL BİLGİLER 2.1. YAZILIM PROJE YÖNETİMİ BİLEŞENLERİ Yazılım proje yönetimi; yazılım mühendisliği teknikleri, genel

Detaylı

Bulut Bilişimin Hayatımızdaki Yeri İnternet Haftası Etkinlikleri 17 Nisan 2014. Yard.Doç.Dr.Tuncay Ercan tuncay.ercan@yasar.edu.tr

Bulut Bilişimin Hayatımızdaki Yeri İnternet Haftası Etkinlikleri 17 Nisan 2014. Yard.Doç.Dr.Tuncay Ercan tuncay.ercan@yasar.edu.tr Bulut Bilişimin Hayatımızdaki Yeri İnternet Haftası Etkinlikleri 17 Nisan 2014 Yard.Doç.Dr.Tuncay Ercan tuncay.ercan@yasar.edu.tr SaaS Gündem Kullanım alanları IaaS PaaS Sanallaştırma Hizmet Şekilleri

Detaylı

Öğretim planındaki AKTS Ulusal Kredi

Öğretim planındaki AKTS Ulusal Kredi Ders Kodu Teorik Uygulama Lab. Yazılım Gereksinimleri Mühendisliği Ulusal Kredi Öğretim planındaki AKTS 481052000001303 3 0 0 3 5 Dersin Yürütülmesi Hakkında Bu ders gerçek dünya problemlerinin analiz

Detaylı

BLG4146 - Sistem Analizi ve Tasarımı. Öğr. Grv. Aybike ŞİMŞEK

BLG4146 - Sistem Analizi ve Tasarımı. Öğr. Grv. Aybike ŞİMŞEK BLG4146 - Sistem Analizi ve Tasarımı Öğr. Grv. Aybike ŞİMŞEK Tasarım Evresi Analiz evresinde sorulan NE sorusuyla elde edilen bilgilerin NASIL yapılacağı, NASIL gerçekleştirileceğinin ortaya konulduğu

Detaylı

Nasıl Pardus Geliştiricisi Olunur?

Nasıl Pardus Geliştiricisi Olunur? Nasıl Pardus Geliştiricisi Olunur? Ulusal Elektronik ve Kriptoloji Araştırma Enstitüsü TÜBİTAK Bilgi Üniversitesi, İstanbul 18 Nisan, 2009 Açık Kodlu Yazılım Geliştirme Kaynak Kodun Açık olması Bir Linux

Detaylı

Bilişim Garaj Akademisi Nedir?

Bilişim Garaj Akademisi Nedir? Bilişim Garaj Akademisi Nedir? Bilişim Garaj Akademisi, 7-16 yaş arası çocuklarımıza programlama, web tasarımı, 3D tasarım, robot tasarım ve üretimi gibi üretici bilişim becerileri kazandıran ilk online

Detaylı

BİÇİMSEL YÖNTEMLER (FORMAL METHODS) Betül AKTAŞ Suna AKMELEZ

BİÇİMSEL YÖNTEMLER (FORMAL METHODS) Betül AKTAŞ Suna AKMELEZ BİÇİMSEL YÖNTEMLER (FORMAL METHODS) Betül AKTAŞ 14011021 Suna AKMELEZ 14011050 Biçimsel Yöntemler Nedir? Nerede Kullanılır? Biçimsel Tasarım Biçimsel Yöntemlerin Yararları Biçimsel Yöntemlerin Zayıf Yönleri

Detaylı

1: Anlatım, 2: Soru-Cevap, 3: Lab, 4: Örnek vaka incelemesi

1: Anlatım, 2: Soru-Cevap, 3: Lab, 4: Örnek vaka incelemesi DERS BİLGİLERİ DERSİN BAŞLIĞI Kodu Yarıyıl T+U saat Kredi AKTS YAZILIM MÜHENDİSLİĞİNDE İLERİ KONULAR CSE544 3 3 10 Ön koşullar CSE 344 Introduction to Software Engineering Dersin Dili Dersin Seviyesi Dersin

Detaylı

SİSTEM ANALİZİ VE TASARIMI

SİSTEM ANALİZİ VE TASARIMI SİSTEM ANALİZİ VE TASARIMI BİLGİ SİSTEMİ GELİŞTİRME SÜRECİ Sistem Geliştirme Süreci ve Modelleri Sistem Geliştirme Yaşam Döngüsü Bilgi sistemlerinin geliştirilmesi için izlenen sürece Sistem Geliştirme

Detaylı

Yazılım Tasarımı Kalitesi. L 12 Nesneye. Tasarım Kalitesi Nitelikleri

Yazılım Tasarımı Kalitesi. L 12 Nesneye. Tasarım Kalitesi Nitelikleri 1 Nesneye Kalite Modelleri ISO/IEC'nin yazılım kalitesi modelleri belli bir yazılım tasarım yöntemine bağlı olmadan yazılımların kalitelerini ele alırlar. Bu tür genel yazılım kalitesi modellerinin yanı

Detaylı

Neden Kodlama Eğitimi?

Neden Kodlama Eğitimi? Kodlama Eğitimi Neden Kodlama Eğitimi? Gençler ileride hangi mesleği seçerlerse seçsinler, artık onlardan teknolojiye hakim olmaları bekleniyor. Günümüzün dijital dünyasında kodlama; matematik ve okuma-yazma

Detaylı

YAZILIM MÜHENDİSLİĞİ Şubat 2012 Yrd.Doç.Dr. Yunus Emre SELÇUK GENEL BİLGİLER

YAZILIM MÜHENDİSLİĞİ Şubat 2012 Yrd.Doç.Dr. Yunus Emre SELÇUK GENEL BİLGİLER YAZILIM MÜHENDİSLİĞİ Şubat 2012 Yrd.Doç.Dr. Yunus Emre SELÇUK GENEL BİLGİLER BAŞARIM DEĞERLENDİRME Sınav tarihleri: Daha sonra duyurulacak 1. Ara sınav yazılı, 2. Ara sınav: test, Final sınavı: yazılı

Detaylı

DEMİRYOLU SİNYALİZASYONUNDA YERLİ ADIMLAR

DEMİRYOLU SİNYALİZASYONUNDA YERLİ ADIMLAR DEMİRYOLU SİNYALİZASYONUNDA YERLİ ADIMLAR Murat GÜNCAN TÜBİTAK BİLGEM Bilişim Teknolojileri Enstitüsü Raylı Ulaşım Sistemleri Bölüm Sorumlusu 14.06.2013, Eskişehir TCDD 2023 Hedefi * Hedef 2023 Broşürü

Detaylı

Özgür Yazılım Eğitim Yönetim Sistemleri

Özgür Yazılım Eğitim Yönetim Sistemleri Özgür Yazılım Eğitim Yönetim Sistemleri Özgür Yazılım A.Ş. merve.yalcin@ozguryazilim.com.tr, adil.akbas@ozguryazilim.com.tr Özet: Bilgi ve iletişim teknolojilerindeki gelişmelerle birlikte öğrenme ortamlarının

Detaylı

Yazılım Nedir? 2. Yazılımın Tarihçesi 3. Yazılım Grupları 4 Sistem Yazılımları 4 Kullanıcı Yazılımları 5. Yazılımın Önemi 6

Yazılım Nedir? 2. Yazılımın Tarihçesi 3. Yazılım Grupları 4 Sistem Yazılımları 4 Kullanıcı Yazılımları 5. Yazılımın Önemi 6 ix Yazılım Nedir? 2 Yazılımın Tarihçesi 3 Yazılım Grupları 4 Sistem Yazılımları 4 Kullanıcı Yazılımları 5 Yazılımın Önemi 6 Yazılımcı (Programcı) Kimdir? 8 Yazılımcı Olmak 9 Adım Adım Yazılımcılık 9 Uzman

Detaylı

Google Web Toolkit ile Öğretim Elemanı Otomasyon Sistemi

Google Web Toolkit ile Öğretim Elemanı Otomasyon Sistemi Google Web Toolkit ile Öğretim Elemanı Otomasyon Sistemi Mehmet Karakoç Akdeniz Üniversitesi Bilgisayar Bilimleri Araştırma ve Uygulama Merkezi 28.11.2014 inet-tr'14 : GWT AUFaculty Project 1 İçerik Giriş

Detaylı

Akıllı telefonlar, avuçiçi bilgisayarlar ile taşınabilir (cep) telefonların özelliklerini birleştiren cihazlardır. Akıllı telefonlar kullanıcıların

Akıllı telefonlar, avuçiçi bilgisayarlar ile taşınabilir (cep) telefonların özelliklerini birleştiren cihazlardır. Akıllı telefonlar kullanıcıların Akıllı telefonlar, avuçiçi bilgisayarlar ile taşınabilir (cep) telefonların özelliklerini birleştiren cihazlardır. Akıllı telefonlar kullanıcıların bilgilerini saklamalarına, program yüklemelerine izin

Detaylı

Android e Giriş. Öğr.Gör. Utku SOBUTAY

Android e Giriş. Öğr.Gör. Utku SOBUTAY Android e Giriş Öğr.Gör. Utku SOBUTAY Android İşletim Sistemi Hakkında 2 Google tarafından geliştirilmiştir. Dünyada en çok kullanılan mobil işletim sistemidir. 2018 itibariyle Dünyada Android; %78.65,

Detaylı

Yazılım Mühendisliği Bölüm - 3 Planlama

Yazılım Mühendisliği Bölüm - 3 Planlama 1 Yazılım Mühendisliği Bölüm - 3 Planlama 2 3 4 Planlama 5 Yazılım geliştirme sürecinin ilk aşaması Başarılı bir proje geliştirebilmek için projenin tüm resminin çıkarılması işlemi Proje planlama aşamasında

Detaylı

INTEL TABANLI ÇÖZÜMLERLE BİLİMSEL EĞİTİME GÜÇ KATMA FIRSATI

INTEL TABANLI ÇÖZÜMLERLE BİLİMSEL EĞİTİME GÜÇ KATMA FIRSATI INTEL TABANLI ÇÖZÜMLERLE BİLİMSEL EĞİTİME GÜÇ KATMA FIRSATI Amatör Geliştiriciler 2 AMATÖR GELİŞTİRİCİ AKIMI NEDİR? Amatör geliştirici akımı; giderek artan sayıda sanatçı, bilim adamı, zanaatkar, amatör,

Detaylı

Sağlık Bilgi Teknolojileri ve Yazılım Süreç Yönetimi

Sağlık Bilgi Teknolojileri ve Yazılım Süreç Yönetimi Sağlık Bilgi Teknolojileri ve Yazılım Süreç Yönetimi Bilgisayar Mühendisliği Bölümü Yazılım Mühendisliği Araştırma Grubu (HUSE) Yrd. Doç. Dr. Ayça Tarhan atarhan@hacettepe.edu.tr 1. Uluslararası Sağlıkta

Detaylı

İŞLETİM SİSTEMLERİ. Enformatik Bölümü

İŞLETİM SİSTEMLERİ. Enformatik Bölümü 2015 İŞLETİM SİSTEMLERİ İÇERİK 2 2 Yazılım nedir? Yazılım türleri nelerdir? İşletim sistemi nedir? İşletim sisteminin özellikleri İşletim sistemleri Unix Linux Windows Mac OS Android Yazılım Yazılım(Software),

Detaylı

1.Yazılım Geliştirme Metotları 1

1.Yazılım Geliştirme Metotları 1 1.Yazılım Geliştirme Metotları 1 1.1 Klasik Çevrim(Waterfall) 1.2 V Modeli 1.3 Prototipleme/Örnekleme 1.4 Spiral Model 1.5 Evrimsel Geliştirme 1.6 Evrimsel Prototipleme 1.7 Artımlı Geliştirme 1.8 Araştırmaya

Detaylı

EGE Üniversitesi Mühendislik Fakültesi Bilgisayar Müh. Bölümü 2013-2014 Öğretim Yılı Lisans Tezi Önerileri

EGE Üniversitesi Mühendislik Fakültesi Bilgisayar Müh. Bölümü 2013-2014 Öğretim Yılı Lisans Tezi Önerileri EGE Üniversitesi Mühendislik Fakültesi Bilgisayar Müh. Bölümü 2013-2014 Öğretim Yılı Lisans Tezi Önerileri Danışman Öğretim Üyesi: Kasım Sinan YILDIRIM 1) Tez Başlığı: Kablosuz Algılayıcı Ağlarında Hareketli

Detaylı

Enerji dağıtım sistemlerini boyutlandırmanın akıllı yolu, üstelik TÜRKÇE olarak! Kolay, hızlı ve güvenli www.siemens.com/sdbasic

Enerji dağıtım sistemlerini boyutlandırmanın akıllı yolu, üstelik TÜRKÇE olarak! Kolay, hızlı ve güvenli www.siemens.com/sdbasic Enerji dağıtım sistemlerini boyutlandırmanın akıllı yolu, üstelik TÜRKÇE olarak! Kolay, hızlı ve güvenli simaris design basic www.siemens.com/sdbasic SIMARIS design basic ile amacınıza odaklanın Binalarda

Detaylı

Bilkent Üniversitesi Bilgisayar Mühendisliği Bölümü. Bilgisayar Mühendisliği

Bilkent Üniversitesi Bilgisayar Mühendisliği Bölümü. Bilgisayar Mühendisliği Bilkent Üniversitesi Bilgisayar Mühendisliği Bölümü Bilgisayar Mühendisliği Bilgisayar Mühendisliği Günümüzde, finans, tıp, sanat, güvenlik, enerji gibi bir çok sektör, bilgisayar mühendisliğindeki gelişimlerden

Detaylı

(Computer Integrated Manufacturing)

(Computer Integrated Manufacturing) 1 (Computer Integrated Manufacturing) 2 1 Bilgisayarlı Sayısal Kontrol; ekipman mekanizmaların hareketlerinin doğru ve hassas biçimde gerçekleştirilmesinde bilgisayarların kullanılması, programlama ile

Detaylı

ÖZGÜR YAZILIMLAR İLE J2EE

ÖZGÜR YAZILIMLAR İLE J2EE ÖZGÜR YAZILIMLAR İLE J2EE Buğra Çakır bugra@ibrahimcakir.com Seminer İçeriği 1. İki ve üç katmanlı yazılım mimarileri 2. Java ve J2EE platformu 3. Özgür yazılımlar ile J2EE 4. Eclipse, Lomboz ve JBoss

Detaylı

FAN SELECTOR FAN SELECTOR FAN SEÇİM YAZILIMI.

FAN SELECTOR FAN SELECTOR FAN SEÇİM YAZILIMI. FAN SELECTOR FAN SEÇİM YAZILIMI YAZILIM TANIMI Fan Selector yazılımı havalandırma ve iklimlendirme sistemlerinde kullanılan fanların performans hesaplamalarının yapılması ve çalışma şartlarına en uygun

Detaylı

Model Güdümlü Geliştirme ile Gömülü Kaynakların Yönetimi

Model Güdümlü Geliştirme ile Gömülü Kaynakların Yönetimi Model Güdümlü Geliştirme ile Gömülü Kaynakların Yönetimi Can Öz EGE ÜNİVERSİTESİ FEN BİLİMLERİ ENSTİTÜSÜ BİLGİSAYAR MÜHENDİSLİĞİ A.B.D. 1 İçerik Kaynak Yönetimi Problemi Kaynak Yönetimi Modellemesinin

Detaylı

SiSTEM ANALiZi ve TASARIMI

SiSTEM ANALiZi ve TASARIMI SiSTEM ANALiZi ve TASARIMI BIL3403 Öğ. Gör. ASLI BiROL abirol@kavram.edu.tr 01.10.2012 Dersin Amacı Bu ders ile öğrenci; edindiği mesleki bilgi birikimini kullanarak sektörde uygulanabilir bir projeyi

Detaylı

BMH-405 YAZILIM MÜHENDİSLİĞİ

BMH-405 YAZILIM MÜHENDİSLİĞİ BMH-405 YAZILIM MÜHENDİSLİĞİ Dr. Musa ATAŞ Siirt Üniversitesi Bilgisayar Mühendisliği musa.ataş@siirt.edu.tr Ref list: Dr. Yunus Emre SELÇUK, Dr. Sadık EŞMELİOĞLU, Dr. Erhan SARIDOĞAN Yazılım Tanımı Herhangi

Detaylı

BİL 542 Paralel Hesaplama. Dersi Projesi. MPJ Express Java Paralel Programlama

BİL 542 Paralel Hesaplama. Dersi Projesi. MPJ Express Java Paralel Programlama BİL 542 Paralel Hesaplama Dersi Projesi MPJ Express Java Paralel Programlama Recep Ali YILMAZ 131419106 Fen Bilimleri Enstitüsü Bilgisayar Mühendisliği Bölümü Bilgisayar Mühendisliği Yüksek Lisans Programı

Detaylı

FIRAT ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ Yazılım Mühendisliği Bölümü

FIRAT ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ Yazılım Mühendisliği Bölümü FIRAT ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ Yazılım Mühendisliği Bölümü YMH114 - Yazılım Mühendisliğinin Temelleri Dersi Proje Uygulaması ve Dokümantasyonu AKILLI ŞEHİR UYGULAMALARININ İNCELENMESİ VE ÖRNEK

Detaylı

ANET Bilgi Güvenliği Yönetimi ve ISO 27001. Ertuğrul AKBAS [ANET YAZILIM] 09.04.2011

ANET Bilgi Güvenliği Yönetimi ve ISO 27001. Ertuğrul AKBAS [ANET YAZILIM] 09.04.2011 ANET Bilgi Güvenliği Yönetimi ve ISO 27001 2011 Ertuğrul AKBAS [ANET YAZILIM] 09.04.2011 ISO 27001 AŞAMA 1 BGYS Organizasyonu BGYS kapsamının belirlenmesi Bilgi güvenliği politikasının oluşturulması BGYS

Detaylı

Yazılım Mimari Tasarımından Yazılım Geliştirme Çatısının Üretilmesinde Model Güdümlü Bir Yaklaşım

Yazılım Mimari Tasarımından Yazılım Geliştirme Çatısının Üretilmesinde Model Güdümlü Bir Yaklaşım Yazılım Mimari Tasarımından Yazılım Geliştirme Çatısının Üretilmesinde Model Güdümlü Bir Yaklaşım İbrahim Onuralp Yiğit 1, Nafiye Kübra Turhan 2, Ahmet Erdinç Yılmaz 3, Bülent Durak 4 1,2,3,4 ASELSAN A.Ş.

Detaylı

ALGORİTMA TASARIMI VE SCRATCH UYGULAMASI

ALGORİTMA TASARIMI VE SCRATCH UYGULAMASI NOT: Çalışma kâğıtları Algoritma Tasarımı ve Excel olmak üzere 2 kısımdan oluşmakta ve sınavda her ikisinin de çalışılması gerekmektedir. ALGORİTMA TASARIMI VE SCRATCH UYGULAMASI Bu çalışma sayfalarında

Detaylı