Yazılım mühendisliği, yazılımı rastgele kod toplamak yerine gereksinimden bakıma kadar yönetilen bir süreç olarak kurma işidir. Kısacası, çalışan kod üretmek kadar doğru problemi çözmek ve çözümü sürdürülebilir tutmak da bu alanın parçasıdır.
Bu yazıda, yazılım mühendisliğinin ne anlama geldiğini, kodlamadan nerede ayrıldığını ve bir yazılım geliştirme işinde hangi aşamaları kapsadığını sade biçimde açıklayacağım. Ayrıca “iyi yazılım”ın sadece çalışan yazılım değil, aynı zamanda anlaşılır, test edilebilir ve bakım yapılabilir yazılım olduğunu nasıl anlamanız gerektiğini de göstereceğim.
Bu yazıda, yazılım mühendisliğinin ne anlama geldiğini, kodlamadan nerede ayrıldığını ve bir yazılım geliştirme işinde hangi aşamaları kapsadığını sade biçimde açıklayacağım. Ayrıca “iyi yazılım”ın sadece çalışan yazılım değil, aynı zamanda anlaşılır, test edilebilir ve bakım yapılabilir yazılım olduğunu nasıl anlamanız gerektiğini de göstereceğim.
Yazılım mühendisliği nedir?
Yazılım mühendisliği, yazılım geliştirmeyi tek seferlik bir yazma işi değil, baştan sona yönetilen bir mühendislik faaliyeti olarak ele alır. ISO’nun sözlüğü bu alan için ortak bir terminoloji sunduğunu, yaşam döngüsü standardı ise yazılımın edinim, geliştirme, işletim, bakım ve elden çıkarma süreçlerini kapsayan bir çerçeve kurduğunu söylüyor. Bu yüzden kavram, yalnızca programlama dili bilmekten daha geniştir.Kod yazmakla aynı şey değildir
Programlama, bir çözümün kod tarafını üretir; yazılım mühendisliği ise çözümün doğru ihtiyaçla başlamasını, teknik olarak kurulmasını ve zaman içinde bozulmadan yaşamasını hedefler. Bu fark pratikte gereksinim toplama, mimari düşünme, test etme ve bakım planlama gibi işleri zorunlu kılar. Böyle bakınca mühendislik, kodun etrafındaki kararları da kapsar.Hangi işleri kapsar?
Tipik yazılım mühendisliği işi; ihtiyacı anlamak, çözümü tasarlamak, kodlamak, test etmek, yayınlamak ve sonrasında güncellemeleri yönetmekten oluşur. ISO/IEC/IEEE 12207 bu yaşam döngüsü içinde geliştirme, operasyon, bakım ve elden çıkarma gibi süreçleri açıkça sayar. Bu nedenle yazılım mühendisliği, yalnızca ilk sürümü çıkarmayı değil, ürünün sonraki hayatını da planlamayı içerir.| Başlık | Anlamı |
|---|---|
| Kısa tanım | Yazılımı planlı süreçlerle geliştirme, doğrulama, yayınlama ve sürdürme disiplinidir. |
| Kod yazmaktan farkı | Sadece programlama değil; gereksinim, tasarım, test, bakım ve değişiklik yönetimi de dahildir. |
| Temel çıktı | Çalışan kodla birlikte sürdürülebilir, anlaşılır ve güncellenebilir bir ürün hedeflenir. |
| Nerede kullanılır? | Tek kişinin yazdığı küçük araçlardan büyük kurumsal sistemlere kadar her ölçekte uygulanır. |
| Öğrenirken ilk sırada ne var? | Gereksinimi doğru anlamak; çünkü yanlış ihtiyaç, doğru yazılmış kodu da yanlış çözüme dönüştürür. |