Merhaba bugün Yazılım Mühendisliği nedir? Ne iş yapar? gibi temel ve teknik kavramlardan bahsedeğim.
Yazılım Mühendisliği: Yazılım Mühendisliği kavramı ilk olarak 1968 yılında Almanya’da gerçekleştirilen NATO konferansında kullanılmıştır. Türkiye’de ise bu kavram Bilgisayar mühendisliğinin içerisinde bir ders ve yüksek lisans alanı olarak kalmıştır. 2010 yılındaysa Yazılım Mühendisliği bilim dalı olarak ülkemizde de yerini almıştır.
Devlet üniversitesinde ilk olarak Fırat Üniversitesinde 2010 senesinde Teknoloji Fakültesi içerisinde kurulmuştur.
Yazılım Mühendisliği ile Bilgisayar Mühendisliğini farkları nedir?
Yazılım Mühendisleri eğitim hayatı sürecinde sürekli olarak yazılım geliştirme süreçlerine yönelik olarak eğitim almaktadır. Bu eğitim sürecinde donanım dersleri sayısı en aza indirgenmiştir. Genel olarak Bilgisayar Mühendisleri yazılım ve donanım derslerini aynı anda alırken Yazılım Mühendisleri sadece yazılım geliştirme alanına yönelirler. Biz bugün daha çok Yazılım Mühendisliği üzerinde duracağız.
Yazılım Mühendislerinin bilgi alanları yazılım gereksinim analizi, yazılım tasarımı, yazılım gerçekleştirme, yazılım sınama ve bakımı, yazılım geliştirme süreçlerinin yönetilmesinden oluşur.
IEEE Tanımı (1993) Yazılım Mühendisliği tanımı ise: Sistemli, düzenli, ölçülebilir bir yaklaşımın yazılım geliştirmede, yazılımın işlenilmesinde ve bakımında uygulanmasıdır.
Yazılım üretiminin mühendislik yöntemleriyle yapılmasını öngören ve bu yönde;
- yöntem,
- araç
- teknik ve
- metodolojiler üreten bir disiplindir.
Peki niçin yazılım mühendisliği gibi bir alana ihtiyaç duyuldu?
Günümüzde geliştirilen yazılımlar küçük çaplı projeler olmaktan çıktı. Yıllar sürecek kompleks projelerin geliştirilmesi, sisteme entegre edilmesi ve yönetilmesi ihtiyacı ortaya çıkınca bunları bir disiplin altında geliştirmek istenildiği için yazılım mühendisliği bilim dalı oluşturuldu.
Peki Yazılım Mühendisi kimdir?
Yazılım Mühendisi en basit şekilde yukarıda tanımladığımız alanın mühendisidir. Temel hedefi ise üretimin en az maliyet ve en yüksek nitelikte yapılmasını sağlamaktır.
- Programcı değildir. Ancak programcının tüm yeteneklerine sahiptir.
- Yazılımın daha çok mantıksal boyutuyla ilgilenir.
- Sistem analisti değildir.
- Sistem tasarımcısı değildir.
- Kısaca Yazılım yaşam döngüsünün her alanında çalışabilecek potansiyele sahip kişidir.