Arama

Yazılım (Software) Nedir?

Güncelleme: 22 Şubat 2017 Gösterim: 27.243 Cevap: 10
ThinkerBeLL - avatarı
ThinkerBeLL
VIP VIP Üye
27 Şubat 2009       Mesaj #1
ThinkerBeLL - avatarı
VIP VIP Üye

YAZILIM


a. Bilş.
Sponsorlu Bağlantılar
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 konusunda yapılan 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, özel bir problemim çözmeye uyarlanmış yazılım.
Kaynak: Büyük Larousse

Son düzenleyen Safi; 22 Şubat 2017 00:12
X-Sözlük Konusu: ne demek anlamı tanımı.
Tanrı varsa eğer, ruhumu kutsasın... Ruhum varsa eğer!
ThinkerBeLL - avatarı
ThinkerBeLL
VIP VIP Üye
4 Mart 2009       Mesaj #2
ThinkerBeLL - avatarı
VIP VIP Üye

Yazılım Sanatı (Software Art)


Yazılım Sanatı (Software Art), sanatçılar tarafından sanat eseri olarak sergilenmek amacıyla oluşturulmuş yazılım uygulamaları gibi, yazılımın veya yazılımla ilgili kavramların önemli rol oynadığı sanat biçimlerine denir.
Sponsorlu Bağlantılar
Yazılım sanatı 1990'ların sonlarından itibaren sanatsal bir disiplin olarak yer edinmeye başlamıştır. Yayımlanması ve tartışılması sık sık WWW üzerinden yapıldığı için internet sanatı ile de yakından bağlantılıdır. World Wide Web'deki bilgiye alternatif sunumlar getiren
tarayıcı sanatı (browser art), hem internet hem de yazılım sanatı kapsamına sokulabilecek bir örnektir.

2000 yılından sonra yazılım sanatına verilen önem artmış, Transmediale (Berlin), Prix Ars Electronica (Linz) ve Readme (Helsinki) gibi uluslararası sanat festivallerinde kendine önemli bir yer bulmuştur. Böylelikle daha geniş bir eleştirmen ve akademisyen kitlesine ulaşmıştır. Bu gelişmelerin yanısıra, henüz çok yeni olması nedeniyle, yazılım sanatının ayrı bir sanat dalı olarak geçici bir akım olup olmadığı tartışma konusudur.

Önemli Sanatçılar ve Çalışmaları
  • Londralı sanatçı grubu I/O/D 1998 tarihli Web Stalker projesinde siteleri ayrı ayrı sayfalar halinde göstermek yerine haritalarını çıkaran alternatif basit bir web tarayıcısı yaratmıştır.
  • Alexei Shulgin erken dönem yazılım sanatının önde gelen isimlerindendir.
  • Amy Alexander yaptığı ç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 çalışması, 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 internet sanatı hakkında Türkçe makaleler yayınlar ve etkinlikler düzenler.

Son düzenleyen Safi; 22 Şubat 2017 00:14
asla_asla_deme - avatarı
asla_asla_deme
VIP Never Say Never Agaın
28 Ekim 2009       Mesaj #3
asla_asla_deme - avatarı
VIP Never Say Never Agaın

Ücretsiz / Serbest Yazılım (Freeware)


Freeware, kullanıcının belirli bir süre sonra yazılımı kullanmaya devam etmek için ücret ödemek durumunda olduğu sharewareden farklı olarak, ücretsiz 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 konusudur. Freeware yazımcıları genellikle "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 iletişim yazılımını geleneksel yollardan pazarlamayı pahalı bulduğu için alternatif pazarlama yolları arayan Andrew Fluegelman tarafından kullanılmıştır. Fluegelman önceleri, bu terimi bir marka gibi kullanmıştı; fakat daha 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 bilinen bir yolla yapmıştı.
Son düzenleyen Safi; 21 Şubat 2017 23:51
Şeytan Yaşamak İçin Her Şeyi Yapar....
ThinkerBeLL - avatarı
ThinkerBeLL
VIP VIP Üye
3 Mart 2010       Mesaj #4
ThinkerBeLL - avatarı
VIP VIP Üye

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


Tasarım desenleri veya 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: Kentler, Binalar, Yapılar" (A Pattern Language: Towns, Buildings, Construction ISBN 0-195-01919-9), 1979'da "Ebedi 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 nasıl belgeleneceği de konu edilmiştir.
1987'deki uluslararası Nesneye Yönelik Programlama, Sistemler, Diller ve Uygulamalar
(OOPSLA: Object Oriented Programming, Systems, Languages, and Applications) konferansına kadar desenlerle ilgili bir çalışma ortaya çıkmamış, bu tarihten sonra ise Grady Booch, Richard Helm, Erich Gamma ve Kent Beck başta olamak üzere örüntülerle ilgili makale ve sunumlar yayınlamışlardır. 1994'de Erich Gamma, Richard Helm, Ralph Johnson ve John Vlissides tarafından yayınlanan "Tasarım Örüntüleri: Tekrar 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, kısaca GoF) Yazılım Tasarım Örüntüleri


Yazılım tasarım örüntüleri 1994 tarihinde "Tasarım Örüntüleri: Tekrar 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 yayınlanan 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 ismi, kitabın isminin uzun olmasından dolayı konuyla 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 sınıf örnekleri - class instances) nasıl yaratılacağı hakkında öneriler sunar. Anafikir, iyi bir yazılımın, içinde barındırdığı nesnelerin nasıl yaratıldığından bağımsız olarak tasarlanması gerekliliğidir. Diğer bir deyişle, nesnelerin nereden ve nasıl yaratıldığı, ait oldukları yazılımın işleyişini etkilememeli; yeni özellikler eklenmesine ve değişikliklere karşı sorun oluşturmamalıdır.
Yazılım sistemleri geliştikçe, nesnel bileşimler (object composition), sınıf kalıtımına (class inheritence) göre daha fazla önem kazanır. Bunun nedeni, yazılım sistemleri için basit temel davranış (behavior) şekillerinin tanımlanması üzerine kurulu tasarımların, sabit davranışlara dayalı tasarımlara göre daha esnek olmasındandır. Diğer bir deyişle, nesnelere davranışların bileşim olarak eklenmesi, daha sonra bu davranışların yazılımın gelişimine göre değiştirilmesine olanak sağlar. Bu durumda, geliştirilen yazılım için gereken temel davranış şekillerine dayalı bir tasarım, nesne arayüzleri (interface) değiştirmeden farklı ya da daha karmaşık davranışların kullanılabilmesini olanaklı kılar.
Ancak, nesnel bileşimler yoluyla temel davranışları sağlayan nesnelerin örneklenmesi, ana ya da kalıtım yoluyla davranış değişikliğine uğratılarak türetilmiş sınıflardan nesne oluşturmak daha zordur. Yaratım örüntüleri bu zorlukları aşmak amacıyla kullanılabilecek yazılım örüntüleri içerir.
Yaratım örüntüleri, hem hangi somut sınıfların (concrete class) nesne örneklemesinde kullanıldığını, hem de bu örneklerin nasıl yaratılıp bir araya getirildiğini yazılım sisteminden saklarlar.

  • Soyut Fabrika (Abstract Factory)

Tek arayüz ile bir nesne ailesinin farklı platformlarda yaratılmasını olanaklı kılar. Bu sayade yazılım uygulaması farklı platfromlara davranış değişikliğine uğramadan taşınabilir. Soyut fabrika 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 üzerinden gerektiğince parça parça yaratılmasını sağlar. Kullanıcı nesne grubunu kullandıkça nesne grubu gereken yönde yapılanır. Kullanılmayan parçalar gereksiz yere yaratılarak kaynak harcamaz.
  • Fabrika Yöntemi (Factory Method)

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

Karmaşık ve/veya 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 kaynaklar gereksiz yere meşgul edilmeden yaratılırlar.
  • Yegane (Singleton)

Bir sınıftan sadece bir tane nesne yaratılacak şekilde kısıtlama sağlar. Söz konusu 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 sağlayan öneriler sunar. Sınıf yapı örüntüleri ve nesne yapı örüntüleri olmak üzere ikiye ayrılır.
Sınıf yapı örüntüleri kalıtım kullanarak sınıf 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)

Farklı kaynaklardan 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 zamanla 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 olası kılar.
  • Vitrin (Façade)

Karmaşık bir yapının bir arada tutularak tek bir arayüz üzerinden 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ından değil kullanıcı tarafından saklanır.
  • Vekil (Proxy)

Karmaşık, pahalı ve oluşturulması güç nesneleri kullanmak için arayüz taklidini olası kılar. Kullanılacak olan nesnenin fiziksel 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 arasında nasıl atanacağı ve yazılımın gerektirdiği çözüm yöntemlerinin nesnelerce nasıl kullanılacağı hakkında öneriler sunar. Davranış örüntüleri nesne ve sınıf kalıpları yanısıra nesneler arasındaki iletişim ile ilgili örüntüler de sunar. Davranış örüntüleri tasarımcının nesneler arası iletişim ve iletişim yöntemlerine yoğunlaşmasını sağlar.
Aynen Yapısal örüntülerde olduğu gibi, davranış örüntüleri de ikiye ayrılır: sınıf davranış örüntüleri ve nesne davranış örüntüleri.
Sınıf davranış örüntüleri kalıtım kullanarak davranışların sınıflar arasında dağıtılmasını olanaklı kılar. Nesne davranış örüntüleri ise nesne bileştirme yoluyla tek bir nesnenin kolayca sağlayamayacağı davranışların bir nesne grubu ile sağlanmasını olanaklı kılar.
  • Sorumluluk(-lar) Zinciri (Chain of Responsibility)

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

Kullanıcı(nesnel) isteklerinin nesnelere dönüştürülerek işlenmesini olası kılar. Bu sayede farklı kullanıcıların istekleri nesnel kayıtlara dönüştürülerek kuyruk ya da kayıtlarda tutulabilir. Bu sayede yapılan 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 gramer kurallarını birer sınıf olarak tanımlayarak kolayca uygulanmasını sağlar. Gramer 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 nasıl temsil edildiklerine ya da gerçeklendiklerine bakılmaksızın, sırasıyla ulaşılmasını sağlar. Bu sayede farklı şekilde temsil edilen nesnelere tek bir arayüz üzerinden ulaşılabilir.
  • Arabulucu (Mediator)

Birbiri ile bağlatılı olarak çalışan nesnelerin aynı çatı altında tutularak tek bir noktadan(yani arabulucu tarafından) 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 seviye kullanıcı nesneler ise sadece arabulucu ile bağlantı kurarlar.
  • Yadigar (Memento)

Yadigar uygulama yazılımı içerisinde önemli roller üstlenen 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 otomatik olarak haberdar olmasına olanak sağlar. Gözlem altındaki nesne, kimler tarafından izlendiğinden bağımsız olarak işlevini sürdürür. Zaman içinde yeni gözlemcilerin katılımı ya da ayrılması mümkündür. Bu sayede uygulama zaman içinde davranış değiştirebilir.
  • Durum (State)

Bir nesnenin davranışını durumuna göre 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ı sorunu çö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, farklı 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 üzerindeki bazı işlem adımları alt sınıflar tarafından işlenmesine olası 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 farkında olmazlar.
  • Ziyaretçi (Visitor)

Bileşik bir yapı üzerine yeni işlemler eklenmesine olanak sağlar. Ziyaretçi nesne bileşik yapı içindeki nesneleri tek tek ziyaret ederek gerekli 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 olumsuz yönde etkilediği yönünde eleştirmektedir. Bazılarına göre de, yazılım örüntüleri programla dilinde veya metodolojisindeki kısıtlamaları ve sorunları göstermektedir ve örüntüyü tespit etmek son aşama olmamalıdır. Yeni programla dillerinde bu örüntüleri gerektirecek durumları engelleyecek çözümler dilin kendisinden sağlanmalıdır. Örneğin bu görüşün taraftarları nesne tabanlı programlama olarak bilinen kavramların, daha önceki programlama dillerinde tasarım örüntüsü olarak tavsiye edilen kavramlar olduklarını, ama nesne tabanlı programlama dillerinini çıkmasıyla bu kavramların dil içinde belirsiz bir şekilde kullanıldığını ve artık bir örüntü olmadıklarını savunmaktadırlar.
Son düzenleyen Safi; 22 Şubat 2017 00:16
Tanrı varsa eğer, ruhumu kutsasın... Ruhum varsa eğer!
ThinkerBeLL - avatarı
ThinkerBeLL
VIP VIP Üye
3 Şubat 2011       Mesaj #5
ThinkerBeLL - avatarı
VIP VIP Üye

Açık Kaynak Yazılım


Açık kaynak yazılım (İngilizce: Open-source software) veya açık kaynaklı yazılım veya kaynağı açık yazılım, kaynak kodu isteyen herkese 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ştirme özgürlüğü sağlamasıdır. Açık kaynak kodlu yazılımlar, uyarlanabilir, sağlam, hızlı ve güvenlidir. Açık kaynak kod dünyası, yeni bir yazılım üretme biçimi, yeni iş modelleri sunmaktadır. Dünyanın her tarafından bilişim uzmanlarınca imece yöntemi ile endüstri standartlarında geliştirilen açık kaynak kod yazılımları, insanlığın ortak malıdır.
Yazılımcılar yazılımları geliştirirken kullandıkları programlama dilleriyle kaynak dosyaları oluştururlar. Daha sonra derlemeli ve yorumlamalı dillerde (C, C++, Java, C#, Pascal, Python, Ruby) bu dosyayı derleyerek çalıştırılabilir hale çevirirler. Açık kaynaklı yazılım savunucuları her üretilen ve dağıtılan yazılımla birlikte kaynak 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 kaynaklı 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 kaynaklı yazılımlar, en küçüğünden cep telefonu, saat gibi 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 göre basitleştirilebilen, sağlamlaştırılabilen, güçlendirilebilen yazılımlardır. Açık kaynak 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 gibi birçok ülke, kamu kurumlarında açık kaynak 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ı gibi kuruluşlar güvenlik ve tasarruf gibi gerekçelerle açık kaynak yazılımlarını önermektedir. Dünya üzerindeki hemen her ülke kendi gereksinimlerine göre açık kaynak 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 kaynak kod topluluğu 10 yılı aşkın bir süredir bulunmakta, Turkuaz, Gelecek Linux, İstanbulx, Boreas, Turkix, Truva Linux gibi dağıtımlar ve başka açık kaynak kodlu yazılımlar ve uygulamalar geliştirilmekte, açık kaynak şirketleri kurulmaktadır.
Açık kaynak kodlu yazılım toplulukları, şu görüşlerle açık kaynak ortamlarını desteklemektedir:
"Açık kaynak kodlu yazılımlar tasarruf ve güvenliğin ötesinde de bir ülke ekonomisi için önemlidir. Açık kaynak 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 demektir. Açık kaynak, kendi okullarında gereksinimlerine göre uyarlanmış, güvenli, sağlam ve ucuz çözümler demektir. Açık kaynak yazılımlar, mütevazı donanımları etkin kullanabilmek demektir. Tüm üretim ve hizmet sektörlerinde bilişim maaliyeti gittikçe artmaktadır. Açık kaynak yazılımlar, en başta ruhsatlar nedeniyle bu maliyetleri düşürerek, yerli sanayici ve bilişimciye destek demektir, ülkenin rekabet yeteneği artırmak demektir. Açık kaynak yazılımları, kapalı kaynak kod yazılımlarla yetenek ve verimde yarışacak konumdadır. Açık kaynak yazılımların tam rekabet ortamında kapalı kaynak 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 yeteneğini kazandıracak, ürünlere değil kavramlara ağırlık vermesi gerekir."
Açık kaynak yazılımları savunucularınca, bu tür yazılımların ülkelerin bilgi toplumu stratejisinde önemli rol oynaması gerektiği, ilgili tüm tarafların katkıları ile katılımcı bir süreçle bu stratejilerin belirlenmesi gerektiği, özellikle yönetici düzeyinde çalışanların açık kaynak 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 tuttukları yazılım kaynaklarını kısmen açmışlardır.
  1. Bir kısmı gizli 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 fazlasını ekler ve ayrı bir ürün ismiyle satar.
  2. Hepsi açık, kişisel kullanım serbest, ticari kullanım ücretli: Buna örnek olarak GPL/LGPL çift lisanslı yazılımlar gösterilebilir
  3. Hepsi gizli, ama açık kaynaklı bir temel uzerinde çalışır: Bu sonuncuya açık kaynak demek zor ama yazılım üreticisinin açık kaynak hareketine uyum sağlamak zorunda kaldığını göstermesi bakımından ilginç. Buna örnek olarak Linux üzerinde kullanılacak yazılım ya da Eclipse için plugin satan şirketler gösterilebilir.
Açık kaynak hareketinin ortaya çıkardığı bazı gerçekleri kendi yararlarına kullanma çabaları arasinda şu en önemli üç konu bunların başını çeker:
  • Tüketicinin kendisi hakkında olumlu intiba edinmesi, bedava olan ürünün, yazılımcının teknik beceri seviyesi hakkında ve bedava olmayan diğer ürünleri hakkında reklam işlevi görmesi,
  • Bedava olan sürümü kullananların ihtiyaçları 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ından denenmesi, hatalarının masrafsızca düzeltilmesi, hatta bazı eksiklerinin gönüllü yazılımcılarca yazılıp eklenmesi.
Bu şirketler 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 gibi ölçümlerdir. Bu konu alışılagelmisin dışında bir ekonomik analiz disiplinidir, kuramları henüz gelişme halindedir.
Son düzenleyen Safi; 22 Şubat 2017 00:16
Tanrı varsa eğer, ruhumu kutsasın... Ruhum varsa eğer!
Mira - avatarı
Mira
VIP VIP Üye
3 Temmuz 2013       Mesaj #6
Mira - avatarı
VIP VIP Üye

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ı 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 Ç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:
  • 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: 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 alt yapı 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.
Son düzenleyen Safi; 22 Şubat 2017 00:17
theMira
Mira - avatarı
Mira
VIP VIP Üye
6 Temmuz 2013       Mesaj #7
Mira - avatarı
VIP VIP Üye

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 diğer bilim dallarındaki başarılı uygulamaları nedeniyle bilgisayar bilimleri pratisyenleri ve teorisyenleri aynı yaklaşımların yazılım geliştirme için de uygulanması konusunda 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
  • Müşteri 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
Son düzenleyen Safi; 22 Şubat 2017 00:18
theMira
_Yağmur_ - avatarı
_Yağmur_
VIP VIP Üye
19 Temmuz 2013       Mesaj #8
_Yağmur_ - avatarı
VIP VIP Üye

Özgür yazılım nedir?


Özgür yazılım (İngilizcesi free software), kullanıcısına çalıştırma, kopyalama, dağıtma, inceleme, değiştirme 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 ücretsiz olsalar da ücretsiz olmak zorunda değildirler. İngilizce sözlükler "free" kelimesi için yirmiye yakın anlam sıralar. Bunlardan sadece bir tanesi "bedava" 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 sahip olmaları normaldi. Yazılım genellikle fertler arasında 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 gibi kullanıcıları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 masrafları hızla yükselirken büyümekte olan yazılım endüstrisi, donanım üreticilerinin bilgisayar satışıyla beraber 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 ihtiyaçlarını daha iyi karşılamasıyla "özgür" yazılım masraflarının donanım masraflarıyla bütünleşmesini istemiyordu. 17 Ocak 1969'da yayınlanan Amerika 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 her zaman hürken ancak ödemeyle alınabilen yazılımlar artıyordu. 1970'ler ve 1980'lerde yazılım endüstrisi, bilgisayar programlarını sadece kullanıcıları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 Yapay Zekâ Laboratuvurı'daki çökertici topluluğunun uzun süreli ü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" kavramını 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ı. Mesela bilim adamları, daha açık geliştirme süreçleri ararken mikroçip gibi donanımlar da copyleft lisanslarıyla geliştirilmeye başlandı (OpenCores projesi gibi). Creative Commons ve serbest 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 nasıl çalıştığını inceleme ve kendi gereksinimleri doğrultusunda değiştirme özgürlüğü. Yazılım kaynak 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 kaynak koduna erişim bunun için de bir ön şarttır.
Bir yazılım, ancak bütün kullanıcıları bu hakların tümüne sahip oldukları zaman özgür bir yazılım olur. Bu özgürlüklere sahip olmak, kimseden izin almamayı ve izin için hiçbir bedel ödememeyi de içerir.

Genel kanının aksine özgür bir yazılım, ücretsiz dağıtılabileceği gibi ücretli de dağıtılabilir. Bu nedenle ticari yazılım olarak satılmasına engel yoktur.

Özgür yazılım, çoğu zaman açık kaynak kodlu yazılım kavramı (open source) ile karıştırılmaktadır. Bütün özgür yazılımlar açık kaynak kodludur ancak bütün açık kaynak kodlu yazılımlar özgür yazılım olmayabilir.

Özgür yazılımlar açık kaynak kodlu yapıları sayesinde, bünyesinde zararlı bir amaç barındıran (gizli verileri çalma gibi) kodlara sahip olup olmadığı, programlama bilen herkes tarafından denetlenebilir. Güvenli yapısı sayesinde Dünya'da pek çok ülkede askeri kuruluşda Linux işletim sistemi tercih edilmektedir.
Bazı özgür yazılım lisansları (örneğin GNU GPL), yazılım kodlarının gelecekte de özgürlüğünü sürdürmesini garanti altına alırken bazı özgür yazılım lisansları bunu garanti 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)
Son düzenleyen Safi; 22 Şubat 2017 00:19
"İnşallah"derse Yakaran..."İnşa" eder YARADAN.
Safi - avatarı
Safi
SMD MiSiM
22 Haziran 2015       Mesaj #9
Safi - avatarı
SMD MiSiM
Yazılım
isim
  • Bir bilgisayarda donanıma hayat 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ı 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ı ifadeler bütünüdür.
Son düzenleyen Safi; 21 Şubat 2017 23:56
Safi - avatarı
Safi
SMD MiSiM
21 Mart 2016       Mesaj #10
Safi - avatarı
SMD MiSiM
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
Vikipedi, özgür ansiklopedi

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.
SİLENTİUM EST AURUM

Benzer Konular

1 Mayıs 2015 / Misafir Cevaplanmış
18 Eylül 2009 / capoo Soru-Cevap
14 Eylül 2009 / davut72 Soru-Cevap
22 Nisan 2008 / virtuecat Bilgisayar
1 Temmuz 2009 / UnknowN Bilgisayar