Mühendislik
Okunan
Yazılım Mühendisliğine Giriş
0

Yazılım Mühendisliğine Giriş

by Özgür Eralp01 Haziran 2004

2004 yılının ortalarına geldiğimiz bu günlerde, bu alanda geçirdiğim 3 sene içerisinde ilk saptamam şu şekildedir. Birçok insanın düşündüğünün aksine bir yazılım mühendisi, bilgisayarının karşısında sürekli elleri klavyede kaynak kodunun üzerinde çalışmaz. Belki bazılarınız çok şaşırtacaktır ama birçok profesyonel organizasyonlarda yazılım mühendisinin kaynak kodunu oluşturmaya harcadığı süre işe harcadığı toplam sürenin 5’te 1’ini geçmemektedir.

Profesyonel yaklaşımlarda, yazılım kaynak kodunun oluşturulması yazılım geliştirme süreci içerisindeki adımlardan sadece bir tanesidir. Ve bu süreç içerisindeki adımlardan en az vakit harcananında kodlama safhası olduğuda bir gerçektir. Bununla beraber, eğer yazılım mühendisleri sürekli sadece kodlama yaptıkları kabul edilse idi, yazılım evlerinde sürekli her gün binlerce satır kod üretiliyor olurdu.
Günümüzde yazılım proje büyüklüklerinin ulaşmış olduğu yüksek değerler karşısında, ülkemizde ve dünyada yazılım mühendisliği kavramında zorunlu yenilenmeler yaşanmakta ve bu kavramdan yeni kavramlar ortaya çıkmaktadır. Bu konuda maalesef ülkemiz şu anda belli başlı ülkelerdeki gelişmeleri biraz geriden takip etmekle birlikte, bu alanda kıpırdanmaların olduğuda gözlenmektedir. Çeşitli üniversitelerde enstitüler kurulmakta, bu alanda yapılan tezlerin sayıları sürekli artmaktadır. Konferans, seminer ve çalıştaylar düzenlenmekte, ve bu çalışmalara özel sektörden yoğun katılım sağlanabilmektedir.
Yazılım projelerinin büyüklüklerinden örnek vermek istersem, en çarpıcı örneklerden biri, Boeing 777 tipi uçakların tamamen yazılım ile uçtukları ve yaklaşık 4 milyon satır kod içerdiği bilinmektedir. Diğer ilgi çekici örnek ise, BMW 7 serisinin 20 MB’lık hesap gücününün olduğudur. Bu durumda, artık yazılım ürünlerinde yüzlerce fonksiyonlardan, modüllerden ve sonuçta binlerce satır koddan bahsedilmektedir. Her yazılım organizasyonunun temel amacı, yazılım ürününü belirlenen zaman ve bütçe içerisinde tüm gereksinimleri sağlayarak ortaya çıkarmaktır. Bunu gerçekleştirebilmek için planlı şekilde yazılım sürecini uygulamak ve gelişimi control etmek gerekmektedir.
Yazılım geliştirme süreci nasıl işler?
Yazılım ürünü geliştirilirken izlenecek süreci basit olarak 4 kısma ayırabiliriz.
· Analiz,
· Tasarım,
· Gerçekleştirme ve
· Test ve/veya Entegrasyon.
Yukarıda bahsedilen fazlar, tamamen temel ve uygulanması gerekenlerdir. Son safhada yer alan ‘Entegrasyon’, eğer sistem geliştiriyor iseniz belki sizinde en çok işçiliğinizi harcamanız gerekecek bir safhadır.
Sistem projeleri sadece yazılım bileşenlerinden de oluşabileceği gibi, hem yazılım hem de donanım bileşenlerinden oluşabilmektedir. Yazılım ürününü kodlamaya başlamadan önce, mutlaka analiz yapılıp, ürünün gereksinimlerinin ortaya çıkarılması gereklidir. Daha sonra, belirlenen bu gereksinimler göz önünde tutularak tasarım yapılmalı, ve bu safhaların sonrasında kodlamaya geçilmelidir. Sonuçta ortaya çıkan yazılım ürünü mutlaka test edilmeli, test sonucunda belirlenen sorunlar giderilmelidir.
Yazılım projesinin başarılı kabul edilebilmesi için hangi şartları sağlaması gerekir?
Bu sorunun cevabı birçok kaynakta şöyle verilmiştir. Başarılı yazılım projesinin sahip olması gereken temel özellikler :
· Programa bağlı tamamlanması,
· Belirlenen bütçe içinde tamamlanmış olması,
· Kullanıcı gereksinimlerini karşılıyor olması ve
· Kabul dışı bir hata veya kusur içermemesidir.
Tabiki ürünün teslim ederken bundan nasıl emin olunacağı veya bu konuda garanti verilebileceği ayrı bir tartışma konusu olabilir. Bu konuda, Standish Group’un 1995’te 800 organizasyonda yapmış olduğu araştırmanın sonuçları oldukça çarpıcıdır. Sonuçlara göre, projelerin %57’si tamamlanmış fakat planlanan zaman değerleri ortalama %222 ve bütçe değerleri ortalama %189 aşılmıştır.
Bu anlatılanlardan sonra ‘yazılım yönetimi’ kavramını tanımlamaya çalışırsak, ‘organizasyonların temel hedeflerini, beklentileri ve gereksinimleri karşılamak için çeşitli tekniklerin, araçların, becerilerin ve bilginin proje aktiviteleri üzerinde uygulanmasıdır’ denebilir.
İlerleyen yazılarda, yukarıda yer alan birçok noktadan daha ayrıntılı ve kapsamlı bahsedeceğiz. Görüşlerinizi bana e-posta yolu ile ıletebilirsiniz.

About The Author
Özgür Eralp
Özgür Eralp
Yorumlar

Yanıt Bırak