Çok Çekirdekli Sistemlerin Yazılım Kalitesi Üzerine Etkileri

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

Download "Çok Çekirdekli Sistemlerin Yazılım Kalitesi Üzerine Etkileri"

Transkript

1 Çok Çekirdekli Sistemlerin Yazılım Kalitesi Üzerine Etkileri Effects of MultiCore Systems on Software Quality Tolga, Ovatman Bilgisayar Mühendisliği Bölümü İstanbul Teknik Üniversitesi, İstanbul Feza, Buzluca Bilgisayar Mühendisliği Bölümü İstanbul Teknik Üniversitesi, İstanbul Özet Çok çekirdekli işlemcilerin ortaya çıkması ile birlikte paralel yazılımlar, yüksek başarımlı hesaplama alanının yanında uygulama yazılımları alanında da kullanılmaya başlanacaktır. Paralel çalışmayı temel alan donanımların günümüz yazılım mühendisliği ilkeleri ve nesneye dayalı programlama gibi kavramlar temel alınarak üretilen yazılımlarla birlikte kullanılması yeni zorluklar ortaya çıkaracak ve yazılım kalitesi ölçütlerinde de farklılaşmaya neden olacaktır. Bu çalışmada donanımda oluşan bu değişimin yazılım dünyası üzerine etkileri ve bu etkiler karşısında yapılması gerekenler, nesneye dayalı yazılımlar çerçevesinde incelenmiş; günümüz yazılımlarının çok çekirdekli platformlara uyarlanması, çok çekirdekli platformlar için yazılım tasarımında dikkat edilmesi gerekenler ve paralel yazılımların kalite ölçütleri üzerine yapılabilecek çalışmalara değinilmiştir. Abstract With the emergence of multicore processors, parallel software is beginning to be used in the domain of application software in addition to high performance computing software. The use of parallel processing hardware with current software engineering techniques and principles, like object oriented programming, will surely produce new challenges in area and change the way we look at quality criterions. In this work, the effects of this change in hardware and possible practices on dealing with the effects are discussed from the object oriented software perspective. Discussions include adaptation of current software to multicore platforms, important points when designing software for multicore systems and possible research on quality criterions of parallel software. başvurulan konulardan biridir. Paralel bilgi işlemeyi sağlamanın en çok kullanılan yolu birden çok işlemciye sahip bilgisayar sistemlerinin kullanılmasıdır. Birkaç yıl öncesine kadar çok işlemcili sistemler yüksek başarımlı hesaplamada kullanılan, birden fazla fiziksel işlemcinin özel donanımlar ve yazılımlar kullanılarak aynı anda işletilmesine dayanırdı. Çok çekirdekli işlemciler olarak da anılan, kırmık düzeyinde çok işlemcili sistemler (Chip level multiprocessors-cmp), tek bir fiziksel kırmık içerisine birden fazla işlemcinin yerleştirilmesiyle oluşturulmuşlardır. Bu tarz işlemcilerde farklı mimariler kullanılmakla birlikte, Şekil 1 de de görüldüğü gibi kendi cep belleğine(cache memory) ve ortak bir cep belleğe sahip iki işlem biriminin bir arada bulunması son yıllarda tercih edilen bir donanım çeşididir. Çok çekirdekli işlemcilerin en basit haliyle gelişmeye başladığı günümüzde çift çekirdekli işlemciler çok görevli işletim sistemlerinde gerektiği performansı sağladıkları için programlama ortamının değişmesine büyük oranda ihtiyaç duyulmadı. Gelecekte çekirdek sayısının artmasıyla çok görevli işletim sistemlerinde dahi performans eksikliği hissedilmeye başlanacaktır. Bunun nedeni kullanıcının hiçbir zaman elde bulunan işlemci sayısı kadar görev üretemeyecek olmasıdır ve bu durumun sonucu olarak işlemcilerin bir kısmı tam performansla kullanılamayacaktır. MİB Çekirdeği ve 1. Düzey cep bellekler MİB Çekirdeği ve 1. Düzey cep bellekler 1. Giriş Paralel bilgi işleme, bilgisayar teknolojisinin kullanılmaya başlandığı ilk yıllardan itibaren gündemde olan ve yüksek başarımlı hesaplamada en sık Veri yolu arayüzü ve 2. Düzey cep belekler

2 Şekil 1: Tipik bir çift çekirdekli işlemci mimarisi Birçok çekirdekli hesaplama (manycore computing) denilen onlarca çekirdek içeren işlemcilerin kullanıldığı aşamada paralelleştirilebilir programlama öğelerinin günümüzdekinden çok daha etkin biçimde belirlenmesi ve yazılımların yeni platformlara göre tasarlanması gerekmektedir. Microsoft un ManyCore[1] zirvesinde de tartışıldığı üzere bu konuyla ilgili yeterince çalışma yapılmamıştır ve gelecekte önemli sorunlarla karşılaşılması sonucunda programlama sürecinin büyük değişimlere uğraması beklenmektedir. Çok çekirdekli işlemciler kendileriyle birlikte paralel programlamaya yeni modeller getirmemiş, çoğunlukla bu tür işlemcilerde OpenMP ya da MPI gibi bilinen paralel programlama modellerinin kullanılması tavsiye edilmiştir. Çok çekirdekli işlemciler için ortaya atılmış bir programlama modeli bir istisna haricinde henüz literatürde bulunmamaktadır. Ease[2] ismindeki bu programlama modeli, çok çekirdekli sistemlerin ortaya çıkmasından daha önce oluşturulmuş bir modeldir. Bu model, çok çekirdekli işlemciler için tasarlanmış olmaktan ziyade bu ortama uygulanabilir bir modeldir. Görüldüğü üzere donanım dünyasında ortaya çıkan bu değişime yazılım dünyası tarafından henüz tatminkar bir cevap gelmemiştir. Bu nedenle yakın gelecekte yazılım dünyasının donanımdaki bu yeni yönelişe ayak uydurmaya başlaması beklenmektedir. Donanımsal gelişimlerin yazılımı etkilemesi ve bazı yazılım kavramlarının zaman içinde öneminin artması geçmişte eşine rastlanan durumlardır. Örneğin nesneye dayalı ve bileşen tabalı yazılım geliştirme yöntemlerinin önem kazanması, donanım alanında yaşanan gelişmelerle mümkün olmuştur. Programlama sürecinde yaşanacak değişimler daha önceleri ön planda değerlendirilmeyen, yazılımların paralel ortamlardaki kalite ölçütlerinin daha yoğun bir biçimde ele alınmasına neden olacaktır. Günümüzde yaygın biçimde kullanılan nesneye dayalı yazılım mühendisliği prensiplerinin paralel ortamlar için gözden geçirilmesi ve geçerliliklerinin sınanması gerekmektedir. Ayrıca günümüzde kullanılan kalite değerlendirme ölçütlerinin de paralel çalışmayla olan ilişkisi önem kazanacak konulardandır. Bu çalışmada, yukarıda sözü edilen yazılım dünyasında beklenen bu değişimin yazılım kalitesi üzerine etkileri tartışılacak ve bu etkileri en etkin biçimde ele alabilmek için yapılması gereken çalışmalar üzerine fikir yürütülecektir. Çalışmanın bölümleri şu şekilde özetlenebilir. İlk bölümde çok çekirdekli işlemci teknolojisiyle ilgili kısa bir bilgi verilerek bu teknolojinin gelecekte ortaya çıkartacağı problemler hakkında kısaca görüş belirtilmiştir. İkinci bölümde paralel sistemlerde öne çıkacak yazılım kalitesi kıstasları sıralanacaktır. Üçüncü bölüm, paralel yazılımlarda kaliteyi arttırabilmek için yapılması gereken çalışmaları içermektedir. Sonuç bölümünde ise çalışma boyunca yürütülen fikirler üzerine çok çekirdekli sistemler için üretilecek yazılımların kalitesini korumak ve sağlamak amacıyla yapılacak araştırma çalışmaları için bir yol haritası çizilecektir. 2. Çok çekirdekli Sistemlerde Nesneye Dayalı Yazılım Kalitesi Yazılım kalitesi, kavram olarak, terimin kullanıldığı ortamdan ortama değişen farklı tanımlara sahiptir. Bunlar arasında en üretken (generic) yapılmış tanımlardan biri Gerald Weinberg in Kalite bir kişi için katma değer olarak görülebilecek her şeydir tanımıdır[3]. Bu tanım kaliteyi değerlendireceklerin ve bu kişilerin kullanacağı değerlerin belirlenmesi gerekliliğini doğurur. Çok çekirdekli sistemlerin yazılımların üzerinde çalışacağı platform olarak kullanılmaya başlanması birçok yeni değer ortaya çıkartacağı gibi eskiden değer olarak görülen bazı kavramların da değişimine neden olacaktır. ISO 9126 standardına göre[4] 6 temel kalite karakteristiği bulunur: Fonksiyonellik Güvenilirlik Kullanılırlık Verimlilik Bakıma elverişlilik (Maintainability) Taşınırlık (Portability) Çok çekirdekli işlemcilerden önce de paralel yazılımların kalitesi üzerine çalışmalar yapılıyordu. Çok çekirdekli işlemcilerin son kullanıcılar tarafından satın alınabilir hale gelmesiyle önceleri daha çok bilimsel hesaplamaya yönelik, modern yazılım mühendisliği tekniklerini çok fazla kullanmayan çalışmalar, çok çekirdekli platformlar için üretilen uygulama yazılımları için fazla anlam taşımamaktadır. Genel kullanım yazılımlar için paralel yazılım geliştirmenin gelişmesiyle birlikte nesneye dayalı yazılım geliştirme için de kalite kavramının değişeceği açıktır. Bu iki dünyanın birleşmesiyle birlikte güvenilirlik, verimlilik, bakıma elverişlilik ve taşınırlık kalite karakteristikleri öne çıkacaktır. Nesneye dayalı yazılımların paralel donanımlarda kullanımının artmasından en çok etkilenecek kalite karakteristiği güvenilirliktir. Bunun nedeni paralellikle birlikte yazılımların çalışma zamanında önem kazanan

3 zaman alanının ortaya çıkardığı kararsızlık(nondeterminism) durumlarıdır. Yazılımın çalışırken göstereceği alternatif çalışma biçimleri zaman içinde yazılım modüllerin çalıştırılma sıralarına ve eşgüdümlerine bağımlı hale gelecektir. Bunun sonucu olarak yazılımın doğru olarak sonlandığı çalışma zamanı alternatifleri, zaman alanının sürece eklenmesiyle birlikte, geçmişe oranla çok daha karmaşık hale gelecektir. Güvenilirlik, sağlanması oldukça güçleşen bir kalite karakteristiği olmakla birlikte verimlilik paralelleştirme kavramının ana amacı olarak önemini arttıracaktır. Amdahl a göre bütün programlar paralellik kavramını aynı oranda kullanmazlar. Bu noktada paralelleştirmenin amacı eklenen işlem gücüne karşılık en yüksek verimi alabilmektir. Bu noktada yazılım tasarımı sürecinde yazılımın ne kadar parçalandığı ve kullanılan tasarım ilkelerinin paralelliğe etkisinin bilinmesi önem kazanmaktadır. Verimlilik ve güvenilirlik daha çok çalışma zamanı(dolayısıyla kullanıcıya dönük) kalite karakterleri olmakla birlikte, bakıma elverişlilik ve taşınırlık daha çok yazılım geliştirme sürecine yönelik karakteristiklerindendir. Yazılımın geliştirilmesi esnasında zaten yeterince zor kavranan paralelleştirme kavramının bakım sürecinde yeni sorunlar doğurması kaçınılmazdır. Paralelleştirme açısından taşınırlık kavramı çok boyutlu bir kalite karakteristiğidir. Bir yandan taşınabilirlik eski yazılımların etkinliğini koruyacak bir biçimde çok çekirdekli platformlara aktarılabilmesi anlamına gelirken diğer yandan paralel yazılımların farklı işlemci mimarilerinden ve programlama modellerinden bağımsız olarak üretilebilmesi durumu söz konusudur. Nesneye dayalı yazılımların paralel sistemlerde kullanılması konusundaki en eski çabalardan biri paralel yazılım tasarımında kullanılabilecek nesneye dayalı modelleme teknikleri konusundadır. Parse projesi dâhilinde I. Gorton işlem çizgelerine(process graphs) dayalı bir yöntem önermişlerdir[5]. Bu çalışmada ayrıca zamanlı iletişim yollarının ve tampon(buffer) belleklerin sistemlerde kullanımını göstermekte elle çizilen basit çizenekler kullanılmıştır. Bu çalışmadan bir yıl sonra UML geliştirilmeye başlamış ve nesneye dayalı yazılım modellemenin resmi olmayan standardı haline gelmiştir. Bu noktada işlem çizgelerine gerek kalmamış ve benzer çalışmalar UML ile yapılmaya başlanmıştır. Örneğin, Yücesan,E. nin çalışmasında, dağıtılmış ve paralel uygulamalarda performans modellemesine olanak verecek UML eklentileri tasarlanmıştır[6]. Sadece modelleme alanında çalışmalar yapılmamış MPI nın nesneye dayalı paralel ortamlara uygulanması[7] ve yeni programlama modellerin oluşturulması[8] konusunda çalışmalar yapılmıştır. Baudel in çalışmasında Nesneye Dayalı bir SPMD(tek işlem-çok veri) modeli ProActive nesneleri kullanılarak önerilmiştir. Aktif nesneler[9], nesneye dayalı paralel programlamanın en iyi tanımlanmış ve etkileyici örneklerinden biridir. Bu nesnelerde metotların çalıştırılması metot çağrısından ayrılmış, böylece eş zamanlı çalışma yetenekleri geliştirilmiş ve nesnelere erişimde eşgüdüm basitleştirilmiştir. Bu daha çok nesneye dayalı paralel yazılımlarda kullanılabilecek bir tasarım kalıbı olarak görülebilir. Bunun gibi birçok kalıp[10] zaman içinde ortaya çıkmıştır, fakat özellikle paylaşılan bellek kullanan çok çekirdekli işlemcili platformlara özel tasarım kalıplarının oluşturulması gerekmektedir. Nesneye dayalı yazılım mühendisliği ile paralel sistemlerin çok çekirdekli işlemciler perspektifinde bir araya getirilmesinin gerekliliği açıktır. Unutulmaması gereken, nesneye dayalı yazılım geliştirme gibi birçok kavramın, kullanımlarının yaygınlaşmasından çok önceleri bilindiği ve ortaya çıkan donanımsal gelişmeler sonucunda yaygınlaşmasının yaşandığıdır. Bu nedenle bir başka donanımsal evrimin yaşandığı günümüzde elimizde bulunan yazılım kalite ölçütlerinin yeni platformlardaki özelliklerinin incelenmesinde ve gerekli düzenlemelerin yapılmasında yarar vardır. 3. Paralel Sistemlerde Nesneye Dayalı Yazılım Kalitesinin Arttırılması Çok çekirdekli işlemcilerin yaygınlaşmasının ardından yazılıma yönelik üzerinde iyileştirme yapılabilecek alanlar aşağıdaki gibi sıralanabilir: Derleyici ve aracı katman Programlama Dilleri ve Modelleme Aracı yazılımlar ve yazılım kütüphaneleri Yardımcı uygulamalar Bu alanlardan ara katmanlar ve derleyiciler ile yazılım modelleri öne çıkmaktadır. Bu iki alanda çalışılması durumunda çok çekirdekli sistemlerin etkileri daha etkin biçimde ele alınacaktır. Üstelik tasarım alanında yapılacak iyileştirmeler yazılım üretim sürecinde daha erken aşamalarda gerçekleştirilmiş olacaktır. Ara katman ve derleyiciler üzerine yapılacak iyileştirmeler ise yazılım üreticisinden bağımsızlık sağlayacaktır. Bu iki alanın yazılımların çok çekirdekli işlemcilere uyarlanması konusunda en etkili ve önemli rollere sahip olacakları açıktır. Öte yandan yazılımın tasarlanması ve üretilmesi aşamaları birbiriyle iç içedir ve birinde

4 yapılan değişiklik diğerini de tetikleyecektir. Bu nedenle iki konuda yapılan çalışmaların birbiriyle eş zamanlı yürümesi daha verimli olacaktır. Yapılabilecek iyileştirmeler yazılım geliştirici tarafından gerçekleştirilebileceği gibi işletim sistemi, sanal makineler gibi ara katman yazılımları tarafından otomatik olarak da gerçekleştirilebilir. Yazılımcının paralelleştirme kavramıyla gereğinden fazla ilgilenmesi istenmeyen bir durum olsa da gerektiği noktalarda yazılım modeli ve/veya yazılımın kendisi üzerinde yapacağı ek açıklama (annotation)lar ile derleyiciye ve çalışma zamanına yönelik yönlendirmeler yapabilir. Nesneye dayalı yazılımların tasarım aşamasının ardından oluşturduğu karakteristiğin belirlenmesi ile yazılım tasarımcılarının çok çekirdekli sistemlerde koşacak yazılımların tasarımı konusunda, rehberliğinde hareket edebilecekleri bir disiplin oluşturmaları sağlanabilir. Diğer taraftan gerçekleştirilmesi yeğlenecek olan, gerek derleyici gerek ara katmanların derleme ve çalışma zamanında yapacakları tasarım ve yazılım metrikleri ölçümleriyle paralel çalışma hakkında fikir edinmesidir. Yapılan iyileştirmeler paralelleştiren derleyicilerin gerçekleştirdiği sıradüzensel yazılımların paralel hale dönüştürülme işleminden ziyade günümüzde iplik bazında yapılan zamanlama planlarının nesne bazında gerçekleştirilmesini sağlamaktır. Yazılım dünyası paralel platforma kaydıkça yaşayacağı sorunlar aslında çok çekirdekli sistemlerden önce ortaya çıkmaya başlamışlardır. Örneğin yazılım dünyasında büyük etki yaratan Gamma ve arkadaşlarının tasarım kalıpları[12] isimli çalışmasında bulunan tekil sınıf (Singleton) kalıbında paralel erişimle ilgili bir sorunun ortaya çıktığı görülmüştür. Şekil 2 de ortaya çıktığı ilk hali görülen Java dilinde yazılmış tasarım kalıbı, yazılımlarda kullanılan bir sınıftan tek bir nesne üretilebilmesi ve nesneye erişmek isteyen istemcilere getinstance() metodu ile bu tek sınıfın temin edilmesi prensibi ile çalışmaktadır. Fakat zaman içinde tekil nesneye paralel erişim yapıldığında getinstance() metodunun içerisindeki if koşulunun sınanması esnasında çalışmasının kesilmesi durumunda tekil nesnenin çalışması etkilenecek ve günümüz yazılımlarında sıkça kullanılan bu kalıp hatalı çalışarak yazılım kalitesinin düşmesine sebebiyet verecektir. Tekil nesne kalıbındaki bu problem için zaman içinde çözüm üretilmiş ve sorunlu metodun eş zamanlı erişime uygun şekilde kritik bölge olarak tanımlanmasıyla sorunun ortadan kalktığı görülmüştür. Bu çözüm kalıbın içine uyarlanmış ve tasarım kalıbı bu yeni şekliyle kullanılmaya başlanmıştır. class Singleton { private static Singleton instance; private Singleton() { } public static Singleton getinstance() { if (instance == null) instance = new Singleton(); return instance; } } Şekil 2: Tekil nesne örüntüsünü gerçekleyen bir Java programı Yukarıda açıklanan problemden yola çıkarak yapılacak ana çalışma alanı olarak günümüz yazılımlarının paralel ortamlara aktarılmasıyla ortaya çıkabilecek sorunlar, yazılım kalitesi bağlamında incelenmeli, sorunların günümüzde kullanılan yazılım metrikleriyle ölçülebilirliği ve yazılım kalitesine etkileri biçimsel olarak ölçülmelidir. Edinilen kazanımlar doğrultusunda paralel platformlar için sıfırdan tasarlanan yazılımlarda kalite unsurları gözden geçirilmeli ve yeni kalite unsurlarının bulunması yönünde çalışmalar yapılmalıdır Nesneye Dayalı Yazılımların Çok Çekirdekli Sistemlere Taşınması Günümüze kadar yazılımların paralel dünyaya taşınması yolunda yapılan çalışmalar paralelleştiren derleyiciler (paralellizing compiler) tarafından yapılıyordu. Nesneye dayalı olmayan yazılımlar için pek başarılı olmadığı bilinen bu tür yazılımların genelde yaptığı iyileştirmeler loop unrolling denilen döngülerin bölünüp parçalanarak farklı işlemciler tarafından yürütülmesi gibi iyileştirmelerin uygulanmasını öngörüyordu. Nesneye dayalı yazılımlarda ise bu tür iyileştirmeler, yazılımların üretilmesindeki düşünce tarzının ve dolayısıyla kullanılan yapısallığın farklı olması nedeniyle etkinliğini yitirir. Önceki bölümlerde saydığımız nedenlerden dolayı zaman içerisinde paralel sanal makineler gibi paralel çalışmaya dayanan ara katman yazılımlarının yaygınlaşacağı öngörülmektedir. Bu noktada, kullanılan ara katman yazılımlarının nesneye dayalı yazılımları çok çekirdekli sistemlerde çalıştırırken önem verecekleri noktaların belirlenmesi üzerinde durulması gerekir. Dağıtık sistemler için bilinen nesne dağıtımı problemi[11], çok çekirdekli sistemlerdeki çekirdek sayısı arttıkça yeniden karşımıza çıkacaktır. Paylaşımlı bellek kullanımı ve iletişim süresinin çok küçük olması gibi farklar yapılan çalışmaların gözden geçirilmesini gerektirmektedir. Aynı zamanda önceki bölümde belirtildiği gibi iplik düzeyi paralellik(threadlevel parallelism) zamanla etkinliğini yitireceğinden

5 nesne düzeyi paralellik(object-level parallelism) konusu öne çıkacaktır. Mevcut tasarım kalıpları[12] temel alınarak günümüzde kullanılan yazılımların taşıdıkları karakteristiklerin belirlenerek, bu karakteristiklerin paralel ortamlardaki davranışı üzerine yapılacak çalışmalar bu konuda anlam kazanacaktır. Bu amaçla günümüz yazılımlarının ortak karakteristiği olarak görülebilecek tasarım kalıplarının, paralel ortamlardaki davranışları incelenmesi ve tasarım kalıplarındaki sınıfların taşıdıkları sorumluluklara göre gruplandırılıp bu grupların paralel çalışmadaki davranışlarının incelenmesi gerekmektedir. Buradan yola çıkarak günümüzde kullanılan yazılımları oluşturan bileşenlerin görevleri ve sağladıkları temel servisler incelenip, ara katman tasarımcılarının paralel ortamlarda yazılım karakteristiğine uygun iyileştirmeler yapmaları sağlanabilir. Örneğin yukarıda da anılan tekil sınıflar gibi, yazılımlarda bulunan aracı, kontrolcü, önyüz nesneleri gibi farklı yapıların, ara katman tarafından eş zamanlı güdüm konusunda nasıl yönetilmesi ve nesne dağıtımlarının nasıl yapılması gerektiğine yönelik çalışmalar yapılması anlamlı olacaktır Çok Çekirdekli Platformlarda Koşan Nesneye Dayalı Yazılımların Kalite Kriterleri Bölüm 2.1 deki çalışmalar sonucu edinilen genel bilginin biçimsel biçimde ölçülmesine dayalı çalışmalar varılan sonuçların bilimsel tabana oturtulması açısından önemlidir. Bu bağlamda yazılım tasarımlarında günümüzde kullanılan yazılım metriklerinin[13] çok çekirdekli platformlardaki etkilerinin sınanması gerçekleştirilmelidir. Bu metriklerin çok çekirdekli platformlardaki yazılım kalitesi üzerine yapılacak çalışmalarla birlikte Bölüm 2.1 de belirlenen noktaların metriklerle olan ilgisi belirlenerek günümüz yazılım metriklerinin yeterli ve yetersiz kaldığı noktalar ortaya çıkartılmalıdır. Bu sayede yazılımın tasarım safhasında yapılan biçimsel ölçümlerle, çok çekirdekli çalışma ortamında dikkat edilmesi gereken noktalar ortaya çıkartılarak bu ölçütlerin nesne dağılımına ve paralelleştirilmeye etkileri incelenebilir. Örneğin günümüzde çokça kullanılan bağımlılık (coupling) ölçütlerinin nesne dağılımlarında büyük etkisinin olacağı öngörülebilir. Birbirine daha bağımlı sınıfların nesnelerinin aynı işlemcide çalıştırılarak ileti trafiğinin düşürülmesi yapılacak iyileştirmelerden biri olabilir. Bunun gibi, yazılım içerisinde birçok sınıfla bağımlılığı bulunan denetçi gibi nesnelerin metotlarına ayrılarak ya da kopyaları çıkartılarak işlemcilerde dağıtılmış bir şekilde çalışması uygun olabilir. Bu aşamada yapılacak bir başka çalışma ise var olan yetersiz yazılım metriklerinin paralel yazılımlara uyarlanmasıdır. Örneğin döngüsel karmaşıklık[14] (cyclomatic complexity) metriği buyruksal yazılımlar üzerinde kullanılan etkin bir metriktir fakat paralel programlama için gözden geçirilmesi gerekmektedir. Literatürde döngüsel karmaşıklığın nesneye dayalı yazılımlar için gözden geçirilmesi gibi çalışmalar da bulunmaktadır[15]. Özetle bu tarz çalışmalarla Bölüm 2.1 de belirlenen genel ilkelerin yazılım metrikleriyle biçimsel olarak ifade edilmesi gerçekleştirilebilir Paralel Nesneye Dayalı Yazılımların Tasarımlarının Geliştirilmesi Olası bir başka tür çalışma ise var olan yazılımlardan çok paralel ortamlar için yeni baştan geliştirilen yazılımların kalitesi üzerine yapılabilir. Bu noktada ilk iki aşamada edinilen bilgiler ışığında yazılımın daha tasarlanma aşamasında çok işlemcili platforma uygun bir şekilde oluşturulması için başta UML olmak üzere yazılım tasarım araçlarına yapılması gereken eklentiler ve kullanılabilecek yeni metriklerin oluşturulması üzerine çalışmalar yürütülecektir. Paralel tasarımlara özgü yapıların UML ye uyarlanması yönünde daha önceden yapılan çalışmalar vardır fakat bunlar genellikte stereotype lar gibi var olan UML yapıları kullanılarak paralel ortamların ne derece modellenebileceği üzerinedir. Son safhada yapılması düşünülen çalışma yazılım modelinin oluşturulması sırasında tasarımcının öngördüğü çok çekirdekli çalışma ortamında önemli rol oynayacak yapıların belirtilebilmesi üzerinedir. Bu tür yapılar örneğin sınıf çizeneklerinde nesnelerinin özellikle dağıtılması istenen ya da özellikle dağıtılmadan tek bir kaynakta kalması istenen sınıfların belirtilmesi olabilir. Diğer yandan iletişim çizeneklerinde paralel çalışabilecek metot çağrılarının ve senkronize olması gereken çağrıların belirtilmesini sağlayacak yapıların oluşturulması da bir başka örnektir. Yazılım tasarım alanına zaman eklendiğinde oluşabilecek sonsuz farklı işletim seçeneğinin indirgenmesi ve modellerin biçimsel modelleme ile güvenilirliğinin arttırılması da oluşturulacak yeni model öğelerinde bulundurulması tercih edilebilecek seçeneklerdendir. Çalışma sonunda Bölüm 2.1 de yapılan, yazılımın çalışma zamanına yönelik iyileştirmeler ve Bölüm 2.2 de yapılan bu iyileştirmeleri tetikleyecek tasarım özelliklerinin metrikler yardımıyla algılanması yardımıyla saptanan tasarım özelliklerinin modellenebilmesi için gerekli yapılar geliştirilebilir. 4. Sonuç Donanım dünyasında yaşanan gelişmelerle birlikte yazılım dünyası ile donanım dünyası arasında bir farkın oluşmaya başladığı görülmektedir. Yazılım dünyasının,

6 yeni bir mimari ile geliştirilmeye başlayan donanımları en etkin biçimde kullanması için yazılımlarda ve yazılımları süren ara katman üzerinde bir takım değişikliklerin yapılması gerekmektedir. Donanımsal değişikliklerle birlikte ortaya çıkan paralelleşme kavramı, nesneye dayalı yazılımların tasarlanma, geliştirilme ve çalışma zamanları üzerinde etkisini gösterecektir. Bu etkiler yazılım dünyasının, yazılım kalitesini belirleme ölçütleri üzerinde değişiklikler yaratacağı gibi yeni kalite ölçütlerinin oluşmasında da öncü olacaktır. Yapılan incelemelerin sonucunda yazılımın yaşam süreci içinde çeşitli noktalarda kalitenin arttırılmasına yönelik yapılabilecek çeşitli iyileştirmeler üzerine fikir yürütülmüş ve yapılabilecek çalışmalar ortaya konmuştur. Günümüzde kullanılan yazılımların çok çekirdekli sistemler üzerinde davranışının ve günümüzde kullanılan kalite ölçütlerinin bu tip sistemlerdeki belirleyiciliğinin araştırılması çok çekirdekli sistemlerde kullanılacak yazılımların kaliteleri üzerine yapılacak çalışmalarda atılacak ilk adımlardan olacaktır. Bu sayede çok çekirdekli sistemlere geçiş aşamasında, günümüz yazılımlarının karakteristiği ve yazılım ölçütlerinin eksik ve yetersiz kaldığı alanlar belirlenebilir. Bu da sıfırdan üretilen yazılımlar için oluşturulacak nesneye dayalı paralel yazılım geliştirme standartlarının ve disiplinin kalite odaklı bir biçimde oluşturulmasını mümkün kılacaktır. Concurrent Programming. Proc.Pattern Languages of Programs. [10] Mattson, Timothy G., Sanders, Beverly A. and Massingill, Berna L. Patterns for Parallel Programming. s.l. : Addison-Wesley Professional. [11] Caromel, D. and Henrio, Ludovic., A Theory of Distributed Objects. s.l. : Springer. [12] Gamma, Erich, et al., Design Patterns: Elements of Reusable Object-Oriented Software. s.l. : Addison- Wesley Professional. [13] Chidamber, S. and Kemerer, C., A Metrics Suite for Object Oriented Design. IEEE Transactions on Software Engineering, Vol. 20, pp [14] McCabe, Thomas J. 4, December A Complexity Metric. IEEE Transactions on Software Engineering, Vols. SE-2. [15] Swapan Bhattacharya, Ananya Kanjilal: Code Based Analysis for Object-Oriented Systems. J. Comput. Sci. Technol. 21(6): (2006) 5. Kaynaklar [1] ManyCore Computing Wokshop. [Online] p07/default.aspx. [2] Zenith, S. E., Programming in Ease: Semiotic Definition of the language. New Haven, Connecticut : Yale University. [3] Weinberg, Gerald M., Quality Software Management: Systems Thinking. s.l. : Dorset House Publishing Company. [4] ISO STANDARTLARI KATALOĞU. [Çevrim içi] [5] Gorton, I., Gray, J. P. and Jelly, I. 2, Object-based modeling of parallel programs. IEEE Parallel & Distributed Technology: Systems & Applications, Vol. 3, pp [6] Yücesan, E., Pllana, S. and Fahringer, T. December 8-11, UML Based Modeling of Performance Oriented Parallel and Distributed Applications. Proceedings of the 2002 Winter Simulation Conference. [7] Carpenter, B., et al. 11, MPJ: MPI-like message passing for Java. Concurrency: Practice and Experience, Vol. 12, pp [8] Mintchev, S. and Getov, V Towards portable message passing in Java: Binding MPI. Recent Advances in PVM and MPI, ser. LNCS [9] Lavender, R. Greg and Schmidt, Douglas C Active Object: an Object Behavioral Pattern for

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ı

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ı

İŞ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ı

Elbistan Meslek Yüksek Okulu Güz Yarıyılı

Elbistan Meslek Yüksek Okulu Güz Yarıyılı HAFTA III Bilgi iletişim sistemi : Bilgi iletişim sistemi, dağıtık sistem içerisinde düğümler arasındaki iletişimi desteklemekle yükümlüdür. İletişim sistemi, iletişim ağı ile bağlanmış herhangi bir düğümün,

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ı

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ı

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ı

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

08225 AĞ TEMELLERĠ. Elbistan Meslek Yüksek Okulu GÜZ Yarıyılı. Öğr. Gör. Murat KEÇECĠOĞLU. 20 EKi Salı, Çarşamba

08225 AĞ TEMELLERĠ. Elbistan Meslek Yüksek Okulu GÜZ Yarıyılı. Öğr. Gör. Murat KEÇECĠOĞLU. 20 EKi Salı, Çarşamba 08225 AĞ TEMELLERĠ Elbistan Meslek Yüksek Okulu 2014 2015 GÜZ Yarıyılı 20 EKi. 2014 Salı, Çarşamba Öğr. Gör. Murat KEÇECĠOĞLU Bilgi iletişim sistemi, dağıtık sistem içerisinde düğümler arasındaki iletişimi

Detaylı

BLM 4811 MESLEKİ TERMİNOLOJİ II Salı , D-109 Dr. Göksel Biricik

BLM 4811 MESLEKİ TERMİNOLOJİ II Salı , D-109 Dr. Göksel Biricik BLM 4811 MESLEKİ TERMİNOLOJİ II 2017-1 Salı 13.00 14.50, D-109 Dr. Göksel Biricik goksel@ce.yildiz.edu.tr Ders Planı Hafta Tarih Konu 1 19.09 Tanışma, Ders Planı, Kriterler, Giriş 2 26.09 Bilgisayarın

Detaylı

Küme Bilgisayarlar. Enabling Grids for E-sciencE. Onur Temizsoylu. Grid ve Küme Bilgisayarlarda Uygulama Geliştirme Eğitimi ODTÜ, Ankara

Küme Bilgisayarlar. Enabling Grids for E-sciencE. Onur Temizsoylu. Grid ve Küme Bilgisayarlarda Uygulama Geliştirme Eğitimi ODTÜ, Ankara Küme Bilgisayarlar Onur Temizsoylu ODTÜ, Ankara www.eu-egee.org EGEE and glite are registered trademarks İçerik Neden hesaplamada kümeleme? Kümeleme nedir? Yüksek kullanılabilirlik kümeleri Yük dengeleme

Detaylı

Bulut Bilişim. Ege Üniversitesi Bilgisayar Mühendisliği Web Servisleri

Bulut Bilişim. Ege Üniversitesi Bilgisayar Mühendisliği Web Servisleri Bulut Bilişim Ege Üniversitesi Bilgisayar Mühendisliği Web Servisleri Ediz TÜRKOĞLU 05-07-8509 Özlem GÜRSES 05-07-8496 Savaş YILDIZ 05-07-8569 Umut BENZER 05-06-7670 İ çerik İçerik...2 Bulut Bilişim Nedir?...3

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ı

MÜFREDAT DERS LİSTESİ

MÜFREDAT DERS LİSTESİ MÜFREDAT DERS LİSTESİ MÜHENDİSLİK FAK. / BİLGİSAYAR MÜHENDİSL / 2010 BİLGİSAYAR MÜHENDİSLİĞİ Müfredatı 0504101 Matematik I Calculus I 1 GÜZ 4 5 Z 0504102 Genel Fizik I General Physics I 1 GÜZ 4 4 Z 0504103

Detaylı

T. C. KAMU İHALE KURUMU

T. C. KAMU İHALE KURUMU T. C. KAMU İHALE KURUMU Elektronik İhale Dairesi KALİTE YÖNETİM SİSTEMİ BT Strateji Yönetimi BT Hizmet Yönetim Politikası Sürüm No: 6.0 Yayın Tarihi: 26.02.2015 444 0 545 2012 Kamu İhale Kurumu Tüm hakları

Detaylı

İŞLETİM SİSTEMLERİ. (Operating Systems)

İŞLETİM SİSTEMLERİ. (Operating Systems) İŞLETİM SİSTEMLERİ (Operating Systems) İşletim Sistemi Tanımı, Görevleri, Bilinen İşletim Sistemleri Çok Kullanıcılı Sistemler, Bellek Yönetim Birimi Linux ve Windows Ailesi, Bilinen İşletim Sistemleri

Detaylı

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ı

Farklı Mobil Platformlar Üzerinde Servis Tabanlı Mimari(SOA) Yaklaşımı: Elektronik Uçuş Çantası Vaka Çalışması

Farklı Mobil Platformlar Üzerinde Servis Tabanlı Mimari(SOA) Yaklaşımı: Elektronik Uçuş Çantası Vaka Çalışması Farklı Mobil Platformlar Üzerinde Servis Tabanlı Mimari(SOA) Yaklaşımı: Elektronik Uçuş Çantası Vaka Çalışması Emre Barış Aksu, STM A.Ş eaksu@stm.com.tr Cem Gündüz, STM A.Ş cgunduz@stm.com.tr Emrah Ayanoğlu,

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 İnşası ve Evrimi (SE 556) Ders Detayları

Yazılım İnşası ve Evrimi (SE 556) Ders Detayları Yazılım İnşası ve Evrimi (SE 556) Ders Detayları Ders Adı Ders Kodu Dönemi Ders Saati Uygulama Saati Laboratuar Saati Kredi AKTS Yazılım İnşası ve Evrimi SE 556 Bahar 3 0 0 3 7.5 Ön Koşul Ders(ler)i Dersin

Detaylı

BM208- Nesneye Dayalı Analiz ve Tasarım. Sunum 7

BM208- Nesneye Dayalı Analiz ve Tasarım. Sunum 7 BM208- Nesneye Dayalı Analiz ve Tasarım Sunum 7 Component(Bileşen) Diyagramları Sistemin fiziksel yapısını modellemede kullanılır. Bu fiziksel yapıdan kasıt gömülü kontroller, portlar, arayüzlerin yanı

Detaylı

Bilgisayar Ağları ve Dağıtık Programlama

Bilgisayar Ağları ve Dağıtık Programlama KARADENİZ TEKNİK ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BİLGİSAYAR AĞLARI LABORATUARI Bilgisayar Ağları ve Dağıtık Programlama 1. Giriş Bu deneyde paralel programlama standartlarından olan MPI (Message

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ı

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ı

Sistem Geliştirme Yaşam Döngüsü (The Systems Development Life Cycle) (SDLC)

Sistem Geliştirme Yaşam Döngüsü (The Systems Development Life Cycle) (SDLC) Sistem Geliştirme Yaşam Döngüsü (The Systems Development Life Cycle) (SDLC) Sistem analistlerinin ve kullanıcı faaliyetlerinin spesifik döngüsünün kullanılmasıyla En iyi geliştirilmiş sistemin oluşmasını

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ı

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ı

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ı

BİT in Temel Bileşenleri (Yazılım-1)

BİT in Temel Bileşenleri (Yazılım-1) Ders 4 BİT in Temel Bileşenleri (Yazılım-1) BİLGİ & İLETİŞİM TEKNOLOJİLERİ 1 Yazılım, değişik ve çeşitli görevler yapma amaçlı tasarlanmış elektronik araçların, birbirleriyle haberleşebilmesini ve uyumunu

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ı

O P C S T A N D A R D I

O P C S T A N D A R D I O P C S T A N D A R D I ASP OTOMASYON LTD. Sadık ŞENOL İsmail YAKIN 12/08/2008 OPC Standardı İnsan gücüne dayalı üretimden otomasyona dayalı, daha kontrollü bir üretime geçiş endüstride üretim hızını ve

Detaylı

Windows Mobile İşletim Sistemleri İçin Veri Giriş Yazılımı

Windows Mobile İşletim Sistemleri İçin Veri Giriş Yazılımı Windows Mobile İşletim Sistemleri İçin Veri Giriş Yazılımı Yasin Hınıslıoğlu 1 Mehmet Serdar Güzel 2 1 Ahmet Yesevi Üniversitesi Yönetim Bilişim Sistemleri Bölümü, Ankara 2 Ankara Üniversitesi Bilgisayar

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ı

İŞLETİM SİSTEMİ KATMANLARI (Çekirdek, Kabuk ve diğer temel kavramlar) Öğr.Gör. Dr. Dr. Şirin KARADENİZ

İŞLETİM SİSTEMİ KATMANLARI (Çekirdek, Kabuk ve diğer temel kavramlar) Öğr.Gör. Dr. Dr. Şirin KARADENİZ İŞLETİM SİSTEMİ KATMANLARI (Çekirdek, Kabuk ve diğer temel kavramlar) Öğr.Gör. Dr. Dr. Şirin KARADENİZ Bir işletim sisteminin yazılım tasarımında ele alınması gereken iki önemli konu bulunmaktadır; Performans:

Detaylı

İŞLETİM SİSTEMLERİNE GİRİŞ - 2. Sistem, sistem kaynaklarını belli bir hiyerarşi içinde kullanıcının hizmetine

İŞLETİM SİSTEMLERİNE GİRİŞ - 2. Sistem, sistem kaynaklarını belli bir hiyerarşi içinde kullanıcının hizmetine İŞLETİM SİSTEMLERİNE GİRİŞ - 2 Kaynakların Paylaşımı (Resource Sharing) Sistem, sistem kaynaklarını belli bir hiyerarşi içinde kullanıcının hizmetine sunar. Bir işletim sisteminde paylaşılan kaynaklar

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ı

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

Nesneye Dayalı Analiz ve Tasarım (SE 321) Ders Detayları Nesneye Dayalı Analiz ve Tasarım (SE 321) Ders Detayları Ders Adı Ders Kodu Dönemi Ders Saati Uygulama Saati Laboratuar Saati Kredi AKTS Nesneye Dayalı Analiz ve Tasarım SE 321 Bahar 3 0 0 3 4.0 Ön Koşul

Detaylı

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

Yazılım Örüntüleri (SE 461) Ders Detayları Yazılım Örüntüleri (SE 461) Ders Detayları Ders Adı Ders Kodu Dönemi Ders Saati Uygulama Saati Laboratuar Saati Kredi AKTS Yazılım Örüntüleri SE 461 Bahar 3 0 0 3 5 Ön Koşul Ders(ler)i Dersin Dili Dersin

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

Detaylı

Ders - 1. BİL 221 Bilgisayar Yapısı GİRİŞ. Ders Hakkında. Ders İzlencesi

Ders - 1. BİL 221 Bilgisayar Yapısı GİRİŞ. Ders Hakkında. Ders İzlencesi Ders - 1 BİL 221 Bilgisayar Yapısı GİRİŞ Ders Hakkında Ders İzlencesi Bilgisayar Sınıfları Kişisel Bilgisayarlar$ Genel amaçlı, çok çeşitli yazılımlar$ Performans - maliyet ödünleşmesi hedeflenir$ Sunucular$

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ı

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ı

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

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ı

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ı

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ş Donanım performans kriterleri Eş zamanlı çalışma Güç tüketimi Yazılım performans kriterleri

Detaylı

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

İçindekiler. Okuma lisansı info acar, için verilmiştir. Çoğaltılması ve dağıtılması yasaktır. 18 İçindekiler Lütfen Dikkatle Okuyunuz! Yasal Uyarı Bölüm Başlıkları Önsöz Kitabın İçeriği Nedir? Kitabın İçeriği Ne Degildir? Kitap Kim İçin Yazıldı? Yazar Hakkında Kitap Nasıl Okunmalı? Yazar İle İletişim

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ı

Bitirme Ödevi Sunumu PLATFORM BAĞIMSIZ BENZETİM PROGRAMI. Danışman : Yrd.Doç.Dr. D Feza BUZLUCA Gökhan Akın ŞEKER

Bitirme Ödevi Sunumu PLATFORM BAĞIMSIZ BENZETİM PROGRAMI. Danışman : Yrd.Doç.Dr. D Feza BUZLUCA Gökhan Akın ŞEKER Bitirme Ödevi Sunumu BERKELEY RISC I işlemcisi İÇİN PLATFORM BAĞIMSIZ BENZETİM PROGRAMI Danışman : Yrd.Doç.Dr. D Feza BUZLUCA 0495 0639 Sunum Planı Ödev konusu hakkında Berkeley RISC I işlemcisi hakkında

Detaylı

Bilgi Sistemleri Tasarımı (SE 503) Ders Detayları

Bilgi Sistemleri Tasarımı (SE 503) Ders Detayları Bilgi Sistemleri Tasarımı (SE 503) Ders Detayları Ders Adı Ders Kodu Dönemi Ders Saati Uygulama Saati Laboratuar Saati Kredi AKTS Bilgi Sistemleri Tasarımı SE 503 Her İkisi 3 0 0 3 7.5 Ön Koşul Ders(ler)i

Detaylı

UHeM ve Bulut Bilişim

UHeM ve Bulut Bilişim UHeM ve Bulut Bilişim Özden AKINCI Ulusal Yüksek Başarımlı Hesaplama Merkezi (UHeM) Bilim ve Mühendislik Uygulamalar Müdürü 11.07.2012 UHeM hakkında Vizyon: Yüksek başarımlı hesaplama, bilgi teknolojileri

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ı

Eylül 2007 de v1.0 ı yayınlanan SysML sayesinde endüstri mühendislerinin de ihtiyacı karşılanmış oldu.

Eylül 2007 de v1.0 ı yayınlanan SysML sayesinde endüstri mühendislerinin de ihtiyacı karşılanmış oldu. 1 Yazılımcıların da endüstri mühendislerinin de en büyük ihtiyaçlarının başında ortak modelleme dili ihtiyacı gelir. UML nin (Unified Modeling Language) Kasım 1997 de OMG tarafından yayınlanmasıyla birlikte

Detaylı

DGridSim Gerçek Zamanlı Veri Grid Simülatörü. Yazılım Tasarımı Dokümanı v 1.0.1 01.08.2011. Mustafa Atanak Sefai Tandoğan Doç. Dr.

DGridSim Gerçek Zamanlı Veri Grid Simülatörü. Yazılım Tasarımı Dokümanı v 1.0.1 01.08.2011. Mustafa Atanak Sefai Tandoğan Doç. Dr. DGridSim Gerçek Zamanlı Veri Grid Simülatörü Yazılım Tasarımı Dokümanı v 1.0.1 01.08.2011 Mustafa Atanak Sefai Tandoğan Doç. Dr. Atakan Doğan 1. Sistem Mimarisi DGridSim katmanlı bir yapı göz önünde bulundurularak

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ı

BİLİŞİM SİSTEMLERİ GÜVENLİĞİNDE YENİ EĞİLİMLER

BİLİŞİM SİSTEMLERİ GÜVENLİĞİNDE YENİ EĞİLİMLER BİLİŞİM SİSTEMLERİ GÜVENLİĞİNDE YENİ EĞİLİMLER Dr. Hayrettin Bahşi bahsi@uekae.tubitak.gov.tr 11 Mart 2010 Gündem Bulut Hesaplama Sistemleri ve Bilgi Güvenliği Güvenli Yazılım Geliştirme Hayat Döngüsü

Detaylı

Mobil Cihazlardan Web Servis Sunumu

Mobil Cihazlardan Web Servis Sunumu Mobil Cihazlardan Web Servis Sunumu Özlem Özgöbek Ege Üniversitesi Bilgisayar Mühendisliği Bölümü 2010 İnternet erişiminin yaygınlaşması ve artık mobil cihazlar üzerinden bile yüksek hızlı veri iletişimine

Detaylı

Bilgisayarlara ve Programlamaya Giriş (COMPE 101) Ders Detayları

Bilgisayarlara ve Programlamaya Giriş (COMPE 101) Ders Detayları Bilgisayarlara ve Programlamaya Giriş (COMPE 101) Ders Detayları Ders Adı Ders Kodu Dönemi Ders Saati Uygulama Saati Laboratuar Kredi AKTS Saati Bilgisayarlara ve Programlamaya Giriş COMPE 101 Güz 2 2

Detaylı

FTR 331 Ergonomi. Bilgiye Dayalı İş Yeri Düzenleme. emin ulaş erdem

FTR 331 Ergonomi. Bilgiye Dayalı İş Yeri Düzenleme. emin ulaş erdem FTR 331 Ergonomi Bilgiye Dayalı İş Yeri Düzenleme emin ulaş erdem GİRİŞ Bilişsel ergonomi, geçtiğimiz asırda yaşanan bilgisayar devrimiyle hayat bulan Ergonomi disiplini içerisinde gelişen yeni bir teknolojidir.

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ı

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ı

TCMB Deneyim Raporu. Kurumsal Java Uygulama Platformu. Sacit Uluırmak. Türkiye Cumhuriyet Merkez Bankası Sistem Araştırma ve Planlama Müdürlüğü

TCMB Deneyim Raporu. Kurumsal Java Uygulama Platformu. Sacit Uluırmak. Türkiye Cumhuriyet Merkez Bankası Sistem Araştırma ve Planlama Müdürlüğü TCMB Deneyim Raporu Kurumsal Java Uygulama Platformu Sacit Uluırmak Türkiye Cumhuriyet Merkez Bankası Sistem Araştırma ve Planlama Müdürlüğü 2007 TCMB made available under the EPL v1.0 30.04.2007 Gündem

Detaylı

Sınıf Diyagramları Amaç: Sınıf Diyagramları Nasıl Çizilir?

Sınıf Diyagramları Amaç: Sınıf Diyagramları Nasıl Çizilir? Sınıf Diyagramları Sınıf diyagramı statik bir diyagramdır. Bir uygulamanın statik görünümünü temsil eder. Sınıf diyagramı sadece bir sistemin farklı yönlerini görselleştirmek, açıklamak ve belgelemek için

Detaylı

ANKARA ÜNİVERSİTESİ A ÖĞRENCİ İŞLERİ DAİRE BAŞKANLIĞI

ANKARA ÜNİVERSİTESİ A ÖĞRENCİ İŞLERİ DAİRE BAŞKANLIĞI Dersin ön koşulu var mı? ***** İntibak Dersi mi? **** TOPLAM SAAT ** AKTS Kredisi ** ANKARA ÜNİVERSİTESİ A PROGRAM ADI : BİLGİSAYAR MÜHENDİSLİĞİ (İNGİLİZCE).SINIF /.YARIYIL* ANADAL EĞİTİM PROGRAMI ZORUNLU

Detaylı

JAVA RMI ve Hibernate teknolojileri kullanılarak çok amaçlı bir yazılım altyapısı hazırlanması

JAVA RMI ve Hibernate teknolojileri kullanılarak çok amaçlı bir yazılım altyapısı hazırlanması JAVA RMI ve Hibernate teknolojileri kullanılarak çok amaçlı bir yazılım altyapısı hazırlanması Hakan ALBAĞ Tahsin Barış AKAN Bitirme Projesi 05.06.2006 Giriş Ticari yazılımlarda ortak ihtiyaçlar Birden

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ı

İşletim Sistemlerine Giriş 2. Kaynakların Paylaşımı. Öğr.Gör. Dr. Şirin KARADENİZ

İşletim Sistemlerine Giriş 2. Kaynakların Paylaşımı. Öğr.Gör. Dr. Şirin KARADENİZ İşletim Sistemlerine Giriş 2 Kaynakların Paylaşımı Öğr.Gör. Dr. Şirin KARADENİZ Kaynakların Paylaşımı Sistem, sistem kaynaklarını belli bir hiyerarşi içinde kullanıcının hizmetine sunar. Bir işletim sisteminde

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ı

Kablosuz Sensör Ağlar ve Eniyileme. Tahir Emre KALAYCI. 21 Mart 2008

Kablosuz Sensör Ağlar ve Eniyileme. Tahir Emre KALAYCI. 21 Mart 2008 Kablosuz Sensör Ağlar ve Eniyileme Tahir Emre KALAYCI 21 Mart 2008 Gündem Genel Bilgi Alınan Dersler Üretilen Yayınlar Yapılması Planlanan Doktora Çalışması Kablosuz Sensör Ağlar Yapay Zeka Teknikleri

Detaylı

Bilgisayar Programlama Dilleri

Bilgisayar Programlama Dilleri Bilgisayar Programlama Dilleri Ömer YÜCEL 13253072 1/32 Sunum İçeriği 1. Program ve Programlama Dili Nedir? 2. Programlama Dillerinin Tarihçesi 3. Programlama Dillerinin Sınıflandırılması 4. Programlama

Detaylı

BİLGİSAYAR DESTEKLİ TASARIM AUTOCAD DERSİ. 1. HAFTA 27.09.2012 Öğr. Gör. Serkan ÖREN

BİLGİSAYAR DESTEKLİ TASARIM AUTOCAD DERSİ. 1. HAFTA 27.09.2012 Öğr. Gör. Serkan ÖREN BİLGİSAYAR DESTEKLİ TASARIM AUTOCAD DERSİ 1. HAFTA 1 AutoCAD, tüm dünyada başta mühendisler ve mimarlar tarafından kullanılan, dünyaca tanınan yazılım firması Autodesktarafından hazırlanan, bilgisayar

Detaylı

FTR 331 Ergonomi. yrd. doç. dr. emin ulaş erdem

FTR 331 Ergonomi. yrd. doç. dr. emin ulaş erdem FTR 331 Ergonomi yrd. doç. dr. emin ulaş erdem ERGONOMİDE KULLANILAN MODELLER Modelleme, farklı öğeler arasındaki ilişkilerin tanımlanmasında kullanılan bir yöntemdir. Modeller, kullanıldıkları alanlara

Detaylı

MİKROİŞLEMCİ MİMARİLERİ

MİKROİŞLEMCİ MİMARİLERİ MİKROİŞLEMCİ MİMARİLERİ Mikroişlemcilerin yapısı tipik olarak 2 alt sınıfta incelenebilir: Mikroişlemci mimarisi (Komut seti mimarisi), Mikroişlemci organizasyonu (İşlemci mikromimarisi). CISC 1980 lerden

Detaylı

Hızlı Uygulama Geliştirme (Rapid Application Development - Rad Model)

Hızlı Uygulama Geliştirme (Rapid Application Development - Rad Model) Yazilim Gelistirme Yöntemleri Farklı uygulama geliştirme görevleri genellikle farklı tasarım sorunları yaratır ve buda yaklaşımların ve modellerin birleşimin birlikte kullanılmasını gerektirir. Bu bölümde

Detaylı

İleri Yazılım Mimarisi (SE 658) Ders Detayları

İleri Yazılım Mimarisi (SE 658) Ders Detayları İleri Yazılım Mimarisi (SE 658) Ders Detayları Ders Adı Ders Kodu Dönemi Ders Saati Uygulama Saati Laboratuar Saati Kredi AKTS İleri Yazılım Mimarisi SE 658 Bahar 3 0 0 3 7.5 Ön Koşul Ders(ler)i Dersin

Detaylı

Bilgisayarlara ve Programlamaya Giriş (COMPE 101) Ders Detayları

Bilgisayarlara ve Programlamaya Giriş (COMPE 101) Ders Detayları Bilgisayarlara ve Programlamaya Giriş (COMPE 101) Ders Detayları Ders Adı Ders Kodu Dönemi Ders Saati Uygulama Saati Laboratuar Kredi AKTS Saati Bilgisayarlara ve Programlamaya Giriş COMPE 101 Güz 2 2

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ı

Nesne Tabanlı Programlama (COMPE 225) Ders Detayları

Nesne Tabanlı Programlama (COMPE 225) Ders Detayları Nesne Tabanlı Programlama (COMPE 225) Ders Detayları Ders Adı Ders Kodu Dönemi Ders Saati Uygulama Saati Laboratuar Kredi AKTS Saati Nesne Tabanlı Programlama COMPE 225 Güz 3 2 0 4 5.5 Ön Koşul Ders(ler)i

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ı

Gezgin Satıcı Probleminin Benzetilmiş Tavlama Yöntemiyle Çözümünde Paralel Hesaplamanın Kullanılması

Gezgin Satıcı Probleminin Benzetilmiş Tavlama Yöntemiyle Çözümünde Paralel Hesaplamanın Kullanılması Gezgin Satıcı Probleminin Benzetilmiş Tavlama Yöntemiyle Çözümünde Paralel Hesaplamanın Kullanılması E M R U L L A H S O N U Ç A K A D E M I K B I L I Ş I M Ş U B A T 2 0 1 5 E M R U L L A H S O N U Ç,

Detaylı

ALGORİTMA VE PROGRAMLAMA I

ALGORİTMA VE PROGRAMLAMA I ALGORİTMA VE PROGRAMLAMA I YZM 1101 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi 2. BÖLÜM 2 PROGRAMLAMAYA GİRİŞ Programlama Terimleri ve Programlama Ortamı 3 Program Programlama IDE

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 - 2 ( yılı öncesinde 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 - 2 ( yılı öncesinde 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 - 2 (2016-17 yılı öncesinde birinci sınıfa başlayan öğrenciler için) BİRİNCİ YIL 1. Dönem CMPE113

Detaylı

TS EN ISO/IEC 9241-151 Kullanılabilir Arayüz Sertifikası Verilmesi Süreci

TS EN ISO/IEC 9241-151 Kullanılabilir Arayüz Sertifikası Verilmesi Süreci TS EN ISO/IEC 9241-151 Kullanılabilir Arayüz Sertifikası Verilmesi Süreci Nihan Ocak 1, Feride Erdal 2, Prof. Dr. Kürşat Çağıltay 3 1 Orta Doğu Teknik Üniversitesi, Bilişim Sistemleri Bölümü, Ankara 2

Detaylı

9.DERS Yazılım Geliştirme Modelleri

9.DERS Yazılım Geliştirme Modelleri 9.DERS Yazılım Geliştirme Modelleri 1 Yazılım Geliştirme Yaşam Döngüsü ve Modeller Herhangi bir yazılımın, üretim aşaması ve kullanım aşaması birlikte olmak üzere geçirdiği tüm aşamalar olarak tanımlanabilir.

Detaylı

ANKARA ÜNİVERSİTESİ A ÖĞRENCİ İŞLERİ DAİRE BAŞKANLIĞI

ANKARA ÜNİVERSİTESİ A ÖĞRENCİ İŞLERİ DAİRE BAŞKANLIĞI PROGRAM ADI : BİLGİSAYAR MÜHENDİSLİĞİ (İNGİLİZCE) 1.SINIF /1.YARIYIL* 1 COM101 COMPUTER PROGRAMMING I - - 4 2 6 5 9 2 COM113 INTRODUCTION TO COMPUTER SCIENCE - - 3 0 3 3 5 3 PHY0101 PHYSICS I - - 3 0 3

Detaylı

İŞLETİM SİSTEMİ İşletim sistemi kullanıcıyla bilgisayar donanımı arasında iletişim sağlayan programdır.

İŞLETİM SİSTEMİ İşletim sistemi kullanıcıyla bilgisayar donanımı arasında iletişim sağlayan programdır. İŞLETİM SİSTEMİ İşletim sistemi kullanıcıyla bilgisayar donanımı arasında iletişim sağlayan programdır. Programların ve donanımların kullanılması için bir çalıştırılması platformu oluşturur. Sistemin yazılım

Detaylı

Akıllı Ortamlarda Sensör Kontrolüne Etmen Tabanlı Bir Yaklaşım: Bir Jadex Uygulaması

Akıllı Ortamlarda Sensör Kontrolüne Etmen Tabanlı Bir Yaklaşım: Bir Jadex Uygulaması Akıllı Ortamlarda Sensör Kontrolüne Etmen Tabanlı Bir Yaklaşım: Bir Jadex Uygulaması Özlem Özgöbek ozlem.ozgobek@ege.edu.tr Ege Üniversitesi Bilgisayar Mühendisliği Bölümü İZMİR Sunum Planı - Giriş - Benzer

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ı

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ı

Yazılım Kalite Yönetimi (SE 554) Ders Detayları

Yazılım Kalite Yönetimi (SE 554) Ders Detayları Yazılım Kalite Yönetimi (SE 554) Ders Detayları Ders Adı Ders Kodu Dönemi Ders Saati Uygulama Saati Laboratuar Saati Kredi AKTS Yazılım Kalite Yönetimi SE 554 Bahar 3 0 0 3 7.5 Ön Koşul Ders(ler)i Dersin

Detaylı

PAZARTESİ SALI 2015-2016 Ders Programı 1. Öğretim 09.00-09.50 10.00-10.50 11.00-11.50 12.00-12.50 HRT4291 WEB TABANLI CBS GR:11 Ü.GÜMÜŞAY EZ-121 ; D1-129 HRT4291 WEB TABANLI CBS GR:22 Ü.GÜMÜŞAY EZ-121

Detaylı

Sistem Analizi ve Tasarımı DERS2

Sistem Analizi ve Tasarımı DERS2 Sistem Analizi ve Tasarımı DERS2 Bilgi Sistemi Bir amacı yerine getirmek için birbirleri ile eş güdümlü olarak çalışan elemanlar ve alt elemanlardan oluşan ve bu amaç için (bilgi) toplayan, işleyen, saklayan

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ı

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ı

NESNEYE YÖNELİK PROGRAMLAMA Unified Modelling Language (UML) Bütünleşik Modelleme Dili

NESNEYE YÖNELİK PROGRAMLAMA Unified Modelling Language (UML) Bütünleşik Modelleme Dili Özlem AYDIN NESNEYE YÖNELİK PROGRAMLAMA Unified Modelling Language (UML) Bütünleşik Modelleme Dili Trakya Üniversitesi Bilgisayar Mühendisliği Bölümü MODEL NEDİR? Model, gerçek dünyadaki bir olayın veya

Detaylı

FARKLI PROJELERDE GELİŞTİRİLEN GÖMÜLÜ YAZILIMLARIN TEST OTOMASYONU İÇİN DONANIM SİSTEMİ SİMÜLASYONU GELİŞTİRME DENEYİMİ

FARKLI PROJELERDE GELİŞTİRİLEN GÖMÜLÜ YAZILIMLARIN TEST OTOMASYONU İÇİN DONANIM SİSTEMİ SİMÜLASYONU GELİŞTİRME DENEYİMİ FARKLI PROJELERDE GELİŞTİRİLEN GÖMÜLÜ YAZILIMLARIN TEST OTOMASYONU İÇİN DONANIM SİSTEMİ SİMÜLASYONU GELİŞTİRME DENEYİMİ Ömer Faruk MORALIOĞLU 1 Önder CEZAYİRLİ 2 Murat YILMAZ 3 1,2,3 Radar Elektronik Harp

Detaylı

Bilgisayar Programlama (COMPE 102) Ders Detayları

Bilgisayar Programlama (COMPE 102) Ders Detayları Bilgisayar Programlama (COMPE 102) Ders Detayları Ders Adı Ders Kodu Dönemi Ders Saati Uygulama Saati Laboratuar Kredi AKTS Saati Bilgisayar Programlama COMPE 102 Bahar 2 2 0 3 4 Ön Koşul Ders(ler)i Dersin

Detaylı

BSM 532 KABLOSUZ AĞLARIN MODELLEMESİ VE ANALİZİ OPNET MODELER

BSM 532 KABLOSUZ AĞLARIN MODELLEMESİ VE ANALİZİ OPNET MODELER BSM 532 KABLOSUZ AĞLARIN MODELLEMESİ VE ANALİZİ OPNET MODELER Yazılımı ve Genel Özellikleri Doç.Dr. Cüneyt BAYILMIŞ Kablosuz Ağların Modellemesi ve Analizi 1 OPNET OPNET Modeler, iletişim sistemleri ve

Detaylı

Nesneye Yönelik Tasarım ve Programlama (COMPE 501) Ders Detayları

Nesneye Yönelik Tasarım ve Programlama (COMPE 501) Ders Detayları Nesneye Yönelik Tasarım ve Programlama (COMPE 501) Ders Detayları Ders Adı Ders Kodu Dönemi Ders Saati Uygulama Saati Laboratuar Kredi AKTS Saati Nesneye Yönelik Tasarım ve Programlama COMPE 501 Güz 3

Detaylı

IDE4DB Veritabanı Geliştirme Platformu Bitirme Projesi Sunumu

IDE4DB Veritabanı Geliştirme Platformu Bitirme Projesi Sunumu IDE4DB Veritabanı Geliştirme Platformu Bitirme Projesi Sunumu Onur EKER 040970627 Danışman: Yrd. Doç Dr. Feza BUZLUCA Sunum İçeriği Projenin Tanımı Projenin Amacı Projenin Analizi Projenin Çözüm Sunduğu

Detaylı