• Anasayfa
  • Hakkımızda
  • Etkinlikler
  • Destek Verin
  • Site Haritası
  • Giriş Yap
  • Üye Ol
  • Facebook
  • Twitter
  • RSS
Yazılım Dilleri
  • Soru - Cevap
  • EĞİTİM SETİ
  • KATEGORİ
  • DUYURU
  • TEKNOLOJİ HABERLERİ

Son Sorular

  • 8/2/2020 11:38:31 PM'Basit' Yazılım Dili
  • 6/25/2020 3:18:13 PMderleme hatası
  • 12/11/2017 4:49:15 PMWindows Hizmeti Hk.
  • 4/23/2016 12:55:33 AMC programlama 2 oyun

Popüler Sorular

  • 5/27/2012 5:49:50 AMAsp.Net ile Date time alana veri ekleyemiiyorum ?
  • 4/2/2012 12:45:18 AM.exe uzantılı dosya için dijital imza nerde nasıl alınır.
  • 5/12/2012 8:44:49 AMAcil Yardım
  • 5/27/2012 1:46:51 PMveri tabanı bağlantısı
  • .Net Framework
  • 8085 Assembly
  • Active Directory
  • ADO.NET
  • Android
  • Apple IOS
  • Arduino
  • ASP.NET
  • ASP.NET MVC
  • Blackberry
  • C#.Net
  • C++
  • CCG Framework
  • CISCO
  • CSS
  • Diğer
  • Dreamweaver
  • Entity Framework
  • Exchange Server
  • Gömülü Sistemler
  • GSM Programlama
  • Güncel
  • Güvenlik
  • HTML5
  • Java
  • Javascript / JQuery
  • Jira
  • Kariyer ve İş Yaşamı
  • LibreOffice
  • LINQ
  • Linux
  • Matlab
  • Microsoft Dynamics CRM
  • Mobil Uygulama Geliştirme
  • MySQL
  • NoSQL
  • Oracle
  • OWIN
  • PFSense
  • PHP
  • Powershell
  • Python
  • Sanallastirma
  • SAP-ABAP
  • SCOM 2012
  • SEO
  • Sharepoint 2010
  • Sharepoint 2013
  • Silverlight
  • Sistem Analiz ve Tasarımı
  • SQL Server
  • Symantec
  • TFS
  • T-SQL
  • Ubuntu
  • VB.NET
  • Veritabanı Yönetim Sistemleri
  • Visual Studio
  • VMware
  • WCF
  • Web Hosting
  • Windows 8
  • Windows Azure
  • Windows Phone 7.1
  • Windows Phone 8
  • Windows Server
  • Wordpress
  • WPF
  • Xamarin
  • XNA
  • Yazılım Mühendisliği
  • Yöneylem Araştırması
  • ASP.NET MVC
  • Entity Framework
  • Javascript / JQuery
  • LINQ
  • PHP

Son Duyurular

IPhone 6 ve IPhone 6 Plus Teknik Özellikleri ve Fiyatı

IPhone 6 ve IPhone 6 Plus Teknik Özellikleri ve Fiyatı

DELL'in Yeni Projesi: USB Bilgisayar (Project Ophelia)

DELL'in Yeni Projesi: USB Bilgisayar (Project Ophelia)

Windows Phone Youtube Uygulaması Google ve Microsoft ile Yeniden Yapılıyor

Windows Phone Youtube Uygulaması Google ve Microsoft ile Yeniden Yapılıyor

Android ve Apple IOS Telefonlar için Blackberry Messenger (BBM)

Android ve Apple IOS Telefonlar için Blackberry Messenger (BBM)

Nokia Lumia 925 Teknik Özellikleri, Lumia 928 ve 920 ile Karşılaştırması

Nokia Lumia 925 Teknik Özellikleri, Lumia 928 ve 920 ile Karşılaştırması

LG Optimus G Pro Özellikleri ve Gözle Video Oynatma Teknolojisi

LG Optimus G Pro Özellikleri ve Gözle Video Oynatma Teknolojisi

MİMARİ TASARIM-I (ARCHITECTURAL DESIGN-I)

Merhaba değerli Yazılımcı arkadaşlar, Bugün yine sizlerle mesleğimizin unutulmuş yanını gün ışığına çıkarmak ve bu konuda Türkçe kaynak sıkıntısını bir nebzede olsa azaltmak adına sizlerle Yazılım Mühendisliği’nin en önemli belki de yapı taşlarından olan Yazılım Mimarisi Tasarımı konusunu ele alacağım.

14.08.2012

Yazar: Muhammed ÖNAL (Google+)

Kategori: Yazılım Mühendisliği

12784

 YAZILIM MÜHENDİSLİĞİ

MİMARİ TASARIM-I
(ARCHITECTURAL DESIGN-I)

Merhaba değerli Yazılımcı arkadaşlar,

Bugün yine sizlerle mesleğimizin unutulmuş yanını gün ışığına çıkarmak ve bu konuda Türkçe kaynak sıkıntısını bir nebzede olsa azaltmak adına sizlerle Yazılım Mühendisliği’nin en önemli belki de yapı taşlarından olan Yazılım Mimarisi Tasarımı konusunu ele alacağım. Mesleğimizin unutulmuş yanı diye giriş yaptım. Evet, aslında birçoğumuz temel kavramları bilmeden bir yazılım projesine ait uygulamalarımızı direk kod tarafından başlayarak programlamaya başlıyoruz. Oysa profesyonel anlamda bir yazılım geliştiricisinin olmazsa olmazları arasından mutlaka Yazılım Mimarisi Tasarımı olmalıdır. Mimari tasarım ne kadar kaliteliyse, performansı yüksek, güvenli, kullanışlı ve esnek ise o kadar kolay programlamaya aktarılabilir ve bir o kadarda sistemlere uyarlanabilir. Yazımızı 4 bölüm şeklinde ele alacağım ve her bölümü başlı başına bir bölüm niteliğinde sizlerin paylaşımına sunacağım. Sözlerimizi fazla uzatmadan konumuza giriş yapalım ve bilmemiz gereken kavramları hep birlikte irdeleyerek sizlerle paylaşımda bulunalım.

 

Yazılım Mimarisi ve Yazılım Mimarisi Tasarımı’ndaki amacımız;

 Sizler bu yazımızı okuduktan sonra şu bilgiler hakkında bilgi sahibi olacaksınız:

{C}-          Yazılımda Mimari Tasarımın niçin önemli olduğunu,

{C}-          Mimari Tasarım süreçleri esnasında Sistem Mimari’nin nasıl yapıldığı hakkında karar vermeyi,

{C}-          Sistem Mimarisinin kurulumunda denenmiş en iyi yolları ve Mimari Örneklerin fikirlerini takdim etmeyi,

{C}-          Sık kullanılan Uygulama sistemlerinin farklı tiplerini bileceksiniz.

Bölüm I’de ise sizlerle Architectural Design Decisions(Mimari Tasarım Kararları)’nı irdeleyeceğiz.

Bölüm II’de Architectural Views (Mimari Görüşler) konusunu,
Bölüm III’de Architectural Patterns(),
Bölüm IV’de ise Application Architectures(), konularını ele alacağız.

O zaman dilerseniz şimdi, önce Mimari Tasarım/ Yazılım Mimarisi hakkında ön bilgilerimizi verelim ve yavaş yavaş Mimari Tasarım Kararları’na giriş yapalım;

Mimari Tasarım:

Mimari Tasarım, Sistemin tüm yapısının tasarımı ve sistemin nasıl kurulduğunu anlamayla ilgilidir. Daha net olarak ifade edecek olursak, Sistemin nasıl bir yapı üzerine oturması gerektiği hakkında karar verilmesidir.

 

Örneğin: Bir yapı inşa ederken kaç katlı olup olmayacağını, tipini (apartman mı? /Villa mı? /Müstakil konut mu?/İş Hanı mı?/Alışveriş Merkezi mi… Vb.) belirlemek gerekir.


Mimari Tasarım (Architectural Design), Yazılım Tasarım Sürecinin(Software Design Process)  ya da Sistem Tasarım sürecinin ilk aşamasıdır. Ana sistem bileşenlerini ve aralarındaki ilişkiyi belirleme işini kapsayan bir süreçtir.

 

Aynı zamanda Mimari Tasarım süreci, Tasarım(Design) ve Gereksinim Mühendisliği(Requirements Engineering) süreçleri arasında bağlantı oluşturur.


Yazılım Mimarisi:
Yazılım Mimarisi, bunun tanımını yapabilmek için yine Mimari Tasarım açıklamasına geri dönmemiz gerekir. Yani, “Bir sistem tasarlarken gerekli alt sistemleri belirleyerek ve alt sistemlerin kontrolü ve iletişimi için bir yapı tanımlarız. İşte yaptığımız bu tanımlama işine Mimari tasarım diyorduk.”
Yaptığımız bu tasarım sürecinin çıktısını (output) Yazılım Mimarisi olarak açıklarız.

Mimari tasarımda muhtemel olması gereken aktiviteler şunlardır.

    -  Sistem Şekillendirilmesi
    -  Kontrol Modelleri
    -  Modüler Yapının Oluşturulması

Mimari ve Sistem özelliklerine göz atacak olursak:

Yazılım Mimarisi önemlidir, Çünkü bir sistemin performansını(Performance), dayanıklılığını(Robustness), dağıtılabilirliğini(distributability) ve bakım kolaylığını(Maintainability) etkiler.

Uygulama için seçilen belirli yapı ve stil, fonksiyonel olmayan (non-functional) sistem gereksinimlerine(System Requirements) bağlıdır.

{C}>        Mimari Tasarım içinde Sistem yapılanması,

. Sistemi etkileşim içerisinde olan alt sistemlere ayrıştırma işlemdir.

. Mimari Tasarım genellikle sistem yapısına genel bir yapı kazandıran bir blok diyagramı olarak açıklanabilir. Her diyagram içindeki her kutu bir bileşeni gösterir.Ok işaretleri ise , Okların yönünde bileşenden bileşene geçen veri veya kontrol sinyalleridir.

. Blok Diyagramlar, Sistem yapısının yüksek seviyeli resmini gösterir.

     İnformal diyagramlar, zayıf mimariyi gösterir.


Aşağıdaki Ambalaj Robotu Kontrol Sistemi şekline baktığımız zaman Sistem Mimarisi’ni anlamamıza yardımcı olacaktır. Bu şekil bize mimarinin soyut modelini gösterir.


 

Aşağıdaki Mimari Tasarım örneği ise Hırsızlara karşı oluşturulan Alarm Sistemi


Yukarıdaki her bir kutu içinde gösterilen mekanizmalar Sub System dediğimiz Ana sistemin Alt sistemleridir.

Bunları açıklarsak;

Sub System ( Alt Sistem)

Açıklama

Hareket Sensörü

Sistem tarafından oda içindeki hareketlerin denetlenmesini ortaya çıkarır.

Kapı Sensörü

Binadaki ya da Yapılardaki Dış kapıların açılmasını denetler.

Alarm Denetleyicisi

Sistemin işleyişini kontrol eder.

Siren

Şüpheli veya davetsiz misafirler içeri girdiğinde uyarı amaçlı duyulabilir sesler yollar.

Ses Sentezleyicisi

Şüpheli seslerin yerini tespit amacıyla bir ses mesajı verir.

Telefon Alarmı(Çağrısı)

Güvenlik amacıyla dış çağrılar yapar. Örneğin; Polisi çağırır.

 

Örnekler çoğaltılabilir, Örneğin bu gibi mimari tasarım örneğine en güzel örneklerden biride Hava Trafik Kontrol Sistemini Mimari modeli örnek verilebilir.

Pratikte, Gereksinim Mühendisliği (Requirements Engineering) süreci ve Mimari Tasarım süreci arasında kısmen birbirini kapsayan önemli bir ilişki vardır.

Yazılım Mimarisi, iki soyut derecede tasarlanabilir, Bunlar, Büyük-Geniş(Large) ve Küçük(Small) mimarisidir.

{C}-          Küçük Sistem Mimarisi, kişisel programların mimarisi ile ilgilidir.

{C}-          Büyük Sistem Mimarisi, Kompleks sistemlerin program bileşenleri, programları ve diğer sistemlerin mimarisi ile ilgilidir.

Bu bilgiler ışığında, Yazılım Mimarisi dökümantasyonu ve belirgin tasarımın 3 önemli avantajı vardır. Bunları aşağıdaki gibi maddeler halinde verec ek olursak;

{C}1-      Stakeholder Communication

{C}2-      System Analysis

{C}3-      Large-Scale Reuse

MİMARİ TASARIM KARARLARI ( Architectural Design Decisions)

Mimari Tasarım, yaratıcı bir süreçtir, geliştirilecek sistem türüne bağlı olarak değişir. Ancak, bazı genel kararlar tüm tasarım süreçlerinde ortak kullanıldığı için sistem türüne bağlı olarak değişiklik arz etmez.

Eğer bir sistem hakkında genel kararları, biz maddeler halinde verecek olursak;

{C}-          Kullanılabilir bir genel uygulama mimarisi var mı?

-          İşlemcilerin veya çekirdeklerin sayısı sistem içine dağıtımı nasıl olacak?

-          Hangi mimari stiller uygun?

-          Sistem yapılandırması için hangi yaklaşım kullanılacak?

-          Sistem modüllere ( ya da yapısal bileşenler alt sistem bileşenlerinde nasıl ayrılacak)

        Nasıl ayrılacak?

-          Mimari tasarım nasıl değerlendirilecek?

{C}-          Sistemin Mimarisi nasıl belgelenecek?

Mimari Yeniden Kullanımı ( Architecture Re-Use)

{C}Ø  Her yazılım sistemi benzersizdir.

Aynı alandaki sistemler genellikle benzer mimarilere sahiptir. Örneğin; Uygulama ürün hatları belli müşteri ihtiyaçlarına göre farklılık gösteren bir çekirdek mimari etrafında yapılandırılır.

 

{C}Ø  Gömülü Sistemler ve Kişisel Bilgisayarların tasarımları için, genellikle sadece bir işlemci kullanılır.

 

Mimari Stiller (Architecture Styles)

{C}Ø  Bir sistemin mimari modeli genel bir mimari model ya da stile uyar.

Bu stillerin bilinmesi sistem mimarisini tanımlama problemini kolaylaştırır. Bununla birlikte, birçok büyük sistem heterojen yapıya sahiptir ve tek bir mimari stille yetinmezler.

Mimari Modeller (Architecture Models)

Son olarak, Control modelleme Süreçlerinde, Kontrol altına alınan bileşenlerin nasıl çalıştırıldığı hakkında karar vermektir.

Mimari Tasarım Sürecinin üretimi, bir Mimari tasarımı belgelemek için kullanılır.
Mimari Modellerin gelişimi aşağıdaki Model yapılarını içerir.

{C}Ø  Static Structural Model (Durağan Yapısal Model) ana sistem bileşenlerini gösterir.

{C}Ø  Dynamic Process Model (Dinamik Süreç Modeli) sistemin işleyiş yapısını gösterir.

{C}Ø  Arayüz Modeli (Interface Model) alt sistem arayüzlerini tanımlar.

{C}Ø  Veri Akış Modeli (Data Flow/Relationship Model) gibi ilişki modelleri alt sistem ilişkilerini tanımlar.

{C}Ø  Dağıtım Modeli (Distribution Model) alt sistemlerin bilgisayarlar arasında nasıl dağıtıldığını gösterir.


NOT: Mimari Modellerimizi ayrı bir makalemizde başlı başına değerlendirerek açıklamalarda bulunacağız.

Önemli: Özel Mimari Stil ve Yapılar  için Fonksiyonel olmayan (non-functional) sistem gereksinimlerine bağlı bir sistem seçmek için:

 

Performans (Performance)

Güvenlik (Security)

Güven (Safety)

Kullanışlılık (Availability)

Sürdürülebilirlik (Maintainability)

 

Gibi özellikler olmazsa olmazlardandır.

 

 

Bugünlükte bizden bu kadar diyor ve makalemizin sonuna gelmiş bulunuyoruz. Kafanıza takılan soru işaretleri var ise mail yoluyla sorularınızı iletebilirsiniz.

Yazılım Mühendisliğine dair bir sonraki yazımızda görüşmek dileğiyle.

 NOT:
Bu makalemizde de gerek yerli gerek yabancı kaynakları tarayarak ve gerek kendi bilgi ve tecrübelerimizden kattığımız Yazılım Mühendisliği Ana bilim dalında mesleğin dikkate alınmayan yanlarından hatta yapı taşlarından olan Mimari Tasarım & Yazılım Mimarisi hakkında bir giriş yaparak Mimari Tasarım Kararları ve Modeller üzerinde durduk. Yazılım Mühendisliği Bölüm II de kaldığımız yerden devam edeceğiz. Yazılım dünyasının bu görkemli dünyasına adım atan arkadaşlara ve Öğretim Görevlilerine yol gösterici ve ders notları içeriğinin hazırlanmasında faydalı olması dileğiyle. Bir sonraki makalemizde görüşmek dileğiyle şimdilik hoşça kalın.

Kaynak:  Muhammed ÖNAL,2012. Yazılım Mühendisliği & Proje Yönetimi
               Ian Sommerville 9.th edition, Software Engineering
              


Saygılarımla;

Muhammed ÖNAL
Bilgisayar Mühendisi
RFID Sistemleri Uzmanı
BT Yönetişimcisi

Blog:  http://www.muhammedonal.com
Web : http://www.yazilimdilleri.net


Copyright © Muhammed ÖNAL , 2012

 

Yazar Hakkında

Muhammed ÖNAL

Muhammed ÖNAL

www.muhammedonal.com

Bilgisayar Mühendisi | RFID Sistemleri Uzmanı | BT Yönetişimcisi | Strateji Planlama ve İş Geliştirme 2015 itibariyle sağlık sektöründe Bilgi Sistemleri Yöneticisi ve Üst yönetim Stratejik Planlama ve İş Geliştirme Koordinatörü pozisyonunda çalışmaktadır.

Sosyal Medya

ORANLAR

  • 12784izleme

Arkadaşlarınla Paylaş

  • Tweet

0 Yorum

Yorum Yaz / Soru Sor

Lütfen yorum yazmak veya soru sormak için üye girişi yapınız.

Son Yorumlar

  • Böyle bir sayfalama ağ trafiğini hafifleti...
  • Böyle bir sayfalama ağ trafiğini hafifleti...
  • Merhaba, ellerinize sağlık çok yardımcı ol...
  • Merhaba Bu uygulama örneğinden ASP.net ...
  • Hocam Link başka sayfaya yönlendiriyor.

En Güncel Sorular

  • Bilgilendirme maili (C#.Net)
  • Power Pivot (Sharepoint 2010)
  • BigInteger, BigDecimal (Asp.Net ve Asp.Net MVC)
  • visual C# ile asp nette veritabanı islemleri (Asp.Net ve Asp.Net MVC)
  • Share Point ile Dosya Arşiv Yönetim Sistemi yapılabilir mi ? (Sharepoint 2010)

En Son Cevap Verilen Sorular

  • Bilgilendirme maili
  • BigInteger, BigDecimal
  • visual C# ile asp nette veritabanı islemleri
  • Share Point ile Dosya Arşiv Yönetim Sistemi yapılabilir mi ?
  • txt dosyasına veri yazma

Twitter

Takip et: @yazilim_dilleri

En Çok Okunanlar

Elif BAYRAKDAR

C# ile SQL Server Bağlantısı, Insert, Update ve Delete Sorguları

23.05.2013

  • 124174
  • 0
Hakan Keskin

C# ile Windows Service Projesi Oluşturma, Debug Etme ve Setup Hazırlama

17.12.2013

  • 71418
  • 0
batuhan avlayan

Php - Mail Gönderme (İletişim Formu)

02.09.2013

  • 51996
  • 0

Sponsorlar

KODLAB
Pluralsight
Exchange server is
Office 365
YAZILIM DİLLERİ
Yukarı Çık
  • Hakkımızda
  • Facebook
  • Twitter
  • RSS

© Yazılım Dillerinin Buluşma Noktası | Kaynak belirtildiği sürece makaleler kopyalanabilir.
YazilimDilleri.Net sitesinde yer alan kullanıcıların oluşturduğu tüm içeriklerin yayınlanması ile ilgili yasal yükümlülükler içeriği oluşturan kullanıcıya aittir, YazilimDilleri.Net hiçbir şekilde sorumlu değildir.

Kapat

Giriş Yap

Kullanıcı Adı

Şifre

Şifremi Unuttum

KULLANICI GİRİŞİ