İçeriğe atla

SOLID Yazılım İlkeleri

Yazılım mühendisliğinde S.O.L.I.D. nesnesel tasarımları daha anlaşılır, esnek ve sürdürülebilir kılmayı amaçlayan, beş tasarım ilkesinin anımsatıcı bir kısaltmasıdır. Bu ilkeler, Amerikalı yazılım mühendisi ve eğitmen Robert C. Martin tarafından tanıtılan ilkelerin bir alt kümesi olan bu ilkeler, ilk olarak 2000 yılında yayımlanan Tasarım İlkeleri ve Tasarım Modelleri makalesinde tanıtılmıştır.[1][2][3][4]

S.O.L.I.D. ilkeleri:

  • Tek sorumluluk ilkesi: Bir sınıf, ancak bir tek sebeple değiştirilmelidir.[5][6]
  • Açıklık - Kapalılık İlkesi: Yazılım varlıkları, genişlemeye açık ama değişikliğe kapalı tutulmalıdır.[7]
  • Liskov İkame İlkesi: Temel sınıflara işaretçiler veya referanslar kullanarak bağlanan metotlar, temel sınıflardan türetilmiş sınıfların nesnelerini bilmeden onları kullanabilmelidir.[8]
  • Arayüz Ayrımı İlkesi: İstemciye özel arayüzler, genel amaçlı bir tek arayüzden daha iyidir[4][9]
  • Bağımlılığın Tersine Çevrilmesi: Somutlamalara değil, soyutlamalara odaklan.[4][10]

S.O.L.I.D. kısaltması, 2004'te Michael Feathers tarafından takdim edildi.[11]

S.O.L.I.D. ilkeleri herhangi bir nesnesel tasarım için geçerli olsa da, çevik geliştirme veya uyarlanabilir yazılım geliştirme gibi metodolojiler için temel bir felsefe oluşturabilir.[3]

Ayrıca bakınız

Kaynakça

  1. ^ Robert C. Martin. "Principles Of OOD". butunclebob.com. 17 Nisan 2006 tarihinde kaynağından arşivlendi. Erişim tarihi: 17 Temmuz 2014. . (Note the reference to "the first five principles", although the acronym is not used in this article.) Dates back to at least 2003.
  2. ^ Robert C. Martin. "Getting a SOLID start". objectmentor.com. 17 Eylül 2013 tarihinde kaynağından arşivlendi. Erişim tarihi: 19 Ağustos 2013. 
  3. ^ a b Sandi Metz (May 2009). "SOLID Object-Oriented Design". YouTube. 29 Şubat 2020 tarihinde kaynağından arşivlendi. Erişim tarihi: 13 Ağustos 2019.  Talk given at the 2009 Gotham Ruby Conference.
  4. ^ a b c Martin, Robert C. (2000). "Design Principles and Design Patterns" (PDF). 6 Eylül 2015 tarihinde kaynağından (PDF) arşivlendi. 
  5. ^ "Single Responsibility Principle" (PDF). objectmentor.com. 2 Şubat 2015 tarihinde kaynağından (PDF) arşivlendi. 
  6. ^ Agile Software Development, Principles, Patterns, and Practices. Prentice Hall. 2003. s. 95. ISBN 978-0135974445. 6 Kasım 2021 tarihinde kaynağından arşivlendi. Erişim tarihi: 25 Temmuz 2022. 
  7. ^ "Open/Closed Principle" (PDF). objectmentor.com. 5 Eylül 2015 tarihinde kaynağından (PDF) arşivlendi. 
  8. ^ "Liskov Substitution Principle" (PDF). objectmentor.com. 5 Eylül 2015 tarihinde kaynağından (PDF) arşivlendi. 
  9. ^ "Interface Segregation Principle" (PDF). objectmentor.com. 1996. 5 Eylül 2015 tarihinde kaynağından (PDF) arşivlendi. 
  10. ^ "Dependency Inversion Principle" (PDF). objectmentor.com. 5 Eylül 2015 tarihinde kaynağından (PDF) arşivlendi. 
  11. ^ Clean Architecture: A Craftsman's Guide to Software Structure and Design. 2018. s. 58. ISBN 9780134494166. 25 Temmuz 2022 tarihinde kaynağından arşivlendi. Erişim tarihi: 25 Temmuz 2022.  Yazar |ad1= eksik |soyadı1= (yardım)

İlgili Araştırma Makaleleri

<span class="mw-page-title-main">Açık kaynak</span> ücretsiz dağıtım ve ürüne erişim hakkında felsefe

Açık kaynak, kaynak kodun; kopyalanması, değiştirilebilmesi ve yeniden dağıtım için serbestçe kullanıma sunulmasıdır. Açık kaynak yalnızca kaynak koda erişim anlamına gelmez. Kodların başkaları tarafından herhangi bir telif ücreti ödemeden kullanılabilmesi, değiştirilmesi ve yeniden dağıtımı gibi çeşitli haklar vermesi gerekir. Bunun için ürün, açık kaynak tanımına uyan bir lisans kullanmalıdır.

<span class="mw-page-title-main">Thomas Robert Malthus</span> İngiliz ekonomist (1766-1834)

Thomas Robert Malthus, İngiliz nüfus bilimci ve politik iktisat teorisyeni. Karamsar kuramlarıyla ünlenen Malthus, her ne kadar daha çok "Thomas Malthus" olarak anılsa da kendisi "Robert Malthus" olarak tanınmayı daha çok tercih etmiştir.

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

Nesne Yönelimli Çözümleme ve Tasarım, bir sistemin/sistem modülleri setinin/organizasyonun/işletme biriminin gereksinimlerinin çözümlenmesinde ve uygun bir çözümün tasarımında nesne ile modelleme tekniklerini kullanır. Modern nesne yönelimli çözümleme ve tasarım yöntemlerinin çoğu, gereksinim, tasarım, uygulama, test ve dağıtım süreçleri boyunca kullanım senaryoları üzerine kuruludur. Kullanım Senaryoları, nesne yönelimli programlama ile birlikte ortaya çıkmış olmasına rağmen yordamsal programlanan sistemlerde de işe yaramaktadır.

<span class="mw-page-title-main">Tıp etiği</span> Hekimlik uygulamalarına ilişkin ahlaki ilkeler sistemi

Tıp etiği, tıbbın ve sağlık alanındaki bilimsel ve pratik çalışmaların etik yönden değerlendirilmesi ve ahlaki ikilemlere bir çözüm bulunmasını hedefleyen disiplindir. Genel konusu insan yaşamıdır.

<span class="mw-page-title-main">Kullanıcı arayüzü</span> bir kullanıcının bir makineyle etkileşime girdiği ve makineyi kontrol ettiği araçlar

Kullanıcı arayüzü ya da kullanıcı arabirimi, insanların bir makine, cihaz, bilgisayar programı ya da karmaşık aletlerle etkileşimini sağlayan yöntemlerin bileşkesine verilen addır.

<span class="mw-page-title-main">Bilgisayar destekli tasarım</span>

Bilgisayar destekli grafik-tasarım, bir tasarımın oluşturulmasına, değiştirilmesine, analizine veya optimizasyonuna yardımcı olmak için kullanılan bir yazılım programı. CAD yazılımı, tasarımcının üretkenliğini ve tasarım kalitesini artırmak, dokümantasyon yoluyla iletişimi geliştirmek ve üretim için bir veritabanı oluşturmak için kullanılır. Üç boyutlu ve iki boyutlu tasarımlar için farklı programlar kullanılabilir. Siemens PLM NX, SOLIDWORKS, Autodesk Maya, AutoCAD, CATIA bu programlardan bazılarıdır.

<span class="mw-page-title-main">R (programlama dili)</span> istatistik analizi için kullanılan programlama dili

R, istatistiksel hesaplama ve grafikler için yazılım ortamı olup aynı zamanda programlama dilidir. R Foundation tarafından desteklenen ve GNU Tasarısının parçası olan bir özgür yazılımdır. Yeni Zelanda Auckland Üniversitesinden Ross Ihaka ve Robert Gentleman tarafından ortaya çıkarılan R, hâlihazırda R Geliştirme Çekirdek Ekibi tarafından geliştirilmektedir. S programlama diline benzeyen R, S'nin uyarlaması olarak değerlendirilebilir.

<span class="mw-page-title-main">GNU Projesi</span> Özgür yazılım projesi

GNU Tasarısı, toplu işbirliğini temel alan bir özgür yazılım tasarısıdır. Richard Stallman tarafından Massachusetts Teknoloji Enstitüsü'nde 27 Eylül 1983 tarihinde kamuoyuna duyurulmuştur. Tasarının hedefi işbirliği yoluyla özgür yazılımlar geliştirip dağıtarak bilgisayar kullanıcılarının bilgisayarlarını ve benzeri araçlarını kendi istekleri doğrultusunda özgürce kullanmalarını sağlamaktır. Bu tasarının temelinde kullanıcıların yazılımı çalıştırma, paylaşma, inceleme ve değiştirme konularında özgür olmaları yatar. GNU yazılımları bu özgürlükleri dağıtıldıkları lisans ile yasal olarak güvence altına alır, dolayısıyla GNU yazılımları özgür yazılımlardır.

Özel mülk yazılım ya da sahipli yazılım, yazılımın yaratıcısının, yayıncısının veya diğer hak sahibi ortaklarının fikrî mülkiyet hakkını ve telif hakkını kendi elinde tuttuğu bilgisayar yazılımıdır. Yazılımın alıcılarına, yazılımı özgürce paylaşma veya değiştirme hakkı vermez. Özel mülk yazılımlar, mülk sahipleri tarafından ücretli ya da ücretsiz olarak yayınlanabilir.

Gestalt psikolojisi veya gestaltizm, bilişsel süreçler içerisinde özellikle algı ve algısal örgütlenme konularında yoğunlaşmış psikoloji teorisidir. Yirminci yüzyılın ilk yarısında Almanya'da ortaya çıkmıştır. Gestalt psikolojisi kaotik görünen bir dünyada anlamlı bir algıya sahip olmamızın temelde hangi kanunlara dayandığını anlamaya çalışır. Gestalt psikolojisinin ana prensibi zihnin kendi kendisini algıladığı şeylerde bir bütün görmeye organize etmesidir.

<span class="mw-page-title-main">Malzeme Tasarımı</span>

Material Design Google tarafından 2014 yılında geliştirilen bir tasarım dilidir. Google 2014 Google I/O konferansında, 25 Haziran 2014 tarihinde Materyal Tasarımı açıkladı. Origamiden ilham alan düzen, Microsoft'un "Metro" temasının daha pastel ve kâğıtlaşmış halini andırıyor. Bu, Google Now-da tanıtılan "Kart" motifleri üzerine genişlenir. Materyal Tasarımında grid tabanlı düzenleri, duyarlı animasyonlar ve geçişler, dolgu ve aydınlatma ve gölgeler gibi derinlik etkileri daha liberal kullanır. Tasarımcı Matías Duarte bunu "gerçek kâğıt gibi, dijital malzeme genişletmek ve akıllıca reform olabilir" gibi, belirtti. Malzemenin fiziksel yüzeyleri ve kenarları vardır. Dikişler ve gölgeler dokunmada neler yapabileceğiniz hakkında anlam vermektedir. "Google, yeni tasarım dilinin kâğıt ve mürekkepe dayandığını belirtiyor. Google, Mayıs 2021'de Android 12 sistemini piyasaya sürerken, artırılmış animasyonu, daha büyük düğmeleri ve kullanıcının duvar kağıdından özel UI temalarının oluşturulabilmesini vurgulayan "Material You" olarak bilinen bir konsepti açıkladı.

<span class="mw-page-title-main">Metro (tasarım dili)</span> Microsoft tarafından geliştirilen tasarım dili

Microsoft Windows için önceki arayüz için Windows Aero, sonraki arayüz için Akıcı Tasarım Sistemi sayfasına bakın.

<span class="mw-page-title-main">Nokia X platform</span>

Nokia X platform, Bir Linux tabanlı mobil işletim sistemi ve yazılım platformudur. ilk olarak Nokia, sonradan Microsoft Mobile tarafından tarafından geliştirildi. C, C++, Java dilinde yazılmıştır. 24 Şubat 2014 tarihinde tanıtılan sistem Android'den çatallıdır ve Nokia X ailesinin tüm cihazlarında kullanılır.

Cocoa, masaüstü işletim sistemi macOS için Apple'ın yerel nesne yönelimli programlama ve uygulama programlama arayüzüdür (API).

<span class="mw-page-title-main">Grady Booch</span> Amerikalı yazılımcı

Grady Booch, Ivar Jacobson ve James Rumbaugh ile Birleşik Modelleme Dili'ni (UML) geliştirmesiyle tanınan Amerikalı bir yazılım mühendisidir. Yazılım mimarisi, yazılım mühendisliği ve işbirliğine dayalı geliştirme ortamlarındaki yenilikçi çalışmaları ile uluslararası alanda tanınmaktadır.

<span class="mw-page-title-main">Craig Larman</span>

Craig Larman 1958 yılında Kanada doğan bir bilgisayar bilimcisi, yazar ve organizasyonel geliştirme danışmanıdır. Bas Vodde ile en iyi LeSS formülasyonu ve ürün ve yazılım geliştirme üzerine birkaç kitabı ile tanınmaktadır.

Bu liste kimyasal proses tesislerinin kütle ve enerji dengelerini simüle etmek için kullanılan yazılımların bir listesidir. Bu simülasyon yazılımları ile yapılabilen uygulamalar arasında tasarım çalışmaları, mühendislik çalışmaları, tasarım denetimleri, darboğaz giderme çalışmaları, kontrol sistemi doğrulanması, proses tasarımı, proses modelleme, proses simülasyonu, dinamik simülasyon, operatör eğitim simülatörleri, boru hattı yönetim sistemleri, üretim yönetim sistemleri ve dijital ikizler gibi çeşitli çalışmalar bulunmaktadır.

<span class="mw-page-title-main">Tek sorumluluk ilkesi</span>

Tek sorumluluk ilkesi (TSİ), "Bir birimin sadece bir etkene karşı sorumlu olması gerektiği" şeklinde bir bilgisayar programlama ilkesidir. Etken terimi, birimde değişiklik gerektiren bir küme için kullanılır.

<span class="mw-page-title-main">Simulink</span>

Simulink çok alanlı dinamik sistemlerin modellenmesi, simülasyonu ve analizi için MATLAB tabanlı bir grafik programlama ortamıdır. Birincil arayüzü bir grafiksel blok diyagram aracı ve özelleştirilebilir bir blok kütüphaneler kümesidir. MATLAB ortamının geri kalanıyla sıkı bir entegrasyon sunar ve MATLAB'ı çalıştırabilir ya da ondan komut dosyası yazılabilir. Simulink, otomatik kontrol ve dijital sinyal işleme alanlarında çok alanlı simülasyon ve model tabanlı tasarım için yaygın olarak kullanılmaktadır.