Kategori arşivi: Yazılım Mühendisligi

Yazılım mühendisliği temelleri

Adapter Pattern Nedir Nerelerde Kullanılır ?

Merhaba,

Bugün yazılım geliştirme modellerinden olan Adapter patterninden bahsedeceğim.

Client : Geliştirdiğiniz yazılımı arayüzünü kullanarak yazılım geliştiren kişi.

Bazı durumlarda client sunduğunuz kodda kalıbı bozmadan ufak değişiklikler yaparak yazılımını geliştirmesi gerekebilir. Bazen ise yazılım tamamemn sunduğunuz arayüzden bağımsız olarak geliştirilebilir. Örneğin bir roket simulasyon programını düşünelim. Bu program sizin sağladığınız roket bilgilerine göre geliştirilebileceği gibi client roketin nasıl olması gerektiğini hangi durumlarda nasıl davranması gerektiğini de programlamak isteyebilir. Client’ın sunduğunuz servislerini direk olarak kullanmasını sağlamak veya metod isimlerini kendine göre özelleştirip servis etmek istediniz durumlarda Adapter modelini kullanabilirsiniz.

Adapter’in amacı : Client’ın beklediği servisleri, farklı bir arayüz ile o sınıfa ait servisleri kullanabileceği yapıyı oluşturmaktır.

adapterExampleUmlDiagram

Resimdeki “NewClass” sınıfı adapter’a örnektir. Bu sınıftan üretilen nesne aynı zamanda “RequiredInterface” arayüzününde nesnesi olacaktır. Daha somut bir örnek verelim :
Roketlerin uçuş ve zamanlamalarını simule eden bir paket üzerinde çalışıyorsunuz. Elimizdeki pakette roketin davranışına göre olayları simule eden bir olay simulatörü olduğunu varsayalım. Elinizde ise fiziksel özellikleri PhysicalRocket sınıfında belirlenmiş bir roketiniz var. Simulasyon paketini kullanarak roketi simule etmek istiyorsunuz. Bu durumda PhysicalRocket sınıfının alt sınıfını oluşturup RocketSimInterface arayüzünü implement ederek Adapter modelini kullanabilirsiniz.

adapter4

Class diyagramının implementi ise aşağıdaki gibi olacaktır :

880 total views, 1 views today

Facebooktwittergoogle_plusredditpinterestlinkedinmail

Yazılım Mühendisliği Kavramları

softenguml

 

Şekil 1. Yazılım müh. kavramlarını içeren örnek UML diyagramı

Yazılım geliştirenler için proje, aktiviteler(activity) dizisidir. Her aktivite bir veya birden fazla görevden(task) oluşur. Görev, kaynakları(Resources) tüketir ve İşÜrünü(WorkProduct) oluşturur. Oluşan ürün Sistem, Model veya Döküman olabilir. Kaynakları, katılımcı(participants), zaman ve ekipman oluşturur. Aradaki çizgiler farklı kavramlar arasındaki ilişkileri ifade eder. Örneğin elmas şekli toplama anlamına gelir. Bir Proje, aktivitelerin toplamıdır. Üçgen şekli ise genelleştirme anlamına gelir. Örneğin Sistem, Model, Döküman İşÜrünü’nün alt türleridir.

683 total views, 2 views today

Facebooktwittergoogle_plusredditpinterestlinkedinmail

Yazılım Mühendisliği Nedir?

 

Yazılım mühendisliği bir modelleme(modeling) eylemidir. Yazılım mühendisleri karmaşa problemiyle modelleme yoluyla, sadece ilgili detay üzerine odaklanarak geri kalanları göz ardı ederek başa çıkar. Farklı yazılımlar için birden çok geliştirme modeli olabilir.

Yazılım mühendisliği bir problem-çözme(problem-solving) eylemidir. Modeller kabul edilir bir çözüm bulmak için kullanılır. Etkili sonucu bulma tecrübeyle doğru orantılıdır.

Yazılım mühendisliği bir bilgi-edinme(knowledge-acquisition) eylemidir. Yazılımı modellerken ve çözüm altyapısını oluştururken, yazılım mühendisleri veriler toplar bilgi olacak şekilde düzenler.

Yazılım mühendisliği mantığa-dayandırma(rationane-driven) eylemidir.  Bilgi edinildiğinde   sistem veya yazılım etki alanında karar verirken, yazılım mühendisleri hangi kararların hangi mantıksal sebeplerle verildiğini belirtir.

 

 

582 total views, 1 views today

Facebooktwittergoogle_plusredditpinterestlinkedinmail