Nesneye Yönelik Sistem Tasarımı

advertisement
Bilişim Sistemleri
Modelleme, Analiz ve Tasarım
Yrd. Doç. Dr. Alper GÖKSU
Ders Akışı
Hafta 10-11. Nesneye Yönelik Sistem Tasarımı
Haftanın Amacı
Bilişim sistemleri geliştirmede nesneye yönelik sistem
tasarımı detaylı olarak açıklanmaktadır.
Giriş
Bilişim sistemi geliştirme sürecinde nesneye yönelik
tasarımda modeli oluşturulan sistemin yazılım sınıfları
belirlenmektedir. Sınıflar arasındaki etkileşim de önemli
olmaktadır. Bu şekilde, sistem bileşenleri çalışma
durumu ve hangi sınıfa ait olduğu meydana çıkmaktadır.
Yazılım nesnelerine metotların eklenmesi ve mesajların
oluşturulması ile nesnel tasarlanmaktadır.
Nesneye Yönelik Sistem Tasarımı
Bu yaklaşımda, nesnelerin birlikte çalıştıklarını
göstermek amacıyla etkileşim diyagramları çizilmektedir.
Etkileşim diyagramları; işbirliği ve ardışık diyagramlarıdır.
Bilişim sisteminin son durumunu göstermek için sınıf
diyagramları hazırlanmaktadır.
Nesneye Yönelik Sistem Tasarımı
Bu yaklaşımda uygulama ihtiyaçlarını tanımlama için
ilişkili ve bağımsız iki diyagramdan yararlanılmaktadır.
Sınıf diyagramı ve kullanım senaryosu diyagramıdır.
Sınıf diyagramında sınıf tanımlamaları ve ilişkileri,
kullanım
senaryosu
diyagramında
ise
bilişim
sistemindeki kullanımları, senaryoların belirlenmesi için
hazırlanmaktadır. Bu şekilde sistemin gerçekleştirilmesi
sırasında senaryoları belirlenmiş olmaktadır.
Nesneye Yönelik Sistem Tasarımı
Aynı zamanda, nesneye yönelik diğer şematik gösterimi
sınıf diyagramlarıdır. Önerilen bilişim sisteminin
mantıksal
durumları
faaliyet
durumları
olarak
belirtilmektedir. Her sınıftaki faaliyetleri metotlardır.
Tasarım Şablonları
Bilişim sisteminin yazılım sürecinde sorumlulukların
atanmasında
tasarım
şablonları
kullanılmaktadır.
Sınıfları ve faaliyetleri belirlemeden önce tasarım
şablonları incelenmelidir.
Nesneye
yönelik
tasarımda,
sorumlulukların
atanmasında temel yolların belirlenmesini sağlar.
Literatürde GoF tasarım şablonlarının yerine nesnelere
sorumlulukları atanması yapılırken genel atama ilkeleri
ele alınmalıdır.
Oluşturucu
Bir sınıftan nesne oluşturma sorumluluğun kime
verileceğine belirleyen şablondur. Nesneye yönelik
sistemlerde nesne oluşturma sıklıkla yapılmaktadır.
Oluşturma şablonuna uygun olduğunda tasarım az bağlı
ve kolay anlaşılır ve yeniden kullanılabilmektedir.
B, A nesnesini içeriyorsa kümeleme ilişkisi dahildir.
B, A nesnelerinin kayıtlarını tutuyorsa,
B, A nesnelerini kullanıyorsa,
A ‘nın oluşturulması için gerekli verilere B sahipse, B
sınıfına
A
sınıfından
nesne
oluşturma
sorumluluğundadır.
Bilgi Uzmanı
Nesnelere sorumlulukları atamanın temel ilkesidir. Bir
sorumluluk, bilgi uzmanına veriye sahip olması gereken
sınıfa atanması tanımlanır. Sorumlulukları doğru
atandığında bilişim sisteminin anlaşılabilirliği artar.
Az Bağımlılık
Bilişim sisteminde diğer sınıflardan etkilenmemeyi ve
tekrar kullanılabilmeyi tanımlayan tasarım şablonudur.
Bağımlılık, sınıflar arasında diğerleri hakkında ne kadar
bilgi sahibi olunduğunu gösteren bir ölçüttür. Fazla
bağımlı olması da tercih edilen bir durum değildir.
Bir sınıftaki değişim bağımlı olarak diğer sınıfları da
etkilemektedir. Bu nedenle, sınıfları birbirlerinde ayrı
olarak anlamak zorlaşmaktadır.
Kontrolör
Kullanıcı arabirimlerinin arka planında durarak bilişim
sistemindeki olayları ve kontrol etme sorumluluğu için bir
sınıfa ihtiyaç duyulmaktadır. Bilişim sisteminin bütünü
veya alt sistemini temsil eden bir sınıf kontrolör olarak
kullanılır. Bilişim sisteminin büyüklüğüne göre herbir sınıf
kontrolör olarak atanmaktadır.
İyi Uyum
Bilişim sistemindeki nesneler, kendilerine atanan
sorumlulukları yerine getirmektedir. Bir sınıfa atanan
sorumluluklar birbirleri ile ilgili olması, belirli bir konuya
yoğunlaşması gerekmektedir. Bir sınıfın birden fazla iş
yapıyorsa, sorumlulukları birbirlerinden farklı olması
durumunda uyumluluk iyi değildir. Bundan dolayı sınıfın
anlaşılması ve tekrar kullanımı zorlaşmaktadır. Bilişim
sisteminde karmaşıklığın azaltılması için sorumluluklar,
sınıf içerisinde iyi uyum sağlayacak şekilde olmalıdır.
Çok Şekillilik
Bilişim sisteminde sınıflar tiplerine göre değişiklik
gösteren davranışları tasarlarken çok şekilli metotlar
kullanmak, değişen durumlara kolaylıkla uyum
sağlayacak şekilde bileşenlerin oluşturulmasını sağlar.
Alternatif durumda ilgili metot koşulu deneyimlerle
kontrol edilerek çağrılır. Bu durumda, değişen koşullarda
bu testi gerçekleştirilen sınıfın yapısının da değiştirilmesi
ve yeniden derlenmesi gerekmektedir.
Yapay Sınıf
Uzman şablonunun getirmiş olduğu çözümler, iyi uyum
ve az bağımlılıkla çelişmektedir. Bu durumda,
bağımlılıklar azalıyorsa ve tekrar kullanımı arttırıyorsa
var olmayan yapay sınıflar yazılımda yer alabilir. Mevcut
sistemde varlıklar ile yazılımdaki unsurlar arasında
benzerlik bulunmaktadır. Bu şekilde, temel olarak
birbirlerine benzeyen faaliyetler bir sınıf olarak
toplanmasıyla
var
olmayan
yapay
sınıflar
oluşturulmaktadır.
Dolaylılık Arabirim
Bilişim sisteminde kolaylıkla değiştirilecek yapılar
arasındaki bağımlılığı azaltma, yeniden kullanılabilirliği
arttırmaktadır. Değişecek iki birim, bileşen veya hizmet
arasındaki sorumlulukları bir arabirim nesnesine
atanmasıyla dolaylılık sağlanmaktadır. Nesneye yönelik
uygulamada dolaylılığı arabirim nesneleri sağlamaktadır.
Bu nesnelerin çok şekilli olması dış değişimlerden
etkilenmemesini sağlamaktadır.
Değişimlerden Koruma
Nesneye yönelik tasarım ilkelerinde son olarak
değişimlerden
korumanın
sağlanmasıdır.
Bilişim
sistemindeki her alt sistem bir nesnedeki değişimleri ve
kararsızlıklar olabilir. Bunların etkisi minimum seviyede
tutulmalıdır. Birimlerdeki değişikliklerden en az etkilenen
tasarım, değişimlere açık ve kararsız noktaların etrafında
sorumlulukları ara yüzlere atanmaktadır. Bu şekilde,
birimler değişimlerden korunabilir ve kararlı sistemler
oluşturulabilir.
Etkileşim Diyagramları
Nesneye
yönelik
sistem
tasarımı
senaryoları
gerçekleştirmek için sorumlulukların ilgili birimlere
atanması ve nesneler arasındaki işbirliğinin sağlanması
gerekmektedir. Senaryoları gerçekleştirmeden önce
nesneler arasındaki etkileşimlerin nasıl modellendiği ele
almak gereklidir. UML etkileşimi iki şekilde yapılmaktadır.
İşbirliği ve sırasal diyagramı olarak çizilmektedir.
Etkileşim Diyagramları
İşbirliği
diyagramları
hangi
nesnelerin
birlikte
çalışacağını, nasıl mesajlaşacağını, bir durumu ya da
fonksiyonu nasıl gerçekleştireceğini gösterir. Kullanım
senaryosundaki tüm durumlar için ayrı işbirliği
diyagramlarının çizilmesi gerekmektedir. Bu diyagramda
nesneler düğümleri, mesajlar ise bağlantıları gösterir.
Sırasal diyagram işbirliği diyagramında verilen bilginin
detaylı
açıklanmasından
oluşmaktadır.
Nesneler
arasındaki mesajlaşmanın sıralaması diyagramdaki
sıradır. Mesaj sırası, yukarıdan aşağıyadır. Nesneler yan
yana gösterilir.
Mesaj Sıra Numaraları
İşbirliği diyagramındaki mesajlar, gönderildikleri sıra ile
numaralandırılır. Bir mesajın gönderilmesinde bağlı alt
numaralar verilmektedir. Sırasal diyagramlarda sıra
numarası kullanılmaz. Mesajlar gönderildikten sırada alt
alta çizilir.
Kendine Mesaj
Nesneye yönelik tasarım bir sorumluluğu yerine getirmek
için nesne ile kendi metotlarından geri çağrılır. Bir nesne,
kendi metotlarını çağırması kendine mesajdır. Etkileşim
diyagramlarının her ikisinde de kendine mesaj gönderilir.
Koşullu Mesajlar
Etkileşim diyagramlarında bir mesajın belirli bir koşulu
gerçekleştirildiğinde
gönderilen
mesajdır.
İşbirliği
diyagramında mesajın başına eklenen şart il gösterilir.
Sırasal diyagramlarda «op» çerçevesi kullanılır.
Kaşılıklı dışlamalı mesajlarda birbirlerini bir bütünü
oluşturan iki durum bulunur. İşbirliği diyagramında şart
olarak
mesajların
başında
gösterilir.
Sırasal
diyagramlarda iki parçalı «alt» çerçevesi kullanılır.
Döngüler
Bilişim sisteminde bir işlemin yapılması için bir nesne
grubuna mesaj gönderilmesi gereklidir. Bir nesne
grubuna gönderilen mesaj ya da mesajlar işbirliği
diyagramında «*» simgesi ile, sırasal diyagramda «loop»
çerçevesi ile gösterilir. İşbirliği diyagramında çoklu
nesneler ardı ardına çizilen kutular çizilir. Döngü koşulu
olduğunda koşullu mesajlarda olduğu gibi gösterilir.
Döngüler
Bilişim sisteminde bir işlemin yapılması için bir nesne
grubuna mesaj gönderilmesi gereklidir. Bir nesne
grubuna gönderilen mesaj ya da mesajlar işbirliği
diyagramında «*» simgesi ile, sırasal diyagramda «loop»
çerçevesi ile gösterilir. İşbirliği diyagramında çoklu
nesneler ardı ardına çizilen kutular çizilir. Döngü koşulu
olduğunda koşullu mesajlarda olduğu gibi gösterilir.
Kaynakça
1.
2.
3.
4.
Arthur M. Langer, “Analysis and Design of
Information Systems”, Third Edition , Springer.,
2010.
Simha R. Magal, Jeffrey Word, “Essentials of
Business Processes and Information Systems”,
John Wiley & Sons, 2009.
Kenneth E. Kendall and Julie E. Kendall,, “Systems
Analysis and Design”, 8th Edition), Prentice Hall
College Div., 2010.
Kalıpsız O., Buharalı A., Biricik G., “Bilgisayar
Bilimlerinde Sisten Analizi ve Tasarımı ”,Papatya
Yayıncılık, 2006.
Download