ABSTRACT
While code is typically presented as a flat file to a developer who must change it, this flat file exists within a context that can drastically influence how a developer approaches changing it. While the developer clearly must be careful changing any code, they probably should be yet more careful in changing code that recently saw major changes, is barely covered by test cases, and was the source of a number of bugs. Contextualized coding refers to the ability of the developer to effectively use such contextual information while they work on some changes. In this paper, we introduce the Code Orb, a contextualized coding tool that builds upon existing mining and analysis techniques to warn developers on a line-by-line basis of the volatility of the code they are working on. The key insight underneath the Code Orb is that it is neither desired nor possible to always present a code's context in its entirety; instead, it is necessary to provide an abstracted view of the context that informs the developer of which parts of the code they need to pay more attention to. This paper discusses the principles of and rationale behind contextualized coding, introduces the Code Orb, and illustrates its function with example code and context drawn from the Mylyn [11] project.
- A. Ankolekar, K. Sycara, et al. 2006. "Supporting online problem-solving communities with the semantic web". WWW '06, USA, pp. 575--584. Google ScholarDigital Library
- C. Bird, N. Nagappan, et al. 2010. An analysis of the effect of code ownership on software quality across windows, eclipse, and Firefox. Technical report, UC Davis.Google Scholar
- F. Chevalier, D. Auber and A. Telea. 2007. "Structural Analysis and Visualization of C++ Code Evolution using Syntax Trees". In IWPSE '07, pp. 90--97. Google ScholarDigital Library
- EclEmma Project: EclEmma - Java Code Coverage for Eclipse, Ret. Dec. 2010, from: http://www.eclemma.org/Google Scholar
- Eclipse project: The Eclipse Foundation open source community website, the Eclipse Foundation, 2010. Retrieved Dec. 09, 2010, from: http://www.eclipse.org/Google Scholar
- S. Eick, J. Steffen, and E. Sumner. "Seesoft a tool for visualizing line-oriented software statistics". IEEE Transactions Software Engineering, 18(11), pp. 957--968, 1992. Google ScholarDigital Library
- H. Happel, and W. Maalej. 2008. "Potentials and challenges of recommendation systems for software development". RSSE '08, USA, pp. 11--15. Google ScholarDigital Library
- H. Hata, O. Mizuno, and T. Kikuno. "Fault-prone module detection using large-scale text features based on spam filtering". Empirical Software Engineering. 15(2),p147--165,2010 Google ScholarDigital Library
- J. Jones, and M. J. Harrold. 2005. "Empirical Evaluation of the Tarantula Automatic Fault-Localization Technique". In ASE '05, USA, 2005, pp. 273--282. Google ScholarDigital Library
- S. Kim, T. Zimmermann, et al. 2007. "Predicting faults from cached history". ICSE '07, pp. 489--498. Google ScholarDigital Library
- Mylyn Project: Eclipse Mylyn Open Source Project, the Eclipse Foundation, 2010. Retrieved Dec. 09, 2010, from: http://www.eclipse.org/mylyn/Google Scholar
- N. Nagappan and T. Ball. 2005. "Use of Relative Code Churn Measures to Predict System Defect Density". ICSE '05, USA, pp. 284--292. Google ScholarDigital Library
- T. Proença, N. Moura, and A. van der Hoek. 2010. "On the Use of Emerging Design as a Basis for Knowledge Collaboration". New Frontiers in Artificial Intelligence: JSAI-isAI 2009 Workshops. pp. 124--134. Google ScholarDigital Library
- F. Rahman, and P. Devanbu. 2011."Ownership, Experience Defects:A fine-grained Study of Authorship". ICSE'11,USA. Google ScholarDigital Library
- J. Śliwerski, T. Zimmermann and A. Zeller. "HATARI: raising risk awareness". ACM SIGSOFT Software Engineering Notes, 30(5), pp.107--110, 2005. Google ScholarDigital Library
- L. Voinea, A. Telea and J. van Wijk. 2005. "CVSscan: visualization of code evolution". SOFTVIS '05, pp. 47--56. Google ScholarDigital Library
- G. Canfora, L. Cerulo and M. Di Penta. 2007. Identifying Changed Source Code Lines from Version Repositories. In MSR '07. 14 pages. Google ScholarDigital Library
- E. Murphy-Hill and A. Black. 2010. An interactive ambient visualization for code smells. SOFTVIS '10, USA, pp. 5--14. Google ScholarDigital Library
Index Terms
- The code orb: supporting contextualized coding via at-a-glance views (NIER track)
Recommendations
Controlling Software Evolution Process Using Code Smell Visualization
ICCCV '19: Proceedings of the 2nd International Conference on Control and Computer VisionSoftware change is inevitable, evolution becomes a part of software lifetime, and software release becomes more frequent. Hence there is a need for the project manager to inspect and control the process during software development and evolution. In the ...
Identifying Code Smells with Multiple Concern Views
SBES '10: Proceedings of the 2010 Brazilian Symposium on Software EngineeringCode smells are anomalies often caused by the way concerns are realized in the source code. Their identification might depend on properties governing the structure of individual concerns and their inter-dependencies in the system implementation. ...
Swarm debugging: The collective intelligence on interactive debugging
Highlights- We introduce the Swarm Debugging on the concepts of Swarm Intelligence and IFT.
AbstractOne of the most important tasks in software maintenance is debugging. To start an interactive debugging session, developers usually set breakpoints in an integrated development environment and navigate through different paths in their ...
Comments