Yazılım mühendisliği, kurulduğu 1940'lardan 2000'lere kadar sürekli evrimleşmiştir. Uygulamalar da evrimleşmişlerdir.
1945'ten 1965'e: Kökenleri
Yazılım Mühendisliği terimi ilk kez 1950'lerin sonunda 1960'ların başında görülmeye başladı. Programcılar zaten inşaat, elektrik ve bilgisayar mühendisliklerini biliyorlardı ve yazılım için mühendisliğin ne olduğunu tartışmaya başladılar.
NATO Bilim Komitesi, 1968'deki ve 1969'daki Yazılım Mühendisliği üzerine bu alana destek olan iki konferansa (Garmisch, Almanya) destek oldu. Çoğu kişi bu konferansların yazılım mühendisliğindeki resmi başlangıç olduğuna inanır.
1965'ten 1985'e: Yazılım krizi
1960'lar, 1970'ler ve 1980'lerdeki yazılım geliştirmedeki sorunları tespit eden yazılım krizleri Yazılım Mühendisliğini teşvik edici unsur oldu. Birçok yazılım tasarısı bütçeyi aştı ve düşünülen zamanı geçti. Bazı tasarılar fiziksel zarara neden oldu, bir kesim tasarılar ise ölümlere bile neden oldu. Yazılım krizi önceleri verimlilik açısından tanımlanmış olsa da sonradan kaliteyi vurgulama ön plana geçti. Bazıları ise yazılım krizi kavramını yeterli kalitede programcı kiralayama karşılığı olarak kullandı.
Maliyet ve bütçenin aşılması: OS/360 işletim sistemi klasik bir örnektir.
Fiziksel zarar: Yazılım kusurları fiziksel zararlara yol açabilir. Kötü yazılım güvenliği ise kırıcılara (hacker) kişisel bilgileri çalmasına izin verir, bu paraya, şöhrete ve zamana mal olur.
Yaşam ve ölüm: Yazılım kusurları öldürebilir. Radyoterapi makinelerinde kullanılan bazı gömülü sistemler başarısız oldu, bu yüzden makineler hastaları öldürücü dozlarda radyasyona maruz bıraktı. Bu başarısızlıkların en ünlüsü Therac-25 olayıdır.
Büyük gelişmeler
Yazılım Mühendisliğindeki evrimin önemli olduğu bazı alanlar vardır:
Meslek olarak ortaya çıkması: 1980'lerin başlarında Yazılım Mühendisliği, bilgisayar bilimleri ve geleneksel mühendisliğin yanında gerçek bir meslek olarak ortaya çıktı.
Süreç ve Yöntembilim: Süreç ve yöntembilim Yazılım Mühendisliğinin büyük bir parçası oldu.