Dalış Simülatörü ve Veritabanı
Uygulaması
DSD
Nesip
Aral
Gerçekleştirim Belgesi
Yazılım Geliştirme
Projesi
Bilgi Teknolojileri Sertifika
Programı
İDEA: ODTÜ Sanal Kampüsü
2 Aralık 1999
Öz
Gerçekleştirim belgesinde
DSD uygulamasının nasıl gerçekleştirildiği, gerçekleştirim aşamasında karşılaşılan
sorunlar ve bu sorunlara bulunan çözümler üzerinde durulacaktır.
DSD uygulaması proje
teklifi ve analiz belgelerinde anlatıldığı şekli ile oldukça kapsamlı ve
tam zamanlı başka bir görevi de olan tek bir öğrenci tarafından geliştirileceği
de gözönüne alındığında, 12 haftalık asenkron bir ders kapsamında gerçekleştirilmesi
mümkün olamayacak boyutta olduğu bilinen bir uygulamaydı. Bu durum gözönüne
alınarak teklif aşamasında uygulamanın geliştirilmesinde evrimsel (evolutionary)
bir geliştirme stratejisi kullanılarak geliştirilmesi öngörülmüştü. Analiz
aşamasında da bu stratejiye uygun olarak DSD'nin 3 iterasyonda (Build)
gerçekleştirilmesi planlanmış her iterasyon için düşünülen takvim ve geliştirilmesi
planlanmış olan işlevler verilmişti. Bu belgede bu iterasyonlardan birincisi
olan YGP sürümünün gerçekleştirilmesi için yapılan çalışmalar, karşılaşılan
sorunlar, bu sorunlara bulunan çözümler ve varılan nokta ele alınmaktadır.
Karşılaşılan
Sorunlar ve Uygulanan Çözümler
YGP sürümünün gerçekleştirilmesi
aşamasında (bir ölçüde tasarım aşamasında da) birçok zorlukla karşılaştım
ve bu zorlukları aşabilmek için teklif ve analiz aşamalarında öngörmediğim
ölçüde çalışmam gerekti. Buna rağmen bu sürüm için planlamış olduğum özelliklerin
tümünü de gerçekleştirebilmiş değilim. Ancak vardığım noktanın İDE_A YGP
dersi açısından ve, Build 2 aşamasına geçmek için yeterli olduğunu düşünüyorum.
Karşılaştığım zorluklar
daha önceden böyle bir uygulama geliştirmemiş olmamdan ve kullandığım araçları
öğrenme sürecinin önemli bir kısmının geliştirme süreci ile eşzamanlı olmasından
kaynaklandı. UML dilini ve kavramlarını yeterince bilmeme rağmen kullandığım
araçla kod üretme pratiğim olmadığı (muhtemelen aracın da kod üretme açısından
eksiklikleri olduğu) ve ürettiğim kodu Visual C++ kullanarak ürettiğim
kullanıcı arayüzü kodu ile nasıl biraraya getireceğim konusunda yeterli
kaynak bulamadığım için tasarım döneminin ortasında araç değiştirdim. Yeni
araç benim için tamamen yeni olmasına rağmen tasarım döneminde oldukça
yararlı oldu ve simulasyonun nasıl yapılması gerektiği konusunda önemli
bilgiler edindim. Ancak üretilen kodun, Visual C++ kullanarak üretilen
kullanıcı arayüzü kodu ile biraraya getirilmesi bu araçla da basit bir
şekilde yapılamıyordu ve YGP sürümünde gerçekleştirmeyi planladığım işlevlerin
çok karmaşık olmadığını da gözönüne alarak YGP sürümün gerçekleştirilmesinde
bu aracı kullanmamaya karar verdim. Bu durumda YGP sürümü, yazılım kodu
açısından düşünüldüğünde, tamamen Visual C++ ve MFC kullanılarak geliştirilmiş
oldu. Ancak analiz ve tasarım aşamalarında UML metodolojisi kullanılmış
olması (özellikle kullanım şekilleri) gerçekleştirim aşamasında da çok
yardımcı oldu.
Proje teklifinde ve
analiz belgesinde verilen hedefler gözönüne alındığında uygulamanın en
önemli işlevi olan simulasyon yapılabilmekte ve diğer temel işlev olan
veritabanının yapısı ve kullanıcının bilgilere ulaşmasını ve yeni bilgi
girmesini sağlayacak olan altyapı kurulmuş durumdadır. Planlanmış olduğu
gibi veri tabanı olarak Access ve verilere ulaşım yöntemi olarak DAO (Data
Access Objects) kullanılmıştır. YGP sürümü için öngörülmüş olmasına rağmen
dalış bilgilerinin girilmesi kullanım şekli bir sonraki sürüme bırakılmıştır.
Kullanıcı arayüzü ile veri tabanı arasındaki bağlantılarda da bazı eksikler
vardır.
Yazılımın
Bileşenleri ve Görevleri
DSD uygulamasının YGP
sürümünde veri tabanı Microsoft Access 97 kullanılarak geliştirilmiştir.
Kullanıcı arayüzü ve simülasyon ise Microsoft Visual Studio Enterprise
Edition içinde mevcut olan Visual C++ 6.0 ve MFC (Microsoft Foundation
Class Library) 6.0 kullanılarak geliştirilmiştir.
Veri tabanı Visual
C++ Workspace (DSD_v1) altında
DSD_v1\Veri_Tabani\DSD_VT1.mdb
olarak bulunabilir.
Uygulamanın diğer
dosyaları Visual C++ MFC AppWizard (.exe) tarafından başlangıçta veya sonradan
geliştirme aşamasında yaratılmış dosyalardır. Uygulama Single Document
Interface Architecture seçeneği kullanılarak yaratılmıştır.
Bu dosyalardan önemli
olanları:
DSD_v1.dsw Project
Workspace
DSD_v1.dsp Project
File
DSD_v1Set.h ve DSDv1_Set.cpp
Veri tabanı ile iletişim altyapısına ilişkin dosyalar.
MainFrm.h ve MainFrm.cpp
uygulamanın ana dosyaları
DSD_v1.h ve DSD_v1.cpp
çeşitli sınıfların davranışlarını belirliyor
KimsinizDlg.h ve KimsinizDlg.cpp
Giriş penceresi dosyaları
DSD_v1View.h ve DSD_v1View.cpp
Dalgıç bilgileri penceresi dosyaları
SimulateDlg.h ve SimulateDlg.cpp
Simulasyon penceresi dosyaları
DSD_v1.ico DSD icon
dosyası
DSD_v1.exe DSD Uygulaması
dosyası
Yazılımdan
Kesitler
Bu bölümde DSD ekranlarından
bazı örnekler verilmiştir. Simülasyon için verilen 1. Örnekte yüzeye çıkışın
hemen ardından azot kısmi basınçlarının durumu görülmektedir. 2. örnekte
ise yüzeye çıkıştan 47 dakika sonra dokularda biriken azotun hala dışarı
atılamadığı gözükmektedir. Her iki örnekte de tavan seviyesinin (kırmızı
çizgi) aşılmaması için 5 metre seviyesinde 3-5 dakikalık bir beklemenin
önemi görülmektedir.
3. Simülasyon örneğinde
ise arka arkaya yapılan 2 dalışta aynı profil izlenmesine rağmen çıkışta
tavan seviyesinin daha uzun süre ihlal edildiği dolayısıyla vurgun riskinin
arttığı görülmektedir.
Açılış
penceresi
Ana
pencere
Simülasyon
penceresi (1. örnek)
Simülasyon
penceresi (2. örnek)
Simülasyon
penceresi (3. örnek)
Kullanıcı
Kılavuzu
DSD uygulamasının basılı
bir kullanıcı kılavuzu olmayacak, bu işlev Microsaft Visual C++ ve MFC'de
yeralan çeşitli yardım işlevleri ile sağlanacaktır. Bunlardan en önemlileri
olarak yardım menüsü, "context sensitive help", butonlar ve benzeri kontrol
araçları için kısa açıklamalar içeren "tooltips" sayılabilir. Ancak bu
yardım işlevleri henüz gerçekleştirilemediğinden yazılımın YGP sürümü için
aşağıda verilen kullanıcı kılavuzu hazırlanmıştır. Bu kılavuz da her konuyu
içermemekle beraber yazılımın sınırlı fonksiyonlar içermesi ve basit bir
kullanımı olması gözönüne alındığında yeterli olacaktır. Kılavuz esas olarak
Analiz döneminde hazırlanan ve daha sonra tasarım döneminde bazı bölümleri
detaylandırılan kullanım şekillerine (use cases) dayanmaktadır. Burada
kullanım şekillerinin dili ve ifade tarzı kullanıcıya hitap edildiği düşünülerek
değiştirilmiş, gerçekleştirim sırasında oluşan farklılıklar da gözönüne
alınmıştır.
Ek: DSD
Dalış Simülatörü ve Veritabanı Uygulaması Kullanıcı kılavuzu
Önemli Uyarı:
-
DSD Dalış Simülatörü
ve Veritabanı Uygulaması kullanılarak yapılan simülasyonlar sonucunda elde
edilen değerler tamamen göreceli bir anlam taşımaktadır, mutlak değerler
olarak alınmamalıdır !
-
DSD Dalış Simülatörü
ve Veritabanı Uygulaması hiçbir şekilde dalış planlaması amacıyla kullanılmamalıdır
!
-
Dalış planlaması
için dalgıçlık eğitimi veren güvenilir kuruluşlardan temin edilecek tablolar
veya dalış bilgisayarları kullanılmalıdır. Dalış aktivitesinin, bu tabloların
veya dalış bilgisayarların izin verdiği sınırlar içinde yapıldığı durumlar
da dahil olmak üzere, her zaman bir risk içerdiği unutulmamalıdır !
1- Giriş
DSD uygulaması amatör dalgıçlar veya
dalgıçlık eğitimi almakta olan kişilerin karşılaşabilecekleri tehlikelerden
biri olan vurgun olayını daha iyi anlamaları için tasarlanmış bir dalış
simülatörü ve gerçek veya sanal dalışlara ilişkin bilgilerin saklanacağı
bir veritabanından oluşmaktadır. DSD özellikle dalış olayının kavranması
ve gerçek dalışların analizi yoluyla dalgıcın dalış sırasında oluşmuş olabilecek
riskli durumların farkına varması konularına yönelik olarak tasarlanmıştır.
Amaç dalgıçların olabildiğince tehlikeden uzak dalışlar yapabilmelerine
katkıda bulunmaktır.
Dalış planlaması ise "Dalış Simülatörü
ve Veritabanı Uygulaması"nın tamamen konusu dışındadır ve tehlikeli sonuçlar
doğurabileceği için kesinlikle bu amaçla kullanılmamalıdır.
Vurgun olayı derinlerde suyun oluşturduğu
basınç (her 10 metre için 1 atmosfer) altında azot gazının dokularda erimesi
ve daha sonra yukarı çıkarken basıncın azalması sonucunda dokularda gaz
haline geçmesi, buradan da kabarcıklar halinde dolaşım sistemine geçerek
damarları tıkaması sonucunda ortaya çıkar. Tıkanan damarın önemine göre
de kişinin ölümüne kadar varabilen kötü sonuçlar doğurabilir.
DSD'nin bu sürümünde kullanılan
model azot gazını alma ve verme yarı ömürleri 2.5 dakikadan 480 dakikaya
kadar değişen 9 doku grubundan oluşmaktadır. Grupların yarı ömürleri 2.5,
5, 10, 20, 40, 80, 120, 240 ve 480 dakika olarak alınmıştır.
2- DSD'nin açılması
DSD uygulamasını çalıştırdığınızda
açılan giriş ekranındaki listeden, varsa, kendi adınızı seçin ve Tamam
butonuna basın. Adınız listede yoksa ve veri tabanına kaydolmak istiyorsanız
"Yeni Kullanıcı", sadece simülasyon yapmak istiyorsanız "Misafir" veya
uygulamadan çıkmak istiyorsanız "İptal" butonlarından birine basabilirsiniz.
3- Bilgi girişi
Kendi adınızla girdiğinizde
bilgi ekranında yeralan "Düzelt" butonunu kullanarak bilgilerinizi değiştirebilirsiniz.
Yeni kullanıcı olarak girdiğinizde uygulama sizi doğrudan bilgi girişi
yapabileceğiniz bir ekrana yönlendirecektir.
4- Simülasyon
Menüden Simülasyonu
seçtiğinizde açılan ekranda bulunan butonları kullanarak zamanın akış hızını
değiştirebilir, simülasyonu başlatabilir, durdurabilir veya kaldığınız
yerden devam edebilirsiniz. Fareyi kullanarak ulaşmak istediğiniz noktayı
işaretlediğinizde simülasyon o noktaya kadar devam edecektir. Seçtiğiniz
noktayı istediğiniz zaman değiştirebilirsiniz, simülasyon bulunduğu yerden
yeni noktaya ulaşıncaya kadar devam edecektir. Su yüzeyine çıkıldığında
simülasyon su yüzeyinde devam eder, istediğinizde yeniden dalabilirsiniz.
|