Yazılım mühendisliği, yazılım sistemlerinin geliştirilmesini, işletilmesini ve bakımını sistemli yöntemlerle ele alan mühendislik alanıdır. Program yazmayı kapsamakla birlikte gereksinimlerin anlaşılması, tasarım, sınama, kalite yönetimi ve değişikliklerin denetlenmesi gibi daha geniş süreçlerle ilgilenir. IEEE Computer Society'nin SWEBOK çalışması, alanın ortak bilgi birikimini düzenleyen başvuru kaynaklarından biridir. [1]
GELİŞTİRME SÜRECİ
Gereksinim analizi, sistemden beklenen işlevleri ve kısıtları belirler. Tasarım, bunların bir yazılım yapısına dönüştürülmesini sağlar. Uygulama ve test aşamalarında çalışan bileşenler geliştirilir, beklenen davranışla karşılaştırılır. Bu faaliyetler her projede tek yönlü ve değişmez bir sırayla yürümek zorunda değildir; yinelemeli biçimde de gerçekleştirilebilir. [1][2]
YAŞAM DÖNGÜSÜ
Yazılımın kullanıma sunulması, mühendislik çalışmalarının sonu değildir. Hataların giderilmesi, yeni gereksinimler ve değişen çalışma ortamları bakım çalışmalarını gerekli kılar. Teknik kararların belgelenmesi ve ekip içi iletişim, sistemin anlaşılabilirliğini destekler. Başarı yalnızca kodun çalışmasıyla değil, kullanıcı gereksinimlerine uygunluk ve sürdürülebilir kaliteyle değerlendirilir. [1][2]
