Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

1. KONU BA Ş LIKLARIMIZ ; 2 Programlama Dilleri Dillerin Özellikleri Kod Çevrim İşlemi Yürütme Ortamı Kodlama Biçimleri Yazılım Gerçekleştirimi.

Benzer bir sunumlar


... konulu sunumlar: "1. KONU BA Ş LIKLARIMIZ ; 2 Programlama Dilleri Dillerin Özellikleri Kod Çevrim İşlemi Yürütme Ortamı Kodlama Biçimleri Yazılım Gerçekleştirimi."— Sunum transkripti:

1 1

2 KONU BA Ş LIKLARIMIZ ; 2 Programlama Dilleri Dillerin Özellikleri Kod Çevrim İşlemi Yürütme Ortamı Kodlama Biçimleri Yazılım Gerçekleştirimi

3  Yazılım mühendisliği ana aşamalarından çözümleme ve tasarım, aslında isterlerin bilgisayarın anlayabileceği şekle dönüştürülmesi için bir alt yapı sağlar. YAZILIM GERÇEKLEŞTİRİMİ 3 Mevlüt inan

4 Çözümleme ve tasarım, düşüncelerin makinelerin anlayabileceği hale getirilmesine yardımcı olurken, gerçekleştirim aşamasında, tasarım, programlama diline dönüştürülür. 4

5 Bilgisayara yaptırılması istenen görevleri ona tanıtabilmek için programlama dilleri kullanılır. 5

6 Yazılan kaynak kod daha sonra bilgisayar mimarisine uygun makine kodlarına dönüştürülerek uygun bir merkezi işlem birimi üzerinde koşturulurlar. 6

7 Gerçekleştirim aşaması sonunda, yürütülebilir kod veya dinamik kütüphane şeklinde yazılım birimleri elde edilir. Pek çok yerde bu birimlere program denmektedir. 7

8 8

9 Programlama Dilleri Yazılım mühendisliğinin diğer evreleri ne kadar nitelikli olursa olsun, gerçekleştirim, yani kodlama evresinde kullanılan programlama dili ve kodlama biçimi son ürünün hem niteliğini hem de bakım özelliğini etkiler. 9

10 Dillerin Tarihçesi 1960’larda yapısal programlama ortaya çıktı. Bu yöntemi destekleyen programlama dilleri ile nispeten karmaşık ve büyük programlar yazabilmek mümkün olmaktaydı. 10

11 Fakat yine de projeler belirli boyutları aştığında yapısal programlama yöntemi de yetersiz kalmakta ve projelerin denetimi zorlaşmaktaydı. 11

12 Programcılığa yaklaşımlar bilgisayarın icadından bu yana pek çok değişikliğe uğramıştır. Bunun en önemli nedenlerinden biri gittikçe karmaşıklaşan program isteklerine cevap verebilmektir. 12

13 İlk bilgisayar programları Assembly dili ile yazılmaktaydı. Program boyutları büyüdükçe daha da üst düzey programlama dili FORTRAN’dır. 13

14 Çeşitli gereksinimler nedeniyle bilgisayar programlama tekniklerine 1980’lerde yeni bir yaklaşım daha eklenmiştir. 14

15 Günümüzde çok yaygın olan bu yazılım geliştirme tekniğine Nesneye Yönelik Çözümleme ve Tasarım ve bunun sonucunda ortaya çıkan programlama yöntemine de Nesneye Yönelik Programlama adı verilmiştir. 15

16 1980’lerin yaygın yüksek düzey dillerinden biri olan C programlama dili, etkinliği, programlama kuvveti ve kullanım kolaylıkları ile tanınmaktadır. 16

17 C++ ise C’nin nesneye yönelik uyarlamasıdır. C’nin yeteneklerini taşıması yanında nesneye yönelimi de desteklemesi bu dili benzerleri içinde en yaygın ve önemli hale getirmektedir. 17

18 Ancak, C++’ı yalnızca yapısal bir dil olarak kullanmaya çalışmanın otoyolda birinci vitesle araç kullanmaya bezediği de kabul edilmelidir. 18

19 Günümüzde de çok yeni sayılabilecek, fakat çok yaygın bir dil olan JAVA daha çok internet uygulamaları ve taşınabilir programlama için ideal olarak görülmektedir. 19

20 Bunların yanında taşınabilirliği ve uyumluluğu sağlamak üzere HTML,XML gibi yapısal diller ve çeşitli özel amaçlı toplu iş tanımlama dilleri de yaygın bir şekilde kullanılmaktadır. 20

21 DİLLERİN GELİŞİMİ Bilgisayarın icadından bu yana çeşitli yazılım geliştirme projelerinde kullanılmış olan yüzlerce programlama dili bulunmaktadır. Tarihçesine göre bu diller beş ana nesil içinde toplanabilirler. 21

22 Programlama Dillerinin Gelişimi 22

23 a)Birinci Nesil Diller Assembly dili insanların daha rahat okuyabileceği ilk dil ortaya çıkmıştır. 23

24 Komut ve işlenen birimden oluşan kısa ifadeler halinde olan Assembly dili bilgisayarların merkezi işlem birimlerinin her türü için ayrı ayrı olabilirler. 24

25 b)İkinci Nesil Diller 1950’lerden sonra geliştirilmeye başlanmış, 1960’ların sonunda ortaya çıkan modern dillerin temelini oluşturmuşlardır. 25

26 İkinci nesil diller zengin kütüphaneleri, geniş kullanım alanları ile oldukça yaygın hale gelmişlerdir. Bu diller arasında FORTRAN, COBAL, ALGOL ve BASIC sayılabilir. 26

27 Bunlar arasında FORTRAN, kırk yıla yakın bir süredir özellikle matematik ağırlıklı kütüphaneleri nedeniyle problem çözme alanında ağırlıklı olarak kullanılmaktadır. 27

28 FORTRAN-66 ilk standart sürüm iken FORTRAN-77 standart sürüm olmuştur. COBOL, ticari alanlarda veri işleme amaçlı olarak kullanılan belirli standartlara sahip bir dil haline gelmiştir. 28

29 ALGOL, üçüncü nesil dillere öncülük eden zengin veri tipleri ve yordamsal yapılara sahip bir dildir. 29

30 Avrupa’da özellikle akademik çevrelerde yaygın bir şekilde kullanılmış, ancak Amerika Birleşik Devletleri’ nde pek kabul görmemiştir. ALGOL-60 ve ALGOL-68 sürümleri ile daha güçlü hale getirilmiştir. 30

31 BASIC, özellikle kişisel bilgisayarlarda kolay programlama olanağı sağlamıştır. Ancak, çok çeşitli sürümleri nedeniyle fazla standart hale gelmemiştir. 31

32 Günümüzde ise bu dilim grafiksel gösterim amaçlı yeni bir sürümü VISUAL BASIC adıyla halen kullanılmaktadır. 32

33 c)Üçüncü Nesil Diller Bu nesil diller genellikle modern ve yapısal diller olarak adlandırılırlar. *Genel Amaçlı Yüksek Düzeli Diller *Nesneye Yönelik Yüksek Düzey Diller *Özel Amaçlı Diller 33

34 Genel Amaçlı Yüksek Düzeyli Diller Genel amaçlı ilk dil olarak ALGOL görülmektedir. Bundan sonra onu model olarak alan PL/I,PASCAL,MODULA-2,C ve ADA izlemiştir. 34

35 PL/I, gelişmiş veri yapıları, çok görevlilik desteği, karmaşık giriş/çıkış işlemleri ve listeleme işlevleri için geniş uygulama alanına sahiptir. 35

36 Bu dilden daha sonraları, PL/C isimli eğitim amaçlı, PL/M isimli mikroişlemcilerde kullanım amaçlı ve PL/S isimli sistem programlama amaçlı alt diller türetilmiştir. 36

37 PASCAL daha çok modern teknikleri öğretmek amacıyla 1970’ lerin başında geliştirilmiştir. Ancak, ortaya çıktıktan sonra oldukça geniş bir uygulama alanı bulmuştur. 37

38 MODULA-2 dili PASCAL’ ın gelişmiş bir hali olarak ADA dilinin bir alternatifini oluşturmuştur. 38

39 C programlama dili aslında işletim sistemleri için geliştirilmiştir. Ünlü Ünix işletim sistemi de C ile geliştirilmiştir. Günümüzde de en yaygın ve en güçlü diller arasındadır. 39

40 ADA, Amerikan Savunma Bakanlığı’ nın yazılım krizine çözüm olması amacıyla gömülü gerçek -zamanlı sistemler için geliştirilmiştir. 40

41 PASCAL diline benzer yapılar yanında, paketler, kalıplar, paralel görevcikler (task), kesme kurtarma ve hata yakalama yapıları gibi özellikleriyle günümüzde özellikle savunma alanında yaygın ve etkin bir şekilde kullanılmaktadır. 41

42 Nesneye Yönelik Yüksek Düzey Diller Nesneye yönelik çözümleme ve tasarımı desteklemek üzere geliştirilmiş dillerin sayısı çok artmıştır. 42

43 Ancak içlerinden yalnızca C++, Objective-C, SMALLTALK, EIFFEL, PASCAL ( Nesneye Yönelik Sürümü), JAVA dilleri uygulama alanı bulmuşlardır. Bunlardan da C++ ve JAVA günümüzün en yaygın dilleri arasındadır. 43

44 Bu dillerin ortak özellikleri sınıf tanımlamaları, kapsama ve kalıtım ile çeşitli nesneye yönelim özelliklerini desteklemeleridir. 44

45 C++’ ın üstünlüğü ve yaygınlığı her zaman geçerli iken JAVA dilinin yürütme anındaki başarım yetersizlikleri halen bir çok uygulama alanında kabul edilmez durumdadır. 45

46 Özel Amaçlı Diller Özel amaçlı diller, belirli bir uygulama tipi için tasarlanmış, alışılmışın dışında yapılara ve sözdizimlerine sahiptirler. Bu tür diller dar bir uygulama alanına sahiptirler. 46

47 Ancak, belirli bir uygulama tipinin gereksinimlerini karşılamak üzere geliştirildiklerinden, isterleri tasarıma ve tasarımı koda dönüştürme işlemi daha başarılı olmaktadır. En önemli diller arasında LISP,PROLOG ve APL sayılabilir. 47

48 LISP, simge ve listelerde ardışık bilgi işleme sağlamaktadır. Özellikle yapay zeka uygulamalarında, ağaç yapıları yardımıyla problem çözme amaçlı olarak kullanılır. 48

49 Özyineleme tekni ğ i ile uzman sistemlerin ve bu sistemler için derleyicilerin geliştirilmesinde kullanılır. 49

50 LISP, bilgi tabanlı sistemlerin geliştirilmesi için gerekli olan kuralları, gerçekleri ve ilişkileri tanımla işlerini oldukça kolay hale getirmektedir. 50

51 PROLOG uzman sistemlerin geliştirilmesinde önemli yeri olan bir dildir. Dil içinde bilgi tabanlı sitemler için gerekli olan kural, gerçek ve çıkarım tanımlamaları yanında standart veri yapıları da bulunmaktadır. 51

52 APL, diziler ve vektörlerle işlem yapmak için iyi bir gerçekleştirim aracıdır. Matematiksel problemlerin çözümlerinde bir miktar kullanım yeri bulmuştur. 52

53 d)Dördüncü Nesil Diller Birinci nesil diller makine komutları düzeyinde iken, ikinci ve üçüncü nesil dillerle gerçek anlamda bilgisayar programları oluşturmak olası hale gelmiştir. Dördüncü nesil dillerle de bu soyutlama, özellikle de veri soyutlaması daha da yükselmiştir. 53

54 Dördüncü nesil diller, kodlayıcı koşulları ve ona karşılık düşen yordamsal eylemleri tanımlamakta, aynı zamanda da bu işlemin sonucunu bir başka yordamsal ayrıntı içinde kullanabilmektedir. 54

55 Sorgulama Dilleri Veri tabanlarına erişmek, sorgulama ve raporlama yapmak üzere çeşitli diller geliştirilmiştir. DBASE III/IV,CLIPPER, DELPHI PARADOX bu diller arasında sayılabilir. 55

56 Bazı sorgulama dilleri de kullanıcının var olan veri tabanları üzerinde işlem yapabilmesini sağlarlar. SQL en yaygın olan dillerden biridir. Bazı dillerde İngilizce konuşma diline çok yaklaşmışlardır. 56

57 Kod Üreticiler Günümüzde yaygın bir şekilde kullanılan bilgisayar destekli yazılım mühendisliği araçları (UML, STP, SDL, MDA araçları gibi), grafik tabanlı kullanıcı arayüzü geliştirme araçları, iş dünyası için çeşitli araçlar C, C++, ADA gibi dillerde kod üretmektedirler. Üretilen bu kod uygun bir derleyiciden geçirilerek yürütülebilir kod elde edilmektedir. 57

58 Türetme Diller Özellikle belirli alanların sorunlarını daha kolay ve etkin bir şekilde çözebilmek için bazı dillere eklemeler ve uzantılar yapılarak yeni diller türetilmektedir. 58

59 Bu dillerin kullanımı, diğer diller gibi olmakta, ancak bir önişleyici kullanılarak yeni dilde yazılan kodun daha standart bir dildeki kod haline dönüştürülmesi, sonrada bu üretilen kodun standart bir derleyici ile derlenip yürütülebilir kod üretilmesi ilkesine dayanır. 59

60 Bu şekilde normal dillerde bulunmayan birçok özellik, dilin yapıları arasına sokularak kodlayıcılara daha geniş işlevleri olan diller sunulmaktadır. 60

61 Örneğin; “Real-Time C++” (RTC++), C++ diline bir uzantı olarak paralel ve dağıtık programlama olanağı sunmaktadır. Bu tür diller, gerçek uygulamalarda ve piyasada fazla yaygın olmamakla beraber, araştırma ve akademik çalışmalarda kullanılmaktadır. 61

62 Diğer Diller Karar destek, prototipleme ve belirtim gibi çeşitli amaçlara hizmet diller de bulunmaktadır. Arayüz belirtim (CORBA-IDL), toplu iş tanımlama(script, batch file) gibi işlevleri yerine getirmede kullanılan diller olduğu gibi kişisel bilgisayarlarda yaygın bir şekilde kullanılan çalışma tabloları, veritabanı sistemleri de ayrı diller kullanmaktadırlar. 62

63 SGML ve onun daha basitleştirilmiş bir altkümesi olan XML daha çok internet dünyasında kullanılan HTML için bir standart getirmek üzere tanımlanmıştır. Bu diller insanların okuyabileceği türdeki verileri biçimlendirilmiş bir şekle getirmek için kullanılır. 63

64 XML yalnızca metin tabanlı veri tabanlı verileri düzenlemek ve sağlamak için etkin bir dildir. Onun dışında, makinenin okuyabileceği veriler(örneğin, kayan nokta sayılar) ve matematiksel hesaplamalar için kullanılmaz. 64

65 e)Beşinci Nesil Diller Geleceğe hükmedecek bu son nesil diller çeşitli araştırmalar halindedirler. Yürütülmekte olan bu araştırmaların sonuçları henüz yaygınlaşmamıştır. Bu tür diller yeni oluşumları kapsayacaklardır. 65

66 Örneğin nesneye yönelik programlamadan sonra gelişen yeni bir yaklaşım da konuya yönelik programlamadır. Yeni program dilleri, daha fazla kapsama yaratacak, belki de bizi ardışık düşünmekten kurtaracaktır. 66

67 DİLLERİN ÖZELLİKLERİ Programlama dillerinin karşılaştırmasında çeşitli özelliklerin ve yeteneklerin varlığı esas alınır. Dillerin özelliklerini genellemek ve bir kısmını da daha alt gruplar için mümkündür. MELEK İNTEPE

68 GENEL ÖZELLİKLERİ Programlama dillerinin genel özelliklerini şu şekilde özetleyebiliriz. Tasarımdan koda geçiş kolaylığı:Kurumsal olarak,iyi yapılmış bir ayrıntılı tasarımı koda çevirmek kolay bir işlemdir.Ancak bunun için programlama dilinin tasarımda öngörülen yapıları desteklemesi gereklidir. 68

69 Amaca uygunluk Uygulama alanının ve geliştirilecek yazılımın işlevsel ve başarım özelliklerine göre programlama dili seçimi yapılmaktadır.Bu seçim,tasarım sırasında da etkisini ortaya koyar. 69

70 Zira, dilin desteklemediği bir yapıyı tasarlamak ve kodlamaya çalışmak yerine, amaca uygun yapılara sahip bir dili seçerek onun özelliklerini tasarım sırasında kulanmak daha yararlı olacaktır… 70

71 Dilin etkinliği Yaygın programlama dilleri İngilizce üzerine kurulmuş olup konuşma diline yaklaştıkça hem yazılması hemde okunması kolaylaşır. 71

72 Derleyici etkinliği Aynı kaynak kod kullanılmasına rağmen her derleyici aynı nitelikte kod üretimi yapamaz. Programlama dilinden üretilen makine kodunun etkinliği yürütme sırasında ortaya çıkar. 72

73 Derleyiciler kaynak kodu çözümlemeden önce ne kadar iyi denetlerler ve üretilen makine kodunu ne kadar iyileştirirlerse o kadar başarılı sayılırlar. 73

74 Taşınabilirlik Bir programlama dili ile yazılan kaynak kodun değişik derleyicilerle, işletim sisteminin yeni sürümleriyle ve hatta başka makineler üzerinde sorunsuzca çalışması arzu edilir. 74

75 Ancak ne yazık ki, birçok derleyici üreticisi genel başarımı arttırmak uğruna bazı özel yapılar, bildirimler ve hatta anahtar sözcükler kullanılabilmektedirler. 75

76 İşletim sistemine özgü alt düzey çağrıların kaynak kod ile iç içe kullanılması ile taşınabilirlik özelliği azalabilir. 76

77 Geliştirme Araçları Bir programlama dilinin en özelliklerinden biri geliştirme sırsında kodlayıcıya sunduğu hizmetlerlede ölçülür. 77

78 Geliştirme araçlarının varlığı aslında derleyici üreticisi olan firmaya bağlıdır. Desteği az bir dilin etkinliğinin yüksek olmasını beklemek doğru olamaz. 78

79 Bakım Yazılım bakımının kolay olmasındaki en büyük etkenlerden biri, esnek bir tasarımın yanında, kaynak kodun niteliğidir.Kod, okunabilir, anlaşılabilir ve yeni tasarıma göre rahatça uyarlanabilir olmalıdır. 79

80 Tip kontrolü Programlamanın temelinde veri işleme yatar. Verilerde bilgisayar donanımın kullandığı temel tipler(karakter,tamsayı ve kayan nokta sayısı)haline dönüştürülerek kullanılırlar. 80

81 Programlama dilinin tip kontrolü yapma yeteneği güvenilir yazılım geliştirme için son derece gerekli bir özelliktir. Çünkü, insanlar hata yapmaya eğilimlidirler. 81

82 Elle yazılan kodlar tip kontrolü zayıf bir derleyicinin denetiminden geçip bazı durumlarda çalışsa bile genelde çökmeye mağdurdurlar. 82

83 Örneğin;C dilinde char ile int tipindeki değişkenleri birbirinin yerine kullanmak mümkündür. 83

84 Denetim yapıları Tüm programlama dilleri kodlayıcıya ardışık komutlardan, koşul testine göre dallanmalardan ve tekrarlardan oluşan mantıksal yapılar sunarlar. 84

85 Klasik dillerin bazılarında hata yakalama düzenekleri,paralel programlama yapıları, zaman deneyimli yapılar bulunmaktadır. Bunların yanında, dağıtık programlamayı ve gerçek zamanlılığı kendi yapıları ile destekleyen dillerde bulunmaktadır… 85

86 Nesneye Yönelik Dillerin Özellikleri Alt gruplar için tanımlanabilen özelliklerden nesneye yönelik diller için kullanılan ayırt edici özellikler şunlardır: 86

87 Modülerlik: Yazılım, kendi üzerinde işlemler yapılmasına izin veren basit ve tutarlı arayüzlere sahip ayrı modüller halinde geliştirilir. 87

88 Veri soyutlama(abstraction): Nesneler hem verileri hem de onlar üzerindeki işlemleri kapsayan soyut veri tipleri şeklinde tanımlanırlar. 88

89 Otomatik bellek yönetimi: Sistem öz kaynaklarını kullanan nesneler işleri bitince onları otomatik olarak serbest bırakırlar. 89

90 Sınıflar: Sınıf, kendisinden nesnelerin yaratılan, fakat diğer basit tiplerden olmayan özel yapıda bir tiptir. 90

91 Katılım(inheritance): Bir sınıf temel sınıfın veri ve işlemlerinin bir kısmını yada tamamını devralarak türetilir. Bu türetimi çoklu ve tekrarlanan bir şekilde yapmak mümkündür. 91

92 Çokşekillilik(polymorphisın): Bir nesne,yürütme anında,çeşitli sınıflardan yaratılmış başka nesneleri işaret edebilir,yürütme anında dinamik olarak başka nesnelerle bağlanabilir. 92

93 Bütün koşulları karşılayan dillere nesneye yönelik,yalnızca ilk dördünü karşılayan dillere ise nesneye dayalı adı verilmektedir. 93

94 Nesneye yönelik dillere örnek; SMALLTALK,C++,JAVA nesneye dayalı dillere örnek olarakda C,PASCAL ve ADA verilebilir. 94

95 Gerçek Zamanlı Dillerin Özellikleri Zamansallığın kısıtlama derecesine göre gerçek zamanlı sistemlerin gerçekleştirilmesinde herhangi bir programlama dilinin kullanımı mümkün olabilir. 95

96 Ancak, görev kritik olan ve sıkı gerçek zamanlılık gerektiren sistemler için uygun özellikler taşıyan programlama dillerinin kullanılması daha yararlıdır. 96

97 Şimdi bu özellikleri kısaca görelim: Kuvvetli tip kontrolü (strong typing) yazılımı geçersiz verilerden korumak için derece gerekli bir özelliktir.Derleme ve yürütme anında yapılan tip kontrolü ile tasarım sırasında beklenen veri büyüklükleri,tipleri ve sınırları denetim altında tutulur. 97

98 Geçersiz verilerin işleme girmesinin istenmemesinin durumunda hata üretilir ve bu hataların uygun şekilde düzeltilmesi beklenir. 98

99 Dinamik bellek yönetimi kısıtlı belleğe sahip sistemlerde,bilgi girişine göre belek ataması ve temizlemesi yapmak üzere gereklidir.Dil tarafından etkin bir bellek yönetimi ve atık toplama desteklenmelidir. 99

100 Parametre geçirme teknikleri yeteri kadar hızlı yapılmalıdır.Örneğin,değer ile geçirme (pass-by-value) tekniğinde,yordam çağrısı sırasında nesne veya değişkenin tümü yığına kopyalanır.Bazı dillerde bu işlem kodlayıcıya saydam olmasına rağmen başarımı arttırır. 100

101 Hata yakalama ve kotarma(exception handling) yazılımın bütünlüğünü bozmadan yürütme sırasında meydana gelebilecek hataların yakalanması ve durumun düzeltilmesi işlemidir. 101

102 Soyut veri türleri yardımıyla veriler ve işlevler beraberce kapsanarak bir değişken üzerindeki işlemin diğer değişkeni etkilememesi sağlanır. 102

103 Modüler yapıyı destekleme özelliği ile geliştirme sırasında kolaylık sağlanırken daha önce geliştirilmiş ve denenmiş modüllerin tekrar kullanımı mümkün olur. 103

104 Zaman belirtimi olanağı ile daha sağlam zaman yapılarını (kesin olarak belirli bir süre bekleme, belirli bir saatte uyanma gibi) kodlama sırasında oluşturmak mümkündür. 104

105 DİL SEÇİMİ Bazı durumlarda müşteri tarafından belirli bir dilin kullanımı zorunlu tutulabilir, yada başka teknik nedenlerden dolayı belirli bir dilin kullanılması gerekebilir. 105

106 Dil seçimi yapılırken aşağıda belirtilen ilkelerin dikkate alınmasında yarar vardır: • Özellikle görev kritik ve askeri alanlarda sistem güvenilirliğini zedelemeyecek diller kullanılmalıdır. 106

107 • Yazılımın kullanılacağı bilgisayar ortamı, donanımın ve işletim sisteminin özellikleri dikkate alınmalıdır. 107

108 • Seçilecek dilin yetenekleri algoritmik ve işlemsel karmaşıklık derecesini karşılayabilir olmalıdır. • Başarım gereksinimleri,dilin diğer özelliklerinden daha fazla önem taşıyabilir. 108

109 • Veri yapılarının özellikleri ve karmaşıklık dereceleri seçilecek dilin yetenekleri arasında olmalıdır. 109

110 • Yazılım geliştirme personelinin bilgi düzeyi seçilecek dil için önemli bir etkendir. • İyi bir derleyicinin ve geliştirme ortamının varlığı verimliliği arttırabilmek için dikkate alınmalıdır. 110

111 • Seçilecek dil,yazılımın bakım aşamasında son derece önemli olan okunabilirlik ve anlaşılabilirlik özelliklerini desteklemelidir. 111

112 Uzun yıllardır en güçlü ve en yaygın diller arasında C dili gösterilmektedir.Sistem yazılımlarında(işletim sistemi,ara katman,aygıt sürücü gibi)tercih edilen C’nin nesneye yönelik uyarlaması olan C++ da onun kullanıldığı pek çok alanda yaygın olarak kullanılmaktadır. Dillerin uygulama alanları 112

113 Eğitim dili olarak yaratılmış PASCAL ile birlikte,görsel programlama dilleri olan Visual BASIC,Visual C++,DELPHI gibi diller özellikle PC dünyasında yaygın olarak kullanılmaktadırlar. 113

114 ADA(83 ve 95),C,MODULA-2 gerçek zamanlı sistemlerde, COBOL,LINK iş dünyası yazılımlarında,FORTRAN bazı uygulamalarında,PROLOG,LISP yapay zeka uygulamaları ve uzman sistemlerde daha fazla tercih edilmektedirler. Nesneye yönelik çözümleme ve tasarım kullanılması durumunda, SMALLTALK, Objective-C,C++ VE JAVA ön plana çıkmaktadır. 114

115 Bazen bir bilgisayarlı sistemin tamamında tek bir dil kullanmak mümkün olmayabilir. Örneğin, bir kontrol sistemi yazılımında,C ile yazılmış aygıt sürücüler ADA veya C++ diliyle denetlenirken, grafiksel kullanıcı arayüzü için C veya C++ kullanılabilmektedir. 115

116 116

117 Çeşitli amaçlar için özel olarak geliştirilmiş fakat fazla yaygın olmayan yeni diller bazı geliştiriciler için fazla tercih edilmeyebilir. 117

118 Yazılımın geliştirilip doğru olarak çalıştırılabilmesi için iyi bir şekilde test edilmesi, ondan sonrada bakımın yapılabilir olması için, en başta kolay okunur ve anlaşılır olması, iyi değerlendirme yapılması gereklidir. 118

119 Yeni diller Günümüzde kullanılan bilgisayar sistemlerinin bilgi işleme ve zaman gereksinimleri tek işlemcili,mimarilerin sınırlarını aştıkça ilave gerçek zamanlılık yetenekleriyle donatılmış dağıtık bilgi işleme yöntemleri daha çekici hale gelmeye başlamıştır. 119

120 Gerçek zamanlı uygulamalar ve dağıtık bilgi işleme gibi birçok alanda güvenilirlik, doğruluk, sağlamlık, tasarım, geliştirme, test ve bakım kolaylığı göz önüne alındığında geleneksel programlama dillerinin yetersiz kaldığı görülmektedir. 120

121 Nesneye yönelim kavramı yazılım modülleri için yüksek düzeyli bir soyutlama sağlayarak yazılımların tasarımı ve geliştirmesi kolaylaştırmaktır. 121

122 Bunların yanında, internet uygulamalarını daha kolay geliştirmeyi amaçlayan, özellikle ASCII metin üzerinde çok kuvvetli işler yapabilen özel diller de geliştirilmekte, hatta HTML,XML gibi diller oldukça yaygınlaşmaktadır. 122

123 Bu nedenle, geliştirmedeki teknik kolaylıklar yanında, dil seçiminin bakıma olan etkisi de unutulmamalıdır. 123

124 Kod Çevrim İşlemi Programlama dillerinin en önemli özelliklerinden biri de insan ile makine arasında n tür bir geçiş sağladığıdır. İnsanlar normal karakterlerle gösterilen yazı ve sayıları anlayabilirler. 124 MERYEM ALTIN

125 Ancak bir bilgisayar yalnızca 0 ve 1 değerlerini alabilen ikili düzenden,yani ”bit” lerden anlamaktadır. Dolayısıyla arada iletişimi sağlayacak bir çevirmene gereksinim vardır. 125

126 Normal olarak bir program ASCII biçimindedir. ASCII, insanların kullandıkları simge, harf ve rakamlar yerine onların sayısal karşılıklarını kullanılır. Bu kodlar 0 ile 255 arasındadır. Her bir karakter bir sekizli (byte) ile gösterilir. 126

127 Günümüzün gereksinimleri değerlendirildiğinde bu kadar karakterin yetmediği görülmüş ve iki sekizli ile gösterilen yeni ve daha evrensel bir kod sistemi de oluşturulmuştur. Halen birçok sistem,standart ASCII kullanmaktadır. 127

128 Derleyiciler Normal metin halinde yazılmış program içeren dosyalara kaynak kod adı verilir. 128

129 Derleyici (compiler)bu dosyada bulunan metni oluşturan ASCII karakterlerini dilin söz dizim kurallarına uygun olarak okur, hata yoksa bunları bilgisayarın anlayabileceği komutlardan oluşan makine diline çevirir. 129

130 Bu komutları da bilgisayarın işlemcisinin tanıyabilmesi için nesne koduna çevirir. 130

131 Bir projenin kaynak kodu birden çok dosya oluşabilir veya çeşitli kütüphanelere ait kod parçalarını da kullanıyor olabilir. 131

132 Bu durumda her bir bilgisayar donanımı ve işletim sistemine uygun bir derleyici ile ayrı ayrı derlenir ve meydana gelen nesne kodları yada dinamik kütüphaneler bağlayıcı(linkler)kullanarak bağlanır. Bu işlem sonunda yürütülebilir kod elde edilir. 132

133 Derleyicilerle birlikte kullanılan önemli terimlerden biri de derleme anı diğeri de yürütme anıdır. 133

134 Derleme anı,kaynak kodun derlenmesi işlemi sırasında meydana gelen olaylar için, yürütme anı da yürütülebilir durumdaki kodun işlemci üzerinde koşturulması sırasında meydana gelen olaylar için kullanılır. 134

135 Bazı yazılımlar yorumlayıcı adı verilen özel altyapılarla birlikte kullanılırlar. Standart BASIC, LISP, PROLOG ve JAVA birer örnektir. Yorumlayıcılar 135

136 Bir yazılım çalıştırılmadan önce yorumlayıcının bilgisayara yüklenmesi ve onun içinden de kaynak kodun yüklenerek çalıştırılması gerekir. 136

137 Yorumlayıcı kaynak kodun satırlarını birer birer okuyarak işlemci komutları haline dönüştürür ve bu komutları uygular. 137

138 Bu nedenle derlenmiş koda göre daha yavaştır. Yorumlayıcının kodun tamamını okumasından dolayı, bir yazılımın tamamen doğru çalıştığını anlayabilmek için her parçasının çalıştırılarak yorumlayıcıdan geçmesi sağlanmalıdır. 138

139 Özellikle büyük projelerde yorumlayıcı ile geliştirilen yazılımlarda hata ayıklaması oldukça güçtür. 139

140 Günümüzde, bu tür dilleri belirli işlemciler için doğrudan çalıştırmaya yarayabilecek derleyiciler de geliştirilmiştir. Bu şekilde, klasik diller gibi nesne kodu da üretilebilmektedir. 140

141 Yazılım geliştirmek için ilk sahip olunması gereken, uygun bir geliştirme ortamıdır. Ana sistem olarak da adlandırılan bu sistemin yanında geliştirilen yazılımın test edilmesi için bir test sistemi ve gerçek sistem yani hedef sistem bulunmalıdır. 141

142 Ana sistem tüm geliştirme etkinliklerinin yürütüldüğü ve bazen de testlerin yapıldığı bir yada daha fazla bilgisayardan oluşan bir sistemdir. 142

143  Sunucu: Ana sistem bir ağ şeklinde ise yeterli özelliklere sahip bir bilgisayar dosya sunucusu olarak kullanılmalıdır. Sunucu üzerinde herbir proje için yeterli miktarda alan ayrılmalı, farklı projelerin kaynak kod ve yazılım geliştirme dosyaları birbirlerine karıştırılmamalıdır. Profesyonel Anlamda Bir Ana Sistemde Aşağıdaki Öğeler Bulunmalıdır: 143

144  Çalışma Alanları: Herbir geliştirici için uygun büyüklükte ayrı birer çalışma alanı ayrılmalı, ortak ve paylaşılır alanlar tanımlanmalı, erişim hakları düzenlenmelidir. 144

145 Kişisel çalışma alanları herbir proje için ayrı ayrı tutulmalıdır. Eğer ortak geliştirme yapılıyorsa, kişisel dizinler yerine proje dizinleri kullanılmalıdır. 145

146  Proje Alanları: Her proje için ayrı ayrı geliştirme ve üretim dizinleri tutulmalıdır. Geliştirme dizinleri geliştiricilerin kaynak kod dosyalarını sürekli olarak değiştirdikleri, derlemelerin yapıldığı dizinlerdir. 146

147 Genellikle ana sistemde testler yapılabiliyorsa böyle bir dizin kullanılır. Üretim dizinleri yalnızca sistem yöneticisinin erişebildiği, geliştirilmesi tamamlanmış ve test sisteminde sınanmaya hazır hale gelmiş yazılım birimlerinin bulunduğu dizinlerdir. 147

148  Metin Düzenleyici: Geliştirme ortamında en az iki tür metin düzenleyici kullanılmalıdır. Bunlardan biri kod yazımı için çeşitli özelliklere sahip metin tabanlı kod düzenleyici, diğeri de belgelendirmede kullanılacak ofis türü uygulamalarıdır. 148

149  Derleyici: Geliştirme için en temel araç derleyicidir. Seçilen programlama diline, bilgisayar donanımı ve işletim sistemine göre derleyiciler farklıdırlar. 149

150 Eğer derlenen yazılım aynı ana sistem üzerinde test edilecek ve yeni aynı türde bir hedef sistemde kullanılacaksa tek bir derleyici yeterli olacaktır. 150

151  Kütüphaneler: Yazılım geliştirme ortamında tekrar kullanımı destekleyerek zaman tasarrufu sağlayan önemli bir etken kütüphane kullanımıdır. 151

152 Dada önce geliştirilen ve tekrar kullanımı mümkün olan modüller, kod parçaları, derleyici ile birlikte gelen standart kütüphaneler geliştiricilerin rahatça ulaşabileceği ortak bir alanda tutulmalıdır. 152

153  Düzenleşim Yönetim Sistemi: İdeal bir geliştirme sisteminde mutlaka bir düzenleşim yönetim sistemi bulunmalıdır. 153

154 Eğer özel bir düzenleşim aracı yoksa, işletim sisteminin sağladığı çeşitli kısıtlayıcılık özellikleri ve toplu iş yürütme dosyaları kullanılarak basit bir sistem oluşturulmalıdır. 154

155  Yükleme Araçları: Geliştirilen yazılım birimlerini test sistemi veya hedef sisteme yüklemek üzere, üretim dizinlerinde bulunan yazılım birimlerini ağ üzerinden aktarmaya veya herhangi bir taşıyıcı ortam toplu iş dosyası olabileceği gibi bir veritabanı yönetim sistemine bağlı olarak çalışan özel araçlar da olabilir. 155

156 Yazılım Mühendisliği Araçları: Günümüzde pek çok yazılım geliştirme aracı bulunmaktadır. Bunlar yardımıyla, belli bir yazılım mühendisliği yöntem bilimi kullanılarak çözümleme ve tasarım yapılabilir, hatta otomatik olarak kaynak kod üretilebilir. 156

157 • Destekleyici Araçlar : Bazı geliştirme ortamları tümleşik bir yapıda olup işlevleri yerine getirebilirler. Ayrık yapıdaki sistemlerde, temel geliştirme öğelerine ek olarak, hata ayıklayıcılar, arındırıcılar, test programları, metin düzenleyiciler, resim düzenleyiciler, ofis uygulamaları bulunabilir. 157

158 Geliştirilen yazılımın ilk testleri mümkünse ana sistem üzerine yapılmalıdır. Bu şekilde hedef sistem meşgul etmeden küçük hataların bulunması sağlanabilir. 158

159 Hedef sisteminin bir benzeri olarak bir test sistemi kullanılabiliyorsa bu yazılım geliştirme işleminin daha sağlıklı yürütülmesine yardımcı olur. 159

160 Test sistemi hem donamım hem de yüklü işletim sistemi ve yazılımlar bakımından hedef sistem ile aynı ya da yakın benzerlikte olmalıdır. 160

161 Hedef sistem ise tüm yazılımın gerçekten üzerinde koşacağı ana sistemdir. 161

162 Bazen ana, test ve hedef sisteminin üçü aynı geliştirme yerinde oluşturulabilir. Bazen de hedef sistemi kullanmak son aşamaya kadar mümkün olmayabilir. 162

163 Örneğin; bir hidroelektrik santralı denetleyecek hedef sistem,geliştirme yerinden çok uzaklarda olabilir. O taktirde, onun bir benzeri olan test sistemi kullanılmak zorundadır. 163

164 YÜRÜTME ORTAMI Yazılımlar ya tek bir bilgisayar üzerinde yada birbirleriyle iletişim halinde olan bilgisayarlar üzerinde koşarlar. Tek bilgisayardaki yürütme ortamı genellikle işletim sistemidir. 164 EMİNE DEMİR

165 Bazen, bunun üzerinde bir başka katman daha konarak daha etkin çoklu programlama ortamı yaratılır (Java Virtual Machine bunlardan biridir).Dağıtık bilgi işlemeyi destekleyen çeşitli yazılım mimarileri vardır. 165

166 Özellikle bir yerel alan ağı üzerindeki uygulama yazılımlarının bir arada ve uyum içinde çalışmasını sağlayan, onları alttaki bilgisayar ve ağ yapısından ayıran ara katman yazılımlarına daha önce değinmiştik. 166

167 Aynı zamanda tek bilgisayarlı sistemlerde de kullanılabilen bu tür yazılımlar için tanımlanmış standartlardan bazılarını kısaca tanımlayalım : 167

168 CORBA (Common Request Broker Architecture) Uluslar arası boyutta yazılım ve donanım sağlayıcılarından oluşan Oject Managemnt Group (OMG) adlı ticari olmayan bir örgüt tarafından ortaya konan bir endüstriyel bir standarttır. 168

169 Ticari firmalar,çeşitli isteklere göre belirlenip yayınlanmakta olan bu mimari standardına uygun olarak kendi yazılım ürünlerini geliştirmekte ve piyasaya sürmektedirler. 169

170 Bu şekilde yerel bilgisayar ağı mimarisinden ve donanımdan bağımsız olarak, dağıtık nesneye yönelik programlama yapabilme olanağı getirilmektedir. 170

171 Uygulama yazılımları birer CORBA nesnesi olarak tanımlanır ve standart bir dil olan Arayüz Tanımlama dili (Interface Definetion Language- IDL) ile arayüzleri hazırlanır. IDL arayüz dosyası, bir nesnenin kullanılabilmesi için sunucunun sağladığı veri çeşitlerini, yöntemleri ve işlemleri açıklar. 171

172 Bu arayüzler daha sonra C++,JAVA,ADA gibi çeşitli yüksek düzey programlama dillerine çevrilerek kullanılırlar. 172

173 Bir CORBA nesnesi diğer nesnelerin yerlerini, geliştirme dil ve şekillerini bilmeden onların arayüzlerinde tanımlanmış işlemlerini kullanırlar. 173

174 Her nesne mimarinin kalbi olan Nesne İsteme Aracısı (Object Request Broker- ORB) ile haberleşmektedir. ORB çeşitli üretici firmalar tarafından geliştirilmiş olabilir. 174

175 Ancak nesneler standart bir arayüz kullandıklarından ORB değişikliği uygulama yazılımını etkilememektedir. ORB'un sağladığı çeşitli temel işlevler yanında OMG tarafından yararlı görünen nesne servisleride standart hale getirilmiştir. 175

176 İnternet Inter-ORB protocol (IIOP) CORBA internet üzerindeki geniş dağıtık uygulamalara erişimi sağlayan bir açık protokoldür. 176

177 Bu protokol TCP/IP üzerine kurulur ve ORB lar arası iletişimi sağlar. IIOP farklı makineler üzerindeki nesnelerin haberleşmelerini sağlayarak bilgisayar ağı kavramını büyük boyutlara kadar genişletebilir. 177

178 Halen mart 2004 tarihli CORBA 3.0 belirtimi yürürlükte olup bu konudaki son sürümler ve ilgili diğer belirtimler (IDL,CCM) adresinde bulunmaktadır. 178

179 OMG tarafından oluşturulan bir diğer belirtimde Data Distribution service (DDS sürüm 1,2,, ocak 2007) adını taşımaktadır. Bu standartta, "veri-merkezli yayınla abone ol (DCPS)" ve "Veri yerel tekrar birleştirme katmanı" (DLRL)" tanımlanmaktadır. DDS 179

180 DCPS,belirli yöntemlerle yayınlanan topic adı veri parçalarını yaymak, yayılan bu verilere belirli kurallara göre abone olup okumak yöntemine dayanmaktadır. 180

181 Bu şekilde gerçek zamanlı bir program, bir diğerinin yayınladığı bilgilerden yalnızca kendi ilgilendiklerine ulaşabilir; iletişim, platformdan bağımsız,etkin,nitelikli ve güvenilir olarak sağlanır. 181

182 DCPS,uygulama alanlarına belirli tipte verilerle işlem yapmak için arayüz sağlar. 182

183 DLPL ise yayınlanan verilerin otomatik olarak toplanıp uygulama tarafından istenildiğinde okunabilir hale getirilmesini sağlar. 183

184 DDS, verilerin hem yerel bilgisayarda, hemde ağ üzerinde ilgilenen abonelere ulaştırılmasını sağlayan bir ara katman belirtimidir. Bu belirtime uyan yazılımlar birbirleri ile rahatça haberleşebilirler. 184

185  Yüksek Düzey mimari (HİGH Level Architecture- HLA),gerçekleştirilen benzetim modelleme ve benzetim mimarisidir. HLA 185

186 HLA, e ğ itim, çözümleme,mühendislik, e ğ lence ve askeri uygulamalar gibi geniş bir uygulama alanına sahiptir. 186

187 HLA herhangi bir yazılım tekni ğ i olmadı ğ ı gibi,herhangi bir paket yazılımı veya programlama dilini kullanmayıda zorlamaz. 187

188 HLA, de ğ işik model ve benzetimlerin birbirleriyle daha çok C4I (Command, Control, Communication, Computers and intelligence) sistemleri ile birlikte çalışabilmeleri ve tekrar kullanabilmeleri için geliştirilmiş bir yapıdır. 188

189 ABD savunma modelleme ve benzetim ofisi (Defense Modellik and Simulation office-DMSO) yönetiminde,Amerikan savunma başkanlığı bünyesinde geliştirilen ve bakımı yapılan benzetim yazılımlarının birlikte çalışabilmelerine ve tekrar kullanılabilmelerine destek vermek amacıyla oluşturulmuş olan HLA standartı, Ekim 2000'de IEEE tarafından açık bir standart ( IEEE standard 1516) olarak kabul edilmiştir. 189

190 HLA, Özellikle Aşağıdaki Uygulama Alanları İçin Geliştirilmiştir: O - Analitik benzetimler O -Eğitim amaçlı benzetimler O -Askeri sistemler ve C4I arayüzleri O -Test ve değerlendirme amacıyla kullanılan benzetimler O -Mühendislik amacıyla kullanılan benzetimler O -Üretim sistemlerinin benzetimleri O -Eğlence dünyası için dağıtık oyunlar 190

191 191

192 Federe olarak adlandırılan benzetim nesnelerinin bir amaca yönelik olarak biraraya getirildiği yapıya federasyon adı verilmektedir. FEDERASYON 192

193 Benzetimler haricinde veri toplama ve izleme yapan destek uygulamalarıda federe olaraka adlandırılırlar. 193

194 Federasyon kuralları,bir HLA federasyonunun içindeki benzetimlerin düzgün etkileşimini sağlayan ve sorumluluklarını belirleyen kurallardır. 194

195 Ayrıca gerçek sistemler veya platformlarda HLA'nın sağladığı esnek yapı sayesinde kurallara uyarak birer federe şeklinde federasyonlara katılabilirler. 195

196  Yürütme alt yapısı,dağıtık bir işletim sistemi gibi çalışarak farklı platformda koşan federelerin etkileşimi ve tüm federasyonun yönetimi için gerekli olan destek işlevlerini sağlar.. YÜRÜTME ALT YAPISI 196

197 Yürütme sırasında federeler arasındaki tüm veri iletişimi ve etkileşimler yürütme alt yapısı üzerinden yürütülür. 197

198 Yürütme altyapısı benzetimlere sa ğ lanan servisleri ve bu servislere federeler tarafından nasıl ulaşaca ğ ını belirler. Ayrıca federeler tarafından alt yapıya sa ğ lanması gereken ça ğ rı yordamlarını tanımlar. 198

199 ARAYÜZ TANIMLAMASI Arayüz tanımlaması,federelerin ve yürütme alt yapısı'nın birbirleri ile iletişim sırasında kullanılacak standart yöntemleri belirler. 199

200  Federasyon yönetimi  Bildirim yönetimi  Nesne yönetimi  Ait olma yönetimi  Zaman yönetimi  Veri dağıtım yönetimi Bu Yöntemler Toplam 6 Yönetim Alanına Bölünmüştür Bunlar: 200

201  Çeşitli yazılım firmalarının,araştırma kurumlarının ve üniversitelerin geliştirdiği çok sayıda ara katman ürünleri bulunmaktadır. TİCARİ ARA KATMANLAR 201

202 Bunların bir kısmı belirli bir işletim sistemini destekleyerek başarımını en üst düzeye çıkarmakatadırlar. Bir kısmıda daha geniş kapsamlı olarak sunulmaktadır. 202

203  Geniş çaplı iletişimin gerektiği durumlarda,internetin küresel erişim gücünü kullanabilecek uygulama geliştirme yeteneği, Birçok ürün aşağıdaki ortak özellikleri desteklemektedir; 203

204 * Yazılım geliştiricilerin yenden eğitimine gerek duyulmadan,hızlı bir şekilde yeni geliştirme yapabilme ve ürünü pazara çabuk sunabilme, 204

205 * Tüm işlevselliğin en az kod yazarak sağlanması, * İşlevsel olarak tüm katmanların halen kullanılan herhangi bir sistemle uyum içinde çalışabilme yeteneği, 205

206 * Bilgi işlem uzmanlarına yazılım öğelerinin iletişimi ile uğraşmak yerine iş problemlerini çözme zamanı sağlanması. 206

207 * Programlama dilinden ve donanımdan bağımsızlık, * İstenen dağıtık ve paralel uygulamayı kolaylıkla oluşturma,yönetme ve gerektiğinde değiştirebilme. 207

208 Ticari ara katmanlar çok çeşitli amaçlar taşıdıkları ve genellikle özel olarak geliştirildikleri için burada daha fazla ayrıntıya giremeyeceğim. 208

209 Tasarım ne kadar iyi yapılırsa yapılsın onu hayata geçiren işlem kodlamadır. Günümüzde kodlama,yazılım geliştirme sürecinin hala büyük emek getiren,önemli fakat bazıları için biraz can sıkıcı evresidir. 209

210 Birçok dosya ile uğraşmak,binlerce satır kod yazmak,bunları doğru yazmak, derleyeciden başarıyla geçirmek test etmek ve sonunda da doğrulamak büyük emek getirir.Bu emeğin bazı biçimlere uyulması, bazı kurallara dikkat edilmesi gereklidir. 210

211 KODALMA DİLİ Yazılım geliştirmede Türkçe yada bir başka dil kullanımı ço ğ u zaman tartışma konusudur. Belgelendirme ve kodlama da hangi dilin kullanılaca ğ ını bazen müşteri belirler bazende yönetimin kararı uygulanır. 211

212 Tamamen yurt içinde kalıcak ve türk personel tarafından geliştirilecek yazılımın tüm belgelendirmesi ve kodlaması türkçe yapılabilir. 212

213 Yabancı kişilerin katılım sağladığı ortak yazılım geliştirme projelerinde ortak anlaşılabilinen bir dil kullanılmalıdır. 213

214 Günümüzde kullanılan yaygın programlama dillerinin tamamı ingilizce anahtar sözcükler içermekte ve yalnızca ingiliz alfabesini desteklemektedir.Hatta PASCAL,ADA gibi bazı dillerin söz dizimi dahi ingilizce konuşma diline yaklaşmıştır. 214

215 Türkçenin bozulmasına engellemek amacıyla kaynak kodun ingilizce olarak yazılması daha tutarlı olmaktadır. Türkçe harfleri destekleyen dil veya derleyici kullanmak başka ortamlara taşınabilirliği büyük ölçüde azaltmaktadır. 215

216 Hatta bazı işletim sistemleri türkçe dosya dosya isimlerinde bile sorun çıkartmaktadırlar. Öte yandan pek çok yazılım mühendisliği destek gereci türkçe dilini henüz desteklememektedir. 216

217 Eğer kodlamada türkçe kullanılacaksa,olabildiğince türkçe karakter içermeyen sözcüklerin seçilmesine dikkat edilmelidir. 217

218 Anlam karmaşasına engel olunmalıdır. bu durumda karşılaşabilinecek bir başka sorunda özel isim ve kısaltma karmaşasıdır. 218

219 Örneğin; Belgelerde isterlerden tasarım sonuna kadar kullanılan türkçe harfi içeren bir kısaltma, kodlama sırasında bir başka anlam ifade etmesi olası bir isme dönüşmek zorundadır. Yine koda yakınlığı sağlanabilmesi için tasarımında aynı dilde yapılması gerekir. 219

220 Bu amaçla gerekirse bir dönüşüm tablosu kullanılmalıdır. Hangi aşamada hangi dilin kullanılması yönetim tarafından alınması gereken önemli bir karardır. 220

221 KOD BELGELEMESİ Tasarım her nekadar iyi belgelenmiş olsada, kaynak kodun içinde yapılan belgeleme en kullanışlı ve en doğru olanıdır.Bu belgeleme işlemi içinde, tanımlayıcı isimlerinin seçilmesi, açıklamalar ve görsel yapı yer alır. 221

222 •Öğr. Gör Mevlüt İNAN HAZIRLAYAN 222

223 Bizi Sabırla Dinledi ğ iniz İ çin Te ş ekkürler Ederiz… 223


"1. KONU BA Ş LIKLARIMIZ ; 2 Programlama Dilleri Dillerin Özellikleri Kod Çevrim İşlemi Yürütme Ortamı Kodlama Biçimleri Yazılım Gerçekleştirimi." indir ppt

Benzer bir sunumlar


Google Reklamları