Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Christian D. Newman is active.

Publication


Featured researches published by Christian D. Newman.


mining software repositories | 2013

A preliminary investigation of using age and distance measures in the detection of evolutionary couplings

Abdulkareem Alali; Brian Bartman; Christian D. Newman; Jonathan I. Maletic

An initial study of using two measures to improve the accuracy of evolutionary couplings uncovered from version history is presented. Two measures, namely the age of a pattern and the distance among items within a pattern, are defined and used with the traditional methods for computing evolutionary couplings. The goal is to reduce the number of false positives (i.e., inaccurate or irrelevant claims of coupling). Initial observations are presented that lend evidence that these measures may have the potential to improve the results of computing evolutionary couplings.


2015 IEEE 5th Workshop on Mining Unstructured Data (MUD) | 2015

Heuristic-based part-of-speech tagging of source code identifiers and comments

Reem Saleh AlSuhaibani; Christian D. Newman; Michael L. Collard; Jonathan I. Maletic

An approach for using heuristics and static program analysis information to markup part-of-speech for program identifiers is presented. It does not use a natural language part-ofspeech tagger for identifiers within the code. A set of heuristics is defined akin to natural language usage of identifiers usage in code. Additionally, method stereotype information, which is automatically derived, is used in the tagging process. The approach is built using the srcML infrastructure and adds part-of-speech information directly into the srcML markup.


visualizing software for understanding and analysis | 2011

MosaiCode: Visualizing large scale software: A tool demonstration

Jonathan I. Maletic; Daniel J. Mosora; Christian D. Newman; Michael L. Collard; Andrew M. Sutton; Brian Robinson

A software visualization tool called MosaiCode is introduced and described. MosaiCode uses a Seesoft metaphor to support the visualization and understanding of various characteristics for large scale software systems. A usage scenario is given to demonstrate the tool.


ieee international conference on software analysis evolution and reengineering | 2017

Lexical categories for source code identifiers

Christian D. Newman; Reem Saleh AlSuhaibani; Michael L. Collard; Jonathan I. Maletic

A set of lexical categories, analogous to part-of-speech categories for English prose, is defined for source-code identifiers. The lexical category for an identifier is determined from its declaration in the source code, syntactic meaning in the programming language, and static program analysis. Current techniques for assigning lexical categories to identifiers use natural-language part-of-speech taggers. However, these NLP approaches assign lexical tags based on how terms are used in English prose. The approach taken here differs in that it uses only source code to determine the lexical category. The approach assigns a lexical category to each identifier and stores this information along with each declaration. srcML is used as the infrastructure to implement the approach and so the lexical information is stored directly in the srcML markup as an additional XML element for each identifier. These lexical-category annotations can then be later used by tools that automatically generate such things as code summarization or documentation. The approach is applied to 50 open source projects and the soundness of the defined lexical categories evaluated. The evaluation shows that at every level of minimum support tested, categorization is consistent at least 79% of the time with an overall consistency (across all supports) of at least 88%. The categories reveal a correlation between how an identifier is named and how it is declared. This provides a syntax-oriented view (as opposed to English part-of-speech view) of developer intent of identifiers.


international conference on software engineering | 2016

srcSlice: a tool for efficient static forward slicing

Christian D. Newman; Tessandra Sage; Michael L. Collard; Hakam W. Alomari; Jonathan I. Maletic

An efficient lightweight forward static slicing tool is presented.The tool is implemented on top of srcML, an XML representation of source code.The approach does not compute the full program dependence graph but instead dependency information is computed as needed while computing the slice on a variable.The result is a list of line numbers, dependent variables, aliases, and function calls that are part of the slice for a given variable.The tool produces the slice for all variables in a system.The approach is highly scalable and can generate the slices for all variables of the Linux kernel in less than 15 minutes. A demonstration video is at: https://youtu.be/McvFUVSGg-g


international conference on software engineering | 2018

A taxonomy of how method stereotypes change

Michael John Decker; Christian D. Newman; Natalia Dragan; Michael L. Collard; Jonathan I. Maletic; Nicholas A. Kraft

The role of a well-designed method should not change frequently or significantly over its lifetime. As such, changes to the role of a method can be an indicator of design improvement or degradation. To measure this, we use method stereotypes. Method stereotypes provide a high-level description of a methods behavior and role; giving insight into how a method interacts with its environment and carries out tasks. When a methods stereotype changes, so has its role. This work presents a taxonomy of how method stereotypes change and why the categories of changes are significant.


international conference on program comprehension | 2018

Leveraging the agile development process for selecting invoking/excluding tests to support feature location

Gregory Steven DeLozier; Michael John Decker; Christian D. Newman; Jonathan I. Maletic

A practical approach to feature location using agile unit tests is presented. The approach employs a modified software reconnaissance method for feature location, but in the context of an agile development methodology. Whereas a major drawback to software reconnaissance is the identification or development of invoking and excluding tests, the approach allows for the automatic identification of invoking and excluding tests by partially ordering existing agile unit tests via iteration information from the agile development process. The approach is validated in a comparison study with industry professionals, where the approach is shown to improve feature location speed, accuracy, and developer confidence over purely manual feature location.


Proceedings of the 2nd International Workshop on Refactoring | 2018

An empirical investigation of how and why developers rename identifiers

Anthony Peruma; Mohamed Wiem Mkaouer; Michael John Decker; Christian D. Newman

Renaming is vital to software maintenance and evolution. Developers rename entities when their original names no longer fit their behavioral role within the program. This may happen if the entitys original name was of poor quality or if the system has evolved such that the original name needs to be updated to reflect some of this evolution. In the end, the reason for the rename ultimately falls under increasing understandability and comprehension. Because comprehension is so important, and identifiers are the primary way developers comprehend code, it is critical to understand empirically how and why identifier names evolve. Armed with an understanding of these two facets of identifier evolution, researchers will be able to train algorithms to recognize, recommend, or even automatically generate high-quality identifier names. We present an empirical study of how method, class and package identifier names evolve to better understand the motives of their evolution. The empirical validation involves a set of 524,113 rename refactorings, performed on 3,795 Java systems. In a nutshell, our findings demonstrate that most rename refactorings narrow the meaning of the identifiers for which they are applied. Further, we analyze commit messages to contextualize these renames.


Proceedings of the 2nd International Workshop on Refactoring | 2018

A study on developer perception of transformation languages for refactoring

Christian D. Newman; Mohamed Wiem Mkaouer; Michael L. Collard; Jonathan I. Maletic

Although there is much research advancing state-of-art of program transformation tools, their application in industry source code change problems has not yet been gauged. In this context, the purpose of this paper is to better understand developer familiarity and comfort with these languages by conducting a survey. It poses, and answers, four research questions to understand how frequently source code transformation languages are applied to refactoring tasks, how well-known these languages are in industry, what developers think are obstacles to adoption, and what developer refactoring habits tell us about their current use, or underuse, of transformation languages. The results show that while source code transformation languages can fill a needed niche in refactoring, research must motivate their application. We provide explanations and insights based on data, aimed at the program transformation and refactoring communities, with a goal to motivate future research and ultimately improve industry adoption of transformation languages for refactoring tasks.


ieee international conference on software analysis evolution and reengineering | 2017

srcQL: A syntax-aware query language for source code

Brian Bartman; Christian D. Newman; Michael L. Collard; Jonathan I. Maletic

A tool and domain specific language for querying source code is introduced and demonstrated. The tool, srcQL, allows for the querying of source code using the syntax of the language to identify patterns within source code documents. srcQL is built upon srcML, a widely used XML representation of source code, to identify the syntactic contexts being queried. srcML inserts XML tags into the source code to mark syntactic constructs. srcQL uses a combination of XPath on srcML, regular expressions, and syntactic patterns within a query. The syntactic patterns are snippets of source code that supports the use of logical variables which are unified during the query process. This allows for very complex patterns to be easily formulated and queried. The tool is implemented (in C++) and a number of queries are presented to demonstrate the approach. srcQL currently supports C++ and scales to large systems.

Collaboration


Dive into the Christian D. Newman's collaboration.

Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Michael John Decker

Bowling Green State University

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Mohamed Wiem Mkaouer

Rochester Institute of Technology

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Researchain Logo
Decentralizing Knowledge