Date of Award
Summer 8-2021
Document Type
Dissertation
Degree Name
Doctor of Philosophy (PhD)
Department
Computational and Data Sciences
First Advisor
Erik Linstead
Second Advisor
Elizabeth Stevens
Third Advisor
Tom Springer
Abstract
As Artificial Intelligence (AI) increasingly penetrates all aspects of society, many obstacles emerge. This thesis identifies and discusses the issues facing Computer Vision and significant deficiencies in the Software Development Life-cycle that need to be resolved to facilitate the evolution toward true artificial intelligence. We explicitly review the concepts behind Convolutional Neural Network (CNN) models, the benchmark for computer vision. Chapter 2 highlights the mechanisms that have popularized CNNs while also specifying significant gaps that could garner the model inadequate for future use in safety-critical systems. We put forward two main limitations. Namely, CNNs do not use lack of information as information, something that humans intuitively do. Further, the process of training puts CNNs at a disadvantage over the human brain and experience. While CNNs are trained by directly introducing entire concepts, people acquire knowledge incrementally. Because we learn the basics before the details, we are able to analyze imagery more expeditiously and successfully.
Another obstacle limiting the progression of Artificial Intelligence is the factors that decrease the efficiency of programmers and their code. Chapters 3 and 4 explore some of these aspects. The analysis of computer code as a field of study has recently been getting more attention. However, most of this research focuses on the code as the artifact. This dissertation takes a different position by centering on the effects of computer programmers' behaviors on their code.
We explore the practicality of current in-code documentation practices by assessing whether erroneous computer comments can mislead programmers. Our experimental model relies on asking participants to describe the functionality of code fragments which, unbeknownst to them, have misleading comments. We find that expert programmers are more prone to rely on these erroneous explanations and further visualize the phenomenon by using an eye-tracker. Finally, we present heatmaps that show experts concentrated more time and attention on the documentation than the code.
In the next chapter, we conduct a large-scale analysis of the circumstances determining how long a bug will be present in a project. This study looks at 63,923 simple, one-statement fixes of bugs in open-source Java projects. We conclude that bugs fixed by the same programmer that introduced them are resolved 1.71 times faster. We also challenge Linus' law which states, " given enough eyeballs, all bugs are shallow." Our analysis finds that projects with more contributors have significantly longer-lived bugs, indicating that the mere number of people working on a project is not sufficient protection against bugs.
Creative Commons License
This work is licensed under a Creative Commons Attribution-Noncommercial-No Derivative Works 4.0 License.
Recommended Citation
E. Eiroa Lledo, "Exploring behaviors of software developers and their code through computational and statistical methods," Ph.D. dissertation, Chapman University, Orange, CA, 2021. https://doi.org/10.36837/chapman.000313