Yazılım mühendisliği, yazılım geliştirme ile ilgilenen mühendislik dalıdır. Yazılım mühendisliği tanımı ilk olarak 1968 yılında Friedrich L. Bauer tarafından Almanya'da gerçekleştirilen NATO toplantısında gündeme gelmiştir. Ayrıca, matematikçi ve bilgisayar bilimcisi Margaret Hamilton "yazılım mühendisliği" terimini ortaya atan kişilerden biri olarak kabul edilmektedir. Yazılım mühendisliği tanım olarak "karmaşık yazılım sistemlerinin belirli bir hedefe ve sisteme dayalı olarak ve iş bölümü yapılarak, belirli prensipler, yöntemler ve araçlar kullanılarak geliştirilmesidir."
Açık kaynak yazılım ya da açık kaynak kodlu yazılım, telif hakkı sahibinin kullanıcılara yazılımı ve kaynak kodunu herhangi bir amaç için kullanma, inceleme, değiştirme ve dağıtma haklarını verdiği bir lisans kapsamında yayınlanan bilgisayar yazılımıdır. Kullandıkları lisans gereğince isteyen kişi ve grupların yazılımı kendi kişisel ihtiyaçlarına uyarlamalarına ve sonunda değişikliği benzer tercihlere sahip kullanıcılar için bir çatal olarak yayınlamalarına olanak tanır.
Veri modelleme, bir işletmenin, kurumun hatırlamaya değer bulduğu verilerin şekil ve metin olarak ifade edilmesidir. Diğer bir deyişle bir işletmede teknik ve teknik olmayan herkesin bilişim ihtiyaçlarını ifade etmeye çalışırken birbirini anlamada kullanabileceği görsel bir iletişim dilidir. Yazılım geliştirmenin en önemli süreçlerinden biri olan veri modelleme bilişim ihtiyaçlarının keşfedilmesi ve herkesin anlayabileceği bir şekilde belgelenmesi işlemidir. Bilişim ihtiyaçları, veriler ve işletme ihtiyaçlarını destekleyen işletme kurallarıdır. Bir veri modeli herhangi bir işletmenin veya bir yazılımın karmaşık bilişim ihtiyaçlarının tümünü yeterince ifade edebilmek için kullanılabilecek bir araçtır. Bir bilişim sistemi başlıca 3 ihtiyacı karşılar; çeşitli verilerin saklanması, işlenmesi ve görüntülenmesi. Görüldüğü gibi bilişim sistemlerinin temelinde veri yer almaktadır. Veri Tabanı sistemleri ise en basit ifadeyle; verinin saklanması ve işlenmesi ile ilgili olarak geliştirilen genel amaçlı çeşitli yazılımlardır. Kısaca bilginin işlenmemiş hali olarak tanımlanan verinin modellenmesi herhangi bir bilişim sistemi geliştirmede neredeyse işin yarısını oluşturur. Verinin gerçek sahibi kullanıcıdır. Durum böyle olunca bilişim sistemlerinin geliştirilmesi sırasında kullanıcı temelli bir yaklaşım önem kazanmaktadır. Kullanıcı yönelimli bu yaklaşımın bazı yararları aşağıda sıralanmaktadır.
- Kullanıcıların işin başından itibaren yazılım geliştirme sürecinde yer almaları nedeniyle yeni sisteme ve yeniye karşı olan dirençlerinin azaltılması
- Çoğunlukla teknik açıdan olaylara yaklaşan yazılımcıların geliştireceği kurgu veya hayal ürünü veri ihtiyaçlarından kaçınılması
- Kullanıcı eksenli geliştirilen sistemde bilişim ihtiyaçlarının daha iyi karşılanabilmesi
- Geliştirilecek ürünün işletmede daha kolay benimsenmesi
- Geliştirilecek yazılımın daha kısa sürede yazılması ve kalite faktörü
- Teknik ayrıntıdan uzak, işletmede herkesin rahatlıkla anlayabileceği ve üzerinden iletişim kurabileceği görsel-grafik sembollerle ifade edilebilen veri modellerinin üretilebilmesi
- Bilgisayar Destekli Yazılım Mühendisliği araçlarıyla bu modeller hızlı şekilde veri tabanı tasarımına dönüştürülebilir
- Yazılım geliştirme sürecinde dokümantasyon için çok yararlıdırlar
CMMI — bir süreç modeli olup, örgütlerin yazılım süreçlerinin olgunluğunu değerlendirme modelidir.
Atik yazılım geliştirme ya da çevik yazılım geliştirme, basit prensiplere dayanan yazılım geliştirme metotları gruplarının genel adıdır. Bu metotlar genelde alışılmış denetim ve uyum süreçlerini teşvik eden proje yönetim işlemlerine önayak olurlar. Bu yaklaşım; takım çalışmasıyla gelen liderlik psikolojisi, kendi kendini düzene sokma (örgütleme), sorumluluk, yüksek kalitedeki yazılımların hızlı dağıtımını onaylayan en iyi mühendislik örnekleri ve iş yaşamında müşteri ihtiyaçlarıyla şirketlerin temel amaçlarını, vizyonlarını koordine etme işlevi de görmektedir.
Yazılım geliştirme yöntembilimi bir bilgi sistemi geliştirme süreci için ana çerçeveyi anlatır.
Sistem çözümlemesi ve tasarımı, bir bilişim sisteminin hangi verileri, hangi kullanıcılar için ve nasıl işlemesi gerektiğini irdeleme; sistemin girdilerini, mantığını, çıktılarını ve bileşenlerini betimleme; ve sistemi meydana getirerek çalıştırma aşamalarını inceleyen bilgi alanıdır. Bu sürece sistem yaşam döngüsü adı da verilmektedir. Her bilişim sistemi, insan yapımı diğer pek çok sistem gibi, beş aşamalı bir yaşam döngüsünden geçmektedir:
- Planlama,
- Çözümleme,
- Tasarım,
- Gerçekleştirme,
- Kullanım ve bakım.
Unreal Engine, Epic Games tarafından geliştirilen ve ilk olarak 1998 yılında yayınlanan Unreal isimli birinci şahıs nişancı oyununda kullanılan oyun motoru. Esas olarak birinci şahıs nişancı oyunları için geliştirilmesine karşın, sonraları çeşitli türlerdeki oyunlarda kullanıldı. C++ ile yazılmış kodu sayesinde yüksek derecede taşınabilirliğe sahiptir ve günümüzde birçok oyun geliştirici tarafından kullanılan bir araç haline gelmiştir.
Şelale yönteminde yazılım geliştirme süreci analiz, tasarım, kodlama, test, sürüm ve bakım gibi safhalardan oluşur. Geleneksel yazılım metotlarında bu safhalar şelale modelinde olduğu gibi doğrusal olarak işler. Her safha, başlangıç noktasında bir önceki safhanın ürettiklerini bulur. Kendi bünyesindeki değişikler doğrultusunda teslim aldıklarını bir sonraki safhanın kullanabileceği şekilde değiştirir.
Yazılım yaşam döngüsü, bilgisayar yazılımlarının ilk geliştirme aşamalarından başlayarak; yayındaki mevcut sürümün hatalarının giderilmesi, iyileştirme odaklı yeni ara sürümlerin yayınlarak yazılımın güncellenmesi de dâhil olmak üzere nihai (kararlı) sürüme ulaşana dek geçen geliştirme ve olgunlaştırma aşamalarının tamamını ifade etmek için kullanılan terimdir.
V-Model, sistem geliştirme sürecinde karmaşıklığı basitleştirmek amacıyla tasarlanmış bir kavramsal modelden, ayrıntılı ve özenli yaşam döngüsü modellerine ve proje yönetimi araçlarına kadar uzanan bir dizi modele uygulanan bir terimdir. İngiltere ve dünya genelindeki test topluluklarında, V-Model'in yazılım geliştirme sürecinde test edilebilmesi için ISTQB kuruluş müfredatı içinde tanımlanması, açıklayıcı ve değişken bir tanım olarak kabul edilir. V-Model'e ilişkin alternatif makalelerde bu modelin tek bir kabul edilmiş tanımının olmadığı görülür. Bu nedenle, farklı varyasyonlara sahip birçok versiyonu bulunmaktadır.
V-model şelale (waterfall) modelinin gelişmiş hali olarak düşünülebilecek bir yazılım geliştirme süreci sunar. Doğrusal bir yönde ilerlemek yerine, süreç adımları kodlama evresinden sonra yukarıya doğru eğim alır ve tipik V şeklini oluşturur. V-Model geliştirme yaşam çevriminin her bir evresi arasındaki ilişkileri gösterir. Yatay ve dikey açılar zaman veya projenin tamamlanabilirliğini ve soyut seviyeyi gösterir.
Sistem ve yazılım mühendisliğindeki işlev modeli modellenen sistem veya konu alanının işlevlerinin yapısal temsilidir.
Bilgisayar bilimlerinde, gereksinim analizi ya da gereksinim çözümleme; çeşitli sistemlerin gerekliliklerini ve olası çelişkili durumlarını göz önüne alarak, yazılımı analiz etmek, belgelemek, doğrulamak ve yönetmek için yeni veya değiştirilmiş bir ürün üzerinde projenin ihtiyaçlarını, sistem gereksinimlerini ve koşullarını belirleyen görevleri kapsamaktadır.
Winston Walker Royce, Austin, Teksas'taki Lockheed Yazılım Teknoloji Merkezi'nde yöneticilik yapmış olan Amerikalı bir bilgisayar bilimcisiydi.
Kent Beck Amerikalı bir yazılım mühendisi ve ekstrem programlamanın yaratıcısıdır. işbirlikçi ve yinelemeli bir tasarım süreci için katı biçimsel belirtimlerden kaçınan bir yazılım geliştirme metodolojisi. Beck, Agile Manifesto'nun 17 orijinal imzacısından biriydi. Extreme ve Agile yöntemler, Beck'in belki de önde gelen savunucusu olduğu Test Odaklı Geliştirme (TDD) ile yakından ilişkilidir.
Barry W. Boehm, Amerikalı bir yazılım mühendisi, bilgisayar bilimi, endüstri ve sistem mühendisliği alanında seçkin profesör, TRW Yazılım Mühendisliği Profesörü; Güney Kaliforniya Üniversitesi Sistem ve Yazılım Mühendisliği Merkezi'nin kurucu direktörüdür. Yazılım mühendisliği alanına yaptığı birçok katkı ile tanınmaktadır.
Watts S. Humphrey, Yazılım mühendisliğinde "yazılım kalitesinin babası" olarak anılan Amerikalı bir yazılım mühendisiydi.
İş analisti, bir organizasyonu veya işletme alanını analiz eden bir analist mesleğidir. İş modelini veya teknolojiyle entegrasyonunu değerlendirerek işini, süreçlerini veya sistemlerini belgeler. İş analisti, veri analizi yoluyla süreçleri, ürünleri, hizmetleri ve yazılımları iyileştirmede işletmelere rehberlik etmeye yardımcı olur. Analistler finans, bankacılık, sigorta, telekom, kamu hizmetleri, yazılım hizmetleri, hükûmet vb. gibi farklı sektörlerde çalışır. BA'ların çalışabileceği iş alanları arasında iş akışı, faturalandırma, arabuluculuk, sağlama, raporlama ve müşteri ilişkileri yönetimi yer alır. Son olarak, iş analistleri, operasyon ölçeklendirme, satış planlama, strateji geliştirme, geliştirme sürecinde yer alabilecekleri veya bir atik yazılım geliştirme ürün ekibinin parçası olabilir.
Otomotiv tasarımı, otomobiller, motosikletler, otobüsler, şehirler arası otobüsler ve minibüsler, kamyon dahil olmak üzere motorlu taşıtların görünümünü ve bir dereceye kadar ergonomisini geliştirme sürecidir.