Katmanlı Tasarım Yaklaşımı

Bir yazılım sistemini tasarlarken sistemi kullanıcı arayüzünden veritabanına kadar birbiriyle etkileşim halindeki çeşitli katmanlardan ya da üst üste bloklardan oluşan bir bütün olarak düşünmek gerekir. Burada en üst katman kullanıcı arayüzü, en alt katman ise veritabanı olarak düşünülebilir. Tabi ki her sistemin en alt katmanı veritabanı olmak zorunda olmadığı gibi en üst katmanın kullanıcı arayüzü olmak zorunda değildir. Ancak genelde böyle olduğunu düşünmek çok da yanlış olmayacaktır. Genellikle de veritabanı katmanının üzerinde bir Veri Erişim Katmanı (Data Access Layer - DAL), DAL'ın üzerinde ya da onunla bütünleşik bir Persistence katmanı, daha üzerinde de Business Layer dediğimiz sistem çapındaki işleyişi denetleyen katman yer alır. Sistemin gereksinimlerine göre bu katmanların sayısı arttırılabilir ya da azaltılabilir.

Yazılım sistemi geliştirirken katmanlardan oluşan yapısal bir düzen oluşturmanın çeşitli avantajları vardır:
* Fonksiyonları belirli katmanları kodlamak daha kolaydır ve daha az hata ile sonuçlanır.
* Sistemi bu katmanları kullanarak oluşturmak daha az karmaşık ve daha az zahmetlidir.
* Sistemi yeni gereksinimlere ve değişikliklere adapte etmek daha kolaydır.
* Hata (bug) bulmak ve gidermek daha kolaydır.
* Sistemin başka yazılımcılar tarafından anlaşılması ve öğrenilmesi daha kolaydır.
* Herhangi iki katman arasına yeni bir katman ilave etmek ya da aradaki bir katmanı çıkartmak katmanlı yapı kullanılmayan bir sistemde aynı amaca yönelik yapılması gerekecek revizyona göre genellikle daha az maliyetlidir.

Sistemde yer alacak katmanları belirlerken ve tasarlarken de şu ilkeler doğrultusunda hareket edilmelidir:
* Her katman sadece belirli bir fonksiyonu ya da fonksiyon grubunu içermelidir. Farklılaşan fonksiyonlar söz konusu olduğunda başka bir katmana taşınmalı ya da yeni bir katman yaratılmalıdır. Dolayısıyla katmanların sayısı fonksiyonalite açısından farklılaşan ünitelerin sayısı olacaktır.
* Katmanlar arası arabirimler tasarlanırken bilgi akışı minimum düzeyde olacak şekilde tasarlanmalı.
* Tabi ki her alt katman üstündeki katmana bir servis sağlamalı. Tersi yönde bir hizmet sunumu ya da bağımlılık söz konusu olamaz; böyle bir durum oluşuyorsa tasarımda bir sorun var demektir.
* Bir katman genellikle altındaki bir katmandan servis almalı, çok gerekmedikçe bu katmanı atlayıp daha alt bir katman ile haberleşmemelidir. Ama buna istisnalar söz konusu olabilir.

Özetle, yazılım geliştirirken fonksiyonel birimlerin birbirinden kesin ve net sınırlarla ayrıldığı katmanlı bir yaklaşım projenin ilk zamanlarında uğraştırıcı ve zaman alıcı görünse de sonrasında getireceği avantajlar ile bu zaman kaybı fazlasıyla telafi olacak, bu yaklaşımın yararları sistemin geliştirilme sürecinde görülecektir.

 04.06.2009 01:04:45   Yazılım - Bilişim - Teknoloji   0 Yorum

Programlama [Dili] Nasıl Öğrenilir?

Programlama öğrenmeye yeni başlıyorsanız iki temel zorlukla karşılaşırsınız. Birincisi bilgisayara istediğiniz işlemleri yaptırmak için kullanılan programlama mantığını anlamak, diğeri ise programlamaya başlangıç için seçtiğiniz ya da seçmek zorunda kaldığınız dilin...

 14.05.2009 09:51:21   Yazılım - Bilişim - Teknoloji   Devamını oku...

Windows XP Dosya Arama Özelliği Bozulduysa

Bir süredir Windows XP Home Edition kurulu bilgisayarımda dosya arama yapmak istediğimde gelen arama ekranında sol bloktaki arama seçenekleri görünmüyor, haliyle de hiçbir şekilde arama yapamıyordum. Uzun araştırmalar sonucunda bulduğum aşağıdaki adreste yazılı işlemleri...

 07.05.2009 09:49:16   Yazılım - Bilişim - Teknoloji   Devamını oku...

After the Software Wars

Keyifle okunacak ya da en azından göz atılacak, eğlenceli bir kitaptan daha bahsetmek istiyorum. Adında da yazdığı gibi yazılım endüstrisinin devlerinin tescilli/patentli (İng.proprietary) yazılımlarına karşı açık kaynaklı özgür (bedava olarak çevirsek daha mı anlamlı olur...

 27.03.2009 23:58:46   Kitap Okuyalım   Devamını oku...

Math You Can't Use:Patents,Copyright,and Software

İlginç bir kitap buldum. İlginçliği şurada: kitapta deniliyor ki yasalar matematiğin ve matematiksel olguların telif hakkına tabi tutulamayacağını söylerken, "matematiğin çocuğu" olan bilgisayar bilimlerindeki yazılımların telif hakkına tabi olduğunu kabul ediyor....

 16.03.2009 23:34:38   Kitap Okuyalım   Devamını oku...

Refactoring Databases:Evolutionary Database Design

Yazılım geliştirmede önemli aktivitelerden biri özellikle Uç Programlama (Extreme Programming XP) ile daha fazla ön plana çıkan Refactoring (yeniden düzenleme) işlemidir. Yeniden düzenlemenin amacı tasarımı ya da kodu iyileştirmek, kalitesini yükseltmektir. Scott Ambler...

 07.03.2009 21:51:26   Kitap Okuyalım   Devamını oku...

Özyinelemeli Lambda İfadesi Yazmak

C#'ta özyinelemeli (recursive) bir lambda ifadesi yazılabilir mi? Programcılık mantığıyla zor olmaz gibi geliyor ilk bakışta: Ne kadar kolay değil mi? Ama yanılgıya düşülen nokta şu: örnekte özyinelemeli bir lambda ifadesi değil özyinelemeli bir fonksiyon yapmış olduk....

 20.02.2009 19:58:34   Yazılım - Bilişim - Teknoloji   Devamını oku...

Kritik Kütle

Kritik kütle, yazılımın kaynak kodunun komple yeni baştan yazılmadıkça etkin bir şekilde yönetilemeyecek kadar aşırı büyük boyutlara ulaştığı Yazılım Yaşam Döngüsü aşamasını tanımlayan bir Yazılım Mühendisliği terimidir. Bir tanımlama da şu şekilde yapılabilir: mevcut bir...

 29.01.2009 08:55:50   Yazılım - Bilişim - Teknoloji   Devamını oku...

Takipçisi olduğum ve yararlı bulduğum bazı siteler

Takipçisi olduğum ve yararlı bulduğum bazı siteleri derli toplu bir araya getirmek istedim... TEKNOLOJİ - BİLİŞİM - YAZILIM - PROGRAMLAMAwww.yazilimprojesi.com Yazılım Projesi: Yönetim, Tasarım, Programlama, Veritabanı www.yazilimforumu.com Yazılım Projesi...

 04.01.2009 00:59:43   Çeşitli   Devamını oku...

Youtube'a Kolay Erişim - Program Kurmadan!

Youtube'a erişimimiz engelleneli epey zaman oldu ama ben bugün erişim için kolay bir yol öğrendim. Bu zamana kadar pek çok kimse öğrenmiştir belki ama yine de bilmeyenler için ve lazım olduğunda kendim de kolayca bulabileyim diye buraya da yazmak istedim. Bugüne kadar...

 27.12.2008 18:17:01   Yazılım - Bilişim - Teknoloji   Devamını oku...

<< Yeni YazılarEski Yazılar >>
 Kategoriler
 Bağlantılar
 Son Yorumlar
 istatistikler

7 kategoride 60 yazı, 59 yorum

IP adresiniz: 38.103.63.62
Etkin ziyaretçi sayısı: 3