Dalış Simülatörü ve Veritabanı
Uygulaması
DSD
Nesip
Aral
Analiz Belgesi
Yazılım Geliştirme
Projesi
Bilgi Teknolojileri Sertifika
Programı
İDEA: ODTÜ Sanal Kampüsü
22 Ekim 1999
Öz
Analiz Belgesinde DSD
uygulamasının sistem çözümlemesi yapılmış ve DSD'nin yerine getirmesi beklenen
işlevlerin ne olduğu ele alınmıştır. Çözümleme daha çok DSD'yi kullanacak
kişi olan "Dalgıç" açısından ele alınmış ve Dalgıç için anlamlı olabilecek
konular üzerinde yoğunlaşılmıştır. Tasarım aşamasında alınacak kararları
gereksiz yere sınırlamaktan kaçınılmış ve ihtiyacın ne olduğunun belirtilmesi
ile yetinilmiştir
Çözümleme çalışması
UML (Unified Modeling Language) metodolojisine uygun olarak yapılmış ve
DSD'nin "Kullanım Şekilleri" (Use Cases) ortaya konmuştur. Bu kullanım
şekillerinin dalgıç için bir yarar ifade edebilecek tüm kullanımları içerdiği
düşünülmektedir. Her kullanım şeklinin kısmen veya tümüyle gerçekleştirilmesi,
"Proje planı ve uygulama takvimi" bölümünde anlatıldığı gibi, farklı "Build"lere
karşılık gelen farklı aşamalarda yapılacaktır.
Proje Tanımı
Proje tanımı proje
teklifi belgesinde detaylı olarak açıklanmış olduğu için burada aynı
bilgilerin tekrarlanmasından kaçınılmıştır. Bu konuda gerek duyuldukça
proje
teklifi belgesine başvurulmalıdır.
Sistem Kullanım
Şekilleri Ana Şeması
Kullanım şekilleri ana şeması aşağıda
verilmiştir. Bu kullanım şekilleri bir sonraki bölümde detaylı olarak açıklanmaktadır.
Kullanım Şekilleri
Analizi (Use Case Analysis)
Aktörler:
1- Dalgıç:Dalgıçlık
eğitimi görmekte olan veya dalgıç sertifikalı bir kişi.
2- Yazıcı:
DSD uygulamasının üzerinde koştuğu bilgisayardan erişilebilen, grafik özelliği
olan bir yazıcı.
3- Başka
uygulama: Dalgıçlıkla ilgili veya ilgisiz herhangi bir uygulama.
4- Dalış
bilgisayarı: Gerçek dalışlarda kullanılmak üzere tasarlanmış,
dalış sırasında kaydettiği bilgileri bir bilgisayara aktarma özelliği olan,
bir cihaz ve bu cihaza ait bilgisayar arayüzü donanım ve yazılımı.
Kullanım Şekilleri:
1- (R1)"DSD'nin
kurulması" (setup) kullanım şekli (use case)
Tanım:
Dalgıç bu kullanım şeklini DSD'yi
bilgisayarına kurmak için kullanır.
Açıklamalar:
Dalgıç burada amacına uygun olmayan kullanımların tehlikeli olabileceği,
bu durumda sorumluluğun kendisine ait olacağı ve DSD'yi
geliştiren kişinin sorumlu tutulamayacağı konusunda uyarılacaktır.
2- (YGP) "DSD'nin
açılması" kullanım şekli (use case)
Tanım:
Dalgıç bu kullanım şeklini DSD'yi kullanıma hazırlamak amacıyla kullanır.
Temel olay akışı:
1- Kullanım şekli dalgıcın DSD'yi çalıştırması ile başlar.
2- DSD
dalgıca kendisini tanıtabileceği bir ortam sunar.
3- Dalgıç kendisini yeni bir kullanıcı, misafir kullanıcı veya kayıtlı
kullanıcılardan biri olarak tanıtır veya DSD'yi kapatmak istediğini belirtir.
4a- DSD bekleme durumuna geçer ve kullanım şekli sona erer.
Alternatif olay akışları:
4b.1- (R1) Dalgıcın seçtiği kayıtlı kullanıcı
kişisel çalışma alanını diğer dalgıçların erişimine kapatmak istemiş olan
biri ise DSD dalgıcın gerçekten seçtiği kişi olup olmadığını ayırdedecek
bir işlem yapar.
4b.2- Dalgıç seçtiği kişi ise DSD bekleme durumuna geçer ve kullanım
şekli sona erer, değilse 2. olaya dönülür.
4c- Dalgıç DSD'yi kapatmak istediyse DSD kapatılır ve kullanım şekli
sona erer.
Açıklamalar:
Dalgıç burada amacına uygun olmayan kullanımların tehlikeli olabileceği,
bu durumda sorumluluğun kendisine ait olacağı ve DSD'yi geliştiren kişinin
sorumlu tutulamayacağı konusunda uyarılacaktır.
3- (YGP) "Kişisel
bilgileri gir" kullanım şekli (use case).
Tanım:
Dalgıç bu kullanım şeklini kendisine DSD'yi kullanan diğer dalgıçlardan
bağımsız bir çalışma ortamı yaratmak, DSD'ye
kişisel bilgilerini girebilmek, daha önceden girilmiş olan bilgileri incelemek
ve bu bilgileri değiştirmek amacıyla kullanır.
Temel olay akışı:
1- Kullanım şekli dalgıcın yeni kullanıcı yaratma veya mevcut bilgilerini
inceleme isteğini belirtmesi ile başlar.
2- DSD incelemesi için dalgıca mevcut bilgileri sunar.
3a- Dalgıç bilgileri değiştirmek veya yeni bilgi eklemek istediğini
belirtir.
4- DSD dalgıca bilgileri değiştirebileceği veya yeni bilgi ekleyebileceği
bir ortam sunar.
5- Dalgıç yapmak istediği değişik veya eklemeleri yapar ve değişiklik
işleminin bittiğini bildirir.
6- DSD bilgilerin yeni halini dalgıca sunar.
7- Dalgıç yeni hali onaylar ve kullanım şekli tamamlanır.
Alternatif olay akışı:
3b- Dalgıç mevcut durumu değiştirmek istemediğini belirterek kullanım
şeklini
bitirebilir.
Dalgıcın girebileceği bilgiler:
1- Tanıtıcı bilgiler: İsim, soyadı, fotoğraf, doğum tarihi, boy, kilo,
göz rengi, saç rengi.
2- (R1) İletişim bilgileri: Ev adresi,
ev telefonu, iş adresi, iş telefonu, e-mail adresi
3- (R1) Sağlık bilgileri: kan grubu, geçirdiği
önemli hastalıklar, allerjiler.
4- (R1) Yakınları ile iletişim bilgileri:
En yakın üç kişi için ev adresi, ev telefonu, iş adresi, iş telefonu.
5- (R1) Sağlık kontrolları bilgileri:
her sağlık kontrolu için tarih, doktorun ismi, ünvanı, numarası, adresi
ve telefon numarası.
6- Dalış sertifikaları bilgileri: Her sertifika için veren kuruluş,
sertifikanın cinsi, numarası, veriliş tarihi, öğrenci numarası, sertifikayı
veren kişinin ismi, bağlı bulunduğu kuruluş, ünvanı ve numarası.
7- (R1) Özel bilgiler: Dalgıç bu alanların
hem tanımını hem de bilginin kendisini ayrı ayrı girer. Tanım bilgi çiftlerinin
sayısında bir kısıtlama yoktur.
8- (R1) Çalışma alanını diğer dalgıçların
erişimine kapatmak isteyip istemediği. Burada dalgıç, acil bir durum oluştuğunda,
diğer dalgıçların kendisine yardım edebilmek için buradaki bilgilere
ihtiyaç duyabilecekleri konusunda uyarılmalıdır.
4- (YGP) "Dalış
simülasyonu yap" kullanım şekli
Tanım:
Dalgıç bu kullanım şeklini gerçek bir dalış sırasında çeşitli dokularda
oluşan azot kısmi basınçlarının simülasyonunu gerçekleştirerek vurgun olayını
kavramak amacıyla kullanır.
Temel olay akışı:
1- Kullanım şekli DSD bekleme durumunda iken dalgıcın yeni dalış simülasyonu
yapma isteğini belirtmesi ile başlar.
2- DSD incelemesi için dalgıca son olarak kullandığı başlangıç bilgilerini
sunar.
3a- Dalgıç bilgileri değiştirmek istediğini belirtir.
4- DSD dalgıca bilgileri değiştirebileceği bir ortam sunar.
5- Dalgıç yapmak istediği değişikleri yapar ve değişiklik işleminin
bittiğini bildirir.
6- DSD bilgilerin yeni halini dalgıca sunar.
7- Dalgıç yeni hali onaylar.
8- Dalgıç simülasyonu başlatır. (Not: Simülasyon her zaman su üstü
simülasyonu olarak başlar, dalış modu derinliğinin altına inildiğinde sualtı
simülasyonu moduna geçer ve simülasyonun 1. dalışı başlar. Dalış modu derinliğinin
üstüne çıkıldığında su üstü simülasyonu moduna geçer. Su üstünde dalışa
devam etmek için izin verilen maksimum süreden fazla kalındığında dalış
tamamlanır.)
9a- Dalgıç gelecekte bir zamanda bulunmak istediği derinliği belirtir.
10- DSD Dalgıcın belirttiği hedefe doğrusal olarak ulaşılacak şekilde
iterasyon süresi sonundaki derinliği, su yüzeyine çıkış hızını ve
iterasyonun ortalama derinliğini hesaplar. 9-14. olaylar sürekli olarak
tekrarlanır.
11- DSD su yüzeyine çıkış hızını Dalgıca bildirir. Su yüzeyine çıkış
hızı izin verilen maksimum hızdan fazla ise DSD Dalgıcı daha yavaş çıkması
için uyarır.
12- DSD iterasyonun ortalama derinliği bilgisini kullanarak her doku
grubu için iterasyon sonu azot kısmi basıncını, dekompresyon duraksız çıkış
için o derinlikte kalabileceği maksimum süreyi, hava harcama hızını ve
iterasyon sonu kalan hava miktarını hesaplar. Bu değerleri Dalgıca bildirir.
13- DSD Dalgıcın, o anda dokularında bululnan azot kısmi basınçlarının
denge basıncına oranı için izin verilen değeri aşmadan bulunabileceği derinlik
veya deniz seviyesi üzerindeki yükseklik tavanını hesaplar ve Dalgıca bildirir.
Ayrıca her doku grubu için olan tavanı da Dalgıca bildirir.
14- DSD dalış süresince ulaşılan maksimum derinlik ve doku gruplarının
maksimum kısmi basıncını hesaplar. Bu değerleri Dalgıca bildirir.
Alternatif olay akışları:
3b- Dalgıç mevcut durumu değiştirmek istemediğini belirtir. Bu durumda
kullanım şekli 8. olayla devam eder.
3c.1- Dalgıç DSD veri tabanındaki gerçek dalışlardan birisinin simülasyonunu
yapmak istediğini belirtir.
3c.2- DSD Dalgıca DSD veri tabanındaki gerçek dalışların sonuncusundan
başlayarak tarih sırasına göre bir listesini sunar.
3c.3- Dalgıç simülasyonunu yapmak istediği dalışı seçer ve seçimi onaylar.
Bu durumda kullanım şekli 8. olayla devam eder.
3d.1- Dalgıç DSD veri tabanındaki sanal dalışlardan birisinin simülasyonunu
yapmak istediğini belirtir.
3d.2- DSD Dalgıca DSD veri tabanındaki sanal dalışların sonuncusundan
başlayarak tarih sırasına göre bir listesini sunar.
3d.3- Dalgıç simülasyonunu yapmak istediği dalışı seçer ve seçimi onaylar.
Bu durumda kullanım şekli 8. olayla devam eder.
9b- Dalgıç geleceğe ilişkin hiç bir derinlik hedefi belirtmez. Bu durum
daha önce verdiği hedefte değişiklik yapmadığı veya son hedefe ulaşıldıysa
bulunduğu derinlikte kalmak istediği şeklinde yorumlanır.
9c.1- Dalgıç simülasyonu bitirmek istediğini belirtir.
9c.2- DSD simülasyonu durdurur ve Dalgıca simülasyonu saklamak isteyip
istemediğini sorar.
9c.3- Dalgıç simülasyonu saklamak isteyip istemediğini belirtir.
9c.4- DSD Dalgıcın tercihine göre simülasyonu saklayarak veya saklamadan
bekleme durumuna geçer ve kullanım şekli sona erer.
Açıklamalar:
Dalgıç sanal bir dalışa başlar ve gerçek bir dalışta olduğu gibi derinlere
dalma, yukarı çıkma veya bulunduğu yerde istediği kadar kalma seçenekleri
vardır. Çeşitli grafik pencerelerde nasıl bir yol (dalış profili) izlediğini,
bu dalış profiline göre hesaplanmış olan dokularında biriken azot miktarını,
vurgun açısından tehlikeli sınıra ne kadar yaklaştığını, tüpünde ne kadar
hava kaldığını ve seçtiği (muhtemelen gerçek dalışlarında kullandığı veya
satın almayı düşündüğü) bir dalış bilgisayarının ekranını görür. Dalışı
bitirip yüzeye çıktıktan sonra da simülasyon devam eder ve dalgıcın bu
aşamada da yeni bir dalışa başlamak, deniz seviyesinden yükseklere çıkmak
(R1)
,
uçağa binmek (R1)
gibi seçenekleri vardır.
Tüm bu olayların etkilerini de aynı grafiklerden izler.
Veritabanına gerçek veya sanal dalışların bilgileri kaydedilebilir
ve bu bilgiler kullanılarak dalışlar sanal ortamda tekrarlanabilir.
Başlangıç değerlerinin girilmesi ve simulasyonun incelenmesi de kullanım
şeklinin kapsamı içindedir.
Bunlara ek olarak:
1- (R1) Dalışlar deniz seviyesinde yapılabildiği
gibi istenen herhangi bir yükseklikte de yapılabilecek.
2- Vücuttaki değişik dokular azotu değişik hızlarda aldıkları ve verdikleri
için programda değişik doku grupları için erimiş azot kısmi basınçları
hesaplanacak ve her doku grubunun anlık durumu kullanıcıya grafik olarak
gösterilecek.
3- (R1) Uçağa binme seçeneğine ilave olarak
uçakta arıza olması ve kabin basıncının dış basınca eşitlenmesi durumu
da bir seçenek olarak bulunacak.
4- (R1) Uygulamanın dil sseçenekleri olacak,
yeni bir dil kolaylıkla ilave edilebilecek.
5- Giriş sırasında bir kullanıcı ismi ile girilecek ve bu şekilde her
kullanıcı kendi verileri ile çalışabilecek.
6- (R1) Hava dışında nitrox gibi (belli
bir oranda oksijen ilave edilmiş hava) değişik gaz karışımları kullanmak
mümkün olacak.
7- (R2) Azot sarhoşluğu, oksijen zehirlenmesi
gibi dalış sırasında tehlikeli olabilecek olayların gerçekleşme ihtimali
içinde bulunulan koşulların fonksiyonu olarak hesaplanacak ve bu olaylar
stochastic olarak üretilecek.
8- (R2) Vurgun olayının kendisi de stochastic
olarak ele alınacak.
5- (YGP) "Dalış
bilgilerini gir" kullanım şekli
Tanım:
Dalgıç bu kullanım şeklini gerçek veya sanal dalış bilgilerini uygulamanın
veri tabanına girmek amacıyla kullanır.
Temel olay akışı:
1- Kullanım şekli dalgıcın mevcut kayıtları inceleme isteğini belirtmesi
ile başlar.
2- Uygulama incelemesi için dalgıca mevcut kayıtların bir listesini
sunar.
3.1- Dalgıç seçtiği bir kaydı incelemek istediğini belirtir.
4- Uygulama incelemesi için dalgıca seçtiği kaydın bilgilerini sunar.
5.1- Dalgıç kaydın bilgilerini değiştirmek veya yeni bilgi eklemek
istediğini belirtir.
6- Uygulama dalgıca bilgileri değiştirebileceği veya yeni bilgi ekleyebileceği
bir ortam sunar.
7- Dalgıç yapmak istediği değişik veya eklemeleri yapar ve değişiklik
işleminin bittiğini bildirir.
8- Uygulama bilgilerin yeni halini dalgıca sunar.
9- Dalgıç yeni hali onaylar ve kullanım şekli tamamlanır.
Alternatif olay akışı:
3.2 Dalgıç yeni kayıt eklemek istediğini belirtir. Bu durumda olay
akışı 6'dan devam eder.
5.2- Dalgıç mevcut durumu değiştirmek istemediğini belirterek kullanım
şeklini bitirebilir.
Dalgıcın girebileceği bilgiler:
1- Dalışa ilişkin bilgiler: derinlik, süre, dalış başlangıcında ve
sonunda hava basıncı
2- Kullandığı teknik malzemeye ilişkin bilgiler: hava tankının hacmi,
tankın kullanım basıncı, dalış bilgisayarının marka ve modeli, taşıdığı
ağırlık, fotoğraf makinesi, video.
3- Çevre koşullarına ilişkin bilgiler: su sıcaklığı, görüş mesafesi,
akıntı hızı, karşılaşılan balıklar.
4- Birlikte daldığı organizasyon ve kişilere ilişkin bilgiler: Organizasyonun
ve rehber dalgıcın ismi, dalışa katılanların isimleri, seviyeleri ve tabiyetleri.
6- (R1) "Dalış
bilgilerini ara" kullanım şekli
Tanım:
Dalgıç bu kullanım şeklini dalış kayıtları üzerinde arama yapmak amacıyla
kullanır.
7- (R1) "Dalış
kayıtlarını yazdır" kullanım şekli
Tanım:
Dalgıç bu kullanım şeklini kişisel bilgilerini ve dalış kayıtlarını
bir dalış defteri halinde bastırmak amacıyla kullanır.
Açıklamalar:
Her dalış kaydı için rehberinin veya yetkili kişinin imzalaması ve
organizatör kuruluşun damgası için uygun yer bırakılır.
8- (R2) "Başka
uygulamaya veri aktar" kullanım şekli
Tanım:
Dalgıç bu kullanım şeklini DSD ortamında varolan bilgileri başka bir
ortama aktarmak amacıyla kullanır.
Açıklamalar:
Başka uygulamadan veri almak veya o uygulamaya veri aktarmak benzer
amaçlı başka bir ortamda varolan bilgilerin diğer ortama aktarılması amacıyla
olabileceği gibi aktarılan ortamın veri işleme veya gösterim olanaklarının
kullanılması amacıyla da yapılabilir. Aktarma işlemi doğrudan uygulamalar
arası iletişim yoluyla olabileceği gibi standart veri veya dosya formatları
aracılığıyla da olabilir.
9- (R2) "Başka
uygulamadan veri al" kullanım şekli
Tanım:
Dalgıç bu kullanım şeklini benzer amaçlı başka bir ortamda varolan
bilgileri DSD ortamına aktarmak amacıyla kullanır.
10- (R2) "Dalış
bilgisayarından veri al" kullanım şekli
Tanım:
Dalgıç bu kullanım şeklini kullandığı dalış bilgisayarının gerçek dalışlar
sırasında topladığı verileri DSD uygulamasına aktarmak amacıyla kullanır.
Proje Planı
ve Uygulama Takvimi
Proje teklif belgesinde
de belirtildiği gibi evrimsel (evolutionary) bir geliştirme stratejisi
kullanılarak geliştirilecektir.
Projenin tek seferde
geliştirilmemesinin veya artımsal (incremental) bir geliştirme stratejisi
seçilmemesinin sebebi YGP dersinin süresinin seçilen proje için kısa olması
ve gereklerin ve gerçekleştirme sırasında karşılaşılabilecek zorlukların
şimdiden kesin olarak bilinememesidir. Ortaya çıkacak ara ürünlerden edinilen
deneyime ve kullanıcılardan alınacak geri beslemeye göre son ürün şekillendirilecektir.
Geliştirmenin 3 iterasyonda
(build) gerçekleştirilmesi planlanmıştır
.
1- Build
1 (YGP sürümü - YGP)
YGP dersi süresince
ve proje teklifinde verilen plana uygun olarak gerçekleştirilecek. Kullanım
şekli analizinde bu aşamada gerçekleştirilecek olan özellikler (YGP)
olarak işaretlenmiştir.
2- Build
2 (Release 1 - R1)
Mayıs 2000 sonuna
kadar gerçekleştirilecek. Kullanım şekli analizinde bu aşamada gerçekleştirilecek
olan özellikler (R1) olarak işaretlenmiştir.
3- Build
2 (Release 2 - R2)
Ekim 2000 sonuna kadar
gerçekleştirilecek. Kullanım şekli analizinde bu aşamada gerçekleştirilecek
olan özellikler (R2) olarak işaretlenmiştir.
Build 1 dönemi için
hazırlanan belgeler Build 2 ve Build 3 dönemlerinin başında güncellenerek
o dönem için geçerli olan belgeler oluşturulacaktır.
Kaynakça
1- ABYSS-Technical
Diving Article
(http://www.abysmal.com/technical/technical-calculating.html)
2- IDRC
- Internet Dive Computer Review
(http://www.egr.unlv.edu/SCUBA/idcr/reviews/suunto.html)
3- Suunto
Dive Log for Windows
(http://www.suunto.fi/dlogexe.html)
|