Yazılım anlamada görselleştirme tekniklerinin değerlendirilmesinde yeni bir yaklaşım
A new approach for evaluating the software visualization tools in software comprehension
Yazar: HACI ALİ DURU
Danışman: DOÇ. DR. VEYSİ İŞLER ; YRD. DOÇ. DR. MURAT PERİT ÇAKIR
Kara Harp Okulu Komutanlığı / Savunma Bilimleri Enstitüsü / Harekat Araştırması Ana Bilim Dalı
Derece: Doktora, 2013
Konu: Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol = Computer Engineering and Computer Science and Control ; Endüstri ve Endüstri Mühendisliği = Industrial and Industrial Engineering
Dizin: Bilgisayar yazılımları = Computer softwares ; Görsel analiz = Visual analysis ; Temelli kuram yöntemi = Grounded theory method

Özet:
Günümüzde özellikle büyük ölçekli kuruluşlarda kullanılan yazılımların karmaşıklığı ve boyutları hızla artmaktadır. Yazılımlardaki bu gelişim, bakım faaliyetlerinin yürütülmesinde yazılım uzmanlarının zihinsel iş yüklerini önemli oranda artırmaktadır. Literatürde, bakım maliyetlerinin tüm yazılım yaşam döngüsü içerisinde en az %60 oranında olduğu bildirilmekte olup yüksek katma değere sahip bir endüstriyel ürün olan yazılımların bakım maliyetlerinin de aynı oranda yüksek olduğu düşünülmektedir. 

Karmaşık ve büyük miktardaki yazılımsal verileri anlaşılabilir boyutlara indirgeyebilmek amacıyla birçok yazılım görselleştirme tekniği önerilmiştir. Yazılım görselleştirme araçları büyük miktardaki yazılımsal verilerin analizinde kullanılabilmekle birlikte yazılım anlamaya yönelik etkilerinin nesnel ölçümlerle yeterli düzeyde çalışılmamış olması nedeniyle yazılım endüstrisinde geniş ölçekte henüz yeterince kabul görememiştir. Bu nedenle yazılım anlamada yazılım görselleştirme araçlarının etkisi konusunda sistematik çalışmaların yapılmasına ihtiyaç duyulduğu değerlendirilmektedir.

Bu çalışmada, yazılım bakımında yazılım görselleştirme araçlarının etkisi kontrollü bir deneyle incelenmiştir. Deney sırasında deneklerden bu amaç için özel olarak geliştirilmiş bir yazılım üzerinde çeşitli programlama görevlerini yerine getirmeleri ve yazılım hatalarını bulmaları istenmiştir. Deneylerde, Microsoft Visual Studio.NET ile geliştirilmiş yazılımları görsel analiz yöntemleri ile incelemek amacıyla geliştirilmiş ticari bir yazılım olan NDEPEND kullanılmıştır. Kontrol grubuna ise standart Visual Studio.NET yazılım geliştirme ortamı sağlanmıştır.

Çalışma kapsamında, deney katılımcısı programcıların yazılım hatalarını bulmak ve programlama görevlerini yerine getirmek amacıyla uyguladıkları bilişsel süreçlere ilişkin veriler göz izleme (?TOBII 1750 Eye-Tracker?) ve İşlevsel yakın kızılötesi spektroskopisi (Functional Near Infrared Spectroscopy FNIRs ) teknolojileri yardımıyla toplanmıştır.

Performans ölçümleri için yapılan sayısal değerlendirmelerin yanı sıra göz izleme teknolojisi ile elde edilen kayıtlar Temellendirilmiş Teori (Grounded Theory) analizi ile nitel olarak değerlendirmeye tabii tutulmuştur. Söz konusu nitel analiz, sayısal analizlerle elde edilen sonuçların iç süreçleri ve nedenleri konusunda da ilginç tespitlerin yapılmasına olanak sağlamış ve kapalı bir kutu olarak isimlendirilen sayısal analizler ile elde edilen sonuçların iç süreçlerine ışık tutulmasını sağlamıştır.

Beyin aktivasyonlarına yönelik ölçümler beynin ön bölgesinden alınmıştır. Bu bölgenin, dikkat ve bellek ile, dolayısıyla da zihinsel zorlanma ile yakından ilişkili olduğu bilinmektedir.

Abstract:
Today, the size and the complexity of software have considerably increased, which induces an enormous mental workload on software development and maintenance staff. In particular, the maintenance cost of software is estimated to constitute at least %60 of the whole software life cycle costs in the software engineering literature. Therefore, it is generally accepted that the cost of maintaining such high-added value industrial products is substantially high.  

Numerous software visualization techniques have been proposed in an effort to aid software maintenance tasks by decreasing the mental workload involved in software comprehension. Despite their ability to synthesize vast amounts of information widespread acceptance of software visualization tools has not yet materialized in the industry, which suggests that there is a need for systematic studies that evaluate the measurable added value of software visualization techniques on the maintenance of complex software systems.

In this study we investigate the effect of software visualization on software comprehension during maintenance tasks via a controlled experimental study. A commercially available software visualization tool named NDEPEND is used which includes several visualization techniques for representing Microsoft Visual Studio.NET programs. The subjects are chosen among volunteered software developers who have similar level of education and expertise. During the experiment the subjects are asked to perform some programming tasks including finding bugs in an e-commerce program which was developed with Microsoft Asp.NET. The interface of the standard Visual Studio development environment is provided to the control group, whereas NDEPEND is provided to the experimental group to navigate the source code. 
In our study, we measured the time attendees spent on locating the bugs and programming tasks with or without using the software visualization tool. In addition to performance measures we will also collect eye-tracker and brain activation data by using the TOBII eye-tracker and the functional near-infrared spectroscopy (FNIRs) technology. We have observed that the attendees using software visualization tool solved the bug and performed programming tasks more quickly and easily then control group. 

The eye tracking data is evaluated via Grounded Theory which is a qualitative analysis methodology. This qualitative evaluations provided us insight knowledge of the quantitative measurements. 

Brain activation measurements are obtained from the dorsolateral prefrontal cortex area which is known to be associated with attention and working memory, and hence correlate highly with changes in mental workload. Eye tracker data is used if there are differences among fixation patterns of participants within and across groups.