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 uygulamanın yerine getirmesi beklenen işlevlerin ne olduğu ele alınmıştır. Çözümleme daha çok uygulamayı 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 uygulamanın "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 uyglamasının kurulması" (setup) kullanım şekli (use case)

Tanım:
Dalgıç bu kullanım şeklini DSD uygulamasını 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 uygulamayı geliştiren kişinin sorumlu tutulamayacağı konusunda uyarılacaktır.

2- (YGP) "DSD uygulamasının açılması" kullanım şekli (use case)

Tanım:
Dalgıç bu kullanım şeklini DSD uygulamasını kullanıma hazırlamak amacıyla kullanır.

Temel olay akışı:
1- Kullanım şekli dalgıcın DSD uygulamasını çalıştırması ile başlar.
2- Uygulama dalgıca kendisini tanıtabileceği bir ortam sunar.
3.1- Dalgıç kendisini yeni bir kullanıcı, misafir kullanıcı veya kayıtlı kullanıcılardan biri olarak tanıtır ve kullanım şekli sona erer.

Alternatif olay akışları:
3.2- (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 uygulama dalgıcın gerçekten seçtiği kişi olup olmadığını ayırdedecek bir işlem yapar 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 uygulamayı 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 uygulamayı kullanan diğer dalgıçlardan bağımsız bir çalışma ortamı yaratmak, uygulamaya 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- Uygulama incelemesi için dalgıca mevcut bilgileri sunar.
3.1- Dalgıç bilgileri değiştirmek veya yeni bilgi eklemek istediğini belirtir.
4- Uygulama 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- Uygulama bilgilerin yeni halini dalgıca sunar.
7- Dalgıç yeni hali onaylar ve kullanım şekli tamamlanır.

Alternatif olay akışı:
3.2- 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ışı:
Tasarım aşamasında detaylandırılacak.

Alternatif olay akışı:
Tasarım aşamasında detaylandırılacak.

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)