KONU BAŞLIKLARIMIZ; Dillerin Özellikleri Yazılım Gerçekleştirimi

Slides:



Advertisements
Benzer bir sunumlar
Yrd. Doç. Dr. Mustafa Akkol
Advertisements

Prof.Dr.Şaban EREN Yasar Üniversitesi Fen-Edebiyat Fakültesi
KURAN’IN ANLAMI İLE BULUŞMAK ARAŞTIRMASI
Algoritma ve Akış Diyagramları
DOĞAL SAYILAR.
T.C. İNÖNÜ ÜNİVERSİTESİ Arapgir Meslek YÜKSEKOKULU
TİE Platformu Yürütme Kurulu Başkanı
İNTERNET.
İNTERNET.
Atlayarak Sayalım Birer sayalım
 Meltem KORCAY  Ayşe KUBİLAY
BEIER CÜMLE TAMAMLAMA TESTİ
Diferansiyel Denklemler
ÖRNEKLEME DAĞILIŞLARI VE TAHMİNLEYİCİLERİN ÖZELLİKLERİ
Bilgi Teknolojisinin Temel Kavramları
BÜLENT ECEVİT ÜNİVERSİTESİ SAĞLIK UYGULAMA VE ARAŞTIRMA MERKEZİ HEMŞİRELİK HİZMETLERİ MÜDÜRLÜĞÜ BAKIM TALİMATLARI B.E.Ü
Yazılım Mühendisliği Bölüm - 6 Gerçekleştirim
BELGELEME Ian Sommerville, “Software Documentation”,
Orta Öğretimden Üniversiteye Gelen Öğrencilerin Temel Bilgisayar Bilgilerinin İl ve Bölge Bazında İncelenmesi: Karadeniz Teknik Üniversitesi Uygulaması.
Bölüm 1: Introductions (Tanıtım,Tanım)
KIR ÇİÇEKLERİM’ E RakamlarImIz Akhisar Koleji 1/A.
BTP 108 BİLGİSAYAR AĞ SİSTEMLERİ AĞ KAVRAMI Birden çok bilgisayarın birbirine bağlı olarak kullanılmasıyla oluşturulan çalışma biçimine bilgisayar ağı.
HOŞGELDİNİZ 2005 Yılı Gelir Vergisi Vergi Rekortmenleri
HİSTOGRAM OLUŞTURMA VE YORUMLAMA
CAN Özel Güvenlik Eğt. Hizmetleri canozelguvenlik.com.tr.
GÖK-AY Özel Güvenlik Eğt. Hizmetleri
“Dünyada ve Türkiye’de Pamuk Piyasaları ile İlgili Gelişmeler”
1/20 PROBLEMLER A B C D Bir fabrikada kadın ve çocuk toplam 122 işçi çalışmaktadır. Bu fabrikada kadın işçilerin sayısı, çocuk işçilerin sayısının 4 katından.
HAZIRLAYAN:SAVAŞ TURAN AKKOYUNLU İLKÖĞRETİM OKULU 2/D SINIFI
1/25 Dört İşlem Problemleri A B C D Sınıfımızda toplam 49 öğrenci okuyor. Erkek öğrencilerin sayısı, kız öğrencilerin sayısından 3 kişi azdır.
ÖRNEKLEM VE ÖRNEKLEME Dr.A.Tevfik SÜNTER.
1/20 BÖLME İŞLEMİ A B C D : 4 işleminde, bölüm kaçtır?
TÜRKİYE KAMU HASTANELERİ KURUMU
Nesneye Dayalı Programlama
İmalat Yöntemleri Teyfik Demir
Nesneye Dayalı Programlama
PROGRAM GELİŞTİRME 1.HAFTA.
PÇAĞEXER / SAYILAR Ali İhsan TARI İnş. Yük. Müh. F5 tuşu slaytları çalıştırmaktadır.
Yazılım Gelişimi. Donanım gelişimine paralel olarak süren yazılım gelişimi, son on yılda kayda değer bir ivmelenme ile bilgisayarları, herhangi bir uzmanlık.
4 X x X X X
İŞLETİM SİSTEMLERİ Öğr. Gör. S.Serkan TAN.
1 FİNANSBANK A.Ş Sinan Şahinbaş Finansbank Genel Müdürü
ANA BABA TUTUMU ENVANTERİ
1 DEĞİŞMEYİN !!!
Test : 2 Konu: Çarpanlar ve Katlar
İŞLETİM SİSTEMLERİ İşletim sisteminin, kolay ve hızlı kullanım, kaynak verimliliği gibi kıstasların dışında, ortamında saklanan bilgilerin, gerekse izinsiz.
İŞLETİM SİSTEMİ.
EYLÜL 2014 İŞLETİM SİSTEMLERİ Bilgisayar Uygulamaları.
ÇEVRE YÖNETİMİ GENEL MÜDÜRLÜĞÜ ÖLÇÜM VE DENETİM DAİRESİ BAŞKANLIĞI
Katsayılar Göstergeler
Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü C ++ Veri.
Proje Konuları.
PÇAĞEXER / SAYILAR Ali İhsan TARI İnş. Yük. Müh. F5 tuşu slaytları çalıştırmaktadır.
Diferansiyel Denklemler
1 Öğr. B.Aliyeva Öğr. B.Aliyeva Bilgisayar Yazılımı.
Bilgi Teknolojisinin Temel Kavramları
Programlama Dilleri Visual Basic C# C++ Pascal Delphi.
İnsan Kaynakları Bilgi Sistemleri
SİSTEM VE YAZILIM Bilgisayar sistemleri donanım, yazılım ve bunları işletmek üzere gerekli işlemlerden oluşur. Yazılım, bilgisayar sistemlerinin bir bileşeni.
Genel Kavramlar Bölüm - 1. YAZILIM Bilgisayara işlemler yaptırabilmek ve karar verdirtebilmek için yazılan kalıplara denir. Yazılım, genel olarak donanım.
Barış Ceviz Yazılım Geliştiricisi Yazılım, Yazılımcı, Yazılım Dilleri.
C Programlama Dili Bilgisayar Mühendisliği.
Bilgisayar Donanım ve Sistem Yazılımı
PROGRAMLAMA TEMELLERİ
Problem Çözme Yaklaşımları
Bilgisayar Bilimi Problem Çözme Süreci-2.
Bilgisayar Mühendisliğine Giriş
ALGORİTMALAR VE PROGRAMLAMAYA GİRİŞ
BİLGİSAYAR MÜHENDİSLİĞİNE GİRİŞ
Sunum transkripti:

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

YAZILIM GERÇEKLEŞTİRİMİ 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. Mevlüt inan

Çö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.

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

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.

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.

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.

Dillerin Tarihçesi 1960’larda yapısal programlama ortaya çıktı 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ı.

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

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.

İlk bilgisayar programları Assembly dili ile yazılmaktaydı İ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.

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

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.

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.

C++ ise C’nin nesneye yönelik uyarlamasıdır 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.

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

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.

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.

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.

Programlama Dillerinin Gelişimi

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

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.

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

İ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.

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.

FORTRAN-66 ilk standart sürüm iken FORTRAN-77 standart sürüm olmuştur 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.

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

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.

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.

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.

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

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.

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.

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.

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.

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

C programlama dili aslında işletim sistemleri için geliştirilmiştir 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.

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.

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.

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.

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.

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

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.

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

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.

LISP, simge ve listelerde ardışık bilgi işleme sağlamaktadır 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.

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

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.

PROLOG uzman sistemlerin geliştirilmesinde önemli yeri olan bir dildir 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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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

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.

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.

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.

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.

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

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

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.

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.

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…

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.

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.

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.

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.

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.

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

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

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.

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.

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.

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.

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

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

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.

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…

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:

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.

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

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

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

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.

Ç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.

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.

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

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.

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.

Ş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.

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

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.

Parametre geçirme teknikleri yeteri kadar hızlı yapılmalıdır 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.

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.

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.

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.

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.

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.

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.

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

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.

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

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.

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

Dillerin uygulama alanları 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.

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.

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.

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.

Ç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.

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.

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.

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.  

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.

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.

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

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. MERYEM ALTIN

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.

Normal olarak bir program ASCII biçimindedir 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.

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.

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

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.

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

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

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.

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

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.

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

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.

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

Bu nedenle derlenmiş koda göre daha yavaştır 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.

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

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.

Geliştirme Ortamı 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.

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.

Profesyonel Anlamda Bir Ana Sistemde Aşağıdaki Öğeler Bulunmalıdır: 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.

Ç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.

Kişisel çalışma alanları herbir proje için ayrı ayrı tutulmalıdır 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.

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.

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.

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.

Derleyici: Geliştirme için en temel araç derleyicidir 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.

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.

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.

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.

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

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.

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.

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.

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.

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.

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.

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.

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

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.

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

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. EMİNE DEMİR

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.

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

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 :

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.

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.

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

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.

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

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

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.

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 .

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

Bu protokol TCP/IP üzerine kurulur ve ORB lar arası iletişimi sağlar 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.

Halen mart 2004 tarihli CORBA 3 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) www.omg.org adresinde bulunmaktadır.

DDS 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.

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.

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.

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

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

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.

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

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

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

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.

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.

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

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

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

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

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

YÜRÜTME ALT YAPISI 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 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.

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.

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.

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

TİCARİ ARA KATMANLAR Ç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.

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.

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

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

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,

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

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.

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.

KODLAMA BİÇİMLERİ 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.

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.

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.

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.

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

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.

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.

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.

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

Anlam karmaşasına engel olunmalıdır 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.

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

Bu amaçla gerekirse bir dönüşüm tablosu kullanılmalıdır 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.

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.

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

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