Source code analysis and manipulation
h 0 Source code analysis is “the process of extracting information bout a program from its source code or artifacts (e.g., from Java byte ode or execution traces) generated from the source code using autoatic tools. Source code is any static, textual, human readable, fully xecutable description of a computer program that can be compiled utomatically into an executable form. To support dynamic analysis he description can include documents needed to execute or compile he program, such as program inputs ” ( Binkley, 2017 ). While much attention in the wider software engineering comunity is properly directed towards other aspects of systems deelopment and evolution, such as specification, design, and reuirements engineering, it is the source code that contains the nly precise description of the behavior of the system. The analysis nd manipulation of source code thus remains a pressing concern. This special issue presents a collection of papers that present nnovative solutions in the area of source code analysis and maipulation. The first paper “Observational Slicing based on Visual Semantics ” escribes the generalization of Observation-Based Slicing to lanuages with non-traditional visual semantics. Observation-Based licing tries to reduce the complexity of the source code analysis tep required by program slicing to compute slices by observing he behavior of candidate slices. For example, given a graphical elment, such as a line observation-based slicing can help determine he code that induces or modifies that graphical element. An initial ase study to evaluate the benefits of the proposed approach perormed on the Picture Description Languages (PDL) indicates that ot only is it possible to generalize the ORBS implementation, but he resulting slicer is quite effective. In addition, a qualitative look t the slices indicates that the technique is very effective, at times roducing minimal slices. The second paper “Topic-based Software Defect Explanation ” resents a suite of source code quality metrics based on topcs extracted from source code. The benefit of topic-based analsis is that it is typically unsupervised. The defined metrics are sed to explain the file defect-proneness. The results of a reported ase study conducted on several versions of Firefox, Eclipse, Myyn, and NetBeans show that (i) some topics are more defect-prone han others; (ii) defect-prone topics tend to remain so over time; iii) the proposed topic based metrics provide additional explanaory power for software quality over existing structural and hisorical metrics; and (iv) the topic-based cohesion metric outperorms state-of-the-art topic-based cohesion and coupling metrics n terms of defect explanatory power, while being simpler to imlement and more intuitive to interpret.