Bir sistem mimarisi veya çoklu sistemlerin mimarisi; sistemin yapısını, davranışını ve biçimselliğini tanımlayan kavramsal modeldir.[1] Bir mimari tanımı; sistemin yapıları ve davranışları hakkında mantıksallığı destekleyecek şekilde organize edilen ilişkiselliğin standart bir açıklaması veya temsilidir.
Bir sistem mimarisi, sistemin uygulanması için birlikte çalışan sistem bileşenlerini, geliştirilmiş ve genelleştirilmiş sistemleri içerebilir. Sistem mimarisini tanımlamada kullanılmak üzere diller yaratılmıştır, bunlara toplu olarak, mimari tanımlama dili(ADL) denilmektedir.[2]
Çeşitli kuruluşlar sistem mimarisini farklı şekillerde tanımlamışlardır:
Sistem mimarisi, mevcut (veya gelecekteki) bir sistemin temsilcileri olarak düşünebilir. Bu tasvirler başlangıçta genel, üst düzey bir işlevsel organizasyonu tanımlamaktadır ve kademeli olarak daha detaylı ve somut açıklamalarla rafine edilmiştir.
Sistem mimarisi, bir sistemi içeren öğelerin bilgi içeriğini, bu öğeler arasındaki ilişkileri ve bu ilişkileri düzenleyen kuralları belirtir. Bir mimari tanımı; donanımlar, yazılımlar, dokümantasyonlar, kaynaklar, manuel prosedürler, kuruluşlar ya da kişiler tarafından meydana gelen ilişkilerden oluşabileceği gibi, mimari bileşenleri ve bu bileşenler arasındaki ilişkiler dizisi anlamına da gelmektedir.
Bir sistem mimarisi öncelikle sistemin bileşenleri veya alt sistemleri arasındaki iç arabirimlerle, sistem ile dış ortamın ilişkisiyle ve özellikle kullanıcı arabirimi üzerinde yoğunlaşır. (Bilgisayar sistemlerinin özel olması durumunda, bu yeni özel arabirim; bilgisayar-insan arabirimi, insan-bilgisayar arabirimi(AKA) veya insan-makine arayüzü(CHI) olarak adlandırılabilir.
Sistem mimarisi mühendisliği(SAE) ise sistemin mimarisini etkili bir şekilde uygulamak için kullanılan yöntem ve disiplin ile ilgili sistem mimarilerini analiz,tasarım ve geliştirilmesi üzerine çalışmaktadır.[11]
SAE bir yöntemdir.Çünkü bir dizi kısıtlama içinde sistemin mimarisini üretmek veya değiştirmek için çözümler geliştirilmeli ve çalışılan ortamın mevcut işlevselliğini bozmamalıdır.
SAE bir disiplindir.Çünkü mimarideki bilgi birimleri, sistemin bir dizi kısıtlama içinde geliştirilmesinin en etkili yolu olarak nitelikli bilgiyi esas alır.
Sistemlerin mimarisi, binlerce yıldır bilgisayar biliminin dışındaki alanlarda, özellikle de sivil mimaride geliştirilen uygulama ve teknikler üzerine yoğunlaşmaktadır.
Dijital bilgisayarların gelişinden önce, elektronik ve diğer mühendislik disiplinleri, bugün hala yaygın olarak kullanılan "sistem" terimini kullandı. Bununla birlikte, sayısal bilgisayarların gelişimiyle ve yazılım mühendisliğinin ayrı bir disiplin olarak gelişmesiyle birlikte, çoğu zaman mühendislik ürünü eserler, yazılım eserleri ve bütünleşik eserler arasında ayrım yapmak gerekliydi. Bilgisayar programından yoksun programlanabilir bir donanım eseri veya bilgi işlem makinesi yaratmak imkânsızdır.Buna karşın bir yazılım eseri veya programı da, uygun bir (donanım) makinenin ardışık durumlarını değiştirmek için kullanılmadıkça, aynı derecede imkânsızdır. Bununla birlikte, bir donanım makinesi ve onun programlaması neredeyse bütünü kapsayacak şekilde belirlenemeyen soyut ve fiziksel görev sayısını gerçekleştirecek şekilde tasarlanabilir.Bilgisayar mühendisliği ve yazılım mühendisliği disiplinleri (ve genellikle iletişim gibi diğer mühendislik disiplinleri) içinde, sistem terimi, gerekli olan tüm öğeleri ve fonksiyonlarını (genelde hem donanım hem de yazılımı) içermektedir.
Dolayısıyla, mühendislik disiplinleri içindeki bu alan, bir sistemin genelde programlanabilir donanım makinesini ve onun içerdiği programı ifade eder. Ve bir sistem mühendisi, hem donanım, hem yazılım ve daha özel olarak donanım ve yazılım arasındaki ve özellikle cihazın tamamı ile kullanıcısı arasındaki etkileşim ile ilgilenmelidir. Donanım mühendisi, donanım aygıtıyla (daha fazla veya daha az) ilgilenir; Yazılım mühendisi (daha fazla veya daha az) sadece bilgisayar programı ile ilgilenir.Ve sistem mühendisi, programın donanım aygıtı içinde düzgün çalışabildiğini görmekten, harici çevreden, özellikle kullanıcı ile makinenin düzgün bir şekilde etkileşime girmesinden ve amaçlanan işlevini yerine getirme yeteneğinden sorumludur.
Bir sistem mimarisi hem yazılımın hem de donanımın öğelerini kullanır ve böyle bir bileşik sistemin tasarımını etkinleştirmek için kullanılır. İyi bir mimari, sistemin mevcut ve öngörülebilir gereksinimlerini, açıkta hiçbir şey kalmamış, temiz şekilde sınırlanmış alt sistemlere bölen bir 'bölümleme şeması' veya algoritma tanımlamalıdır.Yani, özel, kapsayıcı ve ayrıntılı bir bölümleme şeması içermelidir.Bölümlemenin temel amacı, elemanları alt sistemlere yerleştirmektir, böylece aralarında gereken minimum bağımlılık sağlanır. Hem yazılım hem de donanımda, iyi bir alt sistem, anlamlı bir "nesne" olarak görülme eğilimi gösterir. Dahası, iyi bir mimari, kullanıcının gereksinimlerine kolay bir haritalama ve kullanıcının gereksinim doğrulama testlerini sağlar. İdeal bir mimaride, her öğenin bütün gereksinim ve sınaması için en az bir eşleme ya da tanımlama bulunmalıdır.
Sistem mimarilerinin çeşitli türleri aşağıdaki gibi tanımlanmıştır:[12]