PGerçekleştirim Belgesi
 
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.