PAnaliz Belgesi
 
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)