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

Download ""

Transkript

1 İlgiye Odaklı Programlamanın Gerçek Zamanlı Gömülü Sistemler Üzerinde Bir Değerlendirmesi Yusuf Bora Kartal 1 Ece G. Schmidt 2 1 Aselsan A.Ş., Ankara 2 Elektrik ve Elektronik Mühendisliği Bölümü, Ortadoğu Teknik Üniversitesi, Ankara 1 e-posta: bkartal@aselsan.com.tr Özetçe Yazılım sistemlerinin çoğu birçok birim (module) üzerine dağıtılmış ilgilerden (concern) oluşur. Yazılımdaki karmaşıklığı azaltmak, tekrar kullanılabilirliği artırmak ve anlaşılabilirliği yükseltmek amacıyla dikkate alınan en önemli prensiplerden biri ilgilerin ayrımı (Separation of Concerns- SOC) prensibidir. Nesneye yönelik programlama (Object Oriented Programming-OOP) günümüzde SOC prensibine uygunluğu açısından baskın kullanım oranına sahip bir programlama tekniğidir. Bu tekniği kullanarak sistemin çalışmasını etkileyen birçok ışlevsel ilgiyi (functional concern) ayırmak mümkündür. Fakat enine-kesen ilgiler (crosscutting concerns) olarak adlandırılan ve gerçeklenmesi birçok farklı yazılım birimi üzerine dağılmış olan ilgileri OOP teknikleri ile ayırmak mümkün olmamaktadır. İlgiye odaklı programlama (Aspect Oriented Programming-AOP) enine kesen ilgileri ayrı modüller üzerinde gerçekleyerek yazılımda SOC prensibinin uygulamasındaki eksiklikleri gidermeyi amaçlayan bir programlama tekniğidir. Bu bildiride AOP nin gerçek zamanlı gömülü sistemler üzerinde yapılan bir değerlendirmesi ve bu değerlendirmede alınan sonuçlar sunulmaktadır. Gerçeklenen deneysel projede sistemde bulunan enine-kesen ilgiler hem OOP hem de AOP teknikleri kullanılarak gerçeklenmiş ve iki farklı gerçekleme hem yazılım kalitesi hem de sistem performansı açısından karşılaştırılmıştır. Değerlendirme sonuçları ışığında AOP nin hem yazılım kalitesini ve hem de sistem performansını artırdığı gözlemlenmiştir. 1. Giriş Programlama alanındaki gelişmeler yazılımların modülerliklerinin artırılması yönünde katkılar ortaya koymaktadır. Yazılımdaki birimsellik (modularity); anlaşılabilirlik (understandability), yeniden kullanılabilirlik (reusability), bakım kolaylığı (maintainability) ve test edilebilirlik (testability) gibi yazılım kalite özniteliklerinde (software quality attributes) iyileşmeyi sağlamaktadır. Günümüzde yaygın kullanılan programlama tekniği olan nesneye yönelik programlama (Object Oriented Programming-OOP), birimsel yazılım geliştirme yollarından bir tanesidir. OOP gerçek hayatta karşılaşılan nesneleri yazılım nesnelerine adreslemektedir. Sistemin çalışmasını etkileyen işlevsel ilgiler göz önüne alındığında OOP yazılımın birimselliği açısından oldukça başarılı bir tekniktir. Fakat gerçeklemesi, doğası gereği birden fazla birim üzerine dağılmış loglama, hata yönetimi, eş zamanlama (synchronization) gibi işlevsel olmayan ilgilerin OOP teknikleri kullanılarak birimsel gerçeklemelerinin yapılamadığı ve enine-kesen ilgiler (crosscutting concerns) oldukları görülmüştür. Bu ilgiler OOP teknikleri kullanılarak 2 e-posta: eguran@metu.edu.tr gerçeklendiğinde kod dolaşıklığına (code tangling) ve birden fazla birim üzerine saçılmaya (code scattering) yol açmaktadır [1, 2]. Koddaki dolaşıklık birden fazla ilginin bir yazılım birimi içersinde anlaşılabilirliği azaltacak yönde iç içe geçmesi anlamına gelmektedir. Koddaki saçılma ise bir ilginin birden fazla yazılım birimi üzerine dağılması anlamını taşımaktadır. Koddaki dolaşıklık ve saçılmalar yazılımın birimselliğini azaltıcı yönde etki yapmakta ve yazılım kalitesini düşürmektedir. İlgiye odaklı programlama (Aspect Oriented Programming- AOP) var olan OOP teknikleri üzerine geliştirilmiş, koddaki dolaşıklık ve saçılmayı engelleyerek yazılımda birimsellik sağlamayı amaçlayan bir programlama tekniğidir. AOP ve uygulamadaki yararlarını konu alan çalışmaların çoğu gerçek zamanlı olmayan masaüstü programlama (desktop computing) sistemleri üzerinde yapılmıştır [1, 2, 3]. Bu çalışmalarda AOP nin katkılarını sadece yazılım kalite öznitelikleri üzerinden değerlendirmiştir. AOP nin gerçekzamanlı (real-time) gömülü (embedded) sistemler üzerinde değerlendirilmesi alanında özellikle gerçek-zamanlı gömülü sistemler için önemli olan bellek kullanımı (memory usage), çalışma zamanı (run-time) ve işlemci kullanımı (CPU usage) gibi sisteme bağlı performans metrikleri gözetilerek yapılan bir çalışma henüz kaydedilmemiştir. Sunduğumuz bu çalışma ile bu açık kapatılmaya çalışılmıştır. Gerçek zamanlı gömülü sistemler masaüstü sistemlerden çalışma ortamları ve sistem gerekleri yönünden ayrılmaktadır. Bu sistemlerin geliştirme sürecini etkileyen özel sistem gereksinimleri ve kaynak kısıtları bulunmaktadır. Bu sistemler için geliştirilen yazılımların, sistemin doğası gereği tahmin edilebilir sonuçlar verip, sistem gereklerini mümkün olan en kısıtlı kaynakları kullanarak yerine getirmeleri beklenir [4]. Bu nedenlerden ötürü yazılım kalitesinin yanı sıra, bellek kullanımı, işlemci kullanımı ve çalışma süresi gibi sistem performansını doğrudan etkileyen özellikler de yazılımın değerlendirmesinde ön plana çıkmaktadır [5]. Önceki çalışmalar [1, 2, 3, 6] AOP nin masaüstü sistemler üzerinde sağladığı iyileştirmeleri yazılım kalitesi perspektifinden ortaya koymaktadır. Fakat bu çalışmalar AOP nin gerçek zamanlı gömülü sistemler üzerindeki etkilerini, özellikle sisteme bağlı performans gerekleri açısından ortaya koymaya yetecek bir veri sağlamamaktadır. [19] da AOP nin gerçek-zamanlı gömülü bir sistem üzerinde yazılım kalitesi ve sistem performans metrikleri gözetilerek bir değerlendirmesi yapılmıştır. Bu bildiride [19] da yapılan incelemenin özellikle sistem performans metrikleri açısından genişletilmiş bir değerlendirmesi sunulmaktadır. Değerlendirme test amaçlı geliştirilmiş olan Sayısal Ses Matrisi çalışması üzerinde yapılmıştır. Projede işlevsel

2 olmayan enine kesen ilgiler hem OOP hem de AOP teknikleri kullanılarak gerçeklenmiş ve değerlendirme bu iki farklı gerçekleme üzerinden yapılmıştır. Projenin modellemesinde UML kullanılmıştır. Projenin işlevsel ilgileri her iki uyarlamada da C++ kullanılarak gerçeklenmiştir. Karşılaştırma için, projedeki enine kesen ilgiler OOP uyarlamasında C++ kullanılarak, AOP uyarlamasında ise AspectC++ kullanılarak gerçekleştirilmiştir. AspectC++ nesneye yönelik C++ programlama diline dayanan ilgiye odaklı bir programlama dilidir [7]. Değerlendirme yazılım kalite öznitelikleri (anlaşılabilirlik, tekrar kullanılabilirlik, bakım kolaylığı ve test edilebilirlik) ve sistem performans metrikleri (bellek kullanımı, işlemci kullanımı ve çalışma süresi) dikkate alınarak yapılmıştır. Bildirinin geri kalanı şu şekilde düzenlenmiştir: İkinci bölümde ilgiye odaklı programlama ve gerçek-zamanlı gömülü sistemlerle ilgili ön bilgi verilmektedir. Üçüncü bölümde gerçeklenen sayısal ses matrisi projesi işlevi ve çalışma ortamı ile birlikte anlatılmaktadır. Dördüncü bölümde ise yapılan karşılaştırmada elde edilen sonuçlara yer verilmektedir. Beşinci bölümde ise yapılan çalışmalar özetlenerek çalışmanın ulaştığı sonuç verilmektedir. 2. Gerçek-Zamanlı Gömülü Sistemler ve AOP Bu bölümde gerçek-zamanlı gömülü sistemlerle ilgili ön bilgi verilmekte ve ilgiye odaklı programlama ilgiye odaklı programlama dili olan AspectC++ üzerinden anlatılmaktadır Gerçek-Zamanlı Gömülü Sistemler Sisteme verilen bir girdi sonucunda oluşan çıktının oluşma zamanının çıktının kendisi kadar önemli olduğu sistemlere gerçek zamanlı sistemler adı verilmektedir [4]. Gerçek zamanlı sistemlerde her bir girdi gerçek hayatta bir olaya eşlenmektedir. Bu nedenle sistemin oluşturduğu çıktının fiziksel ortamda yaratılan tepki ile hem doğruluk hem de oluşum zamanı açısından tutarlı olması gerekmektedir. Gecikmiş bir çıktı gerçek-zamanlı sistemlerde hatalı bir çıktı anlamına gelmektedir. Gömülü sistemler belirli bir görevi gerçekleştirmek için bilgisayar kontrolü sağlayan sistemlerdir. Gömülü sistemlerin kullanıcı ile etkileşimi masaüstü sistemlere nazaran çok sınırlıdır. Bu sistemler masaüstü sistemlere göre çalıştıkları ortama ve yaptıkları işe bağımlı sistemlerdir. Genellikle tek bir işi yapmak için tasarlanmışlardır. Gömülü sistemler standart işletim servisleri sunmamakta ve genellikle büyük bir sistemin bir parçasını oluşturmaktadırlar [4]. Gerçek-zamanlı gömülü sistemlerde sistem tepkileri tahmin edilebilir zamanlarda oluşmalı ve sistem görevlerini mümkün olana en kısıtlı imkânlarla yerine getirebilmelidir [4]. Özellikle bellek ve işlemci kullanımı ile çalışma süresi gerçek-zamanlı gömülü sistemlerin oluşturulmasına yön veren kısıtlardır [8, 9]. Bu kısıtların yanı sıra, gömülü sistemlere yüklenen sorumluluğun artması ile birlikte karmaşıklaşan yazılımlar için yazılım kalitesi de önem kazanmaktadır İlgiye Odaklı Programlama (AOP) İlgiye odaklı programlama enine-kesen ilgilerin birimsel gerçeklemesine imkân veren bir programlama tekniğidir [10]. AOP de enine kesen ilgileri modülerleştirmek amacıyla oluşturulan dil yapılarına aspect adı verilmektedir. Aspect ler programın tekrarlayan özelliklerini tanımlayan kod yapılarıdır [11]. AOP nin temel amacı tek bir yazılım birimi içersinde gerçeklenemeyen enine kesen ilgilerin birimselleştirilmesidir. AOP uygulamaları çekirdek (core) ve aspect olmak üzere iki bileşenden oluşmaktadır [6]. Çekirdek bileşeni standart OOP teknikleri ile gerçeklenmiş ve sistemin ana işlevini tanımlayan bölümdür. Aspect bileşeni ise AOP teknikleri ile gerçeklenmiş ve sistemdeki enine kesen ilgilerin gerçeklendiği bülümdür. Ayrı ayrı gerçeklenmiş olan çekirdek ve aspect bileşenleri aspect örücü (aspect weaver) adı verilen bir kod örücüsü yardımıyla birleştirilip projenin tamamı elde edilir. Aspect örücünün işlevi çekirdek bileşeni içersinde ilgili aspect lerin iliştirilmesidir. AspectC++, nesneye yönelik bir programlama dili olan C++ ın ilgiye odaklı uzantısıdır [10]. AspectC++ programcıya, projenin çekirdek bileşeninin herhangi bir kısmına dışarıdan kod ekleme olanağı sunmaktadır. Bu sayede enine kesen ilgilerin enine kesme davranışları (crosscutting behavior) programcı yönünden bakıldığında ortadan kaldırılmış olmaktadır. AspectC++ enine kesen ilgilerin aspect bileşeni içersinde tanımlanabilmesi için öneri (advice) ve pointcut adı verilen iki dil öğesi ortaya koymaktadır. Öneriler programcının çekirdek bileşeni içersinde herhangi bir yerde yapılmasını istediği işleri belirttiği dil yapılarıdır. Pointcut lar ise programcının, yazdığı öneri kodlarının çalışacağı yerleri işaret eden dil yapılarıdır. Program içersinde öneri kodlarının çalışacağı yerlere eklenti noktası (joinpoint) adı verilmektedir. Programcı bu eklenti noktalarını pointcut ların içinde ya da doğrudan öneri kodunu yazarken tanımlayabilir. Eklenti noktaları tanımlanırken aspect örücünün anlayacağı özel anahtar kelimeler ve karakterler kullanılmaktadır. Bu özel karakter ve kelime grupları kullanarak hazırlanan eşlemelere eşleme ifadesi (match expression) adı verilir. Programcı sözü edilen dil özelliklerini kullanarak çekirdek bileşeninde gerçeklemediği enine kesen ilgileri aspect bileşeni içersinde birimsel olarak gerçekleme imkânına sahip olmaktadır. Aspect bileşeni içersinde tanımlanan enine kesen ilgilerin çekirdek bileşeni içindek iyerlerine yerleştirilmesi işi ise aspect örücü aracılığıyla otomatik olarak yapılmaktadır. Bu sayede enine kesen ilgilerin, programcı açısından birimselliği sağlanmış olmaktadır. Şekil 1 de sözü edilen AspectC++ dil bileşenleri bir örnek ile anlatılmaktadır. Şekil 1. Aspect Örneği

3 Şekil 1 deki AllOperations adlı pointcut içinde tanımlanan, eşleme ifadesi çekirdek bileşeni içersindeki girdi olarak herhangi bir sayıda ve tipte değişken alan ve herhangi bir tipte sonuç döndüren bütün yöntemleri işaret etmektedir. Kodlanan öneri aracılığıyla da AllOperations pointcut ı ile belirtilen yerlerde yapılması istenen işlev belirtilmiştir. Yukarıda verilen aspect kodu sayesinde çekirdek bileşeni içersinde bulunan bütün yöntemlerden sonra yöntemin adı standart çıktı ekranına yazdırılmaktadır. 3. Test Çalışması AOP nin gerçek-zamanlı gömülü sistemler üzerinde enine kesen ilgilerin gerçeklenmesinde OOP ile karşılaştırılabilmesi için Sayısal Ses Matrisi projesinin iki farklı uyarlaması gerçeklenmiştir. OOP teknikleri kullanılarak gerçeklenen uyarlamada hem işlevsel ilgiler hem de enine kesen ilgiler C++ kullanılarak gerçeklenmiştir. Diğer uyarlamada ise, sistemin işlevsel özelliklerini tanımlayan çekirdek bileşeni OOP teknikleri kullanılarak C++ ile aspect bileşeni ise AOP teknikleri kullanılarak AspectC++ ile gerçeklenmiştir. Bu sayede AOP nin gerçek-zamanlı gömülü sistemlerdeki işlevsel olmayan enine-kesen ilgilerin gerçeklenmesinde sağladığı katkıların değerlendirilmesi amaçlanmıştır. Bu bölümde Sayısal Ses Matrisi projesinin işlevsel ve işlevsel olmayan ilgileri anlatılmakta ve proje işlevsel açıdan incelenmektedir Sayısal Ses Matrisi Sayısal Ses Matrisi projesi kırk giriş on altı tane de çıkışı bulunan ve Aselsan A.Ş. [16] de tamamlanmış bir ses anahtarı gerçeklemesidir. Girişlerden her biri çıkışlardan her birine anahtarlanabilmektedir. Sistem bir grafiksel kullanıcı ara yüzü aracılığıyla kontrol edilebilmektedir. Kullanıcı bu ara yüz aracılığıyla giriş ve çıkış kanalları arasındaki anahtarlamayı kontrol edebilmekte, giriş kanallarından herhangi birinden gelen sinyal üzerinde çeşitli değişikler yapabilmektedir. Birden fazla giriş kanalından gelen sesi bir veya birden fazla çıkış kanalından dinlemek mümkündür. Sistem yazılımı Motorola MVME 5100 [17] hedef kartı üzerinde koşmaktadır. İşletim sistemi olarak gerçek-zamanlı gömülü bir işletim sistemi olan VxWorks [18] kullanılmaktadır İşlevsel İlgiler: Sayısal Ses Matrisi projesi toplam 24 sınıf ve 325 metottan oluşan gömülü bir yazılım projesidir. Sistemin işlevsel ilgilerinin çalışması Şekil 2 de özetlenmektedir. Sistemin çalışması üç ana adım olarak anlatılabilir. İlk adım ses matrisinin giriş kanallarını oluşturan örnekselden sayısala dönüştürücü (Analog to Digital Converter) kartın çıkışlarından periyodik aralıklarla örneklenen ses verisinin toplanması işidir. İkinci adımda toplanan örneklerin kullanıcı istekleri doğrultusunda işlenmesi ve anahtarlama yollarının oluşturulması işi gerçekleştirilir. Son adımda ise işlenen verinin ses oluşturmak üzere belirlenen veri yolları üzerinden sayısaldan örneksele dönüştürücü (Digital to Analog Converter) kartın giriş kanallarına yollanması işi gerçekleştirilir. Sayısal Ses Anahtarı nın yerine getirdiği ilk gereksinim giriş kanallarında periyodik olarak örneklenen ses verisini toplamaktır. A/D Çevirici bloğu olarak adlandırılan bu blokta giriş kanallarında bulunan analogdan sayısala dönüştürücü kartın örnekleme hızı 8000 örnek/saniye olduğu için her 125 mikro saniyede bir 40 giriş kanalının her birinde yeni örnekler oluşmaktadır. Her yeni örnek bir önceki örneğin üzerine yazılmaktadır. Bu nedenle 125 mikro saniye içinde 40 kanalda oluşan örneğin toplanıp işlenmesi için ikinci adıma iletilmesi gerekmektedir. Bu sürenin aşılması veri kaybına yol açacağından 125 mikro saniye kesin bir gerçek zaman gereğidir (hard real-time requirement). Sistemin ikinci ve en önemli işlevi ise girişte toplanan örneklerin kullanıcı ihtiyaçlarına göre işlenmesi ve belirlenen veri yolları üzerinden çıkış kanallarına aktarılacak şekilde hazırlanmasıdır. Bu işlev İşlemci Bloğu olarak adlandırılan kısımda gerçekleştirilir. Sistemde her giriş kanalı için ayrılmış arabellek alanları (buffer memory) bulunmaktadır. Arabellek alanlarındaki taşmayı ve veri kaybını önlemek için bu işlev sistem saatine bağlanarak her 100 milisaniyede bir yapılmaktadır. 100 milisaniyelik zaman dilimindeki küçük aşmalar (25 milisaniyeye kadar) insan kulağının hassasiyeti düşünüldüğünde tolere edilebilir olmaktadır. Ancak sözü edilen gecikme arabellek alanlarında taşmaya yol açacak boyuta geldiğinde (125 milisaniyeden büyük gecikmeler) veri kaybına yol açmaktadır. Bu nedenle 100 milisaniyelik zaman sınırı bir öncekine göre daha esnek bir gerçek-zaman gereğidir (soft real-time requirement). Sistem çalışmasındaki en son adım, işlenmiş ve çalınması için ilgili bellek alanlarına yazılmış olan ses verilerinin çıkış kanallarında bulunan sayısaldan örneksele dönüştürücü kartın bellek alanına yazılması işidir ve D/A Çevirici Bloğunda gerçekleştirilir. Bu kart her 125 mikro saniyede yeni sayısal örnekleri örneksel olarak çalmaktadır. 125 mikro saniyelik zaman sınırındaki bir aşma, çıkış verisinin bozulmasına sebep olmaktadır. Veri bozulması göz önüne alındığında bu zaman kısıtı kesin bir gerçek zaman gereğidir (hard real-time requirement). Kullanıcı Ara Yüzü Kullanıcı komutları Şekil 2. Sayısal Ses Matrisi Enine Kesen İlgiler: Ses Örnekleri Ses Verilerini Topla İşlenmemiş ses verileri Ses Verilerini İşle & Anahtarlama Y ollarını O luştur İşlenmiş ses verileri İşlenmiş Verileri Gönder Ses Örnekleri Hata yönetimi, loglama, bellek yönetimi, boş değer kontrolü (null-value checking), veri büyüklük kontrolü (range checking) ve bellek hata yönetimi en çok rastlanan enine-

4 kesen ilgilerdir. [12] Bunların yanı sıra zamanlama ve eşzamanlama gerçek-zamanlı sistemlerde sıkça rastlanan enine kesen ilgilerdir. Sayısal Ses Matrisi projesinde; loglama, boş değer kontrolü, veri büyüklük kontrolü ve zamanlama ilgileri örnek enine kesen ilgiler olarak gerçeklenmiştir. Bu ilgiler öncelikle OOP teknikleri kullanılarak gerçeklenmiş, daha sonra da AOP teknikleri ile gerçeklenerek bu iki gerçekleştirilmenin karşılaştırması yapılmıştır. Şekil 3 ve Şekil 4 te Sayısal Ses Matrisi projesinde gerçeklenen loglama ilgisi örnek olarak verilmiştir. Şekil 3. Loglama (OOP) Şekil 3 te görülen Log sınıfının yerini AOP uyarlamasında LogAspect almıştır. Diğer sınıfların Log sınıfıyla olan ilişkilerinin yerini ise aspect örücü aracılığıyla oluşturulan eklenti noktaları almıştır. Bu sayede birden fazla sınıfın içersinde loglamayı ilgilendiren kod parçaları Şekil 4 teki LogAspect aspect inin içinde birimsel olarak gerçeklenmiştir. Şekil 4. Loglama (AOP) 4. Değerlendirme Sayısal Ses Matrisi projesinin işlevsel ilgileri OOP teknikleri kullanılarak gerçeklenmiştir. Projedeki enine kesen ilgiler ise hem OOP hem de AOP teknikleri ile gerçeklenerek iki farklı uyarlama elde edilmiştir. Karşılaştırmanın tasarımcıdan bağımsız sonuçlar verebilmesi için enine kesen ilgilerin gerçeklemesi mümkün olduğu kadar basit tutulmuştur. Bu iki uyarlama, seçilen yazılım kalite metriklerine ve gerçekzamanlı gömülü performans metriklerine göre değerlendirilmiştir. Bu bölümde değerlendirmede kullanılan metrikler ve değerlendirme sonucu elde edilen sonuçlar verilmektedir Yazılım Kalitesi Yazılım kalitesi yazılımın gerçekleme kalitesi olarak tanımlanabilir. Yazılım kalitesini ölçebilmek amacıyla birçok metrik seti yayınlanmıştır. Bu metriklerin çoğu aşağıdaki 4 yazılım kalite özniteliklerine dayanmaktadır: Yeniden Kullanılabilirlik Bakım Kolaylığı Anlaşılabilirlik Test Edilebilirlik Yazılım Kalite Metrikleri Daha önce yapılan çalışmalarda AOP teknikleri masaüstü sistemler üzerinde yazılım kalite öznitelikleri açısından değerlendirilmiştir. Bu değerlendirmelerin çoğunda ölçüm metrikleri olarak Chidamber ve Kemerer (C&K) Metrik Seti ni [14] kullanılmıştır. Ayrıca AOP ve OOP programlama teknikleri yazılımda birimselliği amaçlayan teknikler olduğu için iki tekniğin yazılım kalitesi açısından karşılaştırması yazılımdaki birimsellik merkezinde gerçekleştirilmiştir. C&K metrik seti yazılım kalitesini ölçmede en kapsamlı ve geçerli sonuçları vermektedir [6, 13]. Bu nedenlerle araştırmamızda yazılım kalitesini ölçmede C&K metrik seti kullanılmıştır. C&K metrik seti 6 adet metrikten oluşmaktadır. Bunlar: Sınıf Başına Düşen Ağırlıklı Yöntem Sayısı (Weighted Methods Per Class - WMC) Nesneler Arası Bağlaşım (Coupling Between Objects-CBO) Sınıfın Tepkisi (Response for a Class -RFC) Yöntemlerin Uyum Eksikliği (Lack of Cohesion in Methods -LCOM) Soyağacı Derinliği (Depth of Inheritance Tree - DIT) Ardılların Sayısı (Number of Children -NOC) WMC bir sınıftaki yöntemlerin toplam karmaşıklıklarının ölçüsüdür. Bir sınıftaki yöntemlerin karmaşıklıklarının c 1 c n, olduğu düşünülürse, o sınıfın WMC ölçüm sonucu WMC = c i olarak hesaplanmaktadır [14]. WMC nin düşüklüğü yazılım tasarımın iyiliğini gösterir. CBO metriği bir sınıfa bağımlı olan diğer sınıfların sayısını belirtir. Sınıflar arası bağımlılığın modüler tasarımı zorlaştırdığı düşünüldüğünde CBO metrik sonuçlarının düşük çıkmasının daha birimsel bir yazılıma işaret ettiği söylenebilir. RFC metriği, bir sınıfın alınan mesajlara karşılık verebileceği yanıt kümesini vermektedir. Yüksek RFC değerleri karmaşık bir tasarımın belirtisidir. LCOM metriği, bir sınıftaki yöntemlerden benzer olmayanlarının sayısını verir. Bir sınıfın, idealde tek bir işle uğraşması gerektiğinden LCOM metrik sonuçlarının yüksek olması o sınıf içersinde birden fazla ilginin toplandığı anlamına gelmekte ve birimsel olmayan bir tasarımı işaret etmektedir. DIT bir sınıfın soyağacındaki (inheritance tree) basamak sayısını verir. Başka bir değişle bir sınıfın özelliklerinin en fazla kaç basamak önceki bir sınıfa dayandığını gösterir. NOC metriği ise bir sınıfın özelliklerinin

5 başka kaç sınıfa kalıtım (inheritance) yolu ile geçtiğinin ölçüsüdür. Yukarıda anlatılan C&K metrik setinin yazılım kalite özniteliklerine etkisi Şekil 5 te verilmiştir. [14] İyileşme Yüzdesi C&K Metrikleri Üzerinde AOP İyileştirmesi WMC CBO RFC LCOM C&K Metrikleri Şekil 5. C&K Metrikleri ve Yazılım Kalite Öznitelikleri C&K Metrik Sonuçları: Sayısal Ses Matrisi projesinin C&K metrik sonuçları Understand for C++ [15] ölçüm aracı kullanılarak elde edilmiştir. Bu bölümde elde edilen ölçüm sonuçları tartışılmaktadır. C&K metrikleri OOP tabanlı metrikler olduğu için AOP gerçeklenmesinde aspect ler ölçüm aracı tarafından sınıf olarak değerlendirilmiştir. Elde edilen sonuçlar Şekil 6 da sunulmaktadır C&K Metrik Sonuçları WMC CBO RFC LCOM(%) C&K Metrikleri Şekil 6. Sayısal Ses Matrisi Projesi C&K Metrik sonuçları Metrik ölçümlerinde kullanılan aracın LCOM metrik sonuçlarını yüzde olarak vermesi nedeniyle LCOM metrik sonuçları Şekil 6 da Sayısal Ses Matrisi projesinde gerçeklenen tüm sınıfların LCOM metrik ölçüm yüzdesi olarak verilmektedir. Sayısal Ses Matrisi projesindeki enine kesen ilgilerin gerçeklemesinde kalıtım ve alt sınıflar (subclass) kullanılmadığından, DIT ve NOC metrikleri her iki uyarlamada da aynı sonuçlar vermiş bu nedenle de değerlendirmeye dâhil edilmemişlerdir. Bu bölümün başında da söylendiği gibi karşılaştırmanın tasarımcıdan bağımsız sonuçlar verebilmesi için enine kesen ilgilerin gerçeklemesi mümkün olduğu kadar basit tutulmuştur. Şekil 6 da görüldüğü gibi DIT ve NOC metrikleri haricinde kalan 4 C&K metriğinde AOP iyileşme sağlamıştır. AOP nin sağladığı iyileşme yüzdesi Şekil 7 de verilmiştir. OOP AOP Şekil 7. C&K Metriklerindeki İyileşme Yüzdesi Yapılan çalışma sırasında AOP nin sağladığı iyileşmenin AOP kullanımının artmasıyla arttığı görülmüştür. Sayısal Ses Matrisi projesindeki enine kesen ilgilerin oluşturduğu toplam kod miktarının, projenin tamamının % 20 si olduğu düşünüldüğünde Şekil 6 ve Şekil 7 de görülen iyileşmelerin önemi ortaya çıkmaktadır. C&K Metrikleri nin yazılım kalite öznitelikleri ile olan bağlantısı ve metrik sonuçları düşünüldüğünde, AOP kullanımının gerçek zamanlı gömülü bir sistem olan Sayısal Ses Matrisi nde yazılım kalitesini artırdığı gözlemlenmiştir Sistem Performansı Gerçek zamanlı gömülü sistemler, bellek kullanımı, işlemci kullanımı ve çalışma zamanı gibi bir takım kısıtları bulunan sistemlerdir. Bu bölümde Sayısal Ses Matrisi projesi üzerinde sistemin bellek ve işlemci kullanımı ile gerçek zaman gereklerinin sağlanması değerlendirilmiştir Performans Metrikleri: Sayısal Ses Matrisi projesi, gerçek-zamanlı gömülü sistem performans metrikleri açısından değerlendirilmiştir. Değerlendirmede dikkate alınan performans metrikleri aşağıda verilmektedir: Bellek Kullanımı (Memory Usage) İşlemci Kullanımı (CPU Usage) Çalışma Süresi (Run-time) Bir sistemin bellek kullanımı durağan (statik) ve dinamik bellek kullanımı olarak incelenebilir. Bunlardan gömülü sistemler için önemli olanı dinamik bellek kullanımıdır. Dinamik bellek kullanımı çalışmakta olan yazılımın çalıştığı donanımın ana belleğinden kullandığı miktardır. Bu nedenle dinamik bellek kullanımı testleri çalışan sistem üzerinde yapılmalıdır. Sayısal Ses Anahtarı projesinin bellek kullanımı testleri de sistem hedef kart (Motorola MVME 5100) üzerinde çalışırken özel ajanlar kullanılarak yapılmıştır. Bir işlevin işlemci kullanımı, çalışma süresince tek çekirdekli bir işlemcinin ne kadar süre ile o işleve ayrıldığına bakılarak bulunabilir. Tek çekirdekli işlemcilerde işlemci aynı anda tek bir işle meşgul olabilmektedir. Paralel çalışması gereken işler arasında hızla atlayarak işlerin paralel gibi görünmesi sağlanmaktadır. MVME 5100 kartlarındaki PowerPC 7410 işlemciler de tek çekirdekli işlemciler olup aynı anda tek bir işle ilgilenebilmektedirler. Sayısal Ses Matrisi projesinin işlemci kullanımı da sistem, hedef kart üzerinde çalışırken özel ajanlar kullanılarak hesaplanmıştır.

6 Çalışma süresi, özellikle gerçek zamanlı gömülü sistemler için büyük önem taşımaktadır. Önceki bölümlerde de bahsedildiği gibi gerçek-zamanlı sistemlerde, sistemin herhangi bir etkiye verdiği tepkinin zamanında gerçekleşmemesi sistemde hatalı çalışmaya neden olabilir. Bu nedenle gerçek-zamanlı sistemlerin en büyük özelliği verilen etkilere tahmin edilebilir gecikmeler içersinde cevap verebilmeleridir. Sayısal Ses Matrisi projesinin çalışma zamanı testleri hedef kart üzerinde sistem çalışırken gerçekleştirilmiştir. Projenin anlatımında da bahsedildiği gibi sistemin 3 adet gerçek zaman gereksinimi bulunmaktadır. Bunlardan iki tanesi kesin zaman kısıtlarıdır, üçüncü gerek ise diğer ikisine kıyasla daha esnek ama yine de gerçeklenmesi gereken bir zaman kısıdıdır. İşletim sistemlerinin çalışmaları birçok etkene bağlı olduğundan sistem her çalıştığında belirli bir yüzde içersinde kalmak koşuluyla farklı çalışma süreleri verebilirler. Bu nedenle Sayısal Ses Matrisi projesinden alınan sonuçlar 100 farklı çalıştırmanın ortalama sonuçları olarak değerlendirilmiştir. Çalışma süresi testleri her üç gerçekzaman gereği için ortalama ve en kötü zamanlama olarak iki şekilde yapılmıştır. Gerçek-zamanlı sistemlerde önemli olan en kötü durum olduğundan bu bildirideki performans karşılaştırmaları en kötü çalışma sürelerine göre yapılmakta ortalama çalışma sürelerine ise bilgi amaçlı yer verilmektedir Performans Metrikleri Sonuçları: Sayısal Ses Matrisi projesi üzerinde yapılan performans testleri sistem çalışması sırasında hedef kart üzerinde yapılmıştır. Özellikle çalışma süresi testleri anlamlı sonuçlar alabilmek amacıyla 100 defa tekrarlanmıştır. Test sonuçları Şekil 8 ve Şekil 9 da özetlenmiştir. Dinamik Bellek Kullanımı İşlemci Kullanımı En Kötü Çalışma Süresi (A/D Çevirici Bloğu (us)) En Kötü Çalışma Süresi (İşlemci Bloğu (ms)) En Kötü Çalışma Süresi (D/A Çevirici Bloğu (us)) OOP 24.25% 44% AOP 20.01% 40% Şekil 8. Sayısal Ses Anahtarı Performans Ölçüm Sonuçları OrtalamaÇalışma Süresi (A/D Çevirici Bloğu (us)) Ortalama Çalışma Süresi (İşlemci Bloğu (ms)) OOP AOP Ortalama Çalışma Süresi (D/A Çevirici Bloğu (us)) Şekil 9. Sayısal Ses Anahtarı Ortalama Çalışma Süresi Sonuçları Şekil 8 de de görüldüğü gibi AOP kullanımı sistem performans metriklerinde gözle görülür bir iyileşme sağlamıştır. Özellikle çalışma süresi test sonuçlarına bakıldığında AOP nin %50 ye varan bir iyileşme sağladığı görülmektedir. Bu iyileşmelerin temel nedeni OOP teknikleri ile kodlanmış uyarlamada enine kesen ilgilerin gereksinmelerini (loglama, hata yönetimi vb.) yerine getirmek için mesaj çağrımları kullanmalarıdır. İşletim sisteminin iki farklı iş (task) arasında geçiş yapabilmesi için context switching yapması gerekmektedir. Başka bir deyişle bir işin özelliklerini o işe özel ayrılmış olan bellek yığınına (stack) aktarması ve geçeceği yeni işin özelliklerini o iş için ayrılmış yığından alması gerekmektedir. Context switching olarak tanımlanan bu işlem belirli bir zaman ve performans kaybına yol açmaktadır. Bu nedenle Sayısal Ses Anahtarı projesinin enine kesen ilgilerinin OOP teknikleri ile gerçeklendiği uyarlamada context switching işleminden kaynaklı bir performans kaybı görülmektedir. Enine kesen ilgilerin AOP teknikleri kullanılarak gerçeklendiği uyarlamada ise mesaj çağrımlarının yerini belirlenen kod bölgelerine aspect örücü aracılığı ile otomatik olarak eklenen kod parçaları almaktadır. Bu nedenle context switching gerçekleşmemektedir. AOP kullanımı enine kesen ilgilerin nesneye odaklı tekniklerle gerçeklenmesinde kullanılan sınıfların ortadan kalkmasını sağlamış, bu sayede dinamik nesne yaratılmasını da azaltmıştır. Dinamik bellek kullanımında elde edilen iyileşmenin sebebi de sınıf sayısının ve dinamik nesne yaratılmasının azalması olarak açıklanabilir. OOP ile kodlanan versiyonda bölüm de verilen örnekte de görüldüğü gibi, enine kesen ilgilerin gerçeklenmesi amacıyla özel sınıf gerçeklemeleri yapılmıştır. AOP bu sınıfların işlevlerini aspect kod yapılarının içinde gerçekleyerek OOP ile kodlanan versiyondaki sınıf gerçeklemelerini ortadan kaldırmış ve sınıf sayısında azalma sağlamıştır. Sayısal Ses Matrisi projesindeki performans iyileşmesinin koddaki enine kesen ilgi yüzdesine göre değişimi Şekil 10 daki grafikte verilmiştir. Çalışma süresindeki iyileşmeyi göstermek amacıyla İşlemci bloğunun en kötü çalışma süresi verilmektedir. İyileşme Yüzdesi (%) 30% 25% 20% 15% 10% 5% 0% AOP-OOP İyileşme Yüzdesi Grafiği z Enine Kesen İlgi Yüzdesi (% satır) İşlemci Kullanımı Bellek Kullanımı İşlemci Bloğu En Kötü Çalışma Süresi Şekil 10. Sayısal Ses Matrisi Performans İyileşme Sonuçları Grafikte verilen iyileşme yüzdeleri performans metriklerinin AOP teknikleri kullanılarak ulaştığı değerler ile OOP teknikleri kullanılarak ulaşılan değerler arasındaki farklara bakılarak hesaplanan iyileşme yüzdeleridir. Şekil 10 daki grafikte de görüldüğü gibi projedeki performans iyileşmesi koddaki enine kesen ilgi miktarı arttıkça artmaktadır. Başka bir değişle enine kesen ilgilerin gerçeklenmesindeki AOP kullanımı arttıkça performanstaki iyileşme belirginleşmektedir. Şekil 8 de verilen sonuçlara bakıldığında enine kesen ilgilerin AOP teknikleri kullanılarak gerçeklenmesinin sistem

7 performansını iyileştirdiği görülmektedir. Elde edilen sonuçlardan özellikle durağan bellek kullanımının kullanılan bağdaştırıcı (linker) ile doğrudan ilgili olduğu unutulmamalıdır. Genel olarak yazılım kalitesi ve performans metriklerinde alınan sonuçlara bakıldığında AOP nin gerçek-zamanlı gömülü sistemlerde enine kesen ilgilerini gerçeklenmesinde kullanılabilecek bir yöntem olduğu görülmektedir. 5. Sonuç Bu bildiride sunulan çalışmanın amacı gerçek-zamanlı gömülü sistemler üzerinde enine-kesen ilgilerin gerçeklenmesinde AOP ve OOP tekniklerinin yazılım kalitesi ve sistem performansı açısından incelenmesidir. Değerlendirme kısmında test projesi olarak tasarlanan Sayısal Ses Anahtarı yazılım kalitesi ve sistem performansı açısından incelenmiştir. İncelemeler sonucunda AOP nin gerçek-zamanlı gömülü sistemlerde yazılım kalitesi ve sistem performansı açısından iyileşmeler sağladığı gözlemlenmiştir. Test sonuçları dikkate alındığında AOP nin gerçek-zamanlı gömülü sistemlerde enine kesen ilgilerin gerçeklenmesinde yazılım kalitesi ve sistem performansını artırmak için kullanılabilecek bir yöntem olduğu sonucuna varılmıştır. 6. Teşekkür Aselsan A.Ş. ye araştırma süresince verdikleri destekten dolayı teşekkür ederiz. Ayrıca geliştirme safhasında verdikleri destekten dolayı Sayın H. Özgür Gören e teşekkürlerimizi iletiriz. 7. Kaynakça [1] Y. Coady, and G. Kiczales, Back to the Future: A Retroactive Study of Aspect Evolution in Operating System Code, Proceedings International Conference on Aspect- Oriented Software Development (AOSD 03), Boston Massachusetts, USA, pp , [2] G. Kiczales, et al. Aspect-Oriented Programming, Proceedings European Conference for Object-Oriented Programming (ECOOP 97), Jyväskylä, Finland, pp , [3] A. Rashid and L. Blair, "Aspect-Oriented Programming and Separation of Crosscutting Concerns," British Computer Society The Computer Journal, vol. 46, no. 5, pp , [4] S. Agrawal and P. Bhatt, "Real-time Embedded Software Systems," TATA Technology Review, [5] A. Burns and A. Wellings, "Real-Time Systems and Programming Languages," Addison-Wesley, [6] S. L. Tsang, L. Clarke, and E. Baniassad, "An Evaluation of Aspect-Oriented Programming for Java-Based Real-Time Systems Development," Proceedings of Seventh IEEE International Symposium on Object-Oriented Real-Time Distributed Computing, [7] O. Spinczyk, A. Gal, and W. Schröder-Preikschat, "AspectC++: An Aspect-Oriented Extension to C++," Proceedings of the 40th International Conference on Technology of Object-Oriented Languages and Systems (TOOLS Pacific 2002), Sydney, Australia, February, [8] W. Wolf and M. Kandemir, Memory System Optimization of Embedded Software, Proceedings of the IEEE, vol. 91, pp , [9] D. Lohmann, O. Spinczyk, and W. Schröder-Preikschat, "Lean and Efficient System Software Product Lines - Where Aspects Beat Objects," Transaction of Aspect-Oriented Software Development (TAOSD), [10] O. Spinczyk, D. Lohmann and M. Urban, "Advances in AOP with AspectC++," Available: pdf [11] S.K. Miller, "Aspect-Oriented Programming Takes Aim at Software Complexity", IEEE Computer Journal, vol. 34, pp , [12] M. Bruntink, A. van Deursen, R. van Engelen, and T. Tourwe, "On the Use of Clone Detection for Identifying Crosscutting Concern Code, IEEE Transactions on Software Engineering, vol. 31, pp , [13] R. Harrison, S.J. Counsell, and R.V. Nithi, An Evaluation of the MOOD Set of Object-Oriented Software Metrics IEEE Transactions on Software Engineering, vol. 24, No.6, pp , [14] S.R. Chidamber, and C. F. Kemerer, A Metrics Suite for Object-Oriented Design Proceedings IEEE Transaction on Software Engineering, vol. 20, no.6, pp , [15] Understand for C++ (Ver. 1.4), [Online] Available: c.pdf [16] Aselsan Inc., [17] Motorola MVME 5100 Data Sheet", [Online] Available: [18] "VxWorks Center", [Online] Available: [19] Y. B. Kartal and E. G. Schmidt, "An Evaluation of Aspect Oriented Programming for Embedded Real-Time Systems," IEEE ISCIS 07.

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ı

Öğ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ı

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ı

PR362009 24 Kasım 2009 Yazılım, PC-tabanlı kontrol Sayfa 1 / 5

PR362009 24 Kasım 2009 Yazılım, PC-tabanlı kontrol Sayfa 1 / 5 Yazılım, PC-tabanlı kontrol Sayfa 1 / 5 IT standartları otomasyonu geliştiriyor: Microsoft Visual Studio entegrasyonlu TwinCAT programlama ortamı TwinCAT 3 extended Automation Beckhoff, otomasyon dünyasını

Detaylı

REALTIME LINUX. 3. Linux ve Özgür Yazılım Şenliği Murat Demirten, 16 Mayıs 2004, Ankara

REALTIME LINUX. 3. Linux ve Özgür Yazılım Şenliği Murat Demirten, 16 Mayıs 2004, Ankara REALTIME LINUX 3. Linux ve Özgür Yazılım Şenliği Murat Demirten, 16 Mayıs 2004, Ankara Bu belgeyi, Free Software Foundation tarafından yayınlanmış bulunan GNU Genel Kamu Lisansının 2 ya da daha sonraki

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ı

Bilgisayar İşletim Sistemleri BLG 312

Bilgisayar İşletim Sistemleri BLG 312 Bilgisayar İşletim Sistemleri BLG 312 İşletim Sistemlerine Giriş Bilgisayar Sistemi uygulama programları derleyici editör komut yorumlayıcı işletim sistemi makina dilinde programlar mikroprogram (ROM da)

Detaylı

İŞ SIRALAMA. İş Sıralamanın Amaçları. İş Sıralama Türleri - 1. İş Sıralama. İş Sıralama Türleri - 2

İŞ SIRALAMA. İş Sıralamanın Amaçları. İş Sıralama Türleri - 1. İş Sıralama. İş Sıralama Türleri - 2 İş Sıralamanın Amaçları İŞ SIRALAMA İşleri zaman içinde işlemciye yerleştirmek Sistem hedeflerine uygun olarak: İşlemci verimi Cevap süresi (response time) Debi (throughput) 23 İş Sıralama İş Sıralama

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ı

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ı

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ı

GÖMÜLÜ SİSTEMLER. Bilecik Şeyh Edebali Üniversitesi Gömülü Sistemler Ders notları-1

GÖMÜLÜ SİSTEMLER. Bilecik Şeyh Edebali Üniversitesi Gömülü Sistemler Ders notları-1 GÖMÜLÜ SİSTEMLER Bilecik Şeyh Edebali Üniversitesi Gömülü Sistemler Ders notları-1 Gömülü sistemler için farklı tanımlamalar yapmak mümkün olmakla birlikte genel olarak şu şekilde tanımlama yapabiliriz:

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ı

Kalite Kontrol Yenilikler

Kalite Kontrol Yenilikler Kalite Kontrol Yenilikler Amaç ve Fayda Kalite Kontrol modülünde ISO 2859 standardının desteklenmesine, kullanımın daha fonksiyonel ve rahat olabilmesine yönelik bazı iyileştirme çalışmaları yapılmıştır.

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ı

İŞLETİM SİSTEMLERİNE GİRİŞ. Modern bilgisayar çalışma prensipleri, Von Neumann ın 1945 de geliştirdiği

İŞLETİM SİSTEMLERİNE GİRİŞ. Modern bilgisayar çalışma prensipleri, Von Neumann ın 1945 de geliştirdiği İŞLETİM SİSTEMLERİNE GİRİŞ Von Neumann Mimarisi Modern bilgisayar çalışma prensipleri, Von Neumann ın 1945 de geliştirdiği mimariyi temel almaktadır. Merkezi İşlem Birimi Aritmetik ve Mantık Birimi Kontrol

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ı

5. PROGRAMLA DİLLERİ. 5.1 Giriş

5. PROGRAMLA DİLLERİ. 5.1 Giriş 5. PROGRAMLA DİLLERİ 8.1 Giriş 8.2 Yazılım Geliştirme Süreci 8.3 Yazılım Geliştirme Sürecinde Programlama Dilinin Önemi 8.4 Programlama Dillerinin Tarihçesi 8.5 Programlama Dillerinin Sınıflandırılması

Detaylı

İŞ SIRALAMA. İş Sıralama 6. İşletim Sistemleri

İŞ SIRALAMA. İş Sıralama 6. İşletim Sistemleri 6 İŞ SIRALAMA İş Sıralama Çok programlı ortamlarda birden fazla proses belirli bir anda bellekte bulunur Çok programlı ortamlarda prosesler: işlemciyi kullanır bekler giriş çıkış bekler bir olayın olmasını

Detaylı

İRİSTEN KİMLİK TANIMA SİSTEMİ

İRİSTEN KİMLİK TANIMA SİSTEMİ ÖZEL EGE LİSESİ İRİSTEN KİMLİK TANIMA SİSTEMİ HAZIRLAYAN ÖĞRENCİLER: Ceren KÖKTÜRK Ece AYTAN DANIŞMAN ÖĞRETMEN: A.Ruhşah ERDUYGUN 2006 İZMİR AMAÇ Bu çalışma ile, güvenlik amacıyla kullanılabilecek bir

Detaylı

YAZILIM ÖLÇÜTLERİ GENEL BİLGİLER

YAZILIM ÖLÇÜTLERİ GENEL BİLGİLER YAZILIM ÖLÇÜTLERİ GENEL BİLGİLER Ölçme (Measuring): Somut veya soyut bir varlığın sahip olduğu bir özelliğini, sayısal veya derecelendirilmiş bir veri olarak ifade etmek. Benim boyum 163 santimetredir.

Detaylı

Bilgisayar Mimarisi Nedir?

Bilgisayar Mimarisi Nedir? BİLGİSAYAR MİMARİSİ Bilgisayar Mimarisi Nedir? Bilgisayar mimarisi, diğer mimariler gibi, bir yapı kullanıcısının ihtiyaçlarını belirleme ve bu ihtiyaçları ekonomik ve teknolojik kısıtlamalar dahilinde

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ı

Uygulamaların mobil ve masaüstü sürümlerinin kodtabanlı karşılaştırılması: keşifsel bir çalışma

Uygulamaların mobil ve masaüstü sürümlerinin kodtabanlı karşılaştırılması: keşifsel bir çalışma Uygulamaların mobil ve masaüstü sürümlerinin kodtabanlı karşılaştırılması: keşifsel bir çalışma Sena Sönmez Çiçek 1, Vahid Garousi 2,1, Ayça Tarhan 1 1 Yazılım Mühendisliği Araştırma Grubu, Bilgisayar

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ı

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ı

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ı

PARALEL HESAPLAMA ÇAĞRI GİDER ENES BİLGİN

PARALEL HESAPLAMA ÇAĞRI GİDER ENES BİLGİN PARALEL HESAPLAMA ÇAĞRI GİDER 13011016 ENES BİLGİN - 13011004 Paralel Hesaplama Nedir? Paralel Hesaplamanın Avantajları Paralel Hesaplamanın Kullanım Alanları Paralel Hesaplama Yöntemleri, Donanım ve Yazılım

Detaylı

Nesne Tabanlı Yazılımların Yapısal Özelliklerinin Hata Yatkınlığı Üzerine Etkilerinin İncelenmesi

Nesne Tabanlı Yazılımların Yapısal Özelliklerinin Hata Yatkınlığı Üzerine Etkilerinin İncelenmesi Nesne Tabanlı Yazılımların Yapısal Özelliklerinin Hata Yatkınlığı Üzerine Etkilerinin İncelenmesi Halit Gölcük Gömülü ve Gerçek Zamanlı Yazılım Tasarım Müdürlüğü, SST Sektör Bşk. ASELSAN A.Ş. hgolcuk@aselsan.com.tr

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ı

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ı

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ı

Rapor Hazırlama Kuralları

Rapor Hazırlama Kuralları Temel Bilgiler 1. Temel Bilgiler Rapor Hazırlama Kuralları Rapor hazırlamada, bu belge ile birlikte bulunan rapor örneği sitili kullanılabilir. Bu kalıp stil seçildiğinde, sayfa düzeni, paragraf yapıları

Detaylı

Çok İşlemcili Yapılarda Sinyal İşleme Yazılımlarının Geliştirilmesi Uygulaması. Sinan Doğan, Esra Beyoğlu

Çok İşlemcili Yapılarda Sinyal İşleme Yazılımlarının Geliştirilmesi Uygulaması. Sinan Doğan, Esra Beyoğlu Çok İşlemcili Yapılarda Sinyal İşleme Yazılımlarının Geliştirilmesi Uygulaması Sinan Doğan, Esra Beyoğlu ASELSAN A.Ş., REHİS Grubu, Ankara 16 Nisan 2009 1 1 İçerik Sinyal İşleme Yazılımları Çok İşlemci

Detaylı

C++ Dersi: Nesne Tabanlı Programlama

C++ Dersi: Nesne Tabanlı Programlama C++ Dersi: Nesne Tabanlı Programlama Bölüm 1: Giriş İçerik Bilgisayar Sistemleri Donanım Yazılım Programlama Program Geliştirme Nesne-tabanlı Programlama C++ Programlama Dili 2 Bilgisayar Sistemleri Kısaca,

Detaylı

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 7. Bölüm Metot Tanımlama ve Kullanma

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 7. Bölüm Metot Tanımlama ve Kullanma Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 7. Bölüm Metot Tanımlama ve Kullanma C Programlama Dr. Serkan DİŞLİTAŞ 7.1. Metot Kavramı Programlama dillerinde bütün kod satırlarının

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ı

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ı

Model Tabanlı Geliştirmede Çevik Süreç Uygulanması

Model Tabanlı Geliştirmede Çevik Süreç Uygulanması Model Tabanlı Geliştirmede Çevik Süreç Uygulanması Model Tabanlı Geliştirme Model nedir? Object Management Group Model Tabanlı Mimari «Herşey modeldir» Model Kaynak kod MDD Avantajları Daha hızlı yazılım

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ı

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ı

EĞİTİM-ÖĞRETİM YILI MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ (İNGİLİZCE) BÖLÜMÜ DERS PROGRAMINDA YAPILAN DEĞİŞİKLİKLER

EĞİTİM-ÖĞRETİM YILI MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ (İNGİLİZCE) BÖLÜMÜ DERS PROGRAMINDA YAPILAN DEĞİŞİKLİKLER BİRİNCİ SINIF GÜZ YARIYILI 2015-2016 EĞİTİM-ÖĞRETİM YILI MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ (İNGİLİZCE) BÖLÜMÜ DERS PROGRAMINDA YAPILAN DEĞİŞİKLİKLER DEĞİŞİKLİK FORMU COM101 BİLGİSAYAR PROGRAMLAMA

Detaylı

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi Bil101 Bilgisayar Yazılımı I Bilgisayar Yüksek Mühendisi Kullanıcıdan aldığı veri ya da bilgilerle kullanıcının isteği doğrultusunda işlem ve karşılaştırmalar yapabilen, veri ya da bilgileri sabit disk,

Detaylı

TBİL-405 Mikroişlemci Sistemleri Bölüm 2 1- % %01010 işleminin sonucu hangisidir? % %11000 %10001 %10101 %00011

TBİL-405 Mikroişlemci Sistemleri Bölüm 2 1- % %01010 işleminin sonucu hangisidir? % %11000 %10001 %10101 %00011 TBİL-405 Mikroişlemci Sistemleri Bölüm 2 1- %11010 - %01010 işleminin sonucu hangisidir? % 10000 %11000 %10001 %10101 %00011 2- %0101 1100 sayısının 1 e tümleyeni hangisidir? % 1010 0111 %11010 0011 %1010

Detaylı

T.C. ERCİYES ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ EĞİTİM ÖĞRETİM YILI DERS KATALOĞU

T.C. ERCİYES ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ EĞİTİM ÖĞRETİM YILI DERS KATALOĞU T.C. ERCİYES ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ - EĞİTİM ÖĞRETİM YILI DERS KATALOĞU Ders Kodu Bim Kodu Ders Adı Türkçe Ders Adı İngilizce Dersin Dönemi T Snf Açıl.Dönem P

Detaylı

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

YZM 2108 Yazılım Mimarisi ve Tasarımı YZM 2108 Yazılım Mimarisi ve Tasarımı Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği 1 BÖLÜM - 1 Yazılım Tasarımına Giriş Bu bölümde;

Detaylı

SOFTWARE ENGINEERS EDUCATION SOFTWARE REQUIREMENTS/ INSPECTION RESEARCH FINANCIAL INFORMATION SYSTEMS DISASTER MANAGEMENT INFORMATION SYSTEMS

SOFTWARE ENGINEERS EDUCATION SOFTWARE REQUIREMENTS/ INSPECTION RESEARCH FINANCIAL INFORMATION SYSTEMS DISASTER MANAGEMENT INFORMATION SYSTEMS SOFTWARE REQUIREMENTS/ INSPECTION SOFTWARE ENGINEERS EDUCATION RESEARCH FINANCIAL INFORMATION SYSTEMS DISASTER MANAGEMENT INFORMATION SYSTEMS SOFTWARE REQUIREMENTS/ INSPECTION Ö. Albayrak, J. C. Carver,

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ı

Kullanım Durumu Diyagramları (Use-case Diyagramları)

Kullanım Durumu Diyagramları (Use-case Diyagramları) Kullanım Durumu Diyagramları (Use-case Diyagramları) Analiz aşaması projeler için hayati önem taşır. İyi bir analizden geçmemiş projelerin başarı şansı azdır. Analiz ile birlikte kendimize Ne? sorusunu

Detaylı

Temel Mikroişlemci Tabanlı Bir Sisteme Hata Enjekte Etme Yöntemi Geliştirilmesi. Buse Ustaoğlu Berna Örs Yalçın

Temel Mikroişlemci Tabanlı Bir Sisteme Hata Enjekte Etme Yöntemi Geliştirilmesi. Buse Ustaoğlu Berna Örs Yalçın Temel Mikroişlemci Tabanlı Bir Sisteme Hata Enjekte Etme Yöntemi Geliştirilmesi Buse Ustaoğlu Berna Örs Yalçın İçerik Giriş Çalişmanın Amacı Mikroişlemciye Hata Enjekte Etme Adımları Hata Üreteci Devresi

Detaylı

Binnur Kurt binnur.kurt@ieee.org. İstanbul Teknik Üniversitesi Bilgisayar MühendisliM

Binnur Kurt binnur.kurt@ieee.org. İstanbul Teknik Üniversitesi Bilgisayar MühendisliM İşletim Sistemleri Binnur Kurt binnur.kurt@ieee.org İstanbul Teknik Üniversitesi Bilgisayar MühendisliM hendisliği i BölümüB İşletim Sistemleri Copyright 2005 1 Version 0.0.1 About the Lecturer BSc İTÜ,

Detaylı

Programlama Dillerinde Kullanılan Veri Tipleri

Programlama Dillerinde Kullanılan Veri Tipleri Programlama Dillerinde Kullanılan Veri Tipleri Taban/Biçim Basic Paskal C/C++/C#/Java 10 (Decimal ) - - - 16 (Hexadecimal) &hsayı veya &Hsayı $sayı 0xsayı veya 0Xsayı Üstel eüs veya Eüs eüs veya Eüs eüs

Detaylı

İŞLETİM SİSTEMİ KATMANLARI (Çekirdek, kabuk ve diğer temel kavramlar) Bir işletim sisteminin yazılım tasarımında ele alınması gereken iki önemli konu

İŞLETİM SİSTEMİ KATMANLARI (Çekirdek, kabuk ve diğer temel kavramlar) Bir işletim sisteminin yazılım tasarımında ele alınması gereken iki önemli konu İŞLETİM SİSTEMİ KATMANLARI (Çekirdek, kabuk ve diğer temel kavramlar) Bir işletim sisteminin yazılım tasarımında ele alınması gereken iki önemli konu bulunmaktadır; 1. Performans: İşletim sistemi, makine

Detaylı

KASIRGA 4. GELİŞME RAPORU

KASIRGA 4. GELİŞME RAPORU KASIRGA 4. GELİŞME RAPORU 14.07.2008 Ankara İçindekiler İçindekiler... 2 Giriş... 3 Kasırga Birimleri... 3 Program Sayacı Birimi... 3 Bellek Birimi... 3 Yönlendirme Birimi... 4 Denetim Birimi... 4 İşlem

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ı

İşletim Sistemleri (Operating Systems)

İşletim Sistemleri (Operating Systems) İşletim Sistemleri (Operating Systems) 1 İşletim Sistemleri (Operating Systems) Genel bilgiler Ders kitabı: Tanenbaum & Bo, Modern Operating Systems:4th ed., Prentice-Hall, Inc. 2013 Operating System Concepts,

Detaylı

Fatura Dinamik Kodlama İyileştirmeleri

Fatura Dinamik Kodlama İyileştirmeleri Fatura Dinamik Kodlama İyileştirmeleri Ürün Grubu Kategori Versiyon Önkoşulu [X] Redcode Enterprise [ ] Redcode Standart [ ] Entegre.NET [X] Yeni Fonksiyon 5.0 Uygulama Netsis paketlerinin tüm modüllerinin

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ı

Gezgin Etmen Sistemlerinin Başarım Ölçümü: Benzetim Tekniği

Gezgin Etmen Sistemlerinin Başarım Ölçümü: Benzetim Tekniği Gezgin Etmen Sistemlerinin Başarım Ölçümü: Benzetim Tekniği Gürol Erdoğan 1, Mustafa Yıldız 1, Mehmet Erdem Türsem 2, Selahattin Kuru 1 1 Enformatik Uygulama ve Araştırma Merkezi, Işık Üniversitesi, İstanbul

Detaylı

Rapor Hazırlama Kuralları

Rapor Hazırlama Kuralları Temel Bilgiler 1. Temel Bilgiler Rapor Hazırlama Kuralları Bilgisayar programcılıüı öğrencilerinin hazırlayacakları tüm proje ve bitirme projesiraporlarını bu belgede açıklandığı biçimde hazırlamaları

Detaylı

Bilgisayar Mimarisi ve Organizasyonu Giriş

Bilgisayar Mimarisi ve Organizasyonu Giriş + Bilgisayar Mimarisi ve Organizasyonu Giriş Bilgisayar Mimarisi Bilgisayar Organizasyonu Programcının görebileceği bir sistemin nitelikleri Bir programın mantıksal yürütülmesi üzerinde direk bir etkisi

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ı

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

BENZERSİZ SORUNLARA BENZERSİZ ÇÖZÜMLER BENZERSİZ SORUNLARA BENZERSİZ ÇÖZÜMLER EĞİTİM PROGRAMLARI MATLAB İLE MÜHENDİSLİK ÇÖZÜMLERİ Amaç: Sistem tasarım ve analizinin MATLAB dilinde kolay programlama yoluyla tekrarlanabilir yapılara oturtulması

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ı

(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ı

YAZILIM MODELLEME VE TASARIM

YAZILIM MODELLEME VE TASARIM YAZILIM MODELLEME VE TASARIM «Tasarım Modelinin Oluşturulması» Özer Çelik Matematik-Bilgisayar Bölümü Tasarım Modelinin Oluşturulması Bu aşamada, nesneye dayalı yönteme göre problemin mantıksal çözümü

Detaylı

Motivasyon Matrislerde Satır İşlemleri Eşelon Matris ve Uygulaması Satırca İndirgenmiş Eşelon Matris ve Uygulaması Matris Tersi ve Uygulaması Gauss

Motivasyon Matrislerde Satır İşlemleri Eşelon Matris ve Uygulaması Satırca İndirgenmiş Eşelon Matris ve Uygulaması Matris Tersi ve Uygulaması Gauss Motivasyon Matrislerde Satır İşlemleri Eşelon Matris ve Uygulaması Satırca İndirgenmiş Eşelon Matris ve Uygulaması Matris Tersi ve Uygulaması Gauss Jordan Yöntemi ve Uygulaması Performans Ölçümü 2 Bu çalışmada,

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ı

Ders Notlarının Creative Commons lisansı Feza BUZLUCA ya aittir. Lisans: http://creativecommons.org/licenses/by-nc-nd/3.0/

Ders Notlarının Creative Commons lisansı Feza BUZLUCA ya aittir. Lisans: http://creativecommons.org/licenses/by-nc-nd/3.0/ Eşzamanlı (Senkron) Ardışıl Devrelerin Tasarlanması (Design) Bir ardışıl devrenin tasarlanması, çözülecek olan problemin sözle anlatımıyla (senaryo) başlar. Bundan sonra aşağıda açıklanan aşamalardan geçilerek

Detaylı

Sistem Programlama. Kesmeler(Interrupts): Kesme mikro işlemcinin üzerinde çalıştığı koda ara vererek başka bir kodu çalıştırması işlemidir.

Sistem Programlama. Kesmeler(Interrupts): Kesme mikro işlemcinin üzerinde çalıştığı koda ara vererek başka bir kodu çalıştırması işlemidir. Kesmeler(Interrupts): Kesme mikro işlemcinin üzerinde çalıştığı koda ara vererek başka bir kodu çalıştırması işlemidir. Kesmeler çağırılma kaynaklarına göre 3 kısma ayrılırlar: Yazılım kesmeleri Donanım

Detaylı

BM-311 Bilgisayar Mimarisi

BM-311 Bilgisayar Mimarisi 1 BM-311 Bilgisayar Mimarisi Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Konular Giriş Mikro işlemler Fetch cycle Indirect cycle Interrupt cycle Execute cycle Instruction

Detaylı

OMNET++ 4.2.2. Ağ Benzetim Yazılımı (Network Simulation Framework) BİL 372 Bilgisayar Ağları. GYTE - Bilgisayar Mühendisliği Bölümü

OMNET++ 4.2.2. Ağ Benzetim Yazılımı (Network Simulation Framework) BİL 372 Bilgisayar Ağları. GYTE - Bilgisayar Mühendisliği Bölümü Bilgisayar Mühendisliği Bölümü OMNET++ 4.2.2 Ağ Benzetim Yazılımı (Network Simulation Framework) BİL 372 Bilgisayar Ağları OMNET++ OMNET++ (Objective Modular Network Testbed in C++), nesneye yönelik (objectoriented)

Detaylı

İşletim Sistemleri. Discovering Computers Living in a Digital World

İşletim Sistemleri. Discovering Computers Living in a Digital World İşletim Sistemleri Discovering Computers 2010 Living in a Digital World Sistem Yazılımı Sistem yazılımı, bilgisayar ve aygıtlarının çalışmasını kontrol eden ve sürdüren programlardan oluşur. İşle;m sistemleri

Detaylı

Öğr. Gör. Serkan AKSU http://www.serkanaksu.net. http://www.serkanaksu.net/ 1

Öğr. Gör. Serkan AKSU http://www.serkanaksu.net. http://www.serkanaksu.net/ 1 Öğr. Gör. Serkan AKSU http://www.serkanaksu.net http://www.serkanaksu.net/ 1 JavaScript JavaScript Nedir? Nestcape firması tarafından C dilinden esinlenerek yazılmış, Netscape Navigator 2.0 ile birlikte

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ı

Çalışma Açısından Bilgisayarlar

Çalışma Açısından Bilgisayarlar Çalışma Açısından Bilgisayarlar Ölçme sistemi ile hesaplama sistemi birbiriyle ilgili olmasına rağmen aynı değillerdir. Suyun sıcaklığı ve gürültünün şiddeti ile evdeki lambaların ölçülmesi aynı değillerdir.

Detaylı

ARDIŞIL DİYAGRAM YAPI DİYAGRAMI. Sistem Analizi ve Tasarımı Dersi

ARDIŞIL DİYAGRAM YAPI DİYAGRAMI. Sistem Analizi ve Tasarımı Dersi ARDIŞIL DİYAGRAM YAPI DİYAGRAMI Sistem Analizi ve Tasarımı Dersi İçindekiler Ardışıl Diyagram Nedir ve Neden Kullanılır... 3 Ardışıl Diyagram Elemanları... 3 MS Visio ile Ardışıl Diyagram Çizimi... 5 Violet

Detaylı

Akademik Dünyada Özgür Yazılım. Akademik Dünyada. Onur Tolga Şehitoğlu 10-02-2007

Akademik Dünyada Özgür Yazılım. Akademik Dünyada. Onur Tolga Şehitoğlu 10-02-2007 Akademik Dünyada Özgür Yazılım Onur Tolga Şehitoğlu 10-02-2007 1 Özgür Yazılım Nedir? Neden Özgür Yazılım? 2 Masaüstü İşletim Sistemi Ofis Uygulamaları 3 Görüntüleme 4 Bilimsel Araçlar Octave SciLab R

Detaylı

Bileşen Tabanlı Yazılımlardaki Bağımlılıkların Azalması İçin Geliştirilen Kısıtlama Kontrolü Tasarım Kalıbı

Bileşen Tabanlı Yazılımlardaki Bağımlılıkların Azalması İçin Geliştirilen Kısıtlama Kontrolü Tasarım Kalıbı Bileşen Tabanlı Yazılımlardaki Bağımlılıkların Azalması İçin Geliştirilen Kısıtlama Kontrolü Tasarım Kalıbı Erdem Ergul 1, Ezgi Cankurtaran 2, Evren Çilden 3 1,2,3 Aselsan, REHİS Ankara, Türkiye {eergul,ecankurtaran,ecilden}@aselsan.com.tr

Detaylı

Gömülü Sistemler. (Embedded Systems)

Gömülü Sistemler. (Embedded Systems) Gömülü Sistemler (Embedded Systems) Tanım Gömülü Sistem (Embedded System): Programlanabilir bilgisayar içeren fakat kendisi genel amaçlı bilgisayar olmayan her türlü cihazdır. Gömülü Sistem (Embedded System):

Detaylı

ÇOK ÇEKİRDEKLİ İŞLEMCİLER VE PARALEL YAZILIM GELİŞTİRME OLANAKLARI HAKKINDA BİR İNCELEME

ÇOK ÇEKİRDEKLİ İŞLEMCİLER VE PARALEL YAZILIM GELİŞTİRME OLANAKLARI HAKKINDA BİR İNCELEME ÇOK ÇEKİRDEKLİ İŞLEMCİLER VE PARALEL YAZILIM GELİŞTİRME OLANAKLARI HAKKINDA BİR İNCELEME Ecem İren Halilcan Can Akince Aylin Kantarcı Bilgisayar Müh. Bölümü Bilgisayar Müh. Bölümü Bilgisayar Müh. Bölümü

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ı

MAM ENERJİ ENSTİTÜSÜ ANKARA

MAM ENERJİ ENSTİTÜSÜ ANKARA Güç Sistemleri Planlaması için Elektrik Şebekelerinin Coğrafi Haritalar Üzerinde Görselleştirilmesi Simulation of Electrical Networks on Geographic Maps for Power System Planning Mehmet DEMİRCİOĞLU Araştırmacı

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ı

İşletim Sistemi. BTEP205 - İşletim Sistemleri

İşletim Sistemi. BTEP205 - İşletim Sistemleri İşletim Sistemi 2 İşletim sistemi (Operating System-OS), bilgisayar kullanıcısı ile bilgisayarı oluşturan donanım arasındaki iletişimi sağlayan ve uygulama programlarını çalıştırmaktan sorumlu olan sistem

Detaylı

Aşırı Programlama İçin Üç Yeni Pratik

Aşırı Programlama İçin Üç Yeni Pratik Aşırı Programlama İçin Üç Yeni Pratik Mustafa Yıldız, Gürol Erdoğan, Selahattin Kuru Enformatik Uygulama ve Araştırma Merkezi, Işık Üniversitesi, İstanbul {mustafa, gurol, kuru}@isikun.edu.tr Özet. Aşırı

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ı

BİLGİSAYAR AĞLARI Bilgisayar İletişimi Nedir? Veri İşleme Modelleri ve Ağ Gelişimi Merkezi İşleme

BİLGİSAYAR AĞLARI Bilgisayar İletişimi Nedir? Veri İşleme Modelleri ve Ağ Gelişimi Merkezi İşleme BİLGİSAYAR AĞLARI Bilgisayar ağlarının kullanımındaki temel amaç bilgi ve servislerin paylaşımıdır. Bu bölümde bilgisayar ağlarının sınıflandırılması ve kullanım amaçları anlatılmaktadır. Bu bilgi ve servislerin

Detaylı

Ders Adı Kodu Yarıyılı T+U Saati Ulusal Kredisi AKTS. Bilgisayar Organizasyonu BIL

Ders Adı Kodu Yarıyılı T+U Saati Ulusal Kredisi AKTS. Bilgisayar Organizasyonu BIL DERS BİLGİLERİ Ders Adı Kodu Yarıyılı T+U Saati Ulusal Kredisi AKTS Bilgisayar Organizasyonu BIL321 5 3+2 4 5 Ön Koşul Dersleri Dersin Dili Dersin Seviyesi Dersin Türü Türkçe Lisans Zorunlu / Yüz Yüze

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ı

DONANIM KURULUMU. Öğr. Gör. Murat YAZICI. 1. Hafta.

DONANIM KURULUMU. Öğr. Gör. Murat YAZICI. 1. Hafta. 1. Hafta DONANIM KURULUMU Öğr. Gör. Murat YAZICI www.muratyazici.com Artvin Çoruh Üniversitesi, Artvin Meslek Yüksekokulu Bilgisayar Teknolojisi Programı Dersin İçeriği Ekran Kartı (Graphic Card, Video

Detaylı

İşletim Sistemlerine Giriş

İşletim Sistemlerine Giriş İşletim Sistemlerine Giriş İşletim Sistemleri ve Donanım İşletim Sistemlerine Giriş/ Ders01 1 İşletim Sistemi? Yazılım olmadan bir bilgisayar METAL yığınıdır. Yazılım bilgiyi saklayabilir, işleyebilir

Detaylı

SAYI VE KODLAMA SİSTEMLERİ. Teknoloji Fakültesi/Bilgisayar Mühendisliği

SAYI VE KODLAMA SİSTEMLERİ. Teknoloji Fakültesi/Bilgisayar Mühendisliği SAYI VE KODLAMA SİSTEMLERİ Teknoloji Fakültesi/Bilgisayar Mühendisliği Neler Var? Sayısal Kodlar BCD Kodu (Binary Coded Decimal Code) - 8421 Kodu Gray Kodu Artı 3 (Excess 3) Kodu 5 de 2 Kodu Eşitlik (Parity)

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ı

İşaret İşleme ve Haberleşmenin Temelleri. Yrd. Doç. Dr. Ender M. Ekşioğlu eksioglue@itu.edu.tr http://www2.itu.edu.tr/~eksioglue

İşaret İşleme ve Haberleşmenin Temelleri. Yrd. Doç. Dr. Ender M. Ekşioğlu eksioglue@itu.edu.tr http://www2.itu.edu.tr/~eksioglue İşaret İşleme ve Haberleşmenin Temelleri Yrd. Doç. Dr. Ender M. Ekşioğlu eksioglue@itu.edu.tr http://www2.itu.edu.tr/~eksioglue İşaretler: Bilgi taşıyan işlevler Sistemler: İşaretleri işleyerek yeni işaretler

Detaylı

Kalite Kontrol Yenilikler

Kalite Kontrol Yenilikler Kalite Kontrol Yenilikler Amaç ve Fayda Kalite Kontrol modülünde önemli kalite performans ölçümlerinden biri olan Parts Per Million (PPM) kullanımının desteklenmesine, işleyişin daha kontrollü, güvenli

Detaylı

YAZILIM TASARIMI KALİTESİ (ÖLÇME VE DEĞERLENDİRME)

YAZILIM TASARIMI KALİTESİ (ÖLÇME VE DEĞERLENDİRME) 1 YAZILIM TASARIMI KALİTESİ (ÖLÇME VE DEĞERLENDİRME) Doç.Dr. Feza BUZLUCA İstanbul Teknik Üniversitesi Bilgisayar Mühendisliği Bölümü http:// http:// Ders Notlarının Creative Commons lisansı Feza BUZLUCA

Detaylı

SİSTEM ANALİZİ VE TASARIMI. Sistem Analizi -Bilgi Sistemleri-

SİSTEM ANALİZİ VE TASARIMI. Sistem Analizi -Bilgi Sistemleri- SİSTEM ANALİZİ VE TASARIMI Sistem Analizi -Bilgi Sistemleri- Bilgi Sistemi Bilgi sistemi, karar vericiler için verileri işleyerek bilgi sağlayan çoğunlukla bilgisayara dayalı sistemlerdir. Bilgi sistemi

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ı

Bilgisayar Donanım 2010 BİLGİSAYAR

Bilgisayar Donanım 2010 BİLGİSAYAR BİLGİSAYAR CPU, bellek ve diğer sistem bileşenlerinin bir baskı devre (pcb) üzerine yerleştirildiği platforma Anakart adı verilmektedir. Anakart üzerinde CPU, bellek, genişleme yuvaları, BIOS, çipsetler,

Detaylı