Yazılım Mimarisi

Altan Emre Demirci
ucuncubinyil
Published in
2 min readOct 18, 2022

Bir bina inşasına başlamadan projelendirme aşamasında mutlaka mimarlar tarafından mimarisi tasarlanır. Tıpkı bu işlem gibi yazılım projesi projelendirilmeden önce planlanması gerekli ilk adımda mimari tasarımıdır. Bu tasarıma “Yazılım Mimarisi” bunu yapan kişi veya kişilere de “Yazılım Mimarı” denir.

Mimari, yazılım uygulamasında kullanılacak donanımın, ağların ve diğer bileşenlerle nasıl etkileşime gireceğinin ana hatlarıyla eksiksiz bir şekilde belirlenmesi ve dokümantasyon haline getirilmesidir. Yazılım mimarisi sayesinde uygulama geliştirilirken ortaya çıkabilecek aksilikleri en aza indirmek amaçlanır.

Yazılım Mimarisi Özellikleri

İşlevsellik: Geliştirilen yazılımın yazılma amacına göre kullanılabilirlik performans düzeyini ifade eder.

Güvenilirlik: Uygulamanın belirtilen test aşamalarında istenilen işlevselliği sunabilme kabiliyetini ifade eder.

Kullanılabilirlik: Yazılım uygulamasının ne düzeyde erişilebilir ve kullanılabilir olduğunu belirler.

Performans: Server - client arasında request gönderim süresi, istek yanıtlama süresi, çıktı ve üretkenlik gibi kriterler göze alınarak yapılan tahmini ifade eder.

Desteklenebilirlik: Programcıların geliştirilen yazılımı bir platformda başka bir platforma en az revize ile aktarabilme durumudur.

Kendine Güven: Yazılım desteğini sağlayan bağımsız servislerden hehangi birinin güncellenmesi veya kesintiye uğramasında minimum performans kaybı ile optimum düzeyde çalışabilirliğini ifade eder.

Yazılım mimarisini yukarıda bahsedilen özelliklere sahip olması ve başarılı bir mimari tasarım olması için Yazılım Mimarisi İlkeleri ‘ne (S.O.L.I.D Principles) bağlı kalmalıdır.

SOLID Yazılım Prensipleri Nelerdir ?

Her yazılım geliştiricinin bilmesi gereken S.O.L.I.D. Prensipleri yazılım geliştirmenin en temel prensipleri olarak kabul edilmektedir.

S — Single-responsibility principle

Bir class veya function’a sadece ve sadece tek bir sorumluluğu yerine getirmesine dayanmaktadır. Tek bir amaç için değiştirilebilir o da o class veya function’a yüklenen sorumluluktur.

O — Open-closed principle

ÖZET: Bir sınıf ya da fonksiyon tanımlandığı özellikleri korumalı ve revize edilmeye izin verilmemelidir. Sahip olduğu davranış değiştirilmeden yeni özellikler kazanabilmelidir.

L — Liskov substitution principle

Kodlamada bir değişiklik yapmadan alt sınıfları, inheritance yapıldıkları super(üst) sınıfların yerine kullanabilmeliyiz.

I — Interface segregation principle

Yükümlülüklerin(sorumlulukları) hepsini tek bir interface’e toplamak yerine daha özelleştirilmiş birden fazla interface oluşturmalıyız.

D — Dependency Inversion Principle

Sınıflar arası bağımlılıklar olabildiğince az olmalıdır özellikle üst seviye sınıflar alt seviye sınıflara bağımlı olmamalıdır.

--

--