Tasarım Belgesi

 

 

Mobil Otel Sistemi (MOS)

 

Tolga SOFUOĞLU, Özgür ERGÜN
Özgeçmiş1 , Özgeçmiş2

 

 

Analiz Belgesi

Yazılım Geliştirme Projesi

Bilgi Teknolojileri Sertifika Programı

İDEA: ODTÜ Sanal Kampüsü
  

 

10.06.2009



Öz

Bu tasarım belgesi, Mobil Otel Sistemi projesine ait toplanan ihtiyaçların nasıl gerçekleştirilebileceğine dair planlama amacını taşımaktadır. Tasarım öğelerinin çeşitli mühendislik yöntemleri ile dökümante edildiği bu belge; nesneye yönelik tasarımın ışığında; UML diagramları kapsamındaki sınıf diagramları, iş birliği diagramları, kullanıcı arayüzleri ve kurulum diagramından oluşmaktadır. Bunların yanı sıra, proje planı ve uygulama takvimi de bu belgenin sonuna eklenmiştir.



Proje Tanımı

Yazılım hedefleri :

Yazılım hedefleri, sunucudan tarayıcılar aracılığıyla erişilen kolay kullanılabilir bir yönetici paneli, internetten ulaşılabilecen bir acenta yönetim paneli, otel misafirlerinin kullanacağı bir mobil uygulama ile bu uygulamanın sunucu ile haberleşmesini sağlayan TCP servisinin gerçekleştirimidir. Mobil uygulama Windows Mobile 6 işletim sistemi üzerinde çalışacaktır.

Tasarım Sınırlandırmaları :

Tasarım aşamasında mobil uygualama ile sunucu iletişiminin web servisi mi yoksa TCP servisi mi olması gerektiği henüz netleştirilmedi. Bu konuda performans avantajı nedeniyle başlangıçta TCP iletişimi kullanılacak. Eğer stabilite veya güvenlik sorunları olur ise alternatif olarak web servisi implementasyonu da yapılacaktır. Mobil işletim sistemi açısından kullanılan WM6 'ya bağımlı kısıtlar kullanım esnasında ortaya çıkabilecektir.



Mimari Tasarım

Belgemizde işbirliği diyagramlarını birer etkileşim şeması olarak kullanıyoruz. Burada işbirliği diyagramlarının gereği olarak sınıflar arasındaki zaman sıralamasından çok ilişki kısmı üzerinde durduk. Küçük oklar sınıflar arasında gidip gelen mesajları ( işlevleri )göstermektedir.

Aşağıdaki diyagramda anket doldurma işlemi sırasında gerçekleşecek sınıf ilişkileri tanımlanmıştır. Burada sırasıyla anket, AnketSecenegi ve AnketSorusu sınıfları ilişki içerisindedir. Mobil uygulama içerisinden sorular cevaplandırılmakta ve son sorudan sonra cevapların tümü Anket sınıfı üzerinden sunucuya gönderilmektedir.


Şekil 1 - Anket Doldur İşbirliği Diyagramı



Anket girişi işleminde yeni bir Anket örneği yaratıldıktan sonra yeni sorular ve yeni secenekler girilmektedir.


Şekil 2 - Anket Girişi İşbirliği Diyagramı



Hatırlatma girişi diyagramında sadece sistemmesaji sınıfı kullanılmakta, diğer sınıflarla herhangi bir etkileşim görülmemektedir. Burada sistemmesaji sınıfındaki SistemMesaji yapıcısı ve mesaj bilgileri nitelikler yolu ile girildikten sonra sunucuyagonder mesajı gönderilmiştir.


Şekil 3 - Hatırlatma Girişi İşbirliği Diyagramı



Misafirin hatırlatma okuma işleminde de yine tek bir sınıf kullanılmıştır ve diğer sınıflarla arasında herhangi bir etkileşim yoktur. Burada yine SistemMesaji yapıcısı çağırıldıktan sonra bu sefer farklı olarak mesajYanıtı ile birlikte sonuç sunucuya gönderilmiştir. Buradaki mesajyanıtı herzaman kullanılmamakla birlikte eğer hatırlatma mesajına bir cevap bekleniyor ise evet, hayır gibi bir sonuç gönderilir.


Şekil 4 - Hatırlatma Okuma İşbirliği Diyagramı



Hizmet takibi işbirliği diyagramı, hizmet talebi diyagramı ile bağlantılı olduğundan birlikte gösterilmiştir. Burada hizmet talebinden hemen sonra resepsiyonistin kullandığı uygulama ani bir uyarı verecek ve çağırılan oku() işlevi ile yeni bir IMesaj interface nesnesi yaratılarak, bu mesaj yönetim sistemindeki istemci tarafında okunacaktır.


Şekil 5 - Hizmet Takibi İşbirliği Diyagramı



Hizmet talebi işleminde HizmetTalebi ve Siparis sınıfları işbirliği içerisindedir. Burada yeni bir HizmetTalebi yaratılır, eger gerekiyorsa HizmetTalebi nesnesi aracılığıyla yeni bir veya birden fazla Siparis nesnesi yaratılır ve istenildiği anda bu talep sunucuya gonderilebilir. SunucuyaGonder işlemi yine HizmetTalebi nesnesinin kendi içerisinde çağırılmaktadır.


Şekil 6 - Hizmet Talebi İşbirliği Diyagramı



Menü girişi işbirliği diyagramında sadece Siparis sınıfı kullanılmakta ve diğer sınıflarla herhangi bir işbirliğine gerek duyulmamaktadır. Burada sınıfın Siparis() yapıcısı ve Kaydet işlevi kullanılarak senaryo tamamlanmaktadır.


Şekil 7 - Menu Girişi İşbirliği Diyagramı



Veri Tasarımı

Projede nesne yönelimli tasarım yöntemi kullananılmaktadır. Nesne yönelimli yaklaşımı kullanırken sınıf diyagramından yararlanılmıştır. Aşağıda modellenmiş olan sınıf diagramı ; sınıflar, bunların ilişkileri, operasyonları, nitelikleri ve nitelik tiplerini göstermektedir.Bu tasarım modelinde sistemde tanımlanmış olan iş modelinin nasıl gerçekleştirileceğine dair teknik bir diyagram sunulmuştur.

Şekil 8 - Genel Sınıf Diagramı

  • Misafir sınıfında misafire ait kişisel detaylar ve misafir kaydetme ekleme silme işlemleri verilmiştir. Ayrıca misafire cihaz ekleme işlevi bulunmaktadır. Misafir sınıfının tek ilişki kurduğu sınıf MobilCihaz sınıfıdır ve ilişki 1'e 0 veya 1 olarak tanımlanmıştır.

  • MobilCihaz sınıfında cihazla ilgili gerekli niteliklerle beraber hangi misafire ait olduğuna dair nitelikler bulunmaktadır. Temel veritabanı işlemleri ile birlikte mesaj listeleme ve gönderme işlevleride tanımlanmıştır.

  • IMesaj bir interface olarak tanımlanmıştır. Bunun nedeni SistemMesaji ve HizmetTalebi sınıflarının bazı benzer tiplerde olmaları ve benzer işlevleri gerçekleştirmeleridir. Kalıtım yerine interface kullanılmasının nedeni ise istemci tarafında mesaj nesnesi olusturulurken bunun farklı tipler arasında hangisi olduğunun bilinmeden önce IMesaj interface'i altında yaratılması ve daha sonra MesajTipinden bu ayrıma varılabilmesi icindir. Listeleme ve okuma işlevleri tüm mesajlar için ortak olduğundan burada gösterilmiştir.

  • Urun ve hizmet talebi sınıfları one to many ilişki içerisindedir.Burada HizmetTalebi sınıfında Interface'den alacağı nitelik ve işlevler zorunlu olduğu için tekrar gösterilmemiştir. Zorunlu işlevler dışında mesajın SunucuyaGonder() işlevi tanımlanmıştır. Urun sınıfında da urune ait tum bilgiler ve temel veritabanı işlemleri gösterilmiştir.

  • Son olarak Anket ve bu sınıfa bağlı sınıflar sınıf diyagramında gösterilmiştir. Burada AnketSorusu Anketin bir parçası ve AnketSecenegi de AnketSorusu sınıfının bir parçası olarak ilişkilendirilmiştir. İlişkiler one to many olarak tanımlanmış ve en fazla 10 soru ile her soruda en fazla 5 seçenek olarak şekilde sınırlandırma yapılmıştır. Sınıflarda temel yapıcı ve AnketListeleme işlevleri bulunmaktadır.


Arayüz Tasarımı


Arayüz tasarımında, yazılımdaki modüller ve yazılım ile kullanıcı arasındaki arayüzlerin tasarımı yapılmıştır. Şekiller gerçek programın çıktıları olmayıp, yapılması tasarlanan arayüzlerin birer taslağı olması hedeflenerek çizilmiştir. Çizim programı olarak Visual Paradigm User Interface diyagramları kullanılmıştır.

Aşağıda görülen anket girişi arayüzleri, 3 adımdan oluşmaktadır. Sınıf diyagramındaki sınıflara birebir karşılık gelen bu üç adımda önce bir anket yaratılmış daha sonra bu ankete soru ve seçenekler eklenmiştir. Arayüzler arasında ise AnketID ve SoruID parametreleri geçirilmektedir.


Şekil 9 - Anket Arayüzü


Aşağıda Mobil cihazlardan yapılacak olan anket doldurma işleminin arayüzü tasarlanmaya çalışılmıştır. Burada otel personeli tarafından girilen bir anket sorusu ve seçenekleri görülüp misafir tarafından seçim yapılabilmektedir. Tek arayüzden oluştuğundan bu işlem sırasında herhangi bir parametre geçişi yoktur.


Şekil 10 - Mobil Anket Doldurma Arayüzü


Mobil arıza/eksik bildirimi yarayüzünde misafir tarafından sunucuya bir mesaj gönderilmektedir. Bu amaçla bir adet tanımlama kutusu ile bir buton inputu yeterli görülmüştür. Bu arayüzde herhangi bir çıktıya ihtiyaç duyulmamıştır.


Şekil 11 - Mobil Arıza/Eksik Bildirimi Arayüzü


Hatırlatma girişi arayüzünde 2 adet adım kullanılmıştır. Bu adımlardan ilki olan ekleme arayüzünde gönderimtarihi, secenekTipi, tekrarTipi, tekrarBitişi ve içerik inputlari kullanılmıştır. Ayrıca güncelleme işlemi yapılacağında bu arayüze MesajID parametresinin geçirilmesi gerekmektedir.

Mesaj listesi adiminda ise tarih araligi icin iki adet girdi ile birlikte mesajlarin listeleneceği ve tarih, tekrar, tekrarBitişi, içerik ve mesaj yanıtından oluşan bir çıktı olması tasarlanmıştır.


Şekil 12 - Hatırlatma Giriş Arayüzü


Menü girişi arayüzünde 5 adet girdi ve yine liste tipinde bir çıktı kümesi kullanılacaktır. Girdiler ; ürünKodu, adi, birim, fiyat ve resimYoludur. Çıktı sütunları ise yine girdisi yapılan parametrelerin çıktı olarak satır satır gösterilmesi şekilde tasarlanmıştır.


Şekil 13 - Menü Girişi Arayüzü


Oda servisi arayüzleri 3 aşamadan oluşmaktadır. Bu arayüzler Ürün listesi, Siparis listesi ve Bilgi sayfasıdır. Ürün listesinde ürünler çıktı olarak görüntülenir ve içlerinden seçim yapılarak toplam rakama eklenir. Eger Siparişlerim tuşuna basılırsa ikinci adım olan Siparişlerim arayüzü yüklenecektir. Bu arayüzde herhangi bir parametre geçişi olmayacak, o ana kadar misafirin eklediği tüm siparişler listelenecektir.

Herhangi bir ürünü seçip Bilgi tuşuna basıldığında ise Bilgi arayüzü yüklenecek ve o ürüne ait detaylar ve bir resim görüntülenecektir. Bu geçiş sırasında ürün bilgilerinin gösterilebilmesi amacıyla ÜrünID parametre geçişi yapılmalıdır.


Şekil 14 - Mobil Oda Servisi Arayüzü


Yukarıda tasarımı yapılmış olan arayüzler büyük oranda gerçekleştirimi temsil etmesi hedeflenmiştir. Burada sadece günlük tur girişi ve hatırlatma okuma sayfaları ; sırasıyla hatırlatma girişi ve anket doldurma sayfalarıyla birebir aynı olduğundan tekrar çizilmemiştir. Bunun dışındaki tüm arayüzler bu belgede gösterilmektedir.


Proje Planı ve Uygulama Takvimi

Gerçekleştirim : 3 Temmuz 2009

  • Mobil (PDA) uygulaması tamamlanacak
  • Yönetim sistemi uygulaması tamamlanacak. ( Admin panel )
Test : 7 Temmuz 2009
  • Test senaryolarının üzerinden geçilecek
  • Test sonuç belgesi hazırlanacak
Sunum : 11-12 Temmuz 2009
  • Testlere göre gerekli ek kodlama yapılıp gerçekleştirim tamamlanmış olacak.
  • Gerçekleştirilen yazılım projesinin sunumu yapılacak.