TASARIM KALIPLARI TASARIM DESENLERİ TASARIM ÖRÜNTÜLERİ TASARIM ŞABLONLARI

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

Download "TASARIM KALIPLARI TASARIM DESENLERİ TASARIM ÖRÜNTÜLERİ TASARIM ŞABLONLARI"

Transkript

1 TASARIM KALIPLARI TASARIM DESENLERİ TASARIM ÖRÜNTÜLERİ TASARIM ŞABLONLARI 1

2 Tasarım Kalıpları Nedir? Tasarım kalıpları; uzmanların yeni sorunları çözmek için geçmişte çalıştıkları çözümlerin uygulamalarının iyi belgelenmiş halidir. Tasarım kalıplarının arkasındaki düşünce, yazılım geliştirilirken sıklıkla karşılaşılan problemler için sunulan genel çözümler için standartlaşmış bir yol geliştirmektir. 2

3 Tasarım Kalıpları Avantajları 1. Zamanla, kalıpların kataloglarını yapabilir. Bu sayede, yazılım geliştirmeye yeni başlayanların yıllar geçtikçe kazanılan tecrübeden daha etkili bir şekilde yararlanması sağlanır. 2. Kalıpların standartlaştırılması, tüm geliştiricilerin (profesyoneller, yeni başlayanlar veya uzmanların) kararlarını daha kolay vermesini sağlamaktadır. 3. Tasarım kalıpları ortak bir kelime haznesi sağlar. Bu, geliştiriciler arasındaki iletişimi daha da kolay hale getirir. Bir tasarımı detaylıca açıklamaktansa, planları açıklamak için kalıp adını kullanabilir. 3

4 Tasarım Kalıpları Avantajları 4. Kalıplar birbirleri ile ilişkilendirilebilir, böylece geliştiriciler projelerinde hangi kalıpların birlikte bulunması gerektiğini kolayca anlayabilir. 5. Tasarım Kalıpları nesneye yönelik programlama topluluğu aracılıyla tecrübe paylaşımı için etkili bir yöntem sunmaktadır. Örneğin; C++, Smalltalk, C# yada Java programlama dillerinde kazanılan bilgiler, Web projelerinde ortaya çıkan uzmanlık gibi öğrenilen bilgiler biriktirebilir ve bunlar diğer geliştiricilerle paylaşılabilir. 4

5 GEÇMİŞTEN GÜNÜMÜZE YAZILIM MİMARİLERİ 5

6 Anti Kalıplar (Anti-Patterns) 6

7 Anti Kalıplar (Anti-Patterns) Anti-Pattern: Yazılımsal bir problemi, bilinen ve doğru çözüm olarak kabul edilmiş bir kalıbı kullanmadan ve özgün bir yöntemle çözmek anlamında kullanılmaktadır. İlk bakışta mükemmel gibi görünen bu çözümler sonradan sıkıntılar doğurmaktadırlar. 7

8 Anti Kalıplar (Anti-Patterns) AntiPattern lerin en tehlikeli tarafı ürün geliştirme süreçlerinde ve vakalarda en uygun çözüm yolu olarak düşünülmeleridir. AntiPattern kavramlarını bilmek, yazılım geliştirme sürecinde karşılaşılabilecek ciddi problemleri önceden tahmin edebilmeyi sağlar ve tedbir almayı kolaylaştırır. 8

9 Anti Kalıplar (Anti-Patterns) Anti-patternlerin kullanılması yanlıştır. Kısa vadede hızlı bir çözüm gibi görünseler de, genelde yazılım mimarisinde uzun vadeli sıkıntılara yol açmaktadırlar. 9

10 Anti-Pattern Örnekleri Magic Push button Spagetti Coding Lasagna Coding Kopyala-Yapıştır Programlama God Object (Tanrısal Nesne) Golden Hammer (Altın Çekiç) ve diğerleri 10

11 1. Magic Push button Herhangi bir soyutlama yapılmaksızın görsel nesnelerin arkasında kodlamanın yapılmasıdır. Buna buton click programcılığı denmektedir. Bu kalıp GUI(GraphicalUserInterface) tipindeki uygulamalarda daha fazla ortaya çıkar. Ara yüz tarafı ile iş mantıkları genellikle buton gibi bir kontroller arkasına gömülür. 11

12 2.Spagetti Coding Bakım ve değişikliğin yapılamayacak kadar karışık yazılmış kodlama türüne bu ad verilmektedir. Nesne yönelimli olmayan dillerde daha sık rastlanır. Metotlar daha çok süreç odaklı yazılır hatta süreç adları olarak isimlendirilir. 12

13 2.Spagetti Coding Nesneler arasında neredeyse hiç ilişki yoktur. Çoğu metot parametre almaz ve global seviyedeki sınıf değişkenlerini oluşturmakta kullanılır. Kodun yeniden kullanılabilirliği zordur. OOP temel özellikleri (kalıtım, çok biçimlilik, soyutlama)kullanılmaz. 13

14 3.Lasagna Coding Gereğinden fazla sayıda katmana sahip uygulama geliştirilmesine denmektedir(aşırı çok katmanlı uygulama). Çok katman, çok sayıda irili ufaklı class, okunabilirliği, anlaşılması ve değiştirilmesi zor bir yazılımın ortaya çıkmasına neden olur. 14

15 4.Kopyala-Yapıştır Programlama Daha genel, kapsamlı bir çözüm üretmek yerine, var olan kodları kopyalayarak geliştirme yolunu tercih etmektir. Çoğunlukla bir çözüm için yazılımın herhangi bir yerinde uygulanan bir kod parçasının, ihtiyaç olunan başka bir yerde aynen kopyalanarak kullanılmaya devam etmesi olarak tanımlanır. Bu anti-pattern kod tekrarlarına neden olmaktadır. 15

16 4.Kopyala-Yapıştır Programlama Doğal sonuç olarak bir değişiklik olması halinde kodun çoğaltıldığı yerlere gidilmesi de gerekecektir. Güncellemeler için fazla maliyetli çabalar sarf edilebilir. Hatalar gözden kaçabilir ve uygulamanın yanlış çalışma riski giderek artabilir. Söz konusu parçaları soyutlayıp, nesne yönelimli dil temellerine uygun olacak şekilde ayrıştırmak önemlidir. 16

17 5.God Object (Tanrısal Nesne) 17

18 5.God Object (Tanrısal Nesne) Gereğinden çok şey bilen ve yapabilen sınıflara denmektedir. 18

19 5.God Object (Tanrısal Nesne) Bu sınıflar çok fazla veriye sahiptir ve uygulamanın ana sınıfı gibi algılanabilmektedir. Bu kötü bir tasarımdır. 19

20 5.God Object (Tanrısal Nesne) Bu durumda tüm iş yükünü üstlenen sınıfların bakımı, genişletilmesi, iş mantıklarının kolayca okunur olarak içerisinde yer alması oldukça zorlaşır. Karmaşıklığın yanında, belleğe yüklenmesi zaman alan nesneler ortaya çıkar. 20

21 6.Golden Hammer (Altın Çekiç) Tüm yazılımların SOA(Service Oriented Architecture) mimari bütünü içerisinde ele alınması gerektiğini düşünmek bu duruma örnek olarak verilebilir. En sık görülen Anti-Pattern ler arasında yer alır. 21

22 6.Golden Hammer (Altın Çekiç) Söz konusu durumun oluşmasının nedenlerinden birisi, teknolojik gelişmelerden ekiplerin haberdar olmamasıdır. Var olan bir çözüm yerine ondan daha kötü olan özel bir çözüm üretme hatasına düşmektir. 22

23 6.Golden Hammer (Altın Çekiç) Bazı yazılım problemlerinin çözümünde kullanılacak olan yollar zaten standart ve bellidir. Üstelik bu çözümler için standart hale gelmiş mimari yaklaşımlar, ürünler ve alt yapılar (Frameworks) mevcuttur. Problemin bu tip yardımcılar ile çözülemeyeceğini düşünüp sıfırdan bir çözüm üretilmeye başlandığı hal tekerleğin yeniden keşfi olarak düşünülür. 23

24 GoF (Gang of Four) Sistematiği GoF Kalıpları Creational Patterns Nesne yaratılışına ait Kalıplar Structural Patterns Yapısal Kalıplar Behavioral Patterns Davranışsal Kalıplar 24

25 GoF (Gang of Four) Sistematiği Creational Patterns Nesne yaratılışına ait Kalıplar Kalıplar Abstractfactory Builder Factorymethod Prototype Singleton 25

26 Creational Patterns Nesne Yaratılışına Ait Kalıplar Bu gruptaki kalıplar, bir yada birden fazla nesnenin oluşturulması ve yönetilmesiyle alakalı kalıplardır. 26

27 GoF (Gang of Four) Sistematiği Structural Patterns Yapısal Kalıplar Adapter Bridge Decorator Facade Proxy 27

28 Structural Patterns Yapısal Kalıplar Structural Patterns : Bu gruptaki tüm desenler nesnelerin birbirleriyle aralarında olan ilişkileri temel alarak tasarlanmıştır. 28

29 GoF (Gang of Four) Sistematiği Behavioral (Davranışsal) Kalıplar Chainofresponsibility Command Interpreter Iterator Mediator Memonto Observer State Strategy Visitor 29

30 Behavioral (Davranışsal) Kalıplar Behavioral Patterns : Bu gruptaki kalıplar, belli bir işi yerine getirmek için çeşitli sınıfların birbirleriyle ne şekilde etkileşimli olarak davranacağını belirleyen kalıplardır. 30

31 Creational (Nesne Yaratılışına Ait) Kalıplar Creational kalıplar, yazılım nesnelerinin(sınıf örnekleri - class instances) nasıl yaratılacağı hakkında öneriler sunar. Ana fikir; iyi bir yazılımın, içinde barındırdığı nesnelerin nasıl yaratıldığından bağımsız olarak tasarlanması gerekliliğidir. Diğer bir deyişle, nesnelerin nereden ve nasıl yaratıldığı, ait oldukları yazılımın işleyişini etkilememeli; yeni özellikler eklenmesine ve değişikliklere karşı sorun oluşturmamalıdır. 31

32 Creational (Nesne Yaratılışına Ait) Kalıplar Yazılım sistemleri geliştikçe, nesnel bileşimler (object composition), sınıf kalıtımına (class inheritence) göre daha fazla önem kazanır. Bunun nedeni, yazılım sistemleri için basit temel davranış (behavior) şekillerinin tanımlanması üzerine kurulu tasarımların, sabit davranışlara dayalı tasarımlara göre daha esnek olmasındandır. Diğer bir deyişle, nesnelere davranışların bileşim olarak eklenmesi, daha sonra bu davranışların yazılımın gelişimine göre değiştirilmesine olanak sağlar. Bu durumda, geliştirilen yazılım için gereken temel davranış şekillerine dayalı bir tasarım, nesne arayüzleri (interface) değiştirmeden farklı ya da daha karmaşık davranışların kullanılabilmesini olanaklı kılar. 32

33 Creational (Nesne Yaratılışına Ait) Kalıplar Ancak, nesnel bileşimler yoluyla temel davranışları sağlayan nesnelerin örneklenmesi, ana ya da kalıtım yoluyla davranış değişikliğine uğratılarak türetilmiş sınıflardan nesne oluşturmak daha zordur. Creational kalıpları bu zorlukları aşmak amacıyla kullanılabilecek yazılım kalıpları içerir. Yaratım kalıpları, hem hangi somut sınıfların (concrete class) nesne örneklemesinde kullanıldığını, hem de bu örneklerin nasıl yaratılıp bir araya getirildiğini yazılım sisteminden saklarlar. 33

34 Factory Method (Fabrika Tasarım Kalıbı) Günlük hayatta bazı varlıklar yada nesnelerin yaratılışları basittir ve bu tür nesneleri kendimiz bile yaratabiliriz. Örneğin basit bir zili evde kendi kendimize yapabiliriz. Oysa bazı varlıklar veya nesneler ise oldukça karmaşık süreçlerden geçilerek yaratılmaktadır. Sözgelişi evde bir televizyon yapamayız. Ya da evde kendimiz para basamayız. Bu tür nesneleri özel fabrikalar-üretimin detaylarını tüketiciden gizleyerek-üretmekte ve tüketiciler de fabrikaların ürettiği bu nesneleri kullanmaktadırlar. 34

35 Factory Method (Fabrika Tasarım Kalıbı) Nesne yönelimli programlama açısından da benzer bir durum söz konusudur. Bazı nesneler doğrudan kullanıcısı tarafından yaratılabilmektedir. Bunun anlamı; sınıfın başlangıç fonksiyonunu (new operatörü) kullanarak nesnenin yaratılmasıdır. 35

36 Factory Method (Fabrika Tasarım Kalıbı) Ancak bazı nesnelerin (Product) kullanıcı(client) olarak erişebileceğimiz başlangıç fonksiyonları bulunmamaktadır. 36

37 Factory Method (Fabrika Tasarım Kalıbı) Client olan nesne Factory nesnesini kullanarak ihtiyacı olan Product nesnesini elde eder. İstenen tipte yeni nesne oluşturma sürecinin Factory sınıfına aktarılması ile birlikte nesne üretme ve initialize etme süreci client tan soyutlanmış olur. Bu sayede client; uygulama içerisinde tamamen kendi rolüne odaklanmış olur. Çünkü yeni nesnenin nasıl oluşturulacağına dair detaylardan soyutlanmış olur. Bunları bilmek zorunda değildir. 37

38 Factory Method (Fabrika Tasarım Kalıbı) Factory Pattern genel olarak: İstenen tipte nesne oluşturma sürecini Client ın bu konuda detay bilgi sahibi olmadan gerçekleştirilmesini sağlar. Yeni oluşturulan nesneye bir interface ile referans edilerek ulaşılmasını sağlar. 38

39 Factory Method (Fabrika Tasarım Kalıbı) Factory Method sınıf diyagramı 39

40 Factory Method (Fabrika Tasarım Kalıbı) Product: Factory tarafından yaratılan nesnelerin arayüzü ConcreteProduct: Product arayüzünü implemente eden sınıf. Bu sınıfın nesneleri ConcreteCreator tarafından yaratılır. Creator: Factory metodunu/metotlarını (factorymethod) tanımlayan arayüz. ConcreteCreator: Creator sınıfını genişleten ve factorymethod için bir implementasyon sağlayan sınıf. 40

41 Örnek: SekilFactory ISekil arayüzünü ve bu arayüzü implemente eden somut sınıfları (Kare,Cember,Dikdortgen) yaratınız. Sonrasında factory sınıfı olan SekilFactory sınıfını yaratınız. Program sınıfında SekilFactory sınıfından bir Sekil nesnesi elde edebilecek şekilde SekilFactory sınıfını tanımlayınız. Program sınıfında gereken nesnenin tipini (Cember,Kare,Dikdortgen) bilgi olarak geçebilecektir. 41

42 Örnek: SekilFactory-devam UML sınıf şeması: 42

43 Örnek: SekilFactory-devam 1.İlk olarak ISekil arayüzünü yaratırız. ISekil.java 43

44 Örnek: SekilFactory-devam 2.Sonrasında ISekil arayüzünü implemente eden somut sınıfları yaratırız. Kare.java 44

45 Örnek: SekilFactory-devam 2.Sonrasında ISekil arayüzünü implemente eden somut sınıfları yaratırız. Cember.java 45

46 Örnek: SekilFactory-devam 2.Sonrasında ISekil arayüzünü implemente eden somut sınıfları yaratırız. Dikdortgen.java 46

47 Örnek: SekilFactory-devam 3.Geçirilen bilgiye göre ISekil arayüzünü implemente eden sınıfların nesnelerini yaratan SekilFactory sınıfını ve getsekil(esekiltur sekiltipi) metotunu oluşturunuz. 47

48 Örnek: SekilFactory-devam SekilFactory.java ESekilTur.java 48

49 Örnek: SekilFactory-devam 4.Şeklin tipi gibi bir bilgiyi geçirerek somut sınıflardan nesne elde etmek için SekilFactory sınıfını kullanırız. Program.java 49

50 FactoryMethod(devam...) Factory tasarım kalıbında, istemciye normal oluşturma mantığına maruz bırakmadan nesne oluşturulmasına olanak sağlanır ve yeni yaratılan nesneye ortak bir arayüz kullanarak erişilebilir. 50

51 Örnek2: ProductFactory 51

52 Örnek2: ProductFactory 1.Iproduct ara yüzünü yaratınız. IProduct.java 52

53 Örnek2: ProductFactory 2.ProductOne somut sınıfını yaratınız. ProductOne.java 53

54 Örnek2: ProductFactory 2.ProductTwo somut sınıfını yaratınız. ProductTwo.java 54

55 Örnek2: ProductFactory 3.ProductFactory sınıfını yaratınız. ProductFactory.java 55

56 Örnek2: ProductFactory 4.Client sınıfını yaratınız. Client.java 56

57 Tasarım Kalıpları II Bu bölümde; FacadeTasarım Kalıbı ile ilgili konular anlatılacaktır. 57

58 Facade Cephe/ ÖnYüz Tasarım Kalıbı Çoğu modern yazılım sistemi oldukça karmaşıktır. Tasarım kalıpları uygulamaların yapımında yardımcı olmakta ve karmaşıklıkla başa çıkmak için işleri kolaylaştırmaktadır. 58

59 Facade Cephe/ ÖnYüz Tasarım Kalıbı Karmaşık sistemlerde, fonksiyonelite bir dizi ufak sınıflar arasında bölünerek başarılabilmektedir. Eklenen sınıflar ayrıca sistemin ufak parçalara ayrılmasının bir sonucu olarak da üretilebilirler. Bir sistemi birkaç alt sisteme bölmek karmaşık sistemlerle başa çıkılmasında yardımcı olur ve çalışmanın parçalanmasına olanak sağlar. Bir sistemi belirli bir sayıdaki özel sınıflara bölmek, iyi bir nesneye yönelimli tasarım pratiğidir. 59

60 Facade Cephe/ ÖnYüz Tasarım Kalıbı Fakat, bir sistemin içerisinde çok fazla sayıda sınıfın olması sakıncalı olabilir. Çok fazla alt sisteme sahip olan bir sistemi kullanan istemciler daha fazla nesne ile başa çıkmak zorundadır. Kullanıcılara yüzlerce yapılandırma seçeneği sunulduğunda, kullanıcıların kafası karışır. 60

61 Facade Cephe/ ÖnYüz Tasarım Kalıbı Bu duruma bir örnek olarak bir araba üreticisi düşünelim ve her türlü detayı kullanıcının opsiyonuna bırakmış olsun. Örneğin aracın yakıtı yanarken kullanacağı hava/gaz oranını ayarlanmasını yada aracın içerisindeki ateşleme sisteminin nasıl işletilmesi gerektiğini sürücünün tercihine bırakıldığını hayal edelim. 61

62 Facade Cephe/ ÖnYüz Tasarım Kalıbı Bu durumda otomobilin her seferinde ayarlanması gerekir ve bu çok pratik değildir. Sürücü olarak istenilen tek şey aracın anahtarını takmak ve aracı çalıştırmaktır. Sistemin geriye kalanı sürücünün yerine halledilmelidir. Bir istemciye sadece birkaç seçenek fayda sağlamaktadır, yüzlercesi veya binlercesi değil. 62

63 Facade Cephe/ ÖnYüz Tasarım Kalıbı Facade, bu seçenekleri sağlayabilir ve hangi alt sistemin çağırılacağına karar verebilir. Normalde Facade işin çoğunu alt sistemlere atar, fakat birkaç işi kendisi de yapabilmektedir. Facade in asıl amacı alt sistemlerin saklanması değildir. 63

64 Facade Cephe/ ÖnYüz Tasarım Kalıbı Facade Tasarım Kalıbının amacı; bir dizi alt sistem için bir arayüz sağlamaktır. Daha ayrıntılı seçeneklere ihtiyaç duyan istemciler alt sistemlerle etkileşime geçebilmelidir. 64

65 Facade Cephe/ ÖnYüz Tasarım Kalıbı Örnek: Seyahat Acentesi OtelRezervasyon ve UcusRezervasyon sınıflarını Facade tasarım kalıbını kullanarak sınıfları ayrı ayrı kullanmaya gerek kalmayacak şekilde bir Seyahat sınıfı yaratalım. 65

66 Facade Cephe/ ÖnYüz Tasarım Kalıbı Örnek: Seyahat Acentesi Seyahat +otelrezervasyonu:otelrezervazyon +ucusrezervasyonu:ucusrezervazyon +UygunOtelveUcusListele(Date seyahatbaslangic,date seyahatbitis):void Program +seyahat:seyahat UcusRezervasyon OtelRezervasyon +gidistarihi:date +donustarihi:date +UygunUcuslariListele(Date gidis,date donus):arraylist<ucus> +rezervasyonbaslangictarihi:date +rezervasyonbitistarihi:date +UygunOtelleriListele(Date baslangic,date bitis):arraylist<otel> Ucus +gidistarihi:date +donustarihi:date +Firma:String +ucusno:string Otel +ad:string +odasayisi:int +verginumarasi:int +sezonbaslangictarihi:date 66

67 Facade Cephe/ ÖnYüz Tasarım Kalıbı Otel.java Örnek: Seyahat Acentesi 67

68 Facade Cephe/ ÖnYüz Tasarım Kalıbı Ucus.java Örnek: Seyahat Acentesi 68

69 Facade Cephe/ ÖnYüz Tasarım Kalıbı Örnek: Seyahat Acentesi OtelRezervasyon.java 69

70 Facade Cephe/ ÖnYüz Tasarım Kalıbı UcusRezervasyon.java Örnek: Seyahat Acentesi 70

71 Facade Cephe/ ÖnYüz Tasarım Kalıbı Seyahat.java Örnek: Seyahat Acentesi 71

72 Facade Cephe/ ÖnYüz Tasarım Kalıbı Program.java Örnek: Seyahat Acentesi 72

73 Facade Cephe/ ÖnYüz Tasarım Kalıbı Örnek: SekilCizici void Ciz() fonksiyonuna sahip ISekil arayüzünü implemente eden Kare, Dikdortgen ve Cember sınıflarının (sınıfına bağlı kalmadan) Ciz() metodunu kullanımını sağlayan SekilCizici sınıfını yaratınız. 73

74 Facade Cephe/ ÖnYüz Tasarım Kalıbı Örnek: SekilCizici UML sınıf diyagramı: Program +sekilcizici:sekilcizici +Ciz():void Kare +Ciz():void <<Interface>> ISekil <<realize>> Cember +Ciz():void SekilCizici -cember:isekil -dikdortgen:isekil -kare:isekil +CemberCiz():void +KareCiz():void +DikdortgenCiz():void +SekilCizici():void Dikdorgen +Ciz():void 74

75 Facade Cephe/ ÖnYüz Tasarım Kalıbı ISekil.java Örnek: SekilCizici 75

76 Facade Cephe/ ÖnYüz Tasarım Kalıbı Kare.java Örnek: SekilCizici 76

77 Facade Cephe/ ÖnYüz Tasarım Kalıbı SekilCizici.java Örnek: SekilCizici 77

78 Facade Cephe/ ÖnYüz Tasarım Kalıbı Program.java Örnek: SekilCizici 78

79 KAYNAKLAR Aykut Taşdelen, C++, Java ve C# ile UML ve Dizayn Paternleri, Pusula Yayıncılık, İstanbul, 2014 Eric Freeman, Head First Design Patterns, O'Reilly Media, 2004 Stephen Stelting& Olav Maassen, Applied Java Patterns, Prentice Hall PTR, Notlarc4b1m.aspx 79

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ı

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 - 4 Tasarım Kalıpları - II Bu bölümde; Facade

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ı

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 - 4 Tasarım Kalıpları - II Bu bölümde; Singleton

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ı

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

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

YZM 2118 Yazılım Mimarisi ve Tasarımı YZM 2118 Yazılım Mimarisi ve Tasarımı Yrd. Doç. Dr. Volkan TUNALI Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği 1 BÖLÜM 10.4 Tasarım Kalıpları - IV Bu bölümde;

Detaylı

TASARIM KALIPLARI-DEVAM. Singleton Adapter

TASARIM KALIPLARI-DEVAM. Singleton Adapter TASARIM KALIPLARI-DEVAM Singleton Adapter 1 Singleton (Yegane/Tekil) Tasarım Kalıbı Singleton tasarım kalıbı; bir sistem içerisinde yalnızca bir nesne üretilerek bu nesnenin kullanılması gerektiği durumlarda

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ı

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ı

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ı

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

Facade (Cephe) Tasarım Şablonu KurumsalJava.com

Facade (Cephe) Tasarım Şablonu KurumsalJava.com Facade (Cephe) Tasarım Şablonu KurumsalJava.com Özcan Acar Bilgisayar Mühendisi http://www.ozcanacar.com Profesyonel yazılım sistemleri birçok komponentin birleşiminden oluşur. Yazılım esnasında bir çok

Detaylı

.com. Özcan Acar 2009 Kurumsal Java.com

.com. Özcan Acar 2009 Kurumsal Java.com .com Spring MVC Özcan Acar acar@unitedinter.net http://www.ozcanacar.com http://www.kurumsaljava.com Özcan Acar Hakkında public class OezcanAcar { public static void main(string[] args) { Acar oezcan =

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ı

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ı

YZM 2105 Nesneye Yönelik Programlama

YZM 2105 Nesneye Yönelik Programlama YZM 2105 Nesneye Yönelik Programlama Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği 1 BÖLÜM - 7 Kalıtım - II Bu bölümde; Soyut Sınıflar,

Detaylı

Liskov Substitution Principle (LSP) Liskov un Yerine Gecme Prensibi KurumsalJava.com

Liskov Substitution Principle (LSP) Liskov un Yerine Gecme Prensibi KurumsalJava.com Liskov Substitution Principle (LSP) Liskov un Yerine Gecme Prensibi KurumsalJava.com Özcan Acar Bilgisayar Mühendisi http://www.ozcanacar.com Barbara Liskov 1 tarafından geliştirilen bu prensip kısaca

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ı

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

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ı

YZM 2105 Nesneye Yönelik Programlama

YZM 2105 Nesneye Yönelik Programlama YZM 2105 Nesneye Yönelik Programlama Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği 1 BÖLÜM - 7 Abstract (Soyut Sınıflar) Bu bölümde;

Detaylı

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

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

Detaylı

YZM 2105 Nesneye Yönelik Programlama

YZM 2105 Nesneye Yönelik Programlama YZM 2105 Nesneye Yönelik Programlama Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği 1 BÖLÜM - 5 Nesneye Yönelik Programlamaya Giriş Bu

Detaylı

YZM 2116 Veri Yapıları

YZM 2116 Veri Yapıları YZM 2116 Veri Yapıları Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği BAŞLAMADAN ÖNCE Bu dersi alan öğrencilerin aşağıdaki konuları bildiği

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ı

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ı

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

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

Detaylı

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 OOP Hatırlatma Bu bölümde Nesneye Yönelik

Detaylı

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

Detaylı

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ı

Üst Düzey Programlama

Üst Düzey Programlama Üst Düzey Programlama Tasarım Şablonları Üst Düzey Programlama-ders03/ 1 Chain-Of-Responsibility ŞABLONU Bu şablon; bir dizi sınıfın, gönderilmiş olan isteğine yanıt vermesini sağlar. Bu nesneler farklı

Detaylı

Client Server Database

Client Server Database Java Server Faces Ahmet Demirelli Sabancı Üniversitesi 2007 Ajanda Model-1 Mimari Model-2 Mimari MVC Framework Java Server Faces Örnek Uygulama Model 1 Mimari 1 2 3 6 JSP (View) 5 JavaBeans (Model) 4 Client

Detaylı

YZM 2105 Nesneye Yönelik Programlama

YZM 2105 Nesneye Yönelik Programlama YZM 2105 Nesneye Yönelik Programlama Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği 1 BÖLÜM - 6 Kalıtım (Inheritance) - I Bu bölümde;

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ı

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ı

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ı

1.1 Metodolojiyi Gerçeklemek Üzere Geliştirilen Altyapı

1.1 Metodolojiyi Gerçeklemek Üzere Geliştirilen Altyapı 1.1 Metodolojiyi Gerçeklemek Üzere Geliştirilen Altyapı Metodolojisi üzerinde durduğumuz çalışman Eğitim altyapısını gerçekleştirmek: Proje iki ana parçadan oluşacaktır. Merkezi Altyapı Kullanıcı Arabirimi

Detaylı

.com. Kurumsal Java. Özcan Acar 2009. com

.com. Kurumsal Java. Özcan Acar 2009. com . urumsal J Java ile Yüksek Performanslı Web Platformları Özcan Acar acar@unitedinter.net http://www.ozcanacar. http://www.kurumsalj urumsal Özcan Acar Hakkında public class OezcanAcar { public static

Detaylı

Üst Düzey Programlama

Üst Düzey Programlama Üst Düzey Programlama Servlet Üst Düzey Programlama-ders01/ 1 Servlet Nedir? Web sayfaları ilk başlarda durağan bir yapıya sahipti ve kullanıcıdan bilgi alarak işlemler yapmıyordu. Zamanın geçmesiyle kullanıcıya

Detaylı

YAZILIM TASARIMININ ÖNEMİ

YAZILIM TASARIMININ ÖNEMİ 1 YAZILIM TASARIMI YAZILIM TASARIMININ ÖNEMİ Tasarım(Design); bir ürünün tamamının veya bir parçasının çizgi, şekil, renk, biçim, doku, malzemenin esnekliği veya süslemesi gibi insan duyuları ile algılanabilen

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ı

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ı

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ı

VERİ YAPILARI DERS NOTLARI BÖLÜM 1 GİRİŞ. Yard. Doç. Dr. Deniz KILINÇ

VERİ YAPILARI DERS NOTLARI BÖLÜM 1 GİRİŞ. Yard. Doç. Dr. Deniz KILINÇ VERİ YAPILARI DERS NOTLARI BÖLÜM 1 GİRİŞ Yard. Doç. Dr. Deniz KILINÇ CELAL BAYAR ÜNİVERSİTESİ, YAZILIM MÜHENDİSLİĞİ 2015-2016 1. DERS İÇERİĞİ VE KAYNAKLAR Veri Yapıları (VY) dersinde görülmesi muhtemel

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ı

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

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ı

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ı

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ı

Genel Programlama II

Genel Programlama II Genel Programlama II 22.03.2011 1 Yapılar ( Structures ) Yapılar ( structures ); tam sayı, karakter vb. veri tiplerini gruplayıp, tek bir çatı altında toplar. Bu gruplandırma içinde aynı ya da farklı veri

Detaylı

Bilişim Garaj Akademisi Nedir?

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

Detaylı

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ı

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ı

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

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

Detaylı

YZM 2105 Nesneye Yönelik Programlama

YZM 2105 Nesneye Yönelik Programlama YZM 2105 Nesneye Yönelik Programlama Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği 1 BÖLÜM - 6 Kalıtım (Inheritance) - II 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ı

MVP ve Mediator ile Loose Coupled, Modüler UI Geliştirme

MVP ve Mediator ile Loose Coupled, Modüler UI Geliştirme MVP ve Mediator ile Loose Coupled, Modüler UI Geliştirme Hakkımızda Kenan Sevindik, 1999 ODTÜ mezunu 15 yıllık kurumsal uygulama geliştirme tecrübesine sahip Uzmanlık ve ilgi alanları Kurumsal uygulama

Detaylı

1. VERİ TABANI KAVRAMLARI VE VERİ TABANI OLUŞTUMA

1. VERİ TABANI KAVRAMLARI VE VERİ TABANI OLUŞTUMA BÖLÜM15 D- VERİ TABANI PROGRAMI 1. VERİ TABANI KAVRAMLARI VE VERİ TABANI OLUŞTUMA 1.1. Veri Tabanı Kavramları Veritabanı (DataBase) : En genel tanımıyla, kullanım amacına uygun olarak düzenlenmiş veriler

Detaylı

Şekil 1 de dört adet genel kullanıma açılmış veri (D1-D4) ve bunları doğrudan ya da dolaylı olarak kullanan 7 adet yordam (P1-P7) yer almaktadır.

Şekil 1 de dört adet genel kullanıma açılmış veri (D1-D4) ve bunları doğrudan ya da dolaylı olarak kullanan 7 adet yordam (P1-P7) yer almaktadır. Neden Nesneye Yönelik (object-oriented) Programlama? Nesneye yönelik programlamanın sunduğu olanakların yeterli şekilde değerlendirilebilmesi için önce geleneksel yordamsal (procedural) programlama yaklaşımından

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ı

MVP, Observer ve Mediator Örüntüleri ile Yeniden Kullanılabilir Uygulama Bileşenleri Geliştirme

MVP, Observer ve Mediator Örüntüleri ile Yeniden Kullanılabilir Uygulama Bileşenleri Geliştirme MVP, Observer ve Mediator Örüntüleri ile Yeniden Kullanılabilir Uygulama Bileşenleri Geliştirme Kenan Sevindik Kimdir? 1999 ODTÜ Bilgisayar Müh. mezunu 15 yılın üzerinde kurumsal uygulama geliştirme deneyimi

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ı

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ı

COĞRAFİ BİLGİ SİSTEMLERİ Building Geodatabase Eğitimi

COĞRAFİ BİLGİ SİSTEMLERİ Building Geodatabase Eğitimi COĞRAFİ BİLGİ SİSTEMLERİ Building Geodatabase Eğitimi Kursun Süresi: 3 Gün 18 Saat http://facebook.com/esriturkey https://twitter.com/esriturkiye egitim@esriturkey.com.tr COĞRAFİ BİLGİ SİSTEMLERİ Building

Detaylı

5.HAFTA. Sınıf ve Nesne Kavramı, Metot Oluşturma, Kurucu Metot, this Deyimi

5.HAFTA. Sınıf ve Nesne Kavramı, Metot Oluşturma, Kurucu Metot, this Deyimi 5.HAFTA Sınıf ve Nesne Kavramı, Metot Oluşturma, Kurucu Metot, this Deyimi Sınıf Kavramı: Sınıf (class) soyut bir veri tipidir. Nesne (object) onun somutlaşan bir cismidir. Java da sınıf (class) kavramını

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ı

T.C. MARDİN ARTUKLU ÜNİVERSİTESİ MİDYAT MESLEK YÜKSEKOKULU BİLGİSAYAR PROGRAMCILIĞI (UZAKTAN ÖĞRETİM) ÖNLİSANS PROGRAMI Eğitim Öğretim Yılı

T.C. MARDİN ARTUKLU ÜNİVERSİTESİ MİDYAT MESLEK YÜKSEKOKULU BİLGİSAYAR PROGRAMCILIĞI (UZAKTAN ÖĞRETİM) ÖNLİSANS PROGRAMI Eğitim Öğretim Yılı T.C. MARDİN ARTUKLU ÜNİVERSİTESİ MİDYAT MESLEK YÜKSEKOKULU BİLGİSAYAR PROGRAMCILIĞI (UZAKTAN ÖĞRETİM) ÖNLİSANS PROGRAMI 2017-2018 Eğitim Öğretim Yılı ALGORİTMA VE PROGRAMLAMAYA GİRİŞ BPU101 5 AKTS 1. yıl/1.yarıyıl

Detaylı

... ROBOTİK VE KODLAMA EĞİTİMİ ÇERÇEVESİNDE ÖĞRETİM YILI BİLİŞİM TEKNOLOJİLERİ DERSİ ÜNİTELENDİRİLMİŞ YILLIK DERS PLANI

... ROBOTİK VE KODLAMA EĞİTİMİ ÇERÇEVESİNDE ÖĞRETİM YILI BİLİŞİM TEKNOLOJİLERİ DERSİ ÜNİTELENDİRİLMİŞ YILLIK DERS PLANI ... ROBOTİK VE KODLAMA EĞİTİMİ ÇERÇEVESİNDE 2018 2019 ÖĞRETİM YILI BİLİŞİM TEKNOLOJİLERİ DERSİ ÜNİTELENDİRİLMİŞ YILLIK DERS PLANI Hazırlayan : Özel Öğretim Kurumları Birliği (ÖZKURBİR) Dersin Adı : Bilişim

Detaylı

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

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

Detaylı

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

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

Detaylı

YZM 2105 Nesneye Yönelik Programlama

YZM 2105 Nesneye Yönelik Programlama YZM 2105 Nesneye Yönelik Programlama 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 Nesneye Yönelik Programlamaya Giriş Bu

Detaylı

Design Patterns (Tasarım Kalıpları)

Design Patterns (Tasarım Kalıpları) Design Patterns (Tasarım Kalıpları) Caner Öncü caner@koddit.com Design Patterns Nedir Tam Olarak? Ortak dil, ortak problemler, ortak çözümler Problem... çözüm? Design Patterns Nedir Tam Olarak? Tekerleği

Detaylı

Veritabanı Yönetimi Bilgisayarların. Keşfi Hedefler. Veritabanı, Veri ve Bilgi. Veritabanı, Veri ve Bilgi. Veritabanı, Veri ve Bilgi

Veritabanı Yönetimi Bilgisayarların. Keşfi Hedefler. Veritabanı, Veri ve Bilgi. Veritabanı, Veri ve Bilgi. Veritabanı, Veri ve Bilgi Hedefler Veritabanı Yönetimi Bilgisayarların Discovering Keşfi 2010 Computers 2010 Living in a Digital World Dijital Dünyada Yaşamak Veritabanı terimini tanımlamak ve bir veritabanının veri ve bilgi ile

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ı

Yazılım ve Uygulama Danışmanı Firma Seçim Desteği

Yazılım ve Uygulama Danışmanı Firma Seçim Desteği Yazılım ve Uygulama Danışmanı Firma Seçim Desteği Kapsamlı bir yazılım seçim metodolojisi, kurumsal hedeflerin belirlenmesiyle başlayan çok yönlü bir değerlendirme sürecini kapsar. İş süreçlerine, ihtiyaçlarına

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ı

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

SE311 YAZILIM YAPIMI BÖLÜM 3 YAPIM TASARIMI. Yrd. Doç. Dr. Volkan TUNALI Mühendislik ve Doğa Bilimleri Fakültesi / Maltepe Üniversitesi SE311 YAZILIM YAPIMI BÖLÜM 3 YAPIM TASARIMI Yrd. Doç. Dr. Volkan TUNALI Mühendislik ve Doğa Bilimleri Fakültesi / Maltepe Üniversitesi Giriş 2 Yazılım Tasarımı Tasarımın Zorlukları Temel Tasarım Kavramları

Detaylı

Java Programlama (COMPE 438) Ders Detayları

Java Programlama (COMPE 438) Ders Detayları Java Programlama (COMPE 438) Ders Detayları Ders Adı Ders Kodu Dönemi Ders Saati Uygulama Saati Laboratuar Kredi AKTS Saati Java Programlama COMPE 438 Her İkisi 2 2 0 3 5 Ön Koşul Ders(ler)i COMPE 225

Detaylı

Haz. Yrd.Doç.Dr. Yunus Emre Selçuk

Haz. Yrd.Doç.Dr. Yunus Emre Selçuk NESNEYE DAYALI TASARIM VE MODELLEME KISIM 1: TASARIM KALIPLARI 1.1. 1 ABSTRACT FACTORY Amaç: Birbirleri ile ilişkili ya da aynı aileden olan nesneleri, sınıflarını belirtmeden oluşturabilmek. Örnek: Java

Detaylı

Ders Adı : Nesne Tabanlı Programlama-I Ders No : Teorik : 3 Pratik : 1 Kredi : 3.5 ECTS : 4. Ders Bilgileri.

Ders Adı : Nesne Tabanlı Programlama-I Ders No : Teorik : 3 Pratik : 1 Kredi : 3.5 ECTS : 4. Ders Bilgileri. Image not found http://bologna.konya.edu.tr/panel/images/pdflogo.png Ders Adı : Nesne Tabanlı Programlama-I Ders No : 0690130114 Teorik : 3 Pratik : 1 Kredi : 3.5 ECTS : 4 Ders Bilgileri Ders Türü Öğretim

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ı

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ı

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ı

Ders Adı Kodu Yarıyılı T+U Saati Ulusal Kredisi AKTS

Ders Adı Kodu Yarıyılı T+U Saati Ulusal Kredisi AKTS DERS BİLGİLERİ Ders Adı Kodu Yarıyılı T+U Saati Ulusal Kredisi AKTS Nesneye Yönelik Programlama BIL205 1 3+0 3 5 Ön Koşul Dersleri Yok Dersin Dili Dersin Seviyesi Dersin Türü Türkçe Lisans Zorunlu / Yüz

Detaylı

Altasoft kolay anlaşılan, kolay uygulana ve yalın bir yazılımdır.

Altasoft kolay anlaşılan, kolay uygulana ve yalın bir yazılımdır. Yönetim Sistemlerinin uygulanmasında ve sürdürülmesinde çok önemli sıkıntılar ve kayıplar yaşanmaktadır. Altasoft bu sıkıntıları ve kayıpları en aza indiren çözümleri içeren bir yazılımdır. Çok sayıda

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ı

Smart Work ile SüreS. reçlerinizi Daha Verimli Hale Getirin Yeşim MUTLU. WebSphere Ürün Müdürü

Smart Work ile SüreS. reçlerinizi Daha Verimli Hale Getirin Yeşim MUTLU. WebSphere Ürün Müdürü Smart Work ile SüreS reçlerinizi Daha Verimli Hale Getirin Yeşim MUTLU IBM Çözümler Zirvesi 2011 WebSphere Ürün Müdürü Đş Süreci Yönetimi Websphere Lombardi Edition Örnek Proje Profili Referanslar Đş Süreci

Detaylı

Data Science Boot Camp

Data Science Boot Camp Data Science Boot Camp Eğitim Detayları Eğitim Süresi : 3 Gün Kontenjan : 12 Ön Koşullar : Eğitim Hakkında Data Science Boot Camp Sertifikasyon Programı Introductory Python, Data Science with Python: Data

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ı

NESNEYE YÖNELİK PROGRAMLAMA

NESNEYE YÖNELİK PROGRAMLAMA NESNEYE YÖNELİK PROGRAMLAMA Metotlar Şu ana kadar yaptığımız örneklerde hep önceden hazırlanmış ReadLine(), WriteLine() vb. gibi metotları kullandık. Artık kendi metotlarımızı yapmanın zamanı geldi. Bilmem

Detaylı

WEB FORMLARI. Öğr. Gör. Emine TUNÇEL Kırklareli Üniversitesi Pınarhisar Meslek Yüksekokulu

WEB FORMLARI. Öğr. Gör. Emine TUNÇEL Kırklareli Üniversitesi Pınarhisar Meslek Yüksekokulu WEB FORMLARI Öğr. Gör. Emine TUNÇEL Kırklareli Üniversitesi Pınarhisar Meslek Yüksekokulu WEB FORMLARI Web uygulamalarının etkileşimli olabilmesi için, diğer bir ifade ile uygulamanın kullanıcı isteğine

Detaylı

Vega Ayarları. Vega Programının kurulu olduğu veritabanı ve web servisi için bağlantı ayarlarının yapıldığı menüdür.

Vega Ayarları. Vega Programının kurulu olduğu veritabanı ve web servisi için bağlantı ayarlarının yapıldığı menüdür. Vega Ayarları Vega muhasebe sistemini kullanan müşterilemizin, muhasebe sistemleri ile E Ticaret sitesi arasındaki entegrasyon parametrelerini tanımladıkları menüdür. Bu menü altındaki alt menüler kullanılarak

Detaylı

TÜM ÜRÜN YELPAZESİNDE ORİJİNAL EKİPMAN EŞDEĞERİ ÜRÜN TANITIMI

TÜM ÜRÜN YELPAZESİNDE ORİJİNAL EKİPMAN EŞDEĞERİ ÜRÜN TANITIMI TÜM ÜRÜN YELPAZESİNDE ORİJİNAL EKİPMAN EŞDEĞERİ Dünyanın neresine giderseniz gidin, kaputun altına baktığınızda muhtemelen Gates in orada olduğunu görürsünüz. Gates, dünyanın en büyük orijinal ekipman

Detaylı

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

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

Detaylı

Tasarım Desenleri ve Java Web Servisleri ile Çok Katmanlı Bir Sistem Tasarımı

Tasarım Desenleri ve Java Web Servisleri ile Çok Katmanlı Bir Sistem Tasarımı Tasarım Desenleri ve Java Web Servisleri ile Çok Katmanlı Bir Sistem Tasarımı Arda Göknil 1, Tayfun Elmas 2, N.Yasemin Topaloğlu 3 Ege Üniversitesi, Bilgisayar Mühendisliği Bölümü, 35100, Bornova, İzmir

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ı

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ı

Tasarım Raporu. - Projemizde detaylı bir şekilde ulaşmak istediğimiz amaçların belirlenmesi,

Tasarım Raporu. - Projemizde detaylı bir şekilde ulaşmak istediğimiz amaçların belirlenmesi, Grup EHEM Tasarım Raporu Emre TÜRKER Hüseyin SERİN Eray KILIÇ Musa CÖCE Kısa Özet Tasarım Raporumuzda: - Projemizde detaylı bir şekilde ulaşmak istediğimiz amaçların belirlenmesi, - Projenin hedeflerinin

Detaylı

Mikro Ayarları. Mikro Programının kurulu olduğu veritabanı ve web servisi için bağlantı ayarlarının yapıldığı menüdür.

Mikro Ayarları. Mikro Programının kurulu olduğu veritabanı ve web servisi için bağlantı ayarlarının yapıldığı menüdür. Mikro Ayarları Mikro muhasebe sistemini kullanan müşterilemizin, muhasebe sistemleri ile E Ticaret sitesi arasındaki entegrasyon parametrelerini tanımladıkları menüdür. Bu menü altındaki alt menüler kullanılarak

Detaylı