Yazılım (Software) Nedir?

YAZILIM a. Bilş. 1. Bir veri işleme bütününün çalışmasına ilişkin programlar, yöntemler ve kurallar, ve gerektiğinde belgeler kümesi...

YAZILIM




a. Bilş.

1. Bir veri işleme bütününün çalışmasına ilişkin programlar, yöntemler ve kurallar, ve gerektiğinde belgeler kümesi, (Yazılım DONANIM'ın karşıtıdır.) [Eşanl. SOFTWARE.]




2. Yazılım mühendisliği, belirlenmelerinden, bakımlarına dek, yazılımların üretilmesi mevzusunda meydana getirilen bilişimsel ve yöntembilimsel katkı ve desteklerin tümü.

  • Ana yazılım, bir bilgisayarın iç çalışmasını sağlamakla yükümlü yazılım. (Bilgisayarda kullanılan elektronik düzeneklerin maliyetlerinin düşmesi sonucunda, yazıfımlar bir bilişim sisteminin en pahalı öğeleri haline gelmiştir.)

  • Uygulama yazılımı, bir bilişim sistemi kullanıcısının, hususi bir problemim çözmeye uyarlanmış yazılım.
Kaynak: Büyük Larousse







  • Lisanslı yazılım, demo yazılım, paylaşılan yazılım nedir?


  • Software hatasi aliyorum yardım edermisiniz?


  • Software ve Kalibrasyon nedir?



Yazılım Sanatı (Software Art)



Yazılım Sanatı (Software Art), sanatçılar tarafınca sanat eseri olarak sergilenmek amacıyla oluşturulmuş yazılım uygulamaları şeklinde, yazılımın ya da yazılımla ilgili kavramların mühim rol oynadığı sanat biçimlerine denir.

Yazılım sanatı 1990'ların sonlarından itibaren sanatla alakalı bir disiplin olarak yer edinmeye adım atmıştır. Yayımlanması ve tartışılması sık sık WWW üstünden yapıldığı için web sanatı ile de yakından bağlantılıdır. World Wide Web'deki bilgiye alternatif sunumlar getiren
tarayıcı sanatı (browser art), hem web hem de yazılım sanatı kapsamına sokulabilecek bir örnektir.





2000 yılından sonrasında yazılım sanatına verilen ehemmiyet artmış, Transmediale (Berlin), Prix Ars Electronica (Linz) ve Readme (Helsinki) şeklinde internasyonal sanat festivallerinde kendine mühim bir yer bulmuştur. Böylelikle daha geniş bir eleştirmen ve akademisyen kitlesine ulaşmıştır. Bu gelişmelerin yanısıra, hemen hemen çok yeni olması sebebiyle, yazılım sanatının ayrı bir sanat dalı olarak geçici bir akım olup olmadığı münakaşa mevzusudur.

Mühim Sanatçılar ve Emekleri
  • Londralı sanatçı grubu I/O/D 1998 tarihindeki Web Stalker projesinde siteleri ayrı ayrı sayfalar halinde göstermek yerine haritalarını çıkaran alternatif kolay bir web tarayıcısı yaratmıştır.
  • Alexei Shulgin erken dönem yazılım sanatının önde gelen isimlerindendir.
  • Amy Alexander yapmış olduğu çalışmalarda programcıların/hacker'ların doğasına ve toplumda oynadıkları yaratıcı role gönderme yapmaktadır.
  • C.E.B. Reas, ekran tabanlı çizimler yaratmak için, üretken ve etkileşimli programlar yazmaktadır.
  • Peter Luining'in ZNC browser emek harcaması, html kodunu renk ve seslere çevirmektedir.
  • Auriea Harvey Michael Samyn
  • Golan Levin
  • Ubermorgen
  • Jason Salavon
  • Lisa Jevbratt
  • Lia
  • Marius Watz
  • Jurg Lehni
Türkiye'de Yazılım Sanatı
  • Burak Arıkan
  • Ali Miharbi
  • Düğümküme, yazılım ve web sanatı hakkında Türkçe makaleler yayınlar ve etkinlikler düzenler.



parasız / Özgür Yazılım (Freeware)




Freeware, kullanıcının belirli bir süre sonrasında yazılımı kullanmaya devam etmek için ücret ödemek durumunda olduğu sharewareden değişik olarak, parasız ve sınırsız kullanım imkânı tanıyan bir yazılım lisansıdır. Freeware yazılımların da telif hakları söz mevzusudur. Freeware yazımcıları çoğu zaman "topluma bir şey sunma" motivasyonuyla hareket eden, fakat bunu yaparken isimlerinin de bilinmesini ve yazılımları ile ilgili gelecekteki gelişmelerin kendi denetimleri altında olmasını isteyen programcılardır.

Tarihçe



Freeware terimi ilk kez, yarattığı PC-Talk ismindeki haberleşme-iletişim yazılımını geleneksel yollardan pazarlamayı pahalı bulmuş olduğu için alternatif pazarlama yolları arayan Andrew Fluegelman tarafınca kullanılmıştır. Fluegelman önceleri, bu terimi bir marka şeklinde kullanmıştı; fakat ondan sonra terimin bu anlamda kullanımı terkedilmiştir. Fluegelman aslında PC-Talk yazılımının dağıtımını bugün shareware olarak malum bir yolla yapmıştı.


Yazılım Tasarım Örüntüleri




Tasarım desenleri ya da tasarım örüntüleri, çok rastlanan, birbirine benzer sorunları çözmek için geliştirilmiş ve işlerliği kanıtlanmış genel çözüm önerileridir.

Yazılım Tasarım Desenleri



Yazılım tasarım örüntüleri, yazılım tasarımı sırasına sıkça karşılaşılan, birbirine benzer sorunları çözmek için geliştirilmiş ve işlerliği kanıtlanmış genel çözüm önerileridir. Genel olarak yazılım tasarım örüntüleri programlama dillerinden bağımsız olarak tanımlansalar da, nesneye yönelimli programlama dillerine uygun yazılım tasarım örüntüleri daha çok bilinir. Bu örüntüler, nesneler ve sınıflar arasındaki ilişkileri ve etkilişimleri gösterirler. Programcı bir tasarım örüntüsünü elindeki soruna bakarak özelleştirip kullanabilir.

Tarihçe



Tasarım örüntülerinin temelleri Mimar Christopher Alexander'ın 1970 sonlarında başlatığı çalışmalara dayanmaktadır. Alexander 1977'de "Desen Dili: Metropoller, Binalar, Yapılar" (A Pattern Language: Towns, Buildings, Construction ISBN 0-195-01919-9), 1979'da "Sonsuz Yapım Yöntemi" (A Timeless Way of Building ISBN 0-195-02402-8) kitaplarını yayınlamıştır. Bu kitaplarda mimari desen örnekleri yanı sıra, bu desenlerin iyi mi belgeleneceği de mevzu edilmiştir.

1987'deki internasyonal Nesneye Yönelik Programlama, Sistemler, Diller ve Uygulamalar
(OOPSLA: Object Oriented Programming, Systems, Languages, and Applications) konferansına kadar desenlerle ilgili bir emek harcama ortaya çıkmamış, bu tarihten sonrasında ise Grady Booch, Richard Helm, Erich Gamma ve Şehir Beck başta olamak suretiyle örüntülerle ilgili yazı ve sunumlar yayınlamışlardır. 1994'de Erich Gamma, Richard Helm, Ralph Johnson ve John Vlissides tarafınca gösterilen "Tasarım Örüntüleri: Yeniden kullanılabilir Nesneye Yönelik Yazılımın Temelleri" (Design Patterns: Elements of Reusable Object-Oriented Software ISBN 0-201-63361-2) tasarım örüntülerinin yazılımda kullanılmasında dönüm noktası olmuştur.

Dörtlü Çete (Gang of Four, özetlemek gerekirse GoF) Yazılım Tasarım Örüntüleri



Yazılım tasarım örüntüleri 1994 tarihinde "Tasarım Örüntüleri: Yeniden kullanılabilir Nesneye Yönelik Yazılımın Temelleri" (Design Patterns: Elements of Reusable Object-Oriented Software ISBN 0-201-63361-2) adıyla gösterilen kitap ile yaygınlaşmaya başlamış, kitabın yazarları Erich Gamma, Richard Helm, Ralph Johnson ve John Vlissides bilgisayar bilimleri çevresinde Dörtlü Çete olarak anılır olmuştur. Dörtlü Çete adı, kitabın isminin uzun olmasından dolayı mevzuyla ilgili e-postalarda kısaltma yapılarak, yazarları kastederek, kitabın "Dörtlü Çetenin Kitabı" (Book of GoF) olarak anılmasıyla ortaya çıkmıştır.

Tasarım Desenleri Sınıfları



Gang of Four'un Tasarım Örüntüleri kitabı (ISBN 0201633612) tasarım örüntülerini üç sınıfa ayırır, fakat bu sınıfları birbirinden ayıran keskin kriterler yoktur:

1. Yaratım Örüntüleri



Yaratım örüntüleri, yazılım nesnelerinin (ya da başka bir değişle derslik örnekleri - class instances) iyi mi yaratılacağı hakkında tavsiyeler sunar. Anafikir, iyi bir yazılımın, içinde barındırdığı nesnelerin iyi mi yaratıldığından bağımsız olarak tasarlanması gerekliliğidir. Öteki bir deyişle, nesnelerin nereden ve iyi mi yaratıldığı, mensup oldukları yazılımın işleyişini etkilememeli; yeni özellikler eklenmesine ve değişikliklere karşı problem oluşturmamalıdır.

Yazılım sistemleri geliştikçe, nesnel bileşimler (object composition), derslik kalıtımına (class inheritence) nazaran daha çok ehemmiyet kazanır. Bunun sebebi, yazılım sistemleri için kolay temel davranış (behavior) şekillerinin tanımlanması üstüne kurulu tasarımların, durağan(durgun) davranışlara dayalı tasarımlara nazaran daha esnek olmasındandır. Öteki bir deyişle, nesnelere davranışların bileşim olarak eklenmesi, ondan sonra bu davranışların yazılımın gelişimine nazaran değiştirilmesine olanak sağlar. Bu durumda, geliştirilen yazılım için ihtiyaç duyulan temel davranış şekillerine dayalı bir tasarım, nesne arayüzleri (interface) değiştirmeden değişik ya da daha karmaşık davranışların kullanılabilmesini olanaklı kılar.

Sadece, nesnel bileşimler kanalıyla temel davranışları elde eden nesnelerin örneklenmesi, ana ya da kalıtım kanalıyla davranış değişikliğine uğratılarak türetilmiş sınıflardan nesne oluşturmak daha zor olsa gerek. Yaratım örüntüleri bu zorlukları aşmak amacıyla kullanılabilecek yazılım örüntüleri ihtiva eder.

Yaratım örüntüleri, hem hangi somut sınıfların (concrete class) nesne örneklemesinde kullanıldığını, hem de bu örneklerin iyi mi yaratılıp bir araya getirildiğini yazılım sisteminden saklarlar.

  • Soyut Yapınak (Abstract Factory)

Tek arayüz ile bir nesne ailesinin değişik platformlarda yaratılmasını olanaklı kılar. Bu sayade yazılım uygulaması değişik platfromlara davranış değişikliğine uğramadan taşınabilir. Soyut yapınak kalıbı tek arayüz altında hangi somut sınıfların kullanıldığını saklar.
  • Yapıcı (Builder)

Karmaşık bir nesne grubunun tek arayüz üstünden gerektiğince parça parça yaratılmasını sağlar. Kullanıcı nesne grubunu kullandıkça nesne grubu ihtiyaç duyulan yönde yapılanır. Kullanılmayan parçalar gereksiz yere yaratılarak harcamaz.
  • Yapınak Yöntemi (Factory Method)

Nesne yaratımı için kullanılan tek arayüz altında nesnenin iyi mi yaratılacağını kalıtım kanalıyla alt sınıflara bırakarak, arayüzle nesne yaratım işlevlerini birbirinden ayırır.
  • Örnek (Prototype)

Karmaşık ve/ya da pahalı sınıflardan nesne yaratırken, yeni nesnelerin baştan yaratılması yerine, mevcutlarından örnekleyerek yaratılmasını sağlar. Bu sayede yeni nesneler kolayca ve lar gereksiz yere meşgul edilmeden yaratılırlar.
  • Yegane (Singleton)

Bir sınıftan yalnız bir tane nesne yaratılacak şekilde engelleme sağlar. Söz mevzusu nesneye uygulamanın her yerinden ulaşılabilir. Nesne ilk kez kullanılana dek yaratılmayabilir.

2. Yapısal Örüntüler



Yapısal örüntüler sınıfların ve nesnelerin bileştirilerek daha geniş yazılım yapılarının kurulmasına olanak elde eden tavsiyeler sunar. Derslik yapı örüntüleri ve nesne yapı örüntüleri olmak suretiyle ikiye ayrılır.

Derslik yapı örüntüleri kalıtım kullanarak derslik arayüzlerini ya da uygulamaları bileştirerek yapıları genişletir. Nesne yapı örüntüleri ise nesnelerin bileştirilerek yeni işlevler kazanma yollarını gösterir.
  • Uyumlayıcı (Adapter)

Değişik lardan gelen nesne ya da sınıfların arayüzlerini uyumlandırmak amacıyla kullanılır.
  • Köprü (Bridge)

Hem arayüzün hem de somut uygulamanın birbirinden ayrılarak düzenlenmesine olanak sağlar. Arayüzün değişimi uygulamayı, uygulamanın değişimi arayüzü etkilemez. Her ikisi bağmsız olarak geliştirilebilir.
  • Bileşik (Composite)

Nesnelerin parça-bütün ilişkisi içinde ağaç yapısı ile bir araya getirilerek bileştirilmesine ve bu bileşiğe tek arayüzden ulaşılmasına olanak sağlar. Bileşik yapı yeni nesneler eklenip çıkarılarak zaman içinde genişleyip daralabilir.
  • Dekoratör (Decorator)

Bir nesneye, nesneyi değiştirmeden yeni sorumluluklar eklenmesini sağlar. Alt sınıflama yapmadan nesnelerin işlevlerinin geliştirilmesini ihtimaller içinde kılar.
  • Vitrin (Façade)

Karmaşık bir yapının bir arada tutularak tek bir arayüz üstünden kullanımına olanak sağlar.
  • Sineksıklet (Flyweight)

Çok sayıda benzer nesnenin yaratılması yerine, bir örnek nesneden görsel nesneler yaratarak kalabalık bir nesne yapısı kurulmasına olanak sağlar. Görsel nesnelerin durum değişkenleri nesnenin kendisi tarafınca değil kullanıcı tarafınca saklanır.
  • Vekil (Proxy)

Karmaşık, pahalı ve oluşturulması güç nesneleri kullanmak için arayüz taklidini ihtimaller içinde kılar. Kullanılacak olan nesnenin fizyolojik yerini kullanıcıdan saklayacak şekilde yönlendirme yapılmasını sağlar.

3. Davranış Örüntüleri



Davranış örüntüleri işlevsel sorumlulukların nesneler içinde iyi mi atanacağı ve yazılımın gerektirdiği çözüm şekillerinin nesnelerce iyi mi kullanılacağı hakkında tavsiyeler sunar. Davranış örüntüleri nesne ve derslik kalıpları yanısıra nesneler arasındaki haberleşme-iletişim ile ilgili örüntüler de sunar. Davranış örüntüleri tasarımcının nesneler arası haberleşme-iletişim ve haberleşme-iletişim yöntemlerine yoğunlaşmasını sağlar.

Aynen Yapısal örüntülerde olduğu şeklinde, davranış örüntüleri de ikiye ayrılır: derslik davranış örüntüleri ve nesne davranış örüntüleri.

Derslik davranış örüntüleri kalıtım kullanarak davranışların sınıflar içinde dağıtılmasını olanaklı kılar. Nesne davranış örüntüleri ise nesne bileştirme kanalıyla tek bir nesnenin kolayca sağlayamayacağı davranışların bir nesne grubu ile sağlanmasını olanaklı kılar.
  • Mesuliyet(-lar) Zinciri (Chain of Responsibility)

Bir kullanıcı(nesnel) isteğinin birden fazla nesne tarafınca değerlendirilerek karşılanmaya çalışılmasına olanak sağlar. kullanıcı tek arayüz üstünden isteğini iletir. İstek zincire bağlı nesneler tarafınca sıra ile ele alınarak karşılanmaya calışılır. İstek karşılanana dek zincir üstünde bir nesneden diğerine aktarılır. Süre içinde zincire yeni nesneler eklenmesi ya da çıkarılması mümkündür. Kullanıcı bu tür değişikliklerden arayüz yardımıyla etkilenmez.
  • Komut (Command)

Kullanıcı(nesnel) isteklerinin nesnelere dönüştürülerek işlenmesini ihtimaller içinde kılar. Bu sayede değişik kullananların istekleri nesnel kayıtlara dönüştürülerek kuyruk ya da kayıtlarda tutulabilir. Bu sayede meydana getirilen işlemlerin geriye dönüştürülmesine de olanak sağlanır.
  • Yorumlayıcı (Interpreter)

Karmaşık uygulamaların gereklerini yerine getirmek için tanımlanan sözde-dili işleyecek bir yorumlayıcı kalıbıdır. Sözde-dilin dilbilgisi kurallarını birer derslik olarak tanımlayarak kolayca uygulanmasını sağlar. Dilbilgisi kuralları sınıflar olarak tanımlandığı için kolayca değiştirilerek geliştirilebilir.
  • Yineleyici (Iterator)

Kitlesel bir nesnenin(Aggragate Object) altında bulunan nesnelere, nesnelerin iyi mi temsil edildiklerine ya da gerçeklendiklerine bakılmaksızın, sırasıyla ulaşılmasını sağlar. Bu sayede değişik şekilde temsil edilen nesnelere tek bir arayüz üstünden ulaşılabilir.
  • Arabulucu (Mediator)

Birbiri ile bağlatılı olarak çalışan nesnelerin aynı çatı altında tutularak tek bir noktadan(şu demek oluyor ki arabulucu tarafınca) yönlendirilmesine olanak sağlar. Arabulucuya bağlı olan nesneler, durum değişikliklerini arabulucuya iletirler. Arabulucu uygulamanın gerektirdiği düzenleme ve sıra ile ilgili nesnelerden isteklerde bulunur. üst düzey kullanıcı nesneler ise yalnız arabulucu ile bağlantı kurarlar.
  • Yadigar (Memento)

Yadigar uygulama yazılımı içinde mühim roller üstüne alan nesnelerin durumlarını saklamak ve gerektiğinde nesneleri geçmişteki durumlarına geri döndürmek ya da hatırlatmak için kullanılır.
  • Gözlemci (Observer)

Bir grup nesnenin, gözlemciler, gözlem altındaki bir nesnede olan değişimlerden otomatikman haberdar olmasına olanak sağlar. Gözlem altındaki nesne, kimler tarafınca izlendiğinden bağımsız olarak işlevini sürdürür. Süre içinde yeni gözlemcilerin iştirakı ya da ayrılması mümkündür. Bu sayede uygulama vakit içinde davranış değiştirebilir.
  • Durum (State)

Bir nesnenin davranışını durumuna nazaran değiştirmesine olanak sağlar. Kullanıcı açısından, nesne sınıfını değiştiriyormuş izlenimi verir. Uygulamanın gerektirdiği doğrultuda yeni davranışlar eklenip çıkarılmasına olanak sağlar. Kullanınıcı nesneler ise bu tür değişikliklerden etkilenmez.
  • Strateji (Strategy)

Aynı arayüz altında, aynı problemi çözebilecek birçok çözüm yöntemi sınıfını saklayarak, kullanıcı nesnelerin hangi yöntemin kullanıldığından haberdar olmaksızın isteklerininin sağlanmasını olanaklı kılar. Kullanıcı nesneler aynı türden nesnelerle çalıştıklarını varsayarken, değişik davranış biçimleri ile karşılanırlar.
  • Kalıp Yordamı (Template Method)

Bir yordamın çözüm kalıbı olarak kullanılmasına olanak sağlar. Kalıp üstündeki bazı işlem adımları alt sınıflar tarafınca işlenmesine ihtimaller içinde kılar. Dolayısıyla ana kalıp değişmeksizin, bazı ara adımlar değişikliğe uğratılabilir. Kullanıcılar bu değişikliklerin bilincinde olmazlar.
  • Ziyaretçi (Visitor)

Bileşik bir yapı üstüne yeni işlemler eklenmesine olanak sağlar. Ziyaretçi nesne bileşik yapı içindeki nesneleri tek tek ziyaret ederek lüzumlu detayları-bilgileri toplayıp işleyerek kullanıcıya sunar.

Yazılım Tasarım Örüntülerine Eleştiri



Bazı yazarlar, yazılım tasarım örüntülerinin sorunların çözümlerini negatif yönde etkilediği yönünde eleştirmektedir. Bazılarına nazaran de, yazılım örüntüleri programla dilinde ya da metodolojisindeki kısıtlamaları ve sorunları göstermektedir ve örüntüyü saptamak son aşama olmamalıdır. Yeni programla dillerinde bu örüntüleri gerektirecek durumları engelleyecek çözümler dilin kendisinden sağlanmalıdır. Mesela bu görüşün taraftarları nesne tabanlı programlama olarak malum kavramların, daha önceki programlama dillerinde tasarım örüntüsü olarak tavsiye edilen kavramlar olduklarını, fakat nesne tabanlı programlama dillerinini çıkmasıyla bu kavramların dil içinde belirsiz bir halde kullanıldığını ve artık bir örüntü olmadıklarını savunmaktadırlar.


Açık Kaynak Yazılım


Açık yazılım (İngilizce: Open-source software) ya da açık lı yazılım ya da membaı açık yazılım, kodu isteyen her insana açık olan yazılımlardır.


Faydası



Bu tür yazılımların ayırt edici özelliği kullanıcıya yazılımı değişiklik yapma özgürlüğü sağlamasıdır. Açık kodlu yazılımlar, uyarlanabilir, sağlam, süratli ve güvenlidir. Açık kod dünyası, yeni bir yazılım üretme biçimi, yeni iş modelleri sunmaktadır. Dünyanın her tarafınca bilişim uzmanlarınca imece yöntemi ile sanayi standartlarında geliştirilen açık kod yazılımları, insanlığın ortak malıdır.

Yazılımcılar yazılımları geliştirirken kullandıkları programlama dilleriyle dosyaları oluştururlar. Sonrasında derlemeli ve yorumlamalı dillerde (C, C++, Java, C#, Pascal, Python, Ruby) bu dosyayı derleyerek çalıştırılabilir hale çevirirler. Açık lı yazılım savunucuları her üretilen ve dağıtılan yazılımla beraber kodunun da dağıtılmasını savunurlar. Bu sayede geliştirme esnasında ve ilerde yeni sürümlerin ortaya çıkması esnasında daha çok sayıda gözün süzgecinden geçmiş daha kaliteli bir yazılım çıktığını düşünürler. Açık lı yazılımlar 2005 senesi itibariyle bir patlama yapmışlar ve on binlere varan yazılım ve varyanta ulaşmışlardır. En iyi bilinenler Linux, Open Office, GNU, Debian'dır.


Toplumda Yeri



Açık lı yazılımlar, en küçüğünden cep telefonu, saat şeklinde gömülü sistemlerden, en büyüğünden süper bilgisayarlara, ev kullanıcılarından KOBİ'lere, kamu kurumlarından her türden okullara, tüm kurum ve bireylerin rahatça kullanabileceği, gereksinimlere nazaran basitleştirilebilen, sağlamlaştırılabilen, güçlendirilebilen yazılımlardır. Açık kod yazılımlar, her alanda çözümler sunarak, yazılım tekellerine karşı tüketiciye seçenekler sunmaktadır. Almanya, İspanya, Meksika, Brezilya, Çin, Kore, Hindistan şeklinde birçok ülke, kamu kurumlarında açık kodlu yazılımlarının kullanımını benimsemiş ve bilgi toplumu stratejilerin bir parçası yapmışlardır. Avrupa Birliği, UNESCO, Dünya Bankası şeklinde kuruluşlar güvenlik ve tutum şeklinde gerekçelerle açık yazılımlarını önermektedir. Dünya üstündeki derhal her ülke kendi gereksinimlerine nazaran açık kodlu bir Linux dağıtımı geliştirmiştir. Türkiye'de TüBİTAK'ın girişimi ile bu yönde ULUDAĞ: Ulusal Dağıtım Projesi başlatılmış ve bir Linux dağıtımı olan Pardus Ulusal İşletim Sistemi hazırlanmıştır. Türkiye'de açık kod topluluğu 10 yılı aşkın bir süredir bulunmakta, Turkuaz, Gelecek Linux, İstanbulx, Boreas, Turkix, Truva Linux şeklinde dağıtımlar ve başka açık kodlu yazılımlar ve uygulamalar geliştirilmekte, açık şirketleri kurulmaktadır.

Açık kodlu yazılım toplulukları, şu görüşlerle açık ortamlarını desteklemektedir:

"Açık kodlu yazılımlar tutum ve güvenliğin ötesinde de bir ülke ekonomisi için önemlidir. Açık ortamları, teknoloji üretebilecek gençleri yetiştirmenin etkin yollarından biridir. İthal hazır çözümler yerine, ülke insanına güvenmek, ona yatırım anlama gelir. Açık , kendi okullarında gereksinimlerine nazaran uyarlanmış, güvenli, sağlam ve ucuz çözümler anlama gelir. Açık yazılımlar, mütevazı donanımları etkin kullanabilmek anlama gelir. Tüm üretim ve hizmet sektörlerinde bilişim maaliyeti gittikçe artmaktadır. Açık yazılımlar, en başta ruhsatlar sebebiyle bu maliyetleri düşürerek, yerli sanayici ve bilişimciye destek anlama gelir, ülkenin rekabet kabiliyeti çoğaltmak anlama gelir. Açık yazılımları, kapalı kod yazılımlarla kabiliyet ve verimde yarışacak konumdadır. Açık yazılımların tam rekabet ortamında kapalı yazılımlarla yarışması gerekir. Temel bilişim eğitimin marka bağımlılığı yaratmayacak, kullanıcıyı tüm alternatif düzlem (platform) ve ürünlerde çalışabilme kabiliyetini kazandıracak, ürünlere değil kavramlara ağırlık vermesi gerekir."

Açık yazılımları savunucularınca, bu tür yazılımların ülkelerin bilgi toplumu stratejisinde mühim rol oynaması gerektiği, ilgili tüm tarafların katkıları ile katılımcı bir süreçle bu stratejilerin belirlenmesi gerektiği, bilhassa yönetici düzeyinde çalışanların açık yazılımları seçeneğini maliyet ve verimlilik açısından değerlendirmeleri gerektiği belirtilmektedir.

Açık Kaynak Ekonomisi



Dünyada bir çok şirket daha önceleri gizli saklı tuttukları yazılım larını kısmen açmışlardır.
  1. Bir kısmı gizli saklı bir kısmı açık: IBM'in bir ürününden ortaya çıkan Eclipse entegre yazılım geliştirme ortamı buna çok güzel bir örnektir. Arada bir IBM Eclipse'in son halini alır kendi gizli saklı fazlasını ekler ve ayrı bir ürün ismiyle satar.
  2. Hepsi açık, kişisel kullanım özgür, ticari kullanım ücretli: Buna örnek olarak GPL/LGPL çift lisanslı yazılımlar gösterilebilir
  3. Hepsi gizli saklı, fakat açık lı bir temel uzerinde çalışır: Bu sonuncuya açık demek zor fakat yazılım üreticisinin açık hareketine uyum sağlamak zorunda kaldığını göstermesi bakımından garip. Buna örnek olarak Linux üstünde kullanılacak yazılım ya da Eclipse için plugin satan firmalar gösterilebilir.
Açık hareketinin ortaya çıkardığı bazı gerçekleri kendi yararlarına kullanma çabaları arasinda şu en mühim üç mevzu bunların başını çeker:
  • Tüketicinin kendisi hakkında pozitif yönde intiba edinmesi, parasız olan ürünün, yazılımcının teknik beceri seviyesi hakkında ve parasız olmayan öteki ürünleri hakkında reklam işlevi görmesi,
  • Parasız olan sürümü kullananların gereksinimleri arttığında kullanıcı ara yüzü alışkanlığı sebebiyle seçimlerini ayni ürünün ücretli ve daha işlevli sürümü yönünde kullanma ihtimalinin artması,
  • Açık kaynağin çok daha yüksek sayıda kullanıcı tarafınca denenmesi, hatalarının masrafsızca düzeltilmesi, hatta bazı eksiklerinin gönüllü yazılımcılarca yazılıp eklenmesi.
Bu firmalar bu işteki çıkar/özveri dengelerini, bir çok parametreyi gözleyerek ayarlar, çıkar seviyesini en yüksek tutmaya çalışırlar. Bu parametreler tüm giderler, satışlardan gelirler, rekabet durumu, pazar genişlemesi şeklinde ölçümlerdir. Bu mevzu alışılagelmisin haricinde bir ekonomik çözümleme disiplinidir, kuramları hemen hemen gelişme halindedir.


Yazılım (Software) Nedir?




Yazılım, değişik ve çeşitli görevler yapma amaçlı tasarlanmış elektronik araçların birbirleriyle haberleşebilmesini ve uyumunu sağlayarak görevlerini ya da kullanılabilirliklerini geliştirmeye yarayan makina komutlarıdır. Yazılım, elektronik aygıtların belirli bir işi yapmasını elde eden programların tümüne verilen isimdir. Bir başka deyişle, mevcud bir problemi çözmek amacıyla bilgisayar dili kullanılarak oluşturulmuş anlamlı anlatımlar bütünüdür.

Yazılım Çeşitleri



Sistem Yazılımları

Sistem yazılımları bilgisayar kullanımı için lüzumlu ana fonksiyonları sağlar ve bilgisayar donanımına ve sistemin yürütülmesine destek verir. Şu kombinasyonları ihtiva eder:
  • 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 mesuldür. 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ı ya da bilgisayar içindeki donanımı çalıştırmak ve denetlemek için ihtiyaç duyulan temel işlevselliği sağlar.

  • İşletim sistemi: Bilgisayar parçalarının; bellek ile diskler içinde veri alışverişi ya da monitöre görüntü sağlamak şeklinde görevleri uygulayarak beraber çalışmasına olanak sağlar. Ek olarak üst düzey sistem yazılımı ve uygulama yazılımlarının çalıştırılması için bir platform oluşturur.

  • Destek yazılım:Bilgisayarın çözümleme edilmesine, yapılandırılmasına, yönetilmesine ve optimize edilmesine destek verir.
Ek olarak 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 haiz olduğu işletim sistemini öncelikli olarak dikkate alarak bir bilgisayar alırlar. Fakat cep telefonu şeklinde aygıtları satın alan kişiler için bu durumun tersi geçerli olabilir. Bundan dolayı iPhone örneğinde olduğu şeklinde bu tür aygıtların sistem yazılımlarının, son kullanıcı tarafınca değiştirilmesi oldukça zor olsa gerek. Ek olarak sistem yazılımı çoğu zaman dahili ya da öncesinden yüklenmiş şekilde, yararlı ve hatta lüzumlu bir alt yapı kodu olarak vazife yapar. Sistem yazılımının haricinde, kullananların dokümanlar oluşturmasına, oyun oynamasına, müzik dinlemesine ya da İnternet'te gezinmesine olanak elde eden yazılımlara uygulama yazılımı denir.


Yazılım Ölçümleri




Yazılım ölçümü, bir yazılımın herhangi bir niteliğinin, ya da o yazılımın teknik özelliklerinin (specification) bir ölçümüdür. Nicel (quantitative) yöntemlerin öteki bilim dallarındaki başarı göstermiş uygulamaları sebebiyle bilgisayar bilimleri pratisyenleri ve teorisyenleri aynı yaklaşımların yazılım geliştirme için de uygulanması mevzusunda uzun uğraşlar vermişlerdir. Bir Yazılım Mühendisliği profesyoneli olan Tom DeMarco, "Ölçülemeyen şeyler denetlenemezler" demiştir.

Yaygın Olarak Kullanılan Yazılım Ölçümleri




Yaygın olarak kullanılan yazılım ölçümlerinden bazıları şunlardır:
  • Kod satır sayısı
  • Siklomatik karmaşıklık (Cyclomatic complexity)
  • Fonksiyon Noktası Analizi (Function Point Analysis)
  • Kod satırına düşen hata sayısı
  • Kod kapsama
  • Alan kişi gereksinimlerinde bulunan satır sayısı
  • Sınıfların ve arayüzlerin sayısı
  • Robert Cecil Martin'in yazılım paketi ölçümleri
  • Uyum (Cohesion)
  • Bağlaşım (Coupling)
Sınırlayıcı Etkenler
Eleştiriler
Ölçümlerde Hile Yapılması
Ölçümlerin Dengelenmesi
  • Proje takvimi
  • Boyut/Karmaşıklık
  • Maliyet
  • Kalite


Özgür yazılım nedir?




Özgür yazılım (İngilizcesi free software), kullanıcısına çalıştırma, kopyalama, dağıtma, araştırma, değişiklik yapma ve geliştirme özgürlükleri tanıyan yazılım türüdür. Tersi sahipli yazılımdır (İngilizcesi proprietary software).


Özgür yazılım ile kastedilen özgürlük, yazılımın kullanım hakları ile ilgilidir, ekonomik boyutu ile değil. Özgür yazılımlar çoğunlukla parasız olsalar da parasız olmak zorunda değildirler. İngilizce sözlükler "free" kelimesi için yirmiye yakın anlam sıralar. Bunlardan yalnız bir tanesi "parasız" iken geri kalanları özgürlük ve sınırlamaların olmaması (freedom) kavramlarına atıfta bulunur.

Tarihçesi




1950'lerden 1970'lerin başına kadar bilgisayar kullanıcılarının özgür yazılımla ilgili yazılım hürriyetlerine haiz olmaları normaldi. Yazılım çoğu zaman fertler içinde paylaşılır, kişilerin yazılım yaparak donanımlarını daha kullanışlı yapmalarını iyi karşılayan donanım üretilerinden dağıtılırdı. SHARE şeklinde kullananların ve satıcıların üye olduğu kuruluşlarla yazılım değiş dokuşu kolaylaştırmak hedeflenmişti. 1970'lerin ilk yıllarında durum değişti: yazılım harcamaları hızla yükselirken büyümekte olan yazılım endüstrisi, donanım üreticilerinin bilgisayar satışıyla birlikte verdikleri "yazılım demetleri", kiraya verilen bilgisayarların kâr getirmeyen yazılım desteğiyle rekabet başlamıştı. Bazı müşterilerin kendi gereksinimlerini daha iyi karşılamasıyla "özgür" yazılım masraflarının donanım harcamalarıyla bir araya gelmesini istemiyordu. 17 Ocak 1969'da gösterilen ABD Birleşik Devletleri IBM'ye karşı yazısında hükûmet, yazılım demetlerinin rekabet engelleyici olarak sıfatlandırdı. Bazı yazılım devamlı hürken sadece ödemeyle alınabilen yazılımlar artıyordu. 1970'ler ve 1980'lerde yazılım endüstrisi, bilgisayar programlarını yalnız kullananların kodu incelemesi ve değiştirmesini önleyen çalıştırılabilirler şeklinde dağıtmaya başlamasıyla teknik tedbirler almaya başladı. 1980'de copyright kanununun kapsamı bilgisayar programlarını içine aldı.


1983'te MIT Suni Zekâ Laboratuvurı'daki çökertici topluluğunun uzun soluklu üyesi Richard Stallman, bilgisayar endüstrisi ve kullanıcılarının kültürel değişiminden yıldığını açıklayarak GNU projesini îlan etti. GNU işletim sistemi için yazılım geliştirmesine Ocak 1984'te başlandı. Ekim 1985'te de Özgür Yazılım Vakfı kuruldu. Kendisi hür yazılımı tanımlayarak "copyleft" terimini yazılım hürriyeti garantilemek için çıkardı.


Bazı yazılımdışı endüstriler, kendi araştırma ve geliştirmeleri için özgür yazılım geliştirmeye benzer teknikler kullanmaya başladı. Sözgelişi bilim adamları, daha açık geliştirme süreçleri ararken mikroçip şeklinde donanımlar da copyleft lisanslarıyla geliştirilmeye başlandı (OpenCores projesi şeklinde). Creative Commons ve özgür kültür hareketi, özgür yazılım hareketinden çok etkilenmişlerdir.


Barındırdığı özgürlükler


Özgür Yazılım Vakfı'nın ifadesiyle özgür yazılım, belli başlı dört özgürlüğü barındırır:
  1. Özgürlük 0 : Her türlü amaç için yazılımı çalıştırma özgürlüğü.
  2. Özgürlük 1 : Yazılımın iyi mi çalıştığını araştırma ve kendi gereksinimleri doğrultusunda değişiklik yapma özgürlüğü. Yazılım koduna erişim bunun için bir ön şarttır.
  3. Özgürlük 2 : Kopyalarını dağıtma ve toplumla paylaşma özgürlüğü. Bir özgür yazılım herkesçe istenilen sayıda makineye kurulabilir, kopyası çıkarılabilir ve istenilen kimselere dağıtılabilir, hatta satılabilir.
  4. Özgürlük 3 : Yazılımı tüm toplumun yarar sağlayabileceği şekilde geliştirme ve geliştirilmiş haliyle yayınlama özgürlüğü. Yazılım koduna erişim bunun için de bir ön şarttır.
Bir yazılım, sadece tüm kullanıcıları bu hakların tümüne haiz oldukları vakit özgür bir yazılım olur. Bu özgürlüklere haiz olmak, kimseden izin almamayı ve izin için hiçbir karşılık ödememeyi de ihtiva eder.


Genel kanının aksine özgür bir yazılım, parasız dağıtılabileceği şeklinde ücretli de dağıtılabilir. Bu yüzden ticari yazılım olarak satılmasına engel yoktur.


Özgür yazılım, bir çok vakit açık kodlu yazılım terimi (open source) ile karıştırılmaktadır. Tüm özgür yazılımlar açık kodludur sadece tüm açık kodlu yazılımlar özgür yazılım olmayabilir.


Özgür yazılımlar açık kodlu yapıları yardımıyla, bünyesinde zararı dokunan bir amaç barındıran (gizli saklı verileri çalma şeklinde) kodlara haiz olup olmadığı, programlama bilen hepimiz tarafınca denetlenebilir. Güvenli yapısı yardımıyla Dünya'da bir çok ülkede askeri kuruluşda Linux işletim sistemi tercih edilmektedir.

Bazı özgür yazılım lisansları (mesela GNU GPL), yazılım kodlarının gelecekte de özgürlüğünü sürdürmesini güvence altına alırken bazı özgür yazılım lisansları bunu güvence altına almamaktadır.

Bazı özgür yazılım lisansları




Belli başlı bazı özgür yazılım lisansları aşağıda alfabetik olarak listelenmiştir:
  • Apache Lisansı
  • Avrupa Birliği Kamu Lisansı (EUPL)
  • BSD Lisansı
  • Eclipse Kamu Lisansı (EPL)
  • GNU Genel Kamu Lisansı (GPL)
  • GNU Kısıtlı Genel Kamu Lisansı (LGPL)
  • MIT Lisansı
  • Mozilla Kamu Lisansı (MPL)


Yazılım

isim
  • Bir bilgisayarda donanıma yaşam veren ve bilgi işlemde kullanılan programlar, yordamlar, programlama dilleri ve belgelemelerin tümü.
Birleşik Sözler
  • yazılım dizgesi
  • yazılım paketi
  • yazılım sistemi
Yazılım, değişik ve çeşitli görevler yapma amaçlı tasarlanmış elektronik araçların, birbirleriyle haberleşebilmesini ve uyumunu sağlayarak, görevlerini ya da kullanılabilirliklerini geliştirmeye yarayan makina komutlarıdır.
Yazılım, elektronik cihazların belirli bir işi yapmasını elde eden programların tümüne verilen isimdir.
Bir başka deyişle mevcud bir problemi çözmek amacıyla bilgisayar dili kullanılarak oluşturulmuş anlamlı ifadeler bütünüdür.


yazılım sistemi
isim
  • Bir bilgisayar sisteminde denetim işlerini gerçekleştirmek amacıyla geliştirilen yazılım, yazılım dizgesi.
Yazılım sistemi


Yazılım sistemi (İngilizce: Software system) bir bilgisayar sistemini (donanım ve yazılımın birleşimi) oluşturan yazılım tabanlı sistemdir. Yazılım mühendisliğindeki sistem kuramı yaklaşımlarıyla ile ilgilidir. Yazılım sistemleri alanı, büyük karmaşık yazılımların ana bilişenleri ve onlar arasındaki etkişimlerle uğraşır.






  • Lisanslı yazılım, demo yazılım, paylaşılan yazılım nedir?


  • Software hatasi aliyorum yardım edermisiniz?


  • Software ve Kalibrasyon nedir?


 

YORUMLAR

Ad

Anlamı Nedir?,22,Biyoloji Konu Anlatımı,25,Cilt Bakımı,82,Coğrafya Ders Anlatımı,978,Genel,46,Güzel Sözler,16075,Music,1,Ne Nedir?,32164,Resimli Sözler,4111,Saç Sağlığı,119,Sağlık Bilgileri,1596,Soru-Cevap,10236,Sports,1,Tarih Konu Anlatımı,5,Teknoloji,36,Türk Dili ve Edebiyatı Konu Anlatımı,2,
ltr
item
Ders Kitapları Konu Anlatımı: Yazılım (Software) Nedir?
Yazılım (Software) Nedir?
Ders Kitapları Konu Anlatımı
http://ders-kitabi.blogspot.com/2017/06/yazlm-software-nedir.html
http://ders-kitabi.blogspot.com/
http://ders-kitabi.blogspot.com/
http://ders-kitabi.blogspot.com/2017/06/yazlm-software-nedir.html
true
5083728687963487478
UTF-8
Tüm Yazılar Yüklendi hiçbir mesaj bulunamadı HEPSİNİ GÖR Devamı Cevap Cevabı iptal Silmek Cevabı iptal Home SAYFALARI POST Hepsini gör SİZİN İÇİN ÖNERİLEN ETİKET ARŞİV SEARCH Tüm Mesajlar İsteğinizle eşleşme bulunamadı Ana Sayfaya Dön Pazar Pazartesi Salı Çarşamba Perşembe Cuma Cumartesi Pazar Mon Tue Wed Thu Fri Sat January February March April May June July August September October November December Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec Şu anda... 1 dakika önce $$1$$ minutes ago 1 saat önce $$1$$ hours ago Dün $$1$$ days ago $$1$$ weeks ago more than 5 weeks ago İzleyiciler Takip et THIS PREMIUM CONTENT IS LOCKED STEP 1: Share to a social network STEP 2: Click the link on your social network Tüm Kodunu Kopyala Tüm Kodunu Seç Tüm kodlar panonuza kopyalanmıştır. Kodları / metinleri kopyalayamıyor, kopyalamak için lütfen [CTRL] + [C] tuşlarına (veya Mac ile CMD + C'ye) basınız Table of Content