Kullanıcının tipik bir kişisel bilgisayarda uygulama yazılımlarıyla nasıl etkileşime geçtiğini gösteren bir diyagram.
**Yazılım**, değişik ve çeşitli görevler yapma amaçlı tasarlanmış elektronik aygıtların birbirleriyle haberleşebilmesini ve uyumunu sağlayarak görevlerini ya da kullanılabilirliklerini geliştirmeye yarayan makine komutlarıdır.

Yazılım, elektronik aygıtların belirli bir işi yapmasını sağlayan programların tümüne verilen isimdir. Bir başka deyişle, var olan bir problemi çözmek amacıyla bilgisayar dili kullanılarak oluşturulmuş anlamlı anlatımlar bütünüdür. Yazılım için çeşitli diller mevcuttur. Bunlardan bazıları Pascal, C++ ve Java'dır.

Bilgisayar yazılım türleri
--------------------------

Bilgisayar yazılımları genel olarak üç ana grupta incelenebilir.

### Sistem yazılımları

Bilgisayarın kendisinin işletilmesini sağlayan, işletim sistemi, derleyiciler (compilers) (Yazılım programında, yazılan programı makine diline çeviren program), çeşitli donatılar (facility) gibi yazılımlardır.

Çekirdek(kernel) işletim sisteminin en temel parçasıdır. Burada çekirdek ile ilgili farklı yaklaşımlar olduğunu yani yazılım karar verme ve Programlama paradigması mevcut olsa da bir işletim sistemi çekirdeğinin esas görevi Bilgisayar Donanımı ile kullanıcıya ve kullanıcıya yazılım veya donanım üreten üreticilere Arayüz oluşturmak ve kaynakların yönetilmesi ile ilgili birimleri idare etmektir.

### Uygulama yazılımları

LibreOffice Writer
Bu kullanıcıların işlerine çözüm sağlayan örneğin çek, senet, stok kontrol, bordro, kütüphane kayıtlarını tutan programlar, bankalardaki müşterilerin para hesaplarını tutan programlar gibi yazılımlardır.

Bütün sistem programları içinde en temel yazılım işletim sistemidir ki, bilgisayarın bütün donanım ve yazılım kaynaklarını kontrol ettiği gibi, kullanıcılara ait uygulama yazılımlarının da çalıştırılmalarını ve denetlenmelerini sağlar.

### Çevirici yazılımlar

Herhangi bir dilde yazılan programı makine diline çeviren yazılımlardır.

Yazılım çeşitleri
-----------------

### Sistem yazılımları

Sistem yazılımları bilgisayar kullanımı için gerekli ana fonksiyonları sağlar ve bilgisayar donanımına ve sistemin yürütülmesine yardımcı olur. Şu kombinasyonları içerir: (unutmamak gerekir yazılım program dili değildir)

* Aygıt sürücüleri
* İşletim sistemleri
* Sunucular
* Hizmet programları
* Pencere sistemleri

Sistem yazılımı çeşitli bağımsız donanım bileşenlerinin uyum içinde çalışmalarından sorumludur.

Sistem yazılımı bilgisayar donanımının işletilmesi ve uygulama yazılımının çalıştırılması için bir platform sağlamak için tasarlanmış bir bilgisayar yazılımıdır.

En temel sistem yazılımı türleri şunlardır:

* Bilgisayar BIOS’u ve aygıt yazılımı: Bilgisayara bağlı veya bilgisayar içindeki donanımı çalıştırmak ve kontrol etmek için gereken temel işlevselliği sağlar.
* İşletim sistemi (önde gelen örnekler; Microsoft Windows, Mac OS X ve Linux olmak üzere): Bilgisayar parçalarının; hafıza ile diskler arasında veri alışverişi veya monitöre görüntü sağlamak gibi görevleri uygulayarak birlikte çalışmasına olanak sağlar. Ayrıca üst düzey sistem yazılımı ve uygulama yazılımlarının çalıştırılması için bir platform oluşturur.
* Yardımcı yazılım: Bilgisayarın analiz edilmesine, yapılandırılmasına, yönetilmesine ve optimize edilmesine yardımcı olur.

Ayrıca sistem yazılımı terimi, bazı yayınlarda yazılım geliştirme araçlarını tanımlamak için de kullanılır.
Bilgisayar alıcıları nadiren sahip olduğu işletim sistemini öncelikli olarak dikkate alarak bir bilgisayar alırlar. Fakat cep telefonu gibi aygıtları satın alan kişiler için bu durumun tersi geçerli olabilir. Çünkü iPhone örneğinde olduğu gibi bu tür aygıtların sistem yazılımlarının, son kullanıcı tarafından değiştirilmesi oldukça zordur. Ayrıca sistem yazılımı genellikle dahili ya da önceden yüklenmiş şekilde, yararlı ve hatta gerekli bir altyapı kodu olarak görev yapar.
Sistem yazılımının dışında, kullanıcıların dokümanlar oluşturmasına, oyun oynamasına, müzik dinlemesine ya da İnternet'te gezinmesine olanak sağlayan yazılımlara uygulama yazılımı denir.

Kaynakça
--------

1. ↑  TDK Bilişim Sözlüğü'ndeki tanımı: Bir bilgisayarda donanıma hayat veren ve bilgi işlemde kullanılan programlar, yordamlar, programlama dilleri ve belgelemelerin tümü.

| * g
* t
* d
Yazılım mühendisliği |
| --- |
| Alanlar | Gereksinim çözümlemesi • Yazılım tasarımı • Programlama • Biçimsel yöntemler • Yazılım testi • Yazılım sistemleri • Yazılım dağıtımı • Yazılım bakımı  |
| Kavramlar | Veri modelleme • Kurumsal mimari • Functional specification • Modelleme dili • Programlama paradigması • Yazılım • Yazılım mimarisi • Yazılım geliştirme yöntembilimi • Yazılım geliştirme süreci • Yazılımın niteliği • Yazılım kalite güvencesi • Yapısal analiz  |
| Yönelimler | Atik • Aspect-oriented • Nesne yönelimli • Ontoloji • Servis odaklı • SDLC |
| Modeller | *Geliştirme modelleri*: Atik • Yinelemeli model • RUP • Scrum • Spiral model • Waterfall model • XP • V-Model
*Diğer modeller*: CMMI • Veri modeli • İşlev modeli • IDEF • Bilgi modeli • Metamodeling • Nesne modeli • Görünüm modeli • UML  |
| Yazılımmühendisleri | Victor Basili • Dennis Ritchie • Kent Beck • Peter Chen • Grady Booch • Fred Brooks • Barry Boehm • Bjarne Stroustrup • Ward Cunningham • Ole-Johan Dahl • Tom DeMarco • Edsger Dijkstra • Martin Fowler • C. A. R. Hoare • Watts Humphrey • Michael A. Jackson • Ivar Jacobson • Craig Larman • James Martin • Bertrand Meyer • David Parnas • Winston W. Royce • James Rumbaugh • Danese Cooper • Niklaus Wirth • Edward Yourdon |
| İlgili alanlar | Bilgisayar bilimi • Bilgisayar mühendisliği • İşletme mühendisliği • Geçmiş • Matematik • Proje yönetimi • Risk yönetimi • Sistem mühendisliği |

|  |  |
| --- | --- |
| Otorite kontrolü Bunu Vikiveri'de düzenleyin | 
* BNE: XX530960
* BNF: cb133183707 (data)
* GND: 4055382-6
* LCCN: sh85029534
* NDL: 00684642
* NKC: ph125823
* NLI: 987007545619305171

 |