Skip to content

ARGE Akademi

Loading...

MooFx1

Haberler

Windows 7'ye Ne Kadar Hazırız? İngiltere merkezli ChangeBase adlı şirketin yaptığı araştırma, Microsoft’un yeni nesil işletim sistemi Windows 7’ye ne kadar hazır olduğumuzu sorgulatacak türden sonuçları beraberinde getiriyor.  Devamını oku...

Android Yüklü Netbooklar Çok Yakında Netbook pazarındaki Windows XP hegemonyasını derinden sarsacak haberler yayılıyor. HP ve ASUS piyasaya çıkarmayı düşündükleri ucuz netbook alternatiflerinde Android işletim sistemi kullanmayı planlıyor.  Devamını oku...

Bankaların Tercihi Eczacıbaşı Bilişim Gelirler İdaresi Başkanlığı’nın (GİB) vergi alacaklarının tahsili için geliştirdiği E-haciz Projesi’nde, 16 banka GİB ile yürüttüğü yazışmaların yasallığı ve güvenliği için, Eczacıbaşı Bilişim’in e-imza yazılımını seçti.  Devamını oku...

MagmaLinux 9.3 Linux işletim sistemi kullanmaya yeni başlayacak bilgisayar kullanıcılarının korkulu rüyası kurulum problemine vaat ettiği kurulum kolaylığıyla çözüm olmayı hedefleyen MagmaLinux huzurlarınızda.  Devamını oku...



Excel'de Kritik Güvenlik Açığı Güvenlik yazılımları üreticisi Symantec, bilgisayar kullanıcılarının en çok yararlandıkları ofis yazılımlarından olan Microsoft Excel'de yüksek risk taşıyan bir güvenlik açığını tespit ettiklerini duyurdu.  Devamını oku...

Burdasınız :    Ana Sayfa arrow Editörden arrow .: Sinan KAHVECİ
Sinan KAHVECİ
Programlamaya Giriş Yazdır E-posta
Cumartesi, 25 Ekim 2008
Sinan KAHVECİGünümüzde yediden yetmişe hepimiz, farkında olarak ya da olmayarak bir şekilde bilgi teknolojilerinin bir ucundan tutmaktayız. Mazinin laboratuarlara sığmayan cihazlarının cebimize kadar girdiğini düşündüğümüzde bu durum bize çok da olağan dışı gelmese gerek. Peki, akıl almaz bir süratle gelişmeye devam eden ve bu denli hayatımızda yer edinen sistemleri ne kadar tanıyoruz? 

Masalarımızdaki kişisel bilgisayarlardan en ileri işlemci yeteneğine ve özelliklere sahip süper bilgisayarlara, cep telefonlarından trafik lambalarına kadar büyük bir ahenk ile işleyen bu sistemlerin birbirinden ayrılmaz iki temel unsuru vardır: Donanım ve Yazılım…

Donanım Nedir?
Genel anlamda donanım, bir cihazın yazılımının dışında kalan fiziksel birimlerine verilen addır. Bilgisayarlardan otomobillere, elektronik ev eşyalarından sanayideki üretim tezgahlarına kadar çok farklı alanlarda örneklerini görmek mümkündür. Biz bu yazı dizisi boyunca donanımı İngilizce hardware e karşılık gelen “bilgisayar donanımı” olarak ele alacağız.

Yazılım Nedir?
Donanımı kullanılabilir kılan, çeşitli görevleri yerine getirmek ve var olan bir problemi çözmek maksadıyla tasarlanan programların tümüne verilen isimdir. Cep telefonlarımızdan tutunda dijital termometrelere kadar pek çok ürün içersinde bir çeşit yazılım barındırmaktadır. Bu yazı dizisi boyunca bizim ilgileneceğimiz kısım ise bilgisayar yazılımları(software) olacaktır.
 
Yukarıdaki tanıma bakarak yazılımı yalnızca bir program ya da programlar kümesi olarak algılamamak gerekir. Çünkü yazılım kendisini oluşturan bileşenler olan mantık, veri ve insan ile bir bütündür. Programlama ise tüm bu bileşenlerin belirli oranlarda bir araya getirildiği yazılımın üretim sürecine verilen addır.

Programcılar programlamayı gerçek hayata benzetirler. Dolayısıyla bir program yazmak veya bir problemi çözmek için öncelikle komutları unutmak ve çözümü gerçek hayatta yapıyormuş gibi düşünmek gerekir. Çünkü komutlar sadece araçtır ve programlama ile kodlama birbiriyle karıştırılmamalıdır.

Aşağıda bilgisayar yazılımı yardımıyla çözülecek bir problemin geçmesi gereken aşamalar görülmektedir.
 
Yazılım Geliştirme Süreci
Şekil-1: Yazılım geliştirme sürecini oluşturan aşamaların zincirleme bir şekilde birbirlerine etki ettiklerine dikkat ediniz.

 

Yazılım Geliştirme(üretim) Süreci:
1) Problemin tanımı & Planlama
2) Çözümleme & Analiz: Çözüm yolunun tespiti, sistem analizinin yapılması
3) Tasarım: Algoritmanın hazırlanması, akış diyagramlarının çizilmesi, arayüzler vb.
4) Gerçekleştirim: Mantığın bir programlama dili vasıtasıyla eldeki veriler ışığında kodlanması
5) Test: Üretilen yazılımın test edilmesi
6) Uygulama: Testleri tamamlanarak olgunlaşan yazılımın kullanılmak üzere sunulması

Süreç içersindeki maddelerin içeriği programcı tarafından eldeki problemin büyüklüğüne, programcının deneyimlerine ve olaya bakış açısına göre detaylandırılabilir veya daraltılabilir. Örneğin büyük ölçekli bir projede planlama aşaması proje kaynakları, proje maliyetleri ve proje ekip yapısı gibi argümanların bu kapsamda değerlendirilmesiyle zenginleştirilebilirken, küçük bir uygulamada böyle bir detaylandırma yapmaya gerek duyulmayabilir. Benzer durum yazılım geliştirme sürecinin diğer aşamaları içinde geçerlidir.

Gerçek anlamda programlama yapabilmek için referans alabileceğimiz temel kavramlar hakkında bilgi sahibi olduğumuza göre basit bir problem üzerinden konumuzu örneklendirelim. Böylelikle yukarıda öğrendiklerimizin pratikteki karşılıklarını ve ayrıntılarını görme fırsatını bulalım.

Örnek: Girilen iki sayının toplamını bulan programı yazalım.

1.Aşama: Bir problemin çözümünde ilk adım olan problemin tanımı, çözümü aranan sorunun açık bir şekilde ifade edilmesidir. Örneğimizde problemin ne olduğu net bir şekilde belirtilmiştir. Problemin kapsamı itibariyle de daha fazla detaylandırmaya gerek yoktur.

2.Aşama: Bu aşamada problem hakkında analiz yaparak genel anlamda çözüm yolunu tespit etmeye çalışalım. Buna hangi bilgilerin girdi olarak alınacağı ve çıktının ne olacağından başlayabiliriz. Örneğimizde bize iki adet sayının girileceği bilgisi verilmiş. Çıktı ise bir adet ve girilen iki sayının toplamı olmak zorunda.

3.Aşama: Yeterince iyi tasarlanmamış bir programın başarılı olması söz konusu değildir. Bu sebeple bu aşamada kullanılacak olan araç ve metodolojilerin iyi seçilmesi ve gerekliliklerinin yerine getirilmesi şarttır. Biz problemimizin seviyesini göz önünde bulundurarak tasarım aşaması için “Algoritma” ve “Akış Diyagramı” argümanlarından faydalanacağız

 

Algoritma Nedir?
Algoritma, bir problemin çözümünde izlenecek yolun (girdilerin, atamaların, işlemlerin, kararların, döngülerin, çıktıların vb.) ve bu yolun icra edildiği sıranın oluşturduğu akışın normal konuşma dili ile ifade edilmesidir. Algoritma hazırlarken konuşma dilinin kullanılmasındaki amaç, akışı oluşturan adımları net bir şekilde ifade etmek ve programlama dillerinden bağımsız kılmaktır.

Algoritmalarda her adıma mutlaka bir satır numarası verilir. Akışı oluşturan satırlarda kullanılan ifadeler kısa, öz ve anlaşılır olmalıdır. Bu ifadeler, bilgisayara yapılması istenen işlemleri söylediğinden geleneksel olarak emir kipinde kullanılır. Tüm algoritmalar “Başla” adımı ile başlayıp, “Dur” adımı ile sonlanır. İşlem sırasının programın mantığına uygun olmasına dikkat edilmelidir.

Şimdi programımızın algoritmasını oluşturalım:
Adım 1) Başla,
Adım 2) Birinci sayıyı(sayi1) gir/oku,
Adım 3) İkinci sayıyı(sayi2) gir/oku,
Adım 4) İki sayıyı topla(toplam=sayi1+sayi2),
Adım 5) Sonucu(toplam) yazdır,
Adım 6) Dur.

Akış Şemaları (Flowchart)
Algoritmanın içeriğinin geometrik şekillerle görsel olarak ifade edilmiş şekline "akış şeması" adı verilir. Geometrik şekiller programın akış yönünü ve işlemler arasındaki bağlantıları açıkça belirten oklar ise desteklenir. Dolayısıyla algoritma ile akış şeması arasındaki fark, problemin çözüm yolunun ifade ediliş biçimidir.

Akış şemalarının sahip olduğu görsellik çözümleme/analiz aşamasının çok daha iyi anlaşılabilmesini sağladığından, gerçekleştirim aşamasının büyük ölçüde kolaylaşmasına ve kısalmasına neden olur.

Akış şemalarında en çok kullanılan standartlaşmış şekiller ve açıklamaları aşağıda verilmiştir.

 

Akış Şemaları(flowchart)
 

 

Öyleyse şimdi algoritmamızın akış şemasını oluşturalım: 

Örnek Akış Şeması
 

4.Aşama: İyi tanımlanmış ve planlanmış, çözümleme/analiz aşaması algoritma ve akış diyagramıyla desteklenerek çözüm yolu ortaya konmuş bir problem için gerçekleştirim aşaması artık son derece kolaydır. Çünkü gerçek zorluk bir problemin çözümü için gereken işlem adımlarını düzgün şekilde tarif edebilmektir. Problemimizin çözüm yolunu belirlediğimize göre yetkin göreceğimiz bir programlama diliyle programımızı kodlayabiliriz demektir. Biz bu örnek için C dilini tercih ettik.

Örnek Kod 

 

5.Aşama: Bir programı test etmenin birçok yöntemi vardır. Bu yöntemler programın büyüklüğüne göre çeşitlendirilebilir. Örneğimizde yazdığımız program çok basit olduğundan uygun girdilere vereceği doğru çıktıları gözlemlemek test için yeterli olacaktır.

Örnek Çıktı 

 

6. Aşama: İlk beş aşamanın başarılı bir şekilde tamamlanmasıyla programımız artık kullanıma sunulabilir.

 

Sonuç
Programlama mantığı kodlara, dolayısıyla programlama dillerine bağlı kalmaksızın öğrenilir. Evet, bir programlama dili öğrenilerek o dilde kod yazma öğrenilmiş olunabilir. Ancak programcı olmak için programlamayı öğrenmek gerekir.

 

Referanslar 

http://tr.wikipedia.org
http://tr.wikibooks.org
Arifoğlu A., Doğru A., “Yazılım Mühendisliği”, SAS Bilişim, 2001
Fairley R., “Software Engineering Concepts”, McGraw Hill, 1985
Çelikkol S., “Programlamaya Giriş ve Algoritmalar”, Akademi, 2001

E-Posta İletişim : Bu mail adresi spam botlara karşı korumalıdır, görebilmek için Javascript açık olmalıdır  

Yorumlar (1) | Devamını oku...