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.