Yazılım , hem bilgisayar işletim sistemlerinin hem de bilgisayarlarda çalışmak üzere tasarlanmış program ve uygulamalara işaret eder. Yazılım geliştirme, program mimarisinin ve kullanıcı arayüzünün geliştirilmesi ve kaynak kodun programlanması dahil olmak üzere yazılımların tasarlanması ve yazılmasıdır. Yazılım geliştirme süreci, yazılım geliştirmeye yönelik yaklaşımdır ve bu süreç için çok iyi geliştirilmiş modeller vardır. Genel olarak, gereksinim analizi yapma, ürünü belirleme, yazılım mimarisini oluşturma, kodu uygulama, ürünü sınama ve belgeleme, eğitim ve destek sağlama ve sürümün bakımını yapma ve geliştirme aşamalarında varyasyonlar içerir. Hangi model kullanılırsa kullanılsın, yazılım geliştirme süreci bazen yeni ürün geliştirmeye yönelik olabilir, diğer zamanlarda ise revizyona odaklanılabilir - örneğin, hataları düzeltmek için bir nokta serbest bırakması yaratıldığında - ve diğer zamanlarda, mevcut yazılımın yeni bir sürümüne hazırlık yapmak, önemli özellikler eklemek ve hata düzeltmeleri yapmak.
Yazılım geliştirme süreci için Waterfall Modeli erken bir modeldir ve aynı zamanda içsel kısıtlamaları olan bir modeldir. Gelişmeye başladıktan sonra, bir önceki aşamaya dönmeden ya da teknik özellikleri değiştirmeden, geliştirme aşamasına tek yönlü hareket eden, gelişime kesinlikle tek yönlü bir yaklaşım öngörmektedir. Spiral Model, aksine, bir dizi gereksinim, ardından tasarım, uygulama ve son olarak testin ardından daha fazla özellik ve bileşenlerin eklendiği ikinci bir döngü izleyen yinelemeli bir işlem kullanır. Yazılım geliştirme sürecinin Çevik Modellerinde - ki bunların sayısı çoktur - geliştirme projeleri, her biri bir yazılım geliştirme sürecinin minyatürleştirilmiş bir versiyonundan geçen, zaman dilimi adı verilen ve zaman dilimi alt kümelerine bölünmüştür. son. Çevik geliştirmenin diğer özellikleri arasında işbirlikçi ekibin yakınlığı ve müşteriye süreç boyunca ürüne cevap vermek için kullanılması da dahildir.
Yazılım geliştirme süreci büyük bir firma ve bireysel programcı için kökten farklı olabilir. Örneğin, Avid Technology®'nin bir parçası olan Sibelius Software® gibi ticari bir yazılım yayıncısı, her sürüm için yazılım geliştirme sürecine birkaç yıl harcayabilir ve yüzlerce MB boyutunda ve binlerce kişi tarafından kullanılan bir yazılım uygulaması yayınlayabilir. . Öte yandan, bir kişinin bir ticari yazılım parçası ile farklı bir şeyler yapabilmesi isteğine yanıt olarak bir eklentiyi programlayan Roman Molino Dunn, The Music Transcriber® gibi bir birey, 4 kb'lik bir yazılım parçası yaratabilir. Aşırı bir durumda, fikri olan bir saat içinde.


