PhD, University of Cincinnati, 2017, Engineering and Applied Science: Computer Science and Engineering
Software engineering is the application of engineering to the development of software in a systematic method. Traditionally, professional software engineers use technologies and practices from a variety of fields to improve their productivity in creating software and to improve the quality of the delivered product. The practices come from aspects of software requirements, software design, software testing, software development process, and software quality, etc. Nowadays, more and more non-professional developers start to write programs not as their job function, but as means to support their main goal, which is something else, such as accounting, designing a webpage, doing office work, scientific research, entertainment, etc. The number of non-professional developers is already several times the number of professional programmers, and even students of elementary school start to learn simple programming tool skills. However, due to the varied purposes of developing software, the software engineering practices for these non-professional developers can be quite different from the practices for professional developers. The programming behavior of non-professional developers has characteristic of opportunistic, which lacks systematic guidelines, and the software created by them tends to lack enough quality considerations. Therefore, support from software engineering area is needed to improve end-user programmers' productivity and to increase the quality of the software developed. In this thesis, we define these non-professional developers as end-uesr developers and identify the distinctions between end-user developers and professional developers including the concept and programming practices of requirements, specifications, documentation, reuse, testing and verification, and debugging. We then identify that the pragmatic software reuse is the main approach adopted by end-user developers to fulfill their daily programming tasks. We conduct several rounds of observationa (open full item for complete abstract)
Committee: Nan Niu Ph.D. (Committee Chair); Raj Bhatnagar Ph.D. (Committee Member); Carla Purdy Ph.D. (Committee Member); Michael Sokoloff Ph.D. (Committee Member); Michael Wagner Ph.D. (Committee Member)
Subjects: Computer Science