3 research outputs found
Speculative Analysis for Quality Assessment of Code Comments
Previous studies have shown that high-quality code comments assist developers
in program comprehension and maintenance tasks. However, the semi-structured
nature of comments, unclear conventions for writing good comments, and the lack
of quality assessment tools for all aspects of comments make their evaluation
and maintenance a non-trivial problem. To achieve high-quality comments, we
need a deeper understanding of code comment characteristics and the practices
developers follow. In this thesis, we approach the problem of assessing comment
quality from three different perspectives: what developers ask about commenting
practices, what they write in comments, and how researchers support them in
assessing comment quality.
Our preliminary findings show that developers embed various kinds of
information in class comments across programming languages. Still, they face
problems in locating relevant guidelines to write consistent and informative
comments, verifying the adherence of their comments to the guidelines, and
evaluating the overall state of comment quality. To help developers and
researchers in building comment quality assessment tools, we provide: (i) an
empirically validated taxonomy of comment convention-related questions from
various community forums, (ii) an empirically validated taxonomy of comment
information types from various programming languages, (iii) a
language-independent approach to automatically identify the information types,
and (iv) a comment quality taxonomy prepared from a systematic literature
review.Comment: 5 pages, 1 figure, conferenc
An empirical investigation of issues relating to software immigrants
This thesis focuses on the issue of people in software maintenance and, in particular, on software immigrants – developers who are joining maintenance teams to work with large unfamiliar software systems. By means of a structured literature review this thesis identifies a lack of empirical literature in Software Maintenance in general and an even more distinct lack of papers examining the role of People in Software Maintenance. Whilst there is existing work examining what maintenance programmers do the vast majority of it is from a managerial perspective, looking at the goals of maintenance programers rather than their day-to-day activities. To help remedy this gap in the research a series of interviews with maintenance programmers were undertaken across a variety of different companies. Four key results were identified: maintainers specialise; companies do not provide adequate system training; external sources of information about the system are not guaranteed to be available; even when they are available they are not considered trustworthy. These results combine together to form a very challenging picture for software immigrants. Software immigrants are maintainers who are new to working with a system, although they are not normally new to programming. Although there is literature on software immigrants and the activities they undertake, there is no comparative literature. That is, literature that examines and compares different ways for software immigrants to learn about the system they have to maintain. Furthermore, a common feature of software immigrants learning patterns is the existence and use of mentors to impart system knowledge. However, as the interviews show, often mentors are not available which makes examining alternative ways of building a software immigrants level-of-understanding about the system they must maintain all the more important. As a result the final piece of work in this thesis is the design, running and results of a controlled laboratory experiment comparing different, work based, approaches to developing a level-of-understanding about a system. Two approaches were compared, one where subjects actively worked and altered the code while a second group took a passive ‘hands-off’ approach. The end result showed no difference in the level-of-understanding gained between the subjects who performed the active task and those that performed the passive task. This means that there is no benefit to taking a hands-off approach to building a level-of-understanding about new code in the hostile environment identified from the literature and interviews and software immigrants should start working with the code, fulfilling maintenance requests as soon as possible