Ana Sayfa
Duyurular
Yazılım Mühendisliği Tanıtımı

Yazılım Mühendisliği Tanıtımı

Yazılım mühendisliği bölümü karmaşık yazılım problemlerini analiz edebilen, çözüm olacak sistemleri tasarlayan ve onları projelendirerek yöneten mühendisler yetiştirir.

Yazılımlar uygulama yazılımı ve sistem yazılımı olarak iki büyük gruba ayrılabilir. Uygulama yazılımlarına örnek olarak kurumsal yönetim sistemleri, bilgi sistemleri verilebilir. Sistem yazılımına örnek olarak da işletim sistemleri, derleyiciler verilebilir. Yazılım mühendisliği bölümü bu yazılımları analiz edebilen, tasarlayabilen ve geliştirebilen bireyler yetiştirmek üzere eğitim vermektedir. Bu nedenle:

  • Algoritma analizi/tasarımı,
  • Programlama dilleri, teknolojileri eğitim planında önemli konulardandır.  

Yazılım projelerinde genelde çok sayıda yazılımcı görev almaktadır. Bölüm ders planında, her ölçekte yazılım projelerini geliştirmek ve etkin bir şekilde yönetmek için de dersler bulunmaktadır.

Basit bir örnek:

Güncel bir bankacılık yazılımını ele alalım. Bu sistemlerde kullanıcılar web veya mobil bir uygulama üzerinden her türlü bankacılık işlemleri yapılabiliyor. Diğer taraftan yöneticiler de anlık olarak önemli parametreleri yine web veya mobil uygulama üzerinden izleyebilmeliler.

Böyle bir sistemin geliştirilmesi aşağıdaki konularda bilgi/beceri/yetkinlik gerektirir:

  1. Temel olarak bilgisayar sistemleri ve network konularında bilgi,
  2. Dağıtık bilgisayar sistemleri hakkında bilgi ve yönetebilme becerisi,
  3. Algoritma tasarım yetkinliği, mevcut algoritmaların analizi ve kıyaslama becerisi (özellikle dağıtık algoritmalar),
  4. Aşağıdaki kısımlar için gerekli programlama dilleri hakkında ileri düzeyde bilgi, beceri yetkinlik:
    1. Veri tabanı: Veri depolamak ve istenildiğinde hızlı bir şekilde erişim için yazılımlar. Bu amaçla veri tabanı analizi, tasarımı ve kodlanması (SQL dili, veri dağıtım modüllerinin bilinmesi),
    2. İş katmanı: Sunucu sistemlerde çalışacak yazılımlar (Java, C-Sharp veya Python programlama dilleri ve kütüphaneleri),
    3. Sunum kısmı: Tarayıcıda çalışacak yazılımlar (HTML, CSS, Java script dili ve kütüphaneleri)
  5. Tüm bunlar bir araya getirilerek:
    1. Kaynakları (bilgisayar donanımlarını, networku) etkin kullanan,  
    2. Standartlara uygun ve güvenli sistem oluşturmak

Diğer bir örnek:

Yazılım projesi örneğin otomotivde kullanılacak özel bir bilgisayar sistemi için işletim sistemi geliştirilmek olsa, şu bilgi, beceri ve yetkinlikler gerekir:

  1. Bilgisayar donanımı (işlemci, bellek, giriş çıkış birimleri) hakkında detaylı bilgi,
  2. Algoritma tasarım yetkinliği, mevcut algoritmaların analizi ve kıyaslama becerisi,
  3. Aşağıdaki kısımlar için gerekli programlama dilleri hakkında ileri düzeyde bilgi, beceri yetkinlik:
    1. C ve/veya C++ programlama dilleri üzerinde son derece etkin programlama,
    2. GDB gibi yazılım araçları ile hata ayıklama becerisi,
    3. İşlemciye özel assembler dili bilgi ve becerisi,
    4. Donanım üzerinde ilk çalışma, doğruluk ve performans testlerinin yapılması,
  4.   Tüm bunlar bir araya getirilerek:
    1. Kaynakları (işlemciyi, belleği ve giriş/çıkış aygıtlarını) etkin kullanan,  
    2. Standartlara uygun ve güvenli sistem oluşturmak.

Bölümümüz tüm bu konularda yetkin mühendisler yetiştirmek için oluşturulmuştur.