Kodlardaki Kötü Kokuları Tespit Etme Yöntemleri ve Algoritma Analizi

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

Download "Kodlardaki Kötü Kokuları Tespit Etme Yöntemleri ve Algoritma Analizi"

Transkript

1 Kodlardaki Kötü Kokuları Tespit Etme Yöntemleri ve Algoritma Analizi Aylin Güzel 1, Özlem Aktaş 2 1,2 Dokuz Eylül Üniversitesi, Bilgisayar Mühendisliği Bölümü, İzmir Özet: Yazılım geliştirme sürecinde analiz, karar verme ya da uygulamada yapılan yanlışlar kodlarda kötü kokunun ortaya çıkmasına sebep olur. Tasarım problemleri de kodlarda kötü koku şeklinde görülmektedir. Kodlardaki kötü kokular yazılımın kalitesini azaltmaktadır. Daha kaliteli, performansı yüksek, maliyeti düşük, başka bir yerde kullanılması, değiştirilmesi ve geliştirilmesi kolay yazılımlar için kodlardaki kötü kokuların yeniden düzenleme ile yok edilmesi gerekmektedir. Yeniden düzenleme basittir ancak yazılım kalitesine etkisi büyüktür. Bu çalışmada, kodlardaki kötü kokunun ne olduğu, hangi durumlarda ortaya çıkabileceği ve bunun üstesinden nasıl gelinebileceği konuları detaylı olarak anlatılmış, algoritma analizi yöntemi ile kodlardaki kötü kokunun tespit edilmesi yaklaşımı incelenmiştir. Anahtar Sözcükler: Yeniden Düzenleme, Yazılım Mühendisliği, Kötü Koku, Algoritma Analizi, Kod İnceleme, İyi Kod, Optimizasyon. Methods for Determining Bad Smells in Code and Algorithm Analysis Abstract: In software development process, analysis, decision making or mistakes made in the application causes appearing bad smells in code. Also, design problems in the code are seen as a bad smell. Bad smells in the code reduces the quality of the software. Bad smells in the code must be destroyed for better quality, high-performance, low-cost, re-use, modification and easy development of software. Refactoring is simple but has a huge impact on software quality. In this study, the topics of what the bad smell in the code is, in which situations it can occur and how the bad smell can be overcomed are studied in the literature, and detecting bad smells in code was examined by algorithm analysis approach. Keywords: Refactoring, Software Engineering, Bad Smells, Algorithm Analysis, Code Review, Good Code, Optimization. 1. Giriş Bilgisayar bilimi, kısaca bir bilgisayarın nasıl çalıştığını ve nasıl düşündüğünü öğrenmek olarak tanımlanabilir. Bilgisayarın işleyişini anlamak da yazılımcının nasıl düşünmesi ve bilgisayara nasıl yaklaşması gerektiğini anlamasını sağlar. Bu sayede bilgisayara istenilen her türlü işlem yaptırılabilinir. Yazılımcı ya da yazılım geliştirme ekibindeki diğer uzmanlar gerçekleştirimini yapmak istedikleri sistemi yanlış analiz ettiklerinde, sistem hakkında yanlış kararlar verdiklerinde, düşündükleri doğru şeyleri sistem için yanlış uyguladıklarında, yazılım geliştirme prensiplerini göz ardı ederek çalışmalarına devam ettiklerinde, sadece anı kurtarmak adına karmaşık, okunabilirliği ve anlaşılabilirliği zayıf olan kod yazdıklarında, kodda kötü koku meydana gelir. Koddaki kötü kokular, sistemdeki potansiyel problemlerin bir göstergesidir. Bu noktada doğru karar vererek yazılıma müdahale edip, yazılımın performansını, okunabilirliğini, esnekliğini, anlaşılabilirliğini arttırmak amaçlanmalıdır.

2 Bu amaçlar doğrultusunda yapılması gereken işlem Yeniden Düzenleme (ing. Refactoring) olarak adlandırılır. Yeniden Düzenleme, yazılımı daha basit, daha anlaşılır, değiştirmesi daha kolay ve yazılımın okunabilirliğini yüksek bir seviyeye getirerek yazılımın performansını iyileştirmeyi amaçlamaktadır. Aynı zamanda kodlarda yeni hiyerarşiler kurarak kodların daha kolay geliştirilebilir, değiştirilebilir, tanınabilir, başka projelerde kullanılabilir hale gelmesine yardımcı olur. Belirtilen hedefleri temel alarak kodun iç yapısını değiştiren ancak dış yapısında herhangi bir değişikliğe neden olmayacak şekilde yapılan düzenlemeler bütününe Yeniden Düzenleme denmektedir. Kodun hali hazırda yaptığı işin, koda Yeniden Düzenleme uygulanması öncesi ve sonrasında aynı kalması durumu, kodun dış yapısında değişim meydana gelmemesi olarak ifade edilir. Kodun iç yapısını değiştirmek için kullanılabilecek Yeniden Düzenleme yöntemlerinden bazıları aşağıdaki gibidir[2][3][5]: Tekrar eden kodları ayrı fonksiyonlara ayırmak, İlgili rutinleri bir sınıf altında toplamak, Değişken isimlerini işlevine uygun şekilde değiştirmek, Algoritmaları daha hızlı çalışır hale getirmek, Gerekli durumlarda metotların isimlerini; yaptıkları işi metotların isimlerinden anlaşılacak şekilde değiştirmek, Aynı kod yapısının birden fazla alanda olduğu durumlarda bu kodu programda tek olacak şekilde düzenlemek, Uzun metotları okunması ve bakımının daha kolay olması için kısa hale getirmek, Çok uzun döngülerde döngünün iç kısmındaki kod bloğunu kısa tutmak ve bu amaçla değişkenleri mümkün olduğunca döngünün dışında tanımlamak, Okunabilirliği ve debug modda kodun takibini azalttığı için iç içe çok fazla döngü kullanmamak, Aşırı parametre alan metotların yaptıkları işleri azaltmak için bölmek yani parametre sayılarını azaltmak, Basit veri tiplerinin aşırı yüklenmesini önlemek için değişkene uygun olmayan, programı yoracak ve gereğinden fazla bellek ayrılmasına neden olacak veri tipini kullanmamak, Mevcut kodda işe yaramayan ya da içerisinde çok az işi barındıran sınıfları gerekli ve uygun koşullar sağlandığı taktirde silmek, İleride lazım olur düşüncesiyle daha önce yazdığımız ancak mevcut durumda kullanılmayan kodları yorum olarak programda tutmamak, Kodu yeterince açık ve temiz yazmak yerine; programı yapılan işin anlaşılması için gereksiz yorumlarla boğmamak, Sınıf isimlerini amacına uygun olarak belirlemek, Ucu açık sınıf tanımlamamak; oluşturulan sınıf kendisinden beklenenden daha fazla işi yapıyorsa ilgisiz görevleri başka bir sınıf oluşturarak bu sınıfta toplamak ya

3 da program içerisinde ilgili olabilecek bir sınıfa taşımak, Ait olduğu sınıftan ziyada başka bir sınıftan özellik kullanan metotları ilgili sınıfa taşıyarak mevcut sınıf içerisinden çağırmak, Birbirine benzer işler yapan iki metodu kodu tekrarlamamak için tek metotta birleştirerek parametreye göre ilgili kısmın çalışmasını sağlamak, Aldığı parametreye göre birbirinden farklı iki iş yapan metodu ikiye bölmek, Bir nesnenin alanlarını metotta tek tek işlemek yerine, tüm nesneyi parametre olarak geçmek, Metod içerisinde bir objenin sadece bir ya da iki alanının kullanılacağı durumlarda objeyi metoda geçmek yerine ihtiyaç duyulan alanları kullanmak, Karmaşık mantıksal koşullardan kaçınmak, Hatırlanılması gereken her şeyi kodun kendisinin içerisine koymak. Yeniden Düzenleme daima temiz kodu hedefler, kodu temizlemek için etkili ve kontrollü bir teknik sağlar. Çoğu zaman yazılımda anı kurtarmak adına yeterince etkin olmayan çözümler üretilebilir. Bilgisayara ne yapılması gerekiyorsa bunu söylemek ve yapılması gereken görevlerin mevcut programda gerçekleştiğini görmek çoğu yazılımcı için yeterlidir. Ancak böyle bir durumun ileride sebep olabileceği durumlar yazılımcı tarafından tahmin edilmelidir. Yazılımcı yazılım geliştirme sürecine, yapılması istenen sistemin tüm gereksinimlerine, doğru düşünüp doğru çözüm üretmeye ve okunabilirliği, işlevi tam olan doğru ve düzenli programlar yazmaya hakim olmalıdır. Daima daha ileriyi düşünerek hareket etmelidir. Yazılımcı, süreç içerisinde, nasıl daha iyi kod yazılabilir, yazılımdan nasıl daha iyi bir performans elde edilebilir, yazılan kod başka bir sisteme kolayca entegre edilebilecek kadar doğru ve temiz midir, bir sonraki yazılımcı kodu adete gazete okur gibi okuyabilecek mi ya da sisteme müdahale edip kod üzerinde kolay bir şekilde değişiklik yapabilecek midir ve en önemlisi de gerçekten bu yazılan en iyi çözüm müdür gibi kaygılar taşımalıdır. Aksi taktirde, yazılmış olan kodu belli bir süre sonra değiştirmek isteyen yazılımcı, kodu doğru anlayıp, doğru müdahale edemeyebilir ve yapmak istediği değişikler çok uzun zaman alabilir. Bu da hem kişisel hem kurumsal motivasyon bozukluğuna, hem de maliyetin artmasına neden olabilir. Bazı durumlarda yazılımın performansını ihmal edilebilecek kadar etkileyen küçük kötü kokular göz ardı edilebilir. Ancak esnekliği, tanınırlığı, okunurluğu ve anlaşılabilirliği kötü olan kodlar mevcut yazılımcıyı kurtarsa bile sonraki yazılımcı için kabus olacaktır. Bu yüzden daima ya sonrası? düşüncesi yazılımcının aklında olmalıdır. Yazılımı yeniden düzenlemek için kötü kokunun ortaya çıkması beklenmemelidir. Her aşamada kod tekrar gözlenerek eksiklikler giderilmelidir, çünkü küçük detaylar dahi olsa, kod üzerinde Yeniden Düzenleme yapmamak, kodun daha temiz olma durumunu engeller. Çünkü küçük detaylar üzerinde Yeniden Düzenleme yapmak, tasarımda daha önce göremediğimiz eksiklikleri ya da yanlışlıkları fark etmemize yardımcı olur. Bu durum aynı zamanda iyi bir tasarım yapmayı kolaylaştırır. Ayrıca, tasarım desenlerinin yazılımda daha etkin bir şekilde kullanılmasına imkan sağlar.

4 2. Literatüre Genel Bakış Mens ve Tourwe [12], çalışmalarında Yeniden Düzenleme ve Yeniden Yapılandırma (ing. Restructuring) kavramlarına açıklık getirmiştir. Çalışan bir kod yapısı için gerekli olan Yeniden Düzenleme yöntemlerini uygulamış ve tasarımı daha anlaşılır, kolay müdahale edilebilir, nesneye dayalı tasarım ilkelerine uygun hale getirmiştir. Çalışmada yanlış tasarlanmış Doküman sınıf hiyerarşisi uygun Yeniden Düzenleme metodları kullanılarak ve bu metodların ne zaman, nerede, hangi durumlarda kullanılacağı örnek üzerinden açıklanarak tasarım optimum hale getirilmiştir. Çalışmada kullanılan yanlış tasarım örneği Şekil 1 de gösterilmiştir. Şekil 1. Doküman Sınıf Hiyerarşisi ve Yardımcı Sınıflar Şekil 1 de gösterilen hiyerarşide, Doküman sınıfının farklı işlevlerinin alt sınıflara dağıtılmasından dolayı ve Doküman sınıfına yeni bir özellik eklenmek istenildiğinde (metin arama, yazım denetimi vb.) Doküman sınıfının bütün alt sınıflarının değiştirilmesi gerektiği için tasarımın optimum olmadığı ve belirtilen sorunları çözmek için tasarımda Yeniden Düzenleme yapılması gerektiği belirtilmiştir. Tasarıma Visitor sınıfı eklenerek bütün alt sınıfları içinde barındırması sağlanmış, gerekli metod ve değişken isim değişiklikleri, uygun yerlere gerekli metotların taşınması, yeni sınıf ekleme gibi temel Yeniden Düzenleme yöntemleri kullanılarak tasarım optimum duruma getirilmiştir. Yeniden Düzenleme yöntemiyle uygun hale getirilen tasarım Şekil 2 de gösterilmiştir. Şekil 2. Yeni Doküman Sınıf Hiyerarşisi Liu ve arkadaşları [9], çalışmalarında yazılımların niçin ve hangi durumlarda yeniden yapılandırılması gerektiğini vurgulamıştır. Koddaki kötü kokuların araç desteği ile otomatik veya yarı otomatik bir şekilde tespit edilebileceğini ve çözümlenebileceğini belirtmişlerdir. Ancak bu noktada araç tarafından otomatik olarak tespit edilen kötü kokuların manuel olarak tekrar kontrol edilmesi gerektiği çünkü araç yardımıyla tespit edilen kötü kokuların doğruluğunun % 100 garanti altında olmadığı belirtilmiştir. Ayrıca, Yeniden Düzenleme kuralları doğrultusunda yazılım mühendislerinin koddaki kötü kokuları belirleyerek yeniden yapılandırabilecekleri de vurgulanmıştır. Yeniden Düzenleme kurallarının hepsinin araçlar tarafından desteklenmediği ve Yeniden Düzenleme kurallarının, araçlar tarafından desteklenen kurallara göre çok hızlı arttığı, koddaki kötü kokuları tespit etmenin araç desteği olsa bile zaman harcayıcı olduğu belirtilmiştir. Bazı kötü kokuların çözümlenmesinin, koddaki diğer kötü kokuların tespit edilmesini ve çözümlenmesini etkileyebileceği vurgulanmıştır. Örneğin, kötü kokulara sahip bir programda tekrar eden kod bloklarının uzun metotlara sebep olabileceği belirtilmiş ve eğer tekrar eden kod bloğu ortadan kaldırılırsa uzun metodun da kendiliğinden temiz kod standartlarına dönüşebileceği belirtilmiştir. Koddaki kötü

5 kokuların tespiti ve çözümlenmesinin akışı Şekil 3 de gösterilmiştir. Şekil 3. Kötü kokuları tespit etme ve çözümleme Chatzigeorgiou ve Manakos [1], çalışmalarında tasarımın ve analizin etkili olmamasının kodda kötü kokulara sebep olacağını, yazılımdaki tasarım problemlerinin yani koddaki kokuların çözümünün Yeniden Yapılandırma yapmak olduğunu belirtmişlerdir. Çalışmalarında geçerli bir Java kodu üzerinde JDeodarant Tool kullanılarak dört kötü koku tespit etmişlerdir. Uzun metodlar, boyutu büyük, karmaşıklığı yüksek, uyumu düşük; anlaşılırlığı, hata ayıklanması, test edilmesi ve bakımının yapılması çok zaman ve çaba isteyen kötü kokular olarak tanımlanmıştır. Bu problem, metodu daha küçük parçalara ayırarak ya da araç yardımıyla otomatik olarak tespit edilerek çözümlenmiştir. Geniş ve karmaşık sınıfları tespit etmek için ( God Class) JDeodarant Tool Kümeleme Algoritması yaklaşımı kullanılmıştır. Durum Kontrolü (ing. State Checking) olarak ifade edilen Şart ya da Eğer (ing. Switch or if/else) ifadeleri programın farklı yerlerinde görüldüklerinde, kodda Durum/Strateji (ing. State/Strategy) Tasarım Deseni eksikliği olduğu tespit edilmiştir. Bu kötü kokuyu JDeodarant Tool yardımıyla tespit etmek de mümkündür. Khomh ve arkadaşları [8], bugüne kadar gerek araştırmacıların gerekse uygulayıcıların koddaki ve tasarımdaki kötü kokuları tespit etmek için çeşitli yaklaşımlar geliştirdiklerini ancak bu yaklaşımların hiç birisinin kötü kokuyu tespit etme sürecindeki belirsizliği çözümleyemediğini belirtmiştir. Koddaki kötü kokuların tespiti için Bayes Yaklaşımı (BBNs) kullanılmıştır. Yaklaşım Blob AntiPattern üzerinde gösterilmiştir. BBN iki test program üzerinde değerlendirilmiş ve başarılı olduğu gözlenmiştir. Moha [13], çalışmasında zayıf tasarım kararlarından kaynaklanan tasarım kusurlarının nesneye dayalı tasarımların kalitesini azaltıcı bir etkiye sahip olduğunu, tasarım kusurlarının kesin bir şekilde tespit edilmesi ve düzeltilmesi için çok az sayıda yazılım aracı bulunduğunu, çalışmanın hedefinin tasarım kusurlarını kesin bir şekilde belirleyen ve tasarım kusurlarının ayrıntılarından otomatik tespit ve düzeltme yapan sistematik bir yaklaşım oluşturmak olduğunu belirtmiştir. Metodun ismi DECOR (Defect detection for CORrection) olarak belirlenmiş olup, oluşturulan metodun tasarım kusurlarını kesin olarak tespit ettiği ve uygun şekilde tasarım kusurlarını düzelttiği görülmüştür. DECOR, sırasıyla tasarım kusurunu açıklama, tespit etme, düzeltme ve doğrulama işlemlerini temel alır. Malhotra ve Pritam [10] nesneye dayalı bir sistemdeki mevcut kötü kokuların bir sınıf için tespit edilme eğilimini deneysel olarak onaylamak amacıyla bu çalışmayı gerçekleştirdiler. Quartz olarak adlandırılan açık kaynak zamanlayıcıdan 79 sınıf alarak veri seti olarak kullandılar. Eğilimi düşük ve yüksek olarak sınıflandırdılar. Quartz ın her iki versiyonu için ortak olan 79 sınıf için yapılan çalışmada, yüksek değişim eğilimindeki sınıfların gerçek sayısı 65 iken, çalışmadaki tahmin edilme durumu 53 tür. Benzer şekilde düşük değişim eğilimindeki sınıfların gerçek sayısı 14 iken çalışmada 26 olarak tahmin edilmiştir. Ayrıca Java sınıflarındaki 13 farklı kötü kokuyu tespit

6 etmek için eşik değerleri kullanılarak bir araç geliştirilmiştir. Schumacher ve arkadaşları [15], çalışmalarında kodda kötü kokuya neden olan geniş çaplı sınıfların ( God Class) profesyonel yazılım geliştiriciler tarafından nasıl tanındığını ve bu sınıflara nasıl çözüm getirdiklerini araştırmıştır. Devasa sınıflar çoklu sınıflara bölünerek ya da alt sınıflar bu devasa sınıftan çıkartılarak koddaki kötü kokuya çözüm getirilebilineceği belirtilmiştir. CodeVizard yazılım aracı ile metrik tabanlı yaklaşım devasa sınıfların tanınmasında kullanılmıştır. Bu bileşen C# programlarını ayrıştırmak ve kod metriklerini hesaplamak için kullanılmaktadır. Çalışmada çok büyük sınıfları, hem insanların hem de araçların tespit edebileceği ve başarı oranlarının yüksek olduğu kanıtlanmıştır. Kessentini ve arkadaşları [7], çalışmalarında Darvin in evrim teorisinden esinlenilerek ortaya çıkmış olan Genetik Algoritma yı koddaki kötü kokuları iyileştirmek için kullanmışlardır. Referans kodu ile kötü kokuları düzeltmek için kullanılan genel yaklaşım Şekil 4 te gösterilmiştir. Şekil 4. Yaklaşımın genel mimarisi Genetik Algoritmada sonuçlar vektör olarak gösterilmektedir. Çaprazlama ve mutasyon kullanılarak arama uzayı oluşturulmuştur. Koddaki kusuru düzeltmek için uygulanan Genetik Algoritma yaklaşımının sözde kodu aşağıdaki gibidir: 2: Pop:= set_of(i) 3: initial_population(pop, Max_size) 4: repeat 5: for all I Pop do 6: new_code := execute_refactorings(i, D) 7: fitness(i) := compare(rc, new_code) 8: end for 9: best_solution := best_fitness(i); 10: Pop := generate_new_population(pop) 11: it:=it+1; 12: until it=max_it or best_fitness fitness_threshold 13: return best_solution Kod kusurlarının düzeltilmesi için kullanılan yaklaşım açık kaynaklı sistemlerde test edilmiş ve başarılı olduğu gözlemlenmiştir. Rech ve Schäfer [14], yazılım sistemlerinin kalitesini iyileştirmek amacıyla CodeSonar aracını geliştirmişlerdir. CodeSonar, yazılım geliştirme ve bakım süreçleri boyunca tasarım kusurlarını göstermek için tasarlanmıştır. Nesneye dayalı sistemlerde koddaki kusurları otomatik olarak tanımayı ve göstermeyi hedeflemiştir. Eclipse yazılım geliştirme ortamı için geliştirilen sistem sınıfları, bu sınıfların metodları arasındaki ilişkileri ve başka sınıfları görselleştirir ve yazılım sistemindeki potansiyel kusurlar için geliştiriciyi uyarır. Bu çalışmada, koddaki kusurların keşfi ve yazılım görselleştirme için yazılım kontrolü, yazılım testi, yazılım ürün metrikleri, yazılım görselleştirme ve Yeniden Düzenleme teknikleri kullanılmıştır. Çalışmada CodeSonar aracının kullanımı detaylı olarak açıklanmış, basit ve anlaşılır bir araç olduğu belirtilmiştir. Input: Set of reference code RC Input: Set of refactorings RO Input: Code containing bad-smells D Output: Refactorings sequence RS 1: I:= combination(ro)

7 3. Koddaki Kötü Kokular ve Algoritma Analizi Algoritma bir problemi çözmek için uygulanan ardışık adımlar dizisidir ve bilgisayar biliminin temelini oluşturur. Bir algoritmadan beklenen hızlı çalışması ve bellekte az yer kaplamasıdır [4]. İyi bir algoritma daima en iyi performansı hedefler. Algoritma analizi algoritmaların performansını ölçmek için, farklı algoritmalarla karşılaştırmak için, daha iyisi mümkün mü, mevcut çözüm en iyi olan mi sorularına yanıt bulmak için kullanılır. Bir algoritmanın performansı iç (çalıştırmak için gereken zaman ve çalıştırmak için gereken yer) ve dış faktörlere (girdi verisinin büyüklüğü, bilgisayarın hızı, derleyicinin kalitesi) bağlıdır [6]. Koddaki kötü kokular yazılımda performans kaybına neden olur [2]. Performans kaybı ise yazılımın maliyetin yükselmesine, motivasyon bozukluğuna; taşınabilirliği, değiştirilebilirliği ve okunabilirliği zor olan kodların ortaya çıkmasına neden olur. Yazılımın performansını iyileştirmek için Yeniden Düzenleme kullanılmalıdır. Algoritmanın iç detaylarına bakılarak algoritmanın performansını tanımlamak için matematiksek bir yaklaşım olan Büyük O notasyonu kullanılır. Büyük-O notasyonu bir algoritmanın büyüme hızını gösterir ve büyüme hızı da bir algoritmanın performansını yansıtan en iyi göstergedir [6]. Koddaki kötü kokular Yeniden Düzenleme metodlarına göre yazılım mühendisi bakış açısıyla ya da araç yardımıyla tespit edilip, elle ya da yazılım aracı yardımıyla çözümlenebilir. Birçok çalışmada koddaki kötü kokunun tespitinde yanılmalar gözlenmiştir. Bu eksikliğin giderilebilmesi amacıyla, birçok Yeniden Düzenleme kuralı için, yazılım mühendisinin ya da yazılım aracının koddaki kötü kokuları doğru olarak tespit edip etmediğinin Algoritma Analizi yaklaşımı kullanılarak doğrulanabileceği öngörülmektedir. Bu doğrultuda, çok uzun döngülerin, iç içe çok fazla kullanılan döngü yapılarının, aşırı parametre alan metotların ve devasa sınıfların programı yorduğunun kanıtlanmasında Algoritma Analizi yaklaşımı kullanılabilecektir. 4. Sonuç ve Öneriler Bu çalışma, yazılım geliştirme süreci temel alınarak, yazılım mühendisliği disiplini çerçevesinde hazırlanmış olup, kodda kötü koku olarak bilinen tasarım yanlışlarının aslında sistemi analiz etme, sistem için karar verme ya da uygulamadaki eksiklik ve ihmallerden kaynaklandığı vurgulanmıştır. Kodlardaki kusurlar, Yeniden Düzenleme kuralları çerçevesinde bir yazılım aracı kullanılarak ya da yazılım mühendisinin tecrübesi sayesinde kodda kötü kokuların olduğuna karar vermesiyle tespit edilebilir. Ancak bu noktada bazı sorunlar göze çarpmaktadır. Birincisi, yazılım mühendisinin yanlış kararlar verme ihtimalidir. İkincisi, yazılım mühendisinin bakış açısı ve tecrübesi kullanılarak koddaki kötü kokuyu tespit etme ve çözümleme işlemlerinin çok uzun zaman almasının, maliyet ve işgücü kaybına neden olmasıdır. Daha önce yapılan çalışmalarda, koddaki kötü kokuyu tespit etmek için kullanılan yazılım araçlarının mevcut Yeniden Düzenleme yöntemlerinin tamamını içermediği, sadece belli bir kısmını tespit edebildiği ve çözüm üretebildiği görülmüştür. Yazılım araçlarının gelişme hızıyla yeni kod kusurlarının ortaya çıkmasının aynı ya da yakın hızlarda olmaması bu durumun en önemli sebebidir. Bu çalışmada literatür incelemesi detaylı olarak yapılmış, eksikler vurgulanarak gelecekte yapılacak çalışmalar için yol göstermesi hedeflenmiştir. Gelecek çalışmalarda, koddaki kötü kokular araç ya da yazılım mühendisi bakış açısıyla tespit edilecek ve Algoritma Analizi yöntemiyle kodda bulunan birçok kötü kokunun yazılımın performansını olumsuz olarak ne derece etkilediği kanıtlanmaya çalışılacaktır.

8 5. Kaynaklar [1] Chatzigeorgiou, A., Manakos, A., "Investigating the evolution of code smells in object-oriented systems", Innovations System Software Engineering, 10, 3-18, (2014). [2] Fowler, M., Beck, K., Brant, J., Opdyke, W., Roberts, D., Refactoring: Improving the Design of Existing Code, Addison-Wesley Professional(2002). [3]http://analystdeveloper.com/blogs/gurkan/ archive/2006/03/19/3060.aspx, [Date Accessed: 7 Oct 2014 ]. [4]http://bilgisayarkavramlari.sadievrenseker. com/2010/09/24/algoritma-analizi-analysisof-algorithms/, [Date Accessed: 3 Oct 2014 ]. [5] https://www.kemalkefeli.com/refactoringnedir.html, [Date Accessed: 7 Oct 2014 ]. [6]http://www.erdalguvenoglu.com/veriyapila ri/algoritma_analizi.pdf/, [Date Accessed:3 Oct 2014]. [10] Malhotra, R., Pritam, N.," Assessment of Code Smells for Predicting Class Change Proneness", Software Quality Professional, 15(1), (2012). [11] Mehlhorn, K. & Sanders, P., "Algorithms and Data Structures", Springer,(2008) [12] Mens, T. & Tourwe, T., " A Survey of Software Refactoring", IEEE Transactions on Software Engineering, 30(2), (2004). [13] Moha, M., "Detection and Correction of Design Defects in Object-Oriented Designs", OOPSLA 07, Canada, (2007). [14] Rech, J. & Schäfer, W., "Visual Support of Software Engineers during Development and Maintenance", ACM SIGSOFT Software Engineering Notes, 32(2), (2007). [15] Schumacher, J., Zazworka, N., Shull, F., Seaman, C., Shaw, M., "Building Empirical Support for Automated Code Smell Detection", ESEM 10, Italy, (2010). [7] Kessentini, M., Mahaouachi, R., Ghedira, K., "What you like in design use to correct bad-smells", Software Qual J, 21: (2013). [8] Khomh, F., Vaucher, S., Gueheneuc, Y., Sahraoui, H., " A Bayesian Approach for the Detection of Code and Design Smells", Ninth International Conference on Quality Software, ,(2009). [9] Liu, H., Zhiyi, M., Shao, W., Niu, Z., "Schedule of Bad Smell Detection and Resolution: A New Way to Save Effort ", IEEE Transactions on Software Engineering, 38(1), (2012).

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ı

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ı

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

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

Detaylı

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

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

Detaylı

GRI Uygulama Seviyeleri 2000-2006 GRI. Versiyon 3.0

GRI Uygulama Seviyeleri 2000-2006 GRI. Versiyon 3.0 AL Kısa genel açıklama Bir raporun GRI İlkelerine dayandırıldığını göstermek için, rapor hazırlayıcıları Uygulama Seviyeleri sistemini kullanarak GRI Raporlama Çerçevesini hangi seviyede uygulamış olduklarını

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ı

T.C. MALTEPE ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ YAZILIM MÜHENDİSLİĞİ LİSANS PROGRAMI. 2011-12 Bahar Yarıyılı

T.C. MALTEPE ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ YAZILIM MÜHENDİSLİĞİ LİSANS PROGRAMI. 2011-12 Bahar Yarıyılı T.C. MALTEPE ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ YAZILIM MÜHENDİSLİĞİ LİSANS PROGRAMI 2011-12 Bahar Yarıyılı ALGORİTMA VE PROGRAMLAMA BİL 133 5 AKTS Kredisi 1. yıl 1. yarıyıl Lisans Zorunlu 4 saat/hafta

Detaylı

Makine Öğrenmesi İle Duygu Analizinde Veri Seti Performansı

Makine Öğrenmesi İle Duygu Analizinde Veri Seti Performansı Makine Öğrenmesi İle Duygu Analizinde Veri Seti Performansı Hatice NİZAM İstanbul Üniversitesi Bilgisayar Mühendisliği Bölümü haticenizam@outlook.com Saliha Sıla AKIN ERS Turizm Yazılım Şirketi, Bilgisayar

Detaylı

BİL-142 Bilgisayar Programlama II

BİL-142 Bilgisayar Programlama II BİL-142 Bilgisayar Programlama II (C/C++) Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Konular Giriş Kontrol Yapıları if Seçme Deyimi if... else Seçme Deyimi while Tekrar

Detaylı

Bulanık Mantık Tabanlı Uçak Modeli Tespiti

Bulanık Mantık Tabanlı Uçak Modeli Tespiti Bulanık Mantık Tabanlı Uçak Modeli Tespiti Hüseyin Fidan, Vildan Çınarlı, Muhammed Uysal, Kadriye Filiz Balbal, Ali Özdemir 1, Ayşegül Alaybeyoğlu 2 1 Celal Bayar Üniversitesi, Matematik Bölümü, Manisa

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ı

Kaynak Kod Güvenliği Bir Güvensiz API Örneği

Kaynak Kod Güvenliği Bir Güvensiz API Örneği Kaynak Kod Güvenliği Bir Güvensiz API Örneği Bedirhan Urgun, Ağustos 2010, WGT E-Dergi 6. Sayı Bu yazıda Tomcat J2EE kısmi uygulama sunucusunda bulunan bir güvenlik açığına, güvenlik probleminin kaynağına

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ı

Sunum İçeriği. Programlamaya Giriş 22.03.2011

Sunum İçeriği. Programlamaya Giriş 22.03.2011 Programlamaya Giriş Nesne Tabanlı Programlamaya Giriş ve FONKSİYONLAR Sunum İçeriği Nesne Tabanlı Programlama Kavramı Fonksiyon tanımlama ve kullanma Formal Parametre nedir? Gerçel Parametre nedir? Fonksiyon

Detaylı

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

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

Detaylı

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

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

Detaylı

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

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

Detaylı

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ı

DERS BİLGİ FORMU. IV Türkçe Zorunlu Ders. Haftalık. Ders. Okul Eğitimi Süresi. Saati

DERS BİLGİ FORMU. IV Türkçe Zorunlu Ders. Haftalık. Ders. Okul Eğitimi Süresi. Saati DERS BİLGİ FORMU DERSİN ADI SİSTEM ANALİZİ VE TASARIMI I BÖLÜM PROGRAM DÖNEMİ DERSİN DİLİ DERS KATEGORİSİ ÖN ŞARTLAR SÜRE VE DAĞILIMI KREDİ DERSİN AMACI ÖĞRENME ÇIKTILARI VE YETERLİKLER DERSİN İÇERİĞİ

Detaylı

AKIŞ ŞEMASI AKIŞ ŞEMASI AKIŞ ŞEMASI ŞEKİLLERİ GİRİŞ

AKIŞ ŞEMASI AKIŞ ŞEMASI AKIŞ ŞEMASI ŞEKİLLERİ GİRİŞ GİRİŞ AKIŞ ŞEMASI Bir önceki ünitede algoritma, bilgisayarda herhangi bir işlem gerçekleştirmeden ya da program yazmaya başlamadan önce gerçekleştirilmesi düşünülen işlemlerin belirli bir mantık ve plan

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ı

https://twitter.com/farukbozan 19 Şubat 2016 Cuma

https://twitter.com/farukbozan 19 Şubat 2016 Cuma Bugünkü yazımda çok basit ve temel anlamda Spring ile XML tanım tabanlı bean okuma işlemini anlatmaya çalışacağım. Spring framework bizim yerimize nesnelerin birbirine olan bağımlılıklarını düzenleyip,

Detaylı

ŞİKAYET / İTİRAZ VE GERİ BİLDİRİM PROSEDÜRÜ

ŞİKAYET / İTİRAZ VE GERİ BİLDİRİM PROSEDÜRÜ Sayfa No: 1/5 A. İÇİNDEKİLER Bölüm KONU SAYFA NO REFERANS STANDART MADDESİ TS EN ISO IEC 17020:2012 A. İÇİNDEKİLER 1 B. ŞİKAYET / İTİRAZ VE GERİ BİLDİRİM 2 7.6 1. AMAÇ 2 2. KAPSAM 2 3. SORUMLULUK 2 3.1

Detaylı

TS EN ISO 9001:2008 Kalite Yönetim Sistemi Kurum İçi Bilgilendirme Eğitimi ISO 9001 NEDİR?

TS EN ISO 9001:2008 Kalite Yönetim Sistemi Kurum İçi Bilgilendirme Eğitimi ISO 9001 NEDİR? ISO 9001 NEDİR? ISO 9001, tüm imalat ve hizmet şirketleri için hazırlanmış olan ve Kalite Yönetim Sistemi nin gereklerini belirleyen uluslararası bir standarttır. Kurumun mal veya hizmet üretimindeki tüm

Detaylı

Üst Düzey Programlama

Üst Düzey Programlama Üst Düzey Programlama JSP Üst Düzey Programlama-ders04/ 1 JSP JSP durağan HTML ile dinamik oluşturulan içeriği birleştirmeyi sağlar. Bir web sayfası tasarlama programı ile web sayfasını tasarlar daha sonra

Detaylı

Gereksiz Kodlar. burada if deyiminin else bölümüne gerek var mı? İfade doğruysa zaten fonksiyon geri dönüyor. Bu aşağıdakiyle tamamen eşdeğerdir:

Gereksiz Kodlar. burada if deyiminin else bölümüne gerek var mı? İfade doğruysa zaten fonksiyon geri dönüyor. Bu aşağıdakiyle tamamen eşdeğerdir: Gereksiz Kodlar Kaan Aslan 9 Temuz 1997 Kapalı spor salonu, durak yeri, taşıt aracı, en optimum, geri iade etmek, davranış biçimi Bu ifadelerde bir gariplik var, değil mi? Açık spor salonu göreniniz var

Detaylı

Deneyim Raporu. , Ankara, Türkiye. {gokhan.urul, gokalp.urul}@intest.com.tr. vahid.garousi@atilim.edu.tr

Deneyim Raporu. , Ankara, Türkiye. {gokhan.urul, gokalp.urul}@intest.com.tr. vahid.garousi@atilim.edu.tr Deneyim Raporu Gökhan Urul 1, Vahid Garousi 2,3, Gökalp Urul 1 1: Ankara, Türkiye {gokhan.urul, gokalp.urul}@intest.com.tr 2:, Ankara, Türkiye vahid.garousi@atilim.edu.tr 3: Kalgari Üniversitesi Kalgari,

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ı

EBG101 PROGRAMLAMA TEMELLERİ VE ALGORİTMA

EBG101 PROGRAMLAMA TEMELLERİ VE ALGORİTMA 3. HAFTA EBG101 PROGRAMLAMA TEMELLERİ VE ALGORİTMA Öğr. Gör. S. M. Fatih APAYDIN apaydin@beun.edu.tr EMYO Bülent Ecevit Üniversitesi Kdz. Ereğli Meslek Yüksekokulu PROBLEM ÇÖZME (PROBLEM SOLVING) nereden

Detaylı

SiSTEM ANALiZi ve TASARIMI

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

Detaylı

Java da Soyutlama ( Abstraction ) ve Çok-biçimlilik ( Polymorphism )

Java da Soyutlama ( Abstraction ) ve Çok-biçimlilik ( Polymorphism ) Java da Soyutlama ( Abstraction ) ve Çok-biçimlilik ( Polymorphism ) BBS-515 Nesneye Yönelik Programlama Ders #9 (16 Aralık 2009) Geçen ders: Java Applet lerde bileşen yerleştirme türleri ( applet layouts

Detaylı

2011 Third International Conference on Intelligent Human-Machine Systems and Cybernetics

2011 Third International Conference on Intelligent Human-Machine Systems and Cybernetics 2011 Third International Conference on Intelligent Human-Machine Systems and Cybernetics Özet: Bulanık bir denetleyici tasarlanırken karşılaşılan en önemli sıkıntı, bulanık giriş çıkış üyelik fonksiyonlarının

Detaylı

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

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

Detaylı

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ı

public static int Toplam int x, int y

public static int Toplam int x, int y static Kavramı 1 İçinde bulunduğu sınıftan nesne oluşturulmadan veya hiç bir nesneye referans olmadan kullanılabilen üyeler static olarak nitelendirilir. Metotlar ve alanlar static olarak tanımlanabilir.

Detaylı

Algoritma ve Akış Diyagramları

Algoritma ve Akış Diyagramları Algoritma ve Akış Diyagramları Bir problemin çözümüne ulaşabilmek için izlenecek ardışık mantık ve işlem dizisine ALGORİTMA, algoritmanın çizimsel gösterimine ise AKIŞ DİYAGRAMI adı verilir 1 Akış diyagramları

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ı

Zeynep ALTAN Yazılım Mühendisliği Bölümü Beykent Üniversitesi, Mühendislik-Mimarlık Fakültesi zeynepaltan@beykent.edu.tr

Zeynep ALTAN Yazılım Mühendisliği Bölümü Beykent Üniversitesi, Mühendislik-Mimarlık Fakültesi zeynepaltan@beykent.edu.tr Zeynep ALTAN Yazılım Mühendisliği Bölümü, Mühendislik-Mimarlık Fakültesi zeynepaltan@beykent.edu.tr Akademik Bilişim 10 12 Şubat 2010 Yazılım Mühendisliği Farklı bir lisans eğitimi niçin gereklidir? Bilgisayar

Detaylı

ELN1001 BİLGİSAYAR PROGRAMLAMA I

ELN1001 BİLGİSAYAR PROGRAMLAMA I ELN1001 BİLGİSAYAR PROGRAMLAMA I DEPOLAMA SINIFLARI DEĞİŞKEN MENZİLLERİ YİNELEMELİ FONKSİYONLAR Depolama Sınıfları Tanıtıcılar için şu ana kadar görülmüş olan özellikler: Ad Tip Boyut Değer Bunlara ilave

Detaylı

B03.10 Algoritmalari Uygulamak : Durum 3 (Yuvalı Kontrol Yapıları) Şimdi başka bir problem üzerinde çalışalım.

B03.10 Algoritmalari Uygulamak : Durum 3 (Yuvalı Kontrol Yapıları) Şimdi başka bir problem üzerinde çalışalım. 85 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B03) Şimdi başka bir problem üzerinde çalışalım. Algoritmamızı yine sahte kod ve yukarıdan aşağıya adımsal iyileştirmeyle oluşturacağız

Detaylı

İnternet Destekli Temel Bilgisayar Bilimleri Dersinde Anket Uygulaması

İnternet Destekli Temel Bilgisayar Bilimleri Dersinde Anket Uygulaması İnternet Destekli Temel Bilgisayar Bilimleri Dersinde Anket Uygulaması Yalçın Ezginci Selçuk Üniversitesi Elk.-Elt.Mühendisliği Konya ANKET Anket, insanlardan fikirleri, duyguları, sağlıkları, planları,

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ı

abstract Sınıflar 1 Sınıf sınıf1 new class Ama aşağıdaki şekilde referans alınabilir;

abstract Sınıflar 1 Sınıf sınıf1 new class Ama aşağıdaki şekilde referans alınabilir; abstract Sınıflar 1 Özet sınıflar ya da özet metotlar abstract anahtar sözcüğü kullanılarak tanımlanırlar. Bir temel sınıf içinde bildirilen abstract metotların içeriği boştur. Kendisinden yeni bir instance

Detaylı

Algoritma Geliştirme ve Veri Yapıları 9 Ağaç Veri Modeli ve Uygulaması. Mustafa Kemal Üniversitesi

Algoritma Geliştirme ve Veri Yapıları 9 Ağaç Veri Modeli ve Uygulaması. Mustafa Kemal Üniversitesi Algoritma Geliştirme ve Veri Yapıları 9 Ağaç Veri Modeli ve Uygulaması Ağaç, verilerin birbirine sanki bir ağaç yapısı oluşturuyormuş gibi sanal olarak bağlanmasıyla elde edilen hiyararşik yapıya sahip

Detaylı

MAT213 BİLGİSAYAR PROGRAMLAMA I DERSİ Ders 1: Programlamaya Giriş

MAT213 BİLGİSAYAR PROGRAMLAMA I DERSİ Ders 1: Programlamaya Giriş MAT213 BİLGİSAYAR PROGRAMLAMA I DERSİ Ders 1: Programlamaya Giriş Yard. Doç. Dr. Alper Kürşat Uysal Bilgisayar Mühendisliği Bölümü akuysal@anadolu.edu.tr Ders Web Sayfası: http://ceng.anadolu.edu.tr/ders.aspx?dersid=101

Detaylı

SİSTEM ANALİZİ VE TASARIMI

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

Detaylı

BİL-141 Bilgisayar Programlama I (Java)

BİL-141 Bilgisayar Programlama I (Java) 1 BİL-141 Bilgisayar Programlama I (Java) Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Not: Bu dersin sunumları, Java Bilgisayar Programlamaya Giriş, A. Yazıcı, E. Doğdu,

Detaylı

Bilimsel Araştırma Yöntemleri I

Bilimsel Araştırma Yöntemleri I İnsan Kaynakları Yönetimi Bilim Dalı Tezli Yüksek Lisans Programları Bilimsel Araştırma Yöntemleri I Dr. M. Volkan TÜRKER 7 Bilimsel Araştırma Süreci* 1. Gözlem Araştırma alanının belirlenmesi 2. Ön Bilgi

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ı

SOLIDWORKS SIMULATION EĞİTİMİ

SOLIDWORKS SIMULATION EĞİTİMİ SOLIDWORKS SIMULATION EĞİTİMİ Kurs süresince SolidWorks Simulation programının işleyişinin yanında FEA teorisi hakkında bilgi verilecektir. Eğitim süresince CAD modelden başlayarak, matematik modelin oluşturulması,

Detaylı

VERİ YAPILARI VE PROGRAMLAMA (BTP104)

VERİ YAPILARI VE PROGRAMLAMA (BTP104) VERİ YAPILARI VE PROGRAMLAMA (BTP104) Yazar: Doç.Dr. İ. Hakkı CEDİMOĞLU S1 SAKARYA ÜNİVERSİTESİ Adapazarı Meslek Yüksekokulu Bu ders içeriğinin basım, yayım ve satış hakları Sakarya Üniversitesi ne aittir.

Detaylı

TÜİK e-vt Teknik Kılavuz

TÜİK e-vt Teknik Kılavuz TÜİK e-vt Teknik Kılavuz Genel Açıklamalar Mayıs 2015 ANKARA Versiyon: 1.1 1/6 Versiyon Yayım Tarihi Eklenen/Silinen/Değişen Bölüm Açıklama 1.0 20.02.2014 ---- Kılavuzun ilk sürümü. 1.1 04.05.2015 Sayfa

Detaylı

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

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

Detaylı

Öğr. Gör. 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ı

Algoritmalar ve Programlama. Algoritma

Algoritmalar ve Programlama. Algoritma Algoritmalar ve Programlama Algoritma Algoritma Bir sorunu / problemi çözmek veya belirli bir amaca ulaşmak için gerekli olan sıralı mantıksal adımların tümüne algoritma denir. Algoritma bir sorunun çözümü

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ölüm 1. Ön Hazırlıklar ISBN 0-321-49362-1

Bölüm 1. Ön Hazırlıklar ISBN 0-321-49362-1 Bölüm 1 Ön Hazırlıklar ISBN 0-321-49362-1 Bölüm 1 Konular Programlama Dilleri Kavramlarının Çalışılma Nedenleri Programlama Alanları Dil Değelendirme Kriterleri Dil Tasarımındaki Etkileri Dil Kategorileri

Detaylı

Görünümler ve Ötesi Yaklaşımıyla Radar Yazılım Mimarisi Dokümantasyonu Tecrübeleri. Ali Özzeybek M. Devrim Tokcan Murat Tuncer

Görünümler ve Ötesi Yaklaşımıyla Radar Yazılım Mimarisi Dokümantasyonu Tecrübeleri. Ali Özzeybek M. Devrim Tokcan Murat Tuncer Görünümler ve Ötesi Yaklaşımıyla Radar Yazılım Mimarisi Dokümantasyonu Tecrübeleri Ali Özzeybek M. Devrim Tokcan Murat Tuncer Görünümler ve Ötesi Yaklaşımıyla Radar Yazılım Mimarisi Dokümantasyonu Tecrübeleri

Detaylı

İÜ AÇIK VE UZAKTAN EĞİTİM FAKÜLTESİ. Süreç İyileştirme Standardı

İÜ AÇIK VE UZAKTAN EĞİTİM FAKÜLTESİ. Süreç İyileştirme Standardı Dök. No: AUZEF-SS-1.2-11 Yayın Tarihi:30.12.2015 Rev No:00 Rev Tarihi: Sayfa 1 / 12 1. AMAÇ İÜ AUZEF süreçlerinin kalite, verimlik ve etkinliğini arttırmak için yapılan sürekli iyileştirme çalışmalarında

Detaylı

Yönetim Anasayfa : Tanımlar : Parametreler : Seo yolu izlenerek dinamik seo modülüne erişebilirsiniz.

Yönetim Anasayfa : Tanımlar : Parametreler : Seo yolu izlenerek dinamik seo modülüne erişebilirsiniz. Güncelleme Dokümanı Versiyon 3.00 Dinamik SEO Modülü Dinamik SEO modülü site sayfalarının arama motoru sitelerinde daha üst sıralarda çıkabilmesine yönelik yapılan optimizasyon modülüdür. Yeni eklentiler

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ı

Hizmet Odaklı Mimariye Dayanan İş Süreçleri Yönetimi Sistemi

Hizmet Odaklı Mimariye Dayanan İş Süreçleri Yönetimi Sistemi Hizmet Odaklı Mimariye Dayanan İş Süreçleri Yönetimi Sistemi 04.11.2010 Mine Berker IBTech A.Ş. Gündem İş Süreçleri Yönetimi (BPM) Modeli Yaşam Döngüsü 1 BPM e Neden İhtiyaç Duyduk? BPM Çözüm Araçlarının

Detaylı

araştırma alanı Öğrenme Bellek Algı Heyecanlar PSİKOLOJİNİN ALANLARI Doç.Dr. Halil EKŞİ

araştırma alanı Öğrenme Bellek Algı Heyecanlar PSİKOLOJİNİN ALANLARI Doç.Dr. Halil EKŞİ PSİKOLOJİNİN ALANLARI Doç.Dr. Halil EKŞİ GELİŞİM PSİKOLOJİSİ Yaşa bağlı organizmadaki değişimleri inceler Çocuk psikolojisi Ergen Psikolojisi Yetişkin Psikolojisi Deneysel Psikoloji Temel psikolojik süreçler

Detaylı

T.C.SOSYAL GÜVENLİK KURUMU. Genel Sağlık Sigortası Medula Optik E-rapor Web Servisleri Kullanım Kılavuzu

T.C.SOSYAL GÜVENLİK KURUMU. Genel Sağlık Sigortası Medula Optik E-rapor Web Servisleri Kullanım Kılavuzu T.C.SOSYAL GÜVENLİK KURUMU Genel Sağlık Sigortası Medula Optik E-rapor Web Servisleri Kullanım Kılavuzu 20.05.2015 Sayfa 1 İÇİNDEKİLER GİRİŞ...3 1 GENEL BİLGİLER...3 1.1SÜREÇ AÇIKLAMALARI....3 1.2AMAÇ....4

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ı

2013-2014 EĞİTİM ÖĞRETİM MÜNEVVER ÖZTÜRK ORTAOKULU II. DÖNEM BİLİŞİM TEKNOLOJİLERİ VE YAZILIM DERSİ DERS NOTLARI

2013-2014 EĞİTİM ÖĞRETİM MÜNEVVER ÖZTÜRK ORTAOKULU II. DÖNEM BİLİŞİM TEKNOLOJİLERİ VE YAZILIM DERSİ DERS NOTLARI 2013-2014 EĞİTİM ÖĞRETİM MÜNEVVER ÖZTÜRK ORTAOKULU II. DÖNEM BİLİŞİM TEKNOLOJİLERİ VE YAZILIM DERSİ DERS NOTLARI Bilgi BİLİŞİM TEKNOLOJİLERİ VE YAZILIM DERSİ (BTY) Türkiye de orta eğitimde bilgisayar eğitimi,

Detaylı

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

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

Detaylı

Genel Bir Bakış. Beceriyi Küçük Parçalara Ayırmak: İlerlemek ve Sıralamak. Bölüm Sekiz. Psikolojik Stratejiler. Alıştırmanın Planlanması (Faktörler)

Genel Bir Bakış. Beceriyi Küçük Parçalara Ayırmak: İlerlemek ve Sıralamak. Bölüm Sekiz. Psikolojik Stratejiler. Alıştırmanın Planlanması (Faktörler) Genel Bir Bakış Bölüm Sekiz Alıştırmanın Planlanması (Faktörler) Beceriyi Küçük Parçalara Ayırmak: İlerlemek ve Sıralamak Bütün-Parça Alıştırması Hız-Doğruluk Takası Psikolojik Stratejiler Motivasyon ve

Detaylı

Üst Düzey Programlama

Üst Düzey Programlama Üst Düzey Programlama Yazılımda Günlükleme (Logging) Üst Düzey Programlama-ders07/ 1 Günlükleme -Logging Tüm büyük çaplı uygulamalarda günlükleme(logging) ihtiyaçları bulunmaktadır. Bir uygulamanın hata

Detaylı

C# Programlama Dili. İlk programımız Tür dönüşümü Yorum ekleme Operatörler

C# Programlama Dili. İlk programımız Tür dönüşümü Yorum ekleme Operatörler C# Programlama Dili İlk programımız Tür dönüşümü Yorum ekleme Operatörler 1 İlk Programımız Bu program konsol ekranına Merhaba dünya! yazıp kapanır. Programı geçen derste anlatıldığı gibi derleyin, sonra

Detaylı

Statik Kod Analizi. Proceedings/Bildiriler Kitabı. SSE-CMM[3], ISO/IEC 15408 [3] gibi standartlarla. gereklidir.

Statik Kod Analizi. Proceedings/Bildiriler Kitabı. SSE-CMM[3], ISO/IEC 15408 [3] gibi standartlarla. gereklidir. Statik Kod Analizi, Özet, teknolojik cihazlardaki son zamanlarda g, tehdit kolay k -YGYD) ve Anahtar Kelimeler Abstract The use of technological devices in developed software has been increasing in recent

Detaylı

qscale I2 Low-End SLI

qscale I2 Low-End SLI Mobile Machine Control Solutions qscale I2 Low-End SLI Sadece Konfigure et! Programlamaya gerek yok qscale I2 2 4 5 Geleceğin orta ve küçük sınıf vinçleri için Yeni bir Standart 6 Uzunluk Mobil teleskopik

Detaylı

Bölüm 11. Soyut veri tipleri ve kapsülleme kavramları ISBN 0-321-49362-1

Bölüm 11. Soyut veri tipleri ve kapsülleme kavramları ISBN 0-321-49362-1 Bölüm 11 Soyut veri tipleri ve kapsülleme kavramları ISBN 0-321-49362-1 11. Bölüm konuları Soyutlama kavramı Veri soyutlamasına giriş Soyut veri tipleri için tasarım konuları Dil örnekleri Parametreli

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ı

VERİ YAPILARI VE PROGRAMLAMA

VERİ YAPILARI VE PROGRAMLAMA VERİ YAPILARI VE PROGRAMLAMA (BIP116) Yazar: Doç.Dr.İ.Hakkı.Cedimoğlu SAKARYA ÜNİVERSİTESİ Adapazarı Meslek Yüksekokulu Bu ders içeriğinin basım, yayım ve satış hakları Sakarya Üniversitesi ne aittir.

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ı

MEKÂN ENVANTERİ OLUŞTURMA, MEKÂN ANALİZİ VE DERS PROGRAMI OLUŞTURMA İŞLEMLERİ

MEKÂN ENVANTERİ OLUŞTURMA, MEKÂN ANALİZİ VE DERS PROGRAMI OLUŞTURMA İŞLEMLERİ T.C. SÜLEYMAN DEMİREL ÜNİVERSİTESİ MEKÂN ENVANTERİ OLUŞTURMA, MEKÂN ANALİZİ VE DERS PROGRAMI OLUŞTURMA İŞLEMLERİ OCAK, 2016 ISPARTA İÇİNDEKİLER 1. GİRİŞ... 2 2. DERS PORGRAMLARININ OLUŞTURULMASI... 5 3.

Detaylı

Uyumluluk markalamasından katma değerli kodlamaya kadar

Uyumluluk markalamasından katma değerli kodlamaya kadar Teknik rapor Uyumluluk markalamasından katma değerli kodlamaya kadar Ultra Yüksek Hızlı Sürekli Mürekkep Püskürtme teknolojisi, ambalajlamayı geliştirmek için yeni olanaklar oluşturmaktadır Kodlama ve

Detaylı

Projenin Adı: Matrisler ile Diskriminant Analizi Yaparak Sayı Tanımlama. Giriş ve Projenin Amacı:

Projenin Adı: Matrisler ile Diskriminant Analizi Yaparak Sayı Tanımlama. Giriş ve Projenin Amacı: Projenin Adı: Matrisler ile Diskriminant Analizi Yaparak Sayı Tanımlama Giriş ve Projenin Amacı: Bu projenin amacı; matrisler ile diskriminant analizi yaparak, bir düzlem üzerine el ile yazılan bir sayının

Detaylı

Infraskope Server 2012 Yeni Özellikler

Infraskope Server 2012 Yeni Özellikler Yeni Özellikler Türk mühendisleri tarafından geliştirilen Infraskope Server 2012, yüksek performanslı bir log toplama ve kurumsal güvenlik olay yönetim uygulamasıdır (SIEM). Bu dokümanda Infraskope Server

Detaylı

Yazılım Çeşitleri. Uygulama Yazılımları. İşletim Sistemleri. Donanım

Yazılım Çeşitleri. Uygulama Yazılımları. İşletim Sistemleri. Donanım Yazılım Yazılım Bilgisayarlar üretildikleri anda içlerinde herhangi bir bilgi barındırmadıkları için bir işlevleri yoktur. Bilgisayarlara belirli yazılımlar yüklenerek işlem yapabilecek hale getirilirler.

Detaylı

Göstericiler (Pointers)

Göstericiler (Pointers) C PROGRAMLAMA Göstericiler (Pointers) C programlama dilinin en güçlü özelliklerinden biridir. Göstericiler, işaretçiler yada pointer adı da verilmektedir. Gösterici (pointer); içerisinde bellek adresi

Detaylı

CMMI. CMMI ve Çevik Yöntemler. Orhan KALAYCI Haziran 2007. Yazılım Süreç Kalitesi ve Yönetim Danışmanlığı. www.nitelik.

CMMI. CMMI ve Çevik Yöntemler. Orhan KALAYCI Haziran 2007. Yazılım Süreç Kalitesi ve Yönetim Danışmanlığı. www.nitelik. CMMI ve Çevik Yöntemler Orhan KALAYCI Haziran 2007 http:// CMMI 2 1 XP 3 CMMI nedir? 1. Seviye 2. Seviye 3. Seviye 4 2 XP Nedir? MSF XP Şelale RUP 5 CMM XP İlişkisi 6 3 PROJE YONETİMİNİ İMİNİN EVRİMSEL

Detaylı

Görsel Programlama DERS 01. Görsel Programlama - Ders01/ 1

Görsel Programlama DERS 01. Görsel Programlama - Ders01/ 1 Görsel Programlama DERS 01 Görsel Programlama - Ders01/ 1 Takdim Planı Nesneye Dayalı Programlama Kavramı Nesne, Sınıf Kavramı Java Programlama Dili Java Programlama Dili Temel Özellikleri Java Sürümleri

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ı

Geleneksel Yazılım Mühendisliğinden Alana Özel Yazılım Mühendisliğine Doğru

Geleneksel Yazılım Mühendisliğinden Alana Özel Yazılım Mühendisliğine Doğru Geleneksel Yazılım Mühendisliğinden Alana Özel Yazılım Mühendisliğine Doğru DR. ÇAĞATAY ÇATAL TÜBİTAK-UEKAE Bilişim Teknolojileri Enstitüsü cagatay.catal@bte.mam.gov.tr www.cagataycatal.com İçerik 1. Giriş

Detaylı

Analiz Raporu. Projenin amacının, konusunun, işlevinin ne olacağı, hangi yazılımlar kullanılacak gibi parametrelerin belirlenmesi.

Analiz Raporu. Projenin amacının, konusunun, işlevinin ne olacağı, hangi yazılımlar kullanılacak gibi parametrelerin belirlenmesi. Grup İsmi Analiz Raporu Hüsna GÖÇER Merve SEYHAN Kısa Özet Projemiz Personel Takip Sistemi dir. Giriş ekranında iki tane ayrı kullanıcı girişi bulunmaktadır. Birincisi personel girişi, ikincisi yönetici

Detaylı

TEMSA FABRİKALARINDA İŞ ETÜDÜ UYGULAMASI: MONTAJ AKIŞ KARTI (AOS)

TEMSA FABRİKALARINDA İŞ ETÜDÜ UYGULAMASI: MONTAJ AKIŞ KARTI (AOS) TEMSA FABRİKALARINDA İŞ ETÜDÜ UYGULAMASI: MONTAJ AKIŞ KARTI (AOS) İsmail DÜNDAR TEMSA A.Ş. Ersin GÖKÇEN TEMSA A.Ş. Özet Otobüs/Midibüs/Kamyonet üretimi yapılan TEMSA üretim tesislerinde, üretim sürecinin

Detaylı

Enerji Yönetimi 11 Aralık 2015. Ömer KEDİCİ

Enerji Yönetimi 11 Aralık 2015. Ömer KEDİCİ Enerji Yönetimi 11 Aralık 2015 Ömer KEDİCİ Tanım Enerji yönetimi ; Planlama, Koordinasyon ve Kontrol gibi birbirinden bağımsız olduklarında etkisiz kalabilecek işlevlerin bir araya gelerek oluşturdukları

Detaylı

Ders 8 Konu Özeti ve Problemler

Ders 8 Konu Özeti ve Problemler Ders 8 Konu Özeti ve Problemler C# ve Nesne Yönelimli Programlamanın 3 Prensibi Kapsülleme (Encapsulation) Nesne yönelimli programlamanın ilk prensibi kapsülleme (encapsulation) olarak adlandırılır. Bu

Detaylı

(Mekanik Sistemlerde PID Kontrol Uygulaması - 3) HAVA KÜTLE AKIŞ SİSTEMLERİNDE PID İLE SICAKLIK KONTROLÜ. DENEY SORUMLUSU Arş.Gör.

(Mekanik Sistemlerde PID Kontrol Uygulaması - 3) HAVA KÜTLE AKIŞ SİSTEMLERİNDE PID İLE SICAKLIK KONTROLÜ. DENEY SORUMLUSU Arş.Gör. T.C. ERCİYES ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ MEKATRONİK MÜHENDİSLİĞİ BÖLÜMÜ MEKATRONİK LABORATUVARI 1 (Mekanik Sistemlerde PID Kontrol Uygulaması - 3) HAVA KÜTLE AKIŞ SİSTEMLERİNDE PID İLE SICAKLIK

Detaylı

CMMI ve Çevik Yöntemler

CMMI ve Çevik Yöntemler CMMI ve Çevik Yöntemler Kasım 2006 http:// Büyük k Resim Sorunlar Çözümler Tıbbi Kontrol ISO EFQM CMMI 9001 Yaşam Tarzı RUP MSF XP 2 CMMI Anlaşı şılmamış 3 Proje YönetimininY Tarihi netiminin Tarihi http://home.gwu.edu/~kwak/pm_history.pdf

Detaylı

Java C.Thomas Wu 2004b kitabından Türkçeleştirilerek ve örneklendirilerek hazırlanmıştır.

Java C.Thomas Wu 2004b kitabından Türkçeleştirilerek ve örneklendirilerek hazırlanmıştır. Ders İçeriği An introduction to Object-oriented programming with Java Third Edition Update Java C.Thomas Wu 2004b kitabından Türkçeleştirilerek ve örneklendirilerek hazırlanmıştır. Nesneye Yönelik Öğr.

Detaylı

COĞRAFİ BİLGİ SİSTEMLERİ İLERİ SEVİYE EĞİTİMLERİ BUILDING GEODATABASE EĞİTİMİ

COĞRAFİ BİLGİ SİSTEMLERİ İLERİ SEVİYE EĞİTİMLERİ BUILDING GEODATABASE EĞİTİMİ COĞRAFİ BİLGİ SİSTEMLERİ İLERİ SEVİYE EĞİTİMLERİ BUILDING GEODATABASE EĞİTİMİ http://facebook.com/esriturkey https://twitter.com/esriturkiye egitim@esriturkey.com.tr Kursun Süresi: 3 Gün 18 Saat COĞRAFİ

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ı

-- işareti tek satırlık açıklamalarda kullanılır. Açıklama olarak yazılan satırın önüne konulması yeterlidir.

-- işareti tek satırlık açıklamalarda kullanılır. Açıklama olarak yazılan satırın önüne konulması yeterlidir. T-SQL KODLARİ İÇERİSİNE AÇIKLAMA EKLEME Bir veya daha fazla satırın çalıştırılmasını Önlemek için veya /*... */" ifadeleri kullanılır. -- işareti tek satırlık açıklamalarda kullanılır. Açıklama olarak

Detaylı

PA Textile&Apparel. Yenilik ve gelişme vaadiyle Tekstil & Konfeksiyon sektörüne sektörün en iyi uygulamalarını götürmek. www.pa-textileapparel.

PA Textile&Apparel. Yenilik ve gelişme vaadiyle Tekstil & Konfeksiyon sektörüne sektörün en iyi uygulamalarını götürmek. www.pa-textileapparel. PA Textile&Apparel Yenilik ve gelişme vaadiyle Tekstil & Konfeksiyon sektörüne sektörün en iyi uygulamalarını götürmek. www.pa-textileapparel.com PA T&A Tekstil & Konfeksiyon Özel Yazılımlar PA Tekstil

Detaylı

Çimento Operatörleri ve Bakım Personeli için Simulatör sistemi: ECS/CEMulator

Çimento Operatörleri ve Bakım Personeli için Simulatör sistemi: ECS/CEMulator Çimento Operatörleri ve Bakım Personeli için Simulatör sistemi: ECS/CEMulator ECS/CEMulator, Çimento operatörlerini ve proses mühendislerini, simülatör ortamında eğitmeyi amaçlayan bir sistemdir. Çimento

Detaylı

Optik Filtrelerde Performans Analizi Performance Analysis of the Optical Filters

Optik Filtrelerde Performans Analizi Performance Analysis of the Optical Filters Optik Filtrelerde Performans Analizi Performance Analysis of the Optical Filters Gizem Pekküçük, İbrahim Uzar, N. Özlem Ünverdi Elektronik ve Haberleşme Mühendisliği Bölümü Yıldız Teknik Üniversitesi gizem.pekkucuk@gmail.com,

Detaylı

Sahne Geçişlerinin Geometrik Tabanlı olarak Saptanması

Sahne Geçişlerinin Geometrik Tabanlı olarak Saptanması Sahne Geçişlerinin Geometrik Tabanlı olarak Saptanması 1 Giriş Binnur Kurt, H. Tahsin Demiral, Muhittin Gökmen İstanbul Teknik Üniversitesi, Bilgisayar Mühendisliği Bölümü, Maslak, 80626 İstanbul {kurt,demiral,gokmen}@cs.itu.edu.tr

Detaylı