TASARIM
BELGESİ
Birbirine Birden Fazla Hat İle
Bağlı İki İstasyon Arasındaki En Kısa Yolu Bulan Bir Ağ
Simülasyonu
Cem
Şafak ŞAHİN
s06013
Tasarım Belgesi
Yazılım Geliştirme Projesi
Bilgi Teknolojileri Sertifika Programı
İDEA: ODTÜ Sanal Kampüsü
07.06.2003
ÖZ
Bu belgesin amacı "Birbirine Birden Fazla Hat İle
Bağlı İki İstasyon Arasındaki En Kısa Yolu Bulan Ağ Simülasyonu" adlı projenin
tasarımın sunmaktır. Bu belgede;
- Projenin Kapsamı,
- Projenin Mimari Tasarımı (Bu kısım İşbirliği Diagramı içermektedir.),
- Projenin Veri Tasarımı (Bu kısım İlişki Diagramı içermektedir.),
- Projenin Arayüz Tasarımı (Bu kısım Akış Şeması içermektedir.),
- Projenin Planı ve Uygulama Takvimi (Bu kısım Analiz Belgesinde verilmişti,
burada tekrar gözden geçirilip veriliyor.),
- Kaynakça (Tasarım Belgesi hazırlamakta yararlanılan kaynaklar.)
verilmiştir.
KAPSAM
Projenin amacı; kullanıcı tarafından
oluşturulan bir ağda gene kullanıcı tarafından belirtilen iki istasyon
arasındaki en kısa yolu bulmak ve bunu kullanıcıya bildirmektir.
1. Yazılım Hedefleri ve
Müşteri İsterleri:
- Kullanıcının istediği gibi bir ağ yaratması,
- Bu ağda istediği gibi bağlantılar oluşturması,
- Kullanıcının istediği iki istasyonu seçmesi,
- Bu istasyonlar arasındaki en kısa yolun program tarfından bulunması.
Not: Burada Yazılım
Hedefleri ve Müşteri İsterlerinin beraber verilmesi bu iki kısmın tamamen iç içe
geçmesindendir.
2. Sınırlamalar:
- Kullanıcının aşırı sayıda istasyon girmesi kontrol edilmesi gereken
olasılık sayısını artıracağından dolayı programın yavaşlamasına sebep
olacaktır. Bundan dolayı kullanıcıya gireceği ağ sayısında sınırlama
getirilecektir.
- Sürenin kısıtlı olması nedeniyle ağlar arasındaki bağlantıların
değerlerinin sabit olması düşünülmektedir. (Link Cost=1)
MİMARİ TASARIM ve VERİ
TASARIMI
Programın
modüllerini şöyle gösterebiliriz:
Yukarıda gösterilen modüllerin işlevleri ise şöyledir;
Network Oluşturma:Burada kullanıcı istediği networkü
oluşturur.(İstasyonları ve yolları)
En Kısa Ağ Noktalarını Tanımlama:Burada kullanıcı arasındaki en kısa yolun bulunmasınu
istediği iki istasyonu seçer.
En Kısa Yolu Bulma:Burada program
yukarıda tanımlanan iki ağ arasındaki en kısa yolu bulur.
En Kısa Yolu Gösterme:Burada program kullanıcıya bulunan en kısa yolu
bildirir.
Sonuç olarak görüldüğü üzere modüller tamamiyla birbirleri ile
etkileşim içindedirler. Modüller yukarıdaki sırada işlem görüp birbirlerinden
bilgi alışverişinde bulunurlar.
İşbirliği Diagramı:
İlişi Diagramı:
Kısaca özetleme
yapacak olursam; Öncelikle kullanıcı istediği istasyon ve bunların bağlantı
şekillerimi giriyor.(Network_Olusturma) Daha sonra aralarındaki en kısa yolun
bulunmasını istediği iki tane istasyonu
giriyor.(En_Kısa_Ağ_Noktalarını_Tanımlama)Programa en kısa yolu bulma komutunu
veriyor.(En_Kısa_Yolu_Bul) Program sonucu kullanıcıya
bildiriyor.(En_Kısa_Yolu_Gosterme)
ARAYÜZ
TASARIMI
Aşağıda programa ait "Flowchart" görülmektedir.
Öncelikle kullanıcı ağ
tasarımını girecektir. Bunun içinde istasyonları ve yolları girmesi
gerekmektedir. Bu yapılırken mantıksal olarak öncelikle ağları girecek sonrada
ağlar arasındaki gerekli bağlantıları yapacaktır. Bundan sonra aralarındaki en
kısa yolun bulunmasını istediği iki istasyonu tanımlayacak ve programa en kısa
yolu bulma komutunu yollayacaktır. En kısa istasyon tanımlarını alan program, bu
iki istasyon arasındaki yolları denemeye başlıyacaktır. Bunu yaparken devamlı
hafızasında o an için mümkün olan en kısa yolu tutacaktır. Olası yolları
"Dijkstra's Algorithm" ile deneyen program en sonunda tüm olasılıklar bittikten
sonra hafızasındaki yolu kullanıcıya bildirecektir. Hafızada devamlı en kısa
yolu tuttuğundan dolayı bu yol o iki istasyon arasındaki mümkn olan en kısa yol
olacaktır.
PROJE PLANI ve UYGULAMA
TAKVİMİ
Analizler
sonucunda proje takviminde herhangi bir değişikliğe gerek olmadığı ortaya
çıkmıştır. Bundan dolayı proje takvimi "Analiz Belgesi"'inde verilen takvimin
aynısıdır.
KAYNAKÇA
- Object-Oriented and Classical Software Engineering, S.R. Schach
- How to Program Java, Deitel Deitel
- Using UML for Modeling and a Distributed Java Application, K. Bergner, A.
Rausch, M. Sihling (TUM Institut Für Informatik)
- IDEA Yazılım Mühendisliği Ders Notları
- IDEA Öğrenci Projeleri