SE311 YAZILIM YAPIMI BÖLÜM 3 YAPIM TASARIMI. Yrd. Doç. Dr. Volkan TUNALI Mühendislik ve Doğa Bilimleri Fakültesi / Maltepe Üniversitesi

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

Download "SE311 YAZILIM YAPIMI BÖLÜM 3 YAPIM TASARIMI. Yrd. Doç. Dr. Volkan TUNALI Mühendislik ve Doğa Bilimleri Fakültesi / Maltepe Üniversitesi"

Transkript

1 SE311 YAZILIM YAPIMI BÖLÜM 3 YAPIM TASARIMI Yrd. Doç. Dr. Volkan TUNALI Mühendislik ve Doğa Bilimleri Fakültesi / Maltepe Üniversitesi

2 Giriş 2 Yazılım Tasarımı Tasarımın Zorlukları Temel Tasarım Kavramları Tasarım Seviyeleri Tasarımın Yapı Taşları Tasarım Uygulamaları

3 Yazılım Tasarımı 3 Yazılım Tasarımı" bir bilgisayar yazılımı spesifikasyonunun çalışan bir yazılıma dönüştürülmesi için gerekli plan ve yöntemin düşünülmesi ve yaratılmasıdır. Tasarım, gereksinimleri kodlama ve hata ayıklamaya bağlayan yazılım geliştirme etkinliğidir. İyi bir üst-düzey tasarım, alt-düzey tasarımların güvenli bir biçimde kapsanacağı iyi bir yapı sağlar. İyi bir tasarım küçük projelerde yararlıdır, büyük projelerde ise kesinlikle zorunludur.

4 Tasarımın Zorlukları 4 Tasarım Zor (Wicked) Bir Problemdir Tasarım Dağınık ve Karışık Bir Süreçtir Tasarım İkilemler ve Önceliklerle İlgilidir Tasarım Kısıtlamalar İçerir Tasarım Deterministik Değildir Tasarım Sezgisel Bir Süreçtir Tasarım Yavaş Yavaş Ortaya Çıkar

5 Tasarım Zor (Wicked) Bir Problemdir 5 Zor (wicked) problem: yalnızca çözüldüğü zaman ya da bir parçası çözüldüğü zaman açıkça tanımlanabilen problem (Rittel & Webber, 1973). Bu paradoksa göre önce açıkça tanımlayabilmek için problemi bir kez çözmek ve sonra işe yarayan bir çözüm üretmek için yeniden çözmek gerekir. Dramatik gerçek bir örnek: orijinal Tacoma Narrows köprüsünün tasarımı.

6 6 Tacoma Narrows Köprüsü

7 Tasarım Dağınık ve Karışık Bir Süreçtir 7 Tamamlanmış tasarım düzenli ve temiz görünmeliyken tasarımı geliştirme süreci ortaya çıkan sonuç kadar düzenli değildir. Tasarım dağınık ve karışık ilerleyen bir süreçtir çünkü pek çok yanlış adım atılır ve pek çok hata yapılır. Aslında tasarımın özünde hata yapmak vardır. Hataları tasarım sırasında yapmak ve düzeltmek, aynı hataları kodlama sırasında yapmak ve kodlamadan sonra farkedip düzeltmeye çalışmaktan daha az maliyetlidir. Tasarım dağınık ve karışık bir süreçtir çünkü genellikle iyi bir çözümle kötü bir çözüm arasında çok ince bir farklılık vardır. Tasarımın "yeterince iyi" olduğunu bilmek zordur. Ne kadar ayrıntı yeterli olur? Tasarımın ne kadarı formal tasarım notasyonuyla yapılmalı, ve ne kadarı klavye başında yapılmak üzere bırakılmalı?

8 Tasarım İkilemler ve Önceliklerle İlgilidir 8 İdeal bir dünyada, bütün sistemler göz açıp kapayıncaya kadar çalışır, sıfır depolama alanı tüketir, sıfır ağ bant genişliği kullanır, asla hata içermez, ve bu sistemleri yapmanın maliyeti sıfırdır. Gerçek dünyada ise tasarımcının işinin önemli bir bölümü tasarım karakteristiklerini ölçüp tartmak ve bu karakteristikler arasında bir denge sağlamaktır. Eğer yüksek tepki/yanıt hızı, geliştirme zamanını azaltmaktan daha önemliyse tasarımcı belli bir tasarımı seçecektir. Eğer geliştirme zamanını azaltmak daha önemliyse tasarımcı başka bir tasarım hazırlayacaktır.

9 Tasarım Kısıtlamalar İçerir 9 Tasarımın temelinde kısmen olasılıklar yaratmak ve kısmen de olasılıkları kısıtlamak/sınırlandırmak vardır. Eğer sınırsız zaman, kaynak, ve boş alan olsaydı, çevremizde inanılmaz binalar ve çeşitli fiziksel yapılar görürdük. Sınırlı kaynakların getirdiği kısıtlar, çözümü basitleştirmeye ve sonuçta iyileştirmeye zorlar. Yazılım tasarımının amacı da bunun aynısıdır.

10 Tasarım Deterministik Değildir 10 Bir bilgisayar yazılımı için tek bir doğru tasarım yoktur. Aynı problemin çözümü için mükemmel derecede kabul edilebir pek çok tasarım olabilir.

11 Tasarım Sezgisel Bir Süreçtir 11 Tasarım deterministik olmadığı için, tasarım teknikleri de tahmin edilebilir çıktılar üreten tekrarlanabilir süreçlerden ziyade sezgisel olma eğilimindedir. Tasarım deneme-yanılma ile olur. Bir projede iyi sonuç veren bir tasarım aracı ya da tekniği bir diğer projede işe yaramayabilir. Herşey için kullanılabilecek doğru bir araç maalesef yok.

12 Tasarım Yavaş Yavaş Ortaya Çıkar 12 Tasarımlar şu yollardan geçerek evrimleşir ve iyileşir: Tasarımın gözden geçirilmesiyle, Resmî olmayan tartışmalarla, Kodun yazılmasıyla kazanılan deneyimle, Kodun revize edilmesiyle kazanılan deneyimle.

13 Temel Tasarım Kavramları 13 İyi bir tasarım birkaç temel kavramın iyi anlaşılmasına bağlıdır: Karmaşıklığın rolü (complexity) Tasarımdan beklenen karakteristik özellikler Tasarım seviyeleri

14 Karmaşıklığı Yönetmek 14 Bir yazılımı tasarlamanın iki yolu vardır: Birincisi açıkça hiçbir kusuru olmayacak kadar basit yapmak, ve diğeri ise kusurları açıkça görülemeyecek kadar karmaşık yapmak. C. A. R. Hoare Karmaşıklığın yönetilmesi yazılım geliştirmedeki en önemli teknik konudur. Aşırı yüksek maliyetli ve başarısız tasarımların 3 temel kaynağı vardır: Basit bir probleme karmaşık bir çözüm uygulamak Karmaşık bir probleme basit ve yanlış bir çözüm uygulamak Karmaşık bir probleme uygun olmayan ve karmaşık bir çözüm uygulamak

15 Tasarımdan Beklenen Karakteristik Özellikler 15 En az seviyede karmaşıklık Kolay bakım yapılabilirlik Gevşek bağlılık (loose coupling) Genişletilebilirlik Yeniden kullanılabilirlik High fan-in Low-to-medium fan-out Taşınabilirlik Yalınlık Katmanlaşma Standart teknikler

16 16 Tasarım Seviyeleri

17 Seviye 1: Yazılım Sistemi 17 Birinci seviye bütün sistemdir. Bazı programcılar sistem seviyesinden hemen sınıf tasarlama seviyesine geçme eğilimindedir. Ancak, alt-sistemler ya da paketler gibi sınıfların daha yüksek seviyeli kombinasyonları üzerinden düşünmek daha yararlıdır.

18 Seviye 2: Altsistemlere ya da Paketlere Bölünme 18 Bu seviyedeki tasarımın ana ürünü tüm başlıca altsistemlerin tanımlanmasıdır. Altsistemler büyük olabilir: Veritabanı, kullanıcı arayüzü, iş kuralları, komut yorumlayıcı, raporlama motoru, vb. Bu seviyedeki temel tasarım etkinliği: Programın başlıca altsistemlere nasıl bölüneceğine karar vermek Her bir alt sistemin diğer altsistemleri nasıl kullanabileceğine karar vermek Bu seviyenin önemli işlerinden biri de çeşitli altsistemlerin nasıl iletişim kuracağına dair kuralların konulmasıdır. Eğer tüm altsistemler diğer tüm altsistemlerle doğrudan iletişim kurabilirse, bunları birbirinden ayırmanın yararı ortadan kalkar. Altsistemlerin iletişimi sınırlandırılarak bölünme anlamlı hale getirilmelidir.

19 19 Seviye 2: Altsistemlere ya da Paketlere Bölünme

20 20 Seviye 2: Altsistemlere ya da Paketlere Bölünme

21 Seviye 2: Altsistemlere ya da Paketlere Bölünme 21 Eğer her altsistem diğer tüm altsistemlerle doğrudan iletişim kurabilirse, bazı önemli sorular ortaya çıkar: Bir programcı sadece grafik altsistemindeki küçük bir şeyi değiştirmek için sistemin kaç farklı noktasının nasıl çalıştığını anlamak zorunda? Buradaki iş kurallarını başka bir sistemde kullanmak istesek ne olur? Sisteme yeni bir kullanıcı arayüzü eklemek istesek ne olur? Mesela test amacıyla komut satırı arayüzü? Veri depolamayı uzak bir makine üzerinde yapmak istesek ne olur? Altsistemler arasındaki iletişime sadece "bilmesi gerekir" mantığıyla izin verilmeli gerçekten iyi bir nedeni olmalı. Eğer şüphede kalınıyorsa, önce iletişimi kısıtlamalı ve daha sonra ihtiyaca göre izin vermeli.

22 22 Seviye 2: Altsistemlere ya da Paketlere Bölünme

23 Yaygın Altsistemler 23 İş kuralları Kullanıcı arayüzü Veri erişimi Sistem bağımlılıkları

24 Seviye 3: Sınıflara Bölünme 24 Bu seviyedeki tasarım sistemdeki tüm sınıfların belirlenmesini içerir. Sınıflar belirlendikçe her bir sınıfın sistemin geri kalanıyla nasıl etkileştiğine dair ayrıntılar da belirlenir: Sınıfların arabirimleri (interface) tanımlanır. Bu seviyedeki temel hedef tüm altsistemlerin bireysel sınıflar halinde programlanabilecek kadar ayrıntılı biçimde bölümlendiğinden emin olmaktır.

25 Seviye 4: Rutinlere Bölünme 25 Bu seviyedeki tasarım her bir sınıfın rutinlere bölünmesini içerir. Seviye 3 te tanımlanan sınıf arabirimleri zaten bazı rutinleri de halihazırda tanımlamış durumdadır. Seviye 4 teki tasarımda sınıfların özel (private) rutinleri de detaylandırılır. Bir sınıfın rutinlerinin tamamen tanımlanması genellikle sınıfın arabiriminin daha iyi anlaşılmasını sağlar. Bu sayede sınıfın arabiriminde yapılması gereken değişiklikler de ortaya çıkmış olur yani Seviye 3 e geri dönüş. Bu seviyedeki bölümlendirme ve tasarım genellikle bireysel programcıya bırakılır, ve genellikle büyük projelerde gereklidir. Resmî olarak yapılmasa bile en azından zihinsel olarak yapılması gerekir.

26 Seviye 5: İçsel Rutin Tasarımı 26 Rutin seviyesinde tasarımın amacı tek tek rutinlerin işlevselliğini ayrıntılı olarak düzenlemektir. İçsel rutin tasarımı genellikle rutin üzerinde çalışan programcıya bırakılır ve genellikle Seviye 4 teki işlemi yapan programcı tarafından yapılır. Bu seviyede genellikle şunlar gerçekleştirilir Sözde kod (pseudocode) yazılması, Referans kitaplarından algoritma araştırılması, Rutin içindeki kod paragraflarının organize edilmesi, Kodun seçilmiş programlama diliyle yazılması. Bu seviyedeki tasarım daima yapılır.

27 Tasarımın Temel Taşları 27 Gerçek Hayat Nesneleri Bulun Tutarlı Soyutlamalar Oluşturun Uygulama Detaylarını Gizleyin Tasarımı Basitleştiriyorsa Kalıtım Kullanın Sırları Saklayın (Information Hiding) Değişmesi Muhtemel Alanları Belirleyin Bağlılığı Gevşek Tutun Yaygın Tasarım Kalıpları Bulmaya Çalışın Diğer Sezgisel Yaklaşımlar

28 Gerçek Hayat Nesneleri Bulun 28 Nesneleri ve bunların niteliklerini belirleyin (methods & data). Nesnelere ne yapılabileceğini belirleyin. Nesnelerin diğer nesnelere ne yapabileceğini belirleyin. Nesnelerin diğer nesneler tarafından görülebilir ve erişilebilir olan kısımlarını belirleyin hangi kısımlar public hangi kısımlar private olacak? Her bir nesnenin public arabirimini tanımlayın.

29 29 Gerçek Hayat Nesneleri Bulun

30 Tutarlı Soyutlamalar Oluşturun 30 Soyutlama, bir kavramı ayrıntılarını güvenli bir biçimde gözardı ederek ele almaktır ya da farklı ayrıntılarla farklı seviyelerde ilgilenmektir. Karmaşıklık noktasından bakıldığında soyutlamanın temel faydası konuyla ilgisiz ayrıntıları görmezden gelme olanağı sağlamasıdır. Temel sınıflar (base class), türetilmiş sınıfların (derived class) ortak nitelikleri üzerinde odaklanmaya olanak sağlayan ve temel sınıf üzerinde çalışırken spesifik sınıfların ayrıntılarını gözardı etme imkanı veren soyutlamalardır. İyi bir sınıf arabirimi (class interface) sınıfın içsel çalışma düzeni hakkında endişe etmeden sadece sunulan arabirim üzerinde odaklanmayı sağlayan bir soyutlamadır.

31 Tutarlı Soyutlamalar Oluşturun 31 Soyutlama, karmaşık bir kavramın basit bir görünümünü elde etme olanağı sağlar.

32 Uygulama Detaylarını Gizleyin 32 Soyutlama (abstraction): "Nesnenin yalnızca yüksek seviyeli ayrıntılarına bakabilirsin." Sarmalama (encapsulation): "Ayrıca, nesneye bundan daha ayrıntılı bir seviyede bakamazsın." Sarmalama, karmaşıklığın görülmesine izin vermeyerek karmaşıklığın yönetilmesine yardımcı olur.

33 Uygulama Detaylarını Gizleyin 33 Ne görüyorsan o, daha fazlası değil!

34 Tasarımı Basitleştiriyorsa Kalıtım Kullanın 34 Bir yazılım sistemi tasarlanırken birkaç küçük fark dışında diğer nesnelere benzeyen nesnelerle karşılaşılabilir. Bu durumdaki nesneler arasındaki benzerliklerin ve farklılıkların tanımlanması "kalıtım" olarak adlandırılır. Kalıtım, soyutlama kavramıyla sinerji oluşturacak şekilde çalışır. Soyutlama nesnelerle farklı ayrıntı seviyelerinde ilgilenir. Kalıtım, programlamayı basitleştirir çünkü nesnelerin genel özelliklerine dayalı şeyler için genel rutinler yazılır ve spesifik nesne türleri için ise spesifik rutinler yazılır. Çok biçimlilik (polymorphism).

35 Sırları Saklayın (Information Hiding) 35 Bilgi Saklama (Information Hiding) karmaşıklığın gizlenmesini vurgulayan bir kavramdır. Sınıf tasarımındaki önemli görevlerden biri sınıfın hangi özelliklerinin dışarıya açık olacağını ve hangilerinin sır olarak kalacağına karar vermektir. Bir sınıfın 25 rutini olabilir ancak yalnızca 5 tanesi dışarıya açılabilir, diğerleri içsel kullanım için olabilir. Bir sınıf çeşitli veri tipleri kullanabilir ama dışarıya bununla ilgili hiçbir bilgi vermeyebilir. Bir sınıfın arabirimi sınıfın içsel çalışma mekanizmasıyla ilgili mümkün olduğunca az bilgiyi açık etmelidir. Daima "Bu sınıf neyi gizlemeli?" diye sorun.

36 36 Sırları Saklayın (Information Hiding)

37 Değişmesi Muhtemel Alanları Belirleyin 37 Değişikliklere uyum sağlamak iyi program tasarımının en zor yanlarından biridir. Temel amaç değişikliğin etkisi yalnızca bir rutin, sınıf ya da paketle sınırlı kalacak şekilde kararsız alanları izole etmektir. Nasıl? Değişmesi muhtemel şeyleri belirle Değişmesi muhtemel şeyleri ayır Değişmesi muhtemel şeyleri izole et

38 Değişmesi Muhtemel Alanlar 38 İş kuralları Donanım bağımlılıkları Girdi ve çıktılar Standart olmayan dil özellikleri Zor tasarım ve yapım alanları Durum değişkenleri Veri boyutu sınırlamaları

39 Bağlılığı Gevşek Tutun 39 Bağlılık (coupling) bir sınıf ya da rutinin diğer sınıf ya da rutinlere ne kadar sıkı bir şekilde bağlı olduğunu tanımlayan kavramdır. Temel amaç, diğer sınıf ve rutinlerle küçük, doğrudan, görünür ve esnek ilişkileri olan sınıf ve rutinler oluşturmaktır gevşek bağlılık (loose coupling). Bir modül başka modüller tarafından kolayca kullanılabiliyorsa modüller arasında iyi bir bağlılık var demektir. Diğer modüllere çok az bağımlı modüller oluşturmaya çalışın.

40 Bağlılık Türleri 40 Basit-veri-parametre bağlılığı (Simple-dataparameter coupling) Basit-nesne bağlılığı (Simple-object coupling) Nesne-parametre bağlılığı (Object-parameter coupling) Anlamsal bağlılık (Semantic coupling)

41 Yaygın Tasarım Kalıpları Bulmaya Çalışın 41 Çoğu problem geçmiş problemlere benzer ve benzer yöntemlerle/kalıplarla çözülebilir: Tasarım Kalıpları (Design Patterns). Yaygın kalıplar şunlardır: Adapter, Bridge, Decorator, Facade, Factory Method, Observor, Singleton, Strategy, Template Method

42 Yaygın Tasarım Kalıpları Bulmaya Çalışın 42 Kalıplar hazır soyutlamalar sağlayarak karmaşıklığın azaltılmasına yardımcı olurlar Kalıplar yaygın çözümlerin ayrıntılarını kurumsallaştırarak hataları azaltırlar Kalıplar tasarım alternatifleri sağlamak suretiyle sezgisel değere sahiptirler Kalıplar tasarım diyaloğunu daha üst düzeye taşıyarak iletişimi arttırmaya yardımcı olurlar

43 Diğer Sezgisel Yaklaşımlar 43 Yüksek Uyumu (Cohesion) Amaçlayın Hiyerarşiler Oluşturun Sınıf Sözleşmelerini Resmîleştirin Sorumluluklar Atayın Test Edilebilirlik için Tasarlayın Başarısızlıktan Sakının Kaba Kuvvet Kullanmayı Düşünün Diyagram Çizin Tasarımınızı Modülerliğini Koruyun

44 Tasarım Uygulamaları 44 Yineleme ve Döngüsellik (Iterate) Böl ve Yönet (Divide and Conquer) Yukarıdan-Aşağı ve Aşağıdan-Yukarı Tasarım Yaklaşımları (Top-Down and Bottom-Up Design Approaches) Deneysel Prototipleme (Experimental Prototyping) İşbirliğine Dayalı Tasarım (Collaborative Design)

45 Tasarım Çalışmasını Kaydetmek 45 Tasarım dokümantasyonunu doğrudan kodun içine yerleştirin Tasarım görüşmelerini ve kararlarını bir Wiki üzerinde saklayın Özet e-postalar yazın Dijital kamera kullanın Tahtadaki tasarımları kaydedin CRC (Class, Responsibility, Collaborator) kartları kullanın Uygun seviyede ayrıntı içeren UML diyagramları oluşturun

46 Sonuç Tasarımın kalitesi başarıyı garantilemez, ama tasarımın yetersizliği başarısızlığı garantiler.

47 Kitap Önerisi 47 UML ile Nesne Tabanlı Çözümleme ve Tasarım, Bora Güngören, Seçkin Yayıncılık, 2009 Object-Oriented Software Development Using Java, 2 nd Ed., Xiaoping Jia, Addison-Wesley, 2003 Design Patterns, Erich Gamma, Richard Helm, Ralph Johnson, & John Vlissides, Addison-Wesley, 1995

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ı

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ı

Görsel Programlama DERS 02. Görsel Programlama - Ders02/ 1

Görsel Programlama DERS 02. Görsel Programlama - Ders02/ 1 Görsel Programlama DERS 02 Görsel Programlama - Ders02/ 1 Kodun Tekrar Kullanımı ve Kalıtım(Inheritance) Nesneye yönelik programlamanın diğer programlama paradigmalarına karşı bir avantajı kodun yeniden

Detaylı

Önemli noktalar. Paradigma Nesnelere Giriş Mesajlar / Ara bağlantılar Bilgi Gizleme (Information Hiding ) Sınıflar(Classes) Kalıtım/Inheritance

Önemli noktalar. Paradigma Nesnelere Giriş Mesajlar / Ara bağlantılar Bilgi Gizleme (Information Hiding ) Sınıflar(Classes) Kalıtım/Inheritance Önemli noktalar Paradigma Nesnelere Giriş Mesajlar / Ara bağlantılar Bilgi Gizleme (Information Hiding ) Sınıflar(Classes) Kalıtım/Inheritance public class Test { // çalışır İnsan insan = new Çiçekçi();

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ı

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ı

YZM211 YAZILIM TASARIMI

YZM211 YAZILIM TASARIMI BÖLÜM 4 MÜHENDİSLİK TASARIMI ÇÖZÜMLEMESİ YZM211 YAZILIM TASARIMI Yrd. Doç. Dr. Volkan TUNALI Mühendislik ve Doğa Bilimleri Fakültesi / Maltepe Üniversitesi Amaçlar 2 Mimari tasarım ve ayrıntılı tasarım

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ı

BÖLÜM 1 YAZILIM TASARIMINA GİRİŞ YZM211 YAZILIM TASARIMI. Yrd. Doç. Dr. Volkan TUNALI Mühendislik ve Doğa Bilimleri Fakültesi / Maltepe Üniversitesi

BÖLÜM 1 YAZILIM TASARIMINA GİRİŞ YZM211 YAZILIM TASARIMI. Yrd. Doç. Dr. Volkan TUNALI Mühendislik ve Doğa Bilimleri Fakültesi / Maltepe Üniversitesi BÖLÜM 1 YAZILIM TASARIMINA GİRİŞ YZM211 YAZILIM TASARIMI Yrd. Doç. Dr. Volkan TUNALI Mühendislik ve Doğa Bilimleri Fakültesi / Maltepe Üniversitesi Amaçlar 2 Tasarımın ne olduğunu ve çeşitli tasarım türlerinin

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ı

YZM311 YAZILIM YAPIMI BÖLÜM 4 TASARIM KALIPLARI. Yrd. Doç. Dr. Volkan TUNALI Mühendislik ve Doğa Bilimleri Fakültesi / Maltepe Üniversitesi

YZM311 YAZILIM YAPIMI BÖLÜM 4 TASARIM KALIPLARI. Yrd. Doç. Dr. Volkan TUNALI Mühendislik ve Doğa Bilimleri Fakültesi / Maltepe Üniversitesi YZM311 YAZILIM YAPIMI BÖLÜM 4 TASARIM KALIPLARI Yrd. Doç. Dr. Volkan TUNALI Mühendislik ve Doğa Bilimleri Fakültesi / Maltepe Üniversitesi Giriş 2 Tasarım Kalıpları (Design Patterns) Yaratımsal (Creational)

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ı

TÜMLEŞİK MODELLEME DİLİ. UML (Unified Modeling Language)

TÜMLEŞİK MODELLEME DİLİ. UML (Unified Modeling Language) TÜMLEŞİK MODELLEME DİLİ UML (Unified Modeling Language) UML NEDİR? Yazılım ve donanımların bir arada düşünülmesi gereken, Zor ve karmaşık programların, Özellikle birden fazla yazılımcı tarafından kodlanacağı

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ı

Programlama Giriş. 17 Ekim 2015 Cumartesi Yrd. Doç. Dr. Mustafa YANARTAŞ 1

Programlama Giriş. 17 Ekim 2015 Cumartesi Yrd. Doç. Dr. Mustafa YANARTAŞ 1 17 Ekim 2015 Cumartesi Yrd. Doç. Dr. Mustafa YANARTAŞ 1 Ders Not Sistemi Vize : % 40 Final : % 60 Kaynaklar Kitap : Algoritma Geliştirme ve Programlama Giriş Yazar: Dr. Fahri VATANSEVER Konularla ilgili

Detaylı

Nesne Tabanlı Programlama. Ders Notları

Nesne Tabanlı Programlama. Ders Notları Nesne Tabanlı Programlama Ders Notları Nesneye tabanlı programlamanın temellerini kavrayabilme Java temelleri ve Netbeans editörünü kavrayabilme Sınıf ve nesne kavramlarını anlayabilme Kalıtım konusunu

Detaylı

Akıllı Mürekkep Tasarrufları Kılavuzu

Akıllı Mürekkep Tasarrufları Kılavuzu Akıllı Mürekkep Tasarrufları Kılavuzu Fiery proserver, her zaman mümkün olan en düşük mürekkep hacmini kullanır ve dolayısıyla son derece düşük maliyetlidir. Varsayılan ayar bile ICC profilleri kullanarak

Detaylı

YAZILIM MODELLEME VE TASARIM

YAZILIM MODELLEME VE TASARIM YAZILIM MODELLEME VE TASARIM «UML Kullanım Diyagramları» Özer Çelik Matematik-Bilgisayar Bölümü Kullanım senaryoları sadece düz metin (text) olarak değil, istendiğinde metin yerine UML diyagramı olarak

Detaylı

Servis olarak Altyapı

Servis olarak Altyapı Servis olarak Altyapı Servis olarak Altyapı (Infrastructure as a Servis, IaaS) fiziksel makineler, sanal makineler ve sanal depolama gibi temel kaynaklara erişebilmeyi sağlar. Bu kaynaklardan başka IaaS

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ı

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

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

Detaylı

Software Construction Yazılım İnşası. Sedat Görmüş, PhD :

Software Construction Yazılım İnşası. Sedat Görmüş, PhD   : Software Construction Yazılım İnşası Sedat Görmüş, PhD Email : sedatgormus@gmail.com : sedatgormus@ktu.edu.tr İnşa için Dizayn Yaklaşımları İçerik Dizaynda karşılaşılan sorunlar Dizayn konseptleri Dizayn

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ı

SİSTEM ANALİZİ ve TASARIMI. ÖN İNCELEME ve FİZİBİLİTE

SİSTEM ANALİZİ ve TASARIMI. ÖN İNCELEME ve FİZİBİLİTE SİSTEM ANALİZİ ve TASARIMI ÖN İNCELEME ve FİZİBİLİTE Sistem Tasarım ve Analiz Aşamaları Ön İnceleme Fizibilite Sistem Analizi Sistem Tasarımı Sistem Gerçekleştirme Sistem Operasyon ve Destek ÖN İNCELEME

Detaylı

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

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

Detaylı

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ı

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ı

(Fabrika Şablonu) Factory Pattern. Tasarım şablonlarının Creational (Yaratıcı) Sınıflandırmasına aittir. Fabrika(Factory) Şablonu

(Fabrika Şablonu) Factory Pattern. Tasarım şablonlarının Creational (Yaratıcı) Sınıflandırmasına aittir. Fabrika(Factory) Şablonu 1 Aşağıda açıklanan iki şablon (Factory patten and Abstract Factory pattern) Creational Tasarım şablonu sınıfındadır. Structural Tasarım şablonu sınıflandırmasındaki Bridge Şablonu olması mümkün değildir.

Detaylı

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

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

Detaylı

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ı

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ı

ESKİŞEHİR OSMANGAZİ ÜNİVERSİTESİ EĞİTİM FAKÜLTESİ BÖTE PROJE GELİŞTİRME VE YÖNETİMİ II DERSİ PROJE RAPORU

ESKİŞEHİR OSMANGAZİ ÜNİVERSİTESİ EĞİTİM FAKÜLTESİ BÖTE PROJE GELİŞTİRME VE YÖNETİMİ II DERSİ PROJE RAPORU ESKİŞEHİR OSMANGAZİ ÜNİVERSİTESİ EĞİTİM FAKÜLTESİ BÖTE PROJE GELİŞTİRME VE YÖNETİMİ II DERSİ PROJE RAPORU code.org ile KLASİK LABİRENT OLUŞTURMA Kod saatinin ilk dakikalarına hoş geldin! Hadi, beraber

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ı

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ı

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

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

Detaylı

BULANIK MANTIK VE SİSTEMLERİ 2014 2015 BAHAR DÖNEMİ ÖDEV 1. Müslüm ÖZTÜRK 148164001004 Bilişim Teknolojileri Mühendisliği ABD Doktora Programı

BULANIK MANTIK VE SİSTEMLERİ 2014 2015 BAHAR DÖNEMİ ÖDEV 1. Müslüm ÖZTÜRK 148164001004 Bilişim Teknolojileri Mühendisliği ABD Doktora Programı BULANIK MANTIK VE SİSTEMLERİ 2014 2015 BAHAR DÖNEMİ ÖDEV 1 Müslüm ÖZTÜRK 148164001004 Bilişim Teknolojileri Mühendisliği ABD Doktora Programı Mart 2015 0 SORU 1) Bulanık Küme nedir? Bulanık Kümenin (fuzzy

Detaylı

Şimdi başka bir problem üzerinde çalışalım.

Şimdi başka bir problem üzerinde çalışalım. 86 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ı

NESNEYE YÖNELİK PROGRAMLAMA Temel Kavramlar

NESNEYE YÖNELİK PROGRAMLAMA Temel Kavramlar NESNEYE YÖNELİK PROGRAMLAMA Temel Kavramlar Özlem AYDIN Trakya Üniversitesi Bilgisayar Mühendisliği Bölümü Not: Bu sunumda Prof. Dr. Yılmaz KILIÇASLAN ın Nesneye Yönelik Programlama dersi sunumlarından

Detaylı

Programlama Dillerinde Kullanılan Veri Tipleri

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

Detaylı

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ı

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ı

Cahit GÜNGÖR Hacettepe Üniversitesi Bilişim Enstitüsü. Sorumluluk Zinciri. Kod Üretme (Code Generation)

Cahit GÜNGÖR Hacettepe Üniversitesi Bilişim Enstitüsü. Sorumluluk Zinciri. Kod Üretme (Code Generation) Cahit GÜNGÖR Hacettepe Üniversitesi Bilişim Enstitüsü Sorumluluk Zinciri (Chain of Responsibility) Yazılım Mimarileri Kod Üretme (Code Generation) Anahatlar Tanım Örüntünün Amacı Ne zaman Gerçekleştiririz?

Detaylı

NESNE TABANLI PROGRAMLAMA

NESNE TABANLI PROGRAMLAMA NESNE TABANLI PROGRAMLAMA Öğr. Gör. Utku SOBUTAY İÇERİK 2 Nesne Tabanlı Programlama Sınıf, Nesne Kavramları Kapsulleme, Kalıtım ve Çok Biçimlilik Kavramları Nesne Tabanlı Programlama NESNE TABANLI PROGRAMLAMA

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ı

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ı

Üst Düzey Programlama

Üst Düzey Programlama Üst Düzey Programlama Tasarım Şablonları Üst Düzey Programlama-ders02/ 1 FAÇADE ŞABLONU Facade bir nesnedir ve çok büyük kodları, karmaşık sınıfları basitleştirerek birleştirmek ve ortak bir arayüz sağlamak

Detaylı

Fundamentals of Object-Oriented Programming (COMPE 723) Ders Detayları

Fundamentals of Object-Oriented Programming (COMPE 723) Ders Detayları Fundamentals of Object-Oriented Programming (COMPE 723) Ders Detayları Ders Adı Ders Kodu Dönemi Ders Saati Uygulama Saati Laboratuar Kredi AKTS Saati Fundamentals of Object-Oriented Programming COMPE

Detaylı

Yazılım Tanımlı Ağlar Ders 6 SDN Programlama. Mehmet Demirci

Yazılım Tanımlı Ağlar Ders 6 SDN Programlama. Mehmet Demirci Yazılım Tanımlı Ağlar Ders 6 SDN Programlama Mehmet Demirci 1 SDN Programlama OpenFlow alt seviyede (low-level) bir soyutlama sağlar. Akış tablosu girdilerini değiştirme Bu seviyede programlama o kadar

Detaylı

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

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

Detaylı

Kalıtım (Inheritance)

Kalıtım (Inheritance) Kalıtım (Inheritance) Kocaeli Üniversitesi Kalıtım (Inheritance) Kodların çok kez kullanımı (Software reusability) Mevcut Sınıflardan Yeni Sınıflar Oluşturma Mevcut sınıfın değişken ve fonksiyonları kullanılabilir.

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ı

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ı

Kütüphane Web Sitesi Nedir? Bina x Web sitesi

Kütüphane Web Sitesi Nedir? Bina x Web sitesi Kütüphane Web Sitelerinde İçerik Zenginleştirme Adnan Menderes Üniversitesi Aydın 26 Ekim 2001 Dr. Hatice Kübra Bahşişoğlu kubra@hacettepe.edu.tr 04.06.2008 ÜNAK 1 Kütüphane Web Sitesi Nedir? Bina x Web

Detaylı

TEMEL BİLGİSAYAR BİLİMLERİ. Programcılık, problem çözme ve algoritma oluşturma

TEMEL BİLGİSAYAR BİLİMLERİ. Programcılık, problem çözme ve algoritma oluşturma TEMEL BİLGİSAYAR BİLİMLERİ Programcılık, problem çözme ve algoritma oluşturma Programcılık, program çözme ve algoritma Program: Bilgisayara bir işlemi yaptırmak için yazılan komutlar dizisinin bütünü veya

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üm1. İlk Bilgiler ISBN 0-321-49362-1

Bölüm1. İlk Bilgiler ISBN 0-321-49362-1 Bölüm1 İlk Bilgiler ISBN 0-321-49362-1 Bölüm 1 Konuları Niye Programlama Dilleri prensiplerini öğreniyoruz? Programlama alanları Dil değerlendirme kriterleri Dit tasarımına etkiler Dil kategorileri Dil

Detaylı

Çoktan Seçmeli Değerlendirme Soruları Akış Şemaları İle Algoritma Geliştirme Örnekleri Giriş 39 1.Gündelik Hayattan Algoritma Örnekleri 39 2.Say

Çoktan Seçmeli Değerlendirme Soruları Akış Şemaları İle Algoritma Geliştirme Örnekleri Giriş 39 1.Gündelik Hayattan Algoritma Örnekleri 39 2.Say İÇİNDEKİLER 1. Bilgisayarın Yapısı Ve Programlama Dilleri Giriş 1 Bilgisayar ve Programlamanın Kısa Bir Tarihçesi 2 Donanım ve Yazılım Kavramları 3 Bilgisayarın Donanımsal yapısı 4 Giriş Birimi (Input

Detaylı

10.DERS Yazılım Gerçekleştirme

10.DERS Yazılım Gerçekleştirme 10.DERS Yazılım Gerçekleştirme 1 Giriş: Bilgisayarlara yaptırılmak istenenleri, anlatabilmek için programlama dilleri kullanılır. Bir ihtiyaç veya konu doğrultusunda meydana getirilen tasarım önce programlama

Detaylı

Veritabanı Yönetim Sistemleri (Veritabanı Kavramı) Veri Modelleri

Veritabanı Yönetim Sistemleri (Veritabanı Kavramı) Veri Modelleri Veritabanı Yönetim Sistemleri (Veritabanı Kavramı) Veri Modelleri Konular Veritabanı Tasarım Aşamaları Veri Modeli Nedir? Veri Modeli Temel Bileşenleri İş Kuralları (Business Rules) İş Kurallarını Veri

Detaylı

BTP 209 SİSTEM ANALİZİ VE TASARIMI

BTP 209 SİSTEM ANALİZİ VE TASARIMI BTP 209 SİSTEM ANALİZİ VE TASARIMI BİLGİ SİSTEMLERİNİN GELİŞTİRİLMESİNDE KULLANILAN ARAÇLAR Dr. Önder EYECİOĞLU 2012 BİLGİ SİSTEMLERİNİN GELİŞTİRİLMESİNDE KULLANILAN ARAÇLAR 1. Akış Şemaları 2. Veri Akış

Detaylı

Decorator Tasarım Şablonu

Decorator Tasarım Şablonu Decorator Tasarım Şablonu KurumsalJava.com Özcan Acar Bilgisayar Mühendisi http://www.ozcanacar.com http://www.javadergisi.com Mevcut bir sınıf hiyerarşisini ya da sınıfın yapısını değiştirmeden, oluşturulan

Detaylı

BBS515 Nesneye Yönelik Programlama. Ders 1 Zümra Kavafoğlu

BBS515 Nesneye Yönelik Programlama. Ders 1 Zümra Kavafoğlu BBS515 Nesneye Yönelik Programlama Ders 1 Zümra Kavafoğlu Dersin Amacı Nesneye Yönelik Programlama Kavramını Java Dili Üzerinden Öğrenmek Nesneye yönelik programlama ile ilgili nesne, sınıf, kalıtım, çok

Detaylı

Bölüm 2 Varlık-İlişki Veri Modeli: Araçlar ve Teknikler. Fundamentals, Design, and Implementation, 9/e

Bölüm 2 Varlık-İlişki Veri Modeli: Araçlar ve Teknikler. Fundamentals, Design, and Implementation, 9/e Bölüm 2 Varlık-İlişki Veri Modeli: Araçlar ve Teknikler Fundamentals, Design, and Implementation, 9/e Üç Şema Modeli Üç şema modeli 1975 de ANSI/SPARC tarafından geliştirildi Veri modellemeninç ve rolü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ı

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 - 3 Tasarım Prensipleri Bu bölümde; Tasarım

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ı

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ı

Görsel Programlama-I (Visual Programming) 1.Hafta

Görsel Programlama-I (Visual Programming) 1.Hafta Görsel Programlama-I (Visual Programming) 1.Hafta 2011-2012 Bahar Dönemi Mehmet Akif Ersoy Üniversitesi Meslek Yüksekokulu Burdur 2012 Muhammer İLKUÇAR 1 Görsel Programlama Console

Detaylı

ANKARA ÜNİVERSİTESİ ELMADAĞ MESLEK YÜKSEKOKULU BİLGİSAYAR PROGRAMCILIĞI PROGRAMI DERS İÇERİKLERİ

ANKARA ÜNİVERSİTESİ ELMADAĞ MESLEK YÜKSEKOKULU BİLGİSAYAR PROGRAMCILIĞI PROGRAMI DERS İÇERİKLERİ ANKARA ÜNİVERSİTESİ ELMADAĞ MESLEK YÜKSEKOKULU BİLGİSAYAR PROGRAMCILIĞI PROGRAMI DERS İÇERİKLERİ TDİ111 TÜRKDİLİ 1 1. Dil, diller ve Türk dili 2. Dil bilgisi, sözcük, cümle 3. Kelime Türleri 4. Anlatımın

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 - 3 Tasarım Kalıpları Bu bölümde; Anti-Patternler

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ı

Üst Düzey Programlama

Üst Düzey Programlama Üst Düzey Programlama Tasarım Şablonları Üst Düzey Programlama-ders01/ 1 Tasarım Şablonları (Design Patterns) Şablon bir işi yapmak için bir yoldur. Yemek yaparken kullanılan tariflerde birer şablondur.

Detaylı

KOCAELİ ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BLM209 PROGRAMLAMA LAB. I PROJE 3 PROJE SÜRESİ:

KOCAELİ ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BLM209 PROGRAMLAMA LAB. I PROJE 3 PROJE SÜRESİ: KOCAELİ ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BLM209 PROGRAMLAMA LAB. I PROJE 3 PROJE SÜRESİ: 26.11.2018-14.12.2018 ROBOT PROJESİ Projede farklı türdeki robotların hareket etme, yük taşıma özellikleri

Detaylı

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

DENİZ HARP OKULU BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ DENİZ HARP OKULU BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ Dersin Adı Kodu Sınıf/Y.Y. Ders Saati (T+U+L) Kredi AKTS Nesne Yönelimli Programlama BİM-222 2/II 1+0+2 2 3 Dersin Dili

Detaylı

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

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

Detaylı

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ı

İçerik. Kapsülleme ( Encapsulation ) Java da Kalıtım: Örnek 2.1. Kalıtım ( Inheritance ) Tekrar Ziyaret. Java da Kalıtım: Örnek 2.2.

İçerik. Kapsülleme ( Encapsulation ) Java da Kalıtım: Örnek 2.1. Kalıtım ( Inheritance ) Tekrar Ziyaret. Java da Kalıtım: Örnek 2.2. İçerik Geçen ders: Kalıtım ( inheritance ) Kapsülleme ( Encapsulation ) BBS-515 Nesneye Yönelik Programlama Ders #5 (18 Kasım 2009) Bu ders: Kalıtım ( inheritance ) tekrar ziyaret Java da super kullanımı

Detaylı

Kitapta UML diyagramları kullanılarak, tasarım şablonları görsel olarak açıklanmıştır. İçerik aşağıdaki bölümlerden oluşmaktadır:

Kitapta UML diyagramları kullanılarak, tasarım şablonları görsel olarak açıklanmıştır. İçerik aşağıdaki bölümlerden oluşmaktadır: 23 Önsöz Bu kitapta profesyonel yazılım için vazgeçilmez olan tasarım şablonlarını (design pa erns) tematize etmek istedim. Çalıştığım birçok projede görevim mevcut sistemlere yeni fonksiyonlar eklemekti.

Detaylı

11.DERS Yazılım Testi

11.DERS Yazılım Testi 11.DERS Yazılım Testi 1 Yazılım Testi Bir programda hata bulma amacıyla icra edilen bir süreçtir. İyi bir test koşulu henüz ortaya çıkarılmamış bir hatayı tespit eden test koşuludur. Yazılım testinin önemi

Detaylı

ALGORİTMALAR. Turbo C Bilgisayarda Problem Çözme Adımları. Bilgisayarda Problem Çözme Adımları.

ALGORİTMALAR. Turbo C Bilgisayarda Problem Çözme Adımları. Bilgisayarda Problem Çözme Adımları. Turbo C ++ 3.0 ALGORİTMALAR http://vaibhavweb.tripod.com/others/tc3.zip http://www.top4download.com/turbo-c- /aklqwuba.html 1 2 Bilgisayarda Problem Çözme Adımları Bilgisayarda Problem Çözme Adımları 1-Problemi

Detaylı

MUHASEBE VE FİNANSMAN MUHASEBEDE WEB TABANLI PROGRAM KULLANMA GELİŞTİRME VE UYUM EĞİTİMİ MODÜLER PROGRAM (YETERLİĞE DAYALI)

MUHASEBE VE FİNANSMAN MUHASEBEDE WEB TABANLI PROGRAM KULLANMA GELİŞTİRME VE UYUM EĞİTİMİ MODÜLER PROGRAM (YETERLİĞE DAYALI) T.C. MİLLÎ EĞİTİM BAKANLIĞI Hayat Boyu Öğrenme Genel Müdürlüğü MUHASEBE VE FİNANSMAN MUHASEBEDE WEB TABANLI PROGRAM KULLANMA GELİŞTİRME VE UYUM EĞİTİMİ MODÜLER PROGRAM (YETERLİĞE DAYALI) 2014 ANKARA 1

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 10-11. Nesneye Yönelik Sistem Tasarımı Haftanın Amacı Bilişim sistemleri geliştirmede nesneye yönelik sistem tasarımı

Detaylı

Maltepe Üniversitesi Bilgisayar Mühendisliği Bölümü Yazılım Mühendisliği II (BIL 306)

Maltepe Üniversitesi Bilgisayar Mühendisliği Bölümü Yazılım Mühendisliği II (BIL 306) Maltepe Üniversitesi Bilgisayar Mühendisliği Bölümü Yazılım Mühendisliği II (BIL 306) GENEL DERS BİLGİSİ Öğretim Üyesi : Prof. Dr. Fuat İNCE Araştırma Görevlisi. Selim BAYRAKLI Ofis : 311 Ofis Saatleri

Detaylı

Java Dersi. Altuğ Bilgin Altıntaş

Java Dersi. Altuğ Bilgin Altıntaş Java Dersi Altuğ Bilgin Altıntaş Bu Dönem Hakkında Corba Servlet RMI Temel Kısım EJB JSP XML 2 JDBC JNI Çalışma Evreleri 6 Çalışma Evreleri 7 Java dosyasının hali 7 İlk Java uygulaması 7 Ciddi bir uygulama

Detaylı

Programlama Nedir? Bir bilgisayar bilimcisi gibi düşünmek ve programlama ne demektir?

Programlama Nedir? Bir bilgisayar bilimcisi gibi düşünmek ve programlama ne demektir? 2.1.1. PROGRAMLAMA NEDIR? Programlama Nedir? Bir bilgisayar bilimcisi gibi düşünmek ve programlama ne demektir? Bu düşünme şekli matematiğin, mühendisliğin ve doğa bilimlerinin bazı özelliklerini birleştirmektedir.

Detaylı

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

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

Detaylı

END3061 SİSTEM ANALİZİ VE MÜHENDİSLİĞİ

END3061 SİSTEM ANALİZİ VE MÜHENDİSLİĞİ END3061 SİSTEM STEM ANALİZİ VE MÜHENDİSLİĞİ BİLİŞİM M SİSTEMLERS STEMLERİ GİRİŞİŞ Bir sistem analizcisinin ana misyonu, kullanıcıların fiziksel gereksinimlerini açımlamak ve bunları yazılıma dönüştürmektir.

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ı

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ı

Özcan Acar 2010 Kurumsal Java Akademisi.com

Özcan Acar 2010 Kurumsal Java Akademisi.com Özcan Acar 2010 Kurumsal Java Akademisi.com Nasıl Uzman Yazılımcı Olunur? Özcan Acar acar@unitedinter.net http://www.ozcanacar.com http://www.kurumsaljava.com Özcan Acar Özcan 2010 Kurumsal Acar 2009 Java

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ı

Yazılım Kodlama ve İ simlendirme Standartları v1.0

Yazılım Kodlama ve İ simlendirme Standartları v1.0 Yazılım Kodlama ve İ simlendirme Standartları v1.0 İçerik Yazılım Kodlama ve İsimlendirme Standartları... 2 1. Amaç... Hata! Yer işareti tanımlanmamış. 2. Kapsam... Hata! Yer işareti tanımlanmamış. 3.

Detaylı

Kapsülleme ( Encapsulation ) BBS-515 Nesneye Yönelik Programlama

Kapsülleme ( Encapsulation ) BBS-515 Nesneye Yönelik Programlama Kapsülleme ( Encapsulation ) BBS-515 Nesneye Yönelik Programlama Ders #5 (18 Kasım 2009) İçerik Geçen ders: Kalıtım ( inheritance ) Bu ders: Kalıtım ( inheritance ) tekrar ziyaret Java da super kullanımı

Detaylı

Bölüm Üç. Koordinasyon ve Kontrol. Motor Kontrol Teorileri. Harekete Hazırlanmak. Koordinasyon ve Kontrol

Bölüm Üç. Koordinasyon ve Kontrol. Motor Kontrol Teorileri. Harekete Hazırlanmak. Koordinasyon ve Kontrol Koordinasyon ve Kontrol Bölüm Üç Motor Kontrol Teorileri Serbestlik Derecesi bir kontrol sistemindeki bileşen sayısı ve her birinin mümkün olan uygulama (ifade) biçimleri. Uygulayıcı mümkün olan kombinasyonlarla

Detaylı

NESNEYE YÖNELİK ÇÖZÜMLEME SÜRECİ

NESNEYE YÖNELİK ÇÖZÜMLEME SÜRECİ NESNEYE YÖNELİK ÇÖZÜMLEMENİN TEMELLERİ Çözümleme: Bir şeyi anlayabilmek için parçalarına ayırmak. Sistemi anlamaya yönelik çalışmalardan ve üst düzey planlama eylemlerinden oluşur. Uygulama/problem alanının

Detaylı

SINIF YAPISI ve NESNE YÖNELİMLİ PROGRAMLAMA NESNE YÖNELİMLİ PROGRAMLAMA

SINIF YAPISI ve NESNE YÖNELİMLİ PROGRAMLAMA NESNE YÖNELİMLİ PROGRAMLAMA GİRİŞ SINIF YAPISI ve NESNE YÖNELİMLİ PROGRAMLAMA Yazılım teknolojileri son 40 yılda artan bir ivmeyle gelişmeye devam etmektedir. Buna paralel olarak zamanla artan ve çeşitlenen kullanıcı istekleri doğrultusunda

Detaylı

BMT 101 Algoritma ve Programlama I 3. Hafta. Yük. Müh. Köksal GÜNDOĞDU 1

BMT 101 Algoritma ve Programlama I 3. Hafta. Yük. Müh. Köksal GÜNDOĞDU 1 BMT 101 Algoritma ve Programlama I 3. Hafta Yük. Müh. Köksal GÜNDOĞDU 1 Akış Diyagramları ve Sözde Kodlar Yük. Müh. Köksal GÜNDOĞDU 2 Sözde Kodlar (pseudo-code) Yük. Müh. Köksal GÜNDOĞDU 3 Sözde Kod Sözde

Detaylı

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

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

Detaylı

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Uzaktan Eğitim Uygulama ve Araştırma Merkezi JAVA PROGRAMLAMA Öğr. Gör. Utku SOBUTAY İÇERİK 2 Java da Kapsülleme (Erişim Denetleyiciler) Java da Sınıf Oluşturmak Java da Nesne Oluşturmak Java da Constructor Kavramı Java da This Kavramı Java da Constructor

Detaylı

[E-Katalog Tanıtım Sayfası] Ayser Bilgisayar. Cumhuriyet Meydanı No:41 Kat:2 0286 217 60 34

[E-Katalog Tanıtım Sayfası] Ayser Bilgisayar. Cumhuriyet Meydanı No:41 Kat:2 0286 217 60 34 [E-Katalog Tanıtım Sayfası] Ayser Bilgisayar Cumhuriyet Meydanı No:41 Kat:2 0286 217 60 34 Neden Ayser Bilgisayar? Bundan 10 yıl önce insanlar bir ürün almak için mağaza mağaza dolaşırlar ve farklı fiyatları

Detaylı