Subscribe:

24 Eylül 2013 Salı

YAZILIM MÜHENDİSİ

Yazılım Mühendisini, bilişim teknolojilerinin yazılım yaşam süreçlerini yapılandıran ve bunları sisteme entegre edip, aktif kullanıma sunulmasında başrol oynayan kişidir diye kısaca tanımlayarak konuya giriş yapayım.
Öncelikle mühendislik kavramına değinmek istiyorum. Mühendis, en az maliyetle en iyi ürünü ortaya çıkarması gereken kişidir bana göre.  Modern anlamda ise mühendis kavramını şu şekilde tanımlamışlar. "Bilim insanlarının ürettiği teorik bilgiyi tekniker ve teknisyenlerin uygulayabileceği pratik bilgiye dönüştürebilen kişidir." Yukarıdaki tanımdan yola çıkarsak yazılım mühendisi, gerçekleştirilecek olan yazılımın iskeletini oluşturan proje ekibi içerisindeki diğer kişilerin koordinasyonunu sağlayan kişidir.
Hazır yeri gelmişken yanlış anlaşılan bir algıdan da bahsedeyim. Yazılım mühendisi sadece programcı değildir. Ancak programcının tüm yeteneklerine sahip olmalıdır diye düşünüyorum. Programcı, ağırlılkı olarak kodlama, sınama işi ile ilgilenir. Yazılım mühendisinin işi daha çok insanlarla ilişkiyi gerektirir. İnsanlardan aldığı talepler doğrultusuna göre ortaya çıkacak yazılımın planlamasını yapar. Yazılımın daha çok mantıksal boyutuyla ilgilenir. Yazılım mühendisi yazılımın tüm aşamalarında yer alır.
Peki bu meslek dalı nereden çıkmış. Araştırdığımızda yazılım mühendisliği kavramı ilk olarak 1968 yılında Almanya'daki NATO toplantısında gündeme gelmiş. Bu disiplini alan kişilerse yazılım mühendisi olarak ünvanlaştırılmış. Eskiden(Günümüzdede devam etmekte) bu ünvana sahip kişiler elektrik-elektronik mühendislerinden oluşuyordu. 2000'li yıllara doğru bilgisayar mühendisleri bu ünvanı kullanabiliyorlardı. Günümüzde artık Türkiye'de de olmak üzere bir çok üniversitede bir ana bilim dalı olarak sektöre kişiler yetiştirmektedir.
Görevlerinden de bahsedecek olursam...
  • Söz konusu üretimin en az maliyet ve en yüksek nitelikli biçimde yapar.
  • Hazırlanacak yazılımla ilgili müşteri ilişkilerini kurar.
  • Müşteriden gelen talebe göre analiz ve tasarım yapar.
  • Program yazar,test eder.
  • Yazılım bittikten sonra yazılımı kullanacak kişilere yazılım ile ilgili eğitimleri verir
Görev tanımı Tübitak Bilgem'de şu şekilde tanımlanmış.
"Yazılım geliştirme projelerinin; analiz, tasarım, kodlama, birim ve entegrasyon faaliyetleriyle ilgili olarak kendine verilen görevleri yerine getirmek, yazılım birimlerinin doğrulama (test, gözden geçirmeler, vb.) ve geçerleme faaliyetlerinde görev almak, gerçeklenmesinde görev aldığı yazılım birimlerine ilişkin olarak doğrulama ve geçerleme faaliyetleri sonucunda ortaya çıkan uygunsuzlukları gidermek, sorumlu olduğu yazılım kodu ile birlikte veya yazılım koduna ilişkin olarak üretilmesi gereken her türlü dokümantasyonu hazırlamak, kendisine atanan yazılım birimlerine ilişkin yeterlilik testleri ve kabul-muayene faaliyetlerine yerinde destek vermek, kendisine atanan yazılım birimlerinin kesintisiz ve en etkin şekilde kullanımına yönelik olarak kullanıcılara yerinde destek vermek ve kullanıcıların ihtiyaç duyduğu eğitimleri sağlamak, görevinin gerektirdiği diğer yazılım destek süreçleri kapsamında üzerine düşen sorumlulukları yerine getirmek."
Artık günümüzde yazılımın uygulanamayacağı yer yok gibi. Dikkat edildiğinde çevremizdeki çoğu teknolojik aletlerin yapısında karmaşık yazılımlar yer almaktadır. "Akıllı" diye tabir edilen birimler, çeşitli yazılımlar ve yapay zeka yöntemlerinin birlikte kullanılmasıyla olagelmiştir.
Bilgisayar dünyası, baktığımızda kaba tabirle 2 şekilde kategorize ediliyor. Yazılım ve Donanım. Bilgisayarın ilk çıktığı yıllara baktığımızda sektör donanım ağırlıklıydı. Donanım maliyeti yazılımdan kat kat fazlaydı. Fakat günümüzde tam tersi bir durum sözkonusu. Donanım maliyetleri yazılımdan az olmakla beraber dönem dönem  giderek düşme eğilimi göstermektedir. Yazılım ihtiyaçları giderek artmakta, maliyet ve karmaşıklıkta buna paralellik göstermektedir. Karmaşık yazılımları gerçekleştirmek ve bakımını yapmak oldukça zor ve masraflı. Bu yüzden yazılımlar, yazılım mühendisleri tarafından istenilen düzende planlı bir proje şeklinde gerçekleştirilmektedir. Bu tertipli, düzenli geliştirme planına "yazılım geliştirme süreci" adı verilmektedir. Bu konuya da ayrı bir yazıda değinmek istiyorum.
Bu yazımda şu an öğrencisi konumunda olduğum yazılım mühendisliği disiplinin temel yapı taşı olan yazılım mühendisi kavramına değinmeye çalıştım. İnşallah ülkemizde de bu alanda kaliteli ve açığı kapatacak olan kişiler en doğru bir şekilde yetişir.

0 yorum:

Yorum Gönder