10.DERS Yazılım Gerçekleştirme 1
Giriş: Bilgisayarlara yaptırılmak istenenleri, anlatabilmek için programlama dilleri kullanılır. Bir ihtiyaç veya konu doğrultusunda meydana getirilen tasarım önce programlama diline sonrada makine koduna dönüştürülerek çalıştırılır. Kod yazıcının iyi bir ürün çıkarmasında programlama dili seçimi önemli bir yer kaplar. 2
Dillerin Gelişimi Bilgisayarların ortaya çıkmasından bu yana yazlım geliştirme süreçlerinde bir çok çeşit programlama dili kullanılmıştır. Budiller beş ana nesil içerisinde gruplandırılabilir. 3
Birinci Nesil Diller Birinci nesil diller makine düzeyinde kodlamayı içermektedir. Yani bilgisayarların anladığı 0 ve 1 lerden oluşmaktadır. Sonrasında insanların kodlara anlam vererek Assembly denilen kod grupları ortaya çıkmıştır. Assembly belirli işleri yapan kodlardan oluşmaktadır. 4
5
İkinci Nesil Diller Bu diller 1950 den sonra gelişmeye başlamıştır. 1960 sonrasında ortaya çıkan modern dillerin temelini oluşturmaktadır. Bunlar arasında, FORTRAN COBOL ALGON BASIC Bu diller arasında matematik ağırlıklı kütüphaneleri sahip olmasından dolayı günümüzde de kullanılmaktadır. 6
Üçüncü Nesil Diller Bu nesil diller genellikle modern ve yapısal diller olarak adlandırılır ve üç gruba ayrılır. Genel amaçlı yüksek düzey diller: bu diller, mühendislik, bilim, gömülü sistemler ve kontrol sistemi geliştirilmesinde yaygın olarak kullanılmaktadır (PL/1,PASCAL, MODULA-2,Cve ADA vb) Nesneye yönelik yüksek düzey diller: Nesneye yönelik çözümleme ve tasarımı gerçekleştirmek üzere geliştirilmiş dillerdir. (C++, SMALLTALK, PASCAL(nesneye yönelik sürümü) ve Java) Özel Amaçlı diller: Belirli bir uygulama tipi için tasarlanmış dillerdir. 7
Dördüncü Nesil Diller Yordamsal olan ve olmayan yapıları birleştirici özelliklere sahip dillerdir. Diğer bir ifade ile kodlayıcı, koşulları ve onlara karşılık gelen yordamsal eylemleri tanımlamakta, aynı zamanda bu işlemin sonucunu bir başka yordamsal ayrıntı içinde kullanılabilmektedir. Bu nesil dilleri birkaç grup altında birleştirebiliriz. 8
Sorgulama Dilleri: veritabanı yönetimi uygulama alanlarında kullanılmaktadır. Kod üreticiler: Kod üreticileri kullanıcının daha üst düzey yapı ve anahtar sözcüklerle daha az miktarda kod yazarak sözdizimini üretmesidir. Türetme diller 9
Beşinci Nesil Diller Gelecekte yaygın olarak kullanılacak dillerdir. Şu anda araştırma aşamasındadır. Örneğin nesneye yönelik programlamadan sonra gelişen yeni bir yaklaşım da konuya yönelik programlamadır. 10
Programlama Dilleri: Geliştirilecek Uygulamaya yönelik olarak kullanılacak Programlama Dili seçilmelidir. Veri İşleme yönelik Uygulamalar (Cobol, Görsel Programlama Dilleri ve Veri Tabanları) Hesaplama ağırlıklı Uygulamalar (Fortran, C, Paralel Fortran ve C) Süreç ağırlıklı uygulamalar (Assembly, C) Sistem programlamaya yönelik uygulamalar (C) Yapay Zeka Uygulamaları (Lisp,Prolog) 11
Hazır Program Kütüphaneleri: Hemen hemen tüm programlama platformlarının kendilerine özgü hazır kütüphaneleri vardır Pascal *.tpu C *.h Java *.jar Günümüzde bu kütüphanelerin temin edilmesi internet üzerinden kolayca yapılabilmektedir. 12
CASE Araç ve Ortamları Günümüzde bilgisayar destekli yazılım geliştirme ortamları oldukça gelişmiştir. CASE araçları yazılım geliştirme sürecinin her aşamasında üretilen bilgi ya da belgelerin bilgisayar ortamında saklanmasına ve bu yolla kolay erişilebilir ve yönetilebilir olmasına olanak sağlayan bir yapıdır. 13
Kodlama Stili Yazılım hangi platformda geliştirilirse geliştirilsin belirli bir düzende kodlanması, yazılımın yaşam döngüsü açısından önem kazanmaktadır. Etkin kod yazılım stili için kullanılan yöntemler aşağıda verilmiştir.: Açıklama Satırları Kod Yazım Düzeni Anlamlı İsimlendirme Yapısal Programlama Yapıları 14
Açıklama Satırları Yazılan program belirli bir süre geçildikten sonra anlaşılması zorlaşır. Veya başka kollayıcıların yazılan kodu anlamasında sıkıntı oluşabilir. Bu sorununları ortadan kaldırabilmek için program kodlayıcı gerekli açıklama satırlarını programına eklemek zorundadır. 15
Kod Yazım Düzeni Programın okunabilirliğini artırmak ve anlaşıla bilirliğini kolaylaştırmak amacıyla açıklama satırlarının kullanımının yanı sıra, belirli bir kod yazım düzeninin dekullanılması gerekmektedir. for (i:=1 ; 50<i; i++) {a=1;a=a+c;} for (i:=1 ; 50<i; i++) { a=1; a=a+c; if (a<5) { c++; a=a+c; } } //Kötü kodlanmış //iyi kodlanmış 16
Anlamlı İsimlendirme Kullanılan tanımlayıcıların (değişken adları, dosya adları, veri tabanı tablo adları, fonksiyon adları, yordam adları gibi) anlamlı olarak isimlendirilmeleri anlaşıla bilirliği büyük ölçüde etkilemektedir. 17
Anlamlı İsimlendirme dikkat edilecek hususlar Karmaşıklığa yol açabilecek veya başkası tarafından okunduğunda anlaşılmayı güçleştirecek isimler kullanılmamalıdır. Evrensel bir değişken veya sınıf ismi aynı zamanda yerel olarak kullanılmamalıdır. Proje boyunca aynı isimlendirme yöntemi kullanılmalıdır. 18
Bazı dillerde büyük küçük harf duyarlılığı olunabilir. Bu duruma uygun isimlendirme yöntemi seçilmelidir. Uzun isimlendirmeden mümkün olduğunca kaçınılmalıdır. Değişken veya nesnelerde birden fazla sözcük kullanılacaksa _ işareti ile ayrılmalıdır. İsimlerin baş harfi rakam olmamalıdır. İsimlendirmede Türkçe karakter kullanılmamalıdır. 19
Yapısal Programlama Yapıları Yapısal programlama yapıları temelde içinde goto komutlarının bulunmadığı, tek giriş ve tek çıkışlı öbeklerden oluşan yapılardır. Bunlar temelde; Ardışıl işlem yapıları, Koşullu işlem yapıları, Döngü yapıları. Teorik olarak herhangi bir bilgisayar programının sadece bu yapılar kullanılarak yazılabileceği kanıtlanmıştır. 20
Olağandışı durum Çözümleme Olağandışı durum, bir programın çalışmasının, geçersiz ya da yanlı veri oluşumu ya da başka nedenlerle istenmeyen bir biçimde sonlanmasına neden olan durum demektir. Genelde kabul edilen; program işletiminin sonlandırılmasının bütünüyle program denetiminde olması gerekmektedir. Ama programda yapılan hatalar istemsiz sonlanmalara sebep olabilir. 21
Kod Gözden Geçirme Bir gazetede hiç bir yazı editörün onayı alınmadan basılamayacağı gibi, kod gözden geçirme olmadan dayazılım sistemi geliştirilemez. Kod gözden geçirme ile program sınama işlemleri birbirlerinden farklıdır. Kod gözden geçirme, programın kaynak kodu üzerinde yapılan bir işlemdir ve bu işlemlerde program hatalarının %3-5 lik bir kısmını yakalanabilmektedir. 22
Etkinlikler: Bilgisayara sistemlerinin etkinliği tanımlanan işi amacına uygun hız ve güvenlikle en ekonomik şekilde karşılanması ile değerlendirilir. Bunun için öz kaynaklar iyi bir şekilde kullanılması gerekir. Bilgisayar sistemlerinin öz kaynakları; bilgi işleme kapasitesine sahip makineler, bunların işlemcilerin zamanları, bellekleri ve saklama alanlarıdır. 23
PROGRAMLAMA STANDARTLARI Kodlamanın içermesi gereken ana özellikler: 1. Her modül başlangıcında aşağıdaki kayıt bilgilerinin olması gerekmektedir. Programcının ismi, Modülün tamamlandığı tarih, Modülün çağırdığı diğer modüller, Bu modülün hangi modüller tarafından çağrıldığı, Kullanılan değişkenlerin bir listesi, Modülün ne iş yaptığı ve tasarım dokümanları bölümlerine referans bilgileri. 24
2. İyi bir programlama standartı kodun fiziksel olarak sayfa üzerinde nasıl görüneceğini tarif etmelidir. 3. Maximum iç döngülerin sayısı. 4. Değişkenlerin isimlendirilmesinde hangi stratejilerin takip edileceği, max. değişken isimleri uzunlukları, isimlemede tasarım ile olan bağlantı açıklanmalıdır. 25
5. Aritmetik ifadelerde kullanılabilecek max. +,-, ve * işlemlerinin sayısı. 6. Bir modülün içerebileceği max. Satır sayısı. 7. Modüller idealde tek bir fonksiyon veya işlem içermelidir. Eğer birden fazla içermesi gerekiyorsa bunların sayısı ve hangi durumlarda bunun gerçekleşebileceği belirtilmelidir. 26
Programlama aşamasında üretilecek dökümanlar: Yazılım kurma ve kullanma kılavuzu, Yazılım versiyon dokümanlarıdır. Bu dokümanların teknik değerlendirilmeleri yapılmalı ve yayımlanmadan önce yetkili personel tarafından onaylanmalıdır. 27