YZM211 YAZILIM TASARIMI

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

Download "YZM211 YAZILIM TASARIMI"

Transkript

1 BÖLÜM 7 STATİK ORTA-DÜZEY NESNE YÖNELİMLİ TASARIM: SINIF MODELLERİ YZM211 YAZILIM TASARIMI Yrd. Doç. Dr. Volkan TUNALI Mühendislik ve Doğa Bilimleri Fakültesi / Maltepe Üniversitesi

2 GENEL BAKIŞ 2 KISIM 1 İleri Düzey UML Sınıf Diyagramları SECTION 2 Ayrıntılı Tasarıma Giriş ve Orta-Düzey Sınıf Modelleme

3 KISIM 1 3 İleri Düzey UML Sınıf Diyagramları

4 Amaçlar 4 UML sınıf diyagramı notasyonlarında henüz değinilmemiş kısımları sunmak Yeni notasyonun kullanımıyla ilgili örnekler vermek Notasyonun iyi kullanılmasına yönelik sezgisel bazı kurallar sunmak

5 İçerik 5 Genelleştirme (Generalization) Soyut (abstract) ve somut (concrete) operasyonlar ve sınıflar Arabirimler (interface) Özellik görünürlüğü (feature visibility) Sınıf ve örnek değişkenleri ve operasyonları Agregasyon (aggregation) ve kompozisyon (composition) İlişki (association) sınıfları Sınıf diyagramları için sezgisel kurallar

6 Genelleştirme (Generalization) 6 Genelleştirme (generalization) bir model elemanıyla (ebeveyn parent) diğeri (çocuk child) arasındaki ilişkiyi belirten bir UML yapısıdır. Çocuk, özel bir ebeveyn türüdür. İçi boş üçgen ve çizgilerle temsil edilir. Üçgen ebeveyne bağlanır, çizgiler ise çocuğa. Genelleştirme UML sınıf diyagramlarında kalıtımı (inheritance) modellemek için kullanılır.

7 Genelleştirme Örneği 7 Mammal Quadruped Feline Lizard Tiger Lion Puma

8 Genelleştirme ya da İlişki (Association) 8 Genelleştirme sınıflar arasındaki bir ilişkidir. İlişki (association) ise ilişkilendirilmiş sınıfların örnekleri arasındaki ilişkiyi temsil eder. Genelleştirme bir ilişki (association) çeşidi değildir. Çoklukları yoktur, Rol isimleri yoktur, İsimleri yoktur (zaten adı genelleştirme dir).

9 Soyut (Abstract) Operasyonlar ve Sınıflar 9 Soyut operasyon (abstract operation) gövdesi/içeriği olmayan operasyondur; somut operasyon (concrete operation) ise gövdesi/içeriği olan operasyondur. Soyut sınıf (abstract class) kendisinden nesne yaratılamayan yani örneği (instance) oluşturulamayan sınıftır; somut sınıf ise örneği oluşturulabilen sınıftır. Bir sınıf Soyut bir operasyon içeriyorsa mutlaka soyut olmalıdır; Hiç soyut operasyonu olmasa bile kendisi soyut olabilir.

10 10 Soyut Sınıf ve Operasyonların Kullanımı ve Temsili Soyut sınıflar kendi alt sınıflarını belirli operasyonları implemente etmeye zorlarlar. Soyut sınıflar UML de şu şekilde gösterilir: İsimleri italik yazılarak, «abstract» ile stereotiplenerek, veya {abstract} özelliği verilerek. Soyut operasyonlar UML de şu şekilde gösterilir: Spesifikasyonları italik yazılarak, veya {abstract} özelliği verilerek.

11 Soyut Sınıf ve Operasyon Örnekleri 11 «abstract» Shape areaof() : float { abstract } Renderer render() Document { abstract } callnumber descriptors : String[*] Circle ScreenRenderer Book

12 Arabirimler (Interfaces) 12 Bir UML arabirimi (interface) public tanımlı özellik (attribute) ve soyut operasyonların bir koleksiyonudur. Sağlanan (provided) arabirim bir sınıf veya bileşen tarafından gerçeklenir Bir top veya lolipop sembolüyle temsil edilir, veya Bir gerçekleme konnektörüne (realization connector) sahip stereotipli bir sınıf sembolüyle temsil edilir Gereksinilen (required) arabirim Bir sınıf veya bileşen tarafından ihtiyaç duyulur Bir soket sembolüyle temsil edilir, veya Top sembolüne bir bağımlılık okuyla temsil edilir, veya Stereotipli sınıf sembolüne bir bağımlılık okuyla temsil edilir

13 Sağlanan Arabirim Notasyonları 13

14 Gereksinilen Arabirim Notasyonları 14

15 Modül Montaj Notasyonları 15 Timer Timer «interface» Observer update( arg : Object ) Observer TimerObserver TimerObserver

16 UML Özellik Görünürlüğü (Visibility) 16 Public İçinde yer aldığı sınıfın görünür olduğu her yerde görünürdür; + ile belirtilir. Package İçinde yer aldığı sınıfı içeren package içinde her yerde görünürdür; ~ ile belirtilir. Protected İçinde yer aldığı sınıfta ve onun tüm alt-sınıflarında görünürdür; # ile belirtilir. Private Yalnızca içinde yer aldığı sınıfta görünürdür; - ile belirtilir.

17 Özellik Görünürlüğüne Örnek 17 Alarm + identifier : String {constant} # location : String # description : String - classification : Classifier + getlocation() : String + getdescription() : String + action() ~ setclassification( c : Classifier) ~ getclassification() : Classifier # basicaction() FireAlarm IntrusionAlarm FloodAlarm

18 Sınıf ve Örnek Değişken & Operasyonları 18 Bir örnek değişkeni veya nesne değişkeni (instance variable), değeri ilgili sınıfın tüm örnekleri tarafından saklanan bir özelliktir. Bir sınıf değişkeni (class variable) yalnızca bir kez ve sınıfın kendisi tarafından saklanan ve sınıfın tüm örnekleri tarafından paylaşılan bir özelliktir. Bir örnek operasyonu veya nesne operasyonu (instance operation) yalnızca sınıfın bir örneği üzerinden çağrılabilir. Bir sınıf operasyonu (class operation) sınıf üzerinden çağrılabilir. UML de sınıf değişkenleri ve operasyonları static olarak adlandırılır. Bir özelliğin veya operasyonun spesifikasyonu altı çizili yapılarak belirtilir.

19 Özellik ve Operasyon Spesifikasyonu Örnek 19 Tokenizer - theinstance : Tokenizer + token : TokenType = NONE + tokentext : String - buffer : String - bufferposition : integer - delimiters : String + getinstance() : Tokenizer + nexttoken() + setbuffer( buffer : String ) + setdelimiter( delim : String ) TokenType + NONE : TokenType { constant } + NUMBER : TokenType { constant } + IDENTIFIER : TokenType { constant } + EQUAL : TokenType { constant } + MINUS : TokenType { constant } + PLUS : TokenType { constant } - name : String - TokenType( name : String ) + tostring() : String

20 Agregasyon ve Kompozisyon 20 Agregasyon ilişkisi (aggregation association) sınıflar arasındaki parça-bütün ilişkisini temsil eder. İçi boş elmas ve çizgiler ile gösterilir Elmas bütün e bağlanır, çizgiler ise parçalara İlişki (association) ile ilgili tüm süslemeleri içerebilir (ilişkinin yönü, ismi, çoklukları, vs.) Kompozisyon ilişkisi (composition association) ise herhangi bir anda her bir parçanın yalnızca bir tek bütün le ilişkilendirilebildiği bir agregasyondur. İçi dolu elmas ve çizgiler ile gösterilir

21 Agregasyon ve Kompozisyon Örnekleri 21 Human Church Family * 1..* Arm Leg Hand Foot 1..* Person 1..*

22 İlişki (Association) Sınıfları 22 Bir ilişki sınıfı (association class) birbirine bağladığı sınıfların örnekleri arasındaki bir ilişkiyi temsil eder, ve ayrıca ilişkiye özgü veri ve davranış barındırır. İlişki sınıfı bağlantısı kesik çizgiyle temsil edilir Sınıf bir ilişki çizgisiyle bağlanır İlişkilendirilmiş sınıflardan bir örnek çifti için yalnızca tek bir ilişki sınıfı örneği olabilir. Eğer daha fazla örnek gerekirse, aralarına yeni bir sınıf girmelidir (somutlaşan ilişki reified association).

23 İlişki Sınıfı Örneği 23 Medication * * Patient Prescription - date

24 Rol İsmi Görünürlüğü 24 İlişkiler (association) genellikle referanslar kullanılarak implemente edilir. Rol ismi bir referans özellik ismi olabilir Rol isimlerinin de görünürlük belirteçleri olabilir (+, #, ~, -). Rol isimlerinin görünürlük belirteçleri yazılmayabilir.

25 İlişki Ulaşılabilirliği (Navigability) 25 A ve B sınıfları arasındaki bir ilişkide eğer A sınıfının bir örneği B sınıfının bir örneğine erişebiliyorsa bu ilişki için A dan B ye gezilebilir/ulaşılabilir (navigable) denilir. Gezilebilirlik, ilişki çizgisine yönü A dan B ye olacak şekilde ok ucu eklenerek belirtilir. Gezilemezlik (non-navigability) ise ilişki çizgisinin diğer ucuna bir x (çarpı) konularak belirtilir. Gezilebilirlik işaretleri kullanılmayabilir; eğer hiç işaret yoksa diyagramdan gezilebilirlik hakkında bir çıkarım yapılamaz.

26 Rol İsmi Görünürlüğü ve Ulaşılabilirlik Örn. 26 Referee 1 * Game mygame 1..* - player Player

27 Sınıf Diyagramı Kuralları 1 27 Genelleştirme bağlantısı üzerine asla isim, rol ismi, veya çokluk yerleştirmeyin. Diyagramları elle çizerken soyut sınıf ve operasyonları belirtmek için «abstract» stereotipini ve {abstract} özelliğini kullanın; italik yazı tipini yalnızca bilgisayarda çizerken kullanın. Top ve soket arabirim sembollerini arabirimin ayrıntılarını soyutlamak için kullanın; stereotipli sınıf sembolünü ise arabirimin ayrıntılarını göstermek için kullanın.

28 Sınıf Diyagramı Kuralları 2 28 Arabirim veya operasyon isimlerini italik yazmayın. Sağlanan arabirimleri arabirim top sembolüyle veya stereotipli bir sınıf sembolü ve gerçekleme bağlantısıyla gösterin. Gereksinilen arabirimleri arabirim soket sembolüyle, veya stereotipli sınıf sembolüne veya arabirim top sembolüne bağlanmış bağımlılık oklarıyla gösterin. Agregasyon ve kompozisyondan uzak durun.

29 Özet 29 UML sınıf diyagramları şunların gösterimi için oldukça güçlü araçlardır: Generalization Abstract operations and classes Class and instance variables and operations Interfaces and interface assemblies Aggregation and composition associations Association classes Feature and rolename visibility Navigability

30 KISIM 2 30 Ayrıntılı Tasarıma Giriş ve Orta-Düzey Sınıf Modelleme

31 Amaçlar 31 Ayrıntılı tasarım sürecine giriş yapmak Ayrıntılı tasarım spesifikasyonlarını incelemek Orta-düzey ve alt-düzey tasarım arasındaki farkı ortaya koymak Orta-düzey sınıf tasarımları oluşturmak için kullanılabilecek teknikleri sunmak Orta-düzey tasarım için sezgisel bazı kurallar sunmak

32 İçerik 32 Ayrıntılı tasarımın kapsamı Orta- ve alt-düzey tasarım Ayrıntılı tasarım süreci ve spesifikasyonları Orta-düzey tasarım teknikleri Yaratımsal Dönüşümsel Orta-düzey tasarım kuralları Sorumluluk-güdümlü tasarım Kalıtım Delegasyon

33 Ayrıntılı Tasarımın Kapsamı 33 Mimariden kodlamaya kadar soyutlama düzeyleri Pek çok statik ve dinamik model Çok miktarda tasarım spesifikasyonu İki bölüme ayrılır: orta-düzey ve alt-düzey tasarım Ayrıntılı tasarım, mimari tasarım ve programlama arasındaki sınırlar oldukça bulanıktır

34 Orta-Düzey Tasarım 34 Orta-düzey tasarım, yazılımı derleme birimleri veya sınıflar gibi orta-boyutlu bileşenler, bunların özellikleri, ilişkileri, ve etkileşimleri düzeyinde belirleme aktivitesidir. DeSCRIPTR spesifikasyonu Tasarım kalıpları (Design patterns)

35 Alt-Düzey Tasarım 35 Alt-düzey tasarım en düşük soyutlama düzeyindeki küçük ayrıntıları tamamlama aktivitesidir. DeSCRIPTR spesifikasyonları + PAID Packaging Derleme birimleri, kütüphaneler, paketler, vb. içine kod yerleştirmek. Algorithms Bazen belirtilir. Implementation Görünürlük, erişilebilirlik, ilişkilerin gerçeklenmesi vb. Data structures and types Bazen belirtilir.

36 Ayrıntılı Tasarım Süreci 36 Detailed Design Process SRS, SAD : Problem Design Document : Solution SRS SAD Analyze SRS and SAD Generate/Improve Detailed Design Alternatives Evaluate Detailed Design Alternatives Select Detailed Design [else] [adequate detailed design] Finalize Design Design Document

37 Ayrıntılı Tasarım Dokümanı 37 Bir tasarım dokümanı (design document) bir SAD ve bir ayrıntılı tasarım dokümanından (detailed design document (DDD)) oluşur. DDD şablonu 1. Orta-Düzey Tasarım Modelleri 2. Alt-Düzey Tasarım Modelleri 3. Modeller Arası Eşleştirme 4. Ayrıntılı Tasarım Gerekçesi 5. Sözlük

38 Orta-Düzey Tasarım Oluşturma Teknikleri 38 Yaratımsal (Creational) Orta-düzey tasarım sınıf modellerinin baştan oluşturulması İşlevsel ayrıştırma (Functional decomposition) Kalite niteliğine göre ayrıştırma (Quality attribute decomposition) Tasarım temaları (Design themes) Dönüşümsel (Transformational) Başka bir modelin orta-düzey tasarım sınıf modeline dönüştürülmesi Benzer sistem Kalıplar veya mimariler Analiz modelleri

39 Tasarım Temalarından Oluşturma 39 Bir tasarım teması (design theme) tasarımda dikkate alınması ve çözümlenmesi gereken önemli bir problem, kaygı, veya konudur. Tasarım temaları bir tasarımın baştan oluşturulmasında esas teşkil edebilir.

40 40 Tasarım Teması Süreci SRS Theme-Based Decomposition SRS : Theme Source Class Diagram : Draft Model Write Design Story Design Story Identify Themes Themes Generate/Improve Candidate Classes Evaluate/Select Classes [else] [class discovery slows] Draw/Improve Class Diagram Class Diagram Evaluate Class Diagram [else] [diagram complete]

41 Tasarım Öykülerinin Analizi 41 Bir tasarım öyküsü (design story) yazarak başlayın: uygulamanın en önemli yönlerini vurgulayan kısa bir açıklama. Tasarım temalarını tespit etmek için tasarım öyküsünü çalışın. Temaları listeleyin İşlevsel temalar Kalite niteliğine bağlı temalar

42 Aday Sınıfların Oluşturulması 42 Temalardan aday sınıfları çıkartmak için beyin-fırtınası yapın; sınıfları ve sorumluluklarını listeleyin. Programın görevlerinden sorumlu varlıklar Aktörler Programın kendisiyle ilgili veri kaydettiği şeyler Yapılar ve koleksiyonlar Sınıfları rasyonelleştirin. Bulanık isimleri ve sorumlulukları olanları atın Örtüşen sorumlulukları olan sınıflar üzerinde yeniden çalışın Kapsam dışında şeyler yapan sınıfları atın

43 Taslak Sınıf Diyagramı Oluşturulması 43 Listedeki sınıfları çizin. Özellik, operasyon, ve ilişkileri ekleyin. Sınıf diyagramını rafine edin. Sınıfları tamlık (completeness) ve uyum (cohesion) açısından kontrol edin. Uygun düşen yerlerde süper-sınıflar yapın. Uygun düşen yerlerde tasarım kalıpları (design patterns) uygulayın.

44 Kavramsal Modelin Dönüştürülmesi 44 Aktörleri arabirim sınıflarına çevirin. Aktör etki alanı (domain) sınıfları ekleyin. Bir başlangıç sınıfı (startup class) ekleyin. Denetleyici ve koordinatör sınıfları dönüştürün ya da ekleyin. Veri tipleri için sınıflar ekleyin. Barındırıcı (container) sınıfları dönüştürün ya da ekleyin. Mühendislik tasarımı ilişkilerini dönüştürün ya da ekleyin.

45 Sorumluluklar 45 Bir sorumluluk bir görevi gerçekleştirme (operasyonel sorumluluk) ya da veri barındırma (veri sorumluluğu) gibi bir zorunluluktur. Operasyonel sorumluluklar genellikle operasyonlar tarafından yerine getirilir. Veri sorumlulukları genellikle özellikler (attribute) tarafından yerine getirilir. Sınıflar arası işbirliği (collaboration) de söz konusu olabilir.

46 Sorumluluk-Güdümlü Ayrıştırma 46 Sorumluluklar farklı soyutlama düzeylerinde ifade edilebilir. Sorumluluklar ayrıştırılabilir. Yüksek-düzeyli sorumluluklar üst-düzey bileşenlere atanabilir. Sorumlulukların ayrıştırılması bileşenlerin ayrıştırılmasının temel çıkış noktası olabilir. Sorumluluklar hem operasyonel hem de veri bazlı zorunluluklar olduğundan sorumluluk-güdümlü ayrıştırma işlevsel ayrıştırmadan farklı olabilir.

47 Sorumluluk Kuralları 1 47 Sorumlulukların doğru bir şekilde atanması yüksek uyum (cohesion) ve düşük bağlılık (coupling) elde edilmesine yardımcı olabilir. Hem operasyonel hem de veri bazlı sorumlulukları ifade edin. Modüllere en fazla bir operasyonel ve bir veri sorumluluğu atayın. Tamamlayıcı nitelikte veri ve operasyonel sorumluluklar atayın.

48 Sorumluluk Kuralları 2 48 Modül sorumluluklarının örtüşmediğinden emin olun. Operasyon ve verileri bir modüle yalnızca o modülün sorumluluklarının yerine getirilmesinde işe yarayacaksa ekleyin. Bir modüle sorumluluklarını yerine getirmesi için gereken tüm operasyonları ve verileri ekleyin.

49 Kalıtım (Inheritance) 49 Kalıtım (Inheritance) bir sınıf ve bir veya daha fazla süper-sınıf arasında tanımlanan bir ilişki şeklidir. Kalıtım nedeniyle alt-sınıf(lar) süper-sınıf(lar)ın tüm özellik ve operasyonlarına sahip olur. Sınıflar arasında genelleştirme (generalization) ilişkisi kalıtım ile sağlanır Süper-sınıftaki özellik ve operasyonların alt-sınıflar tarafından yeniden kullanımına olanak sağlar

50 Kalıtımın Uygun Şekilde Kullanılması 50 Kalıtımı yalnızca yeniden kullanım (reuse) için kullanmayın. Kafa karıştırıcıdır Kötü görünür Uzun dönemde problemlere neden olabilir Kalıtımı yalnızca sınıflar arasında genelleştirme (birtürü-olma) ilişkisi varsa kullanın. Yeniden kullanım genellikle sınıf yapısı üzerinde biraz daha çalışmakla elde edilebilir. Açık ve temiz Zarif Dayanıklı

51 Kalıtım Örneği 51 Scatterplot - title - xunits - yunits - xlabel - ylabel - xmin - ymin - xmax - ymax - data[*] Graph - title - xunits - yunits - xlabel - ylabel - xmin - ymin - xmax - ymax # setupgraph() # plotdata() + draw() setupgraph(); plotdata(); # setupgraph() # plotdata() + draw() Scatterplot - data[*] # plotdata() BarChart - numbins - bins[*] - binwidth # plotdata()

52 Delegasyon (Delegation) 52 Delegasyon (delegation) bir modülün (delege eden) diğer bir modüle (delege) bir sorumluluğun yerine getirilmesi konusunda güvenmesi ve görevi emanet etmesi taktiğidir. Kalıtımla ilgili kısıtları ihlal etmeden yeniden kullanıma olanak sağlar Yazılımı daha fazla yeniden kullanılabilir ve konfigüre edilebilir yapar

53 Delegasyon Örneği 53 Scatterplot - data[*] Axes axes.draw(); plotdata(); # plotdata() + draw() BarChart - numbins - bins[*] - binwidth # plotdata() + draw() - axes - axes - title - xunits - yunits - xlabel - ylabel - xmin - ymin - xmax - ymax + draw()

54 Kalıtım ve Delegasyon Kuralları 54 Kalıtımı yalnızca alt-sınıf ve üst-sınıf arasında gerçekten bir genelleştirme varsa kullanın. Benzer sınıflardaki ortak özellik ve operasyonları bir süper-sınıfta birleştirin. Yeniden kullanımı, esnekliği, ve konfigüre edilebilirliği arttırmak için delegasyon kullanın.

55 Özet 1 55 Ayrıntılı tasarım, yazılım mühendisliği tasarımının en yoğun ve büyük işlerinden oluşur. Bundan dolayı orta-düzey ve alt-düzey tasarım olarak ele almak yararlıdır. Orta-düzey tasarım DeSCRIPTR spesifikasyonlarını içeren bir DDD ile dokümante edilir. Orta-düzey sınıf tasarımları baştan oluşturulabildiği gibi başka bir modelden dönüştürülerek de oluşturulabilir.

56 Özet 2 56 Yaratımsal tasarım tekniği tasarım öykülerinden çıkartılan tasarım temalarını kullanır. Dönüşümsel tasarım tekniğinde kavramsal model bir tasarım sınıf modeline dönüştürülür. Sorumluluk-güdümlü tasarım, tasarımcıların sınıf modelleri oluştururken doğru kararlar vermelerine yardımcı olur. Kalıtım ve delegasyon doğru kullanıldığı taktirde yeniden kullanılabilirliği, esnekliği, ve konfigüre edilebilirliği yüksek, temiz ve zarif tasarımlar oluşturulmasına yardımcı olur.

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ı

BÖLÜM 5 MİMARİ TASARIM YZM211 YAZILIM TASARIMI. Yrd. Doç. Dr. Volkan TUNALI Mühendislik ve Doğa Bilimleri Fakültesi / Maltepe Üniversitesi

BÖLÜM 5 MİMARİ TASARIM YZM211 YAZILIM TASARIMI. Yrd. Doç. Dr. Volkan TUNALI Mühendislik ve Doğa Bilimleri Fakültesi / Maltepe Üniversitesi BÖLÜM 5 MİMARİ TASARIM YZM211 YAZILIM TASARIMI Yrd. Doç. Dr. Volkan TUNALI Mühendislik ve Doğa Bilimleri Fakültesi / Maltepe Üniversitesi GENEL BAKIŞ 2 KISIM 1 Mimari Tasarım KISIM 2 Mimari Modelleme Notasyonları

Detaylı

NESNEYE YÖNELİK PROGRAMLAMA. Yrd.Doç.Dr. Zeynep ORMAN ormanz@istanbul.edu.tr

NESNEYE YÖNELİK PROGRAMLAMA. Yrd.Doç.Dr. Zeynep ORMAN ormanz@istanbul.edu.tr NESNEYE YÖNELİK PROGRAMLAMA Yrd.Doç.Dr. Zeynep ORMAN ormanz@istanbul.edu.tr Kullanım Diyagramları (Use Case Diagram) Kullanım senaryoları sadece düz metin (text) olarak değil, istendiğinde metin yerine

Detaylı

YZM211 YAZILIM TASARIMI

YZM211 YAZILIM TASARIMI BÖLÜM 3 MÜHENDİSLİK TASARIMI ANALİZİ YZM211 YAZILIM TASARIMI Yrd. Doç. Dr. Volkan TUNALI Mühendislik ve Doğa Bilimleri Fakültesi / Maltepe Üniversitesi GENEL BAKIŞ 2 KISIM 1 Sınıf & Nesne Modelleme KISIM

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ı

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ı

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ı

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ı

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ı

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ı

Görsel Programlama DERS 03. Görsel Programlama - Ders03/ 1

Görsel Programlama DERS 03. Görsel Programlama - Ders03/ 1 Görsel Programlama DERS 03 Görsel Programlama - Ders03/ 1 Java Dili, Veri Tipleri ve Operatörleri İlkel(primitive) Veri Tipleri İLKEL TİP boolean byte short int long float double char void BOYUTU 1 bit

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ı

Bölüm 12. Nesne yönelimli programlama desteği

Bölüm 12. Nesne yönelimli programlama desteği Bölüm 12 Nesne yönelimli programlama desteği 12. Bölüm konuları Giriş Nesne yönelimli programlama Nesne yönelimli diller için tasarım konuları C++ dilinde nesne yönelimli programlama desteği Nesne yönelimli

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ı

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ı

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

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ı

BÖLÜM 9 MİMARİ STİLLERİ YZM211 YAZILIM TASARIMI. Yrd. Doç. Dr. Volkan TUNALI Mühendislik ve Doğa Bilimleri Fakültesi / Maltepe Üniversitesi

BÖLÜM 9 MİMARİ STİLLERİ YZM211 YAZILIM TASARIMI. Yrd. Doç. Dr. Volkan TUNALI Mühendislik ve Doğa Bilimleri Fakültesi / Maltepe Üniversitesi BÖLÜM 9 MİMARİ STİLLERİ YZM211 YAZILIM TASARIMI Yrd. Doç. Dr. Volkan TUNALI Mühendislik ve Doğa Bilimleri Fakültesi / Maltepe Üniversitesi GENEL BAKIŞ 2 KISIM 1 Yazılım Tasarımında Kalıplar KISIM 2 Mimari

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

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ı

SiSTEM ANALiZi ve TASARIMI

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

Detaylı

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

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

Detaylı

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ı

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 6. Yrd.Doç.Dr.Hacer Karacan

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 6. Yrd.Doç.Dr.Hacer Karacan NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 6 Yrd.Doç.Dr.Hacer Karacan İçerik UML Yapı Diyagramları Eylem Diyagramları Etkileşim Diyagramları UML Diyagramlar UML görsel olarak modelleme için birçok diyagrama sahiptir.

Detaylı

Paket Erişimleri. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 4 1

Paket Erişimleri. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 4 1 Paket Erişimleri Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 4 1 Erişim Erişim konusunda iki taraf vardır: Kütüphaneyi kullanan kişiler (client) Kütüphaneyi yazan kişiler Altuğ B. Altıntaş

Detaylı

Tasarım Örnekleri. Senaryoların Gerçeklenmesi (Use-Case Realization)

Tasarım Örnekleri. Senaryoların Gerçeklenmesi (Use-Case Realization) Senaryoların Gerçeklenmesi (Use-Case Realization) Bu bölümde; senaryoların birbirleriyle etkileşimde olan (işbirliği yapan) yazılım sınıfları ve nesneler şeklinde nasıl tasarlanacağı ele alınacaktır. Bu

Detaylı

PAKET ERİŞİMLERİ SINIFLARIN YENİDEN KULLANIMI. BMU-112 Algoritma ve Programlama-II Yrd. Doç.Dr. İlhan AYDIN

PAKET ERİŞİMLERİ SINIFLARIN YENİDEN KULLANIMI. BMU-112 Algoritma ve Programlama-II Yrd. Doç.Dr. İlhan AYDIN PAKET ERİŞİMLERİ SINIFLARIN YENİDEN KULLANIMI BMU-112 Algoritma ve Programlama-II Yrd. Doç.Dr. İlhan AYDIN PAKET (PACKAGE) Paketler kütüphaneleri oluşturan elemanlardır. import java.io.bufferedreader;

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ı

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ı

Erişim konusunda iki taraf vardır:

Erişim konusunda iki taraf vardır: Erişim Erişim konusunda iki taraf vardır: Kütüphaneyi kullanan kişiler (client) Kütüphaneyi yazan kişiler Paket (package) Paketler kütüphaneyi oluşturan elemanlardır. PaketKullanim.java Varsayılan Paket

Detaylı

Eclipse, Nesneler ve Java 2 Java Nereden Çıktı? 2

Eclipse, Nesneler ve Java 2 Java Nereden Çıktı? 2 1 Eclipse, Nesneler ve Java 2 Java Nereden Çıktı? 2 Eclipse Mimarisi 4 Java Teknolojisine Genel Bir Bakış 6 Taşınabilirlik 6 Java Derleyicisi ve Bytecode 6 Java Sanal Makinası (Java Virtual Machine - JVM)

Detaylı

KENT BİLGİ SİSTEMLERİ STANDARTLARININ BELİRLENMESİ ÇALIŞTAYI T.C. ÇEVRE VE ŞEHİRCİLİK BAKANLIĞI COĞRAFİ BİLGİ SİSTEMLERİ GENEL MÜDÜRLÜĞÜ

KENT BİLGİ SİSTEMLERİ STANDARTLARININ BELİRLENMESİ ÇALIŞTAYI T.C. ÇEVRE VE ŞEHİRCİLİK BAKANLIĞI COĞRAFİ BİLGİ SİSTEMLERİ GENEL MÜDÜRLÜĞÜ KENT BİLGİ SİSTEMLERİ STANDARTLARININ BELİRLENMESİ ÇALIŞTAYI 09-10-11 Temmuz 2012 İstanbul T.C. ÇEVRE VE ŞEHİRCİLİK BAKANLIĞI COĞRAFİ BİLGİ SİSTEMLERİ GENEL MÜDÜRLÜĞÜ Yüklenici - Alt Yüklenici kbsgml GML

Detaylı

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

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

Detaylı

İki Yöntem. Komposizyon (Composition) Kalıtım (Inheritance)

İki Yöntem. Komposizyon (Composition) Kalıtım (Inheritance) İki Yöntem Komposizyon (Composition) Kalıtım (Inheritance) Komposizyon(Composition) class Meyva { } //... class Elma { } private Meyva m = new Meyva(); //... Komposizyon - UML Örnek Motor.java AileArabasi.java

Detaylı

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

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

Detaylı

Yazılım Gereksinimlerine İlişkin Belirtimler. Sürüm <1.0>

<Ekip Adı> <Proje Adı> Yazılım Gereksinimlerine İlişkin Belirtimler. Sürüm <1.0> Yazılım Gereksinimlerine İlişkin Belirtimler Sürüm [Not: Aşağıda yer alan şablon, Rational Unified Process ile birlikte kullanılmak üzere sağlanmıştır] [Köşeli parantezler

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ı

Klavyeden Basit Giriş/Çıkış İşlemleri

Klavyeden Basit Giriş/Çıkış İşlemleri Klavyeden Basit Giriş/Çıkış İşlemleri Klavyeden veri girilmesi, girilen verilere çeşitli işlemler uygulandıktan sonra ekrana yazdırılması ya da herhangi bir yazıcıdan çıktı alınması gibi işlemlerdir. Javada

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ı

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ı

NESNE TABANLI PROGRAMLAMA-1 DERS UYGULAMALARI (22 EYLÜL - 14 KASIM

NESNE TABANLI PROGRAMLAMA-1 DERS UYGULAMALARI (22 EYLÜL - 14 KASIM NESNE TABANLI PROGRAMLAMA-1 DERS UYGULAMALARI (22 EYLÜL - 14 KASIM 2014) //Class (Sınıf) // Sınıf (class) soyut veri tipidir. // Nesne (object) sınıfın somutlaşan bir cismidir. // static : nesnesi oluşturulmaz.

Detaylı

İsimler ve Kapsam. 24 Şubat 2011. Programlama Dilleri - Pamukkale Üniversitesi 1

İsimler ve Kapsam. 24 Şubat 2011. Programlama Dilleri - Pamukkale Üniversitesi 1 İsimler ve Kapsam Tanım: Bir değişkenin kapsamı (scope) değişkenin görülebilir olduğu komutların alanıdır. Görülebilir olduğu alan, bir komut içinde belirlenen değerle kullanılabildiği alandır. Tanım:

Detaylı

Nesneye Dayalı Programlama nedir? UML Nedir? Sınıf Diyagramları Nesneye Dayalı Programlamanın Temel Taşları Miras alma (Inheritance) Çok biçimlilik

Nesneye Dayalı Programlama nedir? UML Nedir? Sınıf Diyagramları Nesneye Dayalı Programlamanın Temel Taşları Miras alma (Inheritance) Çok biçimlilik Nesneye Dayalı Programlama nedir? UML Nedir? Sınıf Diyagramları Nesneye Dayalı Programlamanın Temel Taşları Miras alma (Inheritance) Çok biçimlilik (Polymorphism) Veri saklama (Encapsulation) Yazılım sektöründe

Detaylı

NESNEYE DAYALI YAZILIM GELİŞTİRME

NESNEYE DAYALI YAZILIM GELİŞTİRME NESNEYE DAYALI YAZILIM GELİŞTİRME Yrd.Doç.Dr. Feza BUZLUCA İstanbul Teknik Üniversitesi Bilgisayar Mühendisliği Bölümü http:// 1.1 Dersin Hedefi: GİRİŞ Bilgisayardonanımları geliştikçe yaşantımızın değişik

Detaylı

UNICASE.... kapsamlı bir CASE* aracı. * http://en.wikipedia.org/wiki/computer-aided_software_engineering

UNICASE.... kapsamlı bir CASE* aracı. * http://en.wikipedia.org/wiki/computer-aided_software_engineering UNICASE... kapsamlı bir CASE* aracı * http://en.wikipedia.org/wiki/computer-aided_software_engineering Neden UNICASE? Yazılım geliştirme projelerinde yazılım mühendisliği modelleri merkezi bir yerde ve

Detaylı

ENF102 TEMEL BİLGİSAYAR BİLİMLERİ VE C/ C++ PROGRAMLAMA DİLİ. Gazi Üniversitesi Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü

ENF102 TEMEL BİLGİSAYAR BİLİMLERİ VE C/ C++ PROGRAMLAMA DİLİ. Gazi Üniversitesi Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü ENF102 TEMEL BİLGİSAYAR BİLİMLERİ VE C/ C++ PROGRAMLAMA DİLİ Gazi Üniversitesi Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü Konular Giriş math Kütüphane Fonksiyonları Çok Parametreyle Fonksiyon

Detaylı

NESNE TABANLI PROGRAMLAMA Temel Kavramlar

NESNE TABANLI PROGRAMLAMA Temel Kavramlar NESNE TABANLI PROGRAMLAMA Temel Kavramlar Özkan BİNGÖL Gümüşhane Üniversitesi Not: Bu sunumda, Yrd. Doç. Dr. Özlem AYDIN ve Doç. Dr. Yılmaz KILIÇASLAN ın Nesneye Yönelik Programlama dersi sunumlarından,

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 Yöntemleri Yapısal Tasarım Veri akışına Yönelik Tasarım Veriye Yönelik Tasarım Nesneye Yönelik Tasarım 2 Veri Akışına Yönelik Tasarım

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ı

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

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

Detaylı

Bölüm 5. Adlar(Names), Bağlamalar(Binding s),tip Kontrolleri (Type Checking), ve Etki Alanları ( Scopes) ISBN 0-321-49362-1

Bölüm 5. Adlar(Names), Bağlamalar(Binding s),tip Kontrolleri (Type Checking), ve Etki Alanları ( Scopes) ISBN 0-321-49362-1 Bölüm 5 Adlar(Names), Bağlamalar(Binding s),tip Kontrolleri (Type Checking), ve Etki Alanları ( Scopes) ISBN 0-321-49362-1 Bölüm 5 Konular Giriş Adlar(Names) Değişkenler(Variables) Bağlama Kavramı(The

Detaylı

Structural Patterns: Adapter Bridge Composite Decorator Facade Flyweight Proxy

Structural Patterns: Adapter Bridge Composite Decorator Facade Flyweight Proxy GoF Tasarım Kalıpları GoF (Gang of Four) kalıpları 1995'te yayımlanan dört yazarlı bir kitap ile duyurulmuştur: Gamma E., Helm R., Johnson R., Vlissides J., Design Patterns : Elements of Reusable Object-Oriented

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ı

MALTEPE ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ YAZILIM MÜHENDİSLİĞİ LİSANS PROGRAMI

MALTEPE ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ YAZILIM MÜHENDİSLİĞİ LİSANS PROGRAMI MALTEPE ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ YAZILIM MÜHENDİSLİĞİ LİSANS PROGRAMI 2011 2012 Güz Yarıyılı Java Programlama YZM 363 5 AKTS 4. yıl 7 yarıyıl Lisans Seçmeli 3 s/hafta 3 kredi Teorik: 3 s/hafta

Detaylı

Yaz.Müh.Ders Notları #4 1

Yaz.Müh.Ders Notları #4 1 YAZILIM MÜHENDİSLİĞİ Şubat 2012 Yrd.Doç.Dr. Yunus Emre SELÇUK 1 NESNEYE YÖNELİK ÇÖZÜMLEMENİN TEMELLERİ Çözümleme (Analiz): Bir şeyi anlayabilmek için parçalarına ayırmak. Sistemi anlamaya yönelik çalışmalardan

Detaylı

Veritabanı Tasarımı Ve Yönetimi. Varlık-İlişki Modeli

Veritabanı Tasarımı Ve Yönetimi. Varlık-İlişki Modeli Veritabanı Tasarımı Ve Yönetimi Varlık-İlişki Modeli Veritabanı Tasarım Aşamaları Gereksinim Analizi Kavramsal Tasarım Mantıksal Tasarım İlişkilerin Normalizasyonu Veritabanı Uyarlaması Uygulama Programı

Detaylı

İçerik. Temel Kavramlar. Nesne Nedir? 1. Nesne : Örnek. Nesne Nedir? 2. Geçen hafta: Bu hafta: BBS-515 Nesneye Yönelik Programlama

İçerik. Temel Kavramlar. Nesne Nedir? 1. Nesne : Örnek. Nesne Nedir? 2. Geçen hafta: Bu hafta: BBS-515 Nesneye Yönelik Programlama İçerik Temel Kavramlar BBS-515 Nesneye Yönelik Programlama Geçen hafta: Nesneye yönelik programlama Ne demektir, nasıl ortaya çıkmıştır? Nesneye yönelik dil olarak JAVA ve ilişkili kavramlar Bu hafta:

Detaylı

Temel Kavramlar BBS-515 Nesneye Yönelik Programlama

Temel Kavramlar BBS-515 Nesneye Yönelik Programlama Temel Kavramlar BBS-515 Nesneye Yönelik Programlama Ders #2 (2 Kasım 2009) İçerikç Geçen hafta: Nesneye yönelik programlama Ne demektir, nasıl ortaya çıkmıştır? Nesneye yönelik dil olarak JAVA ve ilişkili

Detaylı

140820001 Ferhat Cem CİHAN-Bilgisayar Mühendisliği 140820020 Emre BALCI-Bilgisayar Mühendisliği

140820001 Ferhat Cem CİHAN-Bilgisayar Mühendisliği 140820020 Emre BALCI-Bilgisayar Mühendisliği YAZILIM TASARIM DÖKÜMANI Yeşil Bina Otomasyonu 140820001 Ferhat Cem CİHAN-Bilgisayar Mühendisliği 140820020 Emre BALCI-Bilgisayar Mühendisliği İÇİNDEKİLER 1.Giriş 1.1 Amaç 1.2 Kapsam 1.3 Genel Bakış 2.Genel

Detaylı

NESNEYE YÖNELİK PROGRAMLAMA. Yrd.Doç.Dr. Zeynep ORMAN ormanz@istanbul.edu.tr

NESNEYE YÖNELİK PROGRAMLAMA. Yrd.Doç.Dr. Zeynep ORMAN ormanz@istanbul.edu.tr NESNEYE YÖNELİK PROGRAMLAMA Yrd.Doç.Dr. Zeynep ORMAN ormanz@istanbul.edu.tr Nesne Tabanlı Programlama Kavramları Nesne Tabanlı Programlama (OOP) tekniği, gerçek dünyadaki somut nesnelerin bir yazılımın

Detaylı

COĞRAFİ BİLGİ SİSTEMLERİ ARCGIS GİRİŞ EĞİTİMİ

COĞRAFİ BİLGİ SİSTEMLERİ ARCGIS GİRİŞ EĞİTİMİ COĞRAFİ BİLGİ SİSTEMLERİ ARCGIS GİRİŞ EĞİTİMİ http://facebook.com/esriturkey https://twitter.com/esriturkiye egitim@esriturkey.com.tr Kursun Süresi: 5 Gün 30 Saat COĞRAFİ BİLGİ SİSTEMLERİ ARCGIS GİRİŞ

Detaylı

2 İlişkisel Veritabanı Tasarımı. Veritabanı 1

2 İlişkisel Veritabanı Tasarımı. Veritabanı 1 2 İlişkisel Veritabanı Tasarımı Veritabanı 1 Veritabanı Tasarımı Tasarım yapılırken izlenecek adımlar; Oluşturulacak sistemin nelerden oluşması gerektiği ve hangi işlemlerin hangi aşamalarda yapıldığı

Detaylı

Java dili, aşağıdakiler de dahil olmak üzere çok çeşitli denetleyici türlerine sahiptir.

Java dili, aşağıdakiler de dahil olmak üzere çok çeşitli denetleyici türlerine sahiptir. PART 5 5. Denetleyici Türleri Java dili, aşağıdakiler de dahil olmak üzere çok çeşitli denetleyici türlerine sahiptir. Java Erişim Kontrol Denetleyicileri (Access Control Modifiers) Erişim Harici Denetleyiciler

Detaylı

Arayüz soyut metotların oluşturduğu bir koleksyondur. Bir sınıf arayüzü çalıştırırken arayüzün sahip olduğu soyut metotları da miras alır.

Arayüz soyut metotların oluşturduğu bir koleksyondur. Bir sınıf arayüzü çalıştırırken arayüzün sahip olduğu soyut metotları da miras alır. Bölüm 20 20 Arayüzler Arayüz bir sınıf değildir. Arayüz yazmak sınf yazmaya çok benzer ancak ikisi birbirinden farklı konseptlerdir. Sınıf bir nesnenin özelliklerini ve davranışlarını belirtirken; bir

Detaylı

Computer Engineering Department LAB 1 WORKSHEET

Computer Engineering Department LAB 1 WORKSHEET Faculty of Engineering and Architecture Computer Engineering Department LAB 1 WORKSHEET DATABASE DESIGN Küçük uygulamalarda veritabanı tasarımcıları uygulama gereksinimlerini hemen anlayabilir ve oluşturulacak

Detaylı

e-yazışma Projesi TBD Kamu-BİB Aylık Bilgilendirme Toplantısı

e-yazışma Projesi TBD Kamu-BİB Aylık Bilgilendirme Toplantısı e-yazışma Projesi TBD Kamu-BİB Aylık Bilgilendirme Toplantısı 19 Ocak 2012 Gündem e-yazışma Projesinin Amacı ve Kapsamı Projenin Çıktıları Projeye Katkı Sağlayanlar e-yazışma Paketi Önümüzdeki Dönemde

Detaylı

Nesne Yönelimli Programlama ve Kalıtım

Nesne Yönelimli Programlama ve Kalıtım Nesne Yönelimli Programlama ve Kalıtım Nesne Yönelimli Programlama Modern dillerin bir çoğunda nesneye yönelimli programlama tekniği desteklenmektedir. Bu teknik yazılım geliştirmeyi kısaltan ve sistematik

Detaylı

2. Bölüm Spring İle Tanışalım

2. Bölüm Spring İle Tanışalım 2. Bölüm Spring İle Tanışalım Bir Program Nasıl Oluşur? Spring'in detaylarına girmeden önce, bir programın oluşum hikayesine göz atmamızda fayda var. Bir programın oluşumundaki yön verici en önemli etken,

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ı

Inheritance. Inheritance (turetim)

Inheritance. Inheritance (turetim) Inheritance (turetim) Bir cok problemin cozumu icin belirlenen class lar hierarsik bir yapi seklinde organize edilebilir C++ gibi bir cok Object-oriented diller class benzerliklerinin etkin bir sekilde

Detaylı

Kalıtım ( Inheritance ) BBS-515 Nesneye Yönelik Programlama

Kalıtım ( Inheritance ) BBS-515 Nesneye Yönelik Programlama Kalıtım ( Inheritance ) BBS-515 Nesneye Yönelik Programlama Ders #4 (11 Kasım 2009) Geçen ders: Java da işleçler ( operators ) Java da kontrol-akış ( control-flow ) ve döngü ( loop ) deyimleri Java konsol

Detaylı

Ferhat ERATA. Geylani KARDAŞ

Ferhat ERATA. Geylani KARDAŞ Ferhat ERATA Geylani KARDAŞ 1 1. Giriş 2. Model Güdümlü Geliştirme ve Modelleme Yaklaş ımı 2.1. Model Güdümlü Geliştirme (Genel Bak ış) 2.2. Model Güdümlü Mimari içerisinde Tez Çal ışması 2.3. PSM4WSS

Detaylı

2-Veritabanı Yönetim Sistemleri/ Temel Kavramlar

2-Veritabanı Yönetim Sistemleri/ Temel Kavramlar 2-Veritabanı Yönetim Sistemleri/ Temel Kavramlar Öğr. Gör. Saliha Kevser KAVUNCU Veritabanı neden kullanılır? Veritabanının amacı; insanların ve organizasyonların birşeyleri takip edebilmesine yardımcı

Detaylı

Software Design Document

Software Design Document Software Design Document Version 2.0 Date: 25-12-2012 Project Team Table of Contents 1. Introduction 1.1. Purpose 1.2. Scope 1.3. Overview 1.4. References 2. System Overview 3. System Architecture 3.1.

Detaylı

Model Güdümlü Geliştirme ile Gömülü Kaynakların Yönetimi

Model Güdümlü Geliştirme ile Gömülü Kaynakların Yönetimi Model Güdümlü Geliştirme ile Gömülü Kaynakların Yönetimi Can Öz EGE ÜNİVERSİTESİ FEN BİLİMLERİ ENSTİTÜSÜ BİLGİSAYAR MÜHENDİSLİĞİ A.B.D. 1 İçerik Kaynak Yönetimi Problemi Kaynak Yönetimi Modellemesinin

Detaylı

İlk Konsol Uygulamamız 2 İlk Windows Uygulamamız 9.Net Framework Yapısı 18 Neler Öğrendik 19. Veri Tipleri 24 Tanımlı Veri Tipleri 27 Basit Tipler 28

İlk Konsol Uygulamamız 2 İlk Windows Uygulamamız 9.Net Framework Yapısı 18 Neler Öğrendik 19. Veri Tipleri 24 Tanımlı Veri Tipleri 27 Basit Tipler 28 ix 1 İlk Konsol Uygulamamız 2 İlk Windows Uygulamamız 9.Net Framework Yapısı 18 Neler Öğrendik 19 23 Veri Tipleri 24 Tanımlı Veri Tipleri 27 Basit Tipler 28 Kayan Nokta Tipleri 30 Sayısal Veri Tipi Dönüşümleri

Detaylı

FIRAT ÜNİVERSİTESİ BİLGİSAYAR MÜH.

FIRAT ÜNİVERSİTESİ BİLGİSAYAR MÜH. FIRAT ÜNİVERSİTESİ BİLGİSAYAR MÜH. WSDL-SOAP MURAT TEZGİDER Web Servisi Nedir? web servisi :standart formatları kullanarak programlama dili, işletim sistemi ve platformdan bağımsız olarak bilgiyi paylaşan

Detaylı

SİSTEM MÜHENDİSLİĞİ TASARIMIN SENTEZLENMESİ I

SİSTEM MÜHENDİSLİĞİ TASARIMIN SENTEZLENMESİ I SİSTEM MÜHENDİSLİĞİ TASARIMIN SENTEZLENMESİ I ÖMER ERTEKİN, PSCONSULTECH 1 FORM + FONKSİYON Aralarında etkileşimli bir birlik görülen elemanlar = Form Fonksiyonel olarak bakıldığında = Fonksiyon Bilinen

Detaylı

MODÜL BİLGİ SAYFASI. Kursiyer, aşağıdaki performans ölçütlerini yerine getirecektir.

MODÜL BİLGİ SAYFASI. Kursiyer, aşağıdaki performans ölçütlerini yerine getirecektir. BİLGİ SAYFASI : CATIA İLE TASLAK MODELLEME SÜRE : 40/8 GENEL AMAÇ : bu modül ile uygun ortam sağlandığında bilgisayar ortamında bilgisayar destekli çizim ortamında model parça oluşumu için ilk adım olan

Detaylı

Chain of Responsibility Tasarım Şablonu KurumsalJava.com

Chain of Responsibility Tasarım Şablonu KurumsalJava.com Chain of Responsibility Tasarım Şablonu KurumsalJava.com Özcan Acar Bilgisayar Mühendisi http://www.ozcanacar.com Chain of responsibility sorumluluk zinciri anlamına gelmektedir. Sisteme gönderilen bir

Detaylı

ASP.NET CLASS KULLANARAK VERİTABANI İŞLEMLERİ

ASP.NET CLASS KULLANARAK VERİTABANI İŞLEMLERİ ASP.NET CLASS KULLANARAK VERİTABANI İŞLEMLERİ Asp.NET mimarisinin temelini oluşturan CLASS yapısını kullanarak veri tabanı işlemlerini nasıl daha az kodla ve daha stabil yapabiliriz bunu göreceğiz. Mevzu

Detaylı

EAGLE KÜTÜPHANE OLUŞTURMA

EAGLE KÜTÜPHANE OLUŞTURMA 1 EAGLE mühendislik EAGLE KÜTÜPHANE OLUŞTURMA Merhaba Arkadaşlar, sizlerle bu yazımda bir PCB-Dizayn programı olan EAGLE da sıfırdan kütüphane oluşturmayı anlatmaya çalışacağım. Eagle bilindiği üzere iki

Detaylı

Süreklilik Göstergesi. Kavram Haritaları. Etkileşim Göstergesi. Problem/Çözüm Göstergesi Karşılaştırma Matrisi. (Anlam Çözümleme Tablosu)

Süreklilik Göstergesi. Kavram Haritaları. Etkileşim Göstergesi. Problem/Çözüm Göstergesi Karşılaştırma Matrisi. (Anlam Çözümleme Tablosu) Kavram Haritaları Hiyerarşik KH Hiyerarşik Olmayan KH ( Ağ, Örümcek Harita) Zincir KH Sınıflandırma Haritası Vee Diyagramları Neden-Sonuç Diyagramları Balık Kılçığı Döngü Göstergesi Olay Zinciri Dizileri

Detaylı

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

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

Detaylı

Modüler Yangın Paneli 5000 Serisi Planlarınız kadar esnek

Modüler Yangın Paneli 5000 Serisi Planlarınız kadar esnek Modüler Yangın Paneli 5000 Serisi Planlarınız kadar esnek 2 Modüler Yangın Paneli 5000 Serisi ile endişelerinizden kurtulun Sistemi ihtiyaçlarınız belirler sadece size gereken için ödeme yaparsınız Uzak

Detaylı

C Programlama Dilininin Basit Yapıları

C Programlama Dilininin Basit Yapıları Bölüm 2 C Programlama Dilininin Basit Yapıları İçindekiler 2.1 Sabitler ve Değişkenler......................... 13 2.2 Açıklamalar (Expresions)........................ 14 2.3 İfadeler (Statements) ve İfade

Detaylı

ÖZET. 05044074 - Ersen ERDEMLĐ Lisans Bitirme Çalışması

ÖZET. 05044074 - Ersen ERDEMLĐ Lisans Bitirme Çalışması 1 ÖZET Bu çalışmada Yıldız Teknik Üniversitesi Merkez kampüsünde bulunan Pembe Köşk binasının coğrafi bilgi sistemleri içerisine entegrasyonu için misafirhane olarak da kullanılan Pembe Köşk binasının

Detaylı

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

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

Detaylı

Programlama Dilleri. C Dili. Programlama Dilleri-ders02/ 1

Programlama Dilleri. C Dili. Programlama Dilleri-ders02/ 1 Programlama Dilleri C Dili Programlama Dilleri-ders02/ 1 Değişkenler, Sabitler ve Operatörler Değişkenler (variables) bellekte bilginin saklandığı gözlere verilen simgesel isimlerdir. Sabitler (constants)

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ı

MEKANSAL ADRES KAYIT VE ÇEVRİMİÇİ EMLAK VE İNŞAAT İZİNLERİ PROJESİ

MEKANSAL ADRES KAYIT VE ÇEVRİMİÇİ EMLAK VE İNŞAAT İZİNLERİ PROJESİ MEKANSAL ADRES KAYIT VE ÇEVRİMİÇİ EMLAK VE İNŞAAT İZİNLERİ PROJESİ ADRES VERİ MODELİ Proje Kodu: MAKS Rapor Kodu: MAKS-VeriModeli-AD Sürüm: 2.0 03.10.2012 Bu doküman Mekansal Adres Kayıt ve Çevrimiçi Emlak

Detaylı

Maliye Uzman Yardımcılığı Giriş Sınavı (Bilişim) 16 Mart 2014 A

Maliye Uzman Yardımcılığı Giriş Sınavı (Bilişim) 16 Mart 2014 A SİSTEM VE AĞ GRUBU 1. IP adreslerini fiziksel adreslere dönüştürülmesini sağlayan ve adres çözümlemesi yapan protokol aşağıdakilerden hangisidir? A) ARP B) IP C) TCP D) UDP 2. İki bilgisayar ağı arasında

Detaylı

Intercepting Filter Tasarım Şablonu KurumsalJava.com

Intercepting Filter Tasarım Şablonu KurumsalJava.com Intercepting Filter Tasarım Şablonu KurumsalJava.com Özcan Acar Bilgisayar Mühendisi http://www.ozcanacar.com Front Controller 1 tasarım şablonunda, kullanıcıdan gelen isteklerin (request) merkezi bir

Detaylı

Maliye Uzman Yardımcılığı Giriş Sınavı (Bilişim) 16 Mart 2014 B

Maliye Uzman Yardımcılığı Giriş Sınavı (Bilişim) 16 Mart 2014 B SİSTEM VE AĞ GRUBU 1. Aşağıdakilerden hangisi ikili tabandaki 10100110 sayısının 16 tabanındaki karşılığıdır? A) 96 B) B6 C) 106 D) A6 2. Linux/Unix işletim sistemindeki vi editöründe bir satır silmek

Detaylı

Object Oriented Programming Ders İzlence Formu

Object Oriented Programming Ders İzlence Formu Diploma Programı Bilgisayar Mühendisliği Bölümü Yarıyıl Teorik Uygulama Object Oriented Programming Ders İzlence Formu Laboratuar Kodu: CSE203 Dersin Adı: Object Oriented Programming Toplam Saat AKTS Dersin

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ı